@0xmaxma/claude-gateway 2.0.4 → 2.0.6

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 (276) 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 +123 -9
  7. package/dist/agent/runner.d.ts.map +1 -1
  8. package/dist/agent/runner.js +215 -182
  9. package/dist/agent/runner.js.map +1 -1
  10. package/dist/agent/session-compaction-scheduler.d.ts +22 -0
  11. package/dist/agent/session-compaction-scheduler.d.ts.map +1 -0
  12. package/dist/agent/session-compaction-scheduler.js +40 -0
  13. package/dist/agent/session-compaction-scheduler.js.map +1 -0
  14. package/dist/agent/skill-learning/index.d.ts.map +1 -1
  15. package/dist/agent/skill-learning/index.js +27 -8
  16. package/dist/agent/skill-learning/index.js.map +1 -1
  17. package/dist/agent/skill-learning/reviewer.d.ts +3 -1
  18. package/dist/agent/skill-learning/reviewer.d.ts.map +1 -1
  19. package/dist/agent/skill-learning/reviewer.js +6 -2
  20. package/dist/agent/skill-learning/reviewer.js.map +1 -1
  21. package/dist/agent/turn-stream.d.ts +3 -1
  22. package/dist/agent/turn-stream.d.ts.map +1 -1
  23. package/dist/agent/turn-stream.js +8 -4
  24. package/dist/agent/turn-stream.js.map +1 -1
  25. package/dist/api/gateway-router.d.ts +2 -0
  26. package/dist/api/gateway-router.d.ts.map +1 -1
  27. package/dist/api/gateway-router.js +323 -16
  28. package/dist/api/gateway-router.js.map +1 -1
  29. package/dist/api/memory-activity.d.ts +18 -0
  30. package/dist/api/memory-activity.d.ts.map +1 -0
  31. package/dist/api/memory-activity.js +97 -0
  32. package/dist/api/memory-activity.js.map +1 -0
  33. package/dist/api/router.js +11 -11
  34. package/dist/api/router.js.map +1 -1
  35. package/dist/api/slack-webhook-router.js +1 -1
  36. package/dist/api/slack-webhook-router.js.map +1 -1
  37. package/dist/api/voice-router.d.ts +1 -0
  38. package/dist/api/voice-router.d.ts.map +1 -1
  39. package/dist/api/voice-router.js +129 -7
  40. package/dist/api/voice-router.js.map +1 -1
  41. package/dist/config/claude-settings.d.ts +14 -0
  42. package/dist/config/claude-settings.d.ts.map +1 -1
  43. package/dist/config/claude-settings.js +20 -0
  44. package/dist/config/claude-settings.js.map +1 -1
  45. package/dist/orchestration/agent-cli-session.d.ts +46 -0
  46. package/dist/orchestration/agent-cli-session.d.ts.map +1 -0
  47. package/dist/orchestration/agent-cli-session.js +121 -0
  48. package/dist/orchestration/agent-cli-session.js.map +1 -0
  49. package/dist/orchestration/agent-tool-schemas.d.ts +6 -0
  50. package/dist/orchestration/agent-tool-schemas.d.ts.map +1 -0
  51. package/dist/orchestration/agent-tool-schemas.js +23 -0
  52. package/dist/orchestration/agent-tool-schemas.js.map +1 -0
  53. package/dist/orchestration/bridge.d.ts +6 -3
  54. package/dist/orchestration/bridge.d.ts.map +1 -1
  55. package/dist/orchestration/bridge.js +31 -14
  56. package/dist/orchestration/bridge.js.map +1 -1
  57. package/dist/orchestration/browser-voice.d.ts +14 -0
  58. package/dist/orchestration/browser-voice.d.ts.map +1 -0
  59. package/dist/orchestration/browser-voice.js +30 -0
  60. package/dist/orchestration/browser-voice.js.map +1 -0
  61. package/dist/orchestration/compact-measurements.d.ts +21 -0
  62. package/dist/orchestration/compact-measurements.d.ts.map +1 -0
  63. package/dist/orchestration/compact-measurements.js +62 -0
  64. package/dist/orchestration/compact-measurements.js.map +1 -0
  65. package/dist/orchestration/config.d.ts +4 -0
  66. package/dist/orchestration/config.d.ts.map +1 -1
  67. package/dist/orchestration/config.js +1 -1
  68. package/dist/orchestration/config.js.map +1 -1
  69. package/dist/orchestration/context-delivery.d.ts +32 -0
  70. package/dist/orchestration/context-delivery.d.ts.map +1 -0
  71. package/dist/orchestration/context-delivery.js +101 -0
  72. package/dist/orchestration/context-delivery.js.map +1 -0
  73. package/dist/orchestration/context-footprint.d.ts +14 -0
  74. package/dist/orchestration/context-footprint.d.ts.map +1 -0
  75. package/dist/orchestration/context-footprint.js +57 -0
  76. package/dist/orchestration/context-footprint.js.map +1 -0
  77. package/dist/orchestration/conversation-intake.d.ts +10 -6
  78. package/dist/orchestration/conversation-intake.d.ts.map +1 -1
  79. package/dist/orchestration/conversation-intake.js +22 -8
  80. package/dist/orchestration/conversation-intake.js.map +1 -1
  81. package/dist/orchestration/dashboard-charts.d.ts +32 -0
  82. package/dist/orchestration/dashboard-charts.d.ts.map +1 -0
  83. package/dist/orchestration/dashboard-charts.js +77 -0
  84. package/dist/orchestration/dashboard-charts.js.map +1 -0
  85. package/dist/orchestration/dashboard-reader-worker.d.ts +2 -0
  86. package/dist/orchestration/dashboard-reader-worker.d.ts.map +1 -0
  87. package/dist/orchestration/dashboard-reader-worker.js +173 -0
  88. package/dist/orchestration/dashboard-reader-worker.js.map +1 -0
  89. package/dist/orchestration/dashboard-reader.d.ts +15 -0
  90. package/dist/orchestration/dashboard-reader.d.ts.map +1 -0
  91. package/dist/orchestration/dashboard-reader.js +87 -0
  92. package/dist/orchestration/dashboard-reader.js.map +1 -0
  93. package/dist/orchestration/decision-context.d.ts +15 -0
  94. package/dist/orchestration/decision-context.d.ts.map +1 -0
  95. package/dist/orchestration/decision-context.js +57 -0
  96. package/dist/orchestration/decision-context.js.map +1 -0
  97. package/dist/orchestration/display-stream.d.ts +21 -2
  98. package/dist/orchestration/display-stream.d.ts.map +1 -1
  99. package/dist/orchestration/display-stream.js +61 -8
  100. package/dist/orchestration/display-stream.js.map +1 -1
  101. package/dist/orchestration/inference-errors.d.ts.map +1 -1
  102. package/dist/orchestration/inference-errors.js +19 -21
  103. package/dist/orchestration/inference-errors.js.map +1 -1
  104. package/dist/orchestration/mutation-recovery.d.ts +13 -0
  105. package/dist/orchestration/mutation-recovery.d.ts.map +1 -0
  106. package/dist/orchestration/mutation-recovery.js +49 -0
  107. package/dist/orchestration/mutation-recovery.js.map +1 -0
  108. package/dist/orchestration/native-compact.d.ts +8 -0
  109. package/dist/orchestration/native-compact.d.ts.map +1 -0
  110. package/dist/orchestration/native-compact.js +33 -0
  111. package/dist/orchestration/native-compact.js.map +1 -0
  112. package/dist/orchestration/notification-mailbox.d.ts +3 -1
  113. package/dist/orchestration/notification-mailbox.d.ts.map +1 -1
  114. package/dist/orchestration/notification-mailbox.js +4 -2
  115. package/dist/orchestration/notification-mailbox.js.map +1 -1
  116. package/dist/orchestration/process-turn.d.ts +16 -2
  117. package/dist/orchestration/process-turn.d.ts.map +1 -1
  118. package/dist/orchestration/process-turn.js +78 -14
  119. package/dist/orchestration/process-turn.js.map +1 -1
  120. package/dist/orchestration/progress-review.d.ts +8 -18
  121. package/dist/orchestration/progress-review.d.ts.map +1 -1
  122. package/dist/orchestration/progress-review.js +12 -14
  123. package/dist/orchestration/progress-review.js.map +1 -1
  124. package/dist/orchestration/provider-message.d.ts +7 -0
  125. package/dist/orchestration/provider-message.d.ts.map +1 -0
  126. package/dist/orchestration/provider-message.js +63 -0
  127. package/dist/orchestration/provider-message.js.map +1 -0
  128. package/dist/orchestration/response-errors.d.ts +6 -0
  129. package/dist/orchestration/response-errors.d.ts.map +1 -0
  130. package/dist/orchestration/response-errors.js +88 -0
  131. package/dist/orchestration/response-errors.js.map +1 -0
  132. package/dist/orchestration/response-schema.d.ts +33 -0
  133. package/dist/orchestration/response-schema.d.ts.map +1 -0
  134. package/dist/orchestration/response-schema.js +61 -0
  135. package/dist/orchestration/response-schema.js.map +1 -0
  136. package/dist/orchestration/runtime.d.ts +79 -0
  137. package/dist/orchestration/runtime.d.ts.map +1 -1
  138. package/dist/orchestration/runtime.js +415 -68
  139. package/dist/orchestration/runtime.js.map +1 -1
  140. package/dist/orchestration/session-compaction.d.ts +59 -0
  141. package/dist/orchestration/session-compaction.d.ts.map +1 -0
  142. package/dist/orchestration/session-compaction.js +212 -0
  143. package/dist/orchestration/session-compaction.js.map +1 -0
  144. package/dist/orchestration/skills.d.ts.map +1 -1
  145. package/dist/orchestration/skills.js +3 -2
  146. package/dist/orchestration/skills.js.map +1 -1
  147. package/dist/orchestration/source-policy.d.ts +1 -1
  148. package/dist/orchestration/source-policy.d.ts.map +1 -1
  149. package/dist/orchestration/source-policy.js +1 -1
  150. package/dist/orchestration/speech.d.ts +15 -17
  151. package/dist/orchestration/speech.d.ts.map +1 -1
  152. package/dist/orchestration/speech.js +90 -30
  153. package/dist/orchestration/speech.js.map +1 -1
  154. package/dist/orchestration/store.d.ts +2 -0
  155. package/dist/orchestration/store.d.ts.map +1 -1
  156. package/dist/orchestration/store.js +16 -1
  157. package/dist/orchestration/store.js.map +1 -1
  158. package/dist/orchestration/tasks/driver.d.ts.map +1 -1
  159. package/dist/orchestration/tasks/driver.js +8 -3
  160. package/dist/orchestration/tasks/driver.js.map +1 -1
  161. package/dist/orchestration/tasks/pool.d.ts.map +1 -1
  162. package/dist/orchestration/tasks/pool.js +8 -4
  163. package/dist/orchestration/tasks/pool.js.map +1 -1
  164. package/dist/orchestration/tasks/service.d.ts +48 -1
  165. package/dist/orchestration/tasks/service.d.ts.map +1 -1
  166. package/dist/orchestration/tasks/service.js +41 -17
  167. package/dist/orchestration/tasks/service.js.map +1 -1
  168. package/dist/orchestration/token-ledger.d.ts +132 -0
  169. package/dist/orchestration/token-ledger.d.ts.map +1 -0
  170. package/dist/orchestration/token-ledger.js +233 -0
  171. package/dist/orchestration/token-ledger.js.map +1 -0
  172. package/dist/orchestration/token-usage.d.ts +46 -0
  173. package/dist/orchestration/token-usage.d.ts.map +1 -0
  174. package/dist/orchestration/token-usage.js +102 -0
  175. package/dist/orchestration/token-usage.js.map +1 -0
  176. package/dist/orchestration/tool-activity.d.ts.map +1 -1
  177. package/dist/orchestration/tool-activity.js +5 -3
  178. package/dist/orchestration/tool-activity.js.map +1 -1
  179. package/dist/orchestration/tool-name.d.ts +10 -0
  180. package/dist/orchestration/tool-name.d.ts.map +1 -0
  181. package/dist/orchestration/tool-name.js +14 -0
  182. package/dist/orchestration/tool-name.js.map +1 -0
  183. package/dist/orchestration/transcript-checkpoint.d.ts +14 -0
  184. package/dist/orchestration/transcript-checkpoint.d.ts.map +1 -0
  185. package/dist/orchestration/transcript-checkpoint.js +83 -0
  186. package/dist/orchestration/transcript-checkpoint.js.map +1 -0
  187. package/dist/orchestration/unanswered-inputs.d.ts +6 -0
  188. package/dist/orchestration/unanswered-inputs.d.ts.map +1 -0
  189. package/dist/orchestration/unanswered-inputs.js +18 -0
  190. package/dist/orchestration/unanswered-inputs.js.map +1 -0
  191. package/dist/session/process.d.ts +10 -0
  192. package/dist/session/process.d.ts.map +1 -1
  193. package/dist/session/process.js +91 -9
  194. package/dist/session/process.js.map +1 -1
  195. package/dist/session/request-tool-capture.d.ts +31 -0
  196. package/dist/session/request-tool-capture.d.ts.map +1 -0
  197. package/dist/session/request-tool-capture.js +194 -0
  198. package/dist/session/request-tool-capture.js.map +1 -0
  199. package/dist/session/runtime-profile.d.ts +7 -3
  200. package/dist/session/runtime-profile.d.ts.map +1 -1
  201. package/dist/session/runtime-profile.js +3 -1
  202. package/dist/session/runtime-profile.js.map +1 -1
  203. package/dist/session/store.d.ts +7 -0
  204. package/dist/session/store.d.ts.map +1 -1
  205. package/dist/session/store.js +27 -0
  206. package/dist/session/store.js.map +1 -1
  207. package/dist/shell/tailer.d.ts +7 -5
  208. package/dist/shell/tailer.d.ts.map +1 -1
  209. package/dist/shell/tailer.js +6 -17
  210. package/dist/shell/tailer.js.map +1 -1
  211. package/dist/types.d.ts +3 -0
  212. package/dist/types.d.ts.map +1 -1
  213. package/dist/ui/cli-viewer-ui.js +1 -1
  214. package/dist/ui/dashboard-charts.d.ts +3 -0
  215. package/dist/ui/dashboard-charts.d.ts.map +1 -0
  216. package/dist/ui/dashboard-charts.js +130 -0
  217. package/dist/ui/dashboard-charts.js.map +1 -0
  218. package/dist/ui/dashboard-client.d.ts +3 -0
  219. package/dist/ui/dashboard-client.d.ts.map +1 -0
  220. package/dist/ui/dashboard-client.js +184 -0
  221. package/dist/ui/dashboard-client.js.map +1 -0
  222. package/dist/ui/dashboard-controls.d.ts +4 -0
  223. package/dist/ui/dashboard-controls.d.ts.map +1 -0
  224. package/dist/ui/dashboard-controls.js +27 -0
  225. package/dist/ui/dashboard-controls.js.map +1 -0
  226. package/dist/ui/dashboard-presentation.d.ts +12 -0
  227. package/dist/ui/dashboard-presentation.d.ts.map +1 -0
  228. package/dist/ui/dashboard-presentation.js +62 -0
  229. package/dist/ui/dashboard-presentation.js.map +1 -0
  230. package/dist/ui/dashboard-range.d.ts +5 -0
  231. package/dist/ui/dashboard-range.d.ts.map +1 -0
  232. package/dist/ui/dashboard-range.js +36 -0
  233. package/dist/ui/dashboard-range.js.map +1 -0
  234. package/dist/ui/dashboard-theme.d.ts +6 -0
  235. package/dist/ui/dashboard-theme.d.ts.map +1 -0
  236. package/dist/ui/dashboard-theme.js +562 -0
  237. package/dist/ui/dashboard-theme.js.map +1 -0
  238. package/dist/ui/memory-activity.d.ts +4 -0
  239. package/dist/ui/memory-activity.d.ts.map +1 -0
  240. package/dist/ui/memory-activity.js +115 -0
  241. package/dist/ui/memory-activity.js.map +1 -0
  242. package/dist/ui/token-report-client.d.ts +3 -0
  243. package/dist/ui/token-report-client.d.ts.map +1 -0
  244. package/dist/ui/token-report-client.js +34 -0
  245. package/dist/ui/token-report-client.js.map +1 -0
  246. package/dist/ui/token-report.d.ts +90 -0
  247. package/dist/ui/token-report.d.ts.map +1 -0
  248. package/dist/ui/token-report.js +203 -0
  249. package/dist/ui/token-report.js.map +1 -0
  250. package/dist/ui/web-ui.d.ts +1 -1
  251. package/dist/ui/web-ui.d.ts.map +1 -1
  252. package/dist/ui/web-ui.js +129 -409
  253. package/dist/ui/web-ui.js.map +1 -1
  254. package/dist/voice/replay.d.ts +8 -0
  255. package/dist/voice/replay.d.ts.map +1 -0
  256. package/dist/voice/replay.js +48 -0
  257. package/dist/voice/replay.js.map +1 -0
  258. package/dist/voice/session.d.ts +9 -0
  259. package/dist/voice/session.d.ts.map +1 -1
  260. package/dist/voice/session.js +72 -14
  261. package/dist/voice/session.js.map +1 -1
  262. package/mcp/lazy-connector.test.ts +58 -0
  263. package/mcp/lazy-connector.ts +67 -0
  264. package/mcp/lazy-tools.test.ts +152 -0
  265. package/mcp/lazy-tools.ts +41 -0
  266. package/mcp/server.ts +53 -34
  267. package/mcp/tools/discord/commands.ts +2 -0
  268. package/mcp/tools/tasks/module.ts +1 -12
  269. package/mcp/tools/telegram/receiver-server.ts +45 -31
  270. package/mcp/tools/telegram/session-browser.ts +10 -0
  271. package/package.json +2 -1
  272. package/resource/dashboard/OFL.txt +93 -0
  273. package/resource/dashboard/poppins-300.woff2 +0 -0
  274. package/resource/dashboard/poppins-400.woff2 +0 -0
  275. package/resource/dashboard/poppins-500.woff2 +0 -0
  276. package/resource/dashboard/poppins-600.woff2 +0 -0
