@straiffi/archon 1.7.1 → 1.7.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 (166) hide show
  1. package/dist/client/assets/ActivityView-DTEenQas.js +1 -0
  2. package/dist/client/assets/GitHubActionsDialog-BKWHonUS.js +1 -0
  3. package/dist/client/assets/TestsDialog-cBaoffCs.js +4 -0
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CJgwCv5O.js → architectureDiagram-3BPJPVTR-BzzGotac.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM--xjes8FA.js → blockDiagram-GPEHLZMM-DIcqLHKg.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-DHnp82NG.js → c4Diagram-AAUBKEIU-Hc1Sqmhs.js} +1 -1
  7. package/dist/client/assets/channel-Cym17waa.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-DAOyJCKy.js → chunk-2J33WTMH-CWSwjsgk.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-C9YI_tk4.js → chunk-3OPIFGDE-BnX3DljN.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-BW9khkin.js → chunk-5ZQYHXKU-EyyJlI-d.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-DL4t5Hpi.js → chunk-727SXJPM-Ci6CfxWj.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-C4VMKa_O.js → chunk-AQP2D5EJ-RKZNsJTm.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-DHP7zrZK.js → chunk-CSCIHK7Q-DBf0Euoj.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-CqZWek3t.js → chunk-KSCS5N6A-BmLQI_2S.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-D3q55pCI.js → chunk-L5ZTLDWV-DKwVAb8G.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-UDY_Lo6v.js → chunk-LZXEDZCA-axotKkbz.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-ZCiOxkYV.js → chunk-ND2GUHAM-BBlJ4nXC.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-CuryoBtd.js → chunk-NZK2D7GU-BKJGoZZt.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-PnPsz2TB.js → chunk-O5CBEL6O-C-Ghigo1.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-BzOopX-U.js → chunk-WU5MYG2G-CCzVWYcd.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-BcigvvIC.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-3AdSuE0N.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-5LBwQ83I.js → dagre-BM42HDAG-rwIdPcjI.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-_4pckiGR.js → diagram-2AECGRRQ-DJWxOQsg.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-CqElv5rJ.js → diagram-5GNKFQAL-C-mQeFtd.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-DKv4zS4F.js → diagram-KO2AKTUF-BAu6u4sR.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-iLmTH4UP.js → diagram-LMA3HP47-U6CbvBn0.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-DpFYIa0o.js → diagram-OG6HWLK6-DNTwFcs1.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-DnfbvbKs.js → erDiagram-TEJ5UH35-DaHX6Xw5.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-C2MN70Qv.js → flowDiagram-I6XJVG4X-B9hKqL2l.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-yonpliOJ.js → ganttDiagram-6RSMTGT7-BQ1HPHVO.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CaKDWx7y.js → gitGraphDiagram-PVQCEYII-BBRcsmMK.js} +1 -1
  33. package/dist/client/assets/index-CEMaJCPS.js +273 -0
  34. package/dist/client/assets/index-lWftq65U.css +2 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-82-8njnx.js → infoDiagram-5YYISTIA-DUoNiSGC.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BMiyLWwK.js → ishikawaDiagram-YF4QCWOH-DJN1y2w8.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-C1qBnR37.js → journeyDiagram-JHISSGLW-BxLLMT70.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-zByEuCzn.js → kanban-definition-UN3LZRKU-BdCPistJ.js} +1 -1
  39. package/dist/client/assets/{line-EpLqyzw7.js → line-4mIgXsZd.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-o124REPN.js → mermaid-parser.core-Pu1QGWJ-.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-DgiAn2-k.js → mermaid.core-DnH9DrgZ.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-UK6V0Bxq.js → mindmap-definition-RKZ34NQL-DqE4ba3C.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-B2s9oGFl.js → pieDiagram-4H26LBE5-Crjy9ejf.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-d5H7-zcc.js → quadrantDiagram-W4KKPZXB-BUSZ2VB7.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DlwN9Vcv.js → requirementDiagram-4Y6WPE33-CBhFKEoV.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-9dGyAxu5.js → sankeyDiagram-5OEKKPKP-CgdbY41v.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DKwRjEym.js → sequenceDiagram-3UESZ5HK-hkp_H7AE.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-D_6cuqsX.js → stateDiagram-AJRCARHV-C6x45RWp.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DVzPjRPN.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-ChqD4j8I.js → timeline-definition-PNZ67QCA-CjnZWttQ.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-CSAZk0IW.js → vennDiagram-CIIHVFJN-DU5ZyYju.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-BUE6IF4q.js → wardleyDiagram-YWT4CUSO-CaCEnCB0.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-MOkC53m_.js → xychartDiagram-2RQKCTM6-Ce3xa37U.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +471 -39
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +1267 -213
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/agent.js +281 -76
  60. package/dist/server/lib/agent.js.map +1 -1
  61. package/dist/server/lib/agentRuns.js +205 -38
  62. package/dist/server/lib/agentRuns.js.map +1 -1
  63. package/dist/server/lib/automationProgression.js +464 -0
  64. package/dist/server/lib/automationProgression.js.map +1 -0
  65. package/dist/server/lib/automationReconciliation.js +498 -0
  66. package/dist/server/lib/automationReconciliation.js.map +1 -0
  67. package/dist/server/lib/automationStageDetails.js +232 -0
  68. package/dist/server/lib/automationStageDetails.js.map +1 -0
  69. package/dist/server/lib/buildOpenQuestionOperations.js +223 -0
  70. package/dist/server/lib/buildOpenQuestionOperations.js.map +1 -0
  71. package/dist/server/lib/buildOpenQuestions.js +52 -0
  72. package/dist/server/lib/buildOpenQuestions.js.map +1 -1
  73. package/dist/server/lib/buildSequences.js +130 -46
  74. package/dist/server/lib/buildSequences.js.map +1 -1
  75. package/dist/server/lib/bundleReviewOperations.js +82 -9
  76. package/dist/server/lib/bundleReviewOperations.js.map +1 -1
  77. package/dist/server/lib/chatOperations.js +31 -0
  78. package/dist/server/lib/chatOperations.js.map +1 -1
  79. package/dist/server/lib/executionReconciliation.js +518 -0
  80. package/dist/server/lib/executionReconciliation.js.map +1 -0
  81. package/dist/server/lib/executionRunRetention.js +141 -0
  82. package/dist/server/lib/executionRunRetention.js.map +1 -0
  83. package/dist/server/lib/executionRuns.js +1264 -0
  84. package/dist/server/lib/executionRuns.js.map +1 -0
  85. package/dist/server/lib/git.js +385 -6
  86. package/dist/server/lib/git.js.map +1 -1
  87. package/dist/server/lib/integrations/github.js +43 -0
  88. package/dist/server/lib/integrations/github.js.map +1 -1
  89. package/dist/server/lib/integrations/githubActions.js +1 -0
  90. package/dist/server/lib/integrations/githubActions.js.map +1 -1
  91. package/dist/server/lib/integrations/githubActionsSessions.js +337 -114
  92. package/dist/server/lib/integrations/githubActionsSessions.js.map +1 -1
  93. package/dist/server/lib/projectMemorySelections.js +7 -3
  94. package/dist/server/lib/projectMemorySelections.js.map +1 -1
  95. package/dist/server/lib/shutdown.js +2 -2
  96. package/dist/server/lib/shutdown.js.map +1 -1
  97. package/dist/server/lib/specArtifact.js +3 -0
  98. package/dist/server/lib/specArtifact.js.map +1 -1
  99. package/dist/server/lib/specFormatting.js +1 -1
  100. package/dist/server/lib/specFormatting.js.map +1 -1
  101. package/dist/server/lib/specOperations.js +31 -0
  102. package/dist/server/lib/specOperations.js.map +1 -1
  103. package/dist/server/lib/specReviewContext.js +44 -14
  104. package/dist/server/lib/specReviewContext.js.map +1 -1
  105. package/dist/server/lib/specReviewDraft.js +3 -2
  106. package/dist/server/lib/specReviewDraft.js.map +1 -1
  107. package/dist/server/lib/specReviewOperations.js +44 -7
  108. package/dist/server/lib/specReviewOperations.js.map +1 -1
  109. package/dist/server/lib/specReviewValidation.js +217 -0
  110. package/dist/server/lib/specReviewValidation.js.map +1 -0
  111. package/dist/server/lib/specReviews.js +30 -2
  112. package/dist/server/lib/specReviews.js.map +1 -1
  113. package/dist/server/lib/specs.js +18 -1
  114. package/dist/server/lib/specs.js.map +1 -1
  115. package/dist/server/lib/stageSnapshots.js +197 -0
  116. package/dist/server/lib/stageSnapshots.js.map +1 -0
  117. package/dist/server/lib/testSessions.js +164 -19
  118. package/dist/server/lib/testSessions.js.map +1 -1
  119. package/dist/server/lib/ticketAutomation.js +80 -4
  120. package/dist/server/lib/ticketAutomation.js.map +1 -1
  121. package/dist/server/lib/ticketAutomationCommit.js +466 -91
  122. package/dist/server/lib/ticketAutomationCommit.js.map +1 -1
  123. package/dist/server/lib/ticketFollowUpOperations.js +214 -20
  124. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  125. package/dist/server/lib/ticketOpenQuestions.js +30 -14
  126. package/dist/server/lib/ticketOpenQuestions.js.map +1 -1
  127. package/dist/server/lib/ticketRunOperations.js +75 -7
  128. package/dist/server/lib/ticketRunOperations.js.map +1 -1
  129. package/dist/server/lib/ticketUndo.js +77 -168
  130. package/dist/server/lib/ticketUndo.js.map +1 -1
  131. package/dist/server/lib/ticketWorkflowOperations.js +132 -28
  132. package/dist/server/lib/ticketWorkflowOperations.js.map +1 -1
  133. package/dist/server/lib/tickets.js +46 -29
  134. package/dist/server/lib/tickets.js.map +1 -1
  135. package/dist/server/lib/transcriptRuns.js +3 -3
  136. package/dist/server/lib/transcriptRuns.js.map +1 -1
  137. package/dist/server/lib/turnExecutionErrors.js +12 -0
  138. package/dist/server/lib/turnExecutionErrors.js.map +1 -0
  139. package/dist/server/lib/types.js +57 -1
  140. package/dist/server/lib/types.js.map +1 -1
  141. package/dist/server/workers/build.js +596 -184
  142. package/dist/server/workers/build.js.map +1 -1
  143. package/dist/server/workers/chat.js +261 -130
  144. package/dist/server/workers/chat.js.map +1 -1
  145. package/dist/server/workers/followUp.js +720 -195
  146. package/dist/server/workers/followUp.js.map +1 -1
  147. package/dist/server/workers/plan.js +527 -188
  148. package/dist/server/workers/plan.js.map +1 -1
  149. package/dist/server/workers/planFollowUp.js +231 -69
  150. package/dist/server/workers/planFollowUp.js.map +1 -1
  151. package/dist/server/workers/review.js +796 -239
  152. package/dist/server/workers/review.js.map +1 -1
  153. package/dist/server/workers/specReview.js +211 -45
  154. package/dist/server/workers/specReview.js.map +1 -1
  155. package/dist/server/workers/specSession.js +425 -252
  156. package/dist/server/workers/specSession.js.map +1 -1
  157. package/package.json +1 -1
  158. package/dist/client/assets/GitHubActionsDialog-BrUq-zO1.js +0 -1
  159. package/dist/client/assets/TestsDialog-D9N4GD77.js +0 -4
  160. package/dist/client/assets/TicketChangesModal-bYHJSO6d.js +0 -1
  161. package/dist/client/assets/channel-B4kCvLCt.js +0 -1
  162. package/dist/client/assets/classDiagram-4FO5ZUOK-C-eRRNNj.js +0 -1
  163. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B3vxoc73.js +0 -1
  164. package/dist/client/assets/index-9q1GXkUw.js +0 -270
  165. package/dist/client/assets/index-BxTc5qQT.css +0 -2
  166. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BkMKz90T.js +0 -1
@@ -1,26 +1,48 @@
1
1
  import db from '../db.js';
2
2
  import config from '../lib/config.js';
3
3
  import { formatAgentErrorForTranscript, getAgentErrorTranscriptRuns } from '../lib/agent.js';
4
- import { clearAndEmitAgentRunsForParent } from '../lib/agentRuns.js';
4
+ import { createAgentRun, emitAgentRunsUpdated, finalizeAgentRun, getAgentRun, terminalizeAgentRunsForExecutionRun } from '../lib/agentRuns.js';
5
+ import { withExecutionRunTransaction } from '../lib/executionRuns.js';
5
6
  import { getProjectMemoryPromptBlock } from '../lib/projectMemoryPrompt.js';
6
7
  import { prependSkillPromptBlock } from '../lib/promptSkills.js';
7
- import { clearTicketStreamingResponse, createTicketMessage, upsertTicketDescriptionMessage } from '../lib/ticketMessages.js';
8
+ import { createTicketMessage, upsertTicketDescriptionMessage } from '../lib/ticketMessages.js';
8
9
  import { enqueue, isRunning } from '../lib/queue.js';
9
10
  import { getEffectiveProject } from '../lib/projects.js';
10
11
  import { beginTicketThinkingRun, bindTicketThinkingMessage } from '../lib/thinkingState.js';
11
12
  import { getTicket, resolveTicketTool, resolveTicketWorkerKey } from '../lib/tickets.js';
12
- import { buildLinkedResearchContext, prepareLinkedPlanningResearch, runPlannerPrompt } from './plan.js';
13
+ import { buildLinkedResearchContext, prepareLinkedPlanningResearch, runPlannerPrompt, stopPlannerProcesses } from './plan.js';
13
14
  const PLAN_TICKET_UPDATE_TAG = 'archon-plan-ticket-update';
14
15
  const getErrorMessage = (error) => {
15
16
  return error instanceof Error ? error.message : String(error);
16
17
  };
17
- const updateStatus = (ticketId, status, log, io) => {
18
- db.prepare('UPDATE tickets SET agent_status = ?, agent_log = ?, streaming_response = NULL, updated_at = CURRENT_TIMESTAMP WHERE id = ?').run(status, log ?? null, ticketId);
18
+ const asGenericEmitter = (io) => io;
19
+ const activePlanFollowUps = new Map();
20
+ const emitTicketUpdate = (ticketId, io) => {
19
21
  const ticket = getTicket(ticketId);
20
22
  if (ticket) {
21
23
  io.emit('ticket:updated', ticket);
22
24
  }
23
25
  };
26
+ const createInvocation = (ticket, executionContext, io, label, role) => {
27
+ const id = createAgentRun({
28
+ executionRunId: executionContext.runId,
29
+ parentType: 'ticket',
30
+ parentId: ticket.id,
31
+ label,
32
+ role,
33
+ });
34
+ const run = getAgentRun(id);
35
+ if (!run) {
36
+ throw new Error(`Unable to create the ${label} agent run`);
37
+ }
38
+ emitAgentRunsUpdated(asGenericEmitter(io), 'ticket', ticket.id);
39
+ return {
40
+ id: run.id,
41
+ label: run.label,
42
+ role: run.role,
43
+ runIndex: run.run_index,
44
+ };
45
+ };
24
46
  const updateProgress = (ticketId, log, response, io) => {
25
47
  db.prepare('UPDATE tickets SET agent_status = ?, agent_log = ?, streaming_response = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?').run('running', log ?? null, response ?? null, ticketId);
26
48
  const ticket = getTicket(ticketId);
@@ -270,12 +292,29 @@ ${instruction}
270
292
  Planning follow-up response to convert:
271
293
  ${output}`;
272
294
  };
273
- const parsePlanningFollowUpResultWithRepair = async ({ ticket, instruction, output, tool, cwd, }) => {
295
+ const parsePlanningFollowUpResultWithRepair = async ({ ticket, instruction, output, tool, cwd, executionContext, cancellationState, io, }) => {
274
296
  try {
275
297
  return parsePlanningFollowUpResult(output);
276
298
  }
277
299
  catch (error) {
278
- const { output: repairOutput } = await runPlannerPrompt(tool, ticket.model, ticket.variant, buildPlanFollowUpRepairPrompt(ticket, instruction, output), cwd);
300
+ const repairRun = createInvocation(ticket, executionContext, io, 'Planning Follow-up Repair', 'repair');
301
+ let repairOutput;
302
+ try {
303
+ const result = await runPlannerPrompt(tool, ticket.model, ticket.variant, buildPlanFollowUpRepairPrompt(ticket, instruction, output), cwd, {
304
+ agentRunParent: { parentType: 'ticket', parentId: ticket.id, io },
305
+ executionContext,
306
+ cancellationState,
307
+ mainRun: repairRun,
308
+ });
309
+ repairOutput = result.output;
310
+ finalizeAgentRun(repairRun.id, 'done', repairOutput);
311
+ emitAgentRunsUpdated(asGenericEmitter(io), 'ticket', ticket.id);
312
+ }
313
+ catch (repairError) {
314
+ finalizeAgentRun(repairRun.id, cancellationState.stopRequested ? 'stopped' : 'error', null, getErrorMessage(repairError));
315
+ emitAgentRunsUpdated(asGenericEmitter(io), 'ticket', ticket.id);
316
+ throw repairError;
317
+ }
279
318
  try {
280
319
  const repaired = parsePlanningFollowUpResult(repairOutput);
281
320
  return repaired.response.trim()
@@ -290,45 +329,85 @@ const parsePlanningFollowUpResultWithRepair = async ({ ticket, instruction, outp
290
329
  }
291
330
  }
292
331
  };
293
- export const startPlanFollowUp = (ticket, io, instruction) => {
332
+ export const isPlanFollowUpRunning = (ticket) => {
294
333
  const jobKey = resolveTicketWorkerKey(ticket, 'plan_follow_up') ?? `plan_follow_up:${ticket.id}`;
295
- if (isRunning(jobKey)) {
296
- return false;
297
- }
298
- beginTicketThinkingRun(ticket.id);
299
- updateStatus(ticket.id, 'running', null, io);
300
- clearAndEmitAgentRunsForParent(io, 'ticket', ticket.id);
301
- enqueue(jobKey, async () => {
334
+ return isRunning(jobKey);
335
+ };
336
+ export const startPlanFollowUp = (ticket, io, instruction, options) => {
337
+ const jobKey = resolveTicketWorkerKey(ticket, 'plan_follow_up') ?? `plan_follow_up:${ticket.id}`;
338
+ const { executionContext } = options;
339
+ const cancellationState = { researchChildren: new Set(), stopRequested: false };
340
+ activePlanFollowUps.set(ticket.id, cancellationState);
341
+ const runQueuedFollowUp = async () => {
302
342
  let plannerTranscriptRuns = null;
303
343
  try {
344
+ withExecutionRunTransaction(transaction => {
345
+ const currentTicket = getTicket(ticket.id);
346
+ if (!currentTicket || currentTicket.project_id !== executionContext.projectId) {
347
+ throw new Error('Ticket no longer exists in the execution project');
348
+ }
349
+ beginTicketThinkingRun(ticket.id);
350
+ transaction.transitionExecutionRun({
351
+ projectId: executionContext.projectId,
352
+ runId: executionContext.runId,
353
+ status: 'running',
354
+ domainStatus: 'running',
355
+ eventType: 'plan_follow_up_started',
356
+ });
357
+ }, asGenericEmitter(io));
358
+ emitTicketUpdate(ticket.id, io);
359
+ if (cancellationState.stopRequested) {
360
+ throw new Error('Planning was stopped.');
361
+ }
304
362
  const project = getEffectiveProject(ticket);
305
- if (!project) {
306
- updateStatus(ticket.id, 'error', 'Ticket project no longer exists', io);
307
- return;
363
+ if (!project || project.id !== executionContext.projectId) {
364
+ throw new Error('Ticket project no longer exists');
308
365
  }
309
366
  const tool = resolveTicketTool(ticket, config.tool ?? 'opencode');
310
367
  const linkedResearch = await prepareLinkedPlanningResearch(buildPlanFollowUpResearchPrompt(ticket, instruction), {
368
+ tool,
311
369
  model: ticket.model,
312
370
  variant: ticket.variant,
313
371
  skills: ticket.skills ?? [],
314
372
  projectId: project.id,
373
+ executionContext,
374
+ cancellationState,
375
+ agentRunParent: { parentType: 'ticket', parentId: ticket.id, io },
315
376
  });
377
+ if (cancellationState.stopRequested) {
378
+ throw new Error('Planning was stopped.');
379
+ }
316
380
  const linkedResearchContext = buildLinkedResearchContext(project, linkedResearch);
317
- const { output: finalResponse, responseTiming, transcriptRuns } = await runPlannerPrompt(tool, ticket.model, ticket.variant, buildPlanFollowUpPrompt(ticket, instruction, linkedResearchContext), project.repo_path, {
318
- onProgress: progress => {
319
- updateProgress(ticket.id, progress.log, progress.response, io);
320
- },
321
- sessionTracking: {
322
- ticketId: ticket.id,
323
- io,
324
- resumeSessionId: ticket.planning_session_id,
325
- },
326
- agentRunParent: {
327
- parentType: 'ticket',
328
- parentId: ticket.id,
329
- io,
330
- },
331
- });
381
+ const primaryRun = createInvocation(ticket, executionContext, io, 'Planning Follow-up', 'planning');
382
+ let primaryResult;
383
+ try {
384
+ primaryResult = await runPlannerPrompt(tool, ticket.model, ticket.variant, buildPlanFollowUpPrompt(ticket, instruction, linkedResearchContext), project.repo_path, {
385
+ onProgress: progress => {
386
+ updateProgress(ticket.id, progress.log, progress.response, io);
387
+ },
388
+ sessionTracking: {
389
+ ticketId: ticket.id,
390
+ io,
391
+ resumeSessionId: ticket.planning_session_id,
392
+ },
393
+ agentRunParent: {
394
+ parentType: 'ticket',
395
+ parentId: ticket.id,
396
+ io,
397
+ },
398
+ executionContext,
399
+ cancellationState,
400
+ mainRun: primaryRun,
401
+ });
402
+ finalizeAgentRun(primaryRun.id, 'done', primaryResult.output);
403
+ emitAgentRunsUpdated(asGenericEmitter(io), 'ticket', ticket.id);
404
+ }
405
+ catch (primaryError) {
406
+ finalizeAgentRun(primaryRun.id, cancellationState.stopRequested ? 'stopped' : 'error', null, getErrorMessage(primaryError));
407
+ emitAgentRunsUpdated(asGenericEmitter(io), 'ticket', ticket.id);
408
+ throw primaryError;
409
+ }
410
+ const { output: finalResponse, responseTiming, transcriptRuns } = primaryResult;
332
411
  plannerTranscriptRuns = transcriptRuns;
333
412
  if (typeof finalResponse !== 'string' || !finalResponse.trim()) {
334
413
  throw new Error('Planning follow-up did not return a response.');
@@ -339,61 +418,144 @@ export const startPlanFollowUp = (ticket, io, instruction) => {
339
418
  output: finalResponse,
340
419
  tool,
341
420
  cwd: project.repo_path,
421
+ executionContext,
422
+ cancellationState,
423
+ io,
342
424
  });
425
+ if (cancellationState.stopRequested) {
426
+ throw new Error('Planning was stopped.');
427
+ }
343
428
  const nextPlanningContext = {
344
429
  source_kind: ticket.planning_context?.source_kind ?? 'single',
345
430
  initiative_prompt: ticket.planning_context?.initiative_prompt?.trim() || ticket.description || ticket.title,
346
431
  related_ticket_ids: ticket.planning_context?.related_ticket_ids ?? [ticket.id],
347
432
  open_questions: parsed.openQuestions,
348
433
  };
349
- db.prepare('UPDATE tickets SET title = ?, description = ?, agent_status = ?, streaming_response = NULL, planning_context_json = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?').run(parsed.title, parsed.description, 'done', JSON.stringify(nextPlanningContext), ticket.id);
350
- upsertTicketDescriptionMessage(ticket.id, parsed.description);
351
434
  const assistantMessage = formatPlanningFollowUpAssistantMessage({
352
435
  response: parsed.response,
353
436
  openQuestions: parsed.openQuestions,
354
- }) || (transcriptRuns?.length ? parsed.description : '');
355
- let assistantMessageId = null;
356
- if (assistantMessage) {
357
- assistantMessageId = createTicketMessage({
358
- ticketId: ticket.id,
359
- role: 'assistant',
360
- kind: 'planning_response',
361
- content: assistantMessage,
362
- responseTiming,
363
- transcriptRuns,
364
- });
365
- if (assistantMessageId) {
437
+ }) || parsed.description;
438
+ withExecutionRunTransaction(transaction => {
439
+ const updated = db.prepare('UPDATE tickets SET title = ?, description = ?, agent_status = ?, agent_log = NULL, streaming_response = NULL, planning_context_json = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND project_id = ?').run(parsed.title, parsed.description, 'done', JSON.stringify(nextPlanningContext), ticket.id, executionContext.projectId);
440
+ if (updated.changes !== 1) {
441
+ throw new Error('Ticket no longer exists in the execution project');
442
+ }
443
+ upsertTicketDescriptionMessage(ticket.id, parsed.description);
444
+ if (assistantMessage) {
445
+ const assistantMessageId = createTicketMessage({
446
+ ticketId: ticket.id,
447
+ role: 'assistant',
448
+ kind: 'planning_response',
449
+ content: assistantMessage,
450
+ responseTiming,
451
+ transcriptRuns,
452
+ });
366
453
  bindTicketThinkingMessage(ticket.id, assistantMessageId);
454
+ transaction.addExecutionRunLink({
455
+ projectId: executionContext.projectId,
456
+ runId: executionContext.runId,
457
+ link: {
458
+ entityType: 'ticket_message',
459
+ entityId: assistantMessageId,
460
+ relationship: 'result',
461
+ expectedParent: { entityType: 'ticket', entityId: ticket.id },
462
+ },
463
+ });
367
464
  }
368
- }
369
- if (transcriptRuns && assistantMessageId) {
370
- clearAndEmitAgentRunsForParent(io, 'ticket', ticket.id);
371
- }
372
- clearTicketStreamingResponse(ticket.id);
373
- const updated = getTicket(ticket.id);
374
- if (updated) {
375
- io.emit('ticket:updated', updated);
376
- }
465
+ terminalizeAgentRunsForExecutionRun(executionContext.runId, 'done');
466
+ transaction.transitionExecutionRun({
467
+ projectId: executionContext.projectId,
468
+ runId: executionContext.runId,
469
+ status: 'completed',
470
+ domainStatus: 'done',
471
+ eventType: 'plan_follow_up_completed',
472
+ });
473
+ }, asGenericEmitter(io));
474
+ emitAgentRunsUpdated(asGenericEmitter(io), 'ticket', ticket.id);
475
+ emitTicketUpdate(ticket.id, io);
377
476
  }
378
477
  catch (error) {
379
478
  const transcriptRuns = getAgentErrorTranscriptRuns(error) ?? plannerTranscriptRuns;
380
- const errorContent = formatAgentErrorForTranscript(error);
381
- let errorMessageId = null;
382
- if (errorContent) {
383
- errorMessageId = createTicketMessage({
384
- ticketId: ticket.id,
385
- role: 'assistant',
386
- kind: 'error',
387
- content: errorContent,
388
- transcriptRuns,
479
+ const cancelled = cancellationState.stopRequested;
480
+ const message = cancelled ? 'Planning was stopped.' : getErrorMessage(error);
481
+ const errorContent = cancelled ? message : formatAgentErrorForTranscript(error);
482
+ withExecutionRunTransaction(transaction => {
483
+ const currentTicket = getTicket(ticket.id);
484
+ if (currentTicket && currentTicket.project_id === executionContext.projectId) {
485
+ if (errorContent) {
486
+ const errorMessageId = createTicketMessage({
487
+ ticketId: ticket.id,
488
+ role: 'assistant',
489
+ kind: 'error',
490
+ content: errorContent,
491
+ transcriptRuns,
492
+ });
493
+ bindTicketThinkingMessage(ticket.id, errorMessageId);
494
+ transaction.addExecutionRunLink({
495
+ projectId: executionContext.projectId,
496
+ runId: executionContext.runId,
497
+ link: {
498
+ entityType: 'ticket_message',
499
+ entityId: errorMessageId,
500
+ relationship: 'result',
501
+ expectedParent: { entityType: 'ticket', entityId: ticket.id },
502
+ },
503
+ });
504
+ }
505
+ db.prepare('UPDATE tickets SET agent_status = ?, agent_log = ?, streaming_response = NULL, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND project_id = ?').run(cancelled ? 'stopped' : 'error', cancelled ? null : message, ticket.id, executionContext.projectId);
506
+ }
507
+ terminalizeAgentRunsForExecutionRun(executionContext.runId, cancelled ? 'stopped' : 'error', cancelled ? null : message);
508
+ transaction.transitionExecutionRun({
509
+ projectId: executionContext.projectId,
510
+ runId: executionContext.runId,
511
+ status: cancelled ? 'cancelled' : 'failed',
512
+ domainStatus: cancelled ? 'stopped' : 'error',
513
+ ...(cancelled ? {} : { failure: { code: 'plan_follow_up_failed', message } }),
514
+ eventType: cancelled ? 'plan_follow_up_cancelled' : 'plan_follow_up_failed',
389
515
  });
516
+ }, asGenericEmitter(io));
517
+ emitAgentRunsUpdated(asGenericEmitter(io), 'ticket', ticket.id);
518
+ emitTicketUpdate(ticket.id, io);
519
+ }
520
+ finally {
521
+ if (activePlanFollowUps.get(ticket.id) === cancellationState) {
522
+ activePlanFollowUps.delete(ticket.id);
390
523
  }
391
- if (transcriptRuns && errorMessageId) {
392
- clearAndEmitAgentRunsForParent(io, 'ticket', ticket.id);
393
- }
394
- updateStatus(ticket.id, 'error', getErrorMessage(error), io);
395
524
  }
525
+ };
526
+ let queuedJob;
527
+ try {
528
+ queuedJob = enqueue(jobKey, runQueuedFollowUp);
529
+ }
530
+ catch (error) {
531
+ activePlanFollowUps.delete(ticket.id);
532
+ const message = getErrorMessage(error);
533
+ withExecutionRunTransaction(transaction => {
534
+ options.compensate();
535
+ transaction.transitionExecutionRun({
536
+ projectId: executionContext.projectId,
537
+ runId: executionContext.runId,
538
+ status: 'failed',
539
+ domainStatus: options.compensationDomainStatus,
540
+ failure: { code: 'queue_failed', message },
541
+ eventType: 'plan_follow_up_failed',
542
+ });
543
+ }, asGenericEmitter(io));
544
+ emitTicketUpdate(ticket.id, io);
545
+ return { accepted: false, reason: 'queue_failed', error: message };
546
+ }
547
+ queuedJob.catch(() => {
548
+ // The queued callback owns domain and execution failure finalization.
396
549
  });
550
+ return { accepted: true, executionContext };
551
+ };
552
+ export const stopPlanFollowUp = async (ticketId) => {
553
+ const state = activePlanFollowUps.get(ticketId);
554
+ if (!state) {
555
+ return false;
556
+ }
557
+ state.stopRequested = true;
558
+ await stopPlannerProcesses([...state.researchChildren]);
397
559
  return true;
398
560
  };
399
561
  //# sourceMappingURL=planFollowUp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"planFollowUp.js","sourceRoot":"","sources":["../../../server/workers/planFollowUp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planFollowUp.js","sourceRoot":"","sources":["../../../server/workers/planFollowUp.ts"],"names":[],"mappings":"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"}