扩展快速开始
本教程面向第一次编写 Jarvis 扩展包的开发者。完成后,你会安装一个本地示例 pack,并确认 /ssh-tunnel slash command 已由 Jarvis Core 接管。
前置条件
标题为“前置条件”的章节- 已从源码运行 Jarvis。
- 已能在仓库根目录执行后端 CLI。
- 当前目录是 Jarvis 仓库根。
1. 验证示例 pack
标题为“1. 验证示例 pack”的章节.venv/bin/jarvis extensions validate examples/extensions/ssh-tunnel-pack成功输出形态:
OK example.ssh-tunnel@0.1.0contributions: profiles: 1, workflows: 1, commands: 1校验不会写入数据库或 profile 目录。它只读取 jarvis-pack.yaml、profile YAML 和 workflow YAML。
2. 安装并启用 pack
标题为“2. 安装并启用 pack”的章节.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 --enable3. 查看已安装 pack
标题为“3. 查看已安装 pack”的章节.venv/bin/jarvis extensions list成功输出形态:
example.ssh-tunnel 0.1.0 enabled也可以打开 Jarvis UI,进入 Settings → Extensions 查看状态和贡献数量。
4. 验证 slash command
标题为“4. 验证 slash command”的章节在 Jarvis chat 输入:
/ssh-tunnel 15432:database.internal:5432 bastionPhase 1 的 slash command 不是任意代码 handler。这个命令会启动 pack 中的 open-tunnel workflow,并把参数渲染到 taskTemplate。
5. 停用或卸载
标题为“5. 停用或卸载”的章节.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:startWorkflow、launchProfile 和 openRoute。不能发布任意 handler 代码。