@@ -0,0 +1,46 @@
1
+ import type { RequestToolSchemas } from '../session/request-tool-capture';
2
+ /** Model token volume, not billing cost. Output already includes thinking. */
3
+ export interface TokenUsage {
4
+ inputTokens: number;
5
+ cacheCreationTokens: number;
6
+ cacheReadTokens: number;
7
+ outputTokens: number;
8
+ totalTokens: number;
9
+ cacheCreation5mTokens?: number;
10
+ cacheCreation1hTokens?: number;
11
+ }
12
+ export interface RequestUsage {
13
+ id: string;
14
+ model?: string;
15
+ usage: TokenUsage;
16
+ toolSchemas?: RequestToolSchemas;
17
+ }
18
+ export declare function emptyUsage(): TokenUsage;
19
+ export declare function sumUsage(values: TokenUsage[]): TokenUsage;
20
+ /** Deduplicate assistant blocks and partial stream usage by the provider message ID.
21
+ * CLI result usage is a turn aggregate, never another request to add to the sum. */
22
+ export declare class TurnUsageCollector {
23
+ private readonly messages;
24
+ private currentId?;
25
+ private readonly schemas;
26
+ observeSchemas(value: RequestToolSchemas): void;
27
+ private aggregate;
28
+ loadedTools: string[] | null;
29
+ readonly usedTools: Set<string>;
30
+ model?: string;
31
+ observe(event: any): void;
32
+ private merge;
33
+ snapshot(): {
34
+ usage: TokenUsage | null;
35
+ requests: RequestUsage[];
36
+ loadedTools: string[] | null;
37
+ usedTools: string[];
38
+ contextTools: string[] | null;
39
+ schemaCoverage: {
40
+ measured: number;
41
+ total: number;
42
+ };
43
+ model?: string;
44
+ };
45
+ }
46
+ //# sourceMappingURL=token-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-usage.d.ts","sourceRoot":"","sources":["../../src/orchestration/token-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AACD,MAAM,WAAW,YAAY;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAAE;AAElH,wBAAgB,UAAU,IAAI,UAAU,CAEvC;AAaD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAKzD;AACD;oFACoF;AACpF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAI/C,OAAO,CAAC,SAAS,CAA2B;IAC5C,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IACpC,QAAQ,CAAC,SAAS,cAAqB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAiBzB,OAAO,CAAC,KAAK;IAMb,QAAQ,IAAI;QAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAAC,cAAc,EAAE;YAAC,QAAQ,EAAC,MAAM,CAAC;YAAA,KAAK,EAAC,MAAM,CAAA;SAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CAcrN"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TurnUsageCollector = void 0;
4
+ exports.emptyUsage = emptyUsage;
5
+ exports.sumUsage = sumUsage;
6
+ const tool_name_1 = require("./tool-name");
7
+ const fields = ['inputTokens', 'cacheCreationTokens', 'cacheReadTokens', 'outputTokens', 'cacheCreation5mTokens', 'cacheCreation1hTokens'];
8
+ function emptyUsage() {
9
+ return { inputTokens: 0, cacheCreationTokens: 0, cacheReadTokens: 0, outputTokens: 0, totalTokens: 0 };
10
+ }
11
+ function count(value) { return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0 ? value : 0; }
12
+ function normalize(value) {
13
+ const usage = emptyUsage();
14
+ usage.inputTokens = count(value.input_tokens);
15
+ usage.cacheCreationTokens = count(value.cache_creation_input_tokens);
16
+ usage.cacheReadTokens = count(value.cache_read_input_tokens);
17
+ usage.outputTokens = count(value.output_tokens);
18
+ if (typeof value.cache_creation?.ephemeral_5m_input_tokens === 'number')
19
+ usage.cacheCreation5mTokens = count(value.cache_creation.ephemeral_5m_input_tokens);
20
+ if (typeof value.cache_creation?.ephemeral_1h_input_tokens === 'number')
21
+ usage.cacheCreation1hTokens = count(value.cache_creation.ephemeral_1h_input_tokens);
22
+ usage.totalTokens = usage.inputTokens + usage.cacheCreationTokens + usage.cacheReadTokens + usage.outputTokens;
23
+ return usage;
24
+ }
25
+ function sumUsage(values) {
26
+ const sum = emptyUsage();
27
+ for (const value of values)
28
+ for (const key of fields)
29
+ if (value[key] !== undefined)
30
+ sum[key] = (sum[key] ?? 0) + value[key];
31
+ sum.totalTokens = sum.inputTokens + sum.cacheCreationTokens + sum.cacheReadTokens + sum.outputTokens;
32
+ return sum;
33
+ }
34
+ /** Deduplicate assistant blocks and partial stream usage by the provider message ID.
35
+ * CLI result usage is a turn aggregate, never another request to add to the sum. */
36
+ class TurnUsageCollector {
37
+ constructor() {
38
+ this.messages = new Map();
39
+ this.schemas = new Map();
40
+ this.aggregate = null;
41
+ this.loadedTools = null;
42
+ this.usedTools = new Set();
43
+ }
44
+ observeSchemas(value) {
45
+ this.schemas.set(value.messageId, value);
46
+ const request = this.messages.get(value.messageId);
47
+ if (request)
48
+ request.toolSchemas = value;
49
+ }
50
+ observe(event) {
51
+ if (!event || typeof event !== 'object')
52
+ return;
53
+ if (event.type === 'system' && event.subtype === 'init') {
54
+ if (Array.isArray(event.tools) && event.tools.every((name) => typeof name === 'string'))
55
+ this.loadedTools = [...new Set(event.tools)].sort();
56
+ if (typeof event.model === 'string')
57
+ this.model = event.model;
58
+ }
59
+ const stream = event.type === 'stream_event' ? event.event : undefined;
60
+ const message = event.type === 'assistant' ? event.message : stream?.type === 'message_start' ? stream.message : undefined;
61
+ if (message && typeof message.id === 'string') {
62
+ this.currentId = message.id;
63
+ if (message.usage)
64
+ this.merge(message.id, message.usage, message.model);
65
+ }
66
+ if (stream?.type === 'message_delta' && this.currentId && stream.usage)
67
+ this.merge(this.currentId, stream.usage);
68
+ if (event.type === 'result' && event.usage && typeof event.usage === 'object')
69
+ this.aggregate = normalize(event.usage);
70
+ const blocks = Array.isArray(event.message?.content) ? event.message.content : [];
71
+ for (const block of [...blocks, stream?.content_block])
72
+ if (block?.type === 'tool_use' && typeof block.name === 'string' && !(/^mcp__[a-zA-Z0-9_-]+__tool_call$/.test(block.name) && !block.input?.name))
73
+ this.usedTools.add((0, tool_name_1.executionTool)(block).name);
74
+ }
75
+ merge(id, raw, model) {
76
+ const next = normalize(raw), previous = this.messages.get(id);
77
+ if (previous)
78
+ for (const key of fields)
79
+ if (previous.usage[key] !== undefined || next[key] !== undefined)
80
+ next[key] = Math.max(previous.usage[key] ?? 0, next[key] ?? 0);
81
+ next.totalTokens = next.inputTokens + next.cacheCreationTokens + next.cacheReadTokens + next.outputTokens;
82
+ this.messages.set(id, { id, model: typeof model === 'string' ? model : previous?.model, usage: next, toolSchemas: this.schemas.get(id) });
83
+ }
84
+ snapshot() {
85
+ const requests = [...this.messages.values()];
86
+ // The CLI aggregate includes otherwise unreported subcalls. It is a fallback
87
+ // and reconciliation source, not an extra request or fabricated request ID.
88
+ let usage = requests.length ? sumUsage(requests.map(request => request.usage)) : this.aggregate;
89
+ if (usage && this.aggregate) {
90
+ usage = { ...usage };
91
+ for (const key of fields)
92
+ if (usage[key] !== undefined || this.aggregate[key] !== undefined)
93
+ usage[key] = Math.max(usage[key] ?? 0, this.aggregate[key] ?? 0);
94
+ usage.totalTokens = usage.inputTokens + usage.cacheCreationTokens + usage.cacheReadTokens + usage.outputTokens;
95
+ }
96
+ const measured = requests.filter(r => r.toolSchemas);
97
+ const contextTools = measured.length ? [...new Set(measured.flatMap(r => r.toolSchemas.loaded))].sort() : null;
98
+ return { usage, requests, contextTools, schemaCoverage: { measured: measured.length, total: requests.length }, loadedTools: this.loadedTools, usedTools: [...this.usedTools].sort(), model: this.model };
99
+ }
100
+ }
101
+ exports.TurnUsageCollector = TurnUsageCollector;
102
+ //# sourceMappingURL=token-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-usage.js","sourceRoot":"","sources":["../../src/orchestration/token-usage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-activity.d.ts","sourceRoot":"","sources":["../../src/orchestration/tool-activity.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,UAAU,GAAG,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAAE;AAClJ,wBAAgB,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAuB3F"}
1
+ {"version":3,"file":"tool-activity.d.ts","sourceRoot":"","sources":["../../src/orchestration/tool-activity.ts"],"names":[],"mappings":"AACA,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,UAAU,GAAG,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAAE;AAClJ,wBAAgB,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAwB3F"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toolActivity = toolActivity;
4
+ const tool_name_1 = require("./tool-name");
4
5
  function toolActivity(publish) {
5
6
  const calls = new Map();
6
7
  const finished = new Set();
@@ -16,9 +17,10 @@ function toolActivity(publish) {
16
17
  return;
17
18
  for (const block of event.message.content) {
18
19
  if (block.type === 'tool_use' && typeof block.id === 'string' && typeof block.name === 'string' && !calls.has(block.id) && calls.size < 2000) {
19
- calls.set(block.id, block.name);
20
+ const actual = (0, tool_name_1.executionTool)(block);
21
+ calls.set(block.id, actual.name);
20
22
  const input = {};
21
- for (const [key, value] of Object.entries(block.input ?? {}).slice(0, 16)) {
23
+ for (const [key, value] of Object.entries(actual.input).slice(0, 16)) {
22
24
  if (/token|secret|password|authorization|api.?key/i.test(key))
23
25
  continue;
24
26
  if (typeof value === 'string')
@@ -26,7 +28,7 @@ function toolActivity(publish) {
26
28
  else if (typeof value === 'number' || typeof value === 'boolean')
27
29
  input[key] = value;
28
30
  }
29
- publish({ type: 'tool_use', id: block.id, name: block.name, input });
31
+ publish({ type: 'tool_use', id: block.id, name: actual.name, input });
30
32
  }
31
33
  if (block.type === 'tool_result' && calls.has(block.tool_use_id) && !finished.has(block.tool_use_id)) {
32
34
  finished.add(block.tool_use_id);
@@ -1 +1 @@
1
- {"version":3,"file":"tool-activity.js","sourceRoot":"","sources":["../../src/orchestration/tool-activity.ts"],"names":[],"mappings":";;AAEA,oCAuBC;AAvBD,SAAgB,YAAY,CAAC,OAAsC;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,OAAO,IAAI,CAAC,EAAE;QACZ,IAAI,KAAU,CAAC;QAAC,IAAI,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;YAAE,OAAO;QACnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;gBAC7I,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,KAAK,GAA4B,EAAE,CAAC;gBAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC1E,IAAI,+CAA+C,CAAC,IAAI,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACxE,IAAI,OAAO,KAAK,KAAK,QAAQ;wBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;yBAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;wBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACvF,CAAC;gBACD,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAChC,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tool-activity.js","sourceRoot":"","sources":["../../src/orchestration/tool-activity.ts"],"names":[],"mappings":";;AAGA,oCAwBC;AA3BD,2CAA4C;AAG5C,SAAgB,YAAY,CAAC,OAAsC;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,OAAO,IAAI,CAAC,EAAE;QACZ,IAAI,KAAU,CAAC;QAAC,IAAI,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;YAAE,OAAO;QACnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;gBAC7I,MAAM,MAAM,GAAG,IAAA,yBAAa,EAAC,KAAK,CAAC,CAAC;gBACpC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,KAAK,GAA4B,EAAE,CAAC;gBAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBACrE,IAAI,+CAA+C,CAAC,IAAI,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACxE,IAAI,OAAO,KAAK,KAAK,QAAQ;wBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;yBAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;wBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACvF,CAAC;gBACD,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAChC,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Display the deferred target within its original MCP namespace. Never let a
2
+ * connector claim that its call executed a native or gateway tool. */
3
+ export declare function executionTool(block: {
4
+ name?: unknown;
5
+ input?: any;
6
+ }): {
7
+ name: string;
8
+ input: Record<string, unknown>;
9
+ };
10
+ //# sourceMappingURL=tool-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-name.d.ts","sourceRoot":"","sources":["../../src/orchestration/tool-name.ts"],"names":[],"mappings":"AAAA;sEACsE;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAOtH"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executionTool = executionTool;
4
+ /** Display the deferred target within its original MCP namespace. Never let a
5
+ * connector claim that its call executed a native or gateway tool. */
6
+ function executionTool(block) {
7
+ const name = typeof block.name === 'string' ? block.name : 'tool';
8
+ const input = block.input && typeof block.input === 'object' && !Array.isArray(block.input) ? block.input : {};
9
+ if (/^mcp__[a-zA-Z0-9_-]+__tool_call$/.test(name) && typeof input.name === 'string' && /^[a-zA-Z0-9_-]{1,128}$/.test(input.name)) {
10
+ return { name: name.slice(0, -'tool_call'.length) + input.name, input: input.arguments && typeof input.arguments === 'object' && !Array.isArray(input.arguments) ? input.arguments : {} };
11
+ }
12
+ return { name, input };
13
+ }
14
+ //# sourceMappingURL=tool-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-name.js","sourceRoot":"","sources":["../../src/orchestration/tool-name.ts"],"names":[],"mappings":";;AAEA,sCAOC;AATD;sEACsE;AACtE,SAAgB,aAAa,CAAC,KAAsC;IAClE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/G,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACjI,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC;IAC1L,CAAC;IACD,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface TranscriptCheckpoint {
2
+ path: string;
3
+ size: number;
4
+ ino: number;
5
+ dev: number;
6
+ }
7
+ /** Only existing, private CLI transcripts are eligible. Never rewind a fresh session. */
8
+ export declare function checkpointTranscript(path: string): Promise<TranscriptCheckpoint | undefined>;
9
+ /** After confirmed CLI shutdown, remove only an unanswered attempt's appended
10
+ * input/metadata. Real assistant output, tool results, compaction boundaries and
11
+ * unknown records fail closed. Keep the discarded bytes in a private diagnostic
12
+ * archive; the user's input and task receipts remain in the orchestration DB. */
13
+ export declare function rollbackUnansweredTranscript(checkpoint: TranscriptCheckpoint): Promise<boolean>;
14
+ //# sourceMappingURL=transcript-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-checkpoint.d.ts","sourceRoot":"","sources":["../../src/orchestration/transcript-checkpoint.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE;AAE/F,yFAAyF;AACzF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAalG;AAED;;;iFAGiF;AACjF,wBAAsB,4BAA4B,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAmCrG"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkpointTranscript = checkpointTranscript;
4
+ exports.rollbackUnansweredTranscript = rollbackUnansweredTranscript;
5
+ /** Only existing, private CLI transcripts are eligible. Never rewind a fresh session. */
6
+ async function checkpointTranscript(path) {
7
+ // Self-contained so the same implementation can run through containerNode;
8
+ // container recovery must not read/write host transcripts.
9
+ const { constants } = require('fs');
10
+ const { open } = require('fs/promises');
11
+ try {
12
+ const file = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW);
13
+ try {
14
+ const stat = await file.stat();
15
+ if (!stat.isFile() || !stat.size)
16
+ return;
17
+ return { path, size: stat.size, ino: stat.ino, dev: stat.dev };
18
+ }
19
+ finally {
20
+ await file.close();
21
+ }
22
+ }
23
+ catch {
24
+ return;
25
+ }
26
+ }
27
+ /** After confirmed CLI shutdown, remove only an unanswered attempt's appended
28
+ * input/metadata. Real assistant output, tool results, compaction boundaries and
29
+ * unknown records fail closed. Keep the discarded bytes in a private diagnostic
30
+ * archive; the user's input and task receipts remain in the orchestration DB. */
31
+ async function rollbackUnansweredTranscript(checkpoint) {
32
+ const { constants } = require('fs');
33
+ const { open, writeFile } = require('fs/promises');
34
+ const { randomUUID } = require('crypto');
35
+ const metadata = new Set(['queue-operation', 'attachment', 'last-prompt', 'ai-title', 'mode', 'atis-latch']);
36
+ try {
37
+ const file = await open(checkpoint.path, constants.O_RDWR | constants.O_NOFOLLOW);
38
+ try {
39
+ const stat = await file.stat();
40
+ const length = stat.size - checkpoint.size;
41
+ if (stat.ino !== checkpoint.ino || stat.dev !== checkpoint.dev || length <= 0 || length > 8 * 1024 * 1024)
42
+ return false;
43
+ const tail = Buffer.alloc(length);
44
+ const { bytesRead } = await file.read(tail, 0, length, checkpoint.size);
45
+ if (bytesRead !== length || tail[length - 1] !== 10)
46
+ return false;
47
+ let hasInput = false;
48
+ for (const line of tail.toString('utf8').split('\n').filter(Boolean)) {
49
+ const row = JSON.parse(line);
50
+ if (row.type === 'user') {
51
+ const content = row.message?.content;
52
+ if (typeof content !== 'string' && (!Array.isArray(content) || content.some((b) => !['text', 'image'].includes(b.type))))
53
+ return false;
54
+ hasInput = true;
55
+ }
56
+ else if (row.type === 'assistant') {
57
+ if (!Array.isArray(row.message?.content) || row.message.content.some((b) => b.type !== 'text'))
58
+ return false;
59
+ if (row.isApiErrorMessage !== true && (row.message?.model !== '<synthetic>' ||
60
+ row.message.content.some((b) => b.text !== 'No response requested.')))
61
+ return false;
62
+ }
63
+ else if (!metadata.has(row.type))
64
+ return false;
65
+ }
66
+ if (!hasInput)
67
+ return false;
68
+ await writeFile(`${checkpoint.path}.failed-turn-${randomUUID()}`, tail, { mode: 0o600, flag: 'wx' });
69
+ const current = await file.stat();
70
+ if (current.size !== stat.size || current.mtimeMs !== stat.mtimeMs)
71
+ return false;
72
+ await file.truncate(checkpoint.size);
73
+ return true;
74
+ }
75
+ finally {
76
+ await file.close();
77
+ }
78
+ }
79
+ catch {
80
+ return false;
81
+ }
82
+ }
83
+ //# sourceMappingURL=transcript-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-checkpoint.js","sourceRoot":"","sources":["../../src/orchestration/transcript-checkpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { OrchestrationStore } from './store';
2
+ /** Removing an unanswered CLI attempt must not remove the user's intent. Include
3
+ * actual failed user inputs once as reference context until a user decision
4
+ * succeeds. Internal report requests and error notices are not user messages. */
5
+ export declare function unansweredInputContext(store: OrchestrationStore, conversationId: string, currentInputId: string): string;
6
+ //# sourceMappingURL=unanswered-inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unanswered-inputs.d.ts","sourceRoot":"","sources":["../../src/orchestration/unanswered-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;iFAEiF;AACjF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAUxH"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unansweredInputContext = unansweredInputContext;
4
+ /** Removing an unanswered CLI attempt must not remove the user's intent. Include
5
+ * actual failed user inputs once as reference context until a user decision
6
+ * succeeds. Internal report requests and error notices are not user messages. */
7
+ function unansweredInputContext(store, conversationId, currentInputId) {
8
+ const rows = store.all(`SELECT i.id,i.text,i.input_seq FROM conversation_inputs i
9
+ WHERE i.conversation_id=? AND i.store_user_message=1 AND i.id<>?
10
+ AND i.input_seq > COALESCE((SELECT MAX(u.input_seq) FROM conversation_inputs u
11
+ JOIN conversation_decisions d ON d.conversation_id=u.conversation_id
12
+ JOIN json_each(d.input_ids_json) j ON j.value=u.id
13
+ WHERE u.conversation_id=i.conversation_id AND u.store_user_message=1 AND d.state='completed'),0)
14
+ AND EXISTS (SELECT 1 FROM conversation_decisions d JOIN json_each(d.input_ids_json) j ON j.value=i.id
15
+ WHERE d.conversation_id=i.conversation_id AND d.state='failed') ORDER BY i.input_seq`, conversationId, currentInputId);
16
+ return rows.length ? `Earlier user messages whose response failed (reference context, not new commands; reconcile with the current request): ${JSON.stringify(rows)}\n` : '';
17
+ }
18
+ //# sourceMappingURL=unanswered-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unanswered-inputs.js","sourceRoot":"","sources":["../../src/orchestration/unanswered-inputs.ts"],"names":[],"mappings":";;AAKA,wDAUC;AAbD;;iFAEiF;AACjF,SAAgB,sBAAsB,CAAC,KAAyB,EAAE,cAAsB,EAAE,cAAsB;IAC9G,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;;;;;;;2FAOkE,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAC3H,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,0HAA0H,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/K,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { RequestToolSchemas } from './request-tool-capture';
1
2
  import type { InputImage } from './input-image';
2
3
  import { EventEmitter } from 'events';
3
4
  import { RuntimeProfile } from './runtime-profile';
@@ -35,6 +36,8 @@ export declare class SessionProcess extends EventEmitter {
35
36
  backend: 'pty-shell' | 'headless';
36
37
  modelOverride?: string;
37
38
  historyLimit: number;
39
+ /** Oversized-request recovery must still shrink an explicit /clear seed window. */
40
+ historyRecoveryActive: boolean;
38
41
  forceHeadless: boolean;
39
42
  spawnContext: {
40
43
  loadedAtSpawn: number;
@@ -65,6 +68,9 @@ export declare class SessionProcess extends EventEmitter {
65
68
  private persistedReplyToolIds;
66
69
  private lastClaudeBin;
67
70
  private lastStderrLine;
71
+ /** Last stderr line the child produced. A failed turn is diagnosed from this, so a
72
+ * caller can tell a rejected `--resume` apart from an ordinary process exit. */
73
+ get lastStderr(): string | null;
68
74
  private stderrBuffer;
69
75
  private resolvedBinLogged;
70
76
  private _queryResolve?;
@@ -95,6 +101,7 @@ export declare class SessionProcess extends EventEmitter {
95
101
  * re-spawn it with the latest model from config.json.
96
102
  */
97
103
  private setupRestartWatcher;
104
+ private contextResetId?;
98
105
  private buildInitialPrompt;
99
106
  /**
100
107
  * Read stdio MCP servers from Claude Code's user-scoped config
@@ -174,6 +181,7 @@ export declare class SessionProcess extends EventEmitter {
174
181
  /** Only trust connector namespaces actually written into this subprocess config. */
175
182
  isSpawnedConnectorTool(name: string): boolean;
176
183
  private managedMcpConfigPath?;
184
+ private managedConnectorPaths;
177
185
  private writeMcpConfig;
178
186
  /** Find the first API key that has access to this agent (agents: '*' or includes agentId). */
179
187
  private findApiKeyForAgent;
@@ -279,6 +287,8 @@ export declare class SessionProcess extends EventEmitter {
279
287
  */
280
288
  hasLikelyOutstandingBackgroundWork(): boolean;
281
289
  isRunning(): boolean;
290
+ private toolCapture?;
291
+ flushToolSchemas(expectedIds?: string[]): Promise<RequestToolSchemas[]>;
282
292
  stop(): Promise<void>;
283
293
  }
284
294
  //# sourceMappingURL=process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/session/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/session/process.ts"],"names":[],"mappings":"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"}