mstro-app 0.4.51 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +10 -5
  2. package/bin/mstro.js +1 -1
  3. package/dist/server/cli/headless/claude-invoker-stall.d.ts.map +1 -1
  4. package/dist/server/cli/headless/claude-invoker-stall.js +7 -2
  5. package/dist/server/cli/headless/claude-invoker-stall.js.map +1 -1
  6. package/dist/server/cli/headless/claude-invoker.js +1 -1
  7. package/dist/server/cli/headless/claude-invoker.js.map +1 -1
  8. package/dist/server/cli/headless/runner.d.ts.map +1 -1
  9. package/dist/server/cli/headless/runner.js +63 -67
  10. package/dist/server/cli/headless/runner.js.map +1 -1
  11. package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
  12. package/dist/server/cli/headless/stall-assessor.js +9 -4
  13. package/dist/server/cli/headless/stall-assessor.js.map +1 -1
  14. package/dist/server/cli/improvisation-history-store.d.ts +16 -0
  15. package/dist/server/cli/improvisation-history-store.d.ts.map +1 -0
  16. package/dist/server/cli/improvisation-history-store.js +52 -0
  17. package/dist/server/cli/improvisation-history-store.js.map +1 -0
  18. package/dist/server/cli/improvisation-movements.d.ts +31 -0
  19. package/dist/server/cli/improvisation-movements.d.ts.map +1 -0
  20. package/dist/server/cli/improvisation-movements.js +93 -0
  21. package/dist/server/cli/improvisation-movements.js.map +1 -0
  22. package/dist/server/cli/improvisation-output-queue.d.ts +13 -0
  23. package/dist/server/cli/improvisation-output-queue.d.ts.map +1 -0
  24. package/dist/server/cli/improvisation-output-queue.js +40 -0
  25. package/dist/server/cli/improvisation-output-queue.js.map +1 -0
  26. package/dist/server/cli/improvisation-retry.d.ts +21 -51
  27. package/dist/server/cli/improvisation-retry.d.ts.map +1 -1
  28. package/dist/server/cli/improvisation-retry.js +18 -433
  29. package/dist/server/cli/improvisation-retry.js.map +1 -1
  30. package/dist/server/cli/improvisation-session-manager.d.ts +10 -8
  31. package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
  32. package/dist/server/cli/improvisation-session-manager.js +53 -148
  33. package/dist/server/cli/improvisation-session-manager.js.map +1 -1
  34. package/dist/server/cli/retry/retry-best-result.d.ts +4 -0
  35. package/dist/server/cli/retry/retry-best-result.d.ts.map +1 -0
  36. package/dist/server/cli/retry/retry-best-result.js +61 -0
  37. package/dist/server/cli/retry/retry-best-result.js.map +1 -0
  38. package/dist/server/cli/retry/retry-context-loss.d.ts +6 -0
  39. package/dist/server/cli/retry/retry-context-loss.d.ts.map +1 -0
  40. package/dist/server/cli/retry/retry-context-loss.js +68 -0
  41. package/dist/server/cli/retry/retry-context-loss.js.map +1 -0
  42. package/dist/server/cli/retry/retry-premature-completion.d.ts +5 -0
  43. package/dist/server/cli/retry/retry-premature-completion.d.ts.map +1 -0
  44. package/dist/server/cli/retry/retry-premature-completion.js +81 -0
  45. package/dist/server/cli/retry/retry-premature-completion.js.map +1 -0
  46. package/dist/server/cli/retry/retry-recovery-strategies.d.ts +13 -0
  47. package/dist/server/cli/retry/retry-recovery-strategies.d.ts.map +1 -0
  48. package/dist/server/cli/retry/retry-recovery-strategies.js +166 -0
  49. package/dist/server/cli/retry/retry-recovery-strategies.js.map +1 -0
  50. package/dist/server/cli/retry/retry-resume-strategy.d.ts +12 -0
  51. package/dist/server/cli/retry/retry-resume-strategy.d.ts.map +1 -0
  52. package/dist/server/cli/retry/retry-resume-strategy.js +22 -0
  53. package/dist/server/cli/retry/retry-resume-strategy.js.map +1 -0
  54. package/dist/server/cli/retry/retry-runner-factory.d.ts +11 -0
  55. package/dist/server/cli/retry/retry-runner-factory.d.ts.map +1 -0
  56. package/dist/server/cli/retry/retry-runner-factory.js +60 -0
  57. package/dist/server/cli/retry/retry-runner-factory.js.map +1 -0
  58. package/dist/server/cli/retry/retry-tool-results.d.ts +9 -0
  59. package/dist/server/cli/retry/retry-tool-results.d.ts.map +1 -0
  60. package/dist/server/cli/retry/retry-tool-results.js +24 -0
  61. package/dist/server/cli/retry/retry-tool-results.js.map +1 -0
  62. package/dist/server/cli/retry/retry-types.d.ts +30 -0
  63. package/dist/server/cli/retry/retry-types.d.ts.map +1 -0
  64. package/dist/server/cli/retry/retry-types.js +4 -0
  65. package/dist/server/cli/retry/retry-types.js.map +1 -0
  66. package/dist/server/index.js +21 -109
  67. package/dist/server/index.js.map +1 -1
  68. package/dist/server/server-setup.d.ts +16 -1
  69. package/dist/server/server-setup.d.ts.map +1 -1
  70. package/dist/server/server-setup.js +107 -0
  71. package/dist/server/server-setup.js.map +1 -1
  72. package/dist/server/services/plan/board-config.d.ts +21 -0
  73. package/dist/server/services/plan/board-config.d.ts.map +1 -0
  74. package/dist/server/services/plan/board-config.js +112 -0
  75. package/dist/server/services/plan/board-config.js.map +1 -0
  76. package/dist/server/services/plan/composer.d.ts +1 -1
  77. package/dist/server/services/plan/composer.d.ts.map +1 -1
  78. package/dist/server/services/plan/composer.js +7 -5
  79. package/dist/server/services/plan/composer.js.map +1 -1
  80. package/dist/server/services/plan/executor.d.ts +48 -48
  81. package/dist/server/services/plan/executor.d.ts.map +1 -1
  82. package/dist/server/services/plan/executor.js +157 -455
  83. package/dist/server/services/plan/executor.js.map +1 -1
  84. package/dist/server/services/plan/issue-loader.d.ts +16 -0
  85. package/dist/server/services/plan/issue-loader.d.ts.map +1 -0
  86. package/dist/server/services/plan/issue-loader.js +46 -0
  87. package/dist/server/services/plan/issue-loader.js.map +1 -0
  88. package/dist/server/services/plan/issue-writer.d.ts +34 -0
  89. package/dist/server/services/plan/issue-writer.d.ts.map +1 -0
  90. package/dist/server/services/plan/issue-writer.js +110 -0
  91. package/dist/server/services/plan/issue-writer.js.map +1 -0
  92. package/dist/server/services/plan/output-manager.d.ts.map +1 -1
  93. package/dist/server/services/plan/output-manager.js +2 -1
  94. package/dist/server/services/plan/output-manager.js.map +1 -1
  95. package/dist/server/services/plan/progress-log.d.ts +11 -0
  96. package/dist/server/services/plan/progress-log.d.ts.map +1 -0
  97. package/dist/server/services/plan/progress-log.js +81 -0
  98. package/dist/server/services/plan/progress-log.js.map +1 -0
  99. package/dist/server/services/plan/prompt-builder.d.ts.map +1 -1
  100. package/dist/server/services/plan/prompt-builder.js +48 -31
  101. package/dist/server/services/plan/prompt-builder.js.map +1 -1
  102. package/dist/server/services/plan/readiness-planner.d.ts +15 -0
  103. package/dist/server/services/plan/readiness-planner.d.ts.map +1 -0
  104. package/dist/server/services/plan/readiness-planner.js +41 -0
  105. package/dist/server/services/plan/readiness-planner.js.map +1 -0
  106. package/dist/server/services/plan/review-gate.d.ts +31 -0
  107. package/dist/server/services/plan/review-gate.d.ts.map +1 -1
  108. package/dist/server/services/plan/review-gate.js +52 -2
  109. package/dist/server/services/plan/review-gate.js.map +1 -1
  110. package/dist/server/services/platform.d.ts +56 -0
  111. package/dist/server/services/platform.d.ts.map +1 -1
  112. package/dist/server/services/platform.js +154 -52
  113. package/dist/server/services/platform.js.map +1 -1
  114. package/dist/server/services/websocket/file-download-handler.d.ts +17 -0
  115. package/dist/server/services/websocket/file-download-handler.d.ts.map +1 -0
  116. package/dist/server/services/websocket/file-download-handler.js +165 -0
  117. package/dist/server/services/websocket/file-download-handler.js.map +1 -0
  118. package/dist/server/services/websocket/git-branch-handlers.d.ts +1 -1
  119. package/dist/server/services/websocket/git-branch-handlers.d.ts.map +1 -1
  120. package/dist/server/services/websocket/git-branch-handlers.js +21 -1
  121. package/dist/server/services/websocket/git-branch-handlers.js.map +1 -1
  122. package/dist/server/services/websocket/git-handlers.js +1 -1
  123. package/dist/server/services/websocket/git-handlers.js.map +1 -1
  124. package/dist/server/services/websocket/git-worktree-handlers.d.ts +2 -0
  125. package/dist/server/services/websocket/git-worktree-handlers.d.ts.map +1 -1
  126. package/dist/server/services/websocket/git-worktree-handlers.js +30 -4
  127. package/dist/server/services/websocket/git-worktree-handlers.js.map +1 -1
  128. package/dist/server/services/websocket/handler-context.d.ts +15 -0
  129. package/dist/server/services/websocket/handler-context.d.ts.map +1 -1
  130. package/dist/server/services/websocket/handler.d.ts +7 -0
  131. package/dist/server/services/websocket/handler.d.ts.map +1 -1
  132. package/dist/server/services/websocket/handler.js +73 -11
  133. package/dist/server/services/websocket/handler.js.map +1 -1
  134. package/dist/server/services/websocket/msg-id-tracker.d.ts +21 -0
  135. package/dist/server/services/websocket/msg-id-tracker.d.ts.map +1 -0
  136. package/dist/server/services/websocket/msg-id-tracker.js +77 -0
  137. package/dist/server/services/websocket/msg-id-tracker.js.map +1 -0
  138. package/dist/server/services/websocket/quality-handlers.js +15 -3
  139. package/dist/server/services/websocket/quality-handlers.js.map +1 -1
  140. package/dist/server/services/websocket/quality-review-agent.js +2 -2
  141. package/dist/server/services/websocket/session-handlers.d.ts +48 -2
  142. package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
  143. package/dist/server/services/websocket/session-handlers.js +204 -65
  144. package/dist/server/services/websocket/session-handlers.js.map +1 -1
  145. package/dist/server/services/websocket/session-initialization.d.ts +2 -2
  146. package/dist/server/services/websocket/session-initialization.d.ts.map +1 -1
  147. package/dist/server/services/websocket/session-initialization.js +75 -17
  148. package/dist/server/services/websocket/session-initialization.js.map +1 -1
  149. package/dist/server/services/websocket/session-registry.d.ts +29 -1
  150. package/dist/server/services/websocket/session-registry.d.ts.map +1 -1
  151. package/dist/server/services/websocket/session-registry.js +53 -4
  152. package/dist/server/services/websocket/session-registry.js.map +1 -1
  153. package/dist/server/services/websocket/tab-broadcast.d.ts +24 -0
  154. package/dist/server/services/websocket/tab-broadcast.d.ts.map +1 -0
  155. package/dist/server/services/websocket/tab-broadcast.js +13 -0
  156. package/dist/server/services/websocket/tab-broadcast.js.map +1 -0
  157. package/dist/server/services/websocket/tab-event-buffer.d.ts +103 -0
  158. package/dist/server/services/websocket/tab-event-buffer.d.ts.map +1 -0
  159. package/dist/server/services/websocket/tab-event-buffer.js +107 -0
  160. package/dist/server/services/websocket/tab-event-buffer.js.map +1 -0
  161. package/dist/server/services/websocket/tab-event-replay.d.ts +20 -0
  162. package/dist/server/services/websocket/tab-event-replay.d.ts.map +1 -0
  163. package/dist/server/services/websocket/tab-event-replay.js +21 -0
  164. package/dist/server/services/websocket/tab-event-replay.js.map +1 -0
  165. package/dist/server/services/websocket/tab-handlers.d.ts +0 -1
  166. package/dist/server/services/websocket/tab-handlers.d.ts.map +1 -1
  167. package/dist/server/services/websocket/tab-handlers.js +2 -9
  168. package/dist/server/services/websocket/tab-handlers.js.map +1 -1
  169. package/dist/server/services/websocket/types.d.ts +15 -6
  170. package/dist/server/services/websocket/types.d.ts.map +1 -1
  171. package/dist/server/services/websocket/types.js +6 -4
  172. package/dist/server/services/websocket/types.js.map +1 -1
  173. package/package.json +1 -1
  174. package/server/README.md +1 -1
  175. package/server/cli/headless/claude-invoker-stall.ts +7 -2
  176. package/server/cli/headless/claude-invoker.ts +1 -1
  177. package/server/cli/headless/runner.ts +67 -72
  178. package/server/cli/headless/stall-assessor.ts +9 -4
  179. package/server/cli/headless/types.ts +1 -1
  180. package/server/cli/improvisation-history-store.ts +62 -0
  181. package/server/cli/improvisation-movements.ts +120 -0
  182. package/server/cli/improvisation-output-queue.ts +42 -0
  183. package/server/cli/improvisation-retry.ts +25 -600
  184. package/server/cli/improvisation-session-manager.ts +74 -160
  185. package/server/cli/retry/retry-best-result.ts +70 -0
  186. package/server/cli/retry/retry-context-loss.ts +87 -0
  187. package/server/cli/retry/retry-premature-completion.ts +113 -0
  188. package/server/cli/retry/retry-recovery-strategies.ts +247 -0
  189. package/server/cli/retry/retry-resume-strategy.ts +33 -0
  190. package/server/cli/retry/retry-runner-factory.ts +70 -0
  191. package/server/cli/retry/retry-tool-results.ts +31 -0
  192. package/server/cli/retry/retry-types.ts +32 -0
  193. package/server/index.ts +37 -123
  194. package/server/server-setup.ts +126 -1
  195. package/server/services/plan/agents/assess-stall.md +11 -4
  196. package/server/services/plan/board-config.ts +122 -0
  197. package/server/services/plan/composer.ts +7 -5
  198. package/server/services/plan/executor.ts +214 -467
  199. package/server/services/plan/issue-loader.ts +64 -0
  200. package/server/services/plan/issue-writer.ts +137 -0
  201. package/server/services/plan/output-manager.ts +2 -1
  202. package/server/services/plan/progress-log.ts +92 -0
  203. package/server/services/plan/prompt-builder.ts +73 -35
  204. package/server/services/plan/readiness-planner.ts +50 -0
  205. package/server/services/plan/review-gate.ts +102 -2
  206. package/server/services/platform.ts +163 -58
  207. package/server/services/websocket/file-download-handler.ts +191 -0
  208. package/server/services/websocket/git-branch-handlers.ts +28 -1
  209. package/server/services/websocket/git-handlers.ts +1 -1
  210. package/server/services/websocket/git-worktree-handlers.ts +31 -4
  211. package/server/services/websocket/handler-context.ts +15 -0
  212. package/server/services/websocket/handler.ts +76 -12
  213. package/server/services/websocket/msg-id-tracker.ts +84 -0
  214. package/server/services/websocket/quality-handlers.ts +16 -3
  215. package/server/services/websocket/quality-review-agent.ts +2 -2
  216. package/server/services/websocket/session-handlers.ts +213 -68
  217. package/server/services/websocket/session-initialization.ts +83 -19
  218. package/server/services/websocket/session-registry.ts +61 -4
  219. package/server/services/websocket/tab-broadcast.ts +38 -0
  220. package/server/services/websocket/tab-event-buffer.ts +159 -0
  221. package/server/services/websocket/tab-event-replay.ts +42 -0
  222. package/server/services/websocket/tab-handlers.ts +2 -9
  223. package/server/services/websocket/types.ts +17 -4
