@jingyi0605/codingns4dsh 0.2.1-beta.1 → 0.2.1-beta.3

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.
Files changed (217) hide show
  1. package/README.en.md +25 -14
  2. package/README.md +21 -17
  3. package/data/build/dist/client/bundle.js +366 -81
  4. package/data/build/dist/client/bundle.js.map +1 -1
  5. package/data/build/dist/client/locales/fileWorkspace.d.ts.map +1 -1
  6. package/data/build/dist/client/locales/fileWorkspace.js +4 -0
  7. package/data/build/dist/client/locales/fileWorkspace.js.map +1 -1
  8. package/data/build/dist/client/locales/peerHostWorkspace.d.ts.map +1 -1
  9. package/data/build/dist/client/locales/peerHostWorkspace.js +16 -2
  10. package/data/build/dist/client/locales/peerHostWorkspace.js.map +1 -1
  11. package/data/build/dist/client/peer-host-native-projection.d.ts +4 -3
  12. package/data/build/dist/client/peer-host-native-projection.d.ts.map +1 -1
  13. package/data/build/dist/client/peer-host-native-projection.js +7 -6
  14. package/data/build/dist/client/peer-host-native-projection.js.map +1 -1
  15. package/data/build/dist/client/peer-host-native-store-projection.js +9 -21
  16. package/data/build/dist/client/peer-host-native-store-projection.js.map +1 -1
  17. package/data/build/dist/client/peer-host-workspace-tab.d.ts.map +1 -1
  18. package/data/build/dist/client/peer-host-workspace-tab.js +139 -10
  19. package/data/build/dist/client/peer-host-workspace-tab.js.map +1 -1
  20. package/data/build/dist/client/session-changed-files-view.d.ts.map +1 -1
  21. package/data/build/dist/client/session-changed-files-view.js +162 -58
  22. package/data/build/dist/client/session-changed-files-view.js.map +1 -1
  23. package/data/build/dist/client/skill-command.d.ts +1 -1
  24. package/data/build/dist/client/skill-command.d.ts.map +1 -1
  25. package/data/build/dist/client/skill-command.js +25 -2
  26. package/data/build/dist/client/skill-command.js.map +1 -1
  27. package/data/build/dist/client/skill-reference-dom.js +1 -1
  28. package/data/build/dist/client/skill-reference-dom.js.map +1 -1
  29. package/data/build/dist/client/terminal/styles.js +2 -2
  30. package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.d.ts +28 -0
  31. package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.d.ts.map +1 -0
  32. package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.js +109 -0
  33. package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.js.map +1 -0
  34. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts +25 -3
  35. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts.map +1 -1
  36. package/data/build/dist/host/cli-adapters/acp-cli-driver.js +120 -9
  37. package/data/build/dist/host/cli-adapters/acp-cli-driver.js.map +1 -1
  38. package/data/build/dist/host/cli-adapters/acp-elicitation.d.ts +31 -0
  39. package/data/build/dist/host/cli-adapters/acp-elicitation.d.ts.map +1 -0
  40. package/data/build/dist/host/cli-adapters/acp-elicitation.js +144 -0
  41. package/data/build/dist/host/cli-adapters/acp-elicitation.js.map +1 -0
  42. package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts +2 -1
  43. package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts.map +1 -1
  44. package/data/build/dist/host/cli-adapters/antigravity-driver.js +15 -2
  45. package/data/build/dist/host/cli-adapters/antigravity-driver.js.map +1 -1
  46. package/data/build/dist/host/cli-adapters/attachment-utils.d.ts +16 -5
  47. package/data/build/dist/host/cli-adapters/attachment-utils.d.ts.map +1 -1
  48. package/data/build/dist/host/cli-adapters/attachment-utils.js +152 -42
  49. package/data/build/dist/host/cli-adapters/attachment-utils.js.map +1 -1
  50. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +23 -8
  51. package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
  52. package/data/build/dist/host/cli-adapters/claude-driver.js +227 -70
  53. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  54. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts +7 -1
  55. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts.map +1 -1
  56. package/data/build/dist/host/cli-adapters/codebuddy-driver.js +143 -6
  57. package/data/build/dist/host/cli-adapters/codebuddy-driver.js.map +1 -1
  58. package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
  59. package/data/build/dist/host/cli-adapters/codex-driver.js +74 -6
  60. package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
  61. package/data/build/dist/host/cli-adapters/command-code-acp-loader.d.ts +23 -0
  62. package/data/build/dist/host/cli-adapters/command-code-acp-loader.d.ts.map +1 -0
  63. package/data/build/dist/host/cli-adapters/command-code-acp-loader.js +39 -0
  64. package/data/build/dist/host/cli-adapters/command-code-acp-loader.js.map +1 -0
  65. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts +17 -6
  66. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
  67. package/data/build/dist/host/cli-adapters/command-code-driver.js +448 -26
  68. package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
  69. package/data/build/dist/host/cli-adapters/command-code-subscription.d.ts +1 -1
  70. package/data/build/dist/host/cli-adapters/command-code-subscription.d.ts.map +1 -1
  71. package/data/build/dist/host/cli-adapters/command-code-subscription.js +7 -4
  72. package/data/build/dist/host/cli-adapters/command-code-subscription.js.map +1 -1
  73. package/data/build/dist/host/cli-adapters/cursor-driver.d.ts +1 -1
  74. package/data/build/dist/host/cli-adapters/cursor-driver.js +2 -2
  75. package/data/build/dist/host/cli-adapters/cursor-driver.js.map +1 -1
  76. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.js +1 -1
  77. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.js.map +1 -1
  78. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
  79. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +28 -0
  80. package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
  81. package/data/build/dist/host/cli-adapters/dsh-tool-history.d.ts.map +1 -1
  82. package/data/build/dist/host/cli-adapters/dsh-tool-history.js +23 -1
  83. package/data/build/dist/host/cli-adapters/dsh-tool-history.js.map +1 -1
  84. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  85. package/data/build/dist/host/cli-adapters/feature.js +5 -3
  86. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  87. package/data/build/dist/host/cli-adapters/gemini-driver.d.ts +2 -1
  88. package/data/build/dist/host/cli-adapters/gemini-driver.d.ts.map +1 -1
  89. package/data/build/dist/host/cli-adapters/gemini-driver.js +66 -11
  90. package/data/build/dist/host/cli-adapters/gemini-driver.js.map +1 -1
  91. package/data/build/dist/host/cli-adapters/grok-driver.d.ts +5 -2
  92. package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
  93. package/data/build/dist/host/cli-adapters/grok-driver.js +268 -18
  94. package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
  95. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts +2 -0
  96. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
  97. package/data/build/dist/host/cli-adapters/json-rpc-process.js +8 -3
  98. package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
  99. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts +4 -0
  100. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts.map +1 -1
  101. package/data/build/dist/host/cli-adapters/kimi-driver.js +11 -4
  102. package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
  103. package/data/build/dist/host/cli-adapters/kiro-driver.js +1 -1
  104. package/data/build/dist/host/cli-adapters/kiro-driver.js.map +1 -1
  105. package/data/build/dist/host/cli-adapters/mcode-driver.d.ts +6 -2
  106. package/data/build/dist/host/cli-adapters/mcode-driver.d.ts.map +1 -1
  107. package/data/build/dist/host/cli-adapters/mcode-driver.js +95 -26
  108. package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -1
  109. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts +55 -1
  110. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts.map +1 -1
  111. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js +148 -6
  112. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js.map +1 -1
  113. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts +7 -0
  114. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts.map +1 -1
  115. package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -1
  116. package/data/build/dist/host/cli-adapters/new-api-subscription.d.ts.map +1 -1
  117. package/data/build/dist/host/cli-adapters/new-api-subscription.js +11 -58
  118. package/data/build/dist/host/cli-adapters/new-api-subscription.js.map +1 -1
  119. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +5 -2
  120. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts.map +1 -1
  121. package/data/build/dist/host/cli-adapters/opencode-driver.js +136 -18
  122. package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
  123. package/data/build/dist/host/cli-adapters/pi-driver.d.ts.map +1 -1
  124. package/data/build/dist/host/cli-adapters/pi-driver.js +2 -1
  125. package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
  126. package/data/build/dist/host/cli-adapters/process-utils.d.ts +10 -0
  127. package/data/build/dist/host/cli-adapters/process-utils.d.ts.map +1 -1
  128. package/data/build/dist/host/cli-adapters/process-utils.js +20 -0
  129. package/data/build/dist/host/cli-adapters/process-utils.js.map +1 -1
  130. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +3 -0
  131. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts.map +1 -1
  132. package/data/build/dist/host/cli-adapters/provider-subscription.js +42 -8
  133. package/data/build/dist/host/cli-adapters/provider-subscription.js.map +1 -1
  134. package/data/build/dist/host/cli-adapters/qoder-driver.d.ts +4 -4
  135. package/data/build/dist/host/cli-adapters/qoder-driver.d.ts.map +1 -1
  136. package/data/build/dist/host/cli-adapters/qoder-driver.js +31 -8
  137. package/data/build/dist/host/cli-adapters/qoder-driver.js.map +1 -1
  138. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  139. package/data/build/dist/host/cli-adapters/registry.js +5 -3
  140. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  141. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts.map +1 -1
  142. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js +2 -9
  143. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js.map +1 -1
  144. package/data/build/dist/host/cli-adapters/skill-filesystem.d.ts +25 -0
  145. package/data/build/dist/host/cli-adapters/skill-filesystem.d.ts.map +1 -0
  146. package/data/build/dist/host/cli-adapters/skill-filesystem.js +161 -0
  147. package/data/build/dist/host/cli-adapters/skill-filesystem.js.map +1 -0
  148. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +1 -0
  149. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  150. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +7 -1
  151. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  152. package/data/build/dist/host/cli-adapters/subagent-tool.d.ts.map +1 -1
  153. package/data/build/dist/host/cli-adapters/subagent-tool.js +40 -10
  154. package/data/build/dist/host/cli-adapters/subagent-tool.js.map +1 -1
  155. package/data/build/dist/host/cli-adapters/zcode-driver.d.ts +8 -2
  156. package/data/build/dist/host/cli-adapters/zcode-driver.d.ts.map +1 -1
  157. package/data/build/dist/host/cli-adapters/zcode-driver.js +166 -55
  158. package/data/build/dist/host/cli-adapters/zcode-driver.js.map +1 -1
  159. package/data/build/dist/host/cli-adapters/zcode-interactions.d.ts +18 -0
  160. package/data/build/dist/host/cli-adapters/zcode-interactions.d.ts.map +1 -0
  161. package/data/build/dist/host/cli-adapters/zcode-interactions.js +90 -0
  162. package/data/build/dist/host/cli-adapters/zcode-interactions.js.map +1 -0
  163. package/data/build/dist/host/cli-adapters/zcode-provider-config.d.ts +26 -0
  164. package/data/build/dist/host/cli-adapters/zcode-provider-config.d.ts.map +1 -0
  165. package/data/build/dist/host/cli-adapters/zcode-provider-config.js +102 -0
  166. package/data/build/dist/host/cli-adapters/zcode-provider-config.js.map +1 -0
  167. package/data/build/dist/host/cli-adapters/zcode-subscription.d.ts +2 -7
  168. package/data/build/dist/host/cli-adapters/zcode-subscription.d.ts.map +1 -1
  169. package/data/build/dist/host/cli-adapters/zcode-subscription.js.map +1 -1
  170. package/data/build/dist/host/cli-adapters/zcode-telemetry.d.ts +17 -0
  171. package/data/build/dist/host/cli-adapters/zcode-telemetry.d.ts.map +1 -0
  172. package/data/build/dist/host/cli-adapters/zcode-telemetry.js +124 -0
  173. package/data/build/dist/host/cli-adapters/zcode-telemetry.js.map +1 -0
  174. package/data/build/dist/host/cli-bridge/bridge-holder.d.ts +4 -1
  175. package/data/build/dist/host/cli-bridge/bridge-holder.d.ts.map +1 -1
  176. package/data/build/dist/host/cli-bridge/bridge-holder.js.map +1 -1
  177. package/data/build/dist/host/cli-bridge/bridge-server.d.ts +11 -3
  178. package/data/build/dist/host/cli-bridge/bridge-server.d.ts.map +1 -1
  179. package/data/build/dist/host/cli-bridge/bridge-server.js +8 -4
  180. package/data/build/dist/host/cli-bridge/bridge-server.js.map +1 -1
  181. package/data/build/dist/host/cli-bridge/command-code-mod.js +18 -2
  182. package/data/build/dist/host/cli-bridge/command-code-mod.js.map +1 -1
  183. package/data/build/dist/host/cli-bridge/dispatch.d.ts.map +1 -1
  184. package/data/build/dist/host/cli-bridge/dispatch.js +30 -5
  185. package/data/build/dist/host/cli-bridge/dispatch.js.map +1 -1
  186. package/data/build/dist/host/cli-bridge/injections.d.ts +2 -9
  187. package/data/build/dist/host/cli-bridge/injections.d.ts.map +1 -1
  188. package/data/build/dist/host/cli-bridge/injections.js +9 -19
  189. package/data/build/dist/host/cli-bridge/injections.js.map +1 -1
  190. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js +49 -7
  191. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js.map +1 -1
  192. package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
  193. package/data/build/dist/host/features/peer-host.js +23 -0
  194. package/data/build/dist/host/features/peer-host.js.map +1 -1
  195. package/data/build/dist/host/index.d.ts +1 -1
  196. package/data/build/dist/host/index.d.ts.map +1 -1
  197. package/data/build/dist/host/index.js +4 -1
  198. package/data/build/dist/host/index.js.map +1 -1
  199. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts +2 -0
  200. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts.map +1 -1
  201. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js +5 -0
  202. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js.map +1 -1
  203. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.d.ts.map +1 -1
  204. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js +3 -1
  205. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js.map +1 -1
  206. package/data/build/dist/host/rpc.d.ts.map +1 -1
  207. package/data/build/dist/host/rpc.js +5 -0
  208. package/data/build/dist/host/rpc.js.map +1 -1
  209. package/data/build/dist/shared/contracts/cli-adapter.d.ts +4 -0
  210. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  211. package/data/build/dist/shared/contracts/version.d.ts +1 -1
  212. package/data/build/dist/shared/contracts/version.js +1 -1
  213. package/package.json +3 -1
  214. package/profile/README.md +2 -2
  215. package/profile/package.json +2 -2
  216. package/profile/version.json +1 -1
  217. package/version.json +1 -1
