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.
- package/README.md +10 -5
- package/bin/mstro.js +1 -1
- package/dist/server/cli/headless/claude-invoker-stall.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stall.js +7 -2
- package/dist/server/cli/headless/claude-invoker-stall.js.map +1 -1
- package/dist/server/cli/headless/claude-invoker.js +1 -1
- package/dist/server/cli/headless/claude-invoker.js.map +1 -1
- package/dist/server/cli/headless/runner.d.ts.map +1 -1
- package/dist/server/cli/headless/runner.js +63 -67
- package/dist/server/cli/headless/runner.js.map +1 -1
- package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
- package/dist/server/cli/headless/stall-assessor.js +9 -4
- package/dist/server/cli/headless/stall-assessor.js.map +1 -1
- package/dist/server/cli/improvisation-history-store.d.ts +16 -0
- package/dist/server/cli/improvisation-history-store.d.ts.map +1 -0
- package/dist/server/cli/improvisation-history-store.js +52 -0
- package/dist/server/cli/improvisation-history-store.js.map +1 -0
- package/dist/server/cli/improvisation-movements.d.ts +31 -0
- package/dist/server/cli/improvisation-movements.d.ts.map +1 -0
- package/dist/server/cli/improvisation-movements.js +93 -0
- package/dist/server/cli/improvisation-movements.js.map +1 -0
- package/dist/server/cli/improvisation-output-queue.d.ts +13 -0
- package/dist/server/cli/improvisation-output-queue.d.ts.map +1 -0
- package/dist/server/cli/improvisation-output-queue.js +40 -0
- package/dist/server/cli/improvisation-output-queue.js.map +1 -0
- package/dist/server/cli/improvisation-retry.d.ts +21 -51
- package/dist/server/cli/improvisation-retry.d.ts.map +1 -1
- package/dist/server/cli/improvisation-retry.js +18 -433
- package/dist/server/cli/improvisation-retry.js.map +1 -1
- package/dist/server/cli/improvisation-session-manager.d.ts +10 -8
- package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.js +53 -148
- package/dist/server/cli/improvisation-session-manager.js.map +1 -1
- package/dist/server/cli/retry/retry-best-result.d.ts +4 -0
- package/dist/server/cli/retry/retry-best-result.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-best-result.js +61 -0
- package/dist/server/cli/retry/retry-best-result.js.map +1 -0
- package/dist/server/cli/retry/retry-context-loss.d.ts +6 -0
- package/dist/server/cli/retry/retry-context-loss.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-context-loss.js +68 -0
- package/dist/server/cli/retry/retry-context-loss.js.map +1 -0
- package/dist/server/cli/retry/retry-premature-completion.d.ts +5 -0
- package/dist/server/cli/retry/retry-premature-completion.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-premature-completion.js +81 -0
- package/dist/server/cli/retry/retry-premature-completion.js.map +1 -0
- package/dist/server/cli/retry/retry-recovery-strategies.d.ts +13 -0
- package/dist/server/cli/retry/retry-recovery-strategies.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-recovery-strategies.js +166 -0
- package/dist/server/cli/retry/retry-recovery-strategies.js.map +1 -0
- package/dist/server/cli/retry/retry-resume-strategy.d.ts +12 -0
- package/dist/server/cli/retry/retry-resume-strategy.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-resume-strategy.js +22 -0
- package/dist/server/cli/retry/retry-resume-strategy.js.map +1 -0
- package/dist/server/cli/retry/retry-runner-factory.d.ts +11 -0
- package/dist/server/cli/retry/retry-runner-factory.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-runner-factory.js +60 -0
- package/dist/server/cli/retry/retry-runner-factory.js.map +1 -0
- package/dist/server/cli/retry/retry-tool-results.d.ts +9 -0
- package/dist/server/cli/retry/retry-tool-results.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-tool-results.js +24 -0
- package/dist/server/cli/retry/retry-tool-results.js.map +1 -0
- package/dist/server/cli/retry/retry-types.d.ts +30 -0
- package/dist/server/cli/retry/retry-types.d.ts.map +1 -0
- package/dist/server/cli/retry/retry-types.js +4 -0
- package/dist/server/cli/retry/retry-types.js.map +1 -0
- package/dist/server/index.js +21 -109
- package/dist/server/index.js.map +1 -1
- package/dist/server/server-setup.d.ts +16 -1
- package/dist/server/server-setup.d.ts.map +1 -1
- package/dist/server/server-setup.js +107 -0
- package/dist/server/server-setup.js.map +1 -1
- package/dist/server/services/plan/board-config.d.ts +21 -0
- package/dist/server/services/plan/board-config.d.ts.map +1 -0
- package/dist/server/services/plan/board-config.js +112 -0
- package/dist/server/services/plan/board-config.js.map +1 -0
- package/dist/server/services/plan/composer.d.ts +1 -1
- package/dist/server/services/plan/composer.d.ts.map +1 -1
- package/dist/server/services/plan/composer.js +7 -5
- package/dist/server/services/plan/composer.js.map +1 -1
- package/dist/server/services/plan/executor.d.ts +48 -48
- package/dist/server/services/plan/executor.d.ts.map +1 -1
- package/dist/server/services/plan/executor.js +157 -455
- package/dist/server/services/plan/executor.js.map +1 -1
- package/dist/server/services/plan/issue-loader.d.ts +16 -0
- package/dist/server/services/plan/issue-loader.d.ts.map +1 -0
- package/dist/server/services/plan/issue-loader.js +46 -0
- package/dist/server/services/plan/issue-loader.js.map +1 -0
- package/dist/server/services/plan/issue-writer.d.ts +34 -0
- package/dist/server/services/plan/issue-writer.d.ts.map +1 -0
- package/dist/server/services/plan/issue-writer.js +110 -0
- package/dist/server/services/plan/issue-writer.js.map +1 -0
- package/dist/server/services/plan/output-manager.d.ts.map +1 -1
- package/dist/server/services/plan/output-manager.js +2 -1
- package/dist/server/services/plan/output-manager.js.map +1 -1
- package/dist/server/services/plan/progress-log.d.ts +11 -0
- package/dist/server/services/plan/progress-log.d.ts.map +1 -0
- package/dist/server/services/plan/progress-log.js +81 -0
- package/dist/server/services/plan/progress-log.js.map +1 -0
- package/dist/server/services/plan/prompt-builder.d.ts.map +1 -1
- package/dist/server/services/plan/prompt-builder.js +48 -31
- package/dist/server/services/plan/prompt-builder.js.map +1 -1
- package/dist/server/services/plan/readiness-planner.d.ts +15 -0
- package/dist/server/services/plan/readiness-planner.d.ts.map +1 -0
- package/dist/server/services/plan/readiness-planner.js +41 -0
- package/dist/server/services/plan/readiness-planner.js.map +1 -0
- package/dist/server/services/plan/review-gate.d.ts +31 -0
- package/dist/server/services/plan/review-gate.d.ts.map +1 -1
- package/dist/server/services/plan/review-gate.js +52 -2
- package/dist/server/services/plan/review-gate.js.map +1 -1
- package/dist/server/services/platform.d.ts +56 -0
- package/dist/server/services/platform.d.ts.map +1 -1
- package/dist/server/services/platform.js +154 -52
- package/dist/server/services/platform.js.map +1 -1
- package/dist/server/services/websocket/file-download-handler.d.ts +17 -0
- package/dist/server/services/websocket/file-download-handler.d.ts.map +1 -0
- package/dist/server/services/websocket/file-download-handler.js +165 -0
- package/dist/server/services/websocket/file-download-handler.js.map +1 -0
- package/dist/server/services/websocket/git-branch-handlers.d.ts +1 -1
- package/dist/server/services/websocket/git-branch-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-branch-handlers.js +21 -1
- package/dist/server/services/websocket/git-branch-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-handlers.js +1 -1
- package/dist/server/services/websocket/git-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-worktree-handlers.d.ts +2 -0
- package/dist/server/services/websocket/git-worktree-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-worktree-handlers.js +30 -4
- package/dist/server/services/websocket/git-worktree-handlers.js.map +1 -1
- package/dist/server/services/websocket/handler-context.d.ts +15 -0
- package/dist/server/services/websocket/handler-context.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.d.ts +7 -0
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +73 -11
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/msg-id-tracker.d.ts +21 -0
- package/dist/server/services/websocket/msg-id-tracker.d.ts.map +1 -0
- package/dist/server/services/websocket/msg-id-tracker.js +77 -0
- package/dist/server/services/websocket/msg-id-tracker.js.map +1 -0
- package/dist/server/services/websocket/quality-handlers.js +15 -3
- package/dist/server/services/websocket/quality-handlers.js.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.js +2 -2
- package/dist/server/services/websocket/session-handlers.d.ts +48 -2
- package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/session-handlers.js +204 -65
- package/dist/server/services/websocket/session-handlers.js.map +1 -1
- package/dist/server/services/websocket/session-initialization.d.ts +2 -2
- package/dist/server/services/websocket/session-initialization.d.ts.map +1 -1
- package/dist/server/services/websocket/session-initialization.js +75 -17
- package/dist/server/services/websocket/session-initialization.js.map +1 -1
- package/dist/server/services/websocket/session-registry.d.ts +29 -1
- package/dist/server/services/websocket/session-registry.d.ts.map +1 -1
- package/dist/server/services/websocket/session-registry.js +53 -4
- package/dist/server/services/websocket/session-registry.js.map +1 -1
- package/dist/server/services/websocket/tab-broadcast.d.ts +24 -0
- package/dist/server/services/websocket/tab-broadcast.d.ts.map +1 -0
- package/dist/server/services/websocket/tab-broadcast.js +13 -0
- package/dist/server/services/websocket/tab-broadcast.js.map +1 -0
- package/dist/server/services/websocket/tab-event-buffer.d.ts +103 -0
- package/dist/server/services/websocket/tab-event-buffer.d.ts.map +1 -0
- package/dist/server/services/websocket/tab-event-buffer.js +107 -0
- package/dist/server/services/websocket/tab-event-buffer.js.map +1 -0
- package/dist/server/services/websocket/tab-event-replay.d.ts +20 -0
- package/dist/server/services/websocket/tab-event-replay.d.ts.map +1 -0
- package/dist/server/services/websocket/tab-event-replay.js +21 -0
- package/dist/server/services/websocket/tab-event-replay.js.map +1 -0
- package/dist/server/services/websocket/tab-handlers.d.ts +0 -1
- package/dist/server/services/websocket/tab-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/tab-handlers.js +2 -9
- package/dist/server/services/websocket/tab-handlers.js.map +1 -1
- package/dist/server/services/websocket/types.d.ts +15 -6
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/dist/server/services/websocket/types.js +6 -4
- package/dist/server/services/websocket/types.js.map +1 -1
- package/package.json +1 -1
- package/server/README.md +1 -1
- package/server/cli/headless/claude-invoker-stall.ts +7 -2
- package/server/cli/headless/claude-invoker.ts +1 -1
- package/server/cli/headless/runner.ts +67 -72
- package/server/cli/headless/stall-assessor.ts +9 -4
- package/server/cli/headless/types.ts +1 -1
- package/server/cli/improvisation-history-store.ts +62 -0
- package/server/cli/improvisation-movements.ts +120 -0
- package/server/cli/improvisation-output-queue.ts +42 -0
- package/server/cli/improvisation-retry.ts +25 -600
- package/server/cli/improvisation-session-manager.ts +74 -160
- package/server/cli/retry/retry-best-result.ts +70 -0
- package/server/cli/retry/retry-context-loss.ts +87 -0
- package/server/cli/retry/retry-premature-completion.ts +113 -0
- package/server/cli/retry/retry-recovery-strategies.ts +247 -0
- package/server/cli/retry/retry-resume-strategy.ts +33 -0
- package/server/cli/retry/retry-runner-factory.ts +70 -0
- package/server/cli/retry/retry-tool-results.ts +31 -0
- package/server/cli/retry/retry-types.ts +32 -0
- package/server/index.ts +37 -123
- package/server/server-setup.ts +126 -1
- package/server/services/plan/agents/assess-stall.md +11 -4
- package/server/services/plan/board-config.ts +122 -0
- package/server/services/plan/composer.ts +7 -5
- package/server/services/plan/executor.ts +214 -467
- package/server/services/plan/issue-loader.ts +64 -0
- package/server/services/plan/issue-writer.ts +137 -0
- package/server/services/plan/output-manager.ts +2 -1
- package/server/services/plan/progress-log.ts +92 -0
- package/server/services/plan/prompt-builder.ts +73 -35
- package/server/services/plan/readiness-planner.ts +50 -0
- package/server/services/plan/review-gate.ts +102 -2
- package/server/services/platform.ts +163 -58
- package/server/services/websocket/file-download-handler.ts +191 -0
- package/server/services/websocket/git-branch-handlers.ts +28 -1
- package/server/services/websocket/git-handlers.ts +1 -1
- package/server/services/websocket/git-worktree-handlers.ts +31 -4
- package/server/services/websocket/handler-context.ts +15 -0
- package/server/services/websocket/handler.ts +76 -12
- package/server/services/websocket/msg-id-tracker.ts +84 -0
- package/server/services/websocket/quality-handlers.ts +16 -3
- package/server/services/websocket/quality-review-agent.ts +2 -2
- package/server/services/websocket/session-handlers.ts +213 -68
- package/server/services/websocket/session-initialization.ts +83 -19
- package/server/services/websocket/session-registry.ts +61 -4
- package/server/services/websocket/tab-broadcast.ts +38 -0
- package/server/services/websocket/tab-event-buffer.ts +159 -0
- package/server/services/websocket/tab-event-replay.ts +42 -0
- package/server/services/websocket/tab-handlers.ts +2 -9
- 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,
|
|
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
|
-
|
|
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
|
-
|
|
77
|
-
this.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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.
|
|
100
|
+
this.outputBuffer.queue_(text);
|
|
91
101
|
}
|
|
92
102
|
flushOutputQueue() {
|
|
93
|
-
|
|
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.
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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 (
|
|
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
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
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.
|
|
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
|
-
|
|
510
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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"}
|