@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.
- package/dist/client/assets/TestsDialog-CxOO-QI9.js +5 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-CHnXshuZ.js → architectureDiagram-3BPJPVTR-zBQKBPbA.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-C4ZedL1G.js → blockDiagram-GPEHLZMM-CzYZL_-N.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-BuD-jPC_.js → c4Diagram-AAUBKEIU-DSDSWLp6.js} +1 -1
- package/dist/client/assets/channel-1BaddjWF.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-BKDkaoQT.js → chunk-2J33WTMH-DbLfyQqC.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-CS0HFD9a.js → chunk-3OPIFGDE-CLGLB7g_.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-DYo_TwPP.js → chunk-5ZQYHXKU-BIwBZ7yY.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-BajKdB6e.js → chunk-727SXJPM-DovMQz6k.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-j2FtLU1G.js → chunk-AQP2D5EJ-KqjpoTb7.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-CTy5Vnsi.js → chunk-CSCIHK7Q-deZWgKeo.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-DFdh0Cya.js → chunk-KSCS5N6A-TFVqgGHD.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-BFBha-m9.js → chunk-L5ZTLDWV-WFLYG2VH.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-DpeaPMtX.js → chunk-LZXEDZCA-DhkM7gFV.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-CazKz40j.js → chunk-ND2GUHAM-hnvkc2eb.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-B2IFwDK1.js → chunk-NZK2D7GU-CNSU7InY.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-Dr6DQwZn.js → chunk-O5CBEL6O-DqJEYjyT.js} +1 -1
- package/dist/client/assets/{chunk-WU5MYG2G-BTQnr7be.js → chunk-WU5MYG2G-XMnXur47.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BGo9hMel.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-D-_BNxT2.js +1 -0
- package/dist/client/assets/{dagre-BM42HDAG-BhO_9BZa.js → dagre-BM42HDAG-CUjnTe1Z.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-2Qn456ux.js → diagram-2AECGRRQ-B6m9Giox.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-svJkmW34.js → diagram-5GNKFQAL-BezeNS5y.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-BkTHZ5mW.js → diagram-KO2AKTUF-RcU5K8Ej.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-uhDh1chZ.js → diagram-LMA3HP47-C3urL4ok.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-TRif4ORE.js → diagram-OG6HWLK6-CZlIPGdR.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-CVt_E331.js → erDiagram-TEJ5UH35-oMIKndtI.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-B4s33tHN.js → flowDiagram-I6XJVG4X-By4oEsbM.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-Dn2Tw0UP.js → ganttDiagram-6RSMTGT7-B48Cd3xk.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DL--5nPh.js → gitGraphDiagram-PVQCEYII-CRdbqoQK.js} +1 -1
- package/dist/client/assets/index-Q1dFgEV8.css +2 -0
- package/dist/client/assets/index-i7kaM60u.js +260 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-CaBMZo3i.js → infoDiagram-5YYISTIA-DP9dUT0m.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BK8J4ndX.js → ishikawaDiagram-YF4QCWOH-DhquFyP5.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-BS7hFGG3.js → journeyDiagram-JHISSGLW-BN9q1Knp.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-Bp3uL0wq.js → kanban-definition-UN3LZRKU-Cj7DzzzB.js} +1 -1
- package/dist/client/assets/{line-BCYzOKh3.js → line-D0YirabY.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-8idx1Ea6.js → mermaid-parser.core-CIsRI40S.js} +1 -1
- package/dist/client/assets/{mermaid.core-CxR4-p_S.js → mermaid.core-HhTgHex1.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL--qrRjfiZ.js → mindmap-definition-RKZ34NQL-B0-ZfTQa.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-PeY79WfN.js → pieDiagram-4H26LBE5-CWyIW6Nh.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-UbrmuIOq.js → quadrantDiagram-W4KKPZXB-BMFHMQiI.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-f9Mg2g9n.js → requirementDiagram-4Y6WPE33-BS-pXddR.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Cc5IOQG3.js → sankeyDiagram-5OEKKPKP-sBOYH62r.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BA_ghDe5.js → sequenceDiagram-3UESZ5HK-g4N59irI.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-Cp7ykzNi.js → stateDiagram-AJRCARHV-BFCq2_7o.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BJxmjLz-.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-DGtYslSV.js → timeline-definition-PNZ67QCA-De4T7a_T.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-DUTouIKP.js → vennDiagram-CIIHVFJN-ClQ5qRjN.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DKrISe1w.js → wardleyDiagram-YWT4CUSO-Bb87XKEB.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-B66iktR0.js → xychartDiagram-2RQKCTM6-COQfOp4x.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/db.js +45 -0
- package/dist/server/db.js.map +1 -1
- package/dist/server/index.js +65 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/agent.js +244 -0
- package/dist/server/lib/agent.js.map +1 -1
- package/dist/server/lib/specArtifact.js +22 -5
- package/dist/server/lib/specArtifact.js.map +1 -1
- package/dist/server/lib/specReviewContext.js +128 -0
- package/dist/server/lib/specReviewContext.js.map +1 -0
- package/dist/server/lib/specReviewDraft.js +58 -0
- package/dist/server/lib/specReviewDraft.js.map +1 -0
- package/dist/server/lib/specReviewOperations.js +132 -0
- package/dist/server/lib/specReviewOperations.js.map +1 -0
- package/dist/server/lib/specReviews.js +329 -0
- package/dist/server/lib/specReviews.js.map +1 -0
- package/dist/server/lib/specs.js +6 -5
- package/dist/server/lib/specs.js.map +1 -1
- package/dist/server/lib/toolUpgrade.js +107 -0
- package/dist/server/lib/toolUpgrade.js.map +1 -0
- package/dist/server/workers/specReview.js +85 -0
- package/dist/server/workers/specReview.js.map +1 -0
- package/dist/server/workers/specSession.js +26 -11
- package/dist/server/workers/specSession.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/TestsDialog-B0WvkzrX.js +0 -5
- package/dist/client/assets/channel-Bp1nxPf1.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BFSejQGj.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-GUv-gbmg.js +0 -1
- package/dist/client/assets/index-BEgA3Rtd.css +0 -2
- package/dist/client/assets/index-CiOFEE0Z.js +0 -260
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D9N_a8JM.js +0 -1
package/dist/server/index.js
CHANGED
|
@@ -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) {
|