跳转到内容

扩展快速开始

本教程面向第一次编写 Jarvis 扩展包的开发者。完成后,你会安装一个本地示例 pack,并确认 /ssh-tunnel slash command 已由 Jarvis Core 接管。

  • 已从源码运行 Jarvis。
  • 已能在仓库根目录执行后端 CLI。
  • 当前目录是 Jarvis 仓库根。
终端窗口
.venv/bin/jarvis extensions validate examples/extensions/ssh-tunnel-pack

成功输出形态:

OK example.ssh-tunnel@0.1.0
contributions: profiles: 1, workflows: 1, commands: 1

校验不会写入数据库或 profile 目录。它只读取 jarvis-pack.yaml、profile YAML 和 workflow YAML。

终端窗口
.venv/bin/jarvis extensions install examples/extensions/ssh-tunnel-pack --enable

成功输出形态:

Installed example.ssh-tunnel@0.1.0 (enabled)

如果你用自定义 Jarvis data dir,给 lifecycle 命令加同一个 --data-dir

终端窗口
.venv/bin/jarvis extensions install examples/extensions/ssh-tunnel-pack --enable --data-dir "$HOME/.jarvis-dev"

你也可以先打包再安装归档:

终端窗口
.venv/bin/jarvis extensions package examples/extensions/ssh-tunnel-pack --out dist/ssh-tunnel-0.1.0.jarvispack
.venv/bin/jarvis extensions install dist/ssh-tunnel-0.1.0.jarvispack --enable
终端窗口
.venv/bin/jarvis extensions list

成功输出形态:

example.ssh-tunnel 0.1.0 enabled

也可以打开 Jarvis UI,进入 Settings → Extensions 查看状态和贡献数量。

在 Jarvis chat 输入:

/ssh-tunnel 15432:database.internal:5432 bastion

Phase 1 的 slash command 不是任意代码 handler。这个命令会启动 pack 中的 open-tunnel workflow,并把参数渲染到 taskTemplate

终端窗口
.venv/bin/jarvis extensions disable example.ssh-tunnel
.venv/bin/jarvis extensions uninstall example.ssh-tunnel

停用会移除 pack 拥有的 profile、workflow 和 command。已有 workflow run 使用创建时的快照,历史记录仍可读。

jarvis-pack.yaml not found

确认命令参数指向 pack 根目录,而不是 profiles/workflows/ 子目录。

command collision

你声明的 slash command 与内置命令或另一个已启用 pack 冲突。换一个命令名后重新验证。

我能发布自定义 slash command 吗?

可以,但 Phase 1 只支持声明式 Core action:startWorkflowlaunchProfileopenRoute。不能发布任意 handler 代码。