@straiffi/archon 1.3.5 → 1.3.6

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-CxOO-QI9.js +5 -0
  2. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CHnXshuZ.js → architectureDiagram-3BPJPVTR-zBQKBPbA.js} +1 -1
  3. package/dist/client/assets/{blockDiagram-GPEHLZMM-C4ZedL1G.js → blockDiagram-GPEHLZMM-CzYZL_-N.js} +1 -1
  4. package/dist/client/assets/{c4Diagram-AAUBKEIU-BuD-jPC_.js → c4Diagram-AAUBKEIU-DSDSWLp6.js} +1 -1
  5. package/dist/client/assets/channel-1BaddjWF.js +1 -0
  6. package/dist/client/assets/{chunk-2J33WTMH-BKDkaoQT.js → chunk-2J33WTMH-DbLfyQqC.js} +1 -1
  7. package/dist/client/assets/{chunk-3OPIFGDE-CS0HFD9a.js → chunk-3OPIFGDE-CLGLB7g_.js} +1 -1
  8. package/dist/client/assets/{chunk-5ZQYHXKU-DYo_TwPP.js → chunk-5ZQYHXKU-BIwBZ7yY.js} +1 -1
  9. package/dist/client/assets/{chunk-727SXJPM-BajKdB6e.js → chunk-727SXJPM-DovMQz6k.js} +1 -1
  10. package/dist/client/assets/{chunk-AQP2D5EJ-j2FtLU1G.js → chunk-AQP2D5EJ-KqjpoTb7.js} +1 -1
  11. package/dist/client/assets/{chunk-CSCIHK7Q-CTy5Vnsi.js → chunk-CSCIHK7Q-deZWgKeo.js} +1 -1
  12. package/dist/client/assets/{chunk-KSCS5N6A-DFdh0Cya.js → chunk-KSCS5N6A-TFVqgGHD.js} +1 -1
  13. package/dist/client/assets/{chunk-L5ZTLDWV-BFBha-m9.js → chunk-L5ZTLDWV-WFLYG2VH.js} +1 -1
  14. package/dist/client/assets/{chunk-LZXEDZCA-DpeaPMtX.js → chunk-LZXEDZCA-DhkM7gFV.js} +2 -2
  15. package/dist/client/assets/{chunk-ND2GUHAM-CazKz40j.js → chunk-ND2GUHAM-hnvkc2eb.js} +1 -1
  16. package/dist/client/assets/{chunk-NZK2D7GU-B2IFwDK1.js → chunk-NZK2D7GU-CNSU7InY.js} +1 -1
  17. package/dist/client/assets/{chunk-O5CBEL6O-Dr6DQwZn.js → chunk-O5CBEL6O-DqJEYjyT.js} +1 -1
  18. package/dist/client/assets/{chunk-WU5MYG2G-BTQnr7be.js → chunk-WU5MYG2G-XMnXur47.js} +1 -1
  19. package/dist/client/assets/classDiagram-4FO5ZUOK-BGo9hMel.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-D-_BNxT2.js +1 -0
  21. package/dist/client/assets/{dagre-BM42HDAG-BhO_9BZa.js → dagre-BM42HDAG-CUjnTe1Z.js} +1 -1
  22. package/dist/client/assets/{diagram-2AECGRRQ-2Qn456ux.js → diagram-2AECGRRQ-B6m9Giox.js} +1 -1
  23. package/dist/client/assets/{diagram-5GNKFQAL-svJkmW34.js → diagram-5GNKFQAL-BezeNS5y.js} +1 -1
  24. package/dist/client/assets/{diagram-KO2AKTUF-BkTHZ5mW.js → diagram-KO2AKTUF-RcU5K8Ej.js} +1 -1
  25. package/dist/client/assets/{diagram-LMA3HP47-uhDh1chZ.js → diagram-LMA3HP47-C3urL4ok.js} +1 -1
  26. package/dist/client/assets/{diagram-OG6HWLK6-TRif4ORE.js → diagram-OG6HWLK6-CZlIPGdR.js} +1 -1
  27. package/dist/client/assets/{erDiagram-TEJ5UH35-CVt_E331.js → erDiagram-TEJ5UH35-oMIKndtI.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-I6XJVG4X-B4s33tHN.js → flowDiagram-I6XJVG4X-By4oEsbM.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-6RSMTGT7-Dn2Tw0UP.js → ganttDiagram-6RSMTGT7-B48Cd3xk.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DL--5nPh.js → gitGraphDiagram-PVQCEYII-CRdbqoQK.js} +1 -1
  31. package/dist/client/assets/index-Q1dFgEV8.css +2 -0
  32. package/dist/client/assets/index-i7kaM60u.js +260 -0
  33. package/dist/client/assets/{infoDiagram-5YYISTIA-CaBMZo3i.js → infoDiagram-5YYISTIA-DP9dUT0m.js} +1 -1
  34. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BK8J4ndX.js → ishikawaDiagram-YF4QCWOH-DhquFyP5.js} +1 -1
  35. package/dist/client/assets/{journeyDiagram-JHISSGLW-BS7hFGG3.js → journeyDiagram-JHISSGLW-BN9q1Knp.js} +1 -1
  36. package/dist/client/assets/{kanban-definition-UN3LZRKU-Bp3uL0wq.js → kanban-definition-UN3LZRKU-Cj7DzzzB.js} +1 -1
  37. package/dist/client/assets/{line-BCYzOKh3.js → line-D0YirabY.js} +1 -1
  38. package/dist/client/assets/{mermaid-parser.core-8idx1Ea6.js → mermaid-parser.core-CIsRI40S.js} +1 -1
  39. package/dist/client/assets/{mermaid.core-CxR4-p_S.js → mermaid.core-HhTgHex1.js} +3 -3
  40. package/dist/client/assets/{mindmap-definition-RKZ34NQL--qrRjfiZ.js → mindmap-definition-RKZ34NQL-B0-ZfTQa.js} +1 -1
  41. package/dist/client/assets/{pieDiagram-4H26LBE5-PeY79WfN.js → pieDiagram-4H26LBE5-CWyIW6Nh.js} +1 -1
  42. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-UbrmuIOq.js → quadrantDiagram-W4KKPZXB-BMFHMQiI.js} +1 -1
  43. package/dist/client/assets/{requirementDiagram-4Y6WPE33-f9Mg2g9n.js → requirementDiagram-4Y6WPE33-BS-pXddR.js} +1 -1
  44. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Cc5IOQG3.js → sankeyDiagram-5OEKKPKP-sBOYH62r.js} +1 -1
  45. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BA_ghDe5.js → sequenceDiagram-3UESZ5HK-g4N59irI.js} +1 -1
  46. package/dist/client/assets/{stateDiagram-AJRCARHV-Cp7ykzNi.js → stateDiagram-AJRCARHV-BFCq2_7o.js} +1 -1
  47. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BJxmjLz-.js +1 -0
  48. package/dist/client/assets/{timeline-definition-PNZ67QCA-DGtYslSV.js → timeline-definition-PNZ67QCA-De4T7a_T.js} +1 -1
  49. package/dist/client/assets/{vennDiagram-CIIHVFJN-DUTouIKP.js → vennDiagram-CIIHVFJN-ClQ5qRjN.js} +1 -1
  50. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DKrISe1w.js → wardleyDiagram-YWT4CUSO-Bb87XKEB.js} +1 -1
  51. package/dist/client/assets/{xychartDiagram-2RQKCTM6-B66iktR0.js → xychartDiagram-2RQKCTM6-COQfOp4x.js} +1 -1
  52. package/dist/client/index.html +2 -2
  53. package/dist/server/db.js +45 -0
  54. package/dist/server/db.js.map +1 -1
  55. package/dist/server/index.js +65 -0
  56. package/dist/server/index.js.map +1 -1
  57. package/dist/server/lib/agent.js +244 -0
  58. package/dist/server/lib/agent.js.map +1 -1
  59. package/dist/server/lib/specArtifact.js +22 -5
  60. package/dist/server/lib/specArtifact.js.map +1 -1
  61. package/dist/server/lib/specReviewContext.js +128 -0
  62. package/dist/server/lib/specReviewContext.js.map +1 -0
  63. package/dist/server/lib/specReviewDraft.js +58 -0
  64. package/dist/server/lib/specReviewDraft.js.map +1 -0
  65. package/dist/server/lib/specReviewOperations.js +132 -0
  66. package/dist/server/lib/specReviewOperations.js.map +1 -0
  67. package/dist/server/lib/specReviews.js +329 -0
  68. package/dist/server/lib/specReviews.js.map +1 -0
  69. package/dist/server/lib/specs.js +6 -5
  70. package/dist/server/lib/specs.js.map +1 -1
  71. package/dist/server/lib/toolUpgrade.js +107 -0
  72. package/dist/server/lib/toolUpgrade.js.map +1 -0
  73. package/dist/server/workers/specReview.js +85 -0
  74. package/dist/server/workers/specReview.js.map +1 -0
  75. package/dist/server/workers/specSession.js +26 -11
  76. package/dist/server/workers/specSession.js.map +1 -1
  77. package/package.json +1 -1
  78. package/dist/client/assets/TestsDialog-B0WvkzrX.js +0 -5
  79. package/dist/client/assets/channel-Bp1nxPf1.js +0 -1
  80. package/dist/client/assets/classDiagram-4FO5ZUOK-BFSejQGj.js +0 -1
  81. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-GUv-gbmg.js +0 -1
  82. package/dist/client/assets/index-BEgA3Rtd.css +0 -2
  83. package/dist/client/assets/index-CiOFEE0Z.js +0 -260
  84. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D9N_a8JM.js +0 -1
