@straiffi/archon 1.4.2 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/client/assets/{TestsDialog-B1uwgeQE.js → TestsDialog-BPopdVxR.js} +1 -1
  2. package/dist/client/assets/{architectureDiagram-3BPJPVTR-ae8dFJ9T.js → architectureDiagram-3BPJPVTR-DfwHuRqk.js} +1 -1
  3. package/dist/client/assets/{blockDiagram-GPEHLZMM-D7pbEjha.js → blockDiagram-GPEHLZMM-nxH-eJ6e.js} +1 -1
  4. package/dist/client/assets/{c4Diagram-AAUBKEIU-Bv5inUss.js → c4Diagram-AAUBKEIU-D0L_4sId.js} +1 -1
  5. package/dist/client/assets/channel-CEeppbUP.js +1 -0
  6. package/dist/client/assets/{chunk-2J33WTMH-Dv8A9yde.js → chunk-2J33WTMH-DaP-3J9_.js} +1 -1
  7. package/dist/client/assets/{chunk-3OPIFGDE-C50OENMg.js → chunk-3OPIFGDE-Da5WOv53.js} +1 -1
  8. package/dist/client/assets/{chunk-5ZQYHXKU-eVqo0pH1.js → chunk-5ZQYHXKU-C29fkaU6.js} +1 -1
  9. package/dist/client/assets/{chunk-727SXJPM-CGkzoG8B.js → chunk-727SXJPM-9EPCn2QJ.js} +1 -1
  10. package/dist/client/assets/{chunk-AQP2D5EJ-BbYVRsCk.js → chunk-AQP2D5EJ-CKTPKZvS.js} +1 -1
  11. package/dist/client/assets/{chunk-CSCIHK7Q-DU7aZK8a.js → chunk-CSCIHK7Q-Cf8cOAXC.js} +1 -1
  12. package/dist/client/assets/{chunk-KSCS5N6A-DA8KY2-g.js → chunk-KSCS5N6A-CVBRyuGp.js} +1 -1
  13. package/dist/client/assets/{chunk-L5ZTLDWV-DM9-zYjF.js → chunk-L5ZTLDWV-BrsnO2aK.js} +1 -1
  14. package/dist/client/assets/{chunk-LZXEDZCA-DR69oZWS.js → chunk-LZXEDZCA-DVjpyGpu.js} +2 -2
  15. package/dist/client/assets/{chunk-ND2GUHAM-PgSjipvy.js → chunk-ND2GUHAM-BQU8MYyf.js} +1 -1
  16. package/dist/client/assets/{chunk-NZK2D7GU-X2ffkm-l.js → chunk-NZK2D7GU-Cdabf9Po.js} +1 -1
  17. package/dist/client/assets/{chunk-O5CBEL6O-BwTuL5Ds.js → chunk-O5CBEL6O-BgIeRwwm.js} +1 -1
  18. package/dist/client/assets/{chunk-WU5MYG2G-3A60YtJe.js → chunk-WU5MYG2G-Wp_Hf6AW.js} +1 -1
  19. package/dist/client/assets/classDiagram-4FO5ZUOK-BylOKB6Z.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DBnX_vLf.js +1 -0
  21. package/dist/client/assets/{dagre-BM42HDAG-97Lmzo1v.js → dagre-BM42HDAG-CoNQi-oS.js} +1 -1
  22. package/dist/client/assets/{diagram-2AECGRRQ-Bsf_NTtC.js → diagram-2AECGRRQ-CAhtukUy.js} +1 -1
  23. package/dist/client/assets/{diagram-5GNKFQAL-CkDPOt_3.js → diagram-5GNKFQAL-QUTjDBJ6.js} +1 -1
  24. package/dist/client/assets/{diagram-KO2AKTUF-ByLp_tLp.js → diagram-KO2AKTUF-B_b-Go1H.js} +1 -1
  25. package/dist/client/assets/{diagram-LMA3HP47-DgIOCtSf.js → diagram-LMA3HP47-L1SfLJYe.js} +1 -1
  26. package/dist/client/assets/{diagram-OG6HWLK6-Dij1QR8M.js → diagram-OG6HWLK6-CuDtPgg6.js} +1 -1
  27. package/dist/client/assets/{erDiagram-TEJ5UH35-uTgrdKRM.js → erDiagram-TEJ5UH35-DXHy8_e_.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-I6XJVG4X-D3VYp11z.js → flowDiagram-I6XJVG4X-CBZISnup.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-6RSMTGT7-BznyqZ31.js → ganttDiagram-6RSMTGT7-RCy-zLGQ.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-GsstcxtF.js → gitGraphDiagram-PVQCEYII-DskEPDnQ.js} +1 -1
  31. package/dist/client/assets/{index-D6fbF563.js → index-D5iSg0Uo.js} +106 -106
  32. package/dist/client/assets/{infoDiagram-5YYISTIA-BS3PqCd3.js → infoDiagram-5YYISTIA-FMGHdgyz.js} +1 -1
  33. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BeWmiFk3.js → ishikawaDiagram-YF4QCWOH-BXSfJnbv.js} +1 -1
  34. package/dist/client/assets/{journeyDiagram-JHISSGLW-CWXtsbWR.js → journeyDiagram-JHISSGLW-T4-wcHCG.js} +1 -1
  35. package/dist/client/assets/{kanban-definition-UN3LZRKU-CTNXURgY.js → kanban-definition-UN3LZRKU-DHZhiDr3.js} +1 -1
  36. package/dist/client/assets/{line-B-Egb4Pn.js → line-Xa5t6k8v.js} +1 -1
  37. package/dist/client/assets/{mermaid-parser.core-B8ZZbty_.js → mermaid-parser.core-BiCD_sVB.js} +1 -1
  38. package/dist/client/assets/{mermaid.core-BSugEkw8.js → mermaid.core-DaxXdGt3.js} +3 -3
  39. package/dist/client/assets/{mindmap-definition-RKZ34NQL-4raxG21B.js → mindmap-definition-RKZ34NQL-bd5fxd9H.js} +1 -1
  40. package/dist/client/assets/{pieDiagram-4H26LBE5-BtA7Ukd1.js → pieDiagram-4H26LBE5-c-OXSDlp.js} +1 -1
  41. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-AHK7Q6xb.js → quadrantDiagram-W4KKPZXB-BWxKltH_.js} +1 -1
  42. package/dist/client/assets/{requirementDiagram-4Y6WPE33-CLjXFJnk.js → requirementDiagram-4Y6WPE33-Csvm66Jb.js} +1 -1
  43. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BCPQIPdV.js → sankeyDiagram-5OEKKPKP-C14C_mZ_.js} +1 -1
  44. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BkYCIWVq.js → sequenceDiagram-3UESZ5HK-CBT2OM3Z.js} +1 -1
  45. package/dist/client/assets/{stateDiagram-AJRCARHV-CRKkkMY5.js → stateDiagram-AJRCARHV-3l_BEQe1.js} +1 -1
  46. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BPmJ_kyl.js +1 -0
  47. package/dist/client/assets/{timeline-definition-PNZ67QCA-i5lwfxwF.js → timeline-definition-PNZ67QCA-C9BX3_MI.js} +1 -1
  48. package/dist/client/assets/{vennDiagram-CIIHVFJN-CAOpbfYt.js → vennDiagram-CIIHVFJN-BDGnzsV3.js} +1 -1
  49. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-PLngUKdt.js → wardleyDiagram-YWT4CUSO-B0wQfEUK.js} +1 -1
  50. package/dist/client/assets/{xychartDiagram-2RQKCTM6-BZenFdgF.js → xychartDiagram-2RQKCTM6-G39MJ6II.js} +1 -1
  51. package/dist/client/index.html +1 -1
  52. package/dist/server/db.js +54 -2
  53. package/dist/server/db.js.map +1 -1
  54. package/dist/server/index.js +54 -32
  55. package/dist/server/index.js.map +1 -1
  56. package/dist/server/lib/agent.js +13 -5
  57. package/dist/server/lib/agent.js.map +1 -1
  58. package/dist/server/lib/planModeQuestions.js +1 -0
  59. package/dist/server/lib/planModeQuestions.js.map +1 -1
  60. package/dist/server/lib/specOperations.js +6 -2
  61. package/dist/server/lib/specOperations.js.map +1 -1
  62. package/dist/server/lib/ticketAutomation.js +5 -5
  63. package/dist/server/lib/ticketAutomation.js.map +1 -1
  64. package/dist/server/lib/ticketSettingsOperations.js +2 -35
  65. package/dist/server/lib/ticketSettingsOperations.js.map +1 -1
  66. package/dist/server/lib/tickets.js +21 -14
  67. package/dist/server/lib/tickets.js.map +1 -1
  68. package/dist/server/workers/build.js +1 -1
  69. package/dist/server/workers/build.js.map +1 -1
  70. package/dist/server/workers/chat.js +14 -10
  71. package/dist/server/workers/chat.js.map +1 -1
  72. package/dist/server/workers/followUp.js +6 -3
  73. package/dist/server/workers/followUp.js.map +1 -1
  74. package/dist/server/workers/plan.js +7 -4
  75. package/dist/server/workers/plan.js.map +1 -1
  76. package/dist/server/workers/review.js +1 -1
  77. package/dist/server/workers/review.js.map +1 -1
  78. package/dist/server/workers/specSession.js +27 -16
  79. package/dist/server/workers/specSession.js.map +1 -1
  80. package/package.json +1 -1
  81. package/dist/client/assets/channel-Bzb5_GUt.js +0 -1
  82. package/dist/client/assets/classDiagram-4FO5ZUOK-DHGZaJVi.js +0 -1
  83. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BN7x7YaI.js +0 -1
  84. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-B4u1psZz.js +0 -1
