@0xmaxma/claude-gateway 2.0.4 → 2.0.5

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 (228) hide show
  1. package/README.md +10 -1
  2. package/dist/agent/builtin-commands.d.ts +1 -1
  3. package/dist/agent/builtin-commands.d.ts.map +1 -1
  4. package/dist/agent/builtin-commands.js +3 -2
  5. package/dist/agent/builtin-commands.js.map +1 -1
  6. package/dist/agent/runner.d.ts +109 -9
  7. package/dist/agent/runner.d.ts.map +1 -1
  8. package/dist/agent/runner.js +148 -119
  9. package/dist/agent/runner.js.map +1 -1
  10. package/dist/agent/skill-learning/index.d.ts.map +1 -1
  11. package/dist/agent/skill-learning/index.js +27 -8
  12. package/dist/agent/skill-learning/index.js.map +1 -1
  13. package/dist/agent/skill-learning/reviewer.d.ts +3 -1
  14. package/dist/agent/skill-learning/reviewer.d.ts.map +1 -1
  15. package/dist/agent/skill-learning/reviewer.js +6 -2
  16. package/dist/agent/skill-learning/reviewer.js.map +1 -1
  17. package/dist/agent/turn-stream.d.ts +3 -1
  18. package/dist/agent/turn-stream.d.ts.map +1 -1
  19. package/dist/agent/turn-stream.js +8 -4
  20. package/dist/agent/turn-stream.js.map +1 -1
  21. package/dist/api/gateway-router.d.ts +2 -0
  22. package/dist/api/gateway-router.d.ts.map +1 -1
  23. package/dist/api/gateway-router.js +229 -12
  24. package/dist/api/gateway-router.js.map +1 -1
  25. package/dist/api/router.js +11 -11
  26. package/dist/api/router.js.map +1 -1
  27. package/dist/api/slack-webhook-router.js +1 -1
  28. package/dist/api/slack-webhook-router.js.map +1 -1
  29. package/dist/api/voice-router.d.ts +1 -0
  30. package/dist/api/voice-router.d.ts.map +1 -1
  31. package/dist/api/voice-router.js +129 -7
  32. package/dist/api/voice-router.js.map +1 -1
  33. package/dist/config/claude-settings.d.ts +14 -0
  34. package/dist/config/claude-settings.d.ts.map +1 -1
  35. package/dist/config/claude-settings.js +20 -0
  36. package/dist/config/claude-settings.js.map +1 -1
  37. package/dist/orchestration/agent-cli-session.d.ts +46 -0
  38. package/dist/orchestration/agent-cli-session.d.ts.map +1 -0
  39. package/dist/orchestration/agent-cli-session.js +121 -0
  40. package/dist/orchestration/agent-cli-session.js.map +1 -0
  41. package/dist/orchestration/agent-tool-schemas.d.ts +6 -0
  42. package/dist/orchestration/agent-tool-schemas.d.ts.map +1 -0
  43. package/dist/orchestration/agent-tool-schemas.js +23 -0
  44. package/dist/orchestration/agent-tool-schemas.js.map +1 -0
  45. package/dist/orchestration/bridge.d.ts +6 -3
  46. package/dist/orchestration/bridge.d.ts.map +1 -1
  47. package/dist/orchestration/bridge.js +31 -14
  48. package/dist/orchestration/bridge.js.map +1 -1
  49. package/dist/orchestration/browser-voice.d.ts +14 -0
  50. package/dist/orchestration/browser-voice.d.ts.map +1 -0
  51. package/dist/orchestration/browser-voice.js +30 -0
  52. package/dist/orchestration/browser-voice.js.map +1 -0
  53. package/dist/orchestration/context-footprint.d.ts +14 -0
  54. package/dist/orchestration/context-footprint.d.ts.map +1 -0
  55. package/dist/orchestration/context-footprint.js +57 -0
  56. package/dist/orchestration/context-footprint.js.map +1 -0
  57. package/dist/orchestration/dashboard-reader-worker.d.ts +2 -0
  58. package/dist/orchestration/dashboard-reader-worker.d.ts.map +1 -0
  59. package/dist/orchestration/dashboard-reader-worker.js +155 -0
  60. package/dist/orchestration/dashboard-reader-worker.js.map +1 -0
  61. package/dist/orchestration/dashboard-reader.d.ts +15 -0
  62. package/dist/orchestration/dashboard-reader.d.ts.map +1 -0
  63. package/dist/orchestration/dashboard-reader.js +87 -0
  64. package/dist/orchestration/dashboard-reader.js.map +1 -0
  65. package/dist/orchestration/decision-context.d.ts +15 -0
  66. package/dist/orchestration/decision-context.d.ts.map +1 -0
  67. package/dist/orchestration/decision-context.js +57 -0
  68. package/dist/orchestration/decision-context.js.map +1 -0
  69. package/dist/orchestration/display-stream.d.ts +21 -2
  70. package/dist/orchestration/display-stream.d.ts.map +1 -1
  71. package/dist/orchestration/display-stream.js +61 -8
  72. package/dist/orchestration/display-stream.js.map +1 -1
  73. package/dist/orchestration/inference-errors.d.ts.map +1 -1
  74. package/dist/orchestration/inference-errors.js +19 -21
  75. package/dist/orchestration/inference-errors.js.map +1 -1
  76. package/dist/orchestration/mutation-recovery.d.ts +12 -0
  77. package/dist/orchestration/mutation-recovery.d.ts.map +1 -0
  78. package/dist/orchestration/mutation-recovery.js +41 -0
  79. package/dist/orchestration/mutation-recovery.js.map +1 -0
  80. package/dist/orchestration/native-compact.d.ts +5 -0
  81. package/dist/orchestration/native-compact.d.ts.map +1 -0
  82. package/dist/orchestration/native-compact.js +29 -0
  83. package/dist/orchestration/native-compact.js.map +1 -0
  84. package/dist/orchestration/notification-mailbox.d.ts +3 -1
  85. package/dist/orchestration/notification-mailbox.d.ts.map +1 -1
  86. package/dist/orchestration/notification-mailbox.js +4 -2
  87. package/dist/orchestration/notification-mailbox.js.map +1 -1
  88. package/dist/orchestration/process-turn.d.ts +15 -2
  89. package/dist/orchestration/process-turn.d.ts.map +1 -1
  90. package/dist/orchestration/process-turn.js +78 -14
  91. package/dist/orchestration/process-turn.js.map +1 -1
  92. package/dist/orchestration/progress-review.d.ts +8 -18
  93. package/dist/orchestration/progress-review.d.ts.map +1 -1
  94. package/dist/orchestration/progress-review.js +12 -14
  95. package/dist/orchestration/progress-review.js.map +1 -1
  96. package/dist/orchestration/provider-message.d.ts +7 -0
  97. package/dist/orchestration/provider-message.d.ts.map +1 -0
  98. package/dist/orchestration/provider-message.js +63 -0
  99. package/dist/orchestration/provider-message.js.map +1 -0
  100. package/dist/orchestration/response-errors.d.ts +6 -0
  101. package/dist/orchestration/response-errors.d.ts.map +1 -0
  102. package/dist/orchestration/response-errors.js +88 -0
  103. package/dist/orchestration/response-errors.js.map +1 -0
  104. package/dist/orchestration/response-schema.d.ts +33 -0
  105. package/dist/orchestration/response-schema.d.ts.map +1 -0
  106. package/dist/orchestration/response-schema.js +61 -0
  107. package/dist/orchestration/response-schema.js.map +1 -0
  108. package/dist/orchestration/runtime.d.ts +67 -0
  109. package/dist/orchestration/runtime.d.ts.map +1 -1
  110. package/dist/orchestration/runtime.js +266 -62
  111. package/dist/orchestration/runtime.js.map +1 -1
  112. package/dist/orchestration/skills.d.ts.map +1 -1
  113. package/dist/orchestration/skills.js +3 -2
  114. package/dist/orchestration/skills.js.map +1 -1
  115. package/dist/orchestration/source-policy.d.ts +1 -1
  116. package/dist/orchestration/source-policy.d.ts.map +1 -1
  117. package/dist/orchestration/source-policy.js +1 -1
  118. package/dist/orchestration/speech.d.ts +15 -17
  119. package/dist/orchestration/speech.d.ts.map +1 -1
  120. package/dist/orchestration/speech.js +90 -30
  121. package/dist/orchestration/speech.js.map +1 -1
  122. package/dist/orchestration/store.d.ts +2 -0
  123. package/dist/orchestration/store.d.ts.map +1 -1
  124. package/dist/orchestration/store.js +16 -1
  125. package/dist/orchestration/store.js.map +1 -1
  126. package/dist/orchestration/tasks/driver.d.ts.map +1 -1
  127. package/dist/orchestration/tasks/driver.js +8 -3
  128. package/dist/orchestration/tasks/driver.js.map +1 -1
  129. package/dist/orchestration/tasks/pool.d.ts.map +1 -1
  130. package/dist/orchestration/tasks/pool.js +8 -4
  131. package/dist/orchestration/tasks/pool.js.map +1 -1
  132. package/dist/orchestration/tasks/service.d.ts +48 -1
  133. package/dist/orchestration/tasks/service.d.ts.map +1 -1
  134. package/dist/orchestration/tasks/service.js +41 -17
  135. package/dist/orchestration/tasks/service.js.map +1 -1
  136. package/dist/orchestration/token-ledger.d.ts +125 -0
  137. package/dist/orchestration/token-ledger.d.ts.map +1 -0
  138. package/dist/orchestration/token-ledger.js +232 -0
  139. package/dist/orchestration/token-ledger.js.map +1 -0
  140. package/dist/orchestration/token-usage.d.ts +46 -0
  141. package/dist/orchestration/token-usage.d.ts.map +1 -0
  142. package/dist/orchestration/token-usage.js +102 -0
  143. package/dist/orchestration/token-usage.js.map +1 -0
  144. package/dist/orchestration/tool-activity.d.ts.map +1 -1
  145. package/dist/orchestration/tool-activity.js +5 -3
  146. package/dist/orchestration/tool-activity.js.map +1 -1
  147. package/dist/orchestration/tool-name.d.ts +10 -0
  148. package/dist/orchestration/tool-name.d.ts.map +1 -0
  149. package/dist/orchestration/tool-name.js +14 -0
  150. package/dist/orchestration/tool-name.js.map +1 -0
  151. package/dist/orchestration/transcript-checkpoint.d.ts +14 -0
  152. package/dist/orchestration/transcript-checkpoint.d.ts.map +1 -0
  153. package/dist/orchestration/transcript-checkpoint.js +83 -0
  154. package/dist/orchestration/transcript-checkpoint.js.map +1 -0
  155. package/dist/orchestration/unanswered-inputs.d.ts +6 -0
  156. package/dist/orchestration/unanswered-inputs.d.ts.map +1 -0
  157. package/dist/orchestration/unanswered-inputs.js +18 -0
  158. package/dist/orchestration/unanswered-inputs.js.map +1 -0
  159. package/dist/session/process.d.ts +10 -0
  160. package/dist/session/process.d.ts.map +1 -1
  161. package/dist/session/process.js +91 -9
  162. package/dist/session/process.js.map +1 -1
  163. package/dist/session/request-tool-capture.d.ts +31 -0
  164. package/dist/session/request-tool-capture.d.ts.map +1 -0
  165. package/dist/session/request-tool-capture.js +194 -0
  166. package/dist/session/request-tool-capture.js.map +1 -0
  167. package/dist/session/runtime-profile.d.ts +7 -3
  168. package/dist/session/runtime-profile.d.ts.map +1 -1
  169. package/dist/session/runtime-profile.js +3 -1
  170. package/dist/session/runtime-profile.js.map +1 -1
  171. package/dist/session/store.d.ts +7 -0
  172. package/dist/session/store.d.ts.map +1 -1
  173. package/dist/session/store.js +27 -0
  174. package/dist/session/store.js.map +1 -1
  175. package/dist/shell/tailer.d.ts +7 -5
  176. package/dist/shell/tailer.d.ts.map +1 -1
  177. package/dist/shell/tailer.js +6 -17
  178. package/dist/shell/tailer.js.map +1 -1
  179. package/dist/ui/cli-viewer-ui.js +1 -1
  180. package/dist/ui/dashboard-client.d.ts +3 -0
  181. package/dist/ui/dashboard-client.d.ts.map +1 -0
  182. package/dist/ui/dashboard-client.js +188 -0
  183. package/dist/ui/dashboard-client.js.map +1 -0
  184. package/dist/ui/dashboard-presentation.d.ts +9 -0
  185. package/dist/ui/dashboard-presentation.d.ts.map +1 -0
  186. package/dist/ui/dashboard-presentation.js +56 -0
  187. package/dist/ui/dashboard-presentation.js.map +1 -0
  188. package/dist/ui/dashboard-range.d.ts +5 -0
  189. package/dist/ui/dashboard-range.d.ts.map +1 -0
  190. package/dist/ui/dashboard-range.js +20 -0
  191. package/dist/ui/dashboard-range.js.map +1 -0
  192. package/dist/ui/dashboard-theme.d.ts +4 -0
  193. package/dist/ui/dashboard-theme.d.ts.map +1 -0
  194. package/dist/ui/dashboard-theme.js +485 -0
  195. package/dist/ui/dashboard-theme.js.map +1 -0
  196. package/dist/ui/token-report-client.d.ts +3 -0
  197. package/dist/ui/token-report-client.d.ts.map +1 -0
  198. package/dist/ui/token-report-client.js +34 -0
  199. package/dist/ui/token-report-client.js.map +1 -0
  200. package/dist/ui/token-report.d.ts +89 -0
  201. package/dist/ui/token-report.d.ts.map +1 -0
  202. package/dist/ui/token-report.js +200 -0
  203. package/dist/ui/token-report.js.map +1 -0
  204. package/dist/ui/web-ui.d.ts.map +1 -1
  205. package/dist/ui/web-ui.js +124 -181
  206. package/dist/ui/web-ui.js.map +1 -1
  207. package/dist/voice/replay.d.ts +8 -0
  208. package/dist/voice/replay.d.ts.map +1 -0
  209. package/dist/voice/replay.js +48 -0
  210. package/dist/voice/replay.js.map +1 -0
  211. package/dist/voice/session.d.ts +9 -0
  212. package/dist/voice/session.d.ts.map +1 -1
  213. package/dist/voice/session.js +72 -14
  214. package/dist/voice/session.js.map +1 -1
  215. package/mcp/lazy-connector.test.ts +58 -0
  216. package/mcp/lazy-connector.ts +67 -0
  217. package/mcp/lazy-tools.test.ts +152 -0
  218. package/mcp/lazy-tools.ts +41 -0
  219. package/mcp/server.ts +53 -34
  220. package/mcp/tools/discord/commands.ts +2 -0
  221. package/mcp/tools/tasks/module.ts +1 -12
  222. package/mcp/tools/telegram/receiver-server.ts +14 -14
  223. package/package.json +2 -1
  224. package/resource/dashboard/OFL.txt +93 -0
  225. package/resource/dashboard/poppins-300.woff2 +0 -0
  226. package/resource/dashboard/poppins-400.woff2 +0 -0
  227. package/resource/dashboard/poppins-500.woff2 +0 -0
  228. package/resource/dashboard/poppins-600.woff2 +0 -0
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentCliSessions = void 0;
4
+ exports.resumeRejected = resumeRejected;
5
+ exports.containerTranscriptCheckpoint = containerTranscriptCheckpoint;
6
+ const fs_1 = require("fs");
7
+ const crypto_1 = require("crypto");
8
+ const claude_settings_1 = require("../config/claude-settings");
9
+ const container_1 = require("./container");
10
+ const os_1 = require("os");
11
+ const types_1 = require("./types");
12
+ const transcript_checkpoint_1 = require("./transcript-checkpoint");
13
+ /** Durable CLI session for an agent's decision turns.
14
+ *
15
+ * Decision turns keep the per-turn spawn/kill lifecycle, so without a stable id every
16
+ * turn got a fresh random session from the CLI, re-sent a flattened copy of the recent
17
+ * history, and paid a full cache write. Reusing one id lets each turn resume the
18
+ * transcript Claude Code already persisted on disk, which the cache matches as a prefix.
19
+ *
20
+ * The transcript file is the authority, not this table: `--resume` and `--session-id` are
21
+ * mutually exclusive (the CLI rejects a missing transcript and rejects reusing a live id),
22
+ * so the decision is re-derived from disk on every turn. This table only records which id
23
+ * belongs to which session, which is what makes a vanished transcript distinguishable from
24
+ * an ordinary first turn.
25
+ */
26
+ class AgentCliSessions {
27
+ constructor(store) {
28
+ this.store = store;
29
+ store.run(`CREATE TABLE IF NOT EXISTS agent_cli_sessions (
30
+ session_id TEXT PRIMARY KEY, cli_session_id TEXT NOT NULL, cwd TEXT NOT NULL,
31
+ updated_at INTEGER NOT NULL)`);
32
+ }
33
+ /** Decide the CLI session for the next decision turn of `sessionId`, running in `cwd`. */
34
+ resolve(sessionId, cwd, requireExisting = false) {
35
+ const start = (fallback) => {
36
+ if (requireExisting)
37
+ throw new types_1.OrchestrationError('NO_CLI_SESSION', 'No existing Claude Code transcript to compact. Chat history was not changed.');
38
+ return this.start(sessionId, cwd, fallback);
39
+ };
40
+ const row = this.store.get('SELECT cli_session_id,cwd FROM agent_cli_sessions WHERE session_id=?', sessionId);
41
+ if (row) {
42
+ const previous = String(row.cli_session_id);
43
+ // A different working directory means a different project slug, so the stored id
44
+ // names a transcript this process would not be resuming into.
45
+ if (String(row.cwd) !== cwd)
46
+ return start('WORKSPACE_CHANGED');
47
+ if (this.transcriptReadable(cwd, previous))
48
+ return { id: previous, resume: true };
49
+ return start('TRANSCRIPT_UNAVAILABLE');
50
+ }
51
+ return start();
52
+ }
53
+ /** Probe in the exact execution boundary; a Docker failure is not a missing
54
+ * transcript and must never trigger host execution or silently discard history. */
55
+ async resolveContainer(sessionId, agent, requireExisting = false) {
56
+ await (0, container_1.validateContainer)(agent);
57
+ const cwd = `container:${agent.container}:/workspace`;
58
+ const start = (fallback) => {
59
+ if (requireExisting)
60
+ throw new types_1.OrchestrationError('NO_CLI_SESSION', 'No existing container Claude Code transcript to compact. Chat history was not changed.');
61
+ return this.start(sessionId, cwd, fallback);
62
+ };
63
+ const row = this.store.get('SELECT cli_session_id,cwd FROM agent_cli_sessions WHERE session_id=?', sessionId);
64
+ if (!row)
65
+ return start();
66
+ if (row.cwd !== cwd)
67
+ return start('WORKSPACE_CHANGED');
68
+ const id = String(row.cli_session_id);
69
+ const result = await (0, container_1.containerNode)(agent.container, `
70
+ const fs=require('fs'),path=require('path');
71
+ const root=process.env.CLAUDE_CONFIG_DIR||path.join(process.argv[2],'.claude');
72
+ const file=path.join(root,'projects','-workspace',process.argv[1]+'.jsonl');
73
+ try { const s=fs.statSync(file);process.stdout.write(s.isFile()&&s.size>0?'present':'missing'); }
74
+ catch(e){if(e.code==='ENOENT')process.stdout.write('missing');else throw e;}
75
+ `, [id, (0, os_1.homedir)()]);
76
+ if (result === 'present')
77
+ return { id, resume: true };
78
+ if (result === 'missing')
79
+ return start('TRANSCRIPT_UNAVAILABLE');
80
+ throw new types_1.OrchestrationError('CONTAINER_TRANSCRIPT_CHECK_FAILED');
81
+ }
82
+ /** A turn observed the CLI refusing the stored id; the next turn must start fresh. */
83
+ forget(sessionId) {
84
+ this.store.run('DELETE FROM agent_cli_sessions WHERE session_id=?', sessionId);
85
+ }
86
+ start(sessionId, cwd, fallback) {
87
+ const id = (0, crypto_1.randomUUID)();
88
+ this.store.run(`INSERT INTO agent_cli_sessions(session_id,cli_session_id,cwd,updated_at) VALUES(?,?,?,?)
89
+ ON CONFLICT(session_id) DO UPDATE SET cli_session_id=excluded.cli_session_id,cwd=excluded.cwd,updated_at=excluded.updated_at`, sessionId, id, cwd, Date.now());
90
+ return { id, resume: false, ...(fallback ? { fallback } : {}) };
91
+ }
92
+ /** An empty file is as unresumable as a missing one and reads as a truncated transcript. */
93
+ transcriptReadable(cwd, cliSessionId) {
94
+ const file = (0, claude_settings_1.transcriptPath)(cwd, cliSessionId);
95
+ try {
96
+ return (0, fs_1.existsSync)(file) && (0, fs_1.statSync)(file).size > 0;
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ }
103
+ exports.AgentCliSessions = AgentCliSessions;
104
+ /** The CLI prints this and exits non-zero when `--resume` names a transcript it cannot read. */
105
+ function resumeRejected(stderr) {
106
+ return typeof stderr === 'string' && /No conversation found with session ID/i.test(stderr);
107
+ }
108
+ /** Execute identical checkpoint/rollback logic inside the app, returning only
109
+ * metadata. The transcript and diagnostic archive never cross the boundary. */
110
+ async function containerTranscriptCheckpoint(container, id) {
111
+ const script = `const path=require('path');const file=path.join(process.env.CLAUDE_CONFIG_DIR||path.join(process.argv[2],'.claude'),'projects','-workspace',process.argv[1]+'.jsonl');
112
+ (${transcript_checkpoint_1.checkpointTranscript.toString()})(file).then(value=>process.stdout.write(JSON.stringify(value||null))).catch(()=>process.exit(1));`;
113
+ const value = JSON.parse(await (0, container_1.containerNode)(container, script, [id, (0, os_1.homedir)()]));
114
+ if (!value)
115
+ return;
116
+ return async () => {
117
+ const result = await (0, container_1.containerNode)(container, `(${transcript_checkpoint_1.rollbackUnansweredTranscript.toString()})(JSON.parse(process.argv[1])).then(value=>process.stdout.write(JSON.stringify(value))).catch(()=>process.exit(1));`, [JSON.stringify(value)]);
118
+ return result === 'true';
119
+ };
120
+ }
121
+ //# sourceMappingURL=agent-cli-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-cli-session.js","sourceRoot":"","sources":["../../src/orchestration/agent-cli-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const AGENT_TASK_TOOLS: Array<{
2
+ name: string;
3
+ description: string;
4
+ inputSchema: Record<string, unknown>;
5
+ }>;
6
+ //# sourceMappingURL=agent-tool-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-tool-schemas.d.ts","sourceRoot":"","sources":["../../src/orchestration/agent-tool-schemas.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAA,WAAW,EAAC,MAAM,CAAC;IAAA,WAAW,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAA;CAAC,CAWvG,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AGENT_TASK_TOOLS = void 0;
4
+ // Shared by the MCP server and read-only dashboard footprint measurement.
5
+ // Every entry is declared on every agent turn: the advertised tool list is position 0 of
6
+ // Anthropic's cached [tools, system, messages] prefix, so a tool that appears on only some
7
+ // turns invalidates the entire cache each time it changes. Per-turn mode belongs in the
8
+ // prompt text below the cache breakpoint, never in this list. See response-schema.ts.
9
+ const schema = (properties, required) => ({ type: 'object', properties, required, additionalProperties: false });
10
+ const text = { type: 'string' };
11
+ exports.AGENT_TASK_TOOLS = [
12
+ { name: 'capabilities_list', description: 'Discover all capabilities this agent can offer: installed/shared/native skills, gateway MCP tools and enabled connector/plugin MCP tools, including tools executed only by workers. Read metadata only; never executes a tool or grants permissions. Use query to find relevant tools before assigning work. Follow next_offset until null when the user asks for the complete list, passing catalog_version from the first page. On CAPABILITY_CATALOG_CHANGED restart from offset 0. Report unavailable discovery honestly; do not confuse your own restricted callable tools with the capabilities of the agent as a whole.', inputSchema: schema({ query: text, catalog_version: text, offset: { type: 'integer', minimum: 0 } }, []) },
13
+ { name: 'conversation_intake', description: 'Only when this turn\'s instructions explicitly ask you to run intake: prepare executable work, incomplete materials, or an amendment to an existing task. Without that instruction this turn, do not call it at all — answer the user directly and use the task tools directly. Do not call it for greetings, introductions, casual conversation or questions you can answer directly; answer those normally once. When semantic intake is enabled, acknowledge before work mutations. Incomplete material is inspected now; the gateway asks the supplied clarification after the configured silence interval, not on every item.',
14
+ inputSchema: schema({ mode: { type: 'string', enum: ['ready', 'wait', 'update'] }, acknowledgement: { type: 'string', description: 'A brief contextual message addressed directly to the user about the work you will do. Immediately displayed and spoken aloud. Never include private classification, reasoning, or instructions to yourself.' }, preparation: text, clarification: text, task_id: text }, ['mode']) },
15
+ { name: 'task_spawn', description: 'Durably queue a task for an independent worker. Returns after commit without waiting for worker startup or completion.',
16
+ inputSchema: schema({ retry_of: { type: 'string', description: 'When correcting a rejected task_spawn, copy retry_of from its error response. Identifies the failed command this retry replaces, including when correcting its instructions. Omit for new or unrelated work.' }, title: text, instructions: text, target_profile: text, spoken_acknowledgement: { type: 'string', description: 'Required for live voice: a short natural response in the user language explaining the specific work you are about to do. Describe the specific user request as your own task, in the voice of your existing persona; do not announce handing it to a worker or use a generic acknowledgement. Speak as the person doing the work; avoid Thai delegation phrases such as สั่งเช็คแล้ว, สั่งไปแล้ว or ส่งให้ตรวจแล้ว. Describe queued work as accepted/to do next, and only say it is running when that state is confirmed. Do not claim completion. The gateway manages playback and channel text-before-voice ordering.' }, skill_name: { type: 'string', description: 'Exact installed gateway or discovered Claude Code runtime skill name for skill-worker. Native skills are invoked directly by the CLI; shared/workspace skills are supplied with their resources. Never supply a file path.' }, skill_args: { type: 'string', description: 'Arguments for the installed skill; required with skill_name.' }, continue_task_id: { type: 'string', description: 'Prior task ID in this conversation for related follow-up work. Reuses its worker session when compatible; waits for success by default. Queue every authorized dependent step now, using each returned task ID for the next step. Omit for independent work.' }, continuation_policy: { type: 'string', enum: ['after_success', 'after_terminal'], description: 'With continue_task_id: after_success (default) starts only after the predecessor succeeds; otherwise fails without executing. Use after_terminal only for explicitly authorized recovery/inspection that must run after failure or cancellation.' }, context_refs: { type: 'array', items: text, description: 'Only orchestration input IDs, authorized attachment refs or task artifact IDs. Put project filenames in instructions instead.' } }, ['title', 'instructions', 'target_profile']) },
17
+ { name: 'task_status', description: 'Read the task index in this conversation without waiting. Pass task_id to retrieve the complete stored result and evidence before discussing an earlier task. An index entry is not a partial worker report.', inputSchema: schema({ task_id: text }, []) },
18
+ { name: 'task_cancel', description: 'Request cancellation, including needs_reconciliation cleanup. cancel_requested is not proof of termination. Existing files are retained. Set replaced_by_task_id only for a known replacement task, never infer from similar titles.', inputSchema: schema({ task_id: text, replaced_by_task_id: text }, ['task_id']) },
19
+ { name: 'task_update', description: 'Accept a revised task instruction. applied_revision changes only when the worker accepts it.', inputSchema: schema({ retry_of: { type: 'string', description: 'When correcting a rejected task_update for this same task, copy retry_of from its error response. Omit for unrelated changes.' }, task_id: text, expected_revision: { type: 'integer', minimum: 1 }, instruction: text, mode: { type: 'string', enum: ['when_ready', 'interrupt_and_resume'] } }, ['task_id', 'expected_revision', 'instruction', 'mode']) },
20
+ { name: 'task_question', description: 'Manage pending questions without answering or resuming work. Ask stages one natural separate message after your reply; discuss marks ongoing consultation; defer/mute/resume persist the user reminder preference.', inputSchema: schema({ action: { type: 'string', enum: ['ask', 'discuss', 'defer', 'mute', 'resume'] }, question_ids: { type: 'array', items: text, minItems: 1, maxItems: 20 }, text, delay_ms: { type: 'integer', minimum: 60000, maximum: 2592000000 } }, ['action', 'question_ids']) },
21
+ { name: 'task_answer', description: 'Answer the matching pending question on a task.', inputSchema: schema({ task_id: text, question_id: text, answer: text }, ['task_id', 'question_id', 'answer']) },
22
+ ];
23
+ //# sourceMappingURL=agent-tool-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-tool-schemas.js","sourceRoot":"","sources":["../../src/orchestration/agent-tool-schemas.ts"],"names":[],"mappings":";;;AAAA,0EAA0E;AAC1E,yFAAyF;AACzF,2FAA2F;AAC3F,wFAAwF;AACxF,sFAAsF;AACtF,MAAM,MAAM,GAAG,CAAC,UAAmC,EAAE,QAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;AACpJ,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnB,QAAA,gBAAgB,GAA+E;IAC1G,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,gmBAAgmB,EAAE,WAAW,EAAE,MAAM,CAAC,EAAC,KAAK,EAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,EAAC,EAAC,EAAE,CAAC,EAAE;IACzuB,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,omBAAomB;QAC9oB,WAAW,EAAE,MAAM,CAAC,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,CAAC,EAAC,EAAC,eAAe,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,6MAA6M,EAAC,EAAC,WAAW,EAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,CAAC,MAAM,CAAC,CAAC,EAAE;IAClY,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,wHAAwH;QACzJ,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,8MAA8M,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,ylBAAylB,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4NAA4N,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8DAA8D,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8PAA8P,EAAE,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,WAAW,EAAE,kPAAkP,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,+HAA+H,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC,EAAE;IACrsE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,8MAA8M,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;IAChS,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,sOAAsO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;IAC5V,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,8FAA8F,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,+HAA+H,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,EAAE;IAC3hB,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,oNAAoN,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAE;IACjhB,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,iDAAiD,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,EAAE;CACvM,CAAC"}
@@ -7,12 +7,13 @@ import type { IntakeChoice } from './conversation-intake';
7
7
  import type { SkillRegistry } from '../skills';
8
8
  type Scope = {
9
9
  role: 'agent';
10
+ compactOnly?: boolean;
10
11
  capabilities?: (args: Record<string, unknown>) => Promise<unknown>;
11
12
  onQuestion?: (context: CommandContext, args: Record<string, unknown>) => unknown;
12
13
  context: Omit<CommandContext, 'actionId'>;
13
14
  onTaskQueued?: (spoken: string) => void;
14
15
  onIntake?: (choice: IntakeChoice) => Promise<unknown>;
15
- onMutationResult?: (actionId: string, committed: boolean) => void;
16
+ onMutationResult?: (actionId: string, committed: boolean, errorCode?: string) => void;
16
17
  beforeMutation?: (tool: string, args: Record<string, unknown>, actionId: string) => Promise<void>;
17
18
  } | {
18
19
  role: 'worker';
@@ -42,8 +43,10 @@ export declare class TaskBridge {
42
43
  };
43
44
  close(): Promise<void>;
44
45
  }
45
- /** Container task-only MCP inventory; no host media/browser/memory delegation. */
46
- export declare function containerTaskTools(role: 'agent' | 'worker', semanticIntake?: boolean): {
46
+ /** Container task-only MCP inventory; no host media/browser/memory delegation.
47
+ * Invariant per role for the same reason as AGENT_TASK_TOOLS: this array becomes the
48
+ * container agent's advertised tool list, i.e. the head of its cached prompt prefix. */
49
+ export declare function containerTaskTools(role: 'agent' | 'worker'): {
47
50
  name: string;
48
51
  description: string;
49
52
  inputSchema: {
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/orchestration/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/orchestration/bridge.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskBridge = void 0;
4
4
  exports.containerTaskTools = containerTaskTools;
5
+ const mutation_recovery_1 = require("./mutation-recovery");
5
6
  const workflow_1 = require("./workflow");
6
7
  const checkpoint_hook_1 = require("./tasks/checkpoint-hook");
7
8
  const http_1 = require("http");
@@ -34,12 +35,13 @@ class TaskBridge {
34
35
  async start() {
35
36
  const server = (0, http_1.createServer)(async (request, response) => {
36
37
  response.setHeader('Content-Type', 'application/json');
38
+ let retryOf;
37
39
  try {
38
40
  if (request.method !== 'POST' || request.url !== '/call' || request.headers.origin)
39
41
  throw new types_1.OrchestrationError('ACCESS_DENIED');
40
42
  const token = request.headers.authorization?.replace(/^Bearer /, '');
41
43
  const scope = token && this.scopes.get(token);
42
- if (!scope)
44
+ if (!scope || (scope.role === 'agent' && scope.compactOnly))
43
45
  throw new types_1.OrchestrationError('ACCESS_DENIED');
44
46
  let bytes = 0;
45
47
  const chunks = [];
@@ -70,8 +72,18 @@ class TaskBridge {
70
72
  break;
71
73
  }
72
74
  case 'conversation_intake': {
73
- if (!scope.onIntake)
74
- throw new types_1.OrchestrationError('SEMANTIC_INTAKE_DISABLED');
75
+ // The tool is declared on every turn to keep the cached tools prefix
76
+ // byte-identical, so the model can reach this handler on a turn where the
77
+ // feature is not active (flag off, or an internal notification turn). Refuse
78
+ // explicitly and tell it what to do instead: an error result would make the
79
+ // model guess, and a bare success would imply the user had been acknowledged.
80
+ if (!scope.onIntake) {
81
+ console.warn(JSON.stringify({ ts: new Date().toISOString(), level: 'warn',
82
+ event: 'conversation_intake called while semantic intake is inactive',
83
+ agentId: this.tasks.store.agentId, referenceId: context.actionId, mode: typeof a.mode === 'string' ? a.mode : null }));
84
+ result = { intake_required: false, instruction: 'Semantic intake is not active for this turn. Do not call conversation_intake again now: answer the user directly, and queue any authorized work with the task tools without a separate acknowledgement.' };
85
+ break;
86
+ }
75
87
  result = await scope.onIntake(a);
76
88
  break;
77
89
  }
@@ -120,8 +132,10 @@ class TaskBridge {
120
132
  scope.onMutationResult?.(context.actionId, true);
121
133
  }
122
134
  catch (error) {
135
+ if (error instanceof types_1.OrchestrationError && (0, mutation_recovery_1.retryableMutation)(command.tool, error.code))
136
+ retryOf = context.actionId;
123
137
  if (mutation)
124
- scope.onMutationResult?.(context.actionId, false);
138
+ scope.onMutationResult?.(context.actionId, false, error instanceof types_1.OrchestrationError ? error.code : undefined);
125
139
  throw error;
126
140
  }
127
141
  }
@@ -157,7 +171,7 @@ class TaskBridge {
157
171
  catch (error) {
158
172
  const code = error instanceof types_1.OrchestrationError ? error.code : 'INVALID_REQUEST';
159
173
  response.statusCode = code === 'ACCESS_DENIED' ? 403 : 400;
160
- response.end(JSON.stringify({ error: code, ...(error instanceof types_1.OrchestrationError && ['WORKER_GIT_PROJECT_REQUIRED', 'ARTIFACT_FILE_NOT_FOUND', 'ARTIFACT_PATH_DENIED', 'MCP_IMAGE_NOT_CAPTURED'].includes(code) ? { message: error.message, retryable: true } : {}) }));
174
+ response.end(JSON.stringify({ error: code, ...(retryOf ? { retry_of: retryOf } : {}), ...(error instanceof types_1.OrchestrationError && ['WORKER_GIT_PROJECT_REQUIRED', 'ARTIFACT_FILE_NOT_FOUND', 'ARTIFACT_PATH_DENIED', 'MCP_IMAGE_NOT_CAPTURED'].includes(code) ? { message: error.message, retryable: true } : {}) }));
161
175
  }
162
176
  });
163
177
  server.requestTimeout = 10000;
@@ -183,15 +197,16 @@ class TaskBridge {
183
197
  const ticketPath = (0, path_1.join)(directory, 'ticket.json'), mcpConfigPath = (0, path_1.join)(directory, 'mcp.json');
184
198
  const worker = scope.role === 'worker' && this.files ? this.files.scope(scope.attemptId, scope.generation) : undefined;
185
199
  const workerMemory = Boolean(worker?.task.capabilities.writeMemory && worker.conversation.source !== 'api');
186
- (0, fs_1.writeFileSync)(ticketPath, JSON.stringify({ url: this.url, token, ...(this.container ? { socket: this.url, tools: containerTaskTools(scope.role, scope.role === 'agent' && !!scope.onIntake) } : {}) }), { mode: 0o600, flag: 'wx' });
200
+ (0, fs_1.writeFileSync)(ticketPath, JSON.stringify({ url: this.url, token, ...(this.container ? { socket: this.url, tools: containerTaskTools(scope.role) } : {}) }), { mode: 0o600, flag: 'wx' });
187
201
  (0, fs_1.writeFileSync)(mcpConfigPath, JSON.stringify({ mcpServers: { gateway: { command: 'bun', args: [(0, path_1.resolve)(__dirname, '../../mcp/server.ts')], env: {
188
202
  GATEWAY_CAPABILITY_CATALOG: scope.role === 'agent' && scope.capabilities ? 'true' : '',
189
- GATEWAY_ORCHESTRATION_ROLE: scope.role, GATEWAY_SEMANTIC_INTAKE: scope.role === 'agent' && scope.onIntake ? 'true' : '', GATEWAY_ORCHESTRATION_TICKET_FILE: ticketPath,
203
+ GATEWAY_ORCHESTRATION_ROLE: scope.role, GATEWAY_ORCHESTRATION_TICKET_FILE: ticketPath,
190
204
  GATEWAY_WORKSPACE_DIR: workspace, GATEWAY_SHARED_KB_DIR: sharedKbDir,
191
205
  GATEWAY_RECORD_RETRIEVALS: this.recordRetrievals ? '1' : '',
192
206
  GATEWAY_ORIGIN_CHANNEL: workerMemory ? String(worker.conversation.source) : 'api', GATEWAY_AGENT_ID: this.tasks.store.agentId,
193
207
  GATEWAY_SESSION_ID: worker?.task.agentSessionId ?? '', GATEWAY_SESSION_MEDIA_DIR: worker?.mediaDir ?? '',
194
208
  GATEWAY_ORCHESTRATION_MEDIA: worker ? 'true' : '',
209
+ GATEWAY_LAZY_TOOLS: worker ? 'true' : '',
195
210
  GETPOD_BROWSER_URL: worker ? process.env.GETPOD_BROWSER_URL ?? 'http://127.0.0.1:10880' : '',
196
211
  GETPOD_BROWSER_API_KEY: worker ? process.env.GETPOD_BROWSER_API_KEY ?? '' : '',
197
212
  GETPOD_BROWSER_DISABLED: worker ? process.env.GETPOD_BROWSER_DISABLED ?? '' : 'true',
@@ -214,7 +229,7 @@ class TaskBridge {
214
229
  const writeMemory = workerMemory || (scope.role === 'agent' && scope.context.writeMemory && this.tasks.store.get('SELECT source FROM conversations WHERE id=?', scope.context.conversationId)?.source !== 'api');
215
230
  const personaContext = scope.role === 'agent' ? `This agent persona workspace: ${JSON.stringify(this.container ? '/workspace' : workspace)}.` : '';
216
231
  const sourceRules = `${personaContext}\n${writeMemory ? `Channel memory updates use scoped memory tools. ${source_policy_1.SECRET_RULES}` : source_policy_1.API_SOURCE_RULES}\n${source_policy_1.IDENTITY_EDIT_RULES}`;
217
- return { profile: { role: scope.role, checkpointCommand, semanticIntake: scope.role === 'agent' && Boolean(scope.onIntake), containerExecution: Boolean(this.container), mcpConfigPath, overlay: `${scope.role === 'agent' ? runtime_profile_1.AGENT_OVERLAY : runtime_profile_1.WORKER_OVERLAY}\n\n${sourceRules}` },
232
+ return { profile: { role: scope.role, checkpointCommand, containerExecution: Boolean(this.container), mcpConfigPath, overlay: `${scope.role === 'agent' ? runtime_profile_1.AGENT_OVERLAY : runtime_profile_1.WORKER_OVERLAY}\n\n${sourceRules}` },
218
233
  revoke: () => { this.scopes.delete(token); if (scope.role === 'worker')
219
234
  this.files?.releaseCaptured(scope.attemptId); } };
220
235
  }
@@ -229,16 +244,18 @@ class TaskBridge {
229
244
  }
230
245
  }
231
246
  exports.TaskBridge = TaskBridge;
232
- /** Container task-only MCP inventory; no host media/browser/memory delegation. */
233
- function containerTaskTools(role, semanticIntake = false) {
247
+ /** Container task-only MCP inventory; no host media/browser/memory delegation.
248
+ * Invariant per role for the same reason as AGENT_TASK_TOOLS: this array becomes the
249
+ * container agent's advertised tool list, i.e. the head of its cached prompt prefix. */
250
+ function containerTaskTools(role) {
234
251
  const text = { type: 'string' };
235
252
  const entries = role === 'agent' ? [
236
253
  ['capabilities_list', { query: text, catalog_version: text, offset: { type: 'integer', minimum: 0 } }, [], 'Read this app agent capability catalog without granting host access. Follow next_offset with catalog_version for the complete list; restart at 0 on CAPABILITY_CATALOG_CHANGED.'],
237
- ['conversation_intake', { mode: { type: 'string', enum: ['ready', 'wait', 'update'] }, acknowledgement: text, preparation: text, clarification: text, task_id: text }, ['mode'], 'Classify readiness, acknowledge complete instructions before execution, or prepare incomplete materials and wait.'],
238
- ['task_spawn', { title: text, instructions: text, target_profile: text, spoken_acknowledgement: text, skill_name: text, skill_args: text, continue_task_id: text, continuation_policy: { type: 'string', enum: ['after_success', 'after_terminal'] }, context_refs: { type: 'array', items: text } }, ['title', 'instructions', 'target_profile'], 'Queue work inside this app container and return a durable receipt.'],
254
+ ['conversation_intake', { mode: { type: 'string', enum: ['ready', 'wait', 'update'] }, acknowledgement: text, preparation: text, clarification: text, task_id: text }, ['mode'], 'Only when this turn\'s instructions explicitly ask you to run intake: classify readiness, acknowledge complete instructions before execution, or prepare incomplete materials and wait. Without that instruction this turn, answer directly and use the task tools directly instead.'],
255
+ ['task_spawn', { retry_of: text, title: text, instructions: text, target_profile: text, spoken_acknowledgement: text, skill_name: text, skill_args: text, continue_task_id: text, continuation_policy: { type: 'string', enum: ['after_success', 'after_terminal'] }, context_refs: { type: 'array', items: text } }, ['title', 'instructions', 'target_profile'], 'Queue work inside this app container and return a durable receipt.'],
239
256
  ['task_status', { task_id: text }, [], 'Read task status without waiting. Pass task_id to retrieve its complete stored result and evidence; task indexes in conversation context are not result reports.'],
240
257
  ['task_cancel', { task_id: text }, ['task_id'], 'Request cancellation.'],
241
- ['task_update', { task_id: text, expected_revision: { type: 'integer' }, instruction: text, mode: { type: 'string', enum: ['when_ready', 'interrupt_and_resume'] } }, ['task_id', 'expected_revision', 'instruction', 'mode'], 'Replace the current task instructions when the user changes the goal or constraints. Write the complete updated brief, preserving unchanged requirements and citing relevant user input IDs.'],
258
+ ['task_update', { retry_of: text, task_id: text, expected_revision: { type: 'integer' }, instruction: text, mode: { type: 'string', enum: ['when_ready', 'interrupt_and_resume'] } }, ['task_id', 'expected_revision', 'instruction', 'mode'], 'Replace the current task instructions when the user changes the goal or constraints. Write the complete updated brief, preserving unchanged requirements and citing relevant user input IDs.'],
242
259
  ['task_question', { action: { type: 'string', enum: ['ask', 'discuss', 'defer', 'mute', 'resume'] }, question_ids: { type: 'array', items: text, minItems: 1, maxItems: 20 }, text, delay_ms: { type: 'integer', minimum: 60000, maximum: 2592000000 } }, ['action', 'question_ids'], 'Manage pending questions without answering or resuming work. Ask stages one natural separate message after your reply; discuss marks ongoing consultation; defer/mute/resume persist the user reminder preference.'],
243
260
  ['task_answer', { task_id: text, question_id: text, answer: text }, ['task_id', 'question_id', 'answer'], 'Answer a pending worker question. Cite the user input IDs supporting any authorization; distinguish direct user statements from your interpretation. For a changed goal, prefer task_update with a complete replacement brief instead of repeatedly answering the same question.'],
244
261
  ] : [
@@ -246,6 +263,6 @@ function containerTaskTools(role, semanticIntake = false) {
246
263
  ['task_request_input', { question: text }, ['question'], 'Ask for input then end the turn.'],
247
264
  ['task_stage_file', { path: text, caption: text }, ['path'], 'Stage a finished file from /workspace or /tmp inside the container.'],
248
265
  ];
249
- return entries.filter(([name]) => name !== 'conversation_intake' || semanticIntake).map(([name, properties, required, description]) => ({ name, description, inputSchema: { type: 'object', properties, required, additionalProperties: false } }));
266
+ return entries.map(([name, properties, required, description]) => ({ name, description, inputSchema: { type: 'object', properties, required, additionalProperties: false } }));
250
267
  }
251
268
  //# sourceMappingURL=bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/orchestration/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/orchestration/bridge.ts"],"names":[],"mappings":";;;AAuMA,gDAiBC;AAxND,2DAAwD;AACxD,yCAA6C;AAC7C,6DAA0D;AAC1D,+BAA4C;AAC5C,mCAAqC;AACrC,2BAA8C;AAC9C,+BAAqC;AAErC,2CAAkD;AAElD,mCAAyE;AACzE,gEAA2F;AAC3F,mDAAsF;AAItF,qCAA6C;AAM7C,yFAAyF;AACzF,MAAa,UAAU;IAKrB,YAA6B,KAAkB,EAAmB,KAAiB,EAChE,SAAsG,EAAmB,MAA4B,EAAmB,SAAiD;QAD/M,UAAK,GAAL,KAAK,CAAa;QAAmB,UAAK,GAAL,KAAK,CAAY;QAChE,cAAS,GAAT,SAAS,CAA6F;QAAmB,WAAM,GAAN,MAAM,CAAsB;QAAmB,cAAS,GAAT,SAAS,CAAwC;QAJpO,QAAG,GAAG,EAAE,CAAC;QACjB,qBAAgB,GAAG,KAAK,CAAC;QACR,WAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IAE4L,CAAC;IAChP,mBAAmB,CAAC,SAAiB,EAAE,UAAkB,EAAE,IAAY;QACrE,IAAI,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAAC,CAAC;QAC/D,MAAM,CAAC,CAAC,8FAA8F,CAAC,CAAC;IAC1G,CAAC;IACD,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YACtD,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YACvD,IAAI,OAA2B,CAAC;YAChC,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM;oBAAE,MAAM,IAAI,0BAAkB,CAAC,eAAe,CAAC,CAAC;gBAClI,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACrE,MAAM,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC;oBAAE,MAAM,IAAI,0BAAkB,CAAC,eAAe,CAAC,CAAC;gBAC3G,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;oBAC1D,IAAI,KAAK,GAAG,MAAM;wBAAE,MAAM,IAAI,0BAAkB,CAAC,mBAAmB,CAAC,CAAC;oBACtE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG;oBAAE,MAAM,IAAI,0BAAkB,CAAC,eAAe,CAAC,CAAC;gBAC/P,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;gBACvB,IAAI,MAAe,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAmB,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;oBAChH,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAC,aAAa,EAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACnF,IAAI,CAAC;wBACH,IAAI,QAAQ;4BAAE,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC9E,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;4BACrB,KAAK,mBAAmB,CAAC,CAAC,CAAC;gCACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;gCAC3E,IAAI,CAAC,KAAK,CAAC,YAAY;oCAAE,MAAM,IAAI,0BAAkB,CAAC,kCAAkC,CAAC,CAAC;gCAC1F,MAAM,GAAG,EAAE,GAAI,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,CAA6B,EAAE,2BAA2B,EAAE,OAAO,CAAC,OAAO,EAAE,6BAA6B,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;gCAAC,MAAM;4BACpL,CAAC;4BACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gCAC3B,qEAAqE;gCACrE,0EAA0E;gCAC1E,6EAA6E;gCAC7E,4EAA4E;gCAC5E,8EAA8E;gCAC9E,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oCACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM;wCACvE,KAAK,EAAE,8DAA8D;wCACrE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oCACzH,MAAM,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,yMAAyM,EAAE,CAAC;oCAC5P,MAAM;gCACR,CAAC;gCACD,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;4BAC1C,CAAC;4BACD,KAAK,YAAY,CAAC,CAAC,CAAC;gCAClB,MAAM,KAAK,GAAG,IAAA,0BAAiB,EAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gCAC7E,IAAI,CAAC,CAAC,cAAc,KAAK,cAAc,IAAI,CAAC,KAAK;oCAAE,MAAM,IAAI,0BAAkB,CAAC,eAAe,CAAC,CAAC;gCACjG,IAAI,CAAC,CAAC,cAAc,KAAK,cAAc,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;oCAAE,MAAM,IAAI,0BAAkB,CAAC,eAAe,CAAC,CAAC;gCACrJ,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,sBAAsB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACnG,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oCAAE,MAAM,IAAI,0BAAkB,CAAC,gCAAgC,CAAC,CAAC;gCACrJ,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;gCACjE,oEAAoE;gCACpE,iEAAiE;gCACjE,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gCAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gCACnQ,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;gCAC7B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;gCAChD,MAAM,GAAG,OAAO,CAAC;gCACjB,MAAM;4BACR,CAAC;4BACD,KAAK,aAAa;gCAAE,MAAM,GAAG,CAAC,CAAC,OAAO;oCACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;oCAC3E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gCAAC,MAAM;4BAC/F,KAAK,aAAa;gCAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;gCAAC,MAAM;4BACjG,KAAK,aAAa;gCAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAkB,CAAC,CAAC;gCAAC,MAAM;4BACpI,KAAK,eAAe,CAAC,CAAC,CAAC;gCACrB,IAAI,CAAC,KAAK,CAAC,UAAU;oCAAE,MAAM,IAAI,0BAAkB,CAAC,+BAA+B,CAAC,CAAC;gCACrF,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gCAAC,MAAM;4BAC/C,CAAC;4BACD,KAAK,aAAa;gCAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gCAAC,MAAM;4BACnG,OAAO,CAAC,CAAC,MAAM,IAAI,0BAAkB,CAAC,aAAa,CAAC,CAAC;wBACvD,CAAC;wBACD,IAAI,QAAQ;4BAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACjE,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,KAAK,YAAY,0BAAkB,IAAI,IAAA,qCAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;4BAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;wBACnH,IAAI,QAAQ;4BAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,YAAY,0BAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC9H,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB;wBAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;yBACxG,IAAI,OAAO,CAAC,IAAI,KAAK,sBAAsB;wBAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;yBAC5K,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB;wBAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;yBAC9I,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC1D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,EAAE,KAAK,CAAC,SAAS,CAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8DAA8D,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;4BAAE,MAAM,IAAI,0BAAkB,CAAC,oBAAoB,CAAC,CAAC;wBACtT,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,IAAA,+BAAmB,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpK,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBACxF,CAAC;yBACI,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK;wBAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;yBAClK,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;wBAAC,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBAAC,CAAC;yBACvI,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBAC/F,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;wBACpD,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACtE,CAAC;;wBACI,MAAM,IAAI,0BAAkB,CAAC,aAAa,CAAC,CAAC;gBACnD,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,KAAK,YAAY,0BAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBAClF,QAAQ,CAAC,UAAU,GAAG,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3D,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,OAAO,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,YAAY,0BAAkB,IAAI,CAAC,6BAA6B,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpT,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;QAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,CAAC,MAAM,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;;YAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpQ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,GAAG,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,OAAO,CAAC,IAAI,OAAO,CAAC;IACnH,CAAC;IACD,KAAK,CAAC,KAAY,EAAE,SAAiB,EAAE,SAAiB,EAAE,WAAW,GAAG,EAAE;QACxE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAA,cAAS,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvH,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QAC5G,IAAA,kBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzL,IAAA,kBAAa,EAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAA,cAAO,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE;wBAC7I,0BAA0B,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;wBACtF,0BAA0B,EAAE,KAAK,CAAC,IAAI,EAAE,iCAAiC,EAAE,UAAU;wBACrF,qBAAqB,EAAE,SAAS,EAAE,qBAAqB,EAAE,WAAW;wBACpE,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBAC3D,sBAAsB,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;wBAC9H,kBAAkB,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;wBACxG,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;wBACjD,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;wBACxC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,CAAC,CAAC,EAAE;wBAC5F,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;wBAC9E,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM;wBACpF,kCAAkC,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;wBAC9D,sBAAsB,EAAE,OAAO,CAAC,QAAQ;wBACxC,eAAe,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,yBAAyB,EAAE,EAAE;wBACtH,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;wBAC9D,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;wBACtE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;wBAChG,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;wBAC9D,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;wBAC5D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;wBAChD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;qBACjH,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,IAAA,kBAAa,EAAC,cAAc,EAAE,iCAAe,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzG,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC;QACnI,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpI,MAAM,WAAW,GAAG,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC;QACjN,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnJ,MAAM,WAAW,GAAG,GAAG,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,mDAAmD,4BAAY,EAAE,CAAC,CAAC,CAAC,gCAAgB,KAAK,mCAAmB,EAAE,CAAC;QACvK,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,+BAAa,CAAC,CAAC,CAAC,gCAAc,OAAO,WAAW,EAAE,EAAE;YAC5M,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9H,CAAC;IACD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAAC,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC;IAClH,CAAC;CACF;AA3KD,gCA2KC;AAED;;wFAEwF;AACxF,SAAgB,kBAAkB,CAAC,IAAwB;IACzD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAChC,MAAM,OAAO,GAA+D,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;QAC7F,CAAC,mBAAmB,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,EAAC,EAAC,EAAE,EAAC,iLAAiL,CAAC;QAC9Q,CAAC,qBAAqB,EAAC,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,CAAC,EAAC,EAAC,eAAe,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,CAAC,MAAM,CAAC,EAAC,sRAAsR,CAAC;QACnb,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAC,IAAI,EAAE,KAAK,EAAC,IAAI,EAAE,YAAY,EAAC,IAAI,EAAE,cAAc,EAAC,IAAI,EAAE,sBAAsB,EAAC,IAAI,EAAE,UAAU,EAAC,IAAI,EAAE,UAAU,EAAC,IAAI,EAAE,gBAAgB,EAAC,IAAI,EAAE,mBAAmB,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,eAAe,EAAC,gBAAgB,CAAC,EAAC,EAAE,YAAY,EAAC,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,OAAO,EAAC,cAAc,EAAC,gBAAgB,CAAC,EAAE,oEAAoE,CAAC;QACjZ,CAAC,aAAa,EAAC,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,EAAE,EAAC,kKAAkK,CAAC;QACpM,CAAC,aAAa,EAAC,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,CAAC,SAAS,CAAC,EAAC,uBAAuB,CAAC;QAClE,CAAC,aAAa,EAAC,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,iBAAiB,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,YAAY,EAAC,sBAAsB,CAAC,EAAC,EAAC,EAAC,CAAC,SAAS,EAAC,mBAAmB,EAAC,aAAa,EAAC,MAAM,CAAC,EAAC,8LAA8L,CAAC;QACpZ,CAAC,eAAe,EAAC,EAAC,MAAM,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,CAAC,EAAC,EAAC,YAAY,EAAC,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,UAAU,EAAC,EAAC,EAAC,CAAC,QAAQ,EAAC,cAAc,CAAC,EAAC,oNAAoN,CAAC;QACtc,CAAC,aAAa,EAAC,EAAC,OAAO,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAC,CAAC,SAAS,EAAC,aAAa,EAAC,QAAQ,CAAC,EAAC,kRAAkR,CAAC;KAClX,CAAC,CAAC,CAAC;QACF,CAAC,sBAAsB,EAAC,EAAC,IAAI,EAAC,UAAU,EAAC,0BAAe,EAAC,EAAC,CAAC,MAAM,CAAC,EAAC,4GAA4G,CAAC;QAChL,CAAC,oBAAoB,EAAC,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAC,CAAC,UAAU,CAAC,EAAC,kCAAkC,CAAC;QACtF,CAAC,iBAAiB,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,CAAC,MAAM,CAAC,EAAC,qEAAqE,CAAC;KAC5H,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAC,WAAW,CAAC,EAAC,EAAE,CAAA,CAAC,EAAC,IAAI,EAAC,WAAW,EAAC,WAAW,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,oBAAoB,EAAC,KAAK,EAAC,EAAC,CAAC,CAAC,CAAC;AAChK,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { OrchestrationStore } from './store';
2
+ /** Transport detach preserves intent; only an explicit text-mode action ends it. */
3
+ export declare class BrowserVoice {
4
+ private readonly store;
5
+ constructor(store: OrchestrationStore);
6
+ enabled(sessionId: string, principalId: string): boolean;
7
+ set(sessionId: string, principalId: string, enabled: boolean): void;
8
+ pending(sessionId: string, principalId: string, claimed?: string[]): Array<{
9
+ responseId: string;
10
+ text: string;
11
+ spoken: string;
12
+ }>;
13
+ }
14
+ //# sourceMappingURL=browser-voice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-voice.d.ts","sourceRoot":"","sources":["../../src/orchestration/browser-voice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,oFAAoF;AACpF,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,kBAAkB;IACtD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAGxD,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKnE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAUrI"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserVoice = void 0;
4
+ /** Transport detach preserves intent; only an explicit text-mode action ends it. */
5
+ class BrowserVoice {
6
+ constructor(store) {
7
+ this.store = store;
8
+ }
9
+ enabled(sessionId, principalId) {
10
+ return Boolean(this.store.get('SELECT 1 FROM browser_voice WHERE session_id=? AND principal_id=? AND enabled=1', sessionId, principalId));
11
+ }
12
+ set(sessionId, principalId, enabled) {
13
+ this.store.run(`INSERT INTO browser_voice VALUES(?,?,?,?) ON CONFLICT(session_id,principal_id) DO UPDATE SET
14
+ since=CASE WHEN browser_voice.enabled=0 AND excluded.enabled=1 THEN excluded.since ELSE browser_voice.since END,
15
+ enabled=excluded.enabled`, sessionId, principalId, enabled ? 1 : 0, Date.now());
16
+ }
17
+ pending(sessionId, principalId, claimed = []) {
18
+ const mode = this.store.get('SELECT since FROM browser_voice WHERE session_id=? AND principal_id=? AND enabled=1', sessionId, principalId);
19
+ if (!mode)
20
+ return [];
21
+ return this.store.all(`SELECT r.id,r.generated_text,s.text AS spoken FROM assistant_responses r
22
+ JOIN conversations c ON c.id=r.conversation_id JOIN response_speech s ON s.response_id=r.id
23
+ WHERE c.agent_session_id=? AND r.created_at>=? AND r.state='completed' AND length(trim(s.text))>0
24
+ AND r.id NOT IN (SELECT value FROM json_each(?))
25
+ AND NOT EXISTS(SELECT 1 FROM deliveries d WHERE d.response_id=r.id AND d.modality='audio' AND d.state IN ('played','interrupted'))
26
+ ORDER BY r.created_at,r.id LIMIT 100`, sessionId, mode.since, JSON.stringify(claimed)).map(row => ({ responseId: String(row.id), text: String(row.generated_text), spoken: String(row.spoken) }));
27
+ }
28
+ }
29
+ exports.BrowserVoice = BrowserVoice;
30
+ //# sourceMappingURL=browser-voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-voice.js","sourceRoot":"","sources":["../../src/orchestration/browser-voice.ts"],"names":[],"mappings":";;;AAEA,oFAAoF;AACpF,MAAa,YAAY;IACvB,YAA6B,KAAyB;QAAzB,UAAK,GAAL,KAAK,CAAoB;IAAG,CAAC;IAC1D,OAAO,CAAC,SAAiB,EAAE,WAAmB;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iFAAiF,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5I,CAAC;IACD,GAAG,CAAC,SAAiB,EAAE,WAAmB,EAAE,OAAgB;QAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;+BAEY,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,CAAC,SAAiB,EAAE,WAAmB,EAAE,UAAoB,EAAE;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qFAAqF,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3I,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;2CAKiB,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACtM,CAAC;CACF;AApBD,oCAoBC"}
@@ -0,0 +1,14 @@
1
+ export declare function referenceTokens(text: string): number;
2
+ export interface ContextFootprint {
3
+ observedAt: number;
4
+ rows: Array<{
5
+ name: string;
6
+ tokens: number | null;
7
+ characters: number | null;
8
+ hasContent?: boolean;
9
+ note: string;
10
+ }>;
11
+ }
12
+ /** Run in the dashboard reader thread. Never launch a CLI/model or return file content. */
13
+ export declare function contextFootprint(workspace: string | undefined): ContextFootprint;
14
+ //# sourceMappingURL=context-footprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-footprint.d.ts","sourceRoot":"","sources":["../../src/orchestration/context-footprint.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AACD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,KAAK,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,GAAC,IAAI,CAAC;QAAA,UAAU,EAAC,MAAM,GAAC,IAAI,CAAC;QAAA,UAAU,CAAC,EAAC,OAAO,CAAC;QAAA,IAAI,EAAC,MAAM,CAAA;KAAC,CAAC,CAAC;CACtG;AACD,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CA2BhF"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.referenceTokens = referenceTokens;
4
+ exports.contextFootprint = contextFootprint;
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const js_tiktoken_1 = require("js-tiktoken");
8
+ const agent_tool_schemas_1 = require("./agent-tool-schemas");
9
+ const cache = new Map();
10
+ let encoder;
11
+ function referenceTokens(text) {
12
+ encoder ?? (encoder = (0, js_tiktoken_1.getEncoding)('cl100k_base'));
13
+ return encoder.encode(text, [], []).length;
14
+ }
15
+ /** Run in the dashboard reader thread. Never launch a CLI/model or return file content. */
16
+ function contextFootprint(workspace) {
17
+ if (!workspace)
18
+ return { observedAt: Date.now(), rows: [] };
19
+ const key = workspace, previous = cache.get(key);
20
+ if (previous && Date.now() - previous.at < 30000)
21
+ return previous.value;
22
+ const rows = [];
23
+ const read = (name) => {
24
+ try {
25
+ const filename = (0, path_1.join)(workspace, name);
26
+ if ((0, fs_1.statSync)(filename).size > 1024 * 1024)
27
+ return undefined;
28
+ return (0, fs_1.readFileSync)(filename, 'utf8');
29
+ }
30
+ catch {
31
+ return undefined;
32
+ }
33
+ };
34
+ const add = (name, text, note) => rows.push({ name, tokens: text === undefined ? null : referenceTokens(text), characters: text === undefined ? null : [...text].length, hasContent: Boolean(text?.trim()), note });
35
+ const composed = read('CLAUDE.md');
36
+ add('CLAUDE.md · composed workspace context', composed, 'Current generated file after workspace budgets. Parent total; do not add its sections again. Not the complete CLI prompt.');
37
+ const labels = { 'AGENT IDENTITY': 'AGENTS.md', 'IDENTITY': 'IDENTITY.md', 'SOUL': 'SOUL.md', 'USER PROFILE': 'USER.md', 'LONG-TERM MEMORY': 'MEMORY.md', 'HEARTBEAT CONFIG': 'HEARTBEAT.md', 'AVAILABLE SKILLS': 'Skill catalog', 'MEMORY RULE': 'Memory rules', 'MEMORY RETRIEVAL': 'Memory retrieval instructions' };
38
+ if (composed) {
39
+ const markers = [...composed.matchAll(/^--- ([A-Z -]+) ---\n/gm)];
40
+ for (let i = 0; i < markers.length; i++) {
41
+ const marker = markers[i], name = labels[marker[1]] || marker[1];
42
+ const text = composed.slice(marker.index + marker[0].length, markers[i + 1]?.index ?? composed.length);
43
+ add('↳ ' + name, text, 'Section found in generated CLAUDE.md; includes section whitespace. Boundary tokenization can differ from parent total.');
44
+ }
45
+ }
46
+ for (const name of ['AGENTS.md', 'IDENTITY.md', 'SOUL.md', 'USER.md', 'MEMORY.md', 'HEARTBEAT.md'])
47
+ add(name + ' · source file', read(name), 'Current file on disk before budget/index/truncation. Reference only; not added to composed context.');
48
+ // Every agent tool is declared on every turn, so the measured schema cost does not
49
+ // depend on any feature flag. Filtering one out here would under-report the real prefix.
50
+ add('Agent gateway tool schemas (' + agent_tool_schemas_1.AGENT_TASK_TOOLS.length + ')', JSON.stringify(agent_tool_schemas_1.AGENT_TASK_TOOLS), 'Current host Agent MCP definitions: name, description and inputSchema. Excludes native CLI tools, worker tools and provider framing.');
51
+ const value = { observedAt: Date.now(), rows };
52
+ if (cache.size >= 32)
53
+ cache.delete(cache.keys().next().value);
54
+ cache.set(key, { at: Date.now(), value });
55
+ return value;
56
+ }
57
+ //# sourceMappingURL=context-footprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-footprint.js","sourceRoot":"","sources":["../../src/orchestration/context-footprint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dashboard-reader-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-reader-worker.d.ts","sourceRoot":"","sources":["../../src/orchestration/dashboard-reader-worker.ts"],"names":[],"mappings":""}