@@ -0,0 +1,90 @@
1
+ import { readAgentQuestions } from './interaction-events.js';
2
+ /** 缺省权限必须覆盖恢复会话残留的 yolo 模式,不能沿用 Provider 的宽松设置。 */
3
+ export function zcodePermissionMode(input) {
4
+ if (input.plan === true || input.permission?.sandboxMode === 'read-only')
5
+ return 'plan';
6
+ if (input.permission?.approvalPolicy !== 'never')
7
+ return 'build';
8
+ if (input.permission.sandboxMode === 'danger-full-access')
9
+ return 'yolo';
10
+ return input.permission.sandboxMode === 'workspace-write' ? 'edit' : 'build';
11
+ }
12
+ /** 只识别真正的反向 RPC 请求,不把流式工具快照再次当成问题。 */
13
+ export function readZcodeInteraction(message) {
14
+ if (typeof message.id !== 'string' && typeof message.id !== 'number')
15
+ return null;
16
+ const params = isRecord(message.params) ? message.params : {};
17
+ const requestId = text(params.requestId) ?? String(message.id);
18
+ const callId = text(params.toolCallId);
19
+ const toolName = text(params.toolName);
20
+ const withCall = callId === undefined ? {} : { callId };
21
+ const detail = [text(params.reason), stringify(params.input)].filter(Boolean).join('\n');
22
+ if (message.method === 'interaction/requestPermission') {
23
+ return {
24
+ event: { type: 'permission-request', requestId, kind: 'tool', ...withCall,
25
+ ...(toolName === undefined ? {} : { toolName }), ...(detail ? { detail } : {}) },
26
+ permissionResponse: (response) => ({ decision: response.approved ? 'allow' : 'deny',
27
+ ...(response.reason === undefined ? {} : { reason: response.reason }) }),
28
+ questionResponse: () => ({ decision: 'deny' }),
29
+ cancelled: { decision: 'deny', reason: 'DSH 交互已取消' },
30
+ };
31
+ }
32
+ if (message.method !== 'interaction/requestUserInput')
33
+ return null;
34
+ const schema = isRecord(params.schema) ? params.schema : {};
35
+ // ExitPlanMode 也是 requestUserInput,但它授权实施计划,必须走审批入口。
36
+ if (schema.interaction === 'plan_approval') {
37
+ const plan = isRecord(params.input) ? text(params.input.plan) : undefined;
38
+ return {
39
+ event: { type: 'permission-request', requestId, kind: 'plan', ...withCall,
40
+ toolName: toolName ?? 'exitPlanMode', ...(plan ? { detail: plan } : {}) },
41
+ permissionResponse: (response) => response.approved
42
+ ? { action: 'accept', content: { answer: 'approve' } }
43
+ : { action: 'decline', ...(response.reason === undefined ? {} : { reason: response.reason }) },
44
+ questionResponse: () => ({ action: 'decline' }),
45
+ cancelled: { action: 'cancel' },
46
+ };
47
+ }
48
+ const source = Array.isArray(params.questions) ? params.questions : [];
49
+ const questions = readAgentQuestions(source);
50
+ if (questions.length === 0)
51
+ return null;
52
+ return {
53
+ event: { type: 'question-request', requestId, questions, ...withCall },
54
+ permissionResponse: () => ({ action: 'cancel' }),
55
+ questionResponse: (response) => {
56
+ if (response.answers.length === 0)
57
+ return { action: 'cancel' };
58
+ const answers = {};
59
+ for (const question of questions) {
60
+ const answer = response.answers.find((item) => item.id === question.id);
61
+ if (answer === undefined)
62
+ continue;
63
+ // ZCode 不接受 DSH 的 question-N 键:答案键必须是原始问题正文。
64
+ const original = source.find((item) => isRecord(item) && text(item.question)?.trim() === question.question);
65
+ if (!isRecord(original) || typeof original.question !== 'string')
66
+ continue;
67
+ const options = Array.isArray(original.options) ? original.options : [];
68
+ answers[original.question] = [
69
+ ...answer.selected.map((label) => {
70
+ const option = options.find((item) => isRecord(item) && text(item.label)?.trim() === label);
71
+ return isRecord(option) ? text(option.value) ?? label : label;
72
+ }),
73
+ ...(answer.custom?.trim() ? [answer.custom.trim()] : []),
74
+ ];
75
+ }
76
+ return { action: 'accept', content: { answers } };
77
+ },
78
+ cancelled: { action: 'cancel' },
79
+ };
80
+ }
81
+ function text(value) {
82
+ return typeof value === 'string' && value.trim() !== '' ? value : undefined;
83
+ }
84
+ function stringify(value) {
85
+ return value === undefined ? undefined : typeof value === 'string' ? value : JSON.stringify(value);
86
+ }
87
+ function isRecord(value) {
88
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
89
+ }
90
+ //# sourceMappingURL=zcode-interactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zcode-interactions.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-interactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type CodingNsDesktopAppRuntime } from './desktop-app-runtime.js';
2
+ export interface ZcodeProviderConfigOptions {
3
+ readonly homeDirectory?: string;
4
+ readonly personalProviderConfigPath?: string;
5
+ readonly builtinProviderConfigPath?: string;
6
+ readonly credentialsPath?: string;
7
+ readonly credentialSecret?: string;
8
+ readonly runtime?: CodingNsDesktopAppRuntime | null;
9
+ }
10
+ export interface ZcodeProviderConfig {
11
+ readonly providerId: string;
12
+ readonly accessMode?: string;
13
+ /** 只有地址和凭据同时可用时才允许查询;原始凭据始终留在 Host。 */
14
+ readonly source: {
15
+ readonly baseUrl: string;
16
+ readonly apiKey: string;
17
+ } | null;
18
+ }
19
+ /**
20
+ * 按原生顺序合并模板、内置 Provider 和个人覆盖规则。
21
+ * ZCode 把地址存于 config.api,把密钥存于 config.access;不能递归猜测顶层字段。
22
+ */
23
+ export declare function readZcodeProviderConfigs(providerId?: string, options?: ZcodeProviderConfigOptions): ZcodeProviderConfig[];
24
+ /** AES-GCM 回退格式与本机 ZCode 一致;认证失败时不把密文当成 API Key。 */
25
+ export declare function decryptZcodeProviderCredential(value: string, credentialSecret?: string): string;
26
+ //# sourceMappingURL=zcode-provider-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zcode-provider-config.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-provider-config.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAErG,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAA;IAC5C,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;CACpD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC9E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,0BAA+B,GAAG,mBAAmB,EAAE,CAwC7H;AAED,oDAAoD;AACpD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAe/F"}
@@ -0,0 +1,102 @@
1
+ import { createDecipheriv, createHash } from 'node:crypto';
2
+ import { readFileSync } from 'node:fs';
3
+ import { homedir, userInfo } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { resolveZCodeDesktopRuntime } from './desktop-app-runtime.js';
6
+ /**
7
+ * 按原生顺序合并模板、内置 Provider 和个人覆盖规则。
8
+ * ZCode 把地址存于 config.api,把密钥存于 config.access;不能递归猜测顶层字段。
9
+ */
10
+ export function readZcodeProviderConfigs(providerId, options = {}) {
11
+ const home = options.homeDirectory ?? homedir();
12
+ const runtime = options.runtime === undefined && options.homeDirectory === undefined
13
+ ? resolveZCodeDesktopRuntime() : options.runtime;
14
+ const builtinPath = options.builtinProviderConfigPath
15
+ ?? (options.homeDirectory === undefined ? process.env.ZCODE_BUILTIN_PROVIDER_CONFIG_FILE : undefined)
16
+ ?? runtime?.env.ZCODE_BUILTIN_PROVIDER_CONFIG_FILE;
17
+ const personalPath = options.personalProviderConfigPath
18
+ ?? (options.homeDirectory === undefined ? process.env.ZCODE_PERSONAL_PROVIDER_CONFIG_FILE : undefined)
19
+ ?? join(home, '.zcode', 'v2', 'provider_config.json');
20
+ const documents = [readJson(builtinPath), readJson(personalPath)];
21
+ const templates = new Map();
22
+ const providers = new Map();
23
+ for (const document of documents) {
24
+ const rules = document?.config?.providerConfigRules;
25
+ for (const template of Array.isArray(rules?.templateRules) ? rules.templateRules : []) {
26
+ if (typeof template?.templateId === 'string')
27
+ templates.set(template.templateId, overlay(templates.get(template.templateId), template.config));
28
+ }
29
+ }
30
+ for (const document of documents) {
31
+ const rules = document?.config?.providerConfigRules?.providerRules;
32
+ for (const rule of Array.isArray(rules) ? rules : []) {
33
+ if (typeof rule?.providerId !== 'string')
34
+ continue;
35
+ const base = providers.get(rule.providerId) ?? templates.get(rule.templateId);
36
+ providers.set(rule.providerId, overlay(base, rule.config));
37
+ }
38
+ }
39
+ const credentials = readJson(options.credentialsPath
40
+ ?? (options.homeDirectory === undefined ? process.env.ZCODE_CREDENTIALS_FILE : undefined)
41
+ ?? join(home, '.zcode', 'v2', 'credentials.json'));
42
+ return [...providers].filter(([id]) => providerId === undefined || id === providerId).map(([id, config]) => {
43
+ const baseUrl = text(config.api?.baseUrl ?? config.api?.baseURL ?? config.baseUrl ?? config.baseURL ?? config.endpoint);
44
+ const prefix = `account-provider:coding-plan:${id}:account:`;
45
+ const credentialKey = Object.keys(credentials ?? {}).find((key) => key.startsWith(prefix) && key.endsWith(':api-key'));
46
+ const encoded = text(config.access?.apiKey ?? config.apiKey ?? config.api_key)
47
+ ?? (credentialKey === undefined ? null : text(credentials?.[credentialKey]));
48
+ const apiKey = encoded === null ? null : text(decryptZcodeProviderCredential(encoded, options.credentialSecret));
49
+ return { providerId: id, ...(typeof config.access?.mode === 'string' ? { accessMode: config.access.mode } : {}),
50
+ source: baseUrl === null || apiKey === null ? null : { baseUrl, apiKey } };
51
+ });
52
+ }
53
+ /** AES-GCM 回退格式与本机 ZCode 一致;认证失败时不把密文当成 API Key。 */
54
+ export function decryptZcodeProviderCredential(value, credentialSecret) {
55
+ if (!value.startsWith('enc:v1:'))
56
+ return value.trim();
57
+ const [ivRaw, tagRaw, cipherRaw] = value.slice(7).split('.');
58
+ if (!ivRaw || !tagRaw || !cipherRaw)
59
+ return '';
60
+ try {
61
+ let username = 'unknown';
62
+ try {
63
+ username = userInfo().username;
64
+ }
65
+ catch { /* 受限环境可能没有用户名。 */ }
66
+ const secret = credentialSecret ?? `zcode-credential-fallback:${process.platform}:${homedir()}:${username}`;
67
+ const iv = Buffer.from(ivRaw, 'base64url');
68
+ const tag = Buffer.from(tagRaw, 'base64url');
69
+ if (iv.length !== 12 || tag.length !== 16)
70
+ return '';
71
+ const decipher = createDecipheriv('aes-256-gcm', createHash('sha256').update(secret).digest(), iv);
72
+ decipher.setAuthTag(tag);
73
+ return Buffer.concat([decipher.update(Buffer.from(cipherRaw, 'base64url')), decipher.final()]).toString('utf8').trim();
74
+ }
75
+ catch {
76
+ return '';
77
+ }
78
+ }
79
+ function overlay(base, value) {
80
+ if (!isRecord(value))
81
+ return base ?? {};
82
+ const result = { ...base, ...value };
83
+ for (const key of ['api', 'access']) {
84
+ if (isRecord(value[key]))
85
+ result[key] = { ...base?.[key], ...value[key] };
86
+ }
87
+ return result;
88
+ }
89
+ function readJson(path) {
90
+ if (path === undefined)
91
+ return null;
92
+ try {
93
+ const value = JSON.parse(readFileSync(path, 'utf8'));
94
+ return isRecord(value) ? value : null;
95
+ }
96
+ catch {
97
+ return null;
98
+ }
99
+ }
100
+ function isRecord(value) { return value !== null && typeof value === 'object' && !Array.isArray(value); }
101
+ function text(value) { return typeof value === 'string' && value.trim() !== '' ? value.trim() : null; }
102
+ //# sourceMappingURL=zcode-provider-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zcode-provider-config.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-provider-config.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,12 @@
1
1
  import type { CliSubscriptionUsage } from '../../shared/contracts/subscription.js';
2
- import { type CodingNsDesktopAppRuntime } from './desktop-app-runtime.js';
2
+ import type { ZcodeProviderConfigOptions } from './zcode-provider-config.js';
3
3
  type FetchLike = typeof fetch;
4
4
  /** ZCode Start Plan 的 billing/balance 读取器;凭据与设备标识始终只在 Host 内处理。 */
5
- export interface ZcodeSubscriptionOptions {
5
+ export interface ZcodeSubscriptionOptions extends ZcodeProviderConfigOptions {
6
6
  readonly fetch?: FetchLike;
7
7
  readonly timeoutMs?: number;
8
- readonly homeDirectory?: string;
9
- readonly credentialsPath?: string;
10
8
  readonly telemetryPath?: string;
11
- readonly credentialSecret?: string;
12
9
  readonly appVersion?: string;
13
- /** 测试或桌面运行时探测失败时注入运行时快照。 */
14
- readonly runtime?: CodingNsDesktopAppRuntime | null;
15
10
  }
16
11
  /** 读取 ZCode 套餐余额、已用额度和剩余额度。 */
17
12
  export declare class ZcodeSubscriptionService {
@@ -1 +1 @@
1
- {"version":3,"file":"zcode-subscription.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-subscription.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAwB,MAAM,wCAAwC,CAAA;AACxG,OAAO,EAA8B,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAErG,KAAK,SAAS,GAAG,OAAO,KAAK,CAAA;AAK7B,mEAAmE;AACnE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;CACpD;AAsCD,+BAA+B;AAC/B,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,OAAO,GAAE,wBAA6B;IAO5C,IAAI,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAmDlD,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"zcode-subscription.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-subscription.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAwB,MAAM,wCAAwC,CAAA;AAExG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AAE5E,KAAK,SAAS,GAAG,OAAO,KAAK,CAAA;AAK7B,mEAAmE;AACnE,MAAM,WAAW,wBAAyB,SAAQ,0BAA0B;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAsCD,+BAA+B;AAC/B,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,OAAO,GAAE,wBAA6B;IAO5C,IAAI,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAmDlD,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;CAGtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"zcode-subscription.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-subscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zcode-subscription.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-subscription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { CodingNsAgentEvent, CodingNsAgentToolEvent } from '../../shared/contracts/cli-adapter.js';
2
+ import type { JsonRpcMessage } from './json-rpc-process.js';
3
+ /** 每轮独立持有统计;累计账单和当前请求上下文是两种数据,不能互相覆盖。 */
4
+ export declare class ZcodeTurnTelemetry {
5
+ private readonly sessionId;
6
+ private readonly seen;
7
+ private readonly samples;
8
+ private readonly tools;
9
+ private context;
10
+ constructor(sessionId: string);
11
+ observe(message: JsonRpcMessage): CodingNsAgentToolEvent | null;
12
+ /** 原生模型完成事件没有窗口时才读取快照;窗口以实际请求报告为准。 */
13
+ get needsContextSnapshot(): boolean;
14
+ readContextSnapshot(value: unknown): void;
15
+ finish(legacyUsage: unknown, baseline: unknown): CodingNsAgentEvent | null;
16
+ }
17
+ //# sourceMappingURL=zcode-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zcode-telemetry.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AACvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAK3D,yCAAyC;AACzC,qBAAa,kBAAkB;IAMjB,OAAO,CAAC,QAAQ,CAAC,SAAS;IALtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsD;IAC5E,OAAO,CAAC,OAAO,CAA0D;gBAE5C,SAAS,EAAE,MAAM;IAE9C,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,sBAAsB,GAAG,IAAI;IAwD/D,sCAAsC;IACtC,IAAI,oBAAoB,IAAI,OAAO,CAAoD;IAEvF,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IASzC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI;CA2B3E"}
@@ -0,0 +1,124 @@
1
+ import { isRecord, usageChunk } from './rpc-driver-utils.js';
2
+ /** 每轮独立持有统计;累计账单和当前请求上下文是两种数据,不能互相覆盖。 */
3
+ export class ZcodeTurnTelemetry {
4
+ sessionId;
5
+ seen = new Set();
6
+ samples = [];
7
+ tools = new Map();
8
+ context = {};
9
+ constructor(sessionId) {
10
+ this.sessionId = sessionId;
11
+ }
12
+ observe(message) {
13
+ if (message.method !== 'session/event')
14
+ return null;
15
+ const params = isRecord(message.params) ? message.params : {};
16
+ if (typeof params.sessionId === 'string' && params.sessionId !== this.sessionId)
17
+ return null;
18
+ const key = typeof params.eventId === 'string' ? params.eventId
19
+ : typeof params.seq === 'number' ? `seq:${params.seq}` : undefined;
20
+ if (key !== undefined && this.seen.has(key))
21
+ return null;
22
+ if (key !== undefined)
23
+ this.seen.add(key);
24
+ const payload = isRecord(params.payload) ? params.payload : {};
25
+ // model_request_completed 网络通知也有 usage,但同一次请求稍后还会收到
26
+ // ModelComplete。只结算带 stopReason 的模型完成事件,避免双倍计费。
27
+ if (params.type === 'session.updated' && typeof payload.stopReason === 'string') {
28
+ const sample = usageChunk(payload.usage);
29
+ if (sample?.type === 'usage') {
30
+ this.samples.push(sample);
31
+ if (payload.querySource === 'main_turn' || payload.querySource === undefined) {
32
+ this.context = { contextTokens: sample.totalTokens ?? sample.inputTokens + sample.outputTokens,
33
+ ...(positive(payload.contextWindow) === undefined ? {} : { contextWindow: payload.contextWindow }) };
34
+ }
35
+ }
36
+ }
37
+ const callId = typeof payload.toolCallId === 'string' ? payload.toolCallId : undefined;
38
+ if (callId === undefined)
39
+ return null;
40
+ const tool = this.tools.get(callId) ?? { name: zcodeToolName(payload.toolName) };
41
+ if (typeof payload.toolName === 'string')
42
+ tool.name = zcodeToolName(payload.toolName);
43
+ this.tools.set(callId, tool);
44
+ if (params.type === 'model.streaming') {
45
+ if (payload.kind === 'tool_input_start')
46
+ tool.input = '';
47
+ if (payload.kind === 'tool_input_delta' && typeof payload.delta === 'string') {
48
+ tool.input = `${tool.input ?? ''}${payload.delta}`.slice(0, 64 * 1024);
49
+ }
50
+ return payload.kind === 'tool_input_end'
51
+ ? { type: 'tool-event', callId, toolName: tool.name, status: 'started', ...(tool.input === undefined ? {} : { input: tool.input }) } : null;
52
+ }
53
+ if (params.type !== 'tool.updated')
54
+ return null;
55
+ if (payload.input !== undefined)
56
+ tool.input = serialize(payload.input);
57
+ const base = { type: 'tool-event', callId, toolName: tool.name,
58
+ ...(tool.input === undefined ? {} : { input: tool.input }) };
59
+ if (payload.kind === 'scheduled' || payload.kind === 'started')
60
+ return { ...base, status: 'started' };
61
+ if (payload.kind === 'progress') {
62
+ return { ...base, status: 'running', ...(typeof payload.outputPreview === 'string'
63
+ ? { output: payload.outputPreview, outputMode: 'snapshot' } : {}) };
64
+ }
65
+ if (payload.kind === 'result') {
66
+ const result = isRecord(payload.result) ? payload.result : {};
67
+ const output = serialize(result.content ?? result.error ?? '');
68
+ return { ...base, status: result.success === false ? 'failed' : 'completed', output, outputMode: 'snapshot',
69
+ ...(result.success === false ? { error: firstText(result.error, output) ?? 'ZCode 工具执行失败' } : {}) };
70
+ }
71
+ if (payload.kind === 'error') {
72
+ const error = firstText(payload.error?.message, payload.error, payload.message) ?? serialize(payload.error ?? payload);
73
+ return { ...base, status: 'failed', error, output: error, outputMode: 'snapshot' };
74
+ }
75
+ return null;
76
+ }
77
+ /** 原生模型完成事件没有窗口时才读取快照;窗口以实际请求报告为准。 */
78
+ get needsContextSnapshot() { return this.context.contextWindow === undefined; }
79
+ readContextSnapshot(value) {
80
+ const root = isRecord(value) && isRecord(value.snapshot) ? value.snapshot : value;
81
+ const projection = isRecord(root) && isRecord(root.projection) ? root.projection : {};
82
+ const window = positive(projection.contextWindow);
83
+ const tokens = nonnegative(projection.contextUsed);
84
+ if (window !== undefined && this.context.contextWindow === undefined)
85
+ this.context = { ...this.context, contextWindow: window };
86
+ if (this.context.contextTokens === undefined && tokens !== undefined)
87
+ this.context = { ...this.context, contextTokens: tokens };
88
+ }
89
+ finish(legacyUsage, baseline) {
90
+ let usage = null;
91
+ if (this.samples.length > 0) {
92
+ const sum = (key) => this.samples.reduce((total, sample) => total + (sample[key] ?? 0), 0);
93
+ usage = usageChunk({ inputTokens: sum('inputTokens'), outputTokens: sum('outputTokens'),
94
+ cacheReadTokens: sum('cacheReadTokens'), cacheWriteTokens: sum('cacheWriteTokens'),
95
+ totalTokens: this.samples.reduce((total, sample) => total + (sample.totalTokens ?? sample.inputTokens + sample.outputTokens), 0) });
96
+ }
97
+ else if (isRecord(legacyUsage) && !isRecord(legacyUsage.inputBaselineBySource)) {
98
+ // 旧 CLI 没有模型用量事件;只对原始累计桶求差。新 CLI 的基线去重口径
99
+ // 不是请求消耗,不能拿它冒充账单或推导缓存命中率。
100
+ const current = usageChunk(legacyUsage);
101
+ const previous = usageChunk(baseline);
102
+ if (current?.type === 'usage') {
103
+ const values = {};
104
+ const reset = previous?.type === 'usage' && current.inputTokens < previous.inputTokens;
105
+ for (const key of ['inputTokens', 'outputTokens', 'cacheReadTokens', 'cacheWriteTokens', 'totalTokens']) {
106
+ if (current[key] !== undefined)
107
+ values[key] = Math.max(0, current[key] - (!reset && previous?.type === 'usage' ? previous[key] ?? 0 : 0));
108
+ }
109
+ usage = usageChunk(values);
110
+ }
111
+ }
112
+ if (usage === null)
113
+ return usageChunk({ inputTokens: 0, outputTokens: 0, ...this.context });
114
+ const { contextWindow, contextTokens } = this.context;
115
+ return { ...usage, ...this.context, ...(contextWindow !== undefined && contextTokens !== undefined
116
+ ? { contextUsageRatio: Number(Math.min(1, contextTokens / contextWindow).toFixed(6)) } : {}) };
117
+ }
118
+ }
119
+ function positive(value) { const number = nonnegative(value); return number !== undefined && number > 0 ? number : undefined; }
120
+ function nonnegative(value) { return typeof value === 'number' && Number.isFinite(value) && value >= 0 ? value : undefined; }
121
+ function serialize(value) { return typeof value === 'string' ? value : JSON.stringify(value) ?? ''; }
122
+ function firstText(...values) { return values.find((value) => typeof value === 'string' && value.trim() !== ''); }
123
+ function zcodeToolName(value) { return value === 'AskUserQuestion' ? 'question' : typeof value === 'string' ? value : 'tool'; }
124
+ //# sourceMappingURL=zcode-telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zcode-telemetry.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/zcode-telemetry.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,13 @@
4
4
  * Host 装配桥接服务后写入;驱动在拼参数/环境时读取。运行时不保存任何凭据到
5
5
  * 磁盘:token 与端口只存在于当前进程,并通过注入通道下发给外部 CLI 子进程。
6
6
  */
7
- /** 一次被桥接接管的子代理调用结果,供驱动把 hook_blocked 投影为完成态。 */
7
+ /** 一次被桥接接管的子代理调用结果,供驱动把 hook_blocked 投影为真实状态。 */
8
8
  export interface SubagentBridgeRedirect {
9
9
  readonly childSessionId: string;
10
10
  readonly ok: boolean;
11
+ /** 后台派发只表示已创建;必须保留 running,不能伪装成 completed。 */
12
+ readonly completed?: boolean | undefined;
13
+ readonly status?: 'running' | 'completed' | 'failed' | 'interrupted' | undefined;
11
14
  readonly toolCalls: number;
12
15
  }
13
16
  export interface SubagentBridgeRuntime {
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-holder.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-bridge/bridge-holder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,gDAAgD;IAChD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAA;IAC7F,sCAAsC;IACtC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAA;CAC3F;AAOD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS,GAAG,IAAI,CAElF;AAED,wBAAgB,iBAAiB,IAAI,qBAAqB,GAAG,SAAS,CAErE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,qBAAqB,CA6BhI"}
1
+ {"version":3,"file":"bridge-holder.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-bridge/bridge-holder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAA;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,gDAAgD;IAChD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAA;IAC7F,sCAAsC;IACtC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAA;CAC3F;AAOD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS,GAAG,IAAI,CAElF;AAED,wBAAgB,iBAAiB,IAAI,qBAAqB,GAAG,SAAS,CAErE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,qBAAqB,CA6BhI"}
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-holder.js","sourceRoot":"","sources":["../../../../../src/host/cli-bridge/bridge-holder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAA;AACnC,MAAM,aAAa,GAAG,IAAI,CAAA;AAE1B,IAAI,OAA0C,CAAA;AAE9C,MAAM,UAAU,iBAAiB,CAAC,OAA0C;IAC1E,OAAO,GAAG,OAAO,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA6D;IACvG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqF,CAAA;IAC9G,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAU,EAAE,CAAC,GAAG,SAAS,SAAS,UAAU,EAAE,CAAA;IAClG,MAAM,KAAK,GAAG,CAAC,GAAW,EAAQ,EAAE;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG;gBAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnD,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC;gBAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzG,CAAC;IACH,CAAC,CAAA;IACD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ;YAC5C,IAAI,SAAS,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE;gBAAE,OAAM;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,KAAK,CAAC,GAAG,CAAC,CAAA;YACV,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,GAAG,eAAe,EAAE,CAAC,CAAA;QAC7F,CAAC;QACD,eAAe,CAAC,SAAS,EAAE,UAAU;YACnC,IAAI,SAAS,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE;gBAAE,OAAO,SAAS,CAAA;YAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACzC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACrB,OAAO,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;QACnE,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"bridge-holder.js","sourceRoot":"","sources":["../../../../../src/host/cli-bridge/bridge-holder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAA;AACnC,MAAM,aAAa,GAAG,IAAI,CAAA;AAE1B,IAAI,OAA0C,CAAA;AAE9C,MAAM,UAAU,iBAAiB,CAAC,OAA0C;IAC1E,OAAO,GAAG,OAAO,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA6D;IACvG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqF,CAAA;IAC9G,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAU,EAAE,CAAC,GAAG,SAAS,SAAS,UAAU,EAAE,CAAA;IAClG,MAAM,KAAK,GAAG,CAAC,GAAW,EAAQ,EAAE;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG;gBAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnD,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC;gBAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzG,CAAC;IACH,CAAC,CAAA;IACD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ;YAC5C,IAAI,SAAS,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE;gBAAE,OAAM;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,KAAK,CAAC,GAAG,CAAC,CAAA;YACV,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,GAAG,eAAe,EAAE,CAAC,CAAA;QAC7F,CAAC;QACD,eAAe,CAAC,SAAS,EAAE,UAAU;YACnC,IAAI,SAAS,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE;gBAAE,OAAO,SAAS,CAAA;YAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACzC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACrB,OAAO,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;QACnE,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -3,7 +3,10 @@ import type { SubagentBridgeRuntime } from './bridge-holder.js';
3
3
  export interface SubagentBridgeDispatchRequest {
4
4
  readonly sessionId: string;
5
5
  readonly prompt: string;
6
- readonly action?: 'start' | 'wait' | 'read' | undefined;
6
+ readonly action?: 'start' | 'wait' | 'read' | 'send' | undefined;
7
+ readonly message?: string | undefined;
8
+ /** start 是否只创建后台子会话并立即返回;外部 CLI 桥接默认由调用方显式传 true。 */
9
+ readonly runInBackground?: boolean | undefined;
7
10
  readonly childSessionId?: string | undefined;
8
11
  readonly dependsOn?: readonly string[] | undefined;
9
12
  readonly timeoutMs?: number | undefined;
@@ -20,7 +23,11 @@ export interface SubagentBridgeDispatchResult {
20
23
  readonly status?: 'creating' | 'running' | 'completed' | 'failed' | 'interrupted' | undefined;
21
24
  readonly text: string;
22
25
  readonly childSessionId?: string | undefined;
26
+ readonly messageId?: string | undefined;
23
27
  readonly toolCalls?: number | undefined;
28
+ readonly failureReviewed?: boolean | undefined;
29
+ readonly failureReviewRequired?: boolean | undefined;
30
+ readonly failureGuidance?: string | undefined;
24
31
  readonly error?: string | undefined;
25
32
  }
26
33
  export interface SubagentBridgeServer {
@@ -30,8 +37,9 @@ export interface SubagentBridgeServer {
30
37
  /**
31
38
  * 本机回环桥接服务:只监听 127.0.0.1,每次启动生成随机令牌。
32
39
  *
33
- * 一次派发可能阻塞十几分钟等待子代理首轮,因此关闭 HTTP 请求超时;
34
- * 认证失败、路由不存在和内部错误都返回稳定的 JSON 结构。
40
+ * 显式 foreground 派发可能阻塞较长时间,因此关闭 HTTP 请求超时;默认的外部
41
+ * MCP/Command Code start 走后台路径,会在创建子会话后立即返回。认证失败、
42
+ * 路由不存在和内部错误都返回稳定的 JSON 结构。
35
43
  */
36
44
  export declare function startSubagentBridgeServer(options: {
37
45
  readonly dispatch: (request: SubagentBridgeDispatchRequest) => Promise<SubagentBridgeDispatchResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-server.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-bridge/bridge-server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,2BAA2B;AAC3B,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAA;IAC7F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAA;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAID;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,OAAO,CAAC,4BAA4B,CAAC,CAAA;CACrG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0BhC"}
1
+ {"version":3,"file":"bridge-server.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-bridge/bridge-server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,2BAA2B;AAC3B,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,qDAAqD;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAA;IAC7F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAA;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAID;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,OAAO,CAAC,4BAA4B,CAAC,CAAA;CACrG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0BhC"}
@@ -5,8 +5,9 @@ const MAX_BODY_BYTES = 2 * 1024 * 1024;
5
5
  /**
6
6
  * 本机回环桥接服务:只监听 127.0.0.1,每次启动生成随机令牌。
7
7
  *
8
- * 一次派发可能阻塞十几分钟等待子代理首轮,因此关闭 HTTP 请求超时;
9
- * 认证失败、路由不存在和内部错误都返回稳定的 JSON 结构。
8
+ * 显式 foreground 派发可能阻塞较长时间,因此关闭 HTTP 请求超时;默认的外部
9
+ * MCP/Command Code start 走后台路径,会在创建子会话后立即返回。认证失败、
10
+ * 路由不存在和内部错误都返回稳定的 JSON 结构。
10
11
  */
11
12
  export async function startSubagentBridgeServer(options) {
12
13
  const token = randomBytes(24).toString('hex');
@@ -104,8 +105,9 @@ function readDispatchRequest(value) {
104
105
  const record = value;
105
106
  const sessionId = typeof record.sessionId === 'string' ? record.sessionId.trim() : '';
106
107
  const prompt = typeof record.prompt === 'string' ? record.prompt : '';
107
- const action = record.action === 'wait' || record.action === 'read' || record.action === 'start' ? record.action : 'start';
108
- if (sessionId === '' || action === 'start' && prompt.trim() === '')
108
+ const action = record.action === 'wait' || record.action === 'read' || record.action === 'send' || record.action === 'start' ? record.action : 'start';
109
+ const message = typeof record.message === 'string' ? record.message : '';
110
+ if (sessionId === '' || action === 'start' && prompt.trim() === '' || action === 'send' && message.trim() === '' && prompt.trim() === '')
109
111
  return undefined;
110
112
  const optional = (key) => {
111
113
  const raw = record[key];
@@ -115,6 +117,8 @@ function readDispatchRequest(value) {
115
117
  sessionId,
116
118
  prompt,
117
119
  action,
120
+ ...(message.trim() === '' ? {} : { message }),
121
+ ...(typeof record.runInBackground === 'boolean' ? { runInBackground: record.runInBackground } : {}),
118
122
  ...(typeof record.childSessionId === 'string' && record.childSessionId.trim() !== '' ? { childSessionId: record.childSessionId.trim() } : {}),
119
123
  ...(Array.isArray(record.dependsOn) ? { dependsOn: record.dependsOn.filter((item) => typeof item === 'string' && item.trim() !== '').map((item) => item.trim()) } : {}),
120
124
  ...(typeof record.timeoutMs === 'number' && Number.isFinite(record.timeoutMs) ? { timeoutMs: record.timeoutMs } : {}),