@straiffi/archon 1.7.6 → 1.7.7

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 (102) hide show
  1. package/dist/client/assets/{ActivityView-BrZY8vYf.js → ActivityView-Btpsv-5U.js} +1 -1
  2. package/dist/client/assets/{GitHubActionsDialog-CUfdVw97.js → GitHubActionsDialog-DRlIMgSB.js} +1 -1
  3. package/dist/client/assets/{TestsDialog-FXcnLOyf.js → TestsDialog-DSWDkKPV.js} +1 -1
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-D0PXGvSL.js → architectureDiagram-3BPJPVTR-DVbmGv0b.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-BCLAxnp5.js → blockDiagram-GPEHLZMM-BsxPuJKK.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-DVZ5yZWV.js → c4Diagram-AAUBKEIU-9Jjpu2R1.js} +1 -1
  7. package/dist/client/assets/channel-Lic13vb5.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-BGJYj1Lu.js → chunk-2J33WTMH-Dzljq_5a.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-DI5-yK3m.js → chunk-3OPIFGDE-CiBHaLdV.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-Dnr5DDsb.js → chunk-5ZQYHXKU-DZFrI-_H.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-8HdFwn-P.js → chunk-727SXJPM-u519MeJ7.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-C7x9t2uJ.js → chunk-AQP2D5EJ-DC91Nw9K.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-CrhwRPh5.js → chunk-CSCIHK7Q-CR7cwH-D.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-CdD62r5U.js → chunk-KSCS5N6A-DJwQEfa_.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-CqQVvwc_.js → chunk-L5ZTLDWV-w6TWSOTT.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-DLHrqoJ4.js → chunk-LZXEDZCA-Dfw_jEjR.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-B0yOdiPF.js → chunk-ND2GUHAM-DHdJgCA7.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-boM-MocY.js → chunk-NZK2D7GU-GvOuUiUy.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-B0jgJn0t.js → chunk-O5CBEL6O--r1VQgDc.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-C_S_v-m2.js → chunk-WU5MYG2G-Xgc6shf5.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-DACLwQIJ.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CKi6c1d9.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-DKl6Y8ya.js → dagre-BM42HDAG-IcfTsQ6f.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-6Lyn9DBp.js → diagram-2AECGRRQ-D8Z4_NSQ.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-wdS1vEkN.js → diagram-5GNKFQAL-CIjC8QzH.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-CPih29jF.js → diagram-KO2AKTUF-BBbYFygn.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-Cr5Px74d.js → diagram-LMA3HP47-lZstJdXv.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-i0PjSScd.js → diagram-OG6HWLK6-Cnqij60i.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-Dt4yOC9J.js → erDiagram-TEJ5UH35-1DAJwSbR.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-Bf6kvajC.js → flowDiagram-I6XJVG4X-DIQkR95e.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-DgxePMk_.js → ganttDiagram-6RSMTGT7-mDGbRM53.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BZq2cmFS.js → gitGraphDiagram-PVQCEYII-BQirGZuE.js} +1 -1
  33. package/dist/client/assets/index-DQt4dcwc.css +2 -0
  34. package/dist/client/assets/index-W9OCqkMU.js +273 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-Chij69KN.js → infoDiagram-5YYISTIA-CljoXByt.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-3qHCLFgD.js → ishikawaDiagram-YF4QCWOH-ouY7AiSo.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-DvRW8tbA.js → journeyDiagram-JHISSGLW-BiI9xI0r.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-DjR2T5I1.js → kanban-definition-UN3LZRKU-CvuW7aYT.js} +1 -1
  39. package/dist/client/assets/{line-B9OzrQ1Y.js → line-CoE97hT8.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-DYcDor4d.js → mermaid-parser.core-BHswQsmF.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-DG8QYo2u.js → mermaid.core-a9PzZlL1.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-f4QPF6b3.js → mindmap-definition-RKZ34NQL-CIkEQqLV.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-CMkl2jBu.js → pieDiagram-4H26LBE5-BIvcv2M5.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BXaUHzJi.js → quadrantDiagram-W4KKPZXB-BWCVll7J.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-B-Inuj_6.js → requirementDiagram-4Y6WPE33-w5l0CZn2.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BjsmZFYI.js → sankeyDiagram-5OEKKPKP-BuKReL9w.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-B1PAm6sX.js → sequenceDiagram-3UESZ5HK-Br5KpukA.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-pLONNEN8.js → stateDiagram-AJRCARHV-BfFCsPCI.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-lhIQ8FTe.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-BLMkSXo_.js → timeline-definition-PNZ67QCA-BrDP2iO0.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-CEwGRegG.js → vennDiagram-CIIHVFJN-C7lGYnr9.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-_md2IBXC.js → wardleyDiagram-YWT4CUSO-BRKJRuEF.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-DVzwfXHc.js → xychartDiagram-2RQKCTM6-BjaB0hQ8.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +2 -0
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +65 -22
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/chatMessages.js +37 -8
  60. package/dist/server/lib/chatMessages.js.map +1 -1
  61. package/dist/server/lib/chatOperations.js +119 -68
  62. package/dist/server/lib/chatOperations.js.map +1 -1
  63. package/dist/server/lib/mobileAccess.js +44 -6
  64. package/dist/server/lib/mobileAccess.js.map +1 -1
  65. package/dist/server/lib/planModeQuestions.js +12 -7
  66. package/dist/server/lib/planModeQuestions.js.map +1 -1
  67. package/dist/server/lib/planQuestionOperations.js +246 -0
  68. package/dist/server/lib/planQuestionOperations.js.map +1 -0
  69. package/dist/server/lib/planQuestions.js +139 -0
  70. package/dist/server/lib/planQuestions.js.map +1 -0
  71. package/dist/server/lib/realtime.js +24 -1
  72. package/dist/server/lib/realtime.js.map +1 -1
  73. package/dist/server/lib/specArtifact.js +36 -38
  74. package/dist/server/lib/specArtifact.js.map +1 -1
  75. package/dist/server/lib/specMessages.js +31 -18
  76. package/dist/server/lib/specMessages.js.map +1 -1
  77. package/dist/server/lib/specOperations.js +129 -78
  78. package/dist/server/lib/specOperations.js.map +1 -1
  79. package/dist/server/lib/ticketFollowUpOperations.js +19 -6
  80. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  81. package/dist/server/lib/ticketMessages.js +38 -9
  82. package/dist/server/lib/ticketMessages.js.map +1 -1
  83. package/dist/server/lib/ticketWorkflowOperations.js +10 -1
  84. package/dist/server/lib/ticketWorkflowOperations.js.map +1 -1
  85. package/dist/server/lib/types.js.map +1 -1
  86. package/dist/server/workers/chat.js +48 -2
  87. package/dist/server/workers/chat.js.map +1 -1
  88. package/dist/server/workers/followUp.js +50 -2
  89. package/dist/server/workers/followUp.js.map +1 -1
  90. package/dist/server/workers/plan.js +57 -4
  91. package/dist/server/workers/plan.js.map +1 -1
  92. package/dist/server/workers/planFollowUp.js +51 -2
  93. package/dist/server/workers/planFollowUp.js.map +1 -1
  94. package/dist/server/workers/specSession.js +55 -5
  95. package/dist/server/workers/specSession.js.map +1 -1
  96. package/package.json +1 -1
  97. package/dist/client/assets/channel-BCPCrThZ.js +0 -1
  98. package/dist/client/assets/classDiagram-4FO5ZUOK-BdJlc_1i.js +0 -1
  99. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Bidw5Zc1.js +0 -1
  100. package/dist/client/assets/index-BJGHMaMz.css +0 -2
  101. package/dist/client/assets/index-CjRMYO1U.js +0 -273
  102. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-kWPDF3wr.js +0 -1
@@ -3,6 +3,7 @@ import { stopSpecAgent } from './agent.js';
3
3
  import { parseIncomingExternalSource } from './externalSource.js';
4
4
  import { normalizeClaudeModelId, normalizeModelId } from './models.js';
5
5
  import { getProjectById } from './projects.js';
6
+ import { createDeferredRealtimeBroadcaster } from './realtime.js';
6
7
  import { normalizeSkillNames } from './skills.js';
7
8
  import { createSpecSession, getSpecSession, deleteSpecSession, getTicketIdsForOriginSpecSession, getChatSessionIdsForOriginSpecSession, clearOriginSpecReferences, updateSpecSessionMode } from './specs.js';
8
9
  import { getChatSession } from './chats.js';
@@ -10,8 +11,10 @@ import { getTicket } from './tickets.js';
10
11
  import { markExternalIssueTracked } from './trackedExternalIssues.js';
11
12
  import { clearCachedAssignedIssues } from './integrations/assignedIssuesCache.js';
12
13
  import { startSpecSessionTurn } from '../workers/specSession.js';
13
- import { createExecutionRun, transitionExecutionRun } from './executionRuns.js';
14
+ import { withExecutionRunTransaction } from './executionRuns.js';
14
15
  import { getTurnStartFailureCode } from './turnExecutionErrors.js';
16
+ import { compareAndSetSpecMessageMetadata, getSpecMessage } from './specMessages.js';
17
+ import { formatAskQuestionContinuation, hasPendingAskQuestionSet, parseAskQuestionResolutions } from './planQuestions.js';
15
18
  const getPayloadValue = (payload, key) => {
16
19
  return payload?.[key];
17
20
  };
@@ -75,6 +78,9 @@ export const updateProjectSpecSessionMode = ({ projectId, specSessionId, payload
75
78
  if (!existing) {
76
79
  return { ok: false, status: 404, error: 'Not found' };
77
80
  }
81
+ if (hasPendingAskQuestionSet(existing.messages)) {
82
+ return { ok: false, status: 409, error: 'Resolve or dismiss the pending question set before continuing.', value: existing };
83
+ }
78
84
  const updatedSession = updateSpecSessionMode(existing.id, resolveSpecMode(getPayloadValue(payload, 'mode')));
79
85
  if (!updatedSession) {
80
86
  return { ok: false, status: 404, error: 'Not found' };
@@ -82,7 +88,7 @@ export const updateProjectSpecSessionMode = ({ projectId, specSessionId, payload
82
88
  broadcaster.emit('spec-session:updated', updatedSession);
83
89
  return { ok: true, status: 200, value: updatedSession };
84
90
  };
85
- export const submitProjectSpecSessionMessage = ({ projectId, specSessionId, payload, broadcaster, initiation, existingTriggerMessageId, existingAttachments, providerContinuation, conversationContext, priorSnapshotId, retryRunConfig, turnMode, }) => {
91
+ export const submitProjectSpecSessionMessage = ({ projectId, specSessionId, payload, broadcaster, initiation, existingTriggerMessageId, existingAttachments, providerContinuation, conversationContext, priorSnapshotId, retryRunConfig, turnMode, questionResolution, }) => {
86
92
  const project = getProjectById(projectId);
87
93
  if (!project) {
88
94
  return { ok: false, status: 404, error: 'Not found' };
@@ -91,6 +97,9 @@ export const submitProjectSpecSessionMessage = ({ projectId, specSessionId, payl
91
97
  if (!existing) {
92
98
  return { ok: false, status: 404, error: 'Not found' };
93
99
  }
100
+ if (!questionResolution && hasPendingAskQuestionSet(existing.messages)) {
101
+ return { ok: false, status: 409, error: 'Resolve or dismiss the pending question set before continuing.', value: existing };
102
+ }
94
103
  const requestedInstruction = getPayloadValue(payload, 'instruction');
95
104
  const instruction = typeof requestedInstruction === 'string' ? requestedInstruction.trim() : '';
96
105
  const requestedAttachmentIds = getPayloadValue(payload, 'attachment_ids');
@@ -115,87 +124,81 @@ export const submitProjectSpecSessionMessage = ({ projectId, specSessionId, payl
115
124
  const resolvedVariant = retryRunConfig ? retryRunConfig.variant : (typeof getPayloadValue(payload, 'variant') === 'string' ? getPayloadValue(payload, 'variant') : project.helper_variant);
116
125
  const resolvedSkills = retryRunConfig?.skills ?? normalizeSkillNames(getPayloadValue(payload, 'skills'));
117
126
  const resolvedPriorSnapshotId = priorSnapshotId === undefined ? existing.latest_snapshot_id : priorSnapshotId;
118
- let accepted = false;
119
- const executionRun = createExecutionRun({
120
- projectId: project.id,
121
- kind: 'spec_turn',
122
- domainStatus: 'queued',
123
- sourceReference: { kind: 'spec_session', id: existing.id, label: existing.title },
124
- links: [
125
- ...(existingTriggerMessageId ? [{
126
- entityType: 'spec_message',
127
- entityId: existingTriggerMessageId,
128
- relationship: 'trigger',
129
- expectedParent: { entityType: 'spec_session', entityId: existing.id },
130
- }] : []),
131
- ...(resolvedPriorSnapshotId ? [{
132
- entityType: 'spec_snapshot',
133
- entityId: resolvedPriorSnapshotId,
134
- relationship: 'context',
135
- expectedParent: { entityType: 'spec_session', entityId: existing.id },
136
- }] : []),
137
- ],
138
- initiatedBy: initiation?.initiator,
139
- parentRunId: initiation?.causalParentRunId,
140
- retryOfRunId: initiation?.retrySourceRunId,
141
- metadata: {
142
- retry_mode: turnMode ?? existing.mode,
143
- retry_tool: resolvedTool,
144
- retry_model: typeof rawModel === 'string' ? rawModel : null,
145
- retry_variant: resolvedVariant,
146
- retry_skills: resolvedSkills,
147
- retry_prior_snapshot_id: resolvedPriorSnapshotId ?? 'none',
148
- retry_attachment_count: resolvedAttachments.attachments.length,
149
- },
150
- eventType: initiation?.retrySourceRunId ? 'retry_started' : 'spec_turn_created',
151
- }, broadcaster);
152
- const executionContext = {
153
- runId: executionRun.id,
154
- correlationId: executionRun.correlation_id,
155
- projectId: executionRun.project_id,
156
- kind: executionRun.kind,
157
- };
158
127
  const shouldMarkExternalSourceTracked = Boolean(existing.external_source)
159
128
  && !(existing.messages ?? []).some(message => message.role === 'user');
129
+ const deferredRealtime = createDeferredRealtimeBroadcaster(broadcaster);
130
+ let executionContext;
160
131
  try {
161
- accepted = startSpecSessionTurn({
162
- specSessionId: existing.id,
163
- instruction,
164
- attachments: resolvedAttachments.attachments,
165
- tool: resolvedTool,
166
- model: typeof rawModel === 'string' ? rawModel : null,
167
- variant: resolvedVariant,
168
- skills: resolvedSkills,
169
- io: broadcaster,
170
- executionContext,
171
- existingTriggerMessageId,
172
- providerContinuation,
173
- conversationContext,
174
- priorSnapshotId: resolvedPriorSnapshotId,
175
- turnMode: turnMode ?? existing.mode,
176
- });
132
+ executionContext = withExecutionRunTransaction(transaction => {
133
+ const executionRun = transaction.createExecutionRun({
134
+ projectId: project.id,
135
+ kind: 'spec_turn',
136
+ domainStatus: 'queued',
137
+ sourceReference: { kind: 'spec_session', id: existing.id, label: existing.title },
138
+ links: [
139
+ ...(existingTriggerMessageId ? [{
140
+ entityType: 'spec_message',
141
+ entityId: existingTriggerMessageId,
142
+ relationship: 'trigger',
143
+ expectedParent: { entityType: 'spec_session', entityId: existing.id },
144
+ }] : []),
145
+ ...(resolvedPriorSnapshotId ? [{
146
+ entityType: 'spec_snapshot',
147
+ entityId: resolvedPriorSnapshotId,
148
+ relationship: 'context',
149
+ expectedParent: { entityType: 'spec_session', entityId: existing.id },
150
+ }] : []),
151
+ ],
152
+ initiatedBy: initiation?.initiator,
153
+ parentRunId: initiation?.causalParentRunId,
154
+ retryOfRunId: initiation?.retrySourceRunId,
155
+ metadata: {
156
+ retry_mode: turnMode ?? existing.mode,
157
+ retry_tool: resolvedTool,
158
+ retry_model: typeof rawModel === 'string' ? rawModel : null,
159
+ retry_variant: resolvedVariant,
160
+ retry_skills: resolvedSkills,
161
+ retry_prior_snapshot_id: resolvedPriorSnapshotId ?? 'none',
162
+ retry_attachment_count: resolvedAttachments.attachments.length,
163
+ },
164
+ eventType: initiation?.retrySourceRunId ? 'retry_started' : 'spec_turn_created',
165
+ });
166
+ questionResolution?.accept();
167
+ const context = {
168
+ runId: executionRun.id,
169
+ correlationId: executionRun.correlation_id,
170
+ projectId: executionRun.project_id,
171
+ kind: executionRun.kind,
172
+ };
173
+ const accepted = startSpecSessionTurn({
174
+ specSessionId: existing.id,
175
+ instruction,
176
+ attachments: resolvedAttachments.attachments,
177
+ tool: resolvedTool,
178
+ model: typeof rawModel === 'string' ? rawModel : null,
179
+ variant: resolvedVariant,
180
+ skills: resolvedSkills,
181
+ io: deferredRealtime.broadcaster,
182
+ executionContext: context,
183
+ existingTriggerMessageId,
184
+ providerContinuation,
185
+ conversationContext,
186
+ priorSnapshotId: resolvedPriorSnapshotId,
187
+ turnMode: turnMode ?? existing.mode,
188
+ });
189
+ if (!accepted) {
190
+ throw new Error('This spec session is already running.');
191
+ }
192
+ return context;
193
+ }, deferredRealtime.broadcaster);
194
+ deferredRealtime.flush();
177
195
  }
178
196
  catch (error) {
179
- transitionExecutionRun({
180
- projectId: project.id,
181
- runId: executionRun.id,
182
- status: 'failed',
183
- domainStatus: 'error',
184
- failure: { code: getTurnStartFailureCode(error, 'spec_turn_start_failed'), message: error instanceof Error ? error.message : String(error) },
185
- eventType: 'spec_turn_failed',
186
- }, broadcaster);
187
- return { ok: false, status: 500, error: error instanceof Error ? error.message : String(error) };
188
- }
189
- if (!accepted) {
190
- transitionExecutionRun({
191
- projectId: project.id,
192
- runId: executionRun.id,
193
- status: 'failed',
194
- domainStatus: 'rejected',
195
- failure: { code: 'spec_turn_rejected', message: 'This spec session is already running.' },
196
- eventType: 'spec_turn_failed',
197
- }, broadcaster);
198
- return { ok: false, status: 409, error: 'This spec session is already running.' };
197
+ deferredRealtime.discard();
198
+ const message = error instanceof Error ? error.message : String(error);
199
+ const failureCode = getTurnStartFailureCode(error, 'spec_turn_start_failed');
200
+ const status = message.includes('already running') || message.includes('already resolved') ? 409 : failureCode === 'queue_failed' ? 503 : 500;
201
+ return { ok: false, status, error: message, value: getProjectSpecSession(project.id, existing.id) ?? existing };
199
202
  }
200
203
  if (shouldMarkExternalSourceTracked) {
201
204
  markExternalIssueTracked(project.id, existing.external_source);
@@ -203,6 +206,54 @@ export const submitProjectSpecSessionMessage = ({ projectId, specSessionId, payl
203
206
  }
204
207
  return { ok: true, status: 200, value: getProjectSpecSession(project.id, existing.id) };
205
208
  };
209
+ export const resolveProjectSpecPlanQuestionSet = ({ projectId, specSessionId, messageId, payload, broadcaster, }) => {
210
+ const session = getProjectSpecSession(projectId, specSessionId);
211
+ const message = getSpecMessage(messageId);
212
+ const set = message?.metadata?.ask_question;
213
+ const setId = typeof payload?.set_id === 'string' ? payload.set_id : '';
214
+ if (!session || !message || message.spec_session_id !== session.id || !set || set.id !== message.id || set.id !== setId || set.status !== 'pending') {
215
+ return { ok: false, status: session ? 409 : 404, error: session ? 'Plan question set is stale or unavailable' : 'Not found', ...(session ? { value: session } : {}) };
216
+ }
217
+ const parsed = payload?.dismiss_all === true
218
+ ? { ok: true, resolutions: set.items.map(item => ({ item_id: item.id, status: 'dismissed' })) }
219
+ : parseAskQuestionResolutions(payload?.resolutions, set);
220
+ if (!parsed.ok) {
221
+ return { ok: false, status: 400, error: parsed.error };
222
+ }
223
+ const hasAnswers = parsed.resolutions.some(resolution => resolution.status === 'answered');
224
+ const nextSet = { ...set, status: hasAnswers ? 'resolved' : 'dismissed', resolutions: parsed.resolutions };
225
+ if (!hasAnswers) {
226
+ if (!compareAndSetSpecMessageMetadata(message.id, setId, { ...message.metadata, ask_question: nextSet })) {
227
+ return { ok: false, status: 409, error: 'Plan question set was already resolved', value: getProjectSpecSession(projectId, specSessionId) ?? session };
228
+ }
229
+ const current = getProjectSpecSession(projectId, specSessionId);
230
+ if (current) {
231
+ broadcaster.emit('spec-session:updated', current);
232
+ }
233
+ return { ok: true, status: 200, value: current };
234
+ }
235
+ const result = submitProjectSpecSessionMessage({
236
+ projectId,
237
+ specSessionId,
238
+ payload: { instruction: formatAskQuestionContinuation(set, parsed.resolutions) },
239
+ broadcaster,
240
+ retryRunConfig: {
241
+ tool: session.tool,
242
+ model: session.model,
243
+ variant: session.variant,
244
+ skills: session.skills,
245
+ },
246
+ turnMode: 'standard',
247
+ questionResolution: {
248
+ accept: () => {
249
+ if (!compareAndSetSpecMessageMetadata(message.id, setId, { ...message.metadata, ask_question: nextSet })) {
250
+ throw new Error('Plan question set was already resolved');
251
+ }
252
+ },
253
+ },
254
+ });
255
+ return result;
256
+ };
206
257
  export const stopProjectSpecSessionResponse = async ({ projectId, specSessionId, }) => {
207
258
  const project = getProjectById(projectId);
208
259
  if (!project) {
@@ -1 +1 @@
1
- {"version":3,"file":"specOperations.js","sourceRoot":"","sources":["../../../server/lib/specOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,qCAAqC,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC5M,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AASlE,MAAM,eAAe,GAAG,CAAC,OAA6B,EAAE,GAAW,EAAE,EAAE;IACrE,OAAO,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,aAAqB,EAAE,EAAE;IACzE,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAc,EAAY,EAAE;IACnD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAmB,EAAE;IACjE,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,EACT,OAAO,EACP,WAAW,GAKZ,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9D,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAA;IAC3F,MAAM,eAAe,GAAG,IAAI,KAAK,UAAU;QACzC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,IAAI;QACpC,CAAC,CAAC,IAAI,KAAK,QAAQ;YACjB,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,IAAI;YAC1C,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC5D,MAAM,iBAAiB,GAAG,IAAI,KAAK,UAAU,IAAI,eAAe,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QACtG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,IAAI;QACjC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,eAAe;YACtC,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI;YAChC,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,KAAK,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7E,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACpC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,IAAI;QACJ,IAAI;QACJ,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;KACzF,CAAC,CAAA;IAEF,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAA;IACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,GAMZ,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5G,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;IACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;AACzD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,EAC9C,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,UAAU,EACV,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,QAAQ,GAcT,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,oBAAoB,GAAG,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACpE,MAAM,WAAW,GAAG,OAAO,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAE/F,MAAM,sBAAsB,GAAG,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;IACzE,IAAI,sBAAsB,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxJ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAA;IACzF,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACzD,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACnE,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,mBAAmB,GAAG,mBAAmB;QAC7C,CAAC,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACzD,CAAC,CAAC,qCAAqC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAA;IACxF,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAA;IACrE,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,mBAAmB,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAA;IACvF,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACrI,MAAM,YAAY,GAAG,cAAc,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAA;IAC1D,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACpM,MAAM,cAAc,GAAG,cAAc,EAAE,MAAM,IAAI,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IACxG,MAAM,uBAAuB,GAAG,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAA;IAC7G,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,QAAQ;QACtB,eAAe,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;QACjF,KAAK,EAAE;YACL,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;oBAC9B,UAAU,EAAE,cAAuB;oBACnC,QAAQ,EAAE,wBAAwB;oBAClC,YAAY,EAAE,SAAkB;oBAChC,cAAc,EAAE,EAAE,UAAU,EAAE,cAAuB,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;iBAC/E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACR,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;oBAC7B,UAAU,EAAE,eAAwB;oBACpC,QAAQ,EAAE,uBAAuB;oBACjC,YAAY,EAAE,SAAkB;oBAChC,cAAc,EAAE,EAAE,UAAU,EAAE,cAAuB,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;iBAC/E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACT;QACD,WAAW,EAAE,UAAU,EAAE,SAAS;QAClC,WAAW,EAAE,UAAU,EAAE,iBAAiB;QAC1C,YAAY,EAAE,UAAU,EAAE,gBAAgB;QAC1C,QAAQ,EAAE;YACR,UAAU,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI;YACrC,UAAU,EAAE,YAAY;YACxB,WAAW,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YAC3D,aAAa,EAAE,eAAe;YAC9B,YAAY,EAAE,cAAc;YAC5B,uBAAuB,EAAE,uBAAuB,IAAI,MAAM;YAC1D,sBAAsB,EAAE,mBAAmB,CAAC,WAAW,CAAC,MAAM;SAC/D;QACD,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB;KAChF,EAAE,WAAW,CAAC,CAAA;IACf,MAAM,gBAAgB,GAAqB;QACzC,KAAK,EAAE,YAAY,CAAC,EAAE;QACtB,aAAa,EAAE,YAAY,CAAC,cAAc;QAC1C,SAAS,EAAE,YAAY,CAAC,UAAU;QAClC,IAAI,EAAE,YAAY,CAAC,IAAI;KACxB,CAAA;IACD,MAAM,+BAA+B,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;WACpE,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;IAExE,IAAI,CAAC;QACH,QAAQ,GAAG,oBAAoB,CAAC;YAC9B,aAAa,EAAE,QAAQ,CAAC,EAAE;YAC1B,WAAW;YACX,WAAW,EAAE,mBAAmB,CAAC,WAAW;YAC5C,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YACrD,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,cAAc;YACtB,EAAE,EAAE,WAAW;YACf,gBAAgB;YAChB,wBAAwB;YACxB,oBAAoB;YACpB,mBAAmB;YACnB,eAAe,EAAE,uBAAuB;YACxC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI;SACpC,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sBAAsB,CAAC;YACrB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,YAAY,CAAC,EAAE;YACtB,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,OAAO;YACrB,OAAO,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC5I,SAAS,EAAE,kBAAkB;SAC9B,EAAE,WAAW,CAAC,CAAA;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAClG,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,sBAAsB,CAAC;YACrB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,YAAY,CAAC,EAAE;YACtB,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,uCAAuC,EAAE;YACzF,SAAS,EAAE,kBAAkB;SAC9B,EAAE,WAAW,CAAC,CAAA;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAA;IACnF,CAAC;IAED,IAAI,+BAA+B,EAAE,CAAC;QACpC,wBAAwB,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;QAC9D,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;AACzF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EAAE,EACnD,SAAS,EACT,aAAa,GAId,EAA8C,EAAE;IAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAA;IAC7F,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,EACT,aAAa,EACb,WAAW,GAKZ,EAAqC,EAAE;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACtC,kEAAkE;IACpE,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAA;IACzE,MAAM,sBAAsB,GAAG,qCAAqC,CAAC,aAAa,CAAC,CAAA;IAEnF,yBAAyB,CAAC,aAAa,CAAC,CAAA;IACxC,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAEhC,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,aAAa,IAAI,sBAAsB,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IACvF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;AACvD,CAAC,CAAA"}
1
+ {"version":3,"file":"specOperations.js","sourceRoot":"","sources":["../../../server/lib/specOperations.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import db from '../db.js';
2
2
  import config from './config.js';
3
3
  import { withExecutionRunTransaction } from './executionRuns.js';
4
+ import { hasPendingAskQuestionSet } from './planQuestions.js';
4
5
  import { resolveExistingWorktreePath } from './git.js';
5
6
  import { getEffectiveProject } from './projects.js';
6
7
  import { getTicket, resolveTicketBranch, resolveTicketTool } from './tickets.js';
@@ -35,7 +36,7 @@ const getMode = (payload) => {
35
36
  const matchesRequestedProject = (ticket, requestedProjectId) => {
36
37
  return requestedProjectId === undefined || ticket.project_id === requestedProjectId;
37
38
  };
38
- export const submitTicketFollowUp = ({ ticketId, requestedProjectId, payload, broadcaster, initiation, existingTriggerMessageId, persistTriggerMessage = true, providerContinuation, retryRunConfig, }) => {
39
+ export const submitTicketFollowUp = ({ ticketId, requestedProjectId, payload, broadcaster, initiation, existingTriggerMessageId, persistTriggerMessage = true, providerContinuation, retryRunConfig, questionResolution, }) => {
39
40
  const ticket = getTicket(ticketId);
40
41
  if (!ticket) {
41
42
  return { ok: false, status: 404, error: 'Not found' };
@@ -47,7 +48,10 @@ export const submitTicketFollowUp = ({ ticketId, requestedProjectId, payload, br
47
48
  return { ok: false, status: 400, error: 'Only non-plan tickets can accept follow-up prompts' };
48
49
  }
49
50
  if (ticket.agent_status === 'running') {
50
- return { ok: false, status: 409, error: 'Ticket is already running' };
51
+ return { ok: false, status: 409, error: 'Ticket is already running', value: ticket };
52
+ }
53
+ if (!questionResolution && hasPendingAskQuestionSet(ticket.messages)) {
54
+ return { ok: false, status: 409, error: 'Resolve or dismiss the pending question set before continuing.', value: ticket };
51
55
  }
52
56
  const existingTrigger = existingTriggerMessageId ? getTicketMessage(existingTriggerMessageId) : null;
53
57
  if (existingTriggerMessageId && (!existingTrigger
@@ -90,6 +94,7 @@ export const submitTicketFollowUp = ({ ticketId, requestedProjectId, payload, br
90
94
  let executionContext;
91
95
  try {
92
96
  const committed = withExecutionRunTransaction(transaction => {
97
+ questionResolution?.accept();
93
98
  const messageId = existingTrigger?.id ?? (persistTriggerMessage
94
99
  ? createTicketMessage({
95
100
  ticketId: ticket.id,
@@ -152,6 +157,7 @@ export const submitTicketFollowUp = ({ ticketId, requestedProjectId, payload, br
152
157
  const acceptedTicket = getTicket(ticket.id) ?? ticket;
153
158
  broadcaster.emit('ticket:updated', acceptedTicket);
154
159
  const compensate = () => {
160
+ questionResolution?.compensate();
155
161
  if (!existingTrigger && triggerMessageId) {
156
162
  db.prepare(`
157
163
  DELETE FROM execution_run_links
@@ -195,11 +201,12 @@ export const submitTicketFollowUp = ({ ticketId, requestedProjectId, payload, br
195
201
  ok: false,
196
202
  status: rejection.reason === 'queue_failed' ? 503 : 409,
197
203
  error: rejection.error ?? 'Ticket is already running',
204
+ value: getTicket(ticket.id) ?? ticket,
198
205
  };
199
206
  }
200
- return { ok: true, status: 200, value: getTicket(ticket.id) ?? ticket };
207
+ return { ok: true, status: 200, value: getTicket(ticket.id) ?? ticket, executionContext };
201
208
  };
202
- export const submitPlanTicketFollowUp = ({ ticketId, requestedProjectId, payload, broadcaster, initiation, existingTriggerMessageId, providerContinuation, retryRunConfig, }) => {
209
+ export const submitPlanTicketFollowUp = ({ ticketId, requestedProjectId, payload, broadcaster, initiation, existingTriggerMessageId, providerContinuation, retryRunConfig, questionResolution, }) => {
203
210
  const ticket = getTicket(ticketId);
204
211
  if (!ticket) {
205
212
  return { ok: false, status: 404, error: 'Not found' };
@@ -211,7 +218,10 @@ export const submitPlanTicketFollowUp = ({ ticketId, requestedProjectId, payload
211
218
  return { ok: false, status: 400, error: 'Only plan tickets can accept planning follow-up prompts' };
212
219
  }
213
220
  if (ticket.agent_status === 'running') {
214
- return { ok: false, status: 409, error: 'Ticket is already running' };
221
+ return { ok: false, status: 409, error: 'Ticket is already running', value: ticket };
222
+ }
223
+ if (!questionResolution && hasPendingAskQuestionSet(ticket.messages)) {
224
+ return { ok: false, status: 409, error: 'Resolve or dismiss the pending question set before continuing.', value: ticket };
215
225
  }
216
226
  const existingTrigger = existingTriggerMessageId ? getTicketMessage(existingTriggerMessageId) : null;
217
227
  if (existingTriggerMessageId && (!existingTrigger
@@ -245,6 +255,7 @@ export const submitPlanTicketFollowUp = ({ ticketId, requestedProjectId, payload
245
255
  let executionContext;
246
256
  try {
247
257
  const committed = withExecutionRunTransaction(transaction => {
258
+ questionResolution?.accept();
248
259
  const messageId = existingTrigger?.id ?? createTicketMessage({
249
260
  ticketId: ticket.id,
250
261
  role: 'user',
@@ -309,6 +320,7 @@ export const submitPlanTicketFollowUp = ({ ticketId, requestedProjectId, payload
309
320
  triggerMessageId,
310
321
  compensationDomainStatus: ticketSnapshot.agent_status ?? 'idle',
311
322
  compensate: () => {
323
+ questionResolution?.compensate();
312
324
  if (!existingTrigger) {
313
325
  db.prepare(`
314
326
  DELETE FROM execution_run_links
@@ -331,8 +343,9 @@ export const submitPlanTicketFollowUp = ({ ticketId, requestedProjectId, payload
331
343
  ok: false,
332
344
  status: scheduling.reason === 'queue_failed' ? 503 : 409,
333
345
  error: scheduling.error,
346
+ value: getTicket(ticket.id) ?? ticket,
334
347
  };
335
348
  }
336
- return { ok: true, status: 200, value: getTicket(ticket.id) ?? ticket };
349
+ return { ok: true, status: 200, value: getTicket(ticket.id) ?? ticket, executionContext };
337
350
  };
338
351
  //# sourceMappingURL=ticketFollowUpOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ticketFollowUpOperations.js","sourceRoot":"","sources":["../../../server/lib/ticketFollowUpOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticketFollowUpOperations.js","sourceRoot":"","sources":["../../../server/lib/ticketFollowUpOperations.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,34 @@
1
1
  import { randomUUID } from 'crypto';
2
2
  import db from '../db.js';
3
+ import { parsePlanMessageMetadata } from './planQuestions.js';
3
4
  import { parseTranscriptRunSnapshots } from './transcriptRuns.js';
4
5
  const listTicketMessagesStatement = db.prepare(`
5
- SELECT id, ticket_id, role, kind, content, response_timing, bundle_visible_at, origin, transcript_runs_json, created_at
6
+ SELECT id, ticket_id, role, kind, content, metadata_json, response_timing, bundle_visible_at, origin, transcript_runs_json, created_at
6
7
  FROM ticket_messages
7
8
  WHERE ticket_id = ?
8
9
  ORDER BY created_at ASC, rowid ASC
9
10
  `);
10
11
  const getDescriptionMessageStatement = db.prepare(`
11
- SELECT id, ticket_id, role, kind, content, response_timing, bundle_visible_at, origin, transcript_runs_json, created_at
12
+ SELECT id, ticket_id, role, kind, content, metadata_json, response_timing, bundle_visible_at, origin, transcript_runs_json, created_at
12
13
  FROM ticket_messages
13
14
  WHERE ticket_id = ? AND kind = 'description'
14
15
  ORDER BY created_at ASC, rowid ASC
15
16
  LIMIT 1
16
17
  `);
17
18
  const getTicketMessageStatement = db.prepare(`
18
- SELECT id, ticket_id, role, kind, content, response_timing, bundle_visible_at, origin, transcript_runs_json, created_at
19
+ SELECT id, ticket_id, role, kind, content, metadata_json, response_timing, bundle_visible_at, origin, transcript_runs_json, created_at
19
20
  FROM ticket_messages
20
21
  WHERE id = ?
21
22
  `);
22
23
  const insertTicketMessageStatement = db.prepare(`
23
- INSERT INTO ticket_messages (id, ticket_id, role, kind, content, response_timing, origin, transcript_runs_json)
24
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
24
+ INSERT INTO ticket_messages (id, ticket_id, role, kind, content, metadata_json, response_timing, origin, transcript_runs_json)
25
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
26
+ `);
27
+ const supersedePendingTicketQuestionSetsStatement = db.prepare(`
28
+ UPDATE ticket_messages
29
+ SET metadata_json = json_set(metadata_json, '$.ask_question.status', 'superseded')
30
+ WHERE ticket_id = ?
31
+ AND json_extract(metadata_json, '$.ask_question.status') = 'pending'
25
32
  `);
26
33
  const updateTicketMessageTranscriptRunsStatement = db.prepare(`
27
34
  UPDATE ticket_messages
@@ -48,9 +55,11 @@ const clearTicketStreamingResponseStatement = db.prepare(`
48
55
  `);
49
56
  export const listTicketMessages = (ticketId) => {
50
57
  return listTicketMessagesStatement.all(ticketId).map(row => {
51
- const { transcript_runs_json: transcriptRunsJson, ...message } = row;
58
+ const { metadata_json: metadataJson, transcript_runs_json: transcriptRunsJson, ...message } = row;
59
+ const metadata = parsePlanMessageMetadata(metadataJson);
52
60
  return {
53
61
  ...message,
62
+ ...(metadata ? { metadata } : {}),
54
63
  transcript_runs: parseTranscriptRunSnapshots(transcriptRunsJson),
55
64
  };
56
65
  });
@@ -60,17 +69,37 @@ export const getTicketMessage = (messageId) => {
60
69
  if (!row) {
61
70
  return null;
62
71
  }
63
- const { transcript_runs_json: transcriptRunsJson, ...message } = row;
72
+ const { metadata_json: metadataJson, transcript_runs_json: transcriptRunsJson, ...message } = row;
73
+ const metadata = parsePlanMessageMetadata(metadataJson);
64
74
  return {
65
75
  ...message,
76
+ ...(metadata ? { metadata } : {}),
66
77
  transcript_runs: parseTranscriptRunSnapshots(transcriptRunsJson),
67
78
  };
68
79
  };
69
- export const createTicketMessage = ({ ticketId, role, kind, content, responseTiming, origin, transcriptRuns, }) => {
80
+ export const createTicketMessage = ({ ticketId, role, kind, content, metadata, responseTiming, origin, transcriptRuns, }) => {
70
81
  const id = randomUUID();
71
- insertTicketMessageStatement.run(id, ticketId, role, kind, content, responseTiming ? JSON.stringify(responseTiming) : null, origin ?? null, transcriptRuns?.length ? JSON.stringify(transcriptRuns) : null);
82
+ const resolvedMetadata = typeof metadata === 'function' ? metadata(id) : metadata;
83
+ const insertMessage = () => insertTicketMessageStatement.run(id, ticketId, role, kind, content, resolvedMetadata ? JSON.stringify(resolvedMetadata) : null, responseTiming ? JSON.stringify(responseTiming) : null, origin ?? null, transcriptRuns?.length ? JSON.stringify(transcriptRuns) : null);
84
+ if (resolvedMetadata?.ask_question?.status === 'pending') {
85
+ db.transaction(() => {
86
+ supersedePendingTicketQuestionSetsStatement.run(ticketId);
87
+ insertMessage();
88
+ })();
89
+ }
90
+ else {
91
+ insertMessage();
92
+ }
72
93
  return id;
73
94
  };
95
+ export const compareAndSetTicketMessageMetadata = (messageId, setId, metadata) => {
96
+ return db.prepare(`
97
+ UPDATE ticket_messages SET metadata_json = ?
98
+ WHERE id = ?
99
+ AND json_extract(metadata_json, '$.ask_question.id') = ?
100
+ AND json_extract(metadata_json, '$.ask_question.status') = 'pending'
101
+ `).run(JSON.stringify(metadata), messageId, setId).changes === 1;
102
+ };
74
103
  export const updateTicketMessageTranscriptRuns = (messageId, transcriptRuns) => {
75
104
  updateTicketMessageTranscriptRunsStatement.run(transcriptRuns?.length ? JSON.stringify(transcriptRuns) : null, messageId);
76
105
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ticketMessages.js","sourceRoot":"","sources":["../../../server/lib/ticketMessages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticketMessages.js","sourceRoot":"","sources":["../../../server/lib/ticketMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAGjE,MAAM,2BAA2B,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;CAK9C,CAAC,CAAA;AAEF,MAAM,8BAA8B,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;CAMjD,CAAC,CAAA;AAEF,MAAM,yBAAyB,GAAG,EAAE,CAAC,OAAO,CAAC;;;;CAI5C,CAAC,CAAA;AAEF,MAAM,4BAA4B,GAAG,EAAE,CAAC,OAAO,CAAC;;;CAG/C,CAAC,CAAA;AAEF,MAAM,2CAA2C,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;CAK9D,CAAC,CAAA;AAEF,MAAM,0CAA0C,GAAG,EAAE,CAAC,OAAO,CAAC;;;;CAI7D,CAAC,CAAA;AAEF,MAAM,mCAAmC,GAAG,EAAE,CAAC,OAAO,CAAC;;;;CAItD,CAAC,CAAA;AAEF,MAAM,uCAAuC,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;CAM1D,CAAC,CAAA;AAEF,MAAM,qCAAqC,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;CAKxD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAmB,EAAE;IACtE,OAAQ,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACjF,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAA;QACjG,MAAM,QAAQ,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAA;QACvD,OAAO;YACL,GAAG,OAAO;YACV,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,eAAe,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;SACjE,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAwB,EAAE;IAC1E,MAAM,GAAG,GAAG,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAiC,CAAA;IACpF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAA;IACjG,MAAM,QAAQ,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAA;IACvD,OAAO;QACL,GAAG,OAAO;QACV,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,eAAe,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;KACjE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,MAAM,EACN,cAAc,GAUf,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;IACvB,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IACjF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,4BAA4B,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACnS,IAAI,gBAAgB,EAAE,YAAY,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QACzD,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,2CAA2C,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACzD,aAAa,EAAE,CAAA;QACjB,CAAC,CAAC,EAAE,CAAA;IACN,CAAC;SAAM,CAAC;QACN,aAAa,EAAE,CAAA;IACjB,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,SAAiB,EAAE,KAAa,EAAE,QAA6B,EAAE,EAAE;IACpH,OAAO,EAAE,CAAC,OAAO,CAAC;;;;;GAKjB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAA;AAClE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,SAAiB,EAAE,cAA8C,EAAE,EAAE;IACrH,0CAA0C,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAC3H,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,QAAgB,EAAE,WAAmB,EAAE,EAAE;IACtF,MAAM,QAAQ,GAAG,8BAA8B,CAAC,GAAG,CAAC,QAAQ,CAAiC,CAAA;IAC7F,IAAI,QAAQ,EAAE,CAAC;QACb,mCAAmC,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjE,OAAO,QAAQ,CAAC,EAAE,CAAA;IACpB,CAAC;IAED,OAAO,mBAAmB,CAAC;QACzB,QAAQ;QACR,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,WAAW;KACrB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,QAAgB,EAAE,EAAE;IACvE,uCAAuC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC/D,qCAAqC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACrD,CAAC,CAAA"}
@@ -12,6 +12,7 @@ import { clearCachedAssignedIssues } from './integrations/assignedIssuesCache.js
12
12
  import { startBuild } from '../workers/build.js';
13
13
  import { startReview } from '../workers/review.js';
14
14
  import { getAutomationProgression, waitAutomationProgression } from './automationProgression.js';
15
+ import { closePendingTicketPlanQuestionSet, listPendingTicketPlanQuestionSetMessageIds, restoreClosedTicketPlanQuestionSets } from './planQuestionOperations.js';
15
16
  const VALID_TICKET_STATES = ['plan', 'build', 'review'];
16
17
  const getBundleBuildBlockerError = (kind) => {
17
18
  if (kind === 'review') {
@@ -107,6 +108,7 @@ export const transitionTicketState = ({ ticketId, requestedState, requestedProje
107
108
  const shouldStartBuild = shouldStartBundleBuildNow(existing);
108
109
  if (!shouldStartBuild && existing.project_id && existing.worktree_bundle_id) {
109
110
  const queued = db.transaction(() => {
111
+ closePendingTicketPlanQuestionSet(existing.id);
110
112
  const buildTransition = prepareTicketForBuild(existing.id);
111
113
  if (!buildTransition.ok) {
112
114
  throw new Error(buildTransition.error);
@@ -122,7 +124,9 @@ export const transitionTicketState = ({ ticketId, requestedState, requestedProje
122
124
  broadcaster.emit('ticket:updated', queued);
123
125
  return { ok: true, status: 200, value: queued };
124
126
  }
127
+ const pendingQuestionMessageIds = listPendingTicketPlanQuestionSetMessageIds(existing.id);
125
128
  const acceptBuild = () => {
129
+ closePendingTicketPlanQuestionSet(existing.id);
126
130
  const buildTransition = prepareTicketForBuild(existing.id);
127
131
  if (!buildTransition.ok) {
128
132
  throw new Error(buildTransition.error);
@@ -139,7 +143,12 @@ export const transitionTicketState = ({ ticketId, requestedState, requestedProje
139
143
  return {
140
144
  ticket: buildTransition.ticket,
141
145
  sequenceId,
142
- ...(sequenceId ? { compensate: () => compensateBuildSequenceAcceptance(sequenceId, [buildTransition.ticket.id]) } : {}),
146
+ compensate: () => {
147
+ if (sequenceId) {
148
+ compensateBuildSequenceAcceptance(sequenceId, [buildTransition.ticket.id]);
149
+ }
150
+ restoreClosedTicketPlanQuestionSets(existing.id, pendingQuestionMessageIds);
151
+ },
143
152
  };
144
153
  };
145
154
  const scheduling = startBuild(existing, broadcaster, { accept: acceptBuild });