Appearance
命令体系
IM 命令从用户视角分为五组。命令入口是 src/bridge/command/dispatch.ts,具体处理按工作流拆在 src/bridge/command/ 下;会话、绑定、线程接管和归档的业务规则归 src/bridge/session/ 所有,command 层主要负责 slash 解析、用户文案、卡片和 delivery。
| 分组 | 典型命令 | 功能 |
|---|---|---|
| 会话和线程 | /t、/new、/clear、/t rename、/t unbind | 接管、新建、云文档群聊模式、切换、归档、重命名、解绑会话 |
| runtime 设置 | /runtime、/provider、/model、/mode、/reasoning、/sandbox、/network、/cd | 修改当前会话的运行参数 |
| 状态和诊断 | /、/status、/check、/doctor、/his | 查看状态、健康检查、历史和排障 |
| 终端和文件 | /shell、/tmux-*、/pty-screen、/cat、/file | 执行命令、观察终端、发送文件 |
| 自动化和管理 | /every、/then、/require-at、/ui、/set、/hot-update | 定时输入、后续输入、通道策略、显示和全局设置 |
从本机 audit.jsonl 的实际使用看,高频命令集中在 /provider、/clear、/t、/mode、/tmux-screen、/new、/runtime、/pty-screen、/set 和 /hot-update。这说明新用户文档应优先讲清楚“接管会话、清理/新建会话、切 provider、观察终端屏幕、调整配置”这些路径,再补完整命令索引。
用户使用原则
- 直接发送普通文本:继续当前绑定会话。
- 发送
//...:把以/开头的内容作为模型 prompt,而不是 bridge 命令。 - 未绑定会话时,普通文本会进入临时草稿线程;正式接管用
/t。 - 修改当前会话参数优先用
/runtime、/provider、/model、/cd等会话级命令。 - 修改全局默认值用
/set;卡片按 TOML section 写入~/.codelark/config.toml。 /every用于按固定间隔重复发送 prompt;/then用于在当前会话 completed/interrupted 后发送一次后续 prompt。两者都支持列表卡片和卡片操作,/then还支持通过卡片新建、修改和取消。/doctor可不带参数;也可使用/doctor bridge_id:d3c20e05 2026-06-04 17:48或/doctor d3c20e05 2026-06-04 17:48,让当前会话读取结构化 JSONLbridge.log时优先用目标 id 和时间点搜索,并优先检查level=ERROR/WARN、event、msg、chat、lane等字段。
设计模块
命令展示
IM 内 /h 的文案由 src/bridge/command/help.ts 生成。Web 工作台“命令说明”页面在 src/operator-ui/shell.ts 中渲染。新增命令时需要同步这两处用户入口。
模块边界:生产代码中只有 bridge/host 直接调用 bridge/command;通道、turn、runtime 等横向 owner 不直接 import command,command 也不反向 import bridge/host/*。跨 turn 和 command 共用的 agent question 回调协议位于 src/bridge/callbacks/agent-question.ts。命令需要的聊天绑定和 startup target 共享入口分别是 src/bridge/session/channel-router.ts 和 src/bridge/startup-notice-target.ts。