@@ -5,13 +5,22 @@
5
5
  *
6
6
  * Optimized for fast, direct prompt execution in Improvise mode.
7
7
  * For complex multi-part prompts with parallel/sequential movements, use Compose tab instead.
8
+ *
9
+ * Delegates to focused helpers:
10
+ * - improvisation-output-queue.ts — buffered stdout flush loop
11
+ * - improvisation-history-store.ts — .mstro/history/*.json load/save
12
+ * - improvisation-movements.ts — pure movement-record builders
13
+ * - improvisation-retry.ts — retry decision tree + recovery strategies
8
14
  */
9
15
  import { EventEmitter } from 'node:events';
10
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
16
+ import { existsSync, readFileSync } from 'node:fs';
11
17
  import { join } from 'node:path';
12
18
  import { AnalyticsEvents, trackEvent } from '../services/analytics.js';
13
19
  import { herror } from './headless/headless-logger.js';
14
20
  import { cleanupAttachments, preparePromptAndAttachments } from './improvisation-attachments.js';
21
+ import { ensureHistoryDir, loadHistory, resolveHistoryPaths, saveHistory, } from './improvisation-history-store.js';
22
+ import { buildCancelledMovement, buildErrorMovement, buildSuccessMovement, CANCELLED_FALLBACK_RESULT, shouldAutoContinue, } from './improvisation-movements.js';
23
+ import { OutputQueue } from './improvisation-output-queue.js';
15
24
  import { applyToolTimeoutRetry, createExecutionRunner, detectNativeTimeoutContextLoss, detectResumeContextLoss, determineResumeStrategy, selectBestResult, shouldRetryContextLoss, shouldRetryPrematureCompletion, shouldRetrySignalCrash } from './improvisation-retry.js';
