mstro-app 0.5.1 → 0.5.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 (240) hide show
  1. package/PRIVACY.md +9 -9
  2. package/README.md +71 -28
  3. package/bin/commands/config.js +1 -1
  4. package/bin/mstro.js +55 -4
  5. package/dist/server/cli/eta-estimator.d.ts +55 -0
  6. package/dist/server/cli/eta-estimator.d.ts.map +1 -0
  7. package/dist/server/cli/eta-estimator.js +222 -0
  8. package/dist/server/cli/eta-estimator.js.map +1 -0
  9. package/dist/server/cli/headless/stall-assessor.d.ts +50 -0
  10. package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
  11. package/dist/server/cli/headless/stall-assessor.js +64 -9
  12. package/dist/server/cli/headless/stall-assessor.js.map +1 -1
  13. package/dist/server/cli/headless/tool-watchdog.d.ts +21 -0
  14. package/dist/server/cli/headless/tool-watchdog.d.ts.map +1 -1
  15. package/dist/server/cli/headless/tool-watchdog.js +19 -12
  16. package/dist/server/cli/headless/tool-watchdog.js.map +1 -1
  17. package/dist/server/cli/improvisation-history-store.d.ts.map +1 -1
  18. package/dist/server/cli/improvisation-history-store.js +5 -1
  19. package/dist/server/cli/improvisation-history-store.js.map +1 -1
  20. package/dist/server/cli/improvisation-output-queue.d.ts +5 -1
  21. package/dist/server/cli/improvisation-output-queue.d.ts.map +1 -1
  22. package/dist/server/cli/improvisation-output-queue.js +30 -7
  23. package/dist/server/cli/improvisation-output-queue.js.map +1 -1
  24. package/dist/server/cli/improvisation-session-manager.d.ts +29 -0
  25. package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
  26. package/dist/server/cli/improvisation-session-manager.js +50 -1
  27. package/dist/server/cli/improvisation-session-manager.js.map +1 -1
  28. package/dist/server/cli/improvisation-types.d.ts +2 -0
  29. package/dist/server/cli/improvisation-types.d.ts.map +1 -1
  30. package/dist/server/cli/improvisation-types.js.map +1 -1
  31. package/dist/server/engines/EngineEvent.d.ts +126 -0
  32. package/dist/server/engines/EngineEvent.d.ts.map +1 -0
  33. package/dist/server/engines/EngineEvent.js +11 -0
  34. package/dist/server/engines/EngineEvent.js.map +1 -0
  35. package/dist/server/engines/claude/ClaudeCodeEngine.d.ts +47 -0
  36. package/dist/server/engines/claude/ClaudeCodeEngine.d.ts.map +1 -0
  37. package/dist/server/engines/claude/ClaudeCodeEngine.js +338 -0
  38. package/dist/server/engines/claude/ClaudeCodeEngine.js.map +1 -0
  39. package/dist/server/engines/factory.d.ts +21 -0
  40. package/dist/server/engines/factory.d.ts.map +1 -0
  41. package/dist/server/engines/factory.js +152 -0
  42. package/dist/server/engines/factory.js.map +1 -0
  43. package/dist/server/engines/opencode/OpenCodeEngine.d.ts +148 -0
  44. package/dist/server/engines/opencode/OpenCodeEngine.d.ts.map +1 -0
  45. package/dist/server/engines/opencode/OpenCodeEngine.js +630 -0
  46. package/dist/server/engines/opencode/OpenCodeEngine.js.map +1 -0
  47. package/dist/server/engines/opencode/OpenCodeServerManager.d.ts +172 -0
  48. package/dist/server/engines/opencode/OpenCodeServerManager.d.ts.map +1 -0
  49. package/dist/server/engines/opencode/OpenCodeServerManager.js +390 -0
  50. package/dist/server/engines/opencode/OpenCodeServerManager.js.map +1 -0
  51. package/dist/server/engines/opencode/model-catalog.d.ts +94 -0
  52. package/dist/server/engines/opencode/model-catalog.d.ts.map +1 -0
  53. package/dist/server/engines/opencode/model-catalog.js +141 -0
  54. package/dist/server/engines/opencode/model-catalog.js.map +1 -0
  55. package/dist/server/engines/types.d.ts +146 -0
  56. package/dist/server/engines/types.d.ts.map +1 -0
  57. package/dist/server/engines/types.js +4 -0
  58. package/dist/server/engines/types.js.map +1 -0
  59. package/dist/server/index.js +1 -1
  60. package/dist/server/index.js.map +1 -1
  61. package/dist/server/mcp/bouncer-haiku.d.ts +17 -4
  62. package/dist/server/mcp/bouncer-haiku.d.ts.map +1 -1
  63. package/dist/server/mcp/bouncer-haiku.js +8 -124
  64. package/dist/server/mcp/bouncer-haiku.js.map +1 -1
  65. package/dist/server/mcp/bouncer-integration.d.ts +45 -0
  66. package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
  67. package/dist/server/mcp/bouncer-integration.js +69 -5
  68. package/dist/server/mcp/bouncer-integration.js.map +1 -1
  69. package/dist/server/mcp/classifier/BouncerClassifier.d.ts +34 -0
  70. package/dist/server/mcp/classifier/BouncerClassifier.d.ts.map +1 -0
  71. package/dist/server/mcp/classifier/BouncerClassifier.js +4 -0
  72. package/dist/server/mcp/classifier/BouncerClassifier.js.map +1 -0
  73. package/dist/server/mcp/classifier/ClaudeBouncerClassifier.d.ts +17 -0
  74. package/dist/server/mcp/classifier/ClaudeBouncerClassifier.d.ts.map +1 -0
  75. package/dist/server/mcp/classifier/ClaudeBouncerClassifier.js +142 -0
  76. package/dist/server/mcp/classifier/ClaudeBouncerClassifier.js.map +1 -0
  77. package/dist/server/mcp/classifier/OpenCodeBouncerClassifier.d.ts +68 -0
  78. package/dist/server/mcp/classifier/OpenCodeBouncerClassifier.d.ts.map +1 -0
  79. package/dist/server/mcp/classifier/OpenCodeBouncerClassifier.js +182 -0
  80. package/dist/server/mcp/classifier/OpenCodeBouncerClassifier.js.map +1 -0
  81. package/dist/server/mcp/classifier/factory.d.ts +70 -0
  82. package/dist/server/mcp/classifier/factory.d.ts.map +1 -0
  83. package/dist/server/mcp/classifier/factory.js +155 -0
  84. package/dist/server/mcp/classifier/factory.js.map +1 -0
  85. package/dist/server/services/plan/agent-resolver.d.ts +26 -0
  86. package/dist/server/services/plan/agent-resolver.d.ts.map +1 -0
  87. package/dist/server/services/plan/agent-resolver.js +102 -0
  88. package/dist/server/services/plan/agent-resolver.js.map +1 -0
  89. package/dist/server/services/plan/composer.d.ts.map +1 -1
  90. package/dist/server/services/plan/composer.js +59 -11
  91. package/dist/server/services/plan/composer.js.map +1 -1
  92. package/dist/server/services/plan/executor.d.ts.map +1 -1
  93. package/dist/server/services/plan/executor.js +3 -1
  94. package/dist/server/services/plan/executor.js.map +1 -1
  95. package/dist/server/services/plan/issue-prompt-builder.d.ts.map +1 -1
  96. package/dist/server/services/plan/issue-prompt-builder.js +33 -1
  97. package/dist/server/services/plan/issue-prompt-builder.js.map +1 -1
  98. package/dist/server/services/plan/parser-core.d.ts.map +1 -1
  99. package/dist/server/services/plan/parser-core.js +1 -0
  100. package/dist/server/services/plan/parser-core.js.map +1 -1
  101. package/dist/server/services/plan/types.d.ts +1 -0
  102. package/dist/server/services/plan/types.d.ts.map +1 -1
  103. package/dist/server/services/settings.d.ts +76 -2
  104. package/dist/server/services/settings.d.ts.map +1 -1
  105. package/dist/server/services/settings.js +127 -4
  106. package/dist/server/services/settings.js.map +1 -1
  107. package/dist/server/services/websocket/git-branch-handlers.d.ts.map +1 -1
  108. package/dist/server/services/websocket/git-branch-handlers.js +19 -6
  109. package/dist/server/services/websocket/git-branch-handlers.js.map +1 -1
  110. package/dist/server/services/websocket/handler.d.ts +17 -1
  111. package/dist/server/services/websocket/handler.d.ts.map +1 -1
  112. package/dist/server/services/websocket/handler.js +54 -2
  113. package/dist/server/services/websocket/handler.js.map +1 -1
  114. package/dist/server/services/websocket/quality-complexity.d.ts.map +1 -1
  115. package/dist/server/services/websocket/quality-complexity.js +78 -26
  116. package/dist/server/services/websocket/quality-complexity.js.map +1 -1
  117. package/dist/server/services/websocket/quality-eta.d.ts +47 -0
  118. package/dist/server/services/websocket/quality-eta.d.ts.map +1 -0
  119. package/dist/server/services/websocket/quality-eta.js +110 -0
  120. package/dist/server/services/websocket/quality-eta.js.map +1 -0
  121. package/dist/server/services/websocket/quality-grading.d.ts +27 -4
  122. package/dist/server/services/websocket/quality-grading.d.ts.map +1 -1
  123. package/dist/server/services/websocket/quality-grading.js +369 -201
  124. package/dist/server/services/websocket/quality-grading.js.map +1 -1
  125. package/dist/server/services/websocket/quality-handlers.d.ts.map +1 -1
  126. package/dist/server/services/websocket/quality-handlers.js +145 -7
  127. package/dist/server/services/websocket/quality-handlers.js.map +1 -1
  128. package/dist/server/services/websocket/quality-operations.d.ts +34 -0
  129. package/dist/server/services/websocket/quality-operations.d.ts.map +1 -0
  130. package/dist/server/services/websocket/quality-operations.js +47 -0
  131. package/dist/server/services/websocket/quality-operations.js.map +1 -0
  132. package/dist/server/services/websocket/quality-persistence.d.ts +9 -0
  133. package/dist/server/services/websocket/quality-persistence.d.ts.map +1 -1
  134. package/dist/server/services/websocket/quality-persistence.js +10 -0
  135. package/dist/server/services/websocket/quality-persistence.js.map +1 -1
  136. package/dist/server/services/websocket/quality-review-agent.d.ts +1 -1
  137. package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -1
  138. package/dist/server/services/websocket/quality-review-agent.js +105 -56
  139. package/dist/server/services/websocket/quality-review-agent.js.map +1 -1
  140. package/dist/server/services/websocket/quality-service.d.ts +9 -1
  141. package/dist/server/services/websocket/quality-service.d.ts.map +1 -1
  142. package/dist/server/services/websocket/quality-service.js +334 -14
  143. package/dist/server/services/websocket/quality-service.js.map +1 -1
  144. package/dist/server/services/websocket/quality-tools.d.ts +21 -0
  145. package/dist/server/services/websocket/quality-tools.d.ts.map +1 -1
  146. package/dist/server/services/websocket/quality-tools.js +49 -0
  147. package/dist/server/services/websocket/quality-tools.js.map +1 -1
  148. package/dist/server/services/websocket/quality-types.d.ts +35 -2
  149. package/dist/server/services/websocket/quality-types.d.ts.map +1 -1
  150. package/dist/server/services/websocket/quality-types.js +1 -1
  151. package/dist/server/services/websocket/quality-types.js.map +1 -1
  152. package/dist/server/services/websocket/session-handlers.d.ts +3 -1
  153. package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
  154. package/dist/server/services/websocket/session-handlers.js +57 -9
  155. package/dist/server/services/websocket/session-handlers.js.map +1 -1
  156. package/dist/server/services/websocket/session-history.js +3 -0
  157. package/dist/server/services/websocket/session-history.js.map +1 -1
  158. package/dist/server/services/websocket/session-initialization.d.ts.map +1 -1
  159. package/dist/server/services/websocket/session-initialization.js +158 -42
  160. package/dist/server/services/websocket/session-initialization.js.map +1 -1
  161. package/dist/server/services/websocket/session-registry.d.ts +25 -0
  162. package/dist/server/services/websocket/session-registry.d.ts.map +1 -1
  163. package/dist/server/services/websocket/session-registry.js +19 -0
  164. package/dist/server/services/websocket/session-registry.js.map +1 -1
  165. package/dist/server/services/websocket/settings-handlers.d.ts +1 -1
  166. package/dist/server/services/websocket/settings-handlers.d.ts.map +1 -1
  167. package/dist/server/services/websocket/settings-handlers.js +35 -4
  168. package/dist/server/services/websocket/settings-handlers.js.map +1 -1
  169. package/dist/server/services/websocket/tab-broadcast.d.ts +7 -2
  170. package/dist/server/services/websocket/tab-broadcast.d.ts.map +1 -1
  171. package/dist/server/services/websocket/tab-broadcast.js +10 -2
  172. package/dist/server/services/websocket/tab-broadcast.js.map +1 -1
  173. package/dist/server/services/websocket/tab-event-buffer.d.ts +97 -8
  174. package/dist/server/services/websocket/tab-event-buffer.d.ts.map +1 -1
  175. package/dist/server/services/websocket/tab-event-buffer.js +138 -12
  176. package/dist/server/services/websocket/tab-event-buffer.js.map +1 -1
  177. package/dist/server/services/websocket/tab-event-replay.d.ts +29 -13
  178. package/dist/server/services/websocket/tab-event-replay.d.ts.map +1 -1
  179. package/dist/server/services/websocket/tab-event-replay.js +55 -2
  180. package/dist/server/services/websocket/tab-event-replay.js.map +1 -1
  181. package/dist/server/services/websocket/tab-handlers.d.ts +9 -1
  182. package/dist/server/services/websocket/tab-handlers.d.ts.map +1 -1
  183. package/dist/server/services/websocket/tab-handlers.js +47 -2
  184. package/dist/server/services/websocket/tab-handlers.js.map +1 -1
  185. package/dist/server/services/websocket/types.d.ts +28 -5
  186. package/dist/server/services/websocket/types.d.ts.map +1 -1
  187. package/dist/server/services/websocket/types.js +10 -4
  188. package/dist/server/services/websocket/types.js.map +1 -1
  189. package/package.json +5 -3
  190. package/server/cli/eta-estimator.ts +249 -0
  191. package/server/cli/headless/stall-assessor.ts +93 -0
  192. package/server/cli/headless/tool-watchdog.ts +21 -0
  193. package/server/cli/improvisation-history-store.ts +4 -1
  194. package/server/cli/improvisation-output-queue.ts +29 -7
  195. package/server/cli/improvisation-session-manager.ts +54 -1
  196. package/server/cli/improvisation-types.ts +2 -0
  197. package/server/engines/EngineEvent.ts +156 -0
  198. package/server/engines/claude/ClaudeCodeEngine.ts +404 -0
  199. package/server/engines/factory.ts +176 -0
  200. package/server/engines/opencode/OpenCodeEngine.ts +786 -0
  201. package/server/engines/opencode/OpenCodeServerManager.ts +577 -0
  202. package/server/engines/opencode/model-catalog.ts +217 -0
  203. package/server/engines/types.ts +173 -0
  204. package/server/index.ts +1 -1
  205. package/server/mcp/bouncer-haiku.ts +21 -145
  206. package/server/mcp/bouncer-integration.ts +107 -5
  207. package/server/mcp/classifier/BouncerClassifier.ts +40 -0
  208. package/server/mcp/classifier/ClaudeBouncerClassifier.ts +189 -0
  209. package/server/mcp/classifier/OpenCodeBouncerClassifier.ts +305 -0
  210. package/server/mcp/classifier/factory.ts +195 -0
  211. package/server/services/plan/agent-resolver.ts +115 -0
  212. package/server/services/plan/agents/code-review.md +38 -8
  213. package/server/services/plan/composer.ts +63 -11
  214. package/server/services/plan/executor.ts +3 -1
  215. package/server/services/plan/issue-prompt-builder.ts +39 -1
  216. package/server/services/plan/parser-core.ts +1 -0
  217. package/server/services/plan/types.ts +4 -0
  218. package/server/services/settings.ts +161 -4
  219. package/server/services/websocket/git-branch-handlers.ts +20 -6
  220. package/server/services/websocket/handler.ts +59 -2
  221. package/server/services/websocket/quality-complexity.ts +80 -26
  222. package/server/services/websocket/quality-eta.ts +155 -0
  223. package/server/services/websocket/quality-grading.ts +445 -222
  224. package/server/services/websocket/quality-handlers.ts +153 -7
  225. package/server/services/websocket/quality-operations.ts +72 -0
  226. package/server/services/websocket/quality-persistence.ts +17 -0
  227. package/server/services/websocket/quality-review-agent.ts +154 -64
  228. package/server/services/websocket/quality-service.ts +361 -13
  229. package/server/services/websocket/quality-tools.ts +51 -0
  230. package/server/services/websocket/quality-types.ts +41 -2
  231. package/server/services/websocket/session-handlers.ts +64 -10
  232. package/server/services/websocket/session-history.ts +3 -0
  233. package/server/services/websocket/session-initialization.ts +189 -46
  234. package/server/services/websocket/session-registry.ts +37 -0
  235. package/server/services/websocket/settings-handlers.ts +41 -4
  236. package/server/services/websocket/tab-broadcast.ts +10 -2
  237. package/server/services/websocket/tab-event-buffer.ts +143 -11
  238. package/server/services/websocket/tab-event-replay.ts +70 -3
  239. package/server/services/websocket/tab-handlers.ts +53 -5
  240. package/server/services/websocket/types.ts +37 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eta-estimator.js","sourceRoot":"","sources":["../../../server/cli/eta-estimator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Stall Assessor — Two-layer stall detection (heuristic + Haiku AI).
