dsh-plugin-mobile-gateway 0.10.4 → 0.11.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/PROTOCOL.md CHANGED
@@ -1395,3 +1395,41 @@ history. Older gateways without the capability continue using one connection.
1395
1395
  取消回执只表示已发出取消信号;原转写随后返回 `speech/cancelled`,资源清理完成前仍占并发名额。断线、网关停止会中止该连接的活动转写和状态订阅。其他连接不能取消这个转写,即使属于同一设备。客户端上滑取消、切换页面或替换草稿后必须忽略旧请求的迟到结果。
1396
1396
 
1397
1397
  错误统一为 `kind:error`,包含 `requestType`, `requestId`, `code`, `message`。网关错误包括 `authentication-required`, `wrong-channel`, `bad-request`, `speech/unavailable`, `speech/busy`, `speech/request-in-progress`, `speech/request-not-found`, `speech/invalid-audio`, `speech/cancelled`, `speech/timeout`, `speech/invalid-response`, `speech/stream-ended`;官方插件的 `speech/transcription-failed` 等错误代码保留。
1398
+
1399
+ ## 智能体团队与子会话(agent-team-v1 / subagent-conversations-v1)
1400
+
1401
+ 当前源码新增两个协议 3 可选能力,Host 适配基线为 DSH 0.2.1-rc.2、Session format 4。完整 APP 实施规范见 [智能体团队 APP 详细接入指南](docs/agent-team-app-integration.md),包含成员与任务完整字段、目录树、视图切换、消息和停止、投影缓存、恢复流程及验收清单。
1402
+
1403
+ | 连接 | 请求/推送 | 说明 |
1404
+ |---|---|---|
1405
+ | control | `agent-team` | 请求 `sessionId` 为 Lead ID,`requestId?` 回显;响应 `agentTeam` 完整值及 `projectionState`、精确值的 `asOfSeq` |
1406
+ | control | `subagents` | 请求 `sessionId` 为父节点 ID,`requestId?` 回显;响应 `subagentCatalog` 直接子节点数组及相同投影状态字段 |
1407
+ | control | `agent-team-updated` | `{sessionId,asOfSeq,agentTeam}`,团队完整值替换,null 表示失效 |
1408
+ | control | `subagents-updated` | `{sessionId,asOfSeq,subagentCatalog}`,父节点直接子目录完整替换,null 表示失效 |
1409
+ | control | `subagent-identity-updated` | `{sessionId,asOfSeq,subagent}`,该子会话身份完整值或 null |
1410
+ | control | `subagent-timing-updated` | `{sessionId,asOfSeq,subagentTiming}`,该子会话耗时完整值或 null |
1411
+ | control | `session-status` | `{sessionId,running}`,全局进程内运行状态;初始/重连用 sessions 刷新 |
1412
+
1413
+ 两个查询都返回 `projectionState: ready | unavailable | migration-required`。没有投影是 null,空目录是 `[]`,空任务板是团队对象中的 `tasks:[]`;迁移提示没有 `asOfSeq`,不能当作精确基线。未找到会话返回 `session/not-found`。查询不激活 Agent、不调用模型。capability 仅表示网关理解协议,不保证 Host 已启用实验性团队插件。
1414
+
1415
+ 新增投影键 `agentTeam/subagentCatalog/subagent/subagentTiming` 同时出现在 `projection-baseline`。上述更新与运行状态不受当前聊天 subscribe 过滤,仅发往 control/legacy。Host control 重建会发送替换基线及失效通知;基线未包含冷会话不表示会话删除。各投影按 `(gatewayId, sessionId, projectionKey)` 管理水位,不能跨会话或跨键比较 seq。初始运行状态从 sessions 查询取得,实时状态不具备持久 seq。
1416
+
1417
+ 子会话沿用现有 `sessionId` 为当前视图 ID,增加 `parentSessionId`(直接父会话)和 `subagentMode`(`continuable | one-shot | unknown`);这两个字段必须一起提供。普通会话不带它们,external 节点没有本地子会话地址。
1418
+
1419
+ ```json
1420
+ {"type":"subscribe","sessionId":"child","parentSessionId":"lead","subagentMode":"continuable","assistantStream":true}
1421
+ {"type":"history","sessionId":"child","parentSessionId":"lead","subagentMode":"continuable","requestId":"h1","beforeSeq":20,"historyFormatVersion":4}
1422
+ {"type":"message","sessionId":"child","parentSessionId":"lead","subagentMode":"continuable","requestId":"m1","mode":"queue","text":"继续处理当前任务"}
1423
+ {"type":"session-cancel","sessionId":"child","parentSessionId":"lead","subagentMode":"continuable","requestId":"stop1"}
1424
+ {"type":"tasks","sessionId":"child","parentSessionId":"lead","subagentMode":"continuable","requestId":"todos1"}
1425
+ ```
1426
+
1427
+ - conversation:`history/subscribe/message`;control:`session-cancel/tasks/goal`。`goal` 同样支持子地址。其他操作不能仅凭此能力推定支持子地址。
1428
+ - `subscribed`、follower 的 snapshot/event/assistant-stream/reset 回显父子地址;切换使用新 `subscriptionId/streamId`。旧 legacy 持久事件可能只有 sessionId。
1429
+ - history、tasks、goal、session-cancel 的正常响应及查询失败回显原请求 requestId(如果提供)。`sent` 对子消息额外返回 `messageId`、父子地址以及原 requestId。
1430
+ - 子消息内部使用官方专用 continuation 接口;`message.mode` 仍是 queue/steer,不表示生命周期。只有 continuable 能发送与停止。
1431
+ - 共享任务来自 Lead 的 `agentTeam.tasks`,负责人字段是 `ownerName`;成员 `todos` 仍是独立内部待办。
1432
+ - 普通子目录包含 continuable/one-shot/external/unknown;按父节点逐级读取,不自动递归。
1433
+ - 子会话父子关系由 Host 校验,非法关系返回 `subagent/unauthorized` 等错误;无法继续的模式返回 `subagent/not-resumable`。
1434
+ - 发送回执只表示 inbox 接受,不保证执行完成,也不提供自动重试去重保证。断线无回执应核对历史/队列,不能盲目重发。
1435
+ - 本次不提供直接创建成员或变更共享任务的移动 RPC;由用户在 Lead 对话中提出要求,Host 团队工具执行,APP 等待权威投影更新。
package/README.md CHANGED
@@ -10,7 +10,9 @@ DeepSeek Harness 的设备鉴权移动网关,支持会话与实时事件、排
10
10
  >