16
25
  import { scoreRunResult } from './improvisation-types.js';
17
26
  export class ImprovisationSessionManager extends EventEmitter {
@@ -22,8 +31,7 @@ export class ImprovisationSessionManager extends EventEmitter {
22
31
  currentRunner = null;
23
32
  options;
24
33
  pendingApproval;
25
- outputQueue = [];
26
- queueTimer = null;
34
+ outputBuffer;
27
35
  isFirstPrompt = true;
28
36
  claudeSessionId;
29
37
  isResumedSession = false;
@@ -35,6 +43,7 @@ export class ImprovisationSessionManager extends EventEmitter {
35
43
  _cancelCompleteEmitted = false;
36
44
  _currentUserPrompt = '';
37
45
  _currentSequenceNumber = 0;
46
+ _hasPersistedToDisk = false;
38
47
  static resumeFromHistory(workingDir, historicalSessionId, overrides) {
39
48
  const historyDir = join(workingDir, '.mstro', 'history');
40
49
  const timestamp = historicalSessionId.replace('improv-', '');
@@ -55,6 +64,7 @@ export class ImprovisationSessionManager extends EventEmitter {
55
64
  .join('\n\n');
56
65
  manager.isResumedSession = true;
57
66
  manager.isFirstPrompt = true;
67
+ manager._hasPersistedToDisk = true;
58
68
  if (historyData.claudeSessionId) {
59
69
  manager.claudeSessionId = historyData.claudeSessionId;
60
70
  }
@@ -73,28 +83,24 @@ export class ImprovisationSessionManager extends EventEmitter {
73
83
  effortLevel: options.effortLevel,
74
84
  };
75
85
  this.sessionId = this.options.sessionId;
76
- this.improviseDir = join(this.options.workingDir, '.mstro', 'history');
77
- this.historyPath = join(this.improviseDir, `${this.sessionId.replace('improv-', '')}.json`);
78
- if (!existsSync(this.improviseDir)) {
79
- mkdirSync(this.improviseDir, { recursive: true });
80
- }
81
- this.history = this.loadHistory();
82
- this.saveHistory(); // Persist immediately so the session file exists on disk from creation
83
- this.startQueueProcessor();
86
+ const paths = resolveHistoryPaths(this.options.workingDir, this.sessionId);
87
+ this.improviseDir = paths.improviseDir;
88
+ this.historyPath = paths.historyPath;
89
+ ensureHistoryDir(this.improviseDir);
90
+ this.history = loadHistory(this.historyPath, this.sessionId);
91
+ // History is persisted lazily on the first `persistHistory` call (see
92
+ // `executePrompt`). Deferring the initial write keeps the Chat History
93
+ // view from showing "0 prompts" entries for tabs the user opens but
94
+ // never prompts.
95
+ this.outputBuffer = new OutputQueue(text => this.emit('onOutput', text));
96
+ this.outputBuffer.start();
84
97
  }
85
98
  // ========== Output Queue ==========
86
- startQueueProcessor() {
87
- this.queueTimer = setInterval(() => { this.flushOutputQueue(); }, 50);
88
- }
89
99
  queueOutput(text) {
90
- this.outputQueue.push({ text, timestamp: Date.now() });
100
+ this.outputBuffer.queue_(text);
91
101
  }
92
102
  flushOutputQueue() {
93
- while (this.outputQueue.length > 0) {
94
- const item = this.outputQueue.shift();
95
- if (item)
96
- this.emit('onOutput', item.text);
97
- }
103
+ this.outputBuffer.flush();
98
104
  }
99
105
  // ========== Main Execution ==========
100
106
  async executePrompt(userPrompt, attachments, options) {
@@ -137,7 +143,7 @@ export class ImprovisationSessionManager extends EventEmitter {
137
143
  ...(isAutoContinue && { isAutoContinue: true }),
138
144
  };
139
145
  this.history.movements.push(pendingMovement);
140
- this.saveHistory();
146
+ this.persistHistory();
141
147
  try {
142
148
  this.executionEventLog.push({
143
149
  type: 'movementStart',
@@ -167,7 +173,7 @@ export class ImprovisationSessionManager extends EventEmitter {
167
173
  result = await selectBestResult(state, result, userPrompt, this.options.verbose);
168
174
  this.captureSessionAndSurfaceErrors(result);
169
175
  this.isFirstPrompt = false;
170
- const movement = this.buildMovementRecord(result, displayPrompt, sequenceNumber, _execStart, state.retryLog, isAutoContinue);
176
+ const movement = buildSuccessMovement(result, { sequenceNumber, userPrompt: displayPrompt, execStart: _execStart, isAutoContinue }, state.retryLog);
171
177
  this.handleConflicts(result);
172
178
  this.persistMovement(movement);
173
179
  this._isExecuting = false;
@@ -281,59 +287,29 @@ export class ImprovisationSessionManager extends EventEmitter {
281
287
  this.syncSessionStateBack(session);
282
288
  return false;
283
289
  }
284
- // ========== Cancel Handling ==========
285
- handleCancelledExecution(result, userPrompt, sequenceNumber, execStart) {
290
+ // ========== Cancel / Error Handling ==========
291
+ resetExecutionState() {
286
292
  this._isExecuting = false;
287
293
  this._executionStartTimestamp = undefined;
288
294
  this.executionEventLog = [];
289
295
  this.currentRunner = null;
296
+ }
297
+ handleCancelledExecution(result, userPrompt, sequenceNumber, execStart) {
298
+ this.resetExecutionState();
290
299
  if (this._cancelCompleteEmitted) {
291
300
  const existing = this.history.movements.find(m => m.sequenceNumber === sequenceNumber);
292
301
  if (existing)
293
302
  return existing;
294
303
  }
295
- const cancelledMovement = {
296
- id: `prompt-${sequenceNumber}`,
297
- sequenceNumber,
298
- userPrompt,
299
- timestamp: new Date().toISOString(),
300
- tokensUsed: result ? result.totalTokens : 0,
301
- summary: '',
302
- filesModified: [],
303
- assistantResponse: result?.assistantResponse,
304
- thinkingOutput: result?.thinkingOutput,
305
- toolUseHistory: result?.toolUseHistory?.map(t => ({
306
- toolName: t.toolName, toolId: t.toolId, toolInput: t.toolInput,
307
- result: t.result,
308
- })),
309
- errorOutput: 'Execution cancelled by user',
310
- durationMs: Date.now() - execStart,
311
- };
304
+ const cancelledMovement = buildCancelledMovement(result, { sequenceNumber, userPrompt, execStart });
312
305
  this.persistMovement(cancelledMovement);
313
- const fallbackResult = {
314
- completed: false, needsHandoff: false, totalTokens: 0, sessionId: '',
315
- output: '', exitCode: 1, signalName: 'SIGTERM',
316
- };
317
- this.emitMovementComplete(cancelledMovement, result ?? fallbackResult, execStart, sequenceNumber);
306
+ this.emitMovementComplete(cancelledMovement, result ?? CANCELLED_FALLBACK_RESULT, execStart, sequenceNumber);
318
307
  return cancelledMovement;
319
308
  }
320
309
  handleExecutionError(error, displayPrompt, sequenceNumber, execStart) {
321
- this._isExecuting = false;
322
- this._executionStartTimestamp = undefined;
323
- this.executionEventLog = [];
324
- this.currentRunner = null;
310
+ this.resetExecutionState();
325
311
  const errorMessage = error instanceof Error ? error.message : String(error);
326
- const errorMovement = {
327
- id: `prompt-${sequenceNumber}`,
328
- sequenceNumber,
329
- userPrompt: displayPrompt,
330
- timestamp: new Date().toISOString(),
331
- tokensUsed: 0,
332
- summary: '',
333
- filesModified: [],
334
- errorOutput: errorMessage,
335
- durationMs: Date.now() - execStart,
336
- };
312
+ const errorMovement = buildErrorMovement(errorMessage, { sequenceNumber, userPrompt: displayPrompt, execStart });
337
313
  this.persistMovement(errorMovement);
338
314
  this.emit('onMovementError', error);
339
315
  trackEvent(AnalyticsEvents.IMPROVISE_MOVEMENT_ERROR, {
@@ -358,27 +334,6 @@ export class ImprovisationSessionManager extends EventEmitter {
358
334
  this.flushOutputQueue();
359
335
  }
360
336
  }
361
- buildMovementRecord(result, userPrompt, sequenceNumber, execStart, retryLog, isAutoContinue) {
362
- return {
363
- id: `prompt-${sequenceNumber}`,
364
- sequenceNumber,
365
- userPrompt,
366
- timestamp: new Date().toISOString(),
367
- tokensUsed: result.totalTokens,
368
- summary: '',
369
- filesModified: [],
370
- assistantResponse: result.assistantResponse,
371
- thinkingOutput: result.thinkingOutput,
372
- toolUseHistory: result.toolUseHistory?.map(t => ({
373
- toolName: t.toolName, toolId: t.toolId, toolInput: t.toolInput,
374
- result: t.result, isError: t.isError, duration: t.duration,
375
- })),
376
- errorOutput: result.error,
377
- durationMs: Date.now() - execStart,
378
- retryLog: retryLog && retryLog.length > 0 ? retryLog : undefined,
379
- ...(isAutoContinue && { isAutoContinue: true }),
380
- };
381
- }
382
337
  handleConflicts(result) {
383
338
  if (!result.conflicts || result.conflicts.length === 0)
384
339
  return;
@@ -401,7 +356,7 @@ export class ImprovisationSessionManager extends EventEmitter {
401
356
  this.history.movements.push(movement);
402
357
  this.history.totalTokens += movement.tokensUsed;
403
358
  }
404
- this.saveHistory();
359
+ this.persistHistory();
405
360
  }
406
361
  emitMovementComplete(movement, result, execStart, sequenceNumber) {
407
362
  this.emit('onMovementComplete', movement);
@@ -424,29 +379,10 @@ export class ImprovisationSessionManager extends EventEmitter {
424
379
  if (isStallKill && this._autoContinueCount < ImprovisationSessionManager.MAX_AUTO_CONTINUES) {
425
380
  this.scheduleAutoContinue('Process stalled');
426
381
  }
427
- else if (this.shouldAutoContinue(result, userPrompt)) {
382
+ else if (shouldAutoContinue(result, this._autoContinueCount, ImprovisationSessionManager.MAX_AUTO_CONTINUES, this._cancelled)) {
428
383
  this.scheduleAutoContinue();
429
384
  }
430
- }
431
- shouldAutoContinue(result, _userPrompt) {
432
- if (this._autoContinueCount >= ImprovisationSessionManager.MAX_AUTO_CONTINUES)
433
- return false;
434
- if (this._cancelled)
435
- return false;
436
- if (!result.completed || result.signalName)
437
- return false;
438
- if (result.stopReason !== 'end_turn')
439
- return false;
440
- const thinkingLen = result.thinkingOutput?.length ?? 0;
441
- const responseLen = result.assistantResponse?.length ?? 0;
442
- const successfulToolCalls = result.toolUseHistory?.filter(t => t.result !== undefined && !t.isError).length ?? 0;
443
- if (thinkingLen < 500 || responseLen > 1000)
444
- return false;
445
- // When the agent executed tool calls and produced a non-trivial response,
446
- // long thinking is expected — the work happened in the tools, not the text.
447
- if (successfulToolCalls > 0 && responseLen > 200)
448
- return false;
449
- return thinkingLen >= responseLen * 3;
385
+ void userPrompt;
450
386
  }
451
387
  scheduleAutoContinue(reason) {
452
388
  this._autoContinueCount++;
@@ -464,27 +400,12 @@ export class ImprovisationSessionManager extends EventEmitter {
464
400
  });
465
401
  }
466
402
  // ========== History I/O ==========
467
- loadHistory() {
468
- if (existsSync(this.historyPath)) {
469
- try {
470
- const data = readFileSync(this.historyPath, 'utf-8');
471
- return JSON.parse(data);
472
- }
473
- catch (error) {
474
- herror('Failed to load history:', error);
475
- }
403
+ persistHistory() {
404
+ saveHistory(this.historyPath, this.history);
405
+ if (!this._hasPersistedToDisk) {
406
+ this._hasPersistedToDisk = true;
407
+ this.emit('onHistoryPersisted');
476
408
  }
477
- return {
478
- sessionId: this.sessionId,
479
- startedAt: new Date().toISOString(),
480
- lastActivityAt: new Date().toISOString(),
481
- totalTokens: 0,
482
- movements: [],
483
- };
484
- }
485
- saveHistory() {
486
- this.history.lastActivityAt = new Date().toISOString();
487
- writeFileSync(this.historyPath, JSON.stringify(this.history, null, 2));
488
409
  }
489
410
  getHistory() {
490
411
  return this.history;
@@ -496,40 +417,24 @@ export class ImprovisationSessionManager extends EventEmitter {
496
417
  this.currentRunner.cleanup();
497
418
  this.currentRunner = null;
498
419
  }
499
- this.destroyQueueTimer();
420
+ this.outputBuffer.destroy();
500
421
  if (this._isExecuting && !this._cancelCompleteEmitted) {
501
422
  this._cancelCompleteEmitted = true;
502
423
  const execStart = this._executionStartTimestamp || Date.now();
503
424
  this._isExecuting = false;
504
425
  this._executionStartTimestamp = undefined;
505
- const cancelledMovement = {
506
- id: `prompt-${this._currentSequenceNumber}`,
426
+ const cancelledMovement = buildCancelledMovement(undefined, {
507
427
  sequenceNumber: this._currentSequenceNumber,
508
428
  userPrompt: this._currentUserPrompt,
509
- timestamp: new Date().toISOString(),
510
- tokensUsed: 0,
511
- summary: '',
512
- filesModified: [],
513
- errorOutput: 'Execution cancelled by user',
514
- durationMs: Date.now() - execStart,
515
- };
429
+ execStart,
430
+ });
516
431
  this.persistMovement(cancelledMovement);
517
- const fallbackResult = {
518
- completed: false, needsHandoff: false, totalTokens: 0, sessionId: '',
519
- output: '', exitCode: 1, signalName: 'SIGTERM',
520
- };
521
- this.emitMovementComplete(cancelledMovement, fallbackResult, execStart, this._currentSequenceNumber);
432
+ this.emitMovementComplete(cancelledMovement, CANCELLED_FALLBACK_RESULT, execStart, this._currentSequenceNumber);
522
433
  }
523
434
  this.flushOutputQueue();
524
435
  }
525
- destroyQueueTimer() {
526
- if (this.queueTimer) {
527
- clearInterval(this.queueTimer);
528
- this.queueTimer = null;
529
- }
530
- }
531
436
  destroy() {
532
- this.destroyQueueTimer();
437
+ this.outputBuffer.destroy();
533
438
  this.flushOutputQueue();
534
439
  }
535
440
  clearHistory() {
@@ -539,7 +444,7 @@ export class ImprovisationSessionManager extends EventEmitter {
539
444
  this.isFirstPrompt = true;
540
445
  this.claudeSessionId = undefined;
541
446
  cleanupAttachments(this.options.workingDir, this.sessionId);
542
- this.saveHistory();
447
+ this.persistHistory();
543
448
  this.emit('onSessionUpdate', this.getHistory());
544
449
  }
545
450
  async requestApproval(plan) {
@@ -574,7 +479,7 @@ export class ImprovisationSessionManager extends EventEmitter {
574
479
  return this.executionEventLog;
575
480
  }
576
481
  startNewSession(overrides) {
577
- this.saveHistory();
482
+ this.persistHistory();
578
483
  return new ImprovisationSessionManager({
579
484
  ...this.options,
580
485
  sessionId: `improv-${Date.now()}`,
@@ -1 +1 @@
1
- {"version":3,"file":"improvisation-session-manager.js","sourceRoot":"","sources":["../../../server/cli/improvisation-session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"improvisation-session-manager.js","sourceRoot":"","sources":["../../../server/cli/improvisation-session-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { HeadlessRunResult, RetryLoopState } from '../improvisation-types.js';
2
+ /** Select the best result across retries using Haiku assessment */
3
+ export declare function selectBestResult(state: RetryLoopState, result: HeadlessRunResult, userPrompt: string, verbose: boolean): Promise<HeadlessRunResult>;
4
+ //# sourceMappingURL=retry-best-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-best-result.d.ts","sourceRoot":"","sources":["../../../../server/cli/retry/retry-best-result.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGnF,mEAAmE;AACnE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,CAAC,CAmC5B"}
@@ -0,0 +1,61 @@
1
+ // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
+ // Licensed under the MIT License. See LICENSE file for details.
3
+ /**
4
+ * Picks the best result across retry attempts. Prefers Haiku's judgment
5
+ * when available; falls back to a numeric score when Haiku is unreachable.
6
+ */
7
+ import { hlog } from '../headless/headless-logger.js';
8
+ import { assessBestResult } from '../headless/stall-assessor.js';
9
+ import { scoreRunResult } from '../improvisation-types.js';
10
+ /** Select the best result across retries using Haiku assessment */
11
+ export async function selectBestResult(state, result, userPrompt, verbose) {
12
+ if (!state.bestResult || state.bestResult === result || state.retryNumber === 0) {
13
+ return result;
14
+ }
15
+ const claudeCmd = process.env.CLAUDE_COMMAND || 'claude';
16
+ const bestToolCount = state.bestResult.toolUseHistory?.filter(t => t.result !== undefined && !t.isError).length ?? 0;
17
+ const currentToolCount = result.toolUseHistory?.filter(t => t.result !== undefined && !t.isError).length ?? 0;
18
+ try {
19
+ const verdict = await assessBestResult({
20
+ originalPrompt: userPrompt,
21
+ resultA: {
22
+ successfulToolCalls: bestToolCount,
23
+ responseLength: state.bestResult.assistantResponse?.length ?? 0,
24
+ hasThinking: !!state.bestResult.thinkingOutput,
25
+ responseTail: (state.bestResult.assistantResponse ?? '').slice(-500),
26
+ },
27
+ resultB: {
28
+ successfulToolCalls: currentToolCount,
29
+ responseLength: result.assistantResponse?.length ?? 0,
30
+ hasThinking: !!result.thinkingOutput,
31
+ responseTail: (result.assistantResponse ?? '').slice(-500),
32
+ },
33
+ }, claudeCmd, verbose);
34
+ if (verdict.winner === 'A') {
35
+ if (verbose)
36
+ hlog(`[BEST-RESULT] Haiku picked earlier attempt: ${verdict.reason}`);
37
+ return mergeResultSessionId(state.bestResult, result.claudeSessionId);
38
+ }
39
+ if (verbose)
40
+ hlog(`[BEST-RESULT] Haiku picked final attempt: ${verdict.reason}`);
41
+ return result;
42
+ }
43
+ catch {
44
+ return fallbackBestResult(state.bestResult, result, verbose);
45
+ }
46
+ }
47
+ function mergeResultSessionId(result, sessionId) {
48
+ if (sessionId)
49
+ return { ...result, claudeSessionId: sessionId };
50
+ return result;
51
+ }
52
+ function fallbackBestResult(bestResult, result, verbose) {
53
+ if (scoreRunResult(bestResult) > scoreRunResult(result)) {
54
+ if (verbose) {
55
+ hlog(`[BEST-RESULT] Haiku unavailable, numeric fallback: earlier attempt (score ${scoreRunResult(bestResult)} vs ${scoreRunResult(result)})`);
56
+ }
57
+ return mergeResultSessionId(bestResult, result.claudeSessionId);
58
+ }
59
+ return result;
60
+ }
61
+ //# sourceMappingURL=retry-best-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-best-result.js","sourceRoot":"","sources":["../../../../server/cli/retry/retry-best-result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { HeadlessRunResult, RetryLoopState } from '../improvisation-types.js';
2
+ /** Detect resume context loss (Path 1): session expired on --resume */
3
+ export declare function detectResumeContextLoss(result: HeadlessRunResult, state: RetryLoopState, useResume: boolean, maxRetries: number, nativeTimeouts: number, verbose: boolean): void;
4
+ /** Detect native timeout context loss (Path 2): tool timeouts caused confusion */
5
+ export declare function detectNativeTimeoutContextLoss(result: HeadlessRunResult, state: RetryLoopState, maxRetries: number, nativeTimeouts: number, verbose: boolean): Promise<void>;
6
+ //# sourceMappingURL=retry-context-loss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-context-loss.d.ts","sourceRoot":"","sources":["../../../../server/cli/retry/retry-context-loss.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAInF,uEAAuE;AACvE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,OAAO,GACf,IAAI,CAkBN;AAED,kFAAkF;AAClF,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAyBf"}
@@ -0,0 +1,68 @@
1
+ // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
+ // Licensed under the MIT License. See LICENSE file for details.
3
+ /**
4
+ * Context-loss detection: figures out when a run's output indicates the
5
+ * Claude session dropped its memory, either on `--resume` (Path 1) or after
6
+ * native tool timeouts scrambled the conversation (Path 2).
7
+ */
8
+ import { hlog } from '../headless/headless-logger.js';
9
+ import { assessContextLoss } from '../headless/stall-assessor.js';
10
+ const WRITE_TOOL_NAMES = new Set(['Edit', 'Write', 'MultiEdit', 'NotebookEdit']);
11
+ /** Detect resume context loss (Path 1): session expired on --resume */
12
+ export function detectResumeContextLoss(result, state, useResume, maxRetries, nativeTimeouts, verbose) {
13
+ if (!useResume || state.checkpointRef.value || state.retryNumber >= maxRetries || nativeTimeouts > 0) {
14
+ return;
15
+ }
16
+ if (!result.assistantResponse || result.assistantResponse.trim().length === 0) {
17
+ state.contextLost = true;
18
+ if (verbose)
19
+ hlog('[CONTEXT-RECOVERY] Resume context loss: null/empty response');
20
+ }
21
+ else if (result.resumeBufferedOutput !== undefined) {
22
+ state.contextLost = true;
23
+ if (verbose)
24
+ hlog('[CONTEXT-RECOVERY] Resume context loss: buffer never flushed (no thinking/tools)');
25
+ }
26
+ else if ((!result.toolUseHistory || result.toolUseHistory.length === 0) &&
27
+ !result.thinkingOutput &&
28
+ result.assistantResponse.length < 500) {
29
+ state.contextLost = true;
30
+ if (verbose)
31
+ hlog('[CONTEXT-RECOVERY] Resume context loss: no tools, no thinking, short response');
32
+ }
33
+ }
34
+ /** Detect native timeout context loss (Path 2): tool timeouts caused confusion */
35
+ export async function detectNativeTimeoutContextLoss(result, state, maxRetries, nativeTimeouts, verbose) {
36
+ if (state.contextLost)
37
+ return;
38
+ const { effectiveTimeouts } = computeEffectiveTimeouts(result, nativeTimeouts);
39
+ if (effectiveTimeouts === 0 || !result.assistantResponse || state.checkpointRef.value || state.retryNumber >= maxRetries) {
40
+ return;
41
+ }
42
+ const contextLossCtx = {
43
+ assistantResponse: result.assistantResponse,
44
+ effectiveTimeouts,
45
+ nativeTimeoutCount: nativeTimeouts,
46
+ successfulToolCalls: result.toolUseHistory?.filter(t => t.result !== undefined && !t.isError).length ?? 0,
47
+ thinkingOutputLength: result.thinkingOutput?.length ?? 0,
48
+ hasSuccessfulWrite: result.toolUseHistory?.some(t => WRITE_TOOL_NAMES.has(t.toolName) && t.result !== undefined && !t.isError) ?? false,
49
+ };
50
+ const claudeCmd = process.env.CLAUDE_COMMAND || 'claude';
51
+ const verdict = await assessContextLoss(contextLossCtx, claudeCmd, verbose);
52
+ state.contextLost = verdict.contextLost;
53
+ if (verbose) {
54
+ hlog(`[CONTEXT-RECOVERY] Haiku verdict: ${state.contextLost ? 'LOST' : 'OK'} — ${verdict.reason}`);
55
+ }
56
+ }
57
+ function computeEffectiveTimeouts(result, nativeTimeouts) {
58
+ const succeededIds = new Set();
59
+ const allIds = new Set();
60
+ for (const t of result.toolUseHistory ?? []) {
61
+ allIds.add(t.toolId);
62
+ if (t.result !== undefined)
63
+ succeededIds.add(t.toolId);
64
+ }
65
+ const toolsWithoutResult = [...allIds].filter(id => !succeededIds.has(id)).length;
66
+ return { effectiveTimeouts: Math.max(nativeTimeouts, toolsWithoutResult) };
67
+ }
68
+ //# sourceMappingURL=retry-context-loss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-context-loss.js","sourceRoot":"","sources":["../../../../server/cli/retry/retry-context-loss.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { HeadlessRunResult, RetryLoopState } from '../improvisation-types.js';
2
+ import type { RetryCallbacks, RetrySessionState } from './retry-types.js';
3
+ /** Detect and retry premature completion. Returns true if loop should continue. */
4
+ export declare function shouldRetryPrematureCompletion(result: HeadlessRunResult, state: RetryLoopState, session: RetrySessionState, maxRetries: number, callbacks: RetryCallbacks): Promise<boolean>;
5
+ //# sourceMappingURL=retry-premature-completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-premature-completion.d.ts","sourceRoot":"","sources":["../../../../server/cli/retry/retry-premature-completion.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA6E1E,mFAAmF;AACnF,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,CAAC,CAclB"}