@@ -13,6 +13,7 @@ import { deleteSpecSession, getCreatedTicketIdsForSnapshot, getSpecSession, getS
13
13
  import { createChatAttachment, createSpecAttachment, deleteChatAttachment, deleteSpecSessionAttachment, getChatAttachmentById, getChatAttachmentForSession, getChatAttachmentLinkedMessageId, getSpecAttachmentForSession, getSpecAttachmentLinkedMessageId, MAX_CHAT_ATTACHMENTS_PER_TURN, MAX_CHAT_ATTACHMENT_SIZE_BYTES, MAX_SPEC_ATTACHMENTS_PER_TURN, MAX_SPEC_ATTACHMENT_SIZE_BYTES, readChatAttachmentContent, readSpecAttachmentContent, validateImageAttachment, } from './lib/attachments.js';
14
14
  import { createProjectChatSession, resolveChatMode, resolveChatTool, stopProjectChatSessionResponse, submitProjectChatSessionMessage, } from './lib/chatOperations.js';
15
15
  import { createProjectSpecSession, deleteProjectSpecSession, stopProjectSpecSessionResponse, submitProjectSpecSessionMessage, updateProjectSpecSessionMode, } from './lib/specOperations.js';
16
+ import { buildProjectSpecReviewRevisionDraft, getProjectSpecReviewFindings, startProjectSpecReview, stopProjectSpecReview, } from './lib/specReviewOperations.js';
16
17
  import { resolveChatSessionTarget } from './lib/chatTargets.js';
17
18
  import { createChatMessage, getChatMessage, updateChatMessageContent } from './lib/chatMessages.js';
18
19
  import { attachChatTicketProposalsToMessageContent } from './lib/chatTicketProposals.js';
@@ -32,6 +33,7 @@ import { enqueueBundledBuild, getDependencyOrderedBundleTicketIds, removeTicketF
32
33
  import { prepareTicketForBuild } from './lib/buildFlow.js';
33
34
  import { getBundlePlanMutationBlockerById, shouldBlockPlanForBundleMutationById, } from './lib/bundleActivity.js';
34
35
  import { getDiscoveredModels, normalizeModelId } from './lib/models.js';
36
+ import { upgradeTool, UpgradeInProgressError } from './lib/toolUpgrade.js';
35
37
  import { acceptProjectMemorySuggestion, applyProjectMemorySuggestionToDecision, archiveProjectConvention, archiveProjectDecision, createProjectConvention, createProjectDecision, dismissProjectMemorySuggestion, getProjectMemoryById, getProjectMemorySuggestionById, isProjectMemoryEnabled, listProjectConventions, listLatestSuccessfulProjectContextArtifacts, listProjectDecisions, listProjectMemories, listProjectMemorySuggestions, restoreProjectConvention, restoreProjectDecision, serializeProjectMemoryFromConventionValue, serializeProjectMemoryFromDecisionValue, serializeProjectMemoryFromSuggestionValue, supersedeProjectDecision, updateProjectConvention, updateProjectDecision, validateProjectConventionPayload, validateProjectDecisionPayload, } from './lib/projectMemory.js';
36
38
  import { selectRelevantProjectMemory } from './lib/projectMemoryPrompt.js';
37
39
  import { getProjectContextResponse, startProjectContextScan } from './lib/projectMemoryScan.js';
@@ -2723,6 +2725,53 @@ app.post('/projects/:id/spec-sessions/:sessionId/snapshots/:snapshotId/export',
2723
2725
  return res.status(500).json({ error: getErrorMessage(error) || 'Unable to export the spec snapshot.' });
2724
2726
  }
2725
2727
  });
