@straiffi/archon 1.10.6 → 1.10.8

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 (119) hide show
  1. package/dist/client/assets/{ActivityView-EQbZjreP.js → ActivityView-PGEex8sS.js} +1 -1
  2. package/dist/client/assets/{GitHubActionsDialog-DlONJ-6l.js → GitHubActionsDialog-CwsZRevc.js} +1 -1
  3. package/dist/client/assets/{VerificationDialog-a4KPppdP.js → VerificationDialog-BYE1M9T2.js} +1 -1
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-D7IB5QbF.js → architectureDiagram-3BPJPVTR-CzUKSWJZ.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-DfWXUu6y.js → blockDiagram-GPEHLZMM-DoNm6BnS.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-CAo31MBK.js → c4Diagram-AAUBKEIU-C7ocs3wQ.js} +1 -1
  7. package/dist/client/assets/channel-b-KoJfeL.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-C2ZbJiik.js → chunk-2J33WTMH-DUmaxCq8.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-BLfx67Ir.js → chunk-3OPIFGDE-CX2MPsMQ.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-e-N8eBzh.js → chunk-5ZQYHXKU-B103kU_y.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-Bcp0lg-d.js → chunk-727SXJPM-BmLJ4h5X.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-CJijNnYS.js → chunk-AQP2D5EJ-Cnv1b4Vd.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-y9chz29t.js → chunk-CSCIHK7Q-CkIUhpY9.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-BL12xIBh.js → chunk-KSCS5N6A-wmkCuZ5U.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-DYJkoupG.js → chunk-L5ZTLDWV-D9AdL5mv.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-D0f1Odku.js → chunk-LZXEDZCA-rMyTvR3J.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-BDiiZgkw.js → chunk-ND2GUHAM-19HTozu8.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-CkO3ZEgC.js → chunk-NZK2D7GU-DBHgwKcS.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-BGdG0bCA.js → chunk-O5CBEL6O-4WpSG06s.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-a-Oeg3IA.js → chunk-WU5MYG2G-loqCl7ki.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-2c5Acffy.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-ClrW9LEB.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-DYZJIj78.js → dagre-BM42HDAG-FVpIr0qZ.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-BTtdv_jj.js → diagram-2AECGRRQ-Dgj8FaDO.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-CfhPZuDM.js → diagram-5GNKFQAL-DNpYKz_a.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-1OTRSbKV.js → diagram-KO2AKTUF-N7R7efvN.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-Ctdrqp6I.js → diagram-LMA3HP47-hoOvd_tG.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-7QkN1Gup.js → diagram-OG6HWLK6-ze25ZIy6.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-BA0A1Rr_.js → erDiagram-TEJ5UH35-780zvNNZ.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-RlkKsIpA.js → flowDiagram-I6XJVG4X-x4UB_M_4.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-BGmWyQ15.js → ganttDiagram-6RSMTGT7-B5Wl0y91.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Dy9gzWwU.js → gitGraphDiagram-PVQCEYII-CZtVHpBH.js} +1 -1
  33. package/dist/client/assets/{index-Bg3l17L3.css → index-BXsDja_y.css} +1 -1
  34. package/dist/client/assets/index-Cy3ZoenG.js +276 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-CLkeQPeW.js → infoDiagram-5YYISTIA-BOzLwsnA.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BIy5u_89.js → ishikawaDiagram-YF4QCWOH-ButBhNg6.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-NS3DxUBY.js → journeyDiagram-JHISSGLW-CO0Db0Gn.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-Dm_eLuwJ.js → kanban-definition-UN3LZRKU-B6KT8yln.js} +1 -1
  39. package/dist/client/assets/{line-DiJnnWqV.js → line-Cv-WaOjt.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-BcNLuGFl.js → mermaid-parser.core-DgJy4Qlx.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-DGuF21ST.js → mermaid.core-YpvipwZo.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-oUg0D1iT.js → mindmap-definition-RKZ34NQL-DGgtT98Y.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-BYnQ_fl7.js → pieDiagram-4H26LBE5-CgqnLewO.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BKIAdqy4.js → quadrantDiagram-W4KKPZXB-Ci_0SzdR.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-BLREScQB.js → requirementDiagram-4Y6WPE33-wJl0DP74.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-CuDNtltW.js → sankeyDiagram-5OEKKPKP-CE7aDnzF.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CbHZhuGB.js → sequenceDiagram-3UESZ5HK-CW0bF1i6.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-JPhRLHN8.js → stateDiagram-AJRCARHV-Ccl0RXsJ.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-k65NSsdn.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-BioqlSgj.js → timeline-definition-PNZ67QCA-TuF6SUnb.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-C7X0v96g.js → vennDiagram-CIIHVFJN-D8OvSROI.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-D27ABRoS.js → wardleyDiagram-YWT4CUSO-DXW3R5NJ.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-BZ11T0Am.js → xychartDiagram-2RQKCTM6-qdiUQDW9.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +12 -2
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +97 -4
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/agent.js +35 -6
  60. package/dist/server/lib/agent.js.map +1 -1
  61. package/dist/server/lib/agentRuns.js +15 -0
  62. package/dist/server/lib/agentRuns.js.map +1 -1
  63. package/dist/server/lib/automationDeliveryDecision.js +34 -0
  64. package/dist/server/lib/automationDeliveryDecision.js.map +1 -0
  65. package/dist/server/lib/automationProgression.js +5 -2
  66. package/dist/server/lib/automationProgression.js.map +1 -1
  67. package/dist/server/lib/buildExecutionEnvironment.js +36 -16
  68. package/dist/server/lib/buildExecutionEnvironment.js.map +1 -1
  69. package/dist/server/lib/chatOperations.js +172 -4
  70. package/dist/server/lib/chatOperations.js.map +1 -1
  71. package/dist/server/lib/chats.js +22 -2
  72. package/dist/server/lib/chats.js.map +1 -1
  73. package/dist/server/lib/conversationResume.js +152 -0
  74. package/dist/server/lib/conversationResume.js.map +1 -0
  75. package/dist/server/lib/executionProfileStore.js +50 -25
  76. package/dist/server/lib/executionProfileStore.js.map +1 -1
  77. package/dist/server/lib/executionRetryContext.js +14 -7
  78. package/dist/server/lib/executionRetryContext.js.map +1 -1
  79. package/dist/server/lib/executionRunAuthority.js +17 -2
  80. package/dist/server/lib/executionRunAuthority.js.map +1 -1
  81. package/dist/server/lib/mobileAccess.js +18 -2
  82. package/dist/server/lib/mobileAccess.js.map +1 -1
  83. package/dist/server/lib/reviewRepairCompletion.js +9 -1
  84. package/dist/server/lib/reviewRepairCompletion.js.map +1 -1
  85. package/dist/server/lib/reviewRepairReconciliation.js +8 -13
  86. package/dist/server/lib/reviewRepairReconciliation.js.map +1 -1
  87. package/dist/server/lib/run.js +5 -2
  88. package/dist/server/lib/run.js.map +1 -1
  89. package/dist/server/lib/serviceRuns.js +7 -2
  90. package/dist/server/lib/serviceRuns.js.map +1 -1
  91. package/dist/server/lib/specOperations.js +135 -2
  92. package/dist/server/lib/specOperations.js.map +1 -1
  93. package/dist/server/lib/specs.js +36 -8
  94. package/dist/server/lib/specs.js.map +1 -1
  95. package/dist/server/lib/ticketAutomation.js +27 -4
  96. package/dist/server/lib/ticketAutomation.js.map +1 -1
  97. package/dist/server/lib/ticketFollowUpOperations.js +10 -12
  98. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  99. package/dist/server/lib/ticketRunOperations.js +4 -1
  100. package/dist/server/lib/ticketRunOperations.js.map +1 -1
  101. package/dist/server/lib/tickets.js +26 -12
  102. package/dist/server/lib/tickets.js.map +1 -1
  103. package/dist/server/lib/types.js.map +1 -1
  104. package/dist/server/workers/build.js +12 -2
  105. package/dist/server/workers/build.js.map +1 -1
  106. package/dist/server/workers/chat.js +102 -42
  107. package/dist/server/workers/chat.js.map +1 -1
  108. package/dist/server/workers/followUp.js +12 -9
  109. package/dist/server/workers/followUp.js.map +1 -1
  110. package/dist/server/workers/review.js +14 -26
  111. package/dist/server/workers/review.js.map +1 -1
  112. package/dist/server/workers/specSession.js +199 -92
  113. package/dist/server/workers/specSession.js.map +1 -1
  114. package/package.json +1 -1
  115. package/dist/client/assets/channel-DbDILHn3.js +0 -1
  116. package/dist/client/assets/classDiagram-4FO5ZUOK-CVo_DBM0.js +0 -1
  117. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BoXvWENC.js +0 -1
  118. package/dist/client/assets/index-CD4AkpYf.js +0 -276
  119. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D0zGBvag.js +0 -1
@@ -367,7 +367,9 @@ const updateChatSessionId = (chatSessionId, tool, sessionId, io) => {
367
367
  };
368
368
  const updateSpecSessionStatusLocal = (specSessionId, status, log, io, streamingResponse = null) => {
369
369
  updateSpecSessionStatus(specSessionId, status, log, streamingResponse);
370
- const specSession = getSpecSession(specSessionId, { includeMessages: true });
370
+ const specSession = getSpecSession(specSessionId, status === 'running'
371
+ ? { skipTargetResolution: true }
372
+ : { includeMessages: true });
371
373
  if (specSession) {
372
374
  io.emit('spec-session:updated', specSession);
373
375
  }
@@ -2556,6 +2558,9 @@ const runChatAgentOnce = ({ chatSessionId, tool, prompt, files = [], cwd, io, mo
2556
2558
  subagentTracker.setMainSessionId(sessionId);
2557
2559
  }
2558
2560
  if (tool === 'opencode') {
2561
+ if (resumeSessionId) {
2562
+ subagentTracker.setMainSessionId(resumeSessionId);
2563
+ }
2559
2564
  spawnTimestamp = Date.now();
2560
2565
  opencodeMetadataRefresher = createOpencodeMetadataRefresher({
2561
2566
  chatSessionId,
@@ -2958,6 +2963,7 @@ const runSpecAgentOnce = ({ specSessionId, tool, prompt, files = [], cwd, io, mo
2958
2963
  let startTime = null;
2959
2964
  let firstFinalAnswerTime = null;
2960
2965
  let usageSnapshot = EMPTY_CHAT_USAGE_SNAPSHOT;
2966
+ let executionCapableEventObserved = false;
2961
2967
  const specState = activeSpecProcesses.get(specSessionId) ?? registerSpecProcessPlaceholder(specSessionId);
2962
2968
  const settle = (handler) => (value) => {
2963
2969
  if (settled) {
@@ -2997,6 +3003,9 @@ const runSpecAgentOnce = ({ specSessionId, tool, prompt, files = [], cwd, io, mo
2997
3003
  subagentTracker.setMainSessionId(sessionId);
2998
3004
  }
2999
3005
  if (tool === 'opencode') {
3006
+ if (resumeSessionId) {
3007
+ subagentTracker.setMainSessionId(resumeSessionId);
3008
+ }
3000
3009
  spawnTimestamp = Date.now();
3001
3010
  opencodeMetadataRefresher = createSpecOpencodeMetadataRefresher({
3002
3011
  specSessionId,
@@ -3079,7 +3088,11 @@ const runSpecAgentOnce = ({ specSessionId, tool, prompt, files = [], cwd, io, mo
3079
3088
  const lines = text.split('\n');
3080
3089
  remainder = lines.pop() ?? '';
3081
3090
  for (const line of lines) {
3082
- const { logFragment, responseFragment, subagentEvents } = parseClaudeStreamJsonLine(line);
3091
+ const parsed = parseClaudeStreamJsonLine(line);
3092
+ const { logFragment, responseFragment, subagentEvents } = parsed;
3093
+ if (isExecutionCapableParsedStreamLine(parsed)) {
3094
+ executionCapableEventObserved = true;
3095
+ }
3083
3096
  subagentTracker.handle(subagentEvents);
3084
3097
  usageSnapshot = mergeUsageFromJsonLine(usageSnapshot, line);
3085
3098
  if (logFragment !== null) {
@@ -3103,7 +3116,11 @@ const runSpecAgentOnce = ({ specSessionId, tool, prompt, files = [], cwd, io, mo
3103
3116
  }
3104
3117
  if (remainder.trim()) {
3105
3118
  usageSnapshot = mergeUsageFromJsonLine(usageSnapshot, remainder);
3106
- const { logFragment, responseFragment, subagentEvents } = parseClaudeStreamJsonLine(remainder);
3119
+ const parsed = parseClaudeStreamJsonLine(remainder);
3120
+ const { logFragment, responseFragment, subagentEvents } = parsed;
3121
+ if (isExecutionCapableParsedStreamLine(parsed)) {
3122
+ executionCapableEventObserved = true;
3123
+ }
3107
3124
  subagentTracker.handle(subagentEvents);
3108
3125
  if (logFragment !== null) {
3109
3126
  logLines.push(logFragment);
@@ -3148,9 +3165,13 @@ const runSpecAgentOnce = ({ specSessionId, tool, prompt, files = [], cwd, io, mo
3148
3165
  }, transcriptRuns));
3149
3166
  return;
3150
3167
  }
3168
+ const failureMessage = `Agent exited with code ${code ?? 'null'}\n${finalLog}${errOutput !== finalLog && errOutput ? '\n\n' + errOutput : ''}`;
3169
+ const error = resumeSessionId && !executionCapableEventObserved && isTypedPreExecutionContinuationRejection(failureMessage)
3170
+ ? new AgentContinuationRejectedError(failureMessage)
3171
+ : new Error(failureMessage);
3151
3172
  updateSpecSessionStatusLocal(specSessionId, 'error', finalLog + (errOutput ? '\n\n' + errOutput : ''), io, finalResponse);
3152
3173
  const transcriptRuns = subagentTracker.finalize('error', finalLog, finalResponse);
3153
- rejectOnce(attachTranscriptRunsToError(new Error(`Agent exited with code ${code ?? 'null'}\n${finalLog}${errOutput !== finalLog && errOutput ? '\n\n' + errOutput : ''}`), transcriptRuns));
3174
+ rejectOnce(attachTranscriptRunsToError(error, transcriptRuns));
3154
3175
  });
3155
3176
  child.on('error', err => {
3156
3177
  progressUpdater.cancel();
@@ -3212,6 +3233,9 @@ const runSpecAgentOnce = ({ specSessionId, tool, prompt, files = [], cwd, io, mo
3212
3233
  }
3213
3234
  const parsed = parseOpencodeJsonLine(line, cwd);
3214
3235
  const { logFragment, responseFragment, subagentEvents, providerSessionId } = parsed;
3236
+ if (isExecutionCapableParsedStreamLine(parsed)) {
3237
+ executionCapableEventObserved = true;
3238
+ }
3215
3239
  opencodeSubagentMonitor?.setParentSessionId(providerSessionId);
3216
3240
  subagentTracker.handle(subagentEvents);
3217
3241
  if (appendOpencodeTranscriptLine({ parsed, logLines, responseLines, recoveryTracker })) {
@@ -3238,6 +3262,9 @@ const runSpecAgentOnce = ({ specSessionId, tool, prompt, files = [], cwd, io, mo
3238
3262
  usageSnapshot = mergeUsageFromJsonLine(usageSnapshot, remainder);
3239
3263
  const parsed = parseOpencodeJsonLine(remainder, cwd);
3240
3264
  const { subagentEvents, providerSessionId } = parsed;
3265
+ if (isExecutionCapableParsedStreamLine(parsed)) {
3266
+ executionCapableEventObserved = true;
3267
+ }
3241
3268
  opencodeSubagentMonitor?.setParentSessionId(providerSessionId);
3242
3269
  subagentTracker.handle(subagentEvents);
3243
3270
  if (appendOpencodeTranscriptLine({ parsed, logLines, responseLines, recoveryTracker })) {
@@ -3306,8 +3333,10 @@ const runSpecAgentOnce = ({ specSessionId, tool, prompt, files = [], cwd, io, mo
3306
3333
  return;
3307
3334
  }
3308
3335
  const failureMessage = `Agent exited with code ${code ?? 'null'}\n${log}${stderrOutput !== log && stderrOutput ? '\n\n' + stderrOutput : ''}`;
3309
- const error = createOpencodeExitError(failureMessage, stderrModelError, recoveryTracker);
3310
- const retryableError = logLines.length === 0 && responseLines.length === 0
3336
+ const error = resumeSessionId && !executionCapableEventObserved && isTypedPreExecutionContinuationRejection(failureMessage)
3337
+ ? new AgentContinuationRejectedError(failureMessage)
3338
+ : createOpencodeExitError(failureMessage, stderrModelError, recoveryTracker);
3339
+ const retryableError = !executionCapableEventObserved
3311
3340
  ? markRetryableOpenCodeDatabaseLock(error)
3312
3341
  : error;
3313
3342
  if (retryableError instanceof RetryableOpenCodeDatabaseLockError) {