@@ -64,7 +64,7 @@ import { isTicketAgentSettingsPayload, updateTicketAgentSettings, } from './lib/
64
64
  import { resolveBundleReviewOwner, transitionBundleToReview } from './lib/bundleReviewOperations.js';
65
65
  import { getActiveBundleStageChangeHead, undoTicketStage } from './lib/ticketUndo.js';
66
66
  import { closeAllTerminalSessions, createProjectTerminalSession, createTerminalSessionForWorkspace, destroyTerminalSessionById, registerTerminalSocketHandlers, } from './lib/terminal.js';
67
- import { countBundleTickets, createTicketRecord, createBundle, deleteBundle, ensureProjectRootBundle, autoParkTicketIfStale, autoParkSettledBundleTicket, isBundleSettledForAutoPark, clearAutoParkDismissalIfNeeded, assignTicketDoneOrder, assignTicketLaneOrder, getBundle, getBundleByName, getBundleByBranch, getBundleRepresentativeTicketContext, isProjectRootBundle, getTicket, isBundledTicket, listTicketsInRunContext, listBundles, listBoardTicketEnrichment, listTickets, resolveTicketBranch, resolveTicketTool, } from './lib/tickets.js';
67
+ import { countBundleTickets, createTicketRecord, createBundle, deleteBundle, ensureProjectRootBundle, autoParkTicketIfStale, autoParkSettledBundleTicket, isBundleSettledForAutoPark, clearAutoParkDismissalIfNeeded, assignTicketDoneOrder, assignTicketLaneOrder, getBundle, getBundleByName, getBundleByBranch, getBundleRepresentativeTicketContext, isProjectRootBundle, getTicket, isBundledTicket, listTicketsInRunContext, listBundles, listBoardTicketEnrichment, listTickets, resolveTicketBranch, resolveTicketTool, updateBundleAutomationConfig, } from './lib/tickets.js';
68
68
  import { createTicketMessage, upsertTicketDescriptionMessage } from './lib/ticketMessages.js';