2728
+ app.post('/projects/:id/spec-sessions/:sessionId/snapshots/:snapshotId/review', (req, res) => {
2729
+ const result = startProjectSpecReview({
2730
+ projectId: req.params.id,
2731
+ specSessionId: req.params.sessionId,
2732
+ snapshotId: req.params.snapshotId,
2733
+ payload: req.body,
2734
+ broadcaster: io,
2735
+ });
2736
+ if (!result.ok) {
2737
+ return res.status(result.status).json({ error: result.error });
2738
+ }
2739
+ return res.status(result.status).json(result.value);
2740
+ });
2741
+ app.post('/projects/:id/spec-sessions/:sessionId/snapshots/:snapshotId/review/stop', async (req, res) => {
2742
+ const result = await stopProjectSpecReview({
2743
+ projectId: req.params.id,
2744
+ specSessionId: req.params.sessionId,
2745
+ snapshotId: req.params.snapshotId,
2746
+ });
2747
+ if (!result.ok) {
2748
+ return res.status(result.status).json({ error: result.error });
2749
+ }
2750
+ return res.status(result.status).json(result.value);
2751
+ });
2752
+ app.get('/projects/:id/spec-sessions/:sessionId/snapshots/:snapshotId/review', (req, res) => {
2753
+ const result = getProjectSpecReviewFindings({
2754
+ projectId: req.params.id,
2755
+ specSessionId: req.params.sessionId,
2756
+ snapshotId: req.params.snapshotId,
2757
+ });
2758
+ if (!result.ok) {
2759
+ return res.status(result.status).json({ error: result.error });
2760
+ }
2761
+ return res.status(result.status).json(result.value);
2762
+ });
2763
+ app.post('/projects/:id/spec-sessions/:sessionId/snapshots/:snapshotId/review-runs/:runId/revision-draft', (req, res) => {
2764
+ const result = buildProjectSpecReviewRevisionDraft({
2765
+ projectId: req.params.id,
2766
+ specSessionId: req.params.sessionId,
2767
+ snapshotId: req.params.snapshotId,
2768
+ runId: req.params.runId,
2769
+ });
2770
+ if (!result.ok) {
2771
+ return res.status(result.status).json({ error: result.error });
2772
+ }
2773
+ return res.status(result.status).json(result.value);
2774
+ });
2726
2775
  app.get('/tickets', async (req, res) => {
2727
2776
  const requestedProjectId = getRequestedProjectId(req);
2728
2777
  const detail = req.query.detail === 'board-enrichment'
@@ -3388,6 +3437,22 @@ app.post('/tool', (req, res) => {
3388
3437
  config.tool = tool;
3389
3438
  res.json({ tool });
3390
3439
  });
3440
+ app.post('/tools/upgrade', async (req, res) => {
3441
+ const { tool } = req.body ?? {};
3442
+ if (tool !== 'claude' && tool !== 'opencode') {
3443
+ return res.status(400).json({ error: 'Invalid tool' });
3444
+ }
3445
+ try {
3446
+ const result = await upgradeTool(tool);
3447
+ return res.json(result);
3448
+ }
3449
+ catch (error) {
3450
+ if (error instanceof UpgradeInProgressError) {
3451
+ return res.status(409).json({ error: 'upgrade already running' });
3452
+ }
3453
+ return res.status(500).json({ error: error instanceof Error ? error.message : 'Upgrade failed' });
3454
+ }
3455
+ });
3391
3456
  app.post('/projects/auto-config', async (req, res) => {
3392
3457
  const validation = validateProjectPayload(asProjectPayload(req.body), { partial: true });
3393
3458
  if ('error' in validation) {