11
11
  > 实时流已改为独立 `assistant-stream` 帧,移动端需要按 [rc.2 接入说明](docs/dsh-rc2-mobile-integration.md) 更新订阅、缓存与分页处理。当前修改尚未发布。
12
12
  >
13
- > v0.10.4(当前源码):精简会话列表投影,仅保留标题与投影切点,修复大量会话通过公网隧道传输时超时的问题;保留会话元信息和历史完整投影,现有移动客户端无需配套修改。
13
+ > v0.11.0(当前源码,尚未发布):新增智能体团队与子会话协议,支持团队成员、共享任务看板、多层子智能体目录和运行状态实时同步,以及子智能体独立历史、视图切换、继续对话、图片输入与停止执行。APP 需按能力发现接入,详见 [智能体团队 APP 详细接入指南](docs/agent-team-app-integration.md)。
14
+ >
15
+ > v0.10.4:精简会话列表投影,仅保留标题与投影切点,修复大量会话通过公网隧道传输时超时的问题;保留会话元信息和历史完整投影,现有移动客户端无需配套修改。
14
16
  >
15
17
  > v0.10.3:适配 DSH 0.2.1-rc.2,为 Remote 请求及实时订阅补齐 Connection Peer,修复 `Cannot read properties of undefined (reading 'signal')` 报错,并在网关停止时释放 Peer。移动端协议保持不变。
16
18
  >
@@ -52,6 +54,8 @@ DSH_INSTALL_ROOT=/absolute/path/to/@deepseek-ai/dsh node test/host-official.test
52
54
 
53
55
  当前源码新增 `turn-outline-v1`:透传 WebUI 使用的完整轮次大纲及实时更新,支持 App 在未加载全部正文时展示会话刻度、问答预览并按需分页跳转。控制连接重建和新设备连接会恢复大纲基线;Host 未提供大纲时可降级为已加载轮次导航。详见 [App 会话轮次导航接入指南](docs/turn-outline-app-integration.md)。App 界面需单独接入,本次源码尚未发布。
54
56
 
57
+ 当前源码新增 `agent-team-v1`、`subagent-conversations-v1`:支持团队成员与共享任务板查询、各层子智能体目录、团队投影和成员运行状态实时同步,以及子会话独立历史、订阅、继续对话与停止执行。APP 的目标地址、完整 JSON 示例、看板规则、切换与重连状态机、错误处理和验收清单见 [智能体团队 APP 详细接入指南](docs/agent-team-app-integration.md)。本次只提供网关能力,APP 页面需单独接入,源码尚未发布。
58
+
55
59
  ## 多网关第一阶段(当前源码)
56
60
 
57
61
  插件提供稳定 `gatewayId`、可配置 `gatewayName`、配对候选地址列表,以及可持久化的“关闭 / 临时开启 / 常驻开启”运行模式。一个 App 可以分别配对不同机器上的网关;客户端多网关管理仍需按 [App 对接说明](docs/multi-gateway-app-integration.md) 实现。本次源码尚未发布新的 npm 版本。