69
69
  import { HttpError } from './lib/httpError.js';
70
70
  import { parseIncomingExternalSource } from './lib/externalSource.js';
@@ -1039,6 +1039,7 @@ const serializeBundleRow = (projectId, bundle) => {
1039
1039
  pull_request: getGitHubConnectionConfig(projectId)
1040
1040
  ? serializeBundlePullRequest(getBundlePullRequestRecord(bundle.id, projectId))
1041
1041
  : null,
1042
+ automation_config: resolveAutomationConfig(bundle, project),
1042
1043
  };
1043
1044
  };
1044
1045
  const serializeGitHubPullRequestSummary = (pullRequest) => {
@@ -3168,6 +3169,57 @@ app.delete('/bundles/:id', (req, res) => {
3168
3169
  });
3169
3170
  res.status(204).end();
3170
3171
  });
3172
+ app.patch('/bundles/:id', (req, res) => {
3173
+ const result = getRequiredProject(req);
3174
+ if ('error' in result) {
3175
+ return res.status(400).json({ error: result.error });
3176
+ }
3177
+ const bundle = getBundle(req.params.id, result.project.id);
3178
+ if (!bundle) {
3179
+ return res.status(404).json({ error: 'Bundle not found' });
3180
+ }
3181
+ if (isProjectRootBundle(bundle)) {
3182
+ return res.status(409).json({ error: 'Project root bundle automation cannot be overridden' });
3183
+ }
3184
+ let automationDepth = bundle.automation_depth ?? null;
3185
+ if (hasOwn(req.body, 'automation_depth')) {
3186
+ const value = req.body.automation_depth;
3187
+ if (value == null || value === '') {
3188
+ automationDepth = null;
3189
+ }
3190
+ else if (isAutomationDepth(value)) {
3191
+ automationDepth = value;
3192
+ }
3193
+ else {
3194
+ return res.status(400).json({
3195
+ error: 'automation_depth must be one of: manual, auto_review, auto_commit, auto_push, auto_pr',
3196
+ });
3197
+ }
3198
+ }
3199
+ let automationReviewFixEnabled = bundle.automation_review_fix_enabled ?? null;
3200
+ if (hasOwn(req.body, 'automation_review_fix_enabled')) {
3201
+ const value = req.body.automation_review_fix_enabled;
3202
+ if (value == null) {
3203
+ automationReviewFixEnabled = null;
3204
+ }
3205
+ else if (typeof value === 'boolean') {
3206
+ automationReviewFixEnabled = value ? 1 : 0;
3207
+ }
3208
+ else {
3209
+ return res.status(400).json({ error: 'automation_review_fix_enabled must be a boolean' });
3210
+ }
3211
+ }
3212
+ const updated = updateBundleAutomationConfig({
3213
+ bundleId: bundle.id,
3214
+ projectId: result.project.id,
3215
+ automationDepth,
3216
+ automationReviewFixEnabled,
3217
+ });
3218
+ listBundleTickets(result.project.id, bundle.id).forEach(ticket => {
3219
+ io.emit('ticket:updated', ticket);
3220
+ });
3221
+ res.json(serializeBundleRow(result.project.id, updated));
3222
+ });
3171
3223
  app.post('/bundles/:id/build', (req, res) => {
3172
3224
  const result = getRequiredProject(req);
3173
3225
  if ('error' in result) {
@@ -3312,7 +3364,7 @@ app.post('/bundles/:id/resume-automation', async (req, res) => {
3312
3364
  if (!project) {
3313
3365
  return res.status(400).json({ error: 'Ticket project no longer exists' });
3314
3366
  }
3315
- const automationConfig = resolveAutomationConfig(owner, project);
3367
+ const automationConfig = resolveAutomationConfig(owner.bundle ?? null, project);
3316
3368
  if (owner.state === 'review' && owner.agent_status === 'running') {
3317
3369
  return res.status(409).json({ error: 'Review already running' });
3318
3370
  }
@@ -4945,34 +4997,6 @@ app.post('/tickets', (req, res) => {
4945
4997
  const bundleId = typeof req.body.worktree_bundle_id === 'string'
4946
4998
  ? req.body.worktree_bundle_id.trim()
4947
4999
  : '';
4948
- let automationDepth = null;
4949
- if (hasOwn(req.body, 'automation_depth')) {
4950
- const value = req.body.automation_depth;
4951
- if (value == null || value === '') {
4952
- automationDepth = null;
4953
- }
4954
- else if (isAutomationDepth(value)) {
4955
- automationDepth = value;
4956
- }
4957
- else {
4958
- return res.status(400).json({
4959
- error: 'automation_depth must be one of: manual, auto_review, auto_commit, auto_push, auto_pr',
4960
- });
4961
- }
4962
- }
4963
- let automationReviewFixEnabled = null;
4964
- if (hasOwn(req.body, 'automation_review_fix_enabled')) {
4965
- const value = req.body.automation_review_fix_enabled;
4966
- if (value == null) {
4967
- automationReviewFixEnabled = null;
4968
- }
4969
- else if (typeof value === 'boolean') {
4970
- automationReviewFixEnabled = value ? 1 : 0;
4971
- }
4972
- else {
4973
- return res.status(400).json({ error: 'automation_review_fix_enabled must be a boolean' });
4974
- }
4975
- }
4976
5000
  try {
4977
5001
  const externalSource = parseIncomingExternalSource(req.body.external_source);
4978
5002
  const resolvedBundleId = (() => {
@@ -4999,8 +5023,6 @@ app.post('/tickets', (req, res) => {
4999
5023
  projectId: project_id,
5000
5024
  worktreeBundleId: resolvedBundleId,
5001
5025
  externalSource,
5002
- automationDepth,
5003
- automationReviewFixEnabled,
5004
5026
  });
5005
5027
  io.emit('ticket:created', ticket);
5006
5028
  res.status(201).json(ticket);