3
+ *
4
+ * 1. Fast heuristic: known long-running patterns get automatic extensions.
5
+ * 2. Haiku assessment: ambiguous cases get a quick AI evaluation.
6
+ *
7
+ * Other Haiku-based assessments (context loss, approval, premature completion,
8
+ * best result, error classification) live in haiku-assessments.ts.
9
+ */
10
+ import type { EngineEvent } from '../../engines/EngineEvent.js';
1
11
  export type { ApprovalVerdict, BestResultContext, BestResultVerdict, ContextLossContext, ContextLossVerdict, ErrorClassification, PrematureCompletionContext, PrematureCompletionVerdict } from './haiku-assessments.js';
2
12
  export { assessApproval, assessBestResult, assessContextLoss, assessPrematureCompletion, classifyError } from './haiku-assessments.js';
3
13
  export interface StallContext {
@@ -16,6 +26,46 @@ export interface StallVerdict {
16
26
  extensionMs: number;
17
27
  reason: string;
18
28
  }
29
+ /**
30
+ * Mutable tool-activity accumulator fed by an engine-agnostic `EngineEvent`
31
+ * stream. Consumed by {@link buildStallContext} to produce the tool-related
32
+ * fields of a {@link StallContext} without coupling to any specific engine's
33
+ * internal shapes.
34
+ */
35
+ export interface ToolActivityState {
36
+ /** Tool calls observed by `tool.start` but not yet ended. */
37
+ pendingToolIds: Set<string>;
38
+ /** Names of tools still pending (used by the stall heuristic). */
39
+ pendingToolNames: Set<string>;
40
+ /** Map of toolId -> toolName so `tool.end` can drop names when the last id goes. */
41
+ pendingToolNameById: Map<string, string>;
42
+ /** Last tool name seen via `tool.start`. */
43
+ lastToolName?: string;
44
+ /** Short summary of the last tool input (url/query/command/prompt). */
45
+ lastToolInputSummary?: string;
46
+ /** Total number of `tool.start` events observed this session. */
47
+ totalToolCalls: number;
48
+ }
49
+ /** Allocate a fresh, empty tool-activity state. */
50
+ export declare function createToolActivityState(): ToolActivityState;
51
+ /**
52
+ * Update a {@link ToolActivityState} from a single engine event. Non-tool
53
+ * events are ignored. This lets the stall assessor operate on any
54
+ * CodingAgentEngine's event stream without knowing the engine's internals.
55
+ */
56
+ export declare function applyEngineEventToActivity(state: ToolActivityState, event: EngineEvent): void;
57
+ /**
58
+ * Build a {@link StallContext} from an engine-agnostic activity state plus
59
+ * the caller-owned timing fields. The stall heuristics and Haiku assessment
60
+ * in this module already operate on {@link StallContext}, so they are now
61
+ * fully drivable by any CodingAgentEngine's event stream.
62
+ */
63
+ export declare function buildStallContext(activity: ToolActivityState, timing: {
64
+ originalPrompt: string;
65
+ silenceMs: number;
66
+ elapsedTotalMs: number;
67
+ tokenSilenceMs?: number;
68
+ }): StallContext;
19
69
  export declare function assessStall(ctx: StallContext, claudeCommand: string, verbose: boolean, toolWatchdogActive?: boolean): Promise<StallVerdict>;
20
70
  export declare function assessToolTimeout(toolName: string, toolInput: Record<string, unknown>, elapsedMs: number, claudeCommand: string, verbose: boolean, tokenSilenceMs?: number): Promise<StallVerdict>;
21
71
  //# sourceMappingURL=stall-assessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stall-assessor.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/stall-assessor.ts"],"names":[],"mappings":"AAgBA,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEzN,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvI,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAqKD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,EAChB,kBAAkB,UAAQ,GACzB,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,CAmDvB"}
1
+ {"version":3,"file":"stall-assessor.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/stall-assessor.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAKhE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEzN,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvI,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,kEAAkE;IAClE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,oFAAoF;IACpF,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,mDAAmD;AACnD,wBAAgB,uBAAuB,IAAI,iBAAiB,CAO3D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAiB7F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,YAAY,CAYd;AA8KD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,EAChB,kBAAkB,UAAQ,GACzB,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,CAmDvB"}
@@ -1,18 +1,73 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- /**
3
- * Stall Assessor — Two-layer stall detection (heuristic + Haiku AI).
4
- *
5
- * 1. Fast heuristic: known long-running patterns get automatic extensions.
6
- * 2. Haiku assessment: ambiguous cases get a quick AI evaluation.
7
- *
8
- * Other Haiku-based assessments (context loss, approval, premature completion,
9
- * best result, error classification) live in haiku-assessments.ts.
10
- */
11
2
  import { loadSkillPrompt } from '../../services/plan/agent-loader.js';
12
3
  import { spawnHaikuRaw } from './haiku-assessments.js';
13
4
  import { hlog } from './headless-logger.js';
14
5
  // Re-export assessment functions for backward compatibility
15
6
  export { assessApproval, assessBestResult, assessContextLoss, assessPrematureCompletion, classifyError } from './haiku-assessments.js';
7
+ /** Allocate a fresh, empty tool-activity state. */
8
+ export function createToolActivityState() {
9
+ return {
10
+ pendingToolIds: new Set(),
11
+ pendingToolNames: new Set(),
12
+ pendingToolNameById: new Map(),
13
+ totalToolCalls: 0,
14
+ };
15
+ }
16
+ /**
17
+ * Update a {@link ToolActivityState} from a single engine event. Non-tool
18
+ * events are ignored. This lets the stall assessor operate on any
19
+ * CodingAgentEngine's event stream without knowing the engine's internals.
20
+ */
21
+ export function applyEngineEventToActivity(state, event) {
22
+ if (event.kind === 'tool.start') {
23
+ state.pendingToolIds.add(event.toolCallId);
24
+ state.pendingToolNames.add(event.toolName);
25
+ state.pendingToolNameById.set(event.toolCallId, event.toolName);
26
+ state.lastToolName = event.toolName;
27
+ state.lastToolInputSummary = summarizeToolInput(event.input);
28
+ state.totalToolCalls++;
29
+ return;
30
+ }
31
+ if (event.kind === 'tool.end') {
32
+ state.pendingToolIds.delete(event.toolCallId);
33
+ state.pendingToolNameById.delete(event.toolCallId);
34
+ // Only drop the name from pendingToolNames if no other pending call uses it.
35
+ const stillPending = Array.from(state.pendingToolNameById.values()).includes(event.toolName);
36
+ if (!stillPending)
37
+ state.pendingToolNames.delete(event.toolName);
38
+ }
39
+ }
40
+ /**
41
+ * Build a {@link StallContext} from an engine-agnostic activity state plus
42
+ * the caller-owned timing fields. The stall heuristics and Haiku assessment
43
+ * in this module already operate on {@link StallContext}, so they are now
44
+ * fully drivable by any CodingAgentEngine's event stream.
45
+ */
46
+ export function buildStallContext(activity, timing) {
47
+ return {
48
+ originalPrompt: timing.originalPrompt,
49
+ silenceMs: timing.silenceMs,
50
+ elapsedTotalMs: timing.elapsedTotalMs,
51
+ tokenSilenceMs: timing.tokenSilenceMs,
52
+ lastToolName: activity.lastToolName,
53
+ lastToolInputSummary: activity.lastToolInputSummary,
54
+ pendingToolCount: activity.pendingToolIds.size,
55
+ pendingToolNames: new Set(activity.pendingToolNames),
56
+ totalToolCalls: activity.totalToolCalls,
57
+ };
58
+ }
59
+ function summarizeToolInput(input) {
60
+ if (input.url)
61
+ return `URL: ${String(input.url).slice(0, 200)}`;
62
+ if (input.query)
63
+ return `Query: ${String(input.query).slice(0, 200)}`;
64
+ if (input.command)
65
+ return `Command: ${String(input.command).slice(0, 200)}`;
66
+ if (input.prompt)
67
+ return `Prompt: ${String(input.prompt).slice(0, 200)}`;
68
+ const serialized = JSON.stringify(input);
69
+ return serialized ? serialized.slice(0, 200) : undefined;
70
+ }
16
71
  // ========== Fast Heuristic ==========
17
72
  function hasSubagentPending(pendingNames, lastToolName, hasPendingTools) {
18
73
  return pendingNames.has('Task') || pendingNames.has('Agent')
@@ -1 +1 @@
1
- {"version":3,"file":"stall-assessor.js","sourceRoot":"","sources":["../../../../server/cli/headless/stall-assessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stall-assessor.js","sourceRoot":"","sources":["../../../../server/cli/headless/stall-assessor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Tool Watchdog
3
+ *
4
+ * Per-tool adaptive timeout system using TCP RTO-style EMA tracking (RFC 6298).
5
+ * Monitors individual tool call durations and kills tools that exceed their
6
+ * adaptive timeout, preserving work via checkpoint-and-retry.
7
+ *
8
+ * Three-tier timeout strategy:
9
+ * 1. EMA tracking: timeout = estimatedDuration + 4 * deviation
10
+ * 2. Floor/ceiling bounds: never kill below floor, always kill at ceiling
11
+ * 3. Haiku tiebreaker: optional AI assessment before killing ambiguous cases
12
+ */
13
+ import type { EngineEvent } from '../../engines/EngineEvent.js';
1
14
  import type { ExecutionCheckpoint, ToolTimeoutProfile, ToolUseAccumulator } from './types.js';
2
15
  /** Default timeout profiles per tool type */
3
16
  export declare const DEFAULT_TOOL_TIMEOUT_PROFILES: Record<string, ToolTimeoutProfile>;
@@ -45,6 +58,14 @@ export declare class ToolWatchdog {
45
58
  private scheduleActivityGatedTimeout;
46
59
  /** Schedule a post-extension timeout that kills without another tiebreaker */
47
60
  private scheduleExtensionTimeout;
61
+ /**
62
+ * Drive the watchdog from an engine-agnostic `EngineEvent` stream.
63
+ * Routes `tool.start` to `startWatch`, and `tool.end` to `clearWatch` +
64
+ * `recordCompletion` — so any CodingAgentEngine (Claude Code, OpenCode)
65
+ * can feed this watchdog without leaking engine-specific shapes.
66
+ * Non-tool events are ignored.
67
+ */
68
+ onEngineEvent(event: EngineEvent, onTimeout: (toolId: string) => void): void;
48
69
  /** Stop watching a tool (it completed normally) */
49
70
  clearWatch(toolId: string): void;
50
71
  /** Clear all active watches (process ending) */
@@ -1 +1 @@
1
- {"version":3,"file":"tool-watchdog.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/tool-watchdog.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,mBAAmB,EAEnB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAOpB,6CAA6C;AAC7C,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CA4E5E,CAAC;AAUF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjM,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,YAAY,CAAC,CAAsC;IAC3D,OAAO,CAAC,iBAAiB,CAAC,CAA2B;gBAEzC,OAAO,GAAE,mBAAwB;IAe7C,sEAAsE;IACtE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA2B5D,kDAAkD;IAClD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAWpC,4DAA4D;IAC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB;IAIhD,iCAAiC;IACjC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,IAAI,GAAG,IAAI;IA8B7G,uFAAuF;YACzE,2BAA2B;IAsCzC,8DAA8D;YAChD,aAAa;IAuC3B,iFAAiF;IACjF,OAAO,CAAC,4BAA4B;IAmBpC,8EAA8E;IAC9E,OAAO,CAAC,wBAAwB;IAmBhC,mDAAmD;IACnD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQhC,gDAAgD;IAChD,QAAQ,IAAI,IAAI;IAOhB,mEAAmE;IACnE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIvD,6BAA6B;IAC7B,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAI5C,0DAA0D;IAC1D,eAAe,CACb,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,kBAAkB,EAAE,EACxC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,gBAAgB,EAAE,MAAM,GACvB,mBAAmB,GAAG,IAAI;CAsD9B"}
1
+ {"version":3,"file":"tool-watchdog.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/tool-watchdog.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- /**
3
- * Tool Watchdog
4
- *
5
- * Per-tool adaptive timeout system using TCP RTO-style EMA tracking (RFC 6298).
6
- * Monitors individual tool call durations and kills tools that exceed their
7
- * adaptive timeout, preserving work via checkpoint-and-retry.
8
- *
9
- * Three-tier timeout strategy:
10
- * 1. EMA tracking: timeout = estimatedDuration + 4 * deviation
11
- * 2. Floor/ceiling bounds: never kill below floor, always kill at ceiling
12
- * 3. Haiku tiebreaker: optional AI assessment before killing ambiguous cases
13
- */
14
2
  import { hlog } from './headless-logger.js';
15
3
  // RFC 6298 smoothing constants
16
4
  const ALPHA = 0.125; // smoothing factor for duration EMA
@@ -270,6 +258,25 @@ export class ToolWatchdog {
270
258
  onTimeout();
271
259
  }, extensionMs);
272
260
  }
261
+ /**
262
+ * Drive the watchdog from an engine-agnostic `EngineEvent` stream.
263
+ * Routes `tool.start` to `startWatch`, and `tool.end` to `clearWatch` +
264
+ * `recordCompletion` — so any CodingAgentEngine (Claude Code, OpenCode)
265
+ * can feed this watchdog without leaking engine-specific shapes.
266
+ * Non-tool events are ignored.
267
+ */
268
+ onEngineEvent(event, onTimeout) {
269
+ if (event.kind === 'tool.start') {
270
+ this.startWatch(event.toolCallId, event.toolName, event.input, () => onTimeout(event.toolCallId));
271
+ return;
272
+ }
273
+ if (event.kind === 'tool.end') {
274
+ this.clearWatch(event.toolCallId);
275
+ if (typeof event.durationMs === 'number' && event.durationMs >= 0) {
276
+ this.recordCompletion(event.toolName, event.durationMs);
277
+ }
278
+ }
279
+ }
273
280
  /** Stop watching a tool (it completed normally) */
274
281
  clearWatch(toolId) {
275
282
  const watch = this.activeWatches.get(toolId);
@@ -1 +1 @@
1
- {"version":3,"file":"tool-watchdog.js","sourceRoot":"","sources":["../../../../server/cli/headless/tool-watchdog.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAQ5C,+BAA+B;AAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAE,oCAAoC;AAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,CAAI,qCAAqC;AAC3D,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAE,sCAAsC;AAEvE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,6BAA6B,GAAuC;IAC/E,QAAQ,EAAE;QACR,WAAW,EAAE,OAAO,EAAO,oDAAoD;QAC/E,OAAO,EAAE,OAAO,EAAW,yBAAyB;QACpD,SAAS,EAAE,OAAO,EAAS,iBAAiB;QAC5C,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;KACzB;IACD,SAAS,EAAE;QACT,WAAW,EAAE,MAAM,EAAQ,UAAU;QACrC,OAAO,EAAE,MAAM,EAAY,gBAAgB;QAC3C,SAAS,EAAE,OAAO,EAAS,iBAAiB;QAC5C,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,KAAK;KAC1B;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,OAAO,EAAO,iDAAiD;QAC5E,OAAO,EAAE,OAAO,EAAW,2DAA2D;QACtF,SAAS,EAAE,SAAS,EAAO,kBAAkB;QAC7C,WAAW,EAAE,IAAI,EAAU,yCAAyC;QACpE,kBAAkB,EAAE,IAAI;KACzB;IACD,oFAAoF;IACpF,KAAK,EAAE;QACL,WAAW,EAAE,OAAO,EAAO,iDAAiD;QAC5E,OAAO,EAAE,OAAO,EAAW,2DAA2D;QACtF,SAAS,EAAE,SAAS,EAAO,kBAAkB;QAC7C,WAAW,EAAE,IAAI,EAAU,0CAA0C;QACrE,kBAAkB,EAAE,IAAI;KACzB;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,OAAO,EAAO,QAAQ;QACnC,OAAO,EAAE,OAAO,EAAW,gBAAgB;QAC3C,SAAS,EAAE,OAAO,EAAS,kBAAkB;QAC7C,WAAW,EAAE,KAAK;QAClB,kBAAkB,EAAE,IAAI;KACzB;IACD,oFAAoF;IACpF,6EAA6E;IAC7E,iFAAiF;IACjF,oFAAoF;IACpF,IAAI,EAAE;QACJ,WAAW,EAAE,OAAO,EAAO,2DAA2D;QACtF,OAAO,EAAE,MAAM,EAAY,sDAAsD;QACjF,SAAS,EAAE,OAAO,EAAS,gDAAgD;QAC3E,WAAW,EAAE,KAAK,EAAS,qDAAqD;QAChF,kBAAkB,EAAE,IAAI,EAAG,sDAAsD;KAClF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,OAAO,EAAO,kDAAkD;QAC7E,OAAO,EAAE,MAAM,EAAY,gBAAgB;QAC3C,SAAS,EAAE,OAAO,EAAS,gBAAgB;QAC3C,WAAW,EAAE,KAAK,EAAS,+CAA+C;QAC1E,kBAAkB,EAAE,IAAI,EAAG,4BAA4B;KACxD;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,EAAQ,sDAAsD;QACjF,OAAO,EAAE,MAAM,EAAY,cAAc;QACzC,SAAS,EAAE,OAAO,EAAS,gBAAgB;QAC3C,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;KACzB;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,EAAQ,kDAAkD;QAC7E,OAAO,EAAE,MAAM,EAAY,cAAc;QACzC,SAAS,EAAE,OAAO,EAAS,gBAAgB;QAC3C,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;KACzB;IACD,KAAK,EAAE;QACL,WAAW,EAAE,OAAO,EAAO,iFAAiF;QAC5G,OAAO,EAAE,OAAO,EAAW,yDAAyD;QACpF,SAAS,EAAE,OAAO,EAAS,kBAAkB;QAC7C,WAAW,EAAE,KAAK,EAAS,0DAA0D;QACrF,kBAAkB,EAAE,IAAI;KACzB;CACF,CAAC;AAEF,MAAM,4BAA4B,GAAuB;IACvD,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,KAAK;IAClB,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAoBF,MAAM,OAAO,YAAY;IACf,QAAQ,GAAqC,IAAI,GAAG,EAAE,CAAC;IACvD,QAAQ,CAAqC;IAC7C,aAAa,GAA6B,IAAI,GAAG,EAAE,CAAC;IACpD,OAAO,CAAU;IACjB,YAAY,CAAuC;IACnD,iBAAiB,CAA4B;IAErD,YAAY,UAA+B,EAAE;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAEnD,oCAAoC;QACpC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,6BAA6B,EAAE,CAAC;QACrD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAC;gBACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,gBAAgB,CAAC,QAAgB,EAAE,UAAkB;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC1B,iBAAiB,EAAE,UAAU;gBAC7B,SAAS,EAAE,UAAU,GAAG,CAAC;gBACzB,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,cAAc,QAAQ,kBAAkB,UAAU,uBAAuB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/G,CAAC;YACD,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC7G,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,iBAAiB,GAAG,KAAK,GAAG,UAAU,CAAC;QACzF,OAAO,CAAC,WAAW,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,QAAQ,aAAa,OAAO,CAAC,WAAW,IAAI,UAAU,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjN,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,UAAU,CAAC,QAAgB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,OAAO,CAAC,WAAW,CAAC;QAErD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,WAAW,CAAC;QAEpE,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,GAAG,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,4DAA4D;IAC5D,UAAU,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,4BAA4B,CAAC;IACjE,CAAC;IAED,iCAAiC;IACjC,UAAU,CAAC,MAAc,EAAE,QAAgB,EAAE,SAAkC,EAAE,SAAqB;QACpG,uCAAuC;QACvC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,8BAA8B,QAAQ,KAAK,MAAM,cAAc,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACzG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,4DAA4D;gBAC5D,sEAAsE;gBACtE,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE;YAC7B,QAAQ;YACR,SAAS;YACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK;YACL,SAAS;YACT,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,uFAAuF;IAC/E,KAAK,CAAC,2BAA2B,CACvC,MAAc,EACd,QAAgB,EAChB,SAAkC,EAClC,OAA2B,EAC3B,SAAqB;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;QAE/C,+EAA+E;QAC/E,gFAAgF;QAChF,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAClD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,GAAG,MAAM,EAAE,CAAC;YAC5D,MAAM,kBAAkB,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YACzD,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,kBAAkB,CAAC,CAAC;gBAC7D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,CAAC,cAAc,QAAQ,KAAK,MAAM,uBAAuB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,wBAAwB,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,0BAA0B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjN,CAAC;gBACD,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvG,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACnF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,cAAc,QAAQ,KAAK,MAAM,qBAAqB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YACvG,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAED,8DAA8D;IACtD,KAAK,CAAC,aAAa,CACzB,KAAkB,EAClB,MAAc,EACd,QAAgB,EAChB,SAAkC,EAClC,SAAiB,EACjB,SAAqB;QAErB,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEjC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,QAAQ,KAAK,MAAM,uBAAuB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAEzF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,CAAC,iCAAiC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtH,CAAC;gBACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvF,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;gBAClD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,+BAA+B,QAAQ,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,iCAAiC,GAAG,wBAAwB,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iFAAiF;IACzE,4BAA4B,CAClC,KAAkB,EAClB,MAAc,EACd,QAAgB,EAChB,SAAkC,EAClC,OAA2B,EAC3B,WAAmB,EACnB,SAAqB;QAErB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC;gBAAE,OAAO;YACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACzG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC;IAED,8EAA8E;IACtE,wBAAwB,CAC9B,KAAkB,EAClB,MAAc,EACd,QAAgB,EAChB,WAAmB,EACnB,SAAqB;QAErB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC;gBAAE,OAAO;YACf,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,cAAc,QAAQ,KAAK,MAAM,0CAA0C,CAAC,CAAC;YACpF,CAAC;YACD,uDAAuD;YACvD,sEAAsE;YACtE,SAAS,EAAE,CAAC;QACd,CAAC,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC;IAED,mDAAmD;IACnD,UAAU,CAAC,MAAc;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,QAAQ;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,mEAAmE;IACnE,cAAc,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,6BAA6B;IAC7B,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,0DAA0D;IAC1D,eAAe,CACb,cAAsB,EACtB,aAAqB,EACrB,YAAoB,EACpB,kBAAwC,EACxC,UAAkB,EAClB,eAAmC,EACnC,gBAAwB;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,+BAA+B;QAC/B,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAE5E,oDAAoD;QACpD,MAAM,cAAc,GAAG,kBAAkB;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACT,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,SAAS;YAClB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;YACtB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK;YAC3B,UAAU,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;SAC5B,CAAC,CAAC,CAAC;QAEN,+EAA+E;QAC/E,MAAM,eAAe,GAAG,kBAAkB;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACT,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,SAAS;SACnB,CAAC,CAAC,CAAC;QAEN,oDAAoD;QACpD,IAAI,GAAuB,CAAC;QAC5B,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC;QAClE,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YAClB,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YAC3B,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,OAAO;YACL,cAAc;YACd,aAAa;YACb,YAAY;YACZ,cAAc;YACd,eAAe;YACf,QAAQ,EAAE;gBACR,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,GAAG;aACJ;YACD,eAAe;YACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB;SACzC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"tool-watchdog.js","sourceRoot":"","sources":["../../../../server/cli/headless/tool-watchdog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"improvisation-history-store.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-history-store.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAIvF;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAI3D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAiBlF;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAG9E"}
1
+ {"version":3,"file":"improvisation-history-store.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-history-store.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAIvF;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAI3D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAoBlF;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAG9E"}
@@ -28,7 +28,10 @@ export function loadHistory(historyPath, sessionId) {
28
28
  if (existsSync(historyPath)) {
29
29
  try {
30
30
  const data = readFileSync(historyPath, 'utf-8');
31
- return JSON.parse(data);
31
+ const parsed = JSON.parse(data);
32
+ if (!parsed.engine)
33
+ parsed.engine = 'claude-code';
34
+ return parsed;
32
35
  }
33
36
  catch (error) {
34
37
  herror('Failed to load history:', error);
@@ -41,6 +44,7 @@ export function loadHistory(historyPath, sessionId) {
41
44
  lastActivityAt: now,
42
45
  totalTokens: 0,
43
46
  movements: [],
47
+ engine: 'claude-code',
44
48
  };
45
49
  }
46
50
  /** Write history to disk after bumping `lastActivityAt`. */
@@ -1 +1 @@
1
- {"version":3,"file":"improvisation-history-store.js","sourceRoot":"","sources":["../../../server/cli/improvisation-history-store.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAQvD,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,SAAiB;IACvE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACnF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,SAAiB;IAChE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,SAAS;QACT,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,GAAG;QACnB,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,OAAuB;IACtE,OAAO,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"improvisation-history-store.js","sourceRoot":"","sources":["../../../server/cli/improvisation-history-store.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAQvD,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,SAAiB;IACvE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACnF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,SAAiB;IAChE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;YAClD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,SAAS;QACT,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,GAAG;QACnB,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,aAAa;KACtB,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,OAAuB;IACtE,OAAO,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -5,7 +5,11 @@ export declare class OutputQueue {
5
5
  constructor(onEmit: (text: string) => void);
6
6
  start(): void;
7
7
  queue_(text: string): void;
8
- /** Drain all buffered entries, emitting each via `onEmit` in order. */
8
+ /**
9
+ * Drain all buffered entries, emitting them as a single concatenated
10
+ * string via `onEmit`. Order is preserved (FIFO). No-op when the queue is
11
+ * empty so the periodic timer doesn't fire spurious empty-string emits.
12
+ */
9
13
  flush(): void;
10
14
  /** Stop the flush timer. Does NOT drain; call `flush()` first if needed. */
11
15
  destroy(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"improvisation-output-queue.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-output-queue.ts"],"names":[],"mappings":"AAUA,qBAAa,WAAW;IAIV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,KAAK,CAAkD;IAC/D,OAAO,CAAC,KAAK,CAA+B;gBAEf,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAE3D,KAAK,IAAI,IAAI;IAKb,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B,uEAAuE;IACvE,KAAK,IAAI,IAAI;IAOb,4EAA4E;IAC5E,OAAO,IAAI,IAAI;CAMhB"}
1
+ {"version":3,"file":"improvisation-output-queue.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-output-queue.ts"],"names":[],"mappings":"AA2BA,qBAAa,WAAW;IAIV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAA+B;gBAEf,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAE3D,KAAK,IAAI,IAAI;IAKb,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAOb,4EAA4E;IAC5E,OAAO,IAAI,IAAI;CAMhB"}
@@ -3,6 +3,23 @@
3
3
  * Small FIFO output buffer with a fixed-interval flush timer, used by the
4
4
  * improvisation session manager to coalesce rapid stdout writes into
5
5
  * steady `onOutput` emissions.
6
+ *
7
+ * ## Why coalesce inside `flush()`
8
+ *
9
+ * Claude's stdout arrives as many small chunks during streaming. Each chunk
10
+ * lands here via `queue_`. When `flush()` ran one `onEmit` per queued chunk,
11
+ * a streaming-heavy run produced thousands of `onOutput` events per minute,
12
+ * each becoming a tab-scoped broadcast that consumes a slot in the per-tab
13
+ * replay buffer (`tab-event-buffer.ts`). For 14-min runs with ~120 tool
14
+ * calls, that easily exceeded the buffer's 1000-event cap and triggered
15
+ * silent replay gaps on web reconnect.
16
+ *
17
+ * The flush window (50ms) is below the human-perceptible paint threshold and
18
+ * below WebSocket roundtrip latency, so concatenating all queued text into a
19
+ * single `onEmit` per tick is invisible to the user but cuts buffer pressure
20
+ * by 3-10× during streaming. No call site downstream depends on chunk
21
+ * boundaries — `onOutput` consumers (terminal renderer, history persistence)
22
+ * already treat the text as an opaque append.
6
23
  */
7
24
  const FLUSH_INTERVAL_MS = 50;
8
25
  export class OutputQueue {
@@ -18,15 +35,21 @@ export class OutputQueue {
18
35
  this.timer = setInterval(() => { this.flush(); }, FLUSH_INTERVAL_MS);
19
36
  }
20
37
  queue_(text) {
21
- this.queue.push({ text, timestamp: Date.now() });
38
+ if (text.length === 0)
39
+ return;
40
+ this.queue.push(text);
22
41
  }
23
- /** Drain all buffered entries, emitting each via `onEmit` in order. */
42
+ /**
43
+ * Drain all buffered entries, emitting them as a single concatenated
44
+ * string via `onEmit`. Order is preserved (FIFO). No-op when the queue is
45
+ * empty so the periodic timer doesn't fire spurious empty-string emits.
46
+ */
24
47
  flush() {
25
- while (this.queue.length > 0) {
26
- const item = this.queue.shift();
27
- if (item)
28
- this.onEmit(item.text);
29
- }
48
+ if (this.queue.length === 0)
49
+ return;
50
+ const merged = this.queue.join('');
51
+ this.queue.length = 0;
52
+ this.onEmit(merged);
30
53
  }
31
54
  /** Stop the flush timer. Does NOT drain; call `flush()` first if needed. */
32
55
  destroy() {
@@ -1 +1 @@
1
- {"version":3,"file":"improvisation-output-queue.js","sourceRoot":"","sources":["../../../server/cli/improvisation-output-queue.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D;;;;GAIG;AAEH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,OAAO,WAAW;IAIO;IAHrB,KAAK,GAA+C,EAAE,CAAC;IACvD,KAAK,GAA0B,IAAI,CAAC;IAE5C,YAA6B,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAAG,CAAC;IAE/D,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,uEAAuE;IACvE,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"improvisation-output-queue.js","sourceRoot":"","sources":["../../../server/cli/improvisation-output-queue.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,OAAO,WAAW;IAIO;IAHrB,KAAK,GAAa,EAAE,CAAC;IACrB,KAAK,GAA0B,IAAI,CAAC;IAE5C,YAA6B,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAAG,CAAC;IAE/D,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,4EAA4E;IAC5E,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;CACF"}
@@ -11,6 +11,7 @@
11
11
  * - improvisation-retry.ts — retry decision tree + recovery strategies
12
12
  */
13
13
  import { EventEmitter } from 'node:events';
14
+ import { type EtaProfile } from './eta-estimator.js';
14
15
  import type { FileAttachment, ImprovisationOptions, MovementRecord, SessionHistory } from './improvisation-types.js';
15
16
  export type { FileAttachment, ImprovisationOptions, MovementRecord, SessionHistory, ToolUseRecord } from './improvisation-types.js';
16
17
  export declare class ImprovisationSessionManager extends EventEmitter {
@@ -20,6 +21,12 @@ export declare class ImprovisationSessionManager extends EventEmitter {
20
21
  private history;
21
22
  private currentRunner;
22
23
  private options;
24
+ /**
25
+ * Coding-agent backend identifier. Routed through `createEngine` from
26
+ * `engines/factory.ts` so Epic 3 can swap in OpenCodeEngine by changing
27
+ * this value — the retry loop and headless runner remain unchanged.
28
+ */
29
+ private engineId;
23
30
  private pendingApproval?;
24
31
  private outputBuffer;
25
32
  private isFirstPrompt;
@@ -34,6 +41,13 @@ export declare class ImprovisationSessionManager extends EventEmitter {
34
41
  private _currentUserPrompt;
35
42
  private _currentSequenceNumber;
36
43
  private _hasPersistedToDisk;
44
+ /**
45
+ * Cached duration-quantile profile used by the web "Composing" indicator
46
+ * to render an ETA. Built lazily on first executePrompt and refreshed by
47
+ * the eta-estimator's TTL cache. Null means "not enough history yet" — the
48
+ * web falls back to elapsed-only display.
49
+ */
50
+ private _etaProfile;
37
51
  static resumeFromHistory(workingDir: string, historicalSessionId: string, overrides?: Partial<ImprovisationOptions>): ImprovisationSessionManager;
38
52
  constructor(options?: Partial<ImprovisationOptions>);
39
53
  private queueOutput;
@@ -63,6 +77,13 @@ export declare class ImprovisationSessionManager extends EventEmitter {
63
77
  private static readonly MAX_AUTO_CONTINUES;
64
78
  private maybeAutoContinue;
65
79
  private scheduleAutoContinue;
80
+ /**
81
+ * Resolve the duration-quantile profile before announcing the movement
82
+ * so the web indicator can render an ETA from t=0. The cache amortizes
83
+ * I/O across prompts; only the very first prompt of a project pays the
84
+ * ~50–100ms scan cost. Failures degrade silently to "no ETA".
85
+ */
86
+ private refreshEtaProfile;
66
87
  private persistHistory;
67
88
  getHistory(): SessionHistory;
68
89
  cancel(): void;
@@ -79,7 +100,15 @@ export declare class ImprovisationSessionManager extends EventEmitter {
79
100
  movementCount: number;
80
101
  };
81
102
  get isExecuting(): boolean;
103
+ /**
104
+ * AI engine that produced this session. Read from SessionHistory (populated
105
+ * on load/creation). Defaults to 'claude-code' if the history record is
106
+ * missing the field (older sessions).
107
+ */
108
+ get engine(): string;
82
109
  get executionStartTimestamp(): number | undefined;
110
+ /** Most recently resolved ETA quantile profile, or null if none yet built. */
111
+ get etaProfile(): EtaProfile | null;
83
112
  getExecutionEventLog(): Array<{
84
113
  type: string;
85
114
  data: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"improvisation-session-manager.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"improvisation-session-manager.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-session-manager.ts"],"names":[],"mappings":"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"}