@coda-console/protocol 1.9.1 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/agent-protocol.md +15 -5
- package/package.json +1 -1
- package/schemas/agent/display.json +13 -0
package/docs/agent-protocol.md
CHANGED
|
@@ -27,6 +27,7 @@ ACP 的消息、内容块、会话指令和能力由 ACP SDK 校验,这里只
|
|
|
27
27
|
| 工具更新的 `_meta.coda.review` | [review.json](../schemas/agent/review.json);已知风险值见 `$defs/risk` |
|
|
28
28
|
| 用量更新的 `_meta.coda` | [usage.json](../schemas/agent/usage.json) |
|
|
29
29
|
| 配置选项的 `_meta.coda.default` | [default.json](../schemas/agent/default.json)(传入 `_meta.coda` 对象) |
|
|
30
|
+
| 模型、模式、配置项及其选项的 `_meta.coda.shortName` | [display.json](../schemas/agent/display.json)(传入 `_meta.coda` 对象) |
|
|
30
31
|
|
|
31
32
|
`@coda-console/protocol/agent` 导出 `agentMessageProblem(method, params)`、`agentResultProblem(method, result)`、
|
|
32
33
|
`agentCapabilitiesProblem(meta, party = 'agent')` 和 `agentValueProblem(ref, value, where)`,合法返回 `null`,
|
|
@@ -105,6 +106,11 @@ ACP 只允许在一轮(`session/prompt`)进行时交互。Agent 在两轮之
|
|
|
105
106
|
`clientCapabilities.session.configOptions.boolean` 里声明接受开关型。会话设置里按配置项 ID 给的值,每轮开始前设给 Agent;当前模型没有这一项就不设。
|
|
106
107
|
Coda 设过、会话设置里又去掉的(用户选回「Agent 默认」),切回 Agent 标了 `_meta.coda.default` 的那一项,没标就切回 Coda 第一次设它之前、
|
|
107
108
|
同一模型下 Agent 报的值,两样都不知道就不改。Agent 自己改的 Coda 不去改回;用户在会话里用命令改的(如 Codex 的 `/fast`)记进会话设置。名字与说明照 Agent 给的显示。
|
|
109
|
+
模型、模式、配置项及其选项可在 `_meta.coda.shortName` 声明紧凑显示名([display.json](../schemas/agent/display.json)),
|
|
110
|
+
适用于 `configOptions` 的项与叶子选项,以及 `availableModels`、`availableModes` 的项。例如
|
|
111
|
+
`{ "value": "read-only", "name": "Ask for approval", "_meta": { "coda": { "shortName": "审批" } } }`。
|
|
112
|
+
工具栏优先短名,再取完整 `name`,最后取 ID;选择面板和辅助功能保留完整名称。短名由插件声明,客户端不猜测或改写模型 ID,
|
|
113
|
+
不影响设置、分组与执行;插件应保留版本、上下文变体等辨认所需的信息。没声明时保持原有显示。
|
|
108
114
|
- **未登录**:Agent 在 `initialize`、`session/new` 或 `session/load` 回错误 -32000(ACP 的 `auth_required`)时,Coda 告诉用户这个 Agent 未登录,
|
|
109
115
|
到「资源」里添加(面板的登录(Coda 的 docs/plugins.md「面板的登录」));Coda 不调用 `authenticate`,也不按错误文字猜。
|
|
110
116
|
- **Agent 版本**:`initialize` 结果的 `agentInfo`(ACP 的 `name`、`version`)填**实际运行的那个 Agent**:包装了别家 CLI 或 SDK 的插件,
|
|
@@ -409,7 +415,7 @@ Bot 需要随时进到自己的会话里来:说话、调 Coda 的工具、开
|
|
|
409
415
|
|
|
410
416
|
只给 Agent 声明了 `agentCapabilities._meta.coda.remote` 的会话提供 MCP 工具 `new_session`;
|
|
411
417
|
会话启动时生成工具列表,其他会话不列出它,直接调用也拒绝。
|
|
412
|
-
Bot
|
|
418
|
+
Bot 是工作的发起者:批准后开的是普通根会话,首条任务的回复权归发起会话;独立会话身份与回复对象分开记录。
|
|
413
419
|
|
|
414
420
|
参数为 `agent`、`prompt`、`requestId`、`turn`、`project`,以及可选的 `model`、`effort`、`mode`、`options`、`checkout`、`title`。
|
|
415
421
|
`agent` 是 Agent 的 ID,或用户给的 Agent 链接 `coda://agents/<UUID>?…`,原样照填:Coda 从链接取 Agent 与它所在的机器,
|
|
@@ -426,13 +432,17 @@ Agent、模型、强度、审批档位、其他配置、标题和任务全文;
|
|
|
426
432
|
不在调用里等用户,卡片的提醒、归档失效沿用会话授权卡片。
|
|
427
433
|
|
|
428
434
|
允许后在目标目录建根会话(`shared` 用原目录,`worktree` 从卡片写明的默认分支新建工作树),第一条消息就是 `prompt`,审批档位保留卡片批准的参数,不跟随 Bot;标题固定为批准的标题。
|
|
429
|
-
没有 parent
|
|
430
|
-
|
|
435
|
+
没有 parent,但首条任务建立发起会话的一次调用(沿用 `send` 的会话间回复机制)。任务完成或失败后,结果自动送回并唤醒发起会话;
|
|
436
|
+
这次任务引发的后续沿用补交规则。用户在新会话里另发的消息仍回复用户。PR 事件的 `coda.session` 仍采用新会话自己的 Agent 与配置。
|
|
437
|
+
会话数据的 `initiatedBy` 保存 `{threadId, title, reference}`,表示「由哪个会话发起」,不附带旧上下文;回复关系由首条任务的调用保存。
|
|
431
438
|
`reference` 是发起会话的 `coda://threads/…`。两端客户端尚未显示这个来源字段。
|
|
432
439
|
|
|
433
440
|
决定以一条 Coda 通知唤醒发起会话:允许为「已开出:标题(Coda 的 docs/coda://threads/<新会话 ID>)」,拒绝为「用户拒绝了:<标题>」,
|
|
434
|
-
|
|
435
|
-
|
|
441
|
+
允许通知同时说明任务结果会自动送回并唤醒发起会话,不必轮询或等待。已决定请求的工具重试返回这句结果,仍保留应交的通知。
|
|
442
|
+
目标若声明外部生命周期,则首条消息附带发起会话地址与原 `requestId`,目标按委派约定用 `send` 的 `replyTo` 明确回传;自主发言不自动作为结果。
|
|
443
|
+
其他机器上的创建走状态层转发的普通首次发送接口;发送前持久化允许决定、提交标识与回复调用,卡片进入 `submitting`。
|
|
444
|
+
目标用固定会话标识创建,并在接受首条任务的同一事务里建立回话;发起机器取认证身份,不信任请求正文提供的机器。
|
|
445
|
+
结果通过现有跨机投递返回,即使任务在创建回执到达前完成也能交回;重复投递不重复唤醒。
|
|
436
446
|
目标暂不可达或应答丢失时,使用原提交标识与允许决定重试恢复同一次创建,不再接受拒绝或其他提交;
|
|
437
447
|
工具重试返回「用户已批准,正在确认新会话;结果会作为新消息告诉你。」,收到创建结果后才通知已开出。
|
|
438
448
|
目标明确拒绝(例如批准前目录已删除)则结算为失败,通知「未能开出:<标题>(<原因>)」;
|
package/package.json
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://coda.pub/schemas/agent/v1/display.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"description": "_meta.coda 须为对象",
|
|
6
|
+
"properties": {
|
|
7
|
+
"shortName": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"pattern": "\\S",
|
|
10
|
+
"description": "shortName 须为非空白文本,用于紧凑位置的显示,不改变选项 ID"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|