mstro-app 0.4.34 → 0.4.37
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/dist/server/cli/headless/claude-invoker-stream.d.ts +76 -1
- package/dist/server/cli/headless/claude-invoker-stream.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stream.js +85 -10
- package/dist/server/cli/headless/claude-invoker-stream.js.map +1 -1
- package/dist/server/cli/headless/claude-invoker.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker.js +2 -0
- package/dist/server/cli/headless/claude-invoker.js.map +1 -1
- package/dist/server/cli/headless/haiku-assessments.d.ts.map +1 -1
- package/dist/server/cli/headless/haiku-assessments.js +10 -5
- package/dist/server/cli/headless/haiku-assessments.js.map +1 -1
- package/dist/server/cli/improvisation-retry.d.ts.map +1 -1
- package/dist/server/cli/improvisation-retry.js +17 -2
- package/dist/server/cli/improvisation-retry.js.map +1 -1
- package/dist/server/cli/improvisation-session-manager.d.ts +4 -0
- package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.js +61 -42
- package/dist/server/cli/improvisation-session-manager.js.map +1 -1
- package/dist/server/cli/improvisation-types.d.ts +1 -0
- package/dist/server/cli/improvisation-types.d.ts.map +1 -1
- package/dist/server/cli/improvisation-types.js.map +1 -1
- package/dist/server/services/websocket/git-head-watcher.d.ts +25 -0
- package/dist/server/services/websocket/git-head-watcher.d.ts.map +1 -0
- package/dist/server/services/websocket/git-head-watcher.js +136 -0
- package/dist/server/services/websocket/git-head-watcher.js.map +1 -0
- package/dist/server/services/websocket/git-worktree-handlers.js +47 -6
- package/dist/server/services/websocket/git-worktree-handlers.js.map +1 -1
- package/dist/server/services/websocket/handler-context.d.ts +2 -0
- package/dist/server/services/websocket/handler-context.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.d.ts +3 -1
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +18 -6
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/plan-board-handlers.d.ts +1 -0
- package/dist/server/services/websocket/plan-board-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-board-handlers.js +94 -0
- package/dist/server/services/websocket/plan-board-handlers.js.map +1 -1
- package/dist/server/services/websocket/plan-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-handlers.js +3 -1
- package/dist/server/services/websocket/plan-handlers.js.map +1 -1
- package/dist/server/services/websocket/quality-persistence.d.ts +7 -0
- package/dist/server/services/websocket/quality-persistence.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-persistence.js +15 -7
- package/dist/server/services/websocket/quality-persistence.js.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.js +2 -13
- package/dist/server/services/websocket/quality-review-agent.js.map +1 -1
- package/dist/server/services/websocket/quality-service.d.ts +12 -3
- package/dist/server/services/websocket/quality-service.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-service.js +101 -81
- package/dist/server/services/websocket/quality-service.js.map +1 -1
- package/dist/server/services/websocket/quality-tools.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-tools.js +6 -1
- package/dist/server/services/websocket/quality-tools.js.map +1 -1
- package/dist/server/services/websocket/quality-types.d.ts +15 -2
- package/dist/server/services/websocket/quality-types.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-types.js.map +1 -1
- package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/session-handlers.js +13 -3
- package/dist/server/services/websocket/session-handlers.js.map +1 -1
- package/dist/server/services/websocket/skill-handlers.d.ts +9 -0
- package/dist/server/services/websocket/skill-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/skill-handlers.js +244 -3
- package/dist/server/services/websocket/skill-handlers.js.map +1 -1
- package/dist/server/services/websocket/tab-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/tab-handlers.js +9 -2
- package/dist/server/services/websocket/tab-handlers.js.map +1 -1
- package/dist/server/services/websocket/types.d.ts +44 -3
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/dist/server/services/websocket/types.js +38 -0
- package/dist/server/services/websocket/types.js.map +1 -1
- package/package.json +2 -1
- package/server/cli/headless/claude-invoker-stream.ts +163 -18
- package/server/cli/headless/claude-invoker.ts +2 -0
- package/server/cli/headless/haiku-assessments.ts +10 -5
- package/server/cli/improvisation-retry.ts +18 -2
- package/server/cli/improvisation-session-manager.ts +69 -45
- package/server/cli/improvisation-types.ts +1 -0
- package/server/services/plan/agents/assess-stall.md +21 -0
- package/server/services/plan/agents/check-injection.md +36 -0
- package/server/services/plan/agents/classify-error.md +29 -0
- package/server/services/plan/agents/detect-context-loss.md +29 -0
- package/server/services/plan/agents/execute-issue.md +42 -0
- package/server/services/plan/agents/plan-coordinator.md +71 -0
- package/server/services/plan/agents/retry-task.md +26 -0
- package/server/services/plan/agents/review-code.md +4 -1
- package/server/services/plan/agents/review-criteria.md +53 -0
- package/server/services/plan/agents/review-custom.md +4 -1
- package/server/services/plan/agents/review-quality.md +4 -1
- package/server/services/plan/agents/verify-review.md +56 -0
- package/server/services/websocket/git-head-watcher.ts +120 -0
- package/server/services/websocket/git-worktree-handlers.ts +57 -7
- package/server/services/websocket/handler-context.ts +2 -0
- package/server/services/websocket/handler.ts +19 -6
- package/server/services/websocket/plan-board-handlers.ts +116 -0
- package/server/services/websocket/plan-handlers.ts +3 -1
- package/server/services/websocket/quality-persistence.ts +23 -7
- package/server/services/websocket/quality-review-agent.ts +2 -12
- package/server/services/websocket/quality-service.ts +116 -99
- package/server/services/websocket/quality-tools.ts +6 -1
- package/server/services/websocket/quality-types.ts +17 -2
- package/server/services/websocket/session-handlers.ts +19 -3
- package/server/services/websocket/skill-handlers.ts +260 -3
- package/server/services/websocket/tab-handlers.ts +8 -2
- package/server/services/websocket/types.ts +123 -324
|
@@ -98,19 +98,21 @@ export class ImprovisationSessionManager extends EventEmitter {
|
|
|
98
98
|
// ========== Main Execution ==========
|
|
99
99
|
async executePrompt(userPrompt, attachments, options) {
|
|
100
100
|
const _execStart = Date.now();
|
|
101
|
+
const isAutoContinue = options?.isAutoContinue ?? false;
|
|
102
|
+
const displayPrompt = options?.displayPrompt ?? userPrompt;
|
|
101
103
|
this._isExecuting = true;
|
|
102
104
|
this._cancelled = false;
|
|
103
105
|
this._cancelCompleteEmitted = false;
|
|
104
|
-
if (
|
|
106
|
+
if (!isAutoContinue) {
|
|
105
107
|
this._autoContinueCount = 0;
|
|
106
108
|
this._autoContinuePending = false;
|
|
107
109
|
}
|
|
108
110
|
this._executionStartTimestamp = _execStart;
|
|
109
111
|
this.executionEventLog = [];
|
|
110
112
|
const sequenceNumber = this.history.movements.length + 1;
|
|
111
|
-
this._currentUserPrompt =
|
|
113
|
+
this._currentUserPrompt = displayPrompt;
|
|
112
114
|
this._currentSequenceNumber = sequenceNumber;
|
|
113
|
-
this.emit('onMovementStart', sequenceNumber,
|
|
115
|
+
this.emit('onMovementStart', sequenceNumber, displayPrompt, isAutoContinue);
|
|
114
116
|
trackEvent(AnalyticsEvents.IMPROVISE_PROMPT_RECEIVED, {
|
|
115
117
|
prompt_length: userPrompt.length,
|
|
116
118
|
has_attachments: !!(attachments && attachments.length > 0),
|
|
@@ -124,19 +126,20 @@ export class ImprovisationSessionManager extends EventEmitter {
|
|
|
124
126
|
const pendingMovement = {
|
|
125
127
|
id: `prompt-${sequenceNumber}`,
|
|
126
128
|
sequenceNumber,
|
|
127
|
-
userPrompt,
|
|
129
|
+
userPrompt: displayPrompt,
|
|
128
130
|
timestamp: new Date().toISOString(),
|
|
129
131
|
tokensUsed: 0,
|
|
130
132
|
summary: '',
|
|
131
133
|
filesModified: [],
|
|
132
134
|
durationMs: 0,
|
|
135
|
+
...(isAutoContinue && { isAutoContinue: true }),
|
|
133
136
|
};
|
|
134
137
|
this.history.movements.push(pendingMovement);
|
|
135
138
|
this.saveHistory();
|
|
136
139
|
try {
|
|
137
140
|
this.executionEventLog.push({
|
|
138
141
|
type: 'movementStart',
|
|
139
|
-
data: { sequenceNumber, prompt:
|
|
142
|
+
data: { sequenceNumber, prompt: displayPrompt, timestamp: Date.now(), executionStartTimestamp: this._executionStartTimestamp },
|
|
140
143
|
timestamp: Date.now(),
|
|
141
144
|
});
|
|
142
145
|
const { prompt: promptWithAttachments, imageAttachments } = preparePromptAndAttachments(userPrompt, attachments, this.options.workingDir, this.sessionId, (msg) => { this.queueOutput(msg); this.flushOutputQueue(); });
|
|
@@ -155,54 +158,25 @@ export class ImprovisationSessionManager extends EventEmitter {
|
|
|
155
158
|
};
|
|
156
159
|
let result = await this.runRetryLoop(state, sequenceNumber, promptWithAttachments, imageAttachments, options?.workingDir);
|
|
157
160
|
if (this._cancelled) {
|
|
158
|
-
return this.handleCancelledExecution(result,
|
|
161
|
+
return this.handleCancelledExecution(result, displayPrompt, sequenceNumber, _execStart);
|
|
159
162
|
}
|
|
160
163
|
if (state.contextLost)
|
|
161
164
|
this.claudeSessionId = undefined;
|
|
162
165
|
result = await selectBestResult(state, result, userPrompt, this.options.verbose);
|
|
163
166
|
this.captureSessionAndSurfaceErrors(result);
|
|
164
167
|
this.isFirstPrompt = false;
|
|
165
|
-
const movement = this.buildMovementRecord(result,
|
|
168
|
+
const movement = this.buildMovementRecord(result, displayPrompt, sequenceNumber, _execStart, state.retryLog, isAutoContinue);
|
|
166
169
|
this.handleConflicts(result);
|
|
167
170
|
this.persistMovement(movement);
|
|
168
171
|
this._isExecuting = false;
|
|
169
172
|
this._executionStartTimestamp = undefined;
|
|
170
173
|
this.executionEventLog = [];
|
|
171
174
|
this.emitMovementComplete(movement, result, _execStart, sequenceNumber);
|
|
172
|
-
|
|
173
|
-
this.scheduleAutoContinue();
|
|
174
|
-
}
|
|
175
|
+
this.maybeAutoContinue(result, userPrompt);
|
|
175
176
|
return movement;
|
|
176
177
|
}
|
|
177
178
|
catch (error) {
|
|
178
|
-
this.
|
|
179
|
-
this._executionStartTimestamp = undefined;
|
|
180
|
-
this.executionEventLog = [];
|
|
181
|
-
this.currentRunner = null;
|
|
182
|
-
// Update the pending movement with error info so it's not lost
|
|
183
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
184
|
-
const errorMovement = {
|
|
185
|
-
id: `prompt-${sequenceNumber}`,
|
|
186
|
-
sequenceNumber,
|
|
187
|
-
userPrompt,
|
|
188
|
-
timestamp: new Date().toISOString(),
|
|
189
|
-
tokensUsed: 0,
|
|
190
|
-
summary: '',
|
|
191
|
-
filesModified: [],
|
|
192
|
-
errorOutput: errorMessage,
|
|
193
|
-
durationMs: Date.now() - _execStart,
|
|
194
|
-
};
|
|
195
|
-
this.persistMovement(errorMovement);
|
|
196
|
-
this.emit('onMovementError', error);
|
|
197
|
-
trackEvent(AnalyticsEvents.IMPROVISE_MOVEMENT_ERROR, {
|
|
198
|
-
error_message: errorMessage.slice(0, 200),
|
|
199
|
-
sequence_number: sequenceNumber,
|
|
200
|
-
duration_ms: Date.now() - _execStart,
|
|
201
|
-
model: this.options.model || 'default',
|
|
202
|
-
});
|
|
203
|
-
this.queueOutput(`\n❌ Error: ${errorMessage}\n`);
|
|
204
|
-
this.flushOutputQueue();
|
|
205
|
-
throw error;
|
|
179
|
+
this.handleExecutionError(error, displayPrompt, sequenceNumber, _execStart);
|
|
206
180
|
}
|
|
207
181
|
finally {
|
|
208
182
|
this.flushOutputQueue();
|
|
@@ -332,6 +306,35 @@ export class ImprovisationSessionManager extends EventEmitter {
|
|
|
332
306
|
this.emitMovementComplete(cancelledMovement, result ?? fallbackResult, execStart, sequenceNumber);
|
|
333
307
|
return cancelledMovement;
|
|
334
308
|
}
|
|
309
|
+
handleExecutionError(error, displayPrompt, sequenceNumber, execStart) {
|
|
310
|
+
this._isExecuting = false;
|
|
311
|
+
this._executionStartTimestamp = undefined;
|
|
312
|
+
this.executionEventLog = [];
|
|
313
|
+
this.currentRunner = null;
|
|
314
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
315
|
+
const errorMovement = {
|
|
316
|
+
id: `prompt-${sequenceNumber}`,
|
|
317
|
+
sequenceNumber,
|
|
318
|
+
userPrompt: displayPrompt,
|
|
319
|
+
timestamp: new Date().toISOString(),
|
|
320
|
+
tokensUsed: 0,
|
|
321
|
+
summary: '',
|
|
322
|
+
filesModified: [],
|
|
323
|
+
errorOutput: errorMessage,
|
|
324
|
+
durationMs: Date.now() - execStart,
|
|
325
|
+
};
|
|
326
|
+
this.persistMovement(errorMovement);
|
|
327
|
+
this.emit('onMovementError', error);
|
|
328
|
+
trackEvent(AnalyticsEvents.IMPROVISE_MOVEMENT_ERROR, {
|
|
329
|
+
error_message: errorMessage.slice(0, 200),
|
|
330
|
+
sequence_number: sequenceNumber,
|
|
331
|
+
duration_ms: Date.now() - execStart,
|
|
332
|
+
model: this.options.model || 'default',
|
|
333
|
+
});
|
|
334
|
+
this.queueOutput(`\n❌ Error: ${errorMessage}\n`);
|
|
335
|
+
this.flushOutputQueue();
|
|
336
|
+
throw error;
|
|
337
|
+
}
|
|
335
338
|
// ========== Post-Execution Helpers ==========
|
|
336
339
|
captureSessionAndSurfaceErrors(result) {
|
|
337
340
|
if (result.claudeSessionId) {
|
|
@@ -343,7 +346,7 @@ export class ImprovisationSessionManager extends EventEmitter {
|
|
|
343
346
|
this.flushOutputQueue();
|
|
344
347
|
}
|
|
345
348
|
}
|
|
346
|
-
buildMovementRecord(result, userPrompt, sequenceNumber, execStart, retryLog) {
|
|
349
|
+
buildMovementRecord(result, userPrompt, sequenceNumber, execStart, retryLog, isAutoContinue) {
|
|
347
350
|
return {
|
|
348
351
|
id: `prompt-${sequenceNumber}`,
|
|
349
352
|
sequenceNumber,
|
|
@@ -361,6 +364,7 @@ export class ImprovisationSessionManager extends EventEmitter {
|
|
|
361
364
|
errorOutput: result.error,
|
|
362
365
|
durationMs: Date.now() - execStart,
|
|
363
366
|
retryLog: retryLog && retryLog.length > 0 ? retryLog : undefined,
|
|
367
|
+
...(isAutoContinue && { isAutoContinue: true }),
|
|
364
368
|
};
|
|
365
369
|
}
|
|
366
370
|
handleConflicts(result) {
|
|
@@ -402,6 +406,15 @@ export class ImprovisationSessionManager extends EventEmitter {
|
|
|
402
406
|
_autoContinueCount = 0;
|
|
403
407
|
_autoContinuePending = false;
|
|
404
408
|
static MAX_AUTO_CONTINUES = 1;
|
|
409
|
+
maybeAutoContinue(result, userPrompt) {
|
|
410
|
+
const isStallKill = !this._cancelled && !!result.signalName;
|
|
411
|
+
if (isStallKill && this._autoContinueCount < ImprovisationSessionManager.MAX_AUTO_CONTINUES) {
|
|
412
|
+
this.scheduleAutoContinue('Process stalled');
|
|
413
|
+
}
|
|
414
|
+
else if (this.shouldAutoContinue(result, userPrompt)) {
|
|
415
|
+
this.scheduleAutoContinue();
|
|
416
|
+
}
|
|
417
|
+
}
|
|
405
418
|
shouldAutoContinue(result, _userPrompt) {
|
|
406
419
|
if (this._autoContinueCount >= ImprovisationSessionManager.MAX_AUTO_CONTINUES)
|
|
407
420
|
return false;
|
|
@@ -413,20 +426,26 @@ export class ImprovisationSessionManager extends EventEmitter {
|
|
|
413
426
|
return false;
|
|
414
427
|
const thinkingLen = result.thinkingOutput?.length ?? 0;
|
|
415
428
|
const responseLen = result.assistantResponse?.length ?? 0;
|
|
429
|
+
const successfulToolCalls = result.toolUseHistory?.filter(t => t.result !== undefined && !t.isError).length ?? 0;
|
|
416
430
|
if (thinkingLen < 500 || responseLen > 1000)
|
|
417
431
|
return false;
|
|
432
|
+
// When the agent executed tool calls and produced a non-trivial response,
|
|
433
|
+
// long thinking is expected — the work happened in the tools, not the text.
|
|
434
|
+
if (successfulToolCalls > 0 && responseLen > 200)
|
|
435
|
+
return false;
|
|
418
436
|
return thinkingLen >= responseLen * 3;
|
|
419
437
|
}
|
|
420
|
-
scheduleAutoContinue() {
|
|
438
|
+
scheduleAutoContinue(reason) {
|
|
421
439
|
this._autoContinueCount++;
|
|
422
440
|
this._autoContinuePending = true;
|
|
423
|
-
|
|
441
|
+
const msg = reason || 'Response appears incomplete';
|
|
442
|
+
this.queueOutput(`\n[[MSTRO_AUTO_CONTINUE]] ${msg} — resuming session (retry ${this._autoContinueCount}/${ImprovisationSessionManager.MAX_AUTO_CONTINUES}).\n`);
|
|
424
443
|
this.flushOutputQueue();
|
|
425
444
|
setImmediate(() => {
|
|
426
445
|
if (this._cancelled || this._isExecuting || !this._autoContinuePending)
|
|
427
446
|
return;
|
|
428
447
|
this._autoContinuePending = false;
|
|
429
|
-
this.executePrompt('continue').catch((err) => {
|
|
448
|
+
this.executePrompt('continue', undefined, { isAutoContinue: true }).catch((err) => {
|
|
430
449
|
herror('Auto-continue failed:', err);
|
|
431
450
|
});
|
|
432
451
|
});
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improvisation-types.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-types.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"improvisation-types.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"improvisation-types.js","sourceRoot":"","sources":["../../../server/cli/improvisation-types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;
|
|
1
|
+
{"version":3,"file":"improvisation-types.js","sourceRoot":"","sources":["../../../server/cli/improvisation-types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AA2FhE,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,CAAoB;IACjD,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAClG,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,SAAS,GAAG,EAAE,GAAG,WAAW,GAAG,WAAW,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { HandlerContext } from './handler-context.js';
|
|
2
|
+
/**
|
|
3
|
+
* Watches .git/HEAD and .git/worktrees/ for branch changes and
|
|
4
|
+
* broadcasts updates to all connected web clients.
|
|
5
|
+
*/
|
|
6
|
+
export declare class GitHeadWatcher {
|
|
7
|
+
private readonly workingDir;
|
|
8
|
+
private readonly ctx;
|
|
9
|
+
private headWatcher;
|
|
10
|
+
private worktreeWatcher;
|
|
11
|
+
private debounceTimer;
|
|
12
|
+
private lastKnownBranch;
|
|
13
|
+
private lastKnownWorktreeBranches;
|
|
14
|
+
private started;
|
|
15
|
+
constructor(workingDir: string, ctx: HandlerContext);
|
|
16
|
+
start(): void;
|
|
17
|
+
startWorktreeWatcher(): void;
|
|
18
|
+
stop(): void;
|
|
19
|
+
private initLastKnownBranches;
|
|
20
|
+
private debounce;
|
|
21
|
+
private handleChange;
|
|
22
|
+
private checkMainBranch;
|
|
23
|
+
private checkWorktreeBranches;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=git-head-watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-head-watcher.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/git-head-watcher.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;GAGG;AACH,qBAAa,cAAc;IASvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IATtB,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,OAAO,CAAS;gBAGL,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,cAAc;IAGtC,KAAK,IAAI,IAAI;IAgBb,oBAAoB,IAAI,IAAI;IAW5B,IAAI,IAAI,IAAI;YAOE,qBAAqB;IAenC,OAAO,CAAC,QAAQ;YAKF,YAAY;YAOZ,eAAe;YAYf,qBAAqB;CAqBpC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// Copyright (c) 2025-present Mstro, Inc. All rights reserved.
|
|
2
|
+
// Licensed under the MIT License. See LICENSE file for details.
|
|
3
|
+
import { existsSync, watch } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { executeGitCommand } from './git-utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* Watches .git/HEAD and .git/worktrees/ for branch changes and
|
|
8
|
+
* broadcasts updates to all connected web clients.
|
|
9
|
+
*/
|
|
10
|
+
export class GitHeadWatcher {
|
|
11
|
+
workingDir;
|
|
12
|
+
ctx;
|
|
13
|
+
headWatcher = null;
|
|
14
|
+
worktreeWatcher = null;
|
|
15
|
+
debounceTimer = null;
|
|
16
|
+
lastKnownBranch = '';
|
|
17
|
+
lastKnownWorktreeBranches = new Map();
|
|
18
|
+
started = false;
|
|
19
|
+
constructor(workingDir, ctx) {
|
|
20
|
+
this.workingDir = workingDir;
|
|
21
|
+
this.ctx = ctx;
|
|
22
|
+
}
|
|
23
|
+
start() {
|
|
24
|
+
if (this.started)
|
|
25
|
+
return;
|
|
26
|
+
const gitDir = join(this.workingDir, '.git');
|
|
27
|
+
if (!existsSync(gitDir))
|
|
28
|
+
return;
|
|
29
|
+
this.initLastKnownBranches();
|
|
30
|
+
try {
|
|
31
|
+
this.headWatcher = watch(join(gitDir, 'HEAD'), () => this.debounce());
|
|
32
|
+
}
|
|
33
|
+
catch { /* not a git repo or permission issue */ }
|
|
34
|
+
this.startWorktreeWatcher();
|
|
35
|
+
this.started = true;
|
|
36
|
+
}
|
|
37
|
+
startWorktreeWatcher() {
|
|
38
|
+
if (this.worktreeWatcher)
|
|
39
|
+
return;
|
|
40
|
+
try {
|
|
41
|
+
const worktreesDir = join(this.workingDir, '.git', 'worktrees');
|
|
42
|
+
if (!existsSync(worktreesDir))
|
|
43
|
+
return;
|
|
44
|
+
this.worktreeWatcher = watch(worktreesDir, { recursive: true }, (_event, filename) => {
|
|
45
|
+
if (filename?.endsWith('HEAD'))
|
|
46
|
+
this.debounce();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch { /* recursive watch not supported or dir missing */ }
|
|
50
|
+
}
|
|
51
|
+
stop() {
|
|
52
|
+
if (this.headWatcher) {
|
|
53
|
+
this.headWatcher.close();
|
|
54
|
+
this.headWatcher = null;
|
|
55
|
+
}
|
|
56
|
+
if (this.worktreeWatcher) {
|
|
57
|
+
this.worktreeWatcher.close();
|
|
58
|
+
this.worktreeWatcher = null;
|
|
59
|
+
}
|
|
60
|
+
if (this.debounceTimer) {
|
|
61
|
+
clearTimeout(this.debounceTimer);
|
|
62
|
+
this.debounceTimer = null;
|
|
63
|
+
}
|
|
64
|
+
this.started = false;
|
|
65
|
+
}
|
|
66
|
+
async initLastKnownBranches() {
|
|
67
|
+
try {
|
|
68
|
+
const result = await executeGitCommand(['rev-parse', '--abbrev-ref', 'HEAD'], this.workingDir);
|
|
69
|
+
if (result.exitCode === 0)
|
|
70
|
+
this.lastKnownBranch = result.stdout.trim();
|
|
71
|
+
}
|
|
72
|
+
catch { /* ignore */ }
|
|
73
|
+
for (const [tabId, wtPath] of this.ctx.gitDirectories) {
|
|
74
|
+
if (wtPath === this.workingDir)
|
|
75
|
+
continue;
|
|
76
|
+
try {
|
|
77
|
+
const result = await executeGitCommand(['rev-parse', '--abbrev-ref', 'HEAD'], wtPath);
|
|
78
|
+
if (result.exitCode === 0)
|
|
79
|
+
this.lastKnownWorktreeBranches.set(tabId, result.stdout.trim());
|
|
80
|
+
}
|
|
81
|
+
catch { /* ignore */ }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
debounce() {
|
|
85
|
+
if (this.debounceTimer)
|
|
86
|
+
clearTimeout(this.debounceTimer);
|
|
87
|
+
this.debounceTimer = setTimeout(() => { this.handleChange(); }, 300);
|
|
88
|
+
}
|
|
89
|
+
async handleChange() {
|
|
90
|
+
try {
|
|
91
|
+
await this.checkMainBranch();
|
|
92
|
+
await this.checkWorktreeBranches();
|
|
93
|
+
}
|
|
94
|
+
catch { /* ignore errors from concurrent git operations */ }
|
|
95
|
+
}
|
|
96
|
+
async checkMainBranch() {
|
|
97
|
+
const result = await executeGitCommand(['rev-parse', '--abbrev-ref', 'HEAD'], this.workingDir);
|
|
98
|
+
if (result.exitCode !== 0)
|
|
99
|
+
return;
|
|
100
|
+
const branch = result.stdout.trim();
|
|
101
|
+
if (!branch || branch === this.lastKnownBranch)
|
|
102
|
+
return;
|
|
103
|
+
this.lastKnownBranch = branch;
|
|
104
|
+
this.ctx.broadcastToAll({
|
|
105
|
+
type: 'gitBranchChanged',
|
|
106
|
+
data: { directory: this.workingDir, branch },
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
async checkWorktreeBranches() {
|
|
110
|
+
for (const [tabId, wtPath] of this.ctx.gitDirectories) {
|
|
111
|
+
if (wtPath === this.workingDir)
|
|
112
|
+
continue;
|
|
113
|
+
try {
|
|
114
|
+
const result = await executeGitCommand(['rev-parse', '--abbrev-ref', 'HEAD'], wtPath);
|
|
115
|
+
if (result.exitCode !== 0)
|
|
116
|
+
continue;
|
|
117
|
+
const branch = result.stdout.trim();
|
|
118
|
+
if (!branch)
|
|
119
|
+
continue;
|
|
120
|
+
const lastBranch = this.lastKnownWorktreeBranches.get(tabId);
|
|
121
|
+
if (branch === lastBranch)
|
|
122
|
+
continue;
|
|
123
|
+
this.lastKnownWorktreeBranches.set(tabId, branch);
|
|
124
|
+
this.ctx.gitBranches.set(tabId, branch);
|
|
125
|
+
const registry = this.ctx.getRegistry(this.workingDir);
|
|
126
|
+
registry.updateTabWorktree(tabId, wtPath, branch);
|
|
127
|
+
this.ctx.broadcastToAll({
|
|
128
|
+
type: 'gitBranchChanged',
|
|
129
|
+
data: { directory: wtPath, branch },
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
catch { /* ignore */ }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=git-head-watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-head-watcher.js","sourceRoot":"","sources":["../../../../server/services/websocket/git-head-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -351,26 +351,54 @@ async function detectMergeConflicts(mainPath) {
|
|
|
351
351
|
const result = await executeGitCommand(['diff', '--name-only', '--diff-filter=U'], mainPath);
|
|
352
352
|
return result.stdout.trim().split('\n').filter(f => f.trim());
|
|
353
353
|
}
|
|
354
|
+
async function removeWorktreeWithFallback(mainPath, worktreePath) {
|
|
355
|
+
const removeResult = await executeGitCommand(['worktree', 'remove', worktreePath], mainPath);
|
|
356
|
+
if (removeResult.exitCode === 0)
|
|
357
|
+
return { success: true };
|
|
358
|
+
const forceResult = await executeGitCommand(['worktree', 'remove', '--force', worktreePath], mainPath);
|
|
359
|
+
if (forceResult.exitCode === 0)
|
|
360
|
+
return { success: true };
|
|
361
|
+
return { success: false, warning: `Failed to remove worktree: ${forceResult.stderr || 'unknown error'}` };
|
|
362
|
+
}
|
|
363
|
+
async function deleteBranchAfterMerge(mainPath, branchName, strategy) {
|
|
364
|
+
const deleteFlag = strategy === 'squash' ? '-D' : '-d';
|
|
365
|
+
const result = await executeGitCommand(['branch', deleteFlag, branchName], mainPath);
|
|
366
|
+
if (result.exitCode !== 0) {
|
|
367
|
+
return `Failed to delete branch: ${result.stderr || 'unknown error'}`;
|
|
368
|
+
}
|
|
369
|
+
return undefined;
|
|
370
|
+
}
|
|
354
371
|
async function cleanupAfterMerge(mainPath, sourceBranch, strategy, deleteWorktree, deleteBranch) {
|
|
372
|
+
const warnings = [];
|
|
373
|
+
let removedWorktreePath = null;
|
|
355
374
|
if (deleteWorktree) {
|
|
356
375
|
const wtList = await executeGitCommand(['worktree', 'list', '--porcelain'], mainPath);
|
|
357
376
|
const worktreePath = findWorktreePathForBranch(wtList.stdout, sourceBranch);
|
|
358
377
|
if (worktreePath && worktreePath !== mainPath) {
|
|
359
|
-
await
|
|
378
|
+
const result = await removeWorktreeWithFallback(mainPath, worktreePath);
|
|
379
|
+
if (result.success) {
|
|
380
|
+
removedWorktreePath = worktreePath;
|
|
381
|
+
}
|
|
382
|
+
else if (result.warning) {
|
|
383
|
+
warnings.push(result.warning);
|
|
384
|
+
}
|
|
360
385
|
}
|
|
361
386
|
}
|
|
362
387
|
if (deleteBranch) {
|
|
363
|
-
const
|
|
364
|
-
|
|
388
|
+
const warning = await deleteBranchAfterMerge(mainPath, sourceBranch, strategy);
|
|
389
|
+
if (warning)
|
|
390
|
+
warnings.push(warning);
|
|
365
391
|
}
|
|
366
392
|
await executeGitCommand(['worktree', 'prune'], mainPath);
|
|
393
|
+
return { warnings, removedWorktreePath };
|
|
367
394
|
}
|
|
368
395
|
function findWorktreePathForBranch(porcelainOutput, branchName) {
|
|
369
396
|
let currentWtPath = '';
|
|
397
|
+
const fullRef = `refs/heads/${branchName}`;
|
|
370
398
|
for (const line of porcelainOutput.split('\n')) {
|
|
371
399
|
if (line.startsWith('worktree '))
|
|
372
400
|
currentWtPath = line.slice(9).trim();
|
|
373
|
-
if (line.startsWith('branch ') && line.
|
|
401
|
+
if (line.startsWith('branch ') && line.slice(7).trim() === fullRef)
|
|
374
402
|
return currentWtPath;
|
|
375
403
|
}
|
|
376
404
|
return null;
|
|
@@ -388,6 +416,7 @@ async function handleGitWorktreeMerge(ctx, ws, msg, tabId, workingDir) {
|
|
|
388
416
|
ctx.send(ws, { type: 'gitWorktreeMergeResult', tabId, data: { success: false, error: `Switch the main worktree to "${targetBranch}" before merging` } });
|
|
389
417
|
return;
|
|
390
418
|
}
|
|
419
|
+
const headBefore = await executeGitCommand(['rev-parse', 'HEAD'], mainPath);
|
|
391
420
|
const mergeResult = await executeMergeStrategy(strategy, sourceBranch, commitMessage, mainPath);
|
|
392
421
|
if (mergeResult.exitCode !== 0) {
|
|
393
422
|
const conflictFiles = await detectMergeConflicts(mainPath);
|
|
@@ -397,9 +426,21 @@ async function handleGitWorktreeMerge(ctx, ws, msg, tabId, workingDir) {
|
|
|
397
426
|
ctx.send(ws, { type: 'gitWorktreeMergeResult', tabId, data });
|
|
398
427
|
return;
|
|
399
428
|
}
|
|
429
|
+
const headAfter = await executeGitCommand(['rev-parse', 'HEAD'], mainPath);
|
|
430
|
+
if (headBefore.stdout.trim() === headAfter.stdout.trim()) {
|
|
431
|
+
ctx.send(ws, { type: 'gitWorktreeMergeResult', tabId, data: { success: false, error: `Already up to date — "${sourceBranch}" has no new commits to merge into "${targetBranch}"` } });
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
400
434
|
const commitHashResult = await executeGitCommand(['rev-parse', '--short', 'HEAD'], mainPath);
|
|
401
|
-
await cleanupAfterMerge(mainPath, sourceBranch, strategy, !!deleteWorktree, !!deleteBranch);
|
|
402
|
-
|
|
435
|
+
const { warnings, removedWorktreePath } = await cleanupAfterMerge(mainPath, sourceBranch, strategy, !!deleteWorktree, !!deleteBranch);
|
|
436
|
+
if (removedWorktreePath) {
|
|
437
|
+
cleanupWorktreeReferences(ctx, workingDir, removedWorktreePath);
|
|
438
|
+
}
|
|
439
|
+
const data = { success: true, mergeCommit: commitHashResult.stdout.trim() };
|
|
440
|
+
if (warnings.length > 0) {
|
|
441
|
+
data.warnings = warnings;
|
|
442
|
+
}
|
|
443
|
+
ctx.send(ws, { type: 'gitWorktreeMergeResult', tabId, data });
|
|
403
444
|
}
|
|
404
445
|
catch (error) {
|
|
405
446
|
ctx.send(ws, { type: 'gitError', tabId, data: { error: error instanceof Error ? error.message : String(error) } });
|