@coralai/sps-cli 0.26.1 → 0.26.3

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 (100) hide show
  1. package/README-CN.md +6 -17
  2. package/README.md +5 -21
  3. package/dist/commands/tick.d.ts +0 -1
  4. package/dist/commands/tick.d.ts.map +1 -1
  5. package/dist/commands/tick.js +0 -18
  6. package/dist/commands/tick.js.map +1 -1
  7. package/dist/core/config.d.ts +0 -13
  8. package/dist/core/config.d.ts.map +1 -1
  9. package/dist/core/config.js +1 -14
  10. package/dist/core/config.js.map +1 -1
  11. package/dist/core/config.test.js +3 -33
  12. package/dist/core/config.test.js.map +1 -1
  13. package/dist/core/context.d.ts +0 -1
  14. package/dist/core/context.d.ts.map +1 -1
  15. package/dist/core/context.js +0 -1
  16. package/dist/core/context.js.map +1 -1
  17. package/dist/main.js +2 -2
  18. package/dist/main.js.map +1 -1
  19. package/package.json +1 -1
  20. package/project-template/conf.template +4 -13
  21. package/dist/core/acpState.d.ts +0 -4
  22. package/dist/core/acpState.d.ts.map +0 -1
  23. package/dist/core/acpState.js +0 -38
  24. package/dist/core/acpState.js.map +0 -1
  25. package/dist/core/ptyControl.d.ts +0 -27
  26. package/dist/core/ptyControl.d.ts.map +0 -1
  27. package/dist/core/ptyControl.js +0 -53
  28. package/dist/core/ptyControl.js.map +0 -1
  29. package/dist/interfaces/WorkerProvider.d.ts +0 -92
  30. package/dist/interfaces/WorkerProvider.d.ts.map +0 -1
  31. package/dist/interfaces/WorkerProvider.js +0 -2
  32. package/dist/interfaces/WorkerProvider.js.map +0 -1
  33. package/dist/manager/merge-mutex.d.ts +0 -20
  34. package/dist/manager/merge-mutex.d.ts.map +0 -1
  35. package/dist/manager/merge-mutex.js +0 -38
  36. package/dist/manager/merge-mutex.js.map +0 -1
  37. package/dist/manager/post-actions.d.ts +0 -81
  38. package/dist/manager/post-actions.d.ts.map +0 -1
  39. package/dist/manager/post-actions.js +0 -449
  40. package/dist/manager/post-actions.js.map +0 -1
  41. package/dist/manager/pty-session-manager.d.ts +0 -75
  42. package/dist/manager/pty-session-manager.d.ts.map +0 -1
  43. package/dist/manager/pty-session-manager.js +0 -343
  44. package/dist/manager/pty-session-manager.js.map +0 -1
  45. package/dist/manager/pty-session.d.ts +0 -77
  46. package/dist/manager/pty-session.d.ts.map +0 -1
  47. package/dist/manager/pty-session.js +0 -230
  48. package/dist/manager/pty-session.js.map +0 -1
  49. package/dist/manager/recovery.d.ts +0 -56
  50. package/dist/manager/recovery.d.ts.map +0 -1
  51. package/dist/manager/recovery.js +0 -510
  52. package/dist/manager/recovery.js.map +0 -1
  53. package/dist/providers/ClaudePrintProvider.d.ts +0 -54
  54. package/dist/providers/ClaudePrintProvider.d.ts.map +0 -1
  55. package/dist/providers/ClaudePrintProvider.js +0 -300
  56. package/dist/providers/ClaudePrintProvider.js.map +0 -1
  57. package/dist/providers/ClaudeTmuxProvider.d.ts +0 -94
  58. package/dist/providers/ClaudeTmuxProvider.d.ts.map +0 -1
  59. package/dist/providers/ClaudeTmuxProvider.js +0 -330
  60. package/dist/providers/ClaudeTmuxProvider.js.map +0 -1
  61. package/dist/providers/ClaudeWorkerProvider.d.ts +0 -6
  62. package/dist/providers/ClaudeWorkerProvider.d.ts.map +0 -1
  63. package/dist/providers/ClaudeWorkerProvider.js +0 -6
  64. package/dist/providers/ClaudeWorkerProvider.js.map +0 -1
  65. package/dist/providers/CodexExecProvider.d.ts +0 -36
  66. package/dist/providers/CodexExecProvider.d.ts.map +0 -1
  67. package/dist/providers/CodexExecProvider.js +0 -262
  68. package/dist/providers/CodexExecProvider.js.map +0 -1
  69. package/dist/providers/CodexTmuxProvider.d.ts +0 -71
  70. package/dist/providers/CodexTmuxProvider.d.ts.map +0 -1
  71. package/dist/providers/CodexTmuxProvider.js +0 -350
  72. package/dist/providers/CodexTmuxProvider.js.map +0 -1
  73. package/dist/providers/CodexWorkerProvider.d.ts +0 -6
  74. package/dist/providers/CodexWorkerProvider.d.ts.map +0 -1
  75. package/dist/providers/CodexWorkerProvider.js +0 -6
  76. package/dist/providers/CodexWorkerProvider.js.map +0 -1
  77. package/dist/providers/PTYAgentRuntime.d.ts +0 -54
  78. package/dist/providers/PTYAgentRuntime.d.ts.map +0 -1
  79. package/dist/providers/PTYAgentRuntime.js +0 -434
  80. package/dist/providers/PTYAgentRuntime.js.map +0 -1
  81. package/dist/providers/acpTmux.d.ts +0 -6
  82. package/dist/providers/acpTmux.d.ts.map +0 -1
  83. package/dist/providers/acpTmux.js +0 -51
  84. package/dist/providers/acpTmux.js.map +0 -1
  85. package/dist/providers/adapters/ClaudeACPAdapter.d.ts +0 -11
  86. package/dist/providers/adapters/ClaudeACPAdapter.d.ts.map +0 -1
  87. package/dist/providers/adapters/ClaudeACPAdapter.js +0 -150
  88. package/dist/providers/adapters/ClaudeACPAdapter.js.map +0 -1
  89. package/dist/providers/adapters/CodexACPAdapter.d.ts +0 -11
  90. package/dist/providers/adapters/CodexACPAdapter.d.ts.map +0 -1
  91. package/dist/providers/adapters/CodexACPAdapter.js +0 -158
  92. package/dist/providers/adapters/CodexACPAdapter.js.map +0 -1
  93. package/dist/providers/parsers/claude-parser.d.ts +0 -17
  94. package/dist/providers/parsers/claude-parser.d.ts.map +0 -1
  95. package/dist/providers/parsers/claude-parser.js +0 -112
  96. package/dist/providers/parsers/claude-parser.js.map +0 -1
  97. package/dist/providers/parsers/codex-parser.d.ts +0 -12
  98. package/dist/providers/parsers/codex-parser.d.ts.map +0 -1
  99. package/dist/providers/parsers/codex-parser.js +0 -91
  100. package/dist/providers/parsers/codex-parser.js.map +0 -1
@@ -1,449 +0,0 @@
1
- /**
2
- * PostActions — executes the full post-completion/failure chain.
3
- *
4
- * Called immediately from Supervisor exit callback → CompletionJudge → here.
5
- *
6
- * v0.23.19+: post-actions no longer owns merge/conflict resolution.
7
- * Development completion hands the task off to QA. Integration work is
8
- * owned by the QA worker and CloseoutEngine only finalizes outcomes.
9
- */
10
- import { execFileSync } from 'node:child_process';
11
- import { appendFileSync, existsSync, mkdirSync, readFileSync } from 'node:fs';
12
- import { resolve } from 'node:path';
13
- import { RuntimeStore } from '../core/runtimeStore.js';
14
- import { buildResumePrompt, LEGACY_TASK_PROMPT_FILE, promptFileForPhase, selectWorkerPhase, } from '../core/taskPrompts.js';
15
- // ─── PostActions ────────────────────────────────────────────────
16
- export class PostActions {
17
- pmClient;
18
- supervisor;
19
- resourceLimiter;
20
- notifier;
21
- agentRuntime;
22
- constructor(pmClient, supervisor, resourceLimiter, notifier, agentRuntime = null) {
23
- this.pmClient = pmClient;
24
- this.supervisor = supervisor;
25
- this.resourceLimiter = resourceLimiter;
26
- this.notifier = notifier;
27
- this.agentRuntime = agentRuntime;
28
- }
29
- stateStore(ctx) {
30
- return new RuntimeStore({
31
- paths: { stateFile: ctx.stateFile },
32
- maxWorkers: ctx.maxWorkers,
33
- });
34
- }
35
- /**
36
- * Handle worker completion.
37
- *
38
- * Main path:
39
- * development complete -> move card to QA and release the execution slot
40
- *
41
- * Exception path:
42
- * if the branch is already merged into the target branch, absorb the result
43
- * and finish directly as Done.
44
- */
45
- async executeCompletion(ctx, completion, _sessionId) {
46
- if (completion.reason === 'already_merged' || ctx.pmStateObserved === 'QA') {
47
- return this.executeIntegratedCompletion(ctx, completion);
48
- }
49
- return this.executeDevelopmentCompletion(ctx, completion);
50
- }
51
- async executeDevelopmentCompletion(ctx, completion) {
52
- const results = [];
53
- results.push(await this.pmMoveQa(ctx));
54
- const qaMoveOk = results[results.length - 1].ok;
55
- results.push(await this.releaseSlotToQa(ctx, qaMoveOk));
56
- results.push(await this.pmReleaseClaim(ctx));
57
- results.push(await this.notify(ctx, `seq:${ctx.seq} completed development (${completion.reason}), moved to QA`, 'success'));
58
- this.resourceLimiter.release();
59
- const workerId = `${ctx.project}:${ctx.slot}:${ctx.seq}`;
60
- this.supervisor.remove(workerId);
61
- return results;
62
- }
63
- async executeIntegratedCompletion(ctx, completion) {
64
- const results = [];
65
- results.push(await this.pmMoveDone(ctx));
66
- results.push(await this.releaseSlot(ctx));
67
- results.push(await this.pmReleaseClaim(ctx));
68
- results.push(await this.markWorktreeCleanup(ctx));
69
- results.push(await this.archiveKnowledge(ctx));
70
- results.push(await this.notify(ctx, `seq:${ctx.seq} completed (${completion.reason}), integrated to ${ctx.baseBranch}`, 'success'));
71
- this.resourceLimiter.release();
72
- const workerId = `${ctx.project}:${ctx.slot}:${ctx.seq}`;
73
- this.supervisor.remove(workerId);
74
- return results;
75
- }
76
- /**
77
- * Handle worker failure — retry or mark NEEDS-FIX.
78
- */
79
- async executeFailure(ctx, completion, exitCode, sessionId, retryCount,
80
- /** Original spawn options for retry */
81
- respawnOpts) {
82
- const results = [];
83
- if (retryCount < ctx.maxRetries) {
84
- if (ctx.transport !== 'proc' && this.agentRuntime) {
85
- results.push(await this.pmComment(ctx, `Worker ${completion.reason} (exit ${exitCode}). Retry #${retryCount + 1} on the same ${ctx.transport.toUpperCase()} session...`));
86
- const respawnResult = await this.respawnAcp(ctx, retryCount);
87
- results.push(respawnResult);
88
- if (respawnResult.ok) {
89
- return results;
90
- }
91
- }
92
- else if (sessionId) {
93
- // Release old worker resources BEFORE respawning
94
- this.resourceLimiter.release();
95
- const workerId = `${ctx.project}:${ctx.slot}:${ctx.seq}`;
96
- this.supervisor.remove(workerId);
97
- // Retry with --resume
98
- results.push(await this.pmComment(ctx, `Worker ${completion.reason} (exit ${exitCode}). Retry #${retryCount + 1} with --resume...`));
99
- const respawnResult = await this.respawn(ctx, sessionId, retryCount, respawnOpts);
100
- results.push(respawnResult);
101
- if (respawnResult.ok) {
102
- return results;
103
- }
104
- }
105
- }
106
- // Retries exhausted or retry launch failed → NEEDS-FIX
107
- results.push(await this.pmAddLabel(ctx, 'NEEDS-FIX'));
108
- results.push(await this.pmComment(ctx, `Worker ${completion.reason} (exit ${exitCode}). Retries exhausted (${retryCount}/${ctx.maxRetries}).`));
109
- results.push(await this.releaseSlot(ctx));
110
- results.push(await this.notify(ctx, `seq:${ctx.seq} FAILED — ${completion.reason}, retries exhausted`, 'error'));
111
- this.resourceLimiter.release();
112
- const workerId = `${ctx.project}:${ctx.slot}:${ctx.seq}`;
113
- this.supervisor.remove(workerId);
114
- return results;
115
- }
116
- // ─── Individual Steps ──────────────────────────────────────────
117
- async createMR(ctx) {
118
- try {
119
- const { branch, baseBranch, seq, gitlabProjectId, gitlabUrl, gitlabToken } = ctx;
120
- const title = `${seq}: Merge ${branch}`;
121
- const res = await fetch(`${gitlabUrl}/api/v4/projects/${gitlabProjectId}/merge_requests`, {
122
- method: 'POST',
123
- headers: { 'PRIVATE-TOKEN': gitlabToken, 'Content-Type': 'application/json' },
124
- body: JSON.stringify({
125
- source_branch: branch,
126
- target_branch: baseBranch,
127
- title,
128
- }),
129
- });
130
- if (!res.ok) {
131
- const text = await res.text().catch(() => '');
132
- throw new Error(`GitLab MR creation failed (${res.status}): ${text}`);
133
- }
134
- this.log(`Created MR for ${branch}`);
135
- return { step: 'create-mr', ok: true };
136
- }
137
- catch (err) {
138
- const msg = err instanceof Error ? err.message : String(err);
139
- this.log(`MR creation failed: ${msg}`);
140
- return { step: 'create-mr', ok: false, error: msg };
141
- }
142
- }
143
- async pmMoveQa(ctx) {
144
- try {
145
- await this.pmClient.move(ctx.seq, ctx.qaStateId);
146
- return { step: 'pm-move-qa', ok: true };
147
- }
148
- catch (err) {
149
- return { step: 'pm-move-qa', ok: false, error: String(err) };
150
- }
151
- }
152
- async pmMoveDone(ctx) {
153
- try {
154
- await this.pmClient.move(ctx.seq, ctx.doneStateId);
155
- return { step: 'pm-move-done', ok: true };
156
- }
157
- catch (err) {
158
- return { step: 'pm-move-done', ok: false, error: String(err) };
159
- }
160
- }
161
- async releaseSlotToQa(ctx, qaMoveOk) {
162
- try {
163
- this.stateStore(ctx).updateState('post-actions-release-to-qa', (state) => {
164
- this.stateStore(ctx).releaseTaskProjection(state, ctx.seq, {
165
- dropLease: false,
166
- phase: 'merging',
167
- keepWorktree: true,
168
- pmStateObserved: qaMoveOk ? 'QA' : (ctx.pmStateObserved ?? 'Inprogress'),
169
- });
170
- });
171
- return { step: 'release-slot-to-qa', ok: true };
172
- }
173
- catch (err) {
174
- return { step: 'release-slot-to-qa', ok: false, error: String(err) };
175
- }
176
- }
177
- async releaseSlot(ctx) {
178
- try {
179
- this.stateStore(ctx).updateState('post-actions-release', (state) => {
180
- this.stateStore(ctx).releaseTaskProjection(state, ctx.seq, { dropLease: true });
181
- });
182
- return { step: 'release-slot', ok: true };
183
- }
184
- catch (err) {
185
- return { step: 'release-slot', ok: false, error: String(err) };
186
- }
187
- }
188
- async pmReleaseClaim(ctx) {
189
- try {
190
- await this.pmClient.releaseClaim(ctx.seq);
191
- return { step: 'pm-release-claim', ok: true };
192
- }
193
- catch (err) {
194
- return { step: 'pm-release-claim', ok: false, error: String(err) };
195
- }
196
- }
197
- async markWorktreeCleanup(ctx) {
198
- try {
199
- this.stateStore(ctx).updateState('post-actions-cleanup', (state) => {
200
- const cleanup = state.worktreeCleanup ?? [];
201
- if (!cleanup.some(e => e.branch === ctx.branch)) {
202
- cleanup.push({
203
- branch: ctx.branch,
204
- worktreePath: ctx.worktree,
205
- markedAt: new Date().toISOString(),
206
- });
207
- state.worktreeCleanup = cleanup;
208
- }
209
- });
210
- return { step: 'mark-worktree-cleanup', ok: true };
211
- }
212
- catch (err) {
213
- return { step: 'mark-worktree-cleanup', ok: false, error: String(err) };
214
- }
215
- }
216
- async archiveKnowledge(ctx) {
217
- try {
218
- const diffStat = safeExec('git', [
219
- '-C', ctx.worktree, 'diff', '--stat',
220
- `origin/${ctx.baseBranch}...${ctx.branch}`,
221
- ]);
222
- const commits = safeExec('git', [
223
- '-C', ctx.worktree, 'log', '--oneline',
224
- `origin/${ctx.baseBranch}..${ctx.branch}`,
225
- ]);
226
- const archiveFile = resolve(ctx.logsDir, 'task-archive.jsonl');
227
- mkdirSync(resolve(ctx.logsDir), { recursive: true });
228
- const entry = {
229
- ts: new Date().toISOString(),
230
- seq: ctx.seq,
231
- branch: ctx.branch,
232
- commits: commits.split('\n').filter(Boolean),
233
- filesChanged: diffStat.trim(),
234
- };
235
- appendFileSync(archiveFile, JSON.stringify(entry) + '\n');
236
- return { step: 'archive-knowledge', ok: true };
237
- }
238
- catch (err) {
239
- return { step: 'archive-knowledge', ok: false, error: String(err) };
240
- }
241
- }
242
- async respawn(ctx, sessionId, retryCount, respawnOpts) {
243
- try {
244
- const workerId = `${ctx.project}:${ctx.slot}:${ctx.seq}`;
245
- const resumePrompt = this.loadPhaseResumePrompt(ctx);
246
- const outputFile = resolve(ctx.logsDir, `${ctx.project}-${ctx.slot}-retry${retryCount + 1}-${Date.now()}.jsonl`);
247
- const acquire = this.resourceLimiter.tryAcquireDetailed();
248
- if (!acquire.acquired) {
249
- const reason = this.resourceLimiter.formatBlockReason(acquire.stats);
250
- this.log(`Cannot respawn ${workerId}: global resource limit reached: ${reason}`);
251
- return { step: 'respawn', ok: false, error: `Global resource limit reached: ${reason}` };
252
- }
253
- this.supervisor.spawn({
254
- id: workerId,
255
- project: ctx.project,
256
- seq: ctx.seq,
257
- slot: ctx.slot,
258
- worktree: ctx.worktree,
259
- branch: ctx.branch,
260
- prompt: resumePrompt,
261
- outputFile,
262
- tool: ctx.tool,
263
- resumeSessionId: sessionId,
264
- onExit: respawnOpts?.onExit || (async () => { }),
265
- ...respawnOpts,
266
- });
267
- this.stateStore(ctx).updateState('post-actions-retry', (state) => {
268
- if (state.leases[ctx.seq]) {
269
- state.leases[ctx.seq].retryCount = retryCount + 1;
270
- state.leases[ctx.seq].lastTransitionAt = new Date().toISOString();
271
- }
272
- if (state.activeCards[ctx.seq]) {
273
- state.activeCards[ctx.seq].retryCount = retryCount + 1;
274
- }
275
- });
276
- this.log(`Respawned ${workerId} with --resume (retry #${retryCount + 1})`);
277
- return { step: 'respawn', ok: true };
278
- }
279
- catch (err) {
280
- const msg = err instanceof Error ? err.message : String(err);
281
- this.log(`Respawn failed: ${msg}`);
282
- this.resourceLimiter.release();
283
- return { step: 'respawn', ok: false, error: msg };
284
- }
285
- }
286
- async respawnAcp(ctx, retryCount) {
287
- if (!this.agentRuntime) {
288
- return { step: 'respawn-acp', ok: false, error: 'ACP runtime is not configured' };
289
- }
290
- try {
291
- const resumePrompt = this.loadPhaseResumePrompt(ctx);
292
- const session = await this.resumeOrStartAgentRun(ctx, resumePrompt, 'active', 'post-actions-retry-acp', {
293
- retryCount: retryCount + 1,
294
- });
295
- this.log(`Respawned ${ctx.project}:${ctx.slot}:${ctx.seq} on ${ctx.transport.toUpperCase()} session ${session.sessionId} ` +
296
- `(retry #${retryCount + 1})`);
297
- return { step: 'respawn-acp', ok: true };
298
- }
299
- catch (err) {
300
- const msg = err instanceof Error ? err.message : String(err);
301
- this.log(`ACP respawn failed: ${msg}`);
302
- return { step: 'respawn-acp', ok: false, error: msg };
303
- }
304
- }
305
- async resumeOrStartAgentRun(ctx, prompt, slotStatus, updatedBy, options) {
306
- if (!this.agentRuntime) {
307
- throw new Error('ACP runtime is not configured');
308
- }
309
- try {
310
- const session = await this.agentRuntime.resumeRun(ctx.slot, prompt);
311
- this.syncAcpRuntimeState(ctx, session, slotStatus, updatedBy, options);
312
- return session;
313
- }
314
- catch (err) {
315
- const msg = err instanceof Error ? err.message : String(err);
316
- this.log(`${ctx.transport.toUpperCase()} resume unavailable for ${ctx.project}:${ctx.slot}:${ctx.seq}: ${msg}; ` +
317
- `creating a fresh session`);
318
- await this.agentRuntime.ensureSession(ctx.slot, ctx.tool, ctx.worktree);
319
- const session = await this.agentRuntime.startRun(ctx.slot, prompt, ctx.tool, ctx.worktree);
320
- this.syncAcpRuntimeState(ctx, session, slotStatus, updatedBy, options);
321
- return session;
322
- }
323
- }
324
- async pmComment(ctx, text) {
325
- try {
326
- await this.pmClient.comment(ctx.seq, text);
327
- return { step: 'pm-comment', ok: true };
328
- }
329
- catch (err) {
330
- return { step: 'pm-comment', ok: false, error: String(err) };
331
- }
332
- }
333
- async pmAddLabel(ctx, label) {
334
- try {
335
- await this.pmClient.addLabel(ctx.seq, label);
336
- return { step: 'pm-add-label', ok: true };
337
- }
338
- catch (err) {
339
- return { step: 'pm-add-label', ok: false, error: String(err) };
340
- }
341
- }
342
- async notify(ctx, message, level) {
343
- if (!this.notifier)
344
- return { step: 'notify', ok: true };
345
- try {
346
- const fullMsg = `[${ctx.project}] ${message}`;
347
- if (level === 'success')
348
- await this.notifier.sendSuccess(fullMsg);
349
- else if (level === 'error')
350
- await this.notifier.sendWarning(fullMsg);
351
- else
352
- await this.notifier.send(fullMsg, 'info');
353
- return { step: 'notify', ok: true };
354
- }
355
- catch (err) {
356
- return { step: 'notify', ok: false, error: String(err) };
357
- }
358
- }
359
- log(msg) {
360
- process.stderr.write(`[post-actions] ${msg}\n`);
361
- }
362
- loadPhaseResumePrompt(ctx) {
363
- const phase = selectWorkerPhase(ctx.pmStateObserved ?? null, null);
364
- const phasePromptPath = resolve(ctx.worktree, '.sps', promptFileForPhase(phase));
365
- const legacyPromptPath = resolve(ctx.worktree, '.sps', LEGACY_TASK_PROMPT_FILE);
366
- const originalPrompt = existsSync(phasePromptPath)
367
- ? readFileSync(phasePromptPath, 'utf-8')
368
- : (existsSync(legacyPromptPath) ? readFileSync(legacyPromptPath, 'utf-8') : null);
369
- return buildResumePrompt(phase, ctx.worktree, ctx.branch, originalPrompt);
370
- }
371
- syncAcpRuntimeState(ctx, session, slotStatus, updatedBy, options) {
372
- const workerId = `${ctx.project}:${ctx.slot}:${ctx.seq}`;
373
- const nowIso = new Date().toISOString();
374
- let claimedAt = nowIso;
375
- this.stateStore(ctx).updateState(updatedBy, (state) => {
376
- const slot = state.workers[ctx.slot];
377
- if (slot) {
378
- const agentMode = ctx.transport === 'pty' ? 'pty' : 'acp';
379
- slot.status = slotStatus;
380
- slot.mode = agentMode;
381
- slot.transport = ctx.transport;
382
- slot.agent = session.tool;
383
- slot.tmuxSession = session.sessionName;
384
- slot.sessionId = session.sessionId;
385
- slot.runId = session.currentRun?.runId || null;
386
- slot.sessionState = session.sessionState;
387
- slot.remoteStatus = session.currentRun?.status || null;
388
- slot.lastEventAt = session.lastSeenAt;
389
- slot.lastHeartbeat = nowIso;
390
- slot.pid = null;
391
- slot.outputFile = null;
392
- slot.exitCode = null;
393
- claimedAt = slot.claimedAt || nowIso;
394
- }
395
- if (state.leases[ctx.seq]) {
396
- state.leases[ctx.seq].slot = ctx.slot;
397
- state.leases[ctx.seq].branch = ctx.branch;
398
- state.leases[ctx.seq].worktree = ctx.worktree;
399
- state.leases[ctx.seq].sessionId = session.sessionId;
400
- state.leases[ctx.seq].runId = session.currentRun?.runId || null;
401
- if (options?.retryCount != null) {
402
- state.leases[ctx.seq].retryCount = options.retryCount;
403
- }
404
- state.leases[ctx.seq].phase = slotStatus === 'merging'
405
- ? 'merging'
406
- : session.pendingInput || ['waiting_input', 'needs_confirmation'].includes(session.currentRun?.status || '')
407
- ? 'waiting_confirmation'
408
- : slotStatus === 'resolving'
409
- ? 'resolving_conflict'
410
- : 'coding';
411
- state.leases[ctx.seq].lastTransitionAt = nowIso;
412
- }
413
- if (state.activeCards[ctx.seq] && options?.retryCount != null) {
414
- state.activeCards[ctx.seq].retryCount = options.retryCount;
415
- }
416
- });
417
- this.supervisor.registerAcpHandle({
418
- id: workerId,
419
- pid: null,
420
- outputFile: null,
421
- project: ctx.project,
422
- seq: ctx.seq,
423
- slot: ctx.slot,
424
- branch: ctx.branch,
425
- worktree: ctx.worktree,
426
- tool: session.tool,
427
- exitCode: null,
428
- sessionId: session.sessionId,
429
- runId: session.currentRun?.runId || null,
430
- sessionState: session.sessionState,
431
- remoteStatus: session.currentRun?.status || null,
432
- lastEventAt: session.lastSeenAt,
433
- startedAt: claimedAt,
434
- exitedAt: null,
435
- });
436
- }
437
- }
438
- // ─── Helpers ────────────────────────────────────────────────────
439
- function safeExec(cmd, args) {
440
- try {
441
- return execFileSync(cmd, args, {
442
- encoding: 'utf-8', timeout: 10_000, stdio: ['ignore', 'pipe', 'pipe'],
443
- });
444
- }
445
- catch {
446
- return '';
447
- }
448
- }
449
- //# sourceMappingURL=post-actions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"post-actions.js","sourceRoot":"","sources":["../../src/manager/post-actions.ts"],"names":[],"mappings":"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"}
@@ -1,75 +0,0 @@
1
- import { PTYSession, type SessionState } from './pty-session.js';
2
- export interface EnsureSessionOpts {
3
- project: string;
4
- slot: string;
5
- tool: 'claude' | 'codex';
6
- cwd: string;
7
- logsDir: string;
8
- /** Timeout for waiting for ready state (ms). Default: 60000 */
9
- readyTimeoutMs?: number;
10
- /** Auto-confirm trust prompts. Default: true */
11
- autoTrust?: boolean;
12
- }
13
- export interface SessionInfo {
14
- sessionId: string;
15
- state: SessionState;
16
- pid: number;
17
- tool: 'claude' | 'codex';
18
- cwd: string;
19
- runId: string | null;
20
- buffer: string;
21
- alive: boolean;
22
- lastOutputAt: string | null;
23
- submitAttempts: number;
24
- stalledReason: string | null;
25
- promptPreview: string | null;
26
- executionEvidence: boolean;
27
- }
28
- export declare class PTYSessionManager {
29
- private sessions;
30
- private static makeKey;
31
- /**
32
- * Ensure a ready PTY session exists for the given slot.
33
- * Reuses existing live session or creates a new one.
34
- */
35
- ensureSession(opts: EnsureSessionOpts): Promise<PTYSession>;
36
- /**
37
- * Start a new run (send prompt) on an existing session.
38
- */
39
- startRun(project: string, slot: string, prompt: string): Promise<{
40
- runId: string;
41
- }>;
42
- /**
43
- * Resume a run on the same session (for conflict resolution, retries, etc.)
44
- */
45
- resumeRun(project: string, slot: string, instruction: string): Promise<{
46
- runId: string;
47
- }>;
48
- /**
49
- * Wait for the current run to complete (prompt reappears).
50
- */
51
- waitForRunComplete(project: string, slot: string, timeoutMs?: number): Promise<{
52
- status: 'completed' | 'failed' | 'timeout';
53
- runId: string | null;
54
- }>;
55
- /**
56
- * Send a response to a waiting-input prompt.
57
- */
58
- respond(project: string, slot: string, response: string): void;
59
- maintainSession(project: string, slot: string): Promise<SessionInfo | null>;
60
- getSession(project: string, slot: string): PTYSession | null;
61
- inspect(project: string, slot: string): SessionInfo | null;
62
- listSessions(): SessionInfo[];
63
- killSession(project: string, slot: string): void;
64
- killAll(): void;
65
- get size(): number;
66
- private requireSession;
67
- private waitForState;
68
- private log;
69
- private writeResponse;
70
- private ensurePromptSubmitted;
71
- private repairPromptSubmission;
72
- private isRunAccepted;
73
- private hasExecutionEvidence;
74
- }
75
- //# sourceMappingURL=pty-session-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pty-session-manager.d.ts","sourceRoot":"","sources":["../../src/manager/pty-session-manager.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AAepF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAID,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAiC;IAEjD,OAAO,CAAC,MAAM,CAAC,OAAO;IAMtB;;;OAGG;IACG,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAiFjE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAezF;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAe/F;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAkB,GAC5B,OAAO,CAAC;QAAE,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAyChF;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMxD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IASjF,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAI5D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAoB1D,YAAY,IAAI,WAAW,EAAE;IAwB7B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAShD,OAAO,IAAI,IAAI;IAOf,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,aAAa;YAUP,qBAAqB;YAiBrB,sBAAsB;IAmCpC,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,oBAAoB;CAI7B"}