@straiffi/archon 1.7.2 → 1.7.4

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 (176) hide show
  1. package/dist/client/assets/ActivityView-BgMz3NNT.js +1 -0
  2. package/dist/client/assets/GitHubActionsDialog-CNqWDS3E.js +1 -0
  3. package/dist/client/assets/TestsDialog-Cll7xJe0.js +4 -0
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-Do9nbC8v.js → architectureDiagram-3BPJPVTR-BL5dYiul.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-DGGOLHF8.js → blockDiagram-GPEHLZMM-Bi5x2v80.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-Bz7tQybs.js → c4Diagram-AAUBKEIU-esEm54Ay.js} +1 -1
  7. package/dist/client/assets/channel-CqNHF3FD.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-CJO-GmWJ.js → chunk-2J33WTMH-DACfY8xM.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-DPAVagpC.js → chunk-3OPIFGDE-DZNUiaUs.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-Cof75Mu7.js → chunk-5ZQYHXKU-ClDfkMAp.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-COuPqQ8_.js → chunk-727SXJPM-CCwA3GWT.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-CFj5KabW.js → chunk-AQP2D5EJ-Byl4DRZ9.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-C4M6w5cT.js → chunk-CSCIHK7Q-CXymZQ7A.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-ByaiwVue.js → chunk-KSCS5N6A-VV3D8g6a.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-Cx5jeot9.js → chunk-L5ZTLDWV-BL9N5GRI.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-DmGtztud.js → chunk-LZXEDZCA-DKNN-zno.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-i3yuspqL.js → chunk-ND2GUHAM-CHCpQ1yr.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-CQ4E_jP4.js → chunk-NZK2D7GU-B0Dm74mt.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-D2g4VDCd.js → chunk-O5CBEL6O-DAa5z2xG.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-exIu-zQ2.js → chunk-WU5MYG2G-DrVJWKVR.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-BjEgQwKg.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-gGomH-F_.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-DvF75yLZ.js → dagre-BM42HDAG-B0fsl8mE.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-DFv0HxLL.js → diagram-2AECGRRQ-Cx_VEbSS.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-C_LRir0-.js → diagram-5GNKFQAL-Cv7VVn5r.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-DGZxRDRy.js → diagram-KO2AKTUF-C8Sl5czV.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-UXt0uti4.js → diagram-LMA3HP47-C3dZaLz2.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-CFbZS4n5.js → diagram-OG6HWLK6-BAU9DtTr.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-CfAwZDdf.js → erDiagram-TEJ5UH35-DpNc-eBD.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-Cdgi5z3n.js → flowDiagram-I6XJVG4X-DGwTAT1S.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-DOrkFkhu.js → ganttDiagram-6RSMTGT7-MPZhEgzJ.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-cEox0peD.js → gitGraphDiagram-PVQCEYII-CY0tHL5N.js} +1 -1
  33. package/dist/client/assets/index-CJRgmWwY.js +273 -0
  34. package/dist/client/assets/index-mRkJWu70.css +2 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-gm51u2Nn.js → infoDiagram-5YYISTIA-BBZeKjf4.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CjnoOIja.js → ishikawaDiagram-YF4QCWOH-CM_iFrES.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-Dlg4DsiO.js → journeyDiagram-JHISSGLW-Do_lY94X.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-BU0XZaSd.js → kanban-definition-UN3LZRKU-brxg3j37.js} +1 -1
  39. package/dist/client/assets/{line-Bert22-_.js → line-PHHbm9rj.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-BvQSGDmL.js → mermaid-parser.core-CLxAkW69.js} +1 -1
  41. package/dist/client/assets/{mermaid.core--qSAHJRj.js → mermaid.core-CebvSmx9.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BgFIvWWD.js → mindmap-definition-RKZ34NQL-CX_-ZaJF.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-DGcbXD0M.js → pieDiagram-4H26LBE5-BJuHvql_.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-ClkBUeia.js → quadrantDiagram-W4KKPZXB-DiJll7l9.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-B8CwGToU.js → requirementDiagram-4Y6WPE33-Bg-tXgcj.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DTk3jL6B.js → sankeyDiagram-5OEKKPKP-BoK2egfZ.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BQVrcnKf.js → sequenceDiagram-3UESZ5HK-DcrDWNzv.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-DD4yMZPB.js → stateDiagram-AJRCARHV-B995qt1S.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Dn8P7Sa1.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-BnCBVqcd.js → timeline-definition-PNZ67QCA-DqSVAhqL.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-BDmLMNXS.js → vennDiagram-CIIHVFJN-D9wVraVY.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DSLuQiEv.js → wardleyDiagram-YWT4CUSO-CLff9zVd.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-DAq_LA4r.js → xychartDiagram-2RQKCTM6-BuHUMMH2.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +472 -39
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +1311 -212
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/agent.js +228 -71
  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/attachments.js +24 -0
  64. package/dist/server/lib/attachments.js.map +1 -1
  65. package/dist/server/lib/automationProgression.js +464 -0
  66. package/dist/server/lib/automationProgression.js.map +1 -0
  67. package/dist/server/lib/automationReconciliation.js +498 -0
  68. package/dist/server/lib/automationReconciliation.js.map +1 -0
  69. package/dist/server/lib/automationStageDetails.js +232 -0
  70. package/dist/server/lib/automationStageDetails.js.map +1 -0
  71. package/dist/server/lib/buildOpenQuestionOperations.js +238 -0
  72. package/dist/server/lib/buildOpenQuestionOperations.js.map +1 -0
  73. package/dist/server/lib/buildOpenQuestions.js +44 -0
  74. package/dist/server/lib/buildOpenQuestions.js.map +1 -1
  75. package/dist/server/lib/buildSequences.js +130 -46
  76. package/dist/server/lib/buildSequences.js.map +1 -1
  77. package/dist/server/lib/bundleReviewOperations.js +91 -9
  78. package/dist/server/lib/bundleReviewOperations.js.map +1 -1
  79. package/dist/server/lib/chatOperations.js +67 -12
  80. package/dist/server/lib/chatOperations.js.map +1 -1
  81. package/dist/server/lib/executionReconciliation.js +518 -0
  82. package/dist/server/lib/executionReconciliation.js.map +1 -0
  83. package/dist/server/lib/executionRetry.js +694 -0
  84. package/dist/server/lib/executionRetry.js.map +1 -0
  85. package/dist/server/lib/executionRetryContext.js +489 -0
  86. package/dist/server/lib/executionRetryContext.js.map +1 -0
  87. package/dist/server/lib/executionRetryPredicates.js +74 -0
  88. package/dist/server/lib/executionRetryPredicates.js.map +1 -0
  89. package/dist/server/lib/executionRunRetention.js +141 -0
  90. package/dist/server/lib/executionRunRetention.js.map +1 -0
  91. package/dist/server/lib/executionRuns.js +1367 -0
  92. package/dist/server/lib/executionRuns.js.map +1 -0
  93. package/dist/server/lib/executionTimeline.js +45 -0
  94. package/dist/server/lib/executionTimeline.js.map +1 -0
  95. package/dist/server/lib/git.js +385 -6
  96. package/dist/server/lib/git.js.map +1 -1
  97. package/dist/server/lib/integrations/github.js +43 -0
  98. package/dist/server/lib/integrations/github.js.map +1 -1
  99. package/dist/server/lib/integrations/githubActions.js +1 -0
  100. package/dist/server/lib/integrations/githubActions.js.map +1 -1
  101. package/dist/server/lib/integrations/githubActionsSessions.js +337 -114
  102. package/dist/server/lib/integrations/githubActionsSessions.js.map +1 -1
  103. package/dist/server/lib/projectMemorySelections.js +7 -3
  104. package/dist/server/lib/projectMemorySelections.js.map +1 -1
  105. package/dist/server/lib/shutdown.js +2 -2
  106. package/dist/server/lib/shutdown.js.map +1 -1
  107. package/dist/server/lib/specArtifact.js +3 -0
  108. package/dist/server/lib/specArtifact.js.map +1 -1
  109. package/dist/server/lib/specFormatting.js +1 -1
  110. package/dist/server/lib/specFormatting.js.map +1 -1
  111. package/dist/server/lib/specOperations.js +78 -12
  112. package/dist/server/lib/specOperations.js.map +1 -1
  113. package/dist/server/lib/specReviewContext.js +54 -18
  114. package/dist/server/lib/specReviewContext.js.map +1 -1
  115. package/dist/server/lib/specReviewDraft.js +3 -2
  116. package/dist/server/lib/specReviewDraft.js.map +1 -1
  117. package/dist/server/lib/specReviewOperations.js +74 -9
  118. package/dist/server/lib/specReviewOperations.js.map +1 -1
  119. package/dist/server/lib/specReviewValidation.js +217 -0
  120. package/dist/server/lib/specReviewValidation.js.map +1 -0
  121. package/dist/server/lib/specReviews.js +30 -2
  122. package/dist/server/lib/specReviews.js.map +1 -1
  123. package/dist/server/lib/specs.js +18 -1
  124. package/dist/server/lib/specs.js.map +1 -1
  125. package/dist/server/lib/stageSnapshots.js +197 -0
  126. package/dist/server/lib/stageSnapshots.js.map +1 -0
  127. package/dist/server/lib/testSessions.js +160 -18
  128. package/dist/server/lib/testSessions.js.map +1 -1
  129. package/dist/server/lib/ticketAutomation.js +80 -4
  130. package/dist/server/lib/ticketAutomation.js.map +1 -1
  131. package/dist/server/lib/ticketAutomationCommit.js +466 -91
  132. package/dist/server/lib/ticketAutomationCommit.js.map +1 -1
  133. package/dist/server/lib/ticketFollowUpOperations.js +270 -29
  134. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  135. package/dist/server/lib/ticketMessages.js +16 -0
  136. package/dist/server/lib/ticketMessages.js.map +1 -1
  137. package/dist/server/lib/ticketRunOperations.js +51 -6
  138. package/dist/server/lib/ticketRunOperations.js.map +1 -1
  139. package/dist/server/lib/ticketUndo.js +77 -168
  140. package/dist/server/lib/ticketUndo.js.map +1 -1
  141. package/dist/server/lib/ticketWorkflowOperations.js +132 -28
  142. package/dist/server/lib/ticketWorkflowOperations.js.map +1 -1
  143. package/dist/server/lib/tickets.js +41 -27
  144. package/dist/server/lib/tickets.js.map +1 -1
  145. package/dist/server/lib/transcriptRuns.js +3 -3
  146. package/dist/server/lib/transcriptRuns.js.map +1 -1
  147. package/dist/server/lib/turnExecutionErrors.js +12 -0
  148. package/dist/server/lib/turnExecutionErrors.js.map +1 -0
  149. package/dist/server/lib/types.js +58 -1
  150. package/dist/server/lib/types.js.map +1 -1
  151. package/dist/server/workers/build.js +596 -184
  152. package/dist/server/workers/build.js.map +1 -1
  153. package/dist/server/workers/chat.js +269 -132
  154. package/dist/server/workers/chat.js.map +1 -1
  155. package/dist/server/workers/followUp.js +731 -203
  156. package/dist/server/workers/followUp.js.map +1 -1
  157. package/dist/server/workers/plan.js +546 -188
  158. package/dist/server/workers/plan.js.map +1 -1
  159. package/dist/server/workers/planFollowUp.js +240 -75
  160. package/dist/server/workers/planFollowUp.js.map +1 -1
  161. package/dist/server/workers/review.js +790 -297
  162. package/dist/server/workers/review.js.map +1 -1
  163. package/dist/server/workers/specReview.js +212 -46
  164. package/dist/server/workers/specReview.js.map +1 -1
  165. package/dist/server/workers/specSession.js +434 -254
  166. package/dist/server/workers/specSession.js.map +1 -1
  167. package/package.json +1 -1
  168. package/dist/client/assets/GitHubActionsDialog-DAD5REmY.js +0 -1
  169. package/dist/client/assets/TestsDialog-B5NVrroq.js +0 -4
  170. package/dist/client/assets/TicketChangesModal-By-_gTGd.js +0 -1
  171. package/dist/client/assets/channel-Dd5Len0X.js +0 -1
  172. package/dist/client/assets/classDiagram-4FO5ZUOK-B7KUg6r8.js +0 -1
  173. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CQm-z5c4.js +0 -1
  174. package/dist/client/assets/index-BHq6-Eir.js +0 -270
  175. package/dist/client/assets/index-BxTc5qQT.css +0 -2
  176. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C8yO6POT.js +0 -1
@@ -1,61 +1,142 @@
1
1
  import { randomUUID } from 'crypto';
2
2
  import db from '../db.js';
3
+ import { truncateUtf8 } from './transcriptRuns.js';
4
+ export const AGENT_RUN_FAILURE_MESSAGE_LIMIT_BYTES = 16 * 1024;
5
+ const agentRunColumns = `
6
+ id, execution_run_id, parent_type, parent_id, run_index, label, role, agent_status,
7
+ agent_log, streaming_response, response_text, failure_message, session_id,
8
+ completed_at, created_at, updated_at
9
+ `;
3
10
  const createAgentRunStatement = db.prepare(`
4
11
  INSERT INTO agent_runs (
5
- id,
6
- parent_type,
7
- parent_id,
8
- run_index,
9
- label,
10
- role,
11
- agent_status
12
+ id, execution_run_id, parent_type, parent_id, run_index, label, role, agent_status
12
13
  )
13
- VALUES (?, ?, ?, ?, ?, ?, ?)
14
+ VALUES (?, ?, ?, ?, ?, ?, ?, 'running')
14
15
  `);
15
- const updateAgentRunStatusStatement = db.prepare(`
16
+ const updateRunningAgentRunStatement = db.prepare(`
16
17
  UPDATE agent_runs
17
- SET agent_status = ?,
18
- agent_log = ?,
18
+ SET agent_log = ?,
19
19
  streaming_response = ?,
20
20
  updated_at = CURRENT_TIMESTAMP
21
- WHERE id = ?
21
+ WHERE id = ? AND agent_status = 'running' AND completed_at IS NULL
22
22
  `);
23
- const updateAgentRunSessionIdStatement = db.prepare(`
23
+ const terminalizeAgentRunStatement = db.prepare(`
24
24
  UPDATE agent_runs
25
- SET session_id = ?,
25
+ SET agent_status = ?,
26
+ agent_log = COALESCE(?, agent_log),
27
+ response_text = COALESCE(?, response_text, streaming_response),
28
+ streaming_response = NULL,
29
+ failure_message = ?,
30
+ completed_at = CURRENT_TIMESTAMP,
26
31
  updated_at = CURRENT_TIMESTAMP
27
- WHERE id = ?
32
+ WHERE id = ? AND agent_status = 'running' AND completed_at IS NULL
28
33
  `);
29
- const updateAgentRunLabelStatement = db.prepare(`
34
+ const updateAgentRunSessionIdStatement = db.prepare(`
30
35
  UPDATE agent_runs
31
- SET label = ?,
32
- updated_at = CURRENT_TIMESTAMP
36
+ SET session_id = ?, updated_at = CURRENT_TIMESTAMP
33
37
  WHERE id = ?
34
38
  `);
35
- const finalizeAgentRunStatement = db.prepare(`
39
+ const updateAgentRunLabelStatement = db.prepare(`
36
40
  UPDATE agent_runs
37
- SET agent_status = ?,
38
- response_text = ?,
39
- streaming_response = NULL,
40
- updated_at = CURRENT_TIMESTAMP
41
+ SET label = ?, updated_at = CURRENT_TIMESTAMP
41
42
  WHERE id = ?
42
43
  `);
43
44
  const clearAgentRunsForParentStatement = db.prepare(`
44
45
  DELETE FROM agent_runs
45
- WHERE parent_type = ? AND parent_id = ?
46
+ WHERE parent_type = ? AND parent_id = ? AND execution_run_id IS NULL
46
47
  `);
47
48
  const listAgentRunsForParentStatement = db.prepare(`
48
- SELECT id, parent_type, parent_id, run_index, label, role, agent_status,
49
- agent_log, streaming_response, response_text, session_id,
50
- created_at, updated_at
49
+ WITH latest_active_execution AS (
50
+ SELECT run.id
51
+ FROM execution_runs run
52
+ WHERE run.status IN ('queued', 'running', 'waiting')
53
+ AND (
54
+ EXISTS (
55
+ SELECT 1
56
+ FROM agent_runs detail
57
+ WHERE detail.execution_run_id = run.id
58
+ AND detail.parent_type = ?
59
+ AND detail.parent_id = ?
60
+ )
61
+ OR EXISTS (
62
+ SELECT 1
63
+ FROM execution_run_links link
64
+ WHERE link.execution_run_id = run.id
65
+ AND link.relationship = 'primary'
66
+ AND link.entity_type = ?
67
+ AND link.entity_id = ?
68
+ )
69
+ )
70
+ ORDER BY run.created_at DESC, run.id DESC
71
+ LIMIT 1
72
+ )
73
+ SELECT ${agentRunColumns}
51
74
  FROM agent_runs
52
75
  WHERE parent_type = ? AND parent_id = ?
76
+ AND (
77
+ execution_run_id = (SELECT id FROM latest_active_execution)
78
+ OR (
79
+ NOT EXISTS (SELECT 1 FROM latest_active_execution)
80
+ AND execution_run_id IS NULL
81
+ AND agent_status = 'running'
82
+ AND completed_at IS NULL
83
+ )
84
+ )
53
85
  ORDER BY run_index ASC, created_at ASC, id ASC
54
86
  `);
55
- const getNextAgentRunIndexStatement = db.prepare(`
87
+ const listAgentRunsForExecutionRunStatement = db.prepare(`
88
+ SELECT ${agentRunColumns}
89
+ FROM agent_runs
90
+ WHERE execution_run_id = ?
91
+ ORDER BY run_index ASC, created_at ASC, id ASC
92
+ `);
93
+ const getAgentRunStatement = db.prepare(`
94
+ SELECT ${agentRunColumns}
95
+ FROM agent_runs
96
+ WHERE id = ?
97
+ `);
98
+ const getExecutionRunStatement = db.prepare(`
99
+ SELECT
100
+ run.id,
101
+ run.project_id,
102
+ run.kind,
103
+ primary_link.entity_type AS primary_entity_type,
104
+ primary_link.entity_id AS primary_entity_id
105
+ FROM execution_runs run
106
+ LEFT JOIN execution_run_links primary_link
107
+ ON primary_link.execution_run_id = run.id
108
+ AND primary_link.relationship = 'primary'
109
+ WHERE run.id = ?
110
+ `);
111
+ const getNextExecutionRunIndexStatement = db.prepare(`
56
112
  SELECT COALESCE(MAX(run_index), -1) + 1 AS next_index
57
113
  FROM agent_runs
58
- WHERE parent_type = ? AND parent_id = ?
114
+ WHERE execution_run_id = ?
115
+ `);
116
+ const getNextLegacyAgentRunIndexStatement = db.prepare(`
117
+ SELECT COALESCE(MAX(run_index), -1) + 1 AS next_index
118
+ FROM agent_runs
119
+ WHERE execution_run_id IS NULL AND parent_type = ? AND parent_id = ?
120
+ `);
121
+ const terminalizeExecutionRunStatement = db.prepare(`
122
+ UPDATE agent_runs
123
+ SET agent_status = ?,
124
+ response_text = COALESCE(response_text, streaming_response),
125
+ streaming_response = NULL,
126
+ failure_message = ?,
127
+ completed_at = CURRENT_TIMESTAMP,
128
+ updated_at = CURRENT_TIMESTAMP
129
+ WHERE execution_run_id = ? AND agent_status = 'running' AND completed_at IS NULL
130
+ `);
131
+ const terminalizeLegacyAgentRunsStatement = db.prepare(`
132
+ UPDATE agent_runs
133
+ SET agent_status = ?,
134
+ response_text = COALESCE(response_text, streaming_response),
135
+ streaming_response = NULL,
136
+ failure_message = ?,
137
+ completed_at = CURRENT_TIMESTAMP,
138
+ updated_at = CURRENT_TIMESTAMP
139
+ WHERE execution_run_id IS NULL AND agent_status = 'running' AND completed_at IS NULL
59
140
  `);
60
141
  const serializeAgentRun = (row) => {
61
142
  if (!row) {
@@ -63,6 +144,7 @@ const serializeAgentRun = (row) => {
63
144
  }
64
145
  return {
65
146
  id: row.id,
147
+ execution_run_id: row.execution_run_id,
66
148
  parent_type: row.parent_type,
67
149
  parent_id: row.parent_id,
68
150
  run_index: row.run_index,
@@ -72,18 +154,77 @@ const serializeAgentRun = (row) => {
72
154
  agent_log: row.agent_log,
73
155
  streaming_response: row.streaming_response,
74
156
  response_text: row.response_text,
157
+ failure_message: row.failure_message,
75
158
  session_id: row.session_id,
159
+ completed_at: row.completed_at,
76
160
  created_at: row.created_at,
77
161
  updated_at: row.updated_at,
78
162
  };
79
163
  };
80
- export const createAgentRun = ({ parentType, parentId, runIndex, label, role, }) => {
164
+ const getParentProjectId = (parentType, parentId) => {
165
+ if (parentType === 'planning') {
166
+ const row = db.prepare('SELECT id AS project_id FROM projects WHERE id = ?').get(parentId);
167
+ return row?.project_id ?? null;
168
+ }
169
+ const table = parentType === 'ticket'
170
+ ? 'tickets'
171
+ : parentType === 'chat'
172
+ ? 'chat_sessions'
173
+ : 'spec_sessions';
174
+ const row = db.prepare(`SELECT project_id FROM ${table} WHERE id = ?`).get(parentId);
175
+ return row?.project_id ?? null;
176
+ };
177
+ const getNextIndex = (statement, ...params) => {
178
+ const row = statement.get(...params);
179
+ return Number(row?.next_index ?? 0);
180
+ };
181
+ const createExecutionOwnedAgentRun = db.transaction((input) => {
182
+ const executionRun = getExecutionRunStatement.get(input.executionRunId);
183
+ if (!executionRun) {
184
+ throw new Error(`Execution run ${input.executionRunId} does not exist`);
185
+ }
186
+ const parentProjectId = getParentProjectId(input.parentType, input.parentId);
187
+ if (!parentProjectId) {
188
+ throw new Error(`${input.parentType} ${input.parentId} does not belong to a project`);
189
+ }
190
+ if (parentProjectId !== executionRun.project_id) {
191
+ throw new Error(`${input.parentType} ${input.parentId} does not belong to execution run project ${executionRun.project_id}`);
192
+ }
193
+ const expectedPrimaryEntityType = input.parentType === 'planning'
194
+ ? 'project'
195
+ : input.parentType === 'ticket'
196
+ ? 'ticket'
197
+ : input.parentType === 'chat'
198
+ ? 'chat_session'
199
+ : 'spec_session';
200
+ if (executionRun.primary_entity_type !== expectedPrimaryEntityType
201
+ || executionRun.primary_entity_id !== input.parentId) {
202
+ throw new Error(`${input.parentType} ${input.parentId} does not match execution run ${input.executionRunId} primary parent`);
203
+ }
81
204
  const id = randomUUID();
82
- createAgentRunStatement.run(id, parentType, parentId, runIndex, label, role, 'running');
205
+ const runIndex = getNextIndex(getNextExecutionRunIndexStatement, input.executionRunId);
206
+ createAgentRunStatement.run(id, input.executionRunId, input.parentType, input.parentId, runIndex, input.label, input.role);
207
+ return id;
208
+ });
209
+ export const createAgentRun = (input) => {
210
+ if (input.executionRunId) {
211
+ return createExecutionOwnedAgentRun({ ...input, executionRunId: input.executionRunId });
212
+ }
213
+ if (input.runIndex === undefined) {
214
+ throw new Error('Legacy agent runs require a run index');
215
+ }
216
+ const id = randomUUID();
217
+ createAgentRunStatement.run(id, null, input.parentType, input.parentId, input.runIndex, input.label, input.role);
83
218
  return id;
84
219
  };
85
220
  export const updateAgentRunStatus = (runId, status, log, streamingResponse) => {
86
- updateAgentRunStatusStatement.run(status, log ?? null, streamingResponse ?? null, runId);
221
+ const boundedLog = truncateUtf8(log).text;
222
+ const boundedResponse = truncateUtf8(streamingResponse).text;
223
+ if (status === 'running') {
224
+ updateRunningAgentRunStatement.run(boundedLog, boundedResponse, runId);
225
+ return;
226
+ }
227
+ terminalizeAgentRunStatement.run(status, boundedLog, boundedResponse, null, runId);
87
228
  };
88
229
  export const updateAgentRunSessionId = (runId, sessionId) => {
89
230
  updateAgentRunSessionIdStatement.run(sessionId, runId);
@@ -91,21 +232,47 @@ export const updateAgentRunSessionId = (runId, sessionId) => {
91
232
  export const updateAgentRunLabel = (runId, label) => {
92
233
  updateAgentRunLabelStatement.run(label, runId);
93
234
  };
94
- export const finalizeAgentRun = (runId, status, responseText) => {
95
- finalizeAgentRunStatement.run(status, responseText ?? null, runId);
235
+ export const finalizeAgentRun = (runId, status, responseText, failureMessage = null) => {
236
+ if (status === 'running') {
237
+ throw new Error('Final agent run status must be terminal');
238
+ }
239
+ terminalizeAgentRunStatement.run(status, null, truncateUtf8(responseText).text, truncateUtf8(failureMessage, AGENT_RUN_FAILURE_MESSAGE_LIMIT_BYTES).text, runId);
240
+ };
241
+ export const terminalizeAgentRunsForExecutionRun = (executionRunId, status, failureMessage = null) => {
242
+ return terminalizeExecutionRunStatement.run(status, truncateUtf8(failureMessage, AGENT_RUN_FAILURE_MESSAGE_LIMIT_BYTES).text, executionRunId).changes;
243
+ };
244
+ export const terminalizeLegacyAgentRuns = (status = 'error', failureMessage = null) => {
245
+ return terminalizeLegacyAgentRunsStatement.run(status, truncateUtf8(failureMessage, AGENT_RUN_FAILURE_MESSAGE_LIMIT_BYTES).text).changes;
96
246
  };
97
247
  export const clearAgentRunsForParent = (parentType, parentId) => {
98
248
  clearAgentRunsForParentStatement.run(parentType, parentId);
99
249
  };
100
250
  export const listAgentRunsForParent = (parentType, parentId) => {
101
- return listAgentRunsForParentStatement.all(parentType, parentId)
251
+ const primaryEntityType = parentType === 'planning'
252
+ ? 'project'
253
+ : parentType === 'ticket'
254
+ ? 'ticket'
255
+ : parentType === 'chat'
256
+ ? 'chat_session'
257
+ : 'spec_session';
258
+ return listAgentRunsForParentStatement.all(parentType, parentId, primaryEntityType, parentId, parentType, parentId)
102
259
  .map(row => serializeAgentRun(row))
103
260
  .filter((row) => row !== null);
104
261
  };
105
- export const getNextAgentRunIndex = (parentType, parentId) => {
106
- const row = getNextAgentRunIndexStatement.get(parentType, parentId);
107
- return Number(row?.next_index ?? 0);
262
+ export const listAgentRunsForExecutionRun = (executionRunId) => {
263
+ return listAgentRunsForExecutionRunStatement.all(executionRunId)
264
+ .map(row => serializeAgentRun(row))
265
+ .filter((row) => row !== null);
266
+ };
267
+ export const getAgentRun = (runId) => {
268
+ return serializeAgentRun(getAgentRunStatement.get(runId));
108
269
  };
270
+ export function getNextAgentRunIndex(executionRunIdOrParentType, parentId) {
271
+ if (parentId === undefined) {
272
+ return getNextIndex(getNextExecutionRunIndexStatement, executionRunIdOrParentType);
273
+ }
274
+ return getNextIndex(getNextLegacyAgentRunIndexStatement, executionRunIdOrParentType, parentId);
275
+ }
109
276
  export const emitAgentRunsUpdated = (io, parentType, parentId) => {
110
277
  const runs = listAgentRunsForParent(parentType, parentId);
111
278
  io.emit('agent-runs:updated', { parentType, parentId, runs });
@@ -1 +1 @@
1
- {"version":3,"file":"agentRuns.js","sourceRoot":"","sources":["../../../server/lib/agentRuns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentRuns.js","sourceRoot":"","sources":["../../../server/lib/agentRuns.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,17 @@ const listChatMessageAttachmentsStatement = () => db.prepare(`
12
12
  WHERE a.owner_type = 'chat' AND cm.chat_session_id = ?
13
13
  ORDER BY cma.chat_message_id ASC, cma.ordinal ASC, cma.created_at ASC
14
14
  `);
15
+ const listOwnedChatAttachmentsForMessageStatement = () => db.prepare(`
16
+ SELECT a.id, a.owner_type, a.owner_session_id, a.original_name, a.mime_type, a.size_bytes, a.storage_path, a.created_at
17
+ FROM chat_message_attachments cma
18
+ INNER JOIN attachments a ON a.id = cma.attachment_id
19
+ INNER JOIN chat_messages cm ON cm.id = cma.chat_message_id
20
+ WHERE cm.chat_session_id = ?
21
+ AND cma.chat_message_id = ?
22
+ AND a.owner_type = 'chat'
23
+ AND a.owner_session_id = ?
24
+ ORDER BY cma.ordinal ASC, cma.created_at ASC
25
+ `);
15
26
  const insertAttachmentStatement = () => db.prepare(`
16
27
  INSERT INTO attachments (id, owner_type, owner_session_id, original_name, mime_type, size_bytes, storage_path)
17
28
  VALUES (?, ?, ?, ?, ?, ?, ?)
@@ -92,6 +103,7 @@ export const listChatMessageAttachments = (chatSessionId, projectId) => {
92
103
  }
93
104
  return attachmentsByMessageId;
94
105
  };
106
+ export const listChatAttachmentRowsForMessage = (chatSessionId, chatMessageId) => listOwnedChatAttachmentsForMessageStatement().all(chatSessionId, chatMessageId, chatSessionId);
95
107
  export const getAttachmentById = (attachmentId) => {
96
108
  return getAttachmentByIdStatement().get(attachmentId) ?? null;
97
109
  };
@@ -219,6 +231,17 @@ const listSpecMessageAttachmentsStatement = () => db.prepare(`
219
231
  WHERE a.owner_type = 'spec' AND sm.spec_session_id = ?
220
232
  ORDER BY sma.spec_message_id ASC, sma.ordinal ASC, sma.created_at ASC
221
233
  `);
234
+ const listOwnedSpecAttachmentsForMessageStatement = () => db.prepare(`
235
+ SELECT a.id, a.owner_type, a.owner_session_id, a.original_name, a.mime_type, a.size_bytes, a.storage_path, a.created_at
236
+ FROM spec_message_attachments sma
237
+ INNER JOIN attachments a ON a.id = sma.attachment_id
238
+ INNER JOIN spec_messages sm ON sm.id = sma.spec_message_id
239
+ WHERE sm.spec_session_id = ?
240
+ AND sma.spec_message_id = ?
241
+ AND a.owner_type = 'spec'
242
+ AND a.owner_session_id = ?
243
+ ORDER BY sma.ordinal ASC, sma.created_at ASC
244
+ `);
222
245
  const getSpecAttachmentBySessionStatement = () => db.prepare(`
223
246
  SELECT id, owner_type, owner_session_id, original_name, mime_type, size_bytes, storage_path, created_at
224
247
  FROM attachments
@@ -259,6 +282,7 @@ export const listSpecMessageAttachments = (specSessionId, projectId) => {
259
282
  }
260
283
  return attachmentsByMessageId;
261
284
  };
285
+ export const listSpecAttachmentRowsForMessage = (specSessionId, specMessageId) => listOwnedSpecAttachmentsForMessageStatement().all(specSessionId, specMessageId, specSessionId);
262
286
  export const getSpecAttachmentForSession = (attachmentId, specSessionId) => {
263
287
  return getSpecAttachmentBySessionStatement().get(attachmentId, specSessionId) ?? null;
264
288
  };
@@ -1 +1 @@
1
- {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../server/lib/attachments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../server/lib/attachments.ts"],"names":[],"mappings":"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"}