@straiffi/archon 1.3.5 → 1.3.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 (88) hide show
  1. package/dist/client/assets/TestsDialog-pFtXuGjB.js +5 -0
  2. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CHnXshuZ.js → architectureDiagram-3BPJPVTR-BXnDUGyb.js} +1 -1
  3. package/dist/client/assets/{blockDiagram-GPEHLZMM-C4ZedL1G.js → blockDiagram-GPEHLZMM-5LLbCKHc.js} +1 -1
  4. package/dist/client/assets/{c4Diagram-AAUBKEIU-BuD-jPC_.js → c4Diagram-AAUBKEIU-eOPp4IOA.js} +1 -1
  5. package/dist/client/assets/channel-WEAinq2i.js +1 -0
  6. package/dist/client/assets/{chunk-2J33WTMH-BKDkaoQT.js → chunk-2J33WTMH-70mAeHqS.js} +1 -1
  7. package/dist/client/assets/{chunk-3OPIFGDE-CS0HFD9a.js → chunk-3OPIFGDE-FN2jGhe_.js} +1 -1
  8. package/dist/client/assets/{chunk-5ZQYHXKU-DYo_TwPP.js → chunk-5ZQYHXKU-zk3e2Q2-.js} +1 -1
  9. package/dist/client/assets/{chunk-727SXJPM-BajKdB6e.js → chunk-727SXJPM-M_2iMiWX.js} +1 -1
  10. package/dist/client/assets/{chunk-AQP2D5EJ-j2FtLU1G.js → chunk-AQP2D5EJ-7qrH-rwu.js} +1 -1
  11. package/dist/client/assets/{chunk-CSCIHK7Q-CTy5Vnsi.js → chunk-CSCIHK7Q-BXoDPrBx.js} +1 -1
  12. package/dist/client/assets/{chunk-KSCS5N6A-DFdh0Cya.js → chunk-KSCS5N6A-BP2vZxBw.js} +1 -1
  13. package/dist/client/assets/{chunk-L5ZTLDWV-BFBha-m9.js → chunk-L5ZTLDWV-C84tHfaF.js} +1 -1
  14. package/dist/client/assets/{chunk-LZXEDZCA-DpeaPMtX.js → chunk-LZXEDZCA-C3vH4LVq.js} +2 -2
  15. package/dist/client/assets/{chunk-ND2GUHAM-CazKz40j.js → chunk-ND2GUHAM-CFFpgrqC.js} +1 -1
  16. package/dist/client/assets/{chunk-NZK2D7GU-B2IFwDK1.js → chunk-NZK2D7GU-CMmCrH3A.js} +1 -1
  17. package/dist/client/assets/{chunk-O5CBEL6O-Dr6DQwZn.js → chunk-O5CBEL6O-DgTG8ELm.js} +1 -1
  18. package/dist/client/assets/{chunk-WU5MYG2G-BTQnr7be.js → chunk-WU5MYG2G-BJcuRxWz.js} +1 -1
  19. package/dist/client/assets/classDiagram-4FO5ZUOK-Cj3w6BRn.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-tm-_BZHG.js +1 -0
  21. package/dist/client/assets/{dagre-BM42HDAG-BhO_9BZa.js → dagre-BM42HDAG-B4J6Kmpr.js} +1 -1
  22. package/dist/client/assets/{diagram-2AECGRRQ-2Qn456ux.js → diagram-2AECGRRQ-CkCGn-uT.js} +1 -1
  23. package/dist/client/assets/{diagram-5GNKFQAL-svJkmW34.js → diagram-5GNKFQAL-r6j1z6Vu.js} +1 -1
  24. package/dist/client/assets/{diagram-KO2AKTUF-BkTHZ5mW.js → diagram-KO2AKTUF-CoCdTQxL.js} +1 -1
  25. package/dist/client/assets/{diagram-LMA3HP47-uhDh1chZ.js → diagram-LMA3HP47-BQ4-MIHw.js} +1 -1
  26. package/dist/client/assets/{diagram-OG6HWLK6-TRif4ORE.js → diagram-OG6HWLK6-COArrwVi.js} +1 -1
  27. package/dist/client/assets/{erDiagram-TEJ5UH35-CVt_E331.js → erDiagram-TEJ5UH35-DJ97Ms_M.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-I6XJVG4X-B4s33tHN.js → flowDiagram-I6XJVG4X-LuN4eMjN.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-6RSMTGT7-Dn2Tw0UP.js → ganttDiagram-6RSMTGT7-CW9iCWmj.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DL--5nPh.js → gitGraphDiagram-PVQCEYII-CzbPGVzo.js} +1 -1
  31. package/dist/client/assets/index-C7cl3g7B.js +260 -0
  32. package/dist/client/assets/index-DdUNR-i1.css +2 -0
  33. package/dist/client/assets/{infoDiagram-5YYISTIA-CaBMZo3i.js → infoDiagram-5YYISTIA-Bb-OXYAc.js} +1 -1
  34. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BK8J4ndX.js → ishikawaDiagram-YF4QCWOH-BwA6L5Oa.js} +1 -1
  35. package/dist/client/assets/{journeyDiagram-JHISSGLW-BS7hFGG3.js → journeyDiagram-JHISSGLW-DAXniNDx.js} +1 -1
  36. package/dist/client/assets/{kanban-definition-UN3LZRKU-Bp3uL0wq.js → kanban-definition-UN3LZRKU-BNTh3arC.js} +1 -1
  37. package/dist/client/assets/{line-BCYzOKh3.js → line-WpsOL_z2.js} +1 -1
  38. package/dist/client/assets/{mermaid-parser.core-8idx1Ea6.js → mermaid-parser.core-BfbYyPLJ.js} +1 -1
  39. package/dist/client/assets/{mermaid.core-CxR4-p_S.js → mermaid.core-pBoV7OEi.js} +3 -3
  40. package/dist/client/assets/{mindmap-definition-RKZ34NQL--qrRjfiZ.js → mindmap-definition-RKZ34NQL-Bs_KSIW5.js} +1 -1
  41. package/dist/client/assets/{pieDiagram-4H26LBE5-PeY79WfN.js → pieDiagram-4H26LBE5-BcmJRsYh.js} +1 -1
  42. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-UbrmuIOq.js → quadrantDiagram-W4KKPZXB-CpE4xYKJ.js} +1 -1
  43. package/dist/client/assets/{requirementDiagram-4Y6WPE33-f9Mg2g9n.js → requirementDiagram-4Y6WPE33-BLLgSUj2.js} +1 -1
  44. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Cc5IOQG3.js → sankeyDiagram-5OEKKPKP-B4YthG4l.js} +1 -1
  45. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BA_ghDe5.js → sequenceDiagram-3UESZ5HK-xT-IzjEu.js} +1 -1
  46. package/dist/client/assets/{stateDiagram-AJRCARHV-Cp7ykzNi.js → stateDiagram-AJRCARHV-TUrenFUB.js} +1 -1
  47. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-NwrtxmmO.js +1 -0
  48. package/dist/client/assets/{timeline-definition-PNZ67QCA-DGtYslSV.js → timeline-definition-PNZ67QCA-CnTMXpEM.js} +1 -1
  49. package/dist/client/assets/{vennDiagram-CIIHVFJN-DUTouIKP.js → vennDiagram-CIIHVFJN-DdGwGknh.js} +1 -1
  50. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DKrISe1w.js → wardleyDiagram-YWT4CUSO-BI16R1lX.js} +1 -1
  51. package/dist/client/assets/{xychartDiagram-2RQKCTM6-B66iktR0.js → xychartDiagram-2RQKCTM6-BSf2il9a.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/mobileAccess.js +124 -0
  60. package/dist/server/lib/mobileAccess.js.map +1 -1
  61. package/dist/server/lib/planModeQuestions.js +1 -0
  62. package/dist/server/lib/planModeQuestions.js.map +1 -1
  63. package/dist/server/lib/specArtifact.js +22 -5
  64. package/dist/server/lib/specArtifact.js.map +1 -1
  65. package/dist/server/lib/specReviewContext.js +128 -0
  66. package/dist/server/lib/specReviewContext.js.map +1 -0
  67. package/dist/server/lib/specReviewDraft.js +58 -0
  68. package/dist/server/lib/specReviewDraft.js.map +1 -0
  69. package/dist/server/lib/specReviewOperations.js +132 -0
  70. package/dist/server/lib/specReviewOperations.js.map +1 -0
  71. package/dist/server/lib/specReviews.js +329 -0
  72. package/dist/server/lib/specReviews.js.map +1 -0
  73. package/dist/server/lib/specs.js +6 -5
  74. package/dist/server/lib/specs.js.map +1 -1
  75. package/dist/server/lib/toolUpgrade.js +107 -0
  76. package/dist/server/lib/toolUpgrade.js.map +1 -0
  77. package/dist/server/workers/specReview.js +85 -0
  78. package/dist/server/workers/specReview.js.map +1 -0
  79. package/dist/server/workers/specSession.js +41 -11
  80. package/dist/server/workers/specSession.js.map +1 -1
  81. package/package.json +1 -1
  82. package/dist/client/assets/TestsDialog-B0WvkzrX.js +0 -5
  83. package/dist/client/assets/channel-Bp1nxPf1.js +0 -1
  84. package/dist/client/assets/classDiagram-4FO5ZUOK-BFSejQGj.js +0 -1
  85. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-GUv-gbmg.js +0 -1
  86. package/dist/client/assets/index-BEgA3Rtd.css +0 -2
  87. package/dist/client/assets/index-CiOFEE0Z.js +0 -260
  88. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D9N_a8JM.js +0 -1
@@ -0,0 +1,107 @@
1
+ import { execFile } from 'child_process';
2
+ const UPGRADE_TIMEOUT_MS = 5 * 60 * 1000;
3
+ const MAX_BUFFER = 4 * 1024 * 1024;
4
+ const OUTPUT_TAIL_LENGTH = 2000;
5
+ const TOOL_COMMANDS = {
6
+ opencode: { command: 'opencode', args: ['upgrade'] },
7
+ claude: { command: 'claude', args: ['update'] },
8
+ };
9
+ const SEMVER_PATTERN = '(\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?)';
10
+ const ANCHORED_VERSION_RE = new RegExp(`(?:up(?:dated|graded)?\\s+to|installed|installing)\\s*v?${SEMVER_PATTERN}`, 'i');
11
+ const LABELED_VERSION_RE = new RegExp(`(?:version|v)[\\s:=]+v?${SEMVER_PATTERN}`, 'i');
12
+ const BARE_SEMVER_RE = new RegExp(SEMVER_PATTERN, 'g');
13
+ const UP_TO_DATE_RE = /up\s+to\s+date|already\s+(?:on|at)\s+(?:the\s+)?latest|no\s+update/i;
14
+ export const extractUpgradeVersion = (_tool, output) => {
15
+ if (!output) {
16
+ return null;
17
+ }
18
+ const anchored = output.match(ANCHORED_VERSION_RE);
19
+ if (anchored?.[1]) {
20
+ return anchored[1];
21
+ }
22
+ const labeled = output.match(LABELED_VERSION_RE);
23
+ if (labeled?.[1]) {
24
+ return labeled[1];
25
+ }
26
+ const tailLines = output.split(/\r?\n/).slice(-5).join('\n');
27
+ const bareMatches = [...tailLines.matchAll(BARE_SEMVER_RE)].map(match => match[1]);
28
+ if (bareMatches.length > 0) {
29
+ return bareMatches[bareMatches.length - 1];
30
+ }
31
+ return null;
32
+ };
33
+ export const isAlreadyUpToDate = (output) => {
34
+ return UP_TO_DATE_RE.test(output);
35
+ };
36
+ export class UpgradeInProgressError extends Error {
37
+ tool;
38
+ constructor(tool) {
39
+ super(`Upgrade already running for ${tool}`);
40
+ this.name = 'UpgradeInProgressError';
41
+ this.tool = tool;
42
+ }
43
+ }
44
+ const runningTools = new Set();
45
+ const tail = (value) => {
46
+ if (value.length <= OUTPUT_TAIL_LENGTH) {
47
+ return value;
48
+ }
49
+ return value.slice(value.length - OUTPUT_TAIL_LENGTH);
50
+ };
51
+ const runUpgradeProcess = (tool) => new Promise(resolve => {
52
+ const { command, args } = TOOL_COMMANDS[tool];
53
+ let timedOut = false;
54
+ const timer = setTimeout(() => {
55
+ timedOut = true;
56
+ child.kill('SIGKILL');
57
+ }, UPGRADE_TIMEOUT_MS);
58
+ const child = execFile(command, args, {
59
+ encoding: 'utf8',
60
+ maxBuffer: MAX_BUFFER,
61
+ }, (error, stdout, stderr) => {
62
+ clearTimeout(timer);
63
+ const combinedOutput = `${stdout ?? ''}${stderr ?? ''}`;
64
+ if (error) {
65
+ const code = typeof error.code === 'number' ? error.code : null;
66
+ if (code !== null) {
67
+ resolve({ ok: false, exitCode: code, output: tail(combinedOutput), version: null, upToDate: false });
68
+ return;
69
+ }
70
+ const isMissing = error.code === 'ENOENT';
71
+ const message = isMissing
72
+ ? `${command} not found on PATH`
73
+ : timedOut
74
+ ? 'timed out after 5 minutes'
75
+ : error.message;
76
+ resolve({
77
+ ok: false,
78
+ exitCode: null,
79
+ output: tail(`${combinedOutput}${combinedOutput ? '\n' : ''}${message}`),
80
+ version: null,
81
+ upToDate: false,
82
+ });
83
+ return;
84
+ }
85
+ resolve({
86
+ ok: true,
87
+ exitCode: 0,
88
+ output: tail(combinedOutput),
89
+ version: extractUpgradeVersion(tool, combinedOutput),
90
+ upToDate: isAlreadyUpToDate(combinedOutput),
91
+ });
92
+ });
93
+ });
94
+ export const upgradeTool = async (tool) => {
95
+ if (runningTools.has(tool)) {
96
+ throw new UpgradeInProgressError(tool);
97
+ }
98
+ runningTools.add(tool);
99
+ try {
100
+ return await runUpgradeProcess(tool);
101
+ }
102
+ finally {
103
+ runningTools.delete(tool);
104
+ }
105
+ };
106
+ export const isToolUpgradeRunning = (tool) => runningTools.has(tool);
107
+ //# sourceMappingURL=toolUpgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolUpgrade.js","sourceRoot":"","sources":["../../../server/lib/toolUpgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { formatAgentErrorForTranscript, runSpecReviewAgent } from '../lib/agent.js';
2
+ import { getProjectById } from '../lib/projects.js';
3
+ import { enqueue, isRunning } from '../lib/queue.js';
4
+ import { getSpecSession, getSpecSnapshot } from '../lib/specs.js';
5
+ import { createSpecReviewRun, insertSpecReviewFindings, parseSpecReviewOutput, updateSpecReviewRunStatus, updateSpecReviewRunStreaming, updateSpecReviewRunUsage, } from '../lib/specReviews.js';
6
+ import { buildSpecReviewContext, buildSpecReviewPrompt } from '../lib/specReviewContext.js';
7
+ import { normalizeModelId } from '../lib/models.js';
8
+ const getErrorMessage = (error) => {
9
+ return error instanceof Error ? error.message : String(error);
10
+ };
11
+ const resolveSpecReviewWorkerKey = (snapshotId) => `spec-review:${snapshotId}`;
12
+ export const startSpecReview = ({ specSessionId, snapshotId, tool, model, variant, skills = [], io, }) => {
13
+ const jobKey = resolveSpecReviewWorkerKey(snapshotId);
14
+ if (isRunning(jobKey)) {
15
+ return false;
16
+ }
17
+ enqueue(jobKey, async () => {
18
+ const specSession = getSpecSession(specSessionId, { includeMessages: true });
19
+ if (!specSession) {
20
+ return;
21
+ }
22
+ const project = getProjectById(specSession.project_id);
23
+ if (!project) {
24
+ return;
25
+ }
26
+ const snapshot = getSpecSnapshot(snapshotId);
27
+ if (!snapshot || snapshot.spec_session_id !== specSession.id) {
28
+ return;
29
+ }
30
+ const resolvedTool = tool;
31
+ const resolvedModel = resolvedTool === 'opencode' ? normalizeModelId(model) || null : null;
32
+ const resolvedVariant = resolvedTool === 'opencode' && resolvedModel ? variant ?? null : null;
33
+ const runId = createSpecReviewRun({
34
+ specSessionId: specSession.id,
35
+ specSnapshotId: snapshot.id,
36
+ projectId: project.id,
37
+ tool: resolvedTool,
38
+ model: resolvedModel,
39
+ variant: resolvedVariant,
40
+ skills,
41
+ });
42
+ io.emit('spec-review:updated', { spec_review_run_id: runId, spec_snapshot_id: snapshot.id });
43
+ try {
44
+ const reviewContext = buildSpecReviewContext({ specSession, snapshot });
45
+ const prompt = buildSpecReviewPrompt({
46
+ projectName: project.name,
47
+ projectPath: project.repo_path,
48
+ reviewContext,
49
+ });
50
+ const { completionStatus, finalResponse, usageSnapshot } = await runSpecReviewAgent({
51
+ specReviewRunId: runId,
52
+ tool: resolvedTool,
53
+ prompt,
54
+ cwd: project.repo_path,
55
+ io,
56
+ model: resolvedModel,
57
+ variant: resolvedVariant,
58
+ });
59
+ updateSpecReviewRunUsage(runId, usageSnapshot);
60
+ if (completionStatus === 'stopped' || finalResponse === null) {
61
+ updateSpecReviewRunStatus(runId, 'stopped', typeof finalResponse === 'string' ? finalResponse : null);
62
+ io.emit('spec-review:updated', { spec_review_run_id: runId, spec_snapshot_id: snapshot.id });
63
+ return;
64
+ }
65
+ const parsed = parseSpecReviewOutput(finalResponse);
66
+ updateSpecReviewRunStatus(runId, parsed.status, parsed.cleanedMarkdown || finalResponse);
67
+ if (parsed.status === 'completed' && parsed.findings.length > 0) {
68
+ insertSpecReviewFindings(runId, parsed.findings);
69
+ }
70
+ io.emit('spec-review:updated', { spec_review_run_id: runId, spec_snapshot_id: snapshot.id });
71
+ }
72
+ catch (error) {
73
+ const transcript = formatAgentErrorForTranscript(error);
74
+ updateSpecReviewRunStatus(runId, 'error', transcript || getErrorMessage(error));
75
+ updateSpecReviewRunStreaming(runId, null);
76
+ io.emit('spec-review:updated', { spec_review_run_id: runId, spec_snapshot_id: snapshot.id });
77
+ }
78
+ }).catch(() => {
79
+ // Best-effort safety net; the inner try/catch handles all known failure
80
+ // modes. A rejection here means something threw before the run row existed.
81
+ });
82
+ return true;
83
+ };
84
+ export { resolveSpecReviewWorkerKey };
85
+ //# sourceMappingURL=specReview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specReview.js","sourceRoot":"","sources":["../../../server/workers/specReview.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,7 @@ const formatPreviousSpecStateBlock = (snapshot) => {
57
57
  }
58
58
  return lines.join('\n');
59
59
  };
60
- const buildStandardModeTail = ({ existingMermaid, existingMockup, }) => {
60
+ const buildStandardModeTail = ({ existingMermaid, existingMockup, existingFileRelationGraph, }) => {
61
61
  return [
62
62
  [
63
63
  'Turn handling:',
@@ -77,6 +77,17 @@ const buildStandardModeTail = ({ existingMermaid, existingMockup, }) => {
77
77
  ' diagrams — it reads better in a narrow artifact panel. Use `flowchart LR` (left-to-right) for timelines',
78
78
  ' or sequential flows where horizontal layout is genuinely clearer. For simple plans where a diagram would',
79
79
  ' be forced or unhelpful, skip it entirely.',
80
+ ' Mermaid syntax rules (a single bad label fails the whole diagram):',
81
+ ' - Quote EVERY node label that contains anything other than letters, digits, spaces, or hyphens, using',
82
+ ' the bracket-quoted form `ID["label text"]`. File paths, function signatures, and any text with `.`,',
83
+ ' `/`, `(`, `)`, `[`, `]`, `"`, `&`, `<`, `>`, or `|` MUST be quoted.',
84
+ ' - Keep node IDs as short ASCII tokens (`A`, `B`, `ME`). Never use a Mermaid keyword (end, subgraph,',
85
+ ' flowchart, graph) as an ID.',
86
+ ' - One statement per line. Do not put `%%` comments on the same line as a statement.',
87
+ ' - Subgraph titles must be plain alphanumeric words.',
88
+ ' Example:',
89
+ ' Good: MA["MobileApp.tsx"] --> API["mobileApi.ts"]',
90
+ ' Bad: MA[MobileApp.tsx] --> API[mobileApi.ts] %% tolerated, but any `)` or `]` in a bare label is a hard parse failure',
80
91
  '',
81
92
  '3. When (and only when) the plan involves a UI surface, optionally include a low-fidelity UI mockup as a',
82
93
  ' self-contained, generic, unstyled HTML wireframe inside a fenced `archon-mockup` block. Use plain',
@@ -85,7 +96,20 @@ const buildStandardModeTail = ({ existingMermaid, existingMockup, }) => {
85
96
  ' will be rendered with an injected base stylesheet. Emit this block only when a UI surface is genuinely',
86
97
  ' part of the plan; never force it for backend-only or non-UI work. Skip it entirely when not applicable.',
87
98
  '',
88
- '4. A machine-readable artifact block with the spec structured data, using exactly these markers:',
99
+ '4. When the relationships between the likely files are non-trivial (e.g. one module imports another,',
100
+ ' shared utilities feed multiple consumers, or data flows across boundaries the reader must follow),',
101
+ ' optionally include a fenced `archon-file-graph` block containing a mermaid diagram of those file',
102
+ ' relationships. Prefer `flowchart LR` so the graph reads left-to-right. Reference the same file paths',
103
+ ' used in `likely_files` so the reader can cross-reference. This graph is for human review only — it is',
104
+ ' never forwarded to the build/implementation agent and must never appear in the artifact JSON or in',
105
+ ' any ticket description. Emit it only when file relationships are genuinely non-trivial; skip it for',
106
+ ' plans where a flat file list is sufficient.',
107
+ ' This MUST be a fenced `archon-file-graph` block, NOT a plain `mermaid` block — the fence language tag',
108
+ ' determines where the diagram renders: `mermaid` renders in the Visualization slot, `archon-file-graph`',
109
+ ' renders under Likely Files. Putting file-relationship content in a plain `mermaid` block lands it in',
110
+ ' the wrong slot. The same Mermaid syntax rules above (quoted labels, short IDs) apply.',
111
+ '',
112
+ '5. A machine-readable artifact block with the spec structured data, using exactly these markers:',
89
113
  ' <archon-spec-artifact>',
90
114
  ' {"summary":"short plan summary","likely_files":[{"path":"src/foo.ts","reason":"Add bar helper"}],"tickets":[{"key":"add-foo-bar","title":"Add bar helper to foo module","description":"## Problem Statement\\nThe foo module is missing the `bar` helper, blocking downstream consumers from validating inputs consistently.\\n\\n## Acceptance Criteria\\n- [ ] A `bar(input)` function is exported from `src/foo.ts`.\\n- [ ] Invalid inputs throw a typed error with a clear message.\\n- [ ] All existing callers of foo continue to work unchanged.\\n\\n## Implementation Approach\\n1. Add `bar` to `src/foo.ts` following the existing `baz` helper signature pattern.\\n2. Reuse the project existing validation utilities instead of inlining checks.\\n3. Export `bar` from the module barrel file.\\n\\n## Edge Cases and Error Handling\\n- Empty string inputs should throw the same typed error as other invalid inputs.\\n- Preserve current behavior for `undefined`/`null` (do not coerce).\\n\\n## Constraints and Things to Avoid\\n- Do not introduce a new dependency.\\n- Do not change the public signature of existing exports."}]}',
91
115
  ' </archon-spec-artifact>',
@@ -138,6 +162,8 @@ const buildStandardModeTail = ({ existingMermaid, existingMockup, }) => {
138
162
  'automatically from the fenced code block above.',
139
163
  'Do NOT include the UI mockup in the artifact JSON — the `archon-mockup` block is extracted',
140
164
  'automatically from its fenced code block above when present.',
165
+ 'Do NOT include the file-relation graph in the artifact JSON — the `archon-file-graph` block is extracted',
166
+ 'automatically from its fenced code block above when present, and is for human review only.',
141
167
  'A per-ticket `relevant_visualizations` tag array IS allowed — it references the blocks by key and does',
142
168
  'not duplicate their content.',
143
169
  '',
@@ -149,13 +175,14 @@ const buildStandardModeTail = ({ existingMermaid, existingMockup, }) => {
149
175
  '- Always include at least one ticket. If the plan has natural phases, propose multiple tickets with dependencies.',
150
176
  '- If the artifact block is missing or malformed, no specification snapshot will be saved.',
151
177
  ].join('\n'),
152
- (existingMermaid || existingMockup)
178
+ (existingMermaid || existingMockup || existingFileRelationGraph)
153
179
  ? [
154
- 'A `mermaid` diagram and/or `archon-mockup` UI wireframe has already been established for this spec',
155
- 'in a prior turn and is preserved automatically across turns. Do NOT regenerate either fenced block',
156
- 'unless this turn materially changes the architecture or UI it depicts re-emitting unchanged content',
157
- 'wastes tokens. Omit the `mermaid` and/or `archon-mockup` blocks on this turn when they would be',
158
- 'unchanged; they will be carried forward from the previous snapshot automatically.',
180
+ 'A `mermaid` diagram, `archon-mockup` UI wireframe, and/or `archon-file-graph` file-relation diagram',
181
+ 'has already been established for this spec in a prior turn and is preserved automatically across',
182
+ 'turns. Do NOT regenerate any of these fenced blocks unless this turn materially changes the',
183
+ 'architecture, UI, or file relationships it depicts re-emitting unchanged content wastes tokens.',
184
+ 'Omit the `mermaid`, `archon-mockup`, and/or `archon-file-graph` blocks on this turn when they would',
185
+ 'be unchanged; they will be carried forward from the previous snapshot automatically.',
159
186
  ].join('\n')
160
187
  : '',
161
188
  ].filter(Boolean).join('\n\n');
@@ -203,7 +230,7 @@ const buildGrillModeTail = () => {
203
230
  [
204
231
  'Standard spec artifact emission rules (use ONLY on the turn you finalize the plan):',
205
232
  '',
206
- buildStandardModeTail({ existingMermaid: false, existingMockup: false }),
233
+ buildStandardModeTail({ existingMermaid: false, existingMockup: false, existingFileRelationGraph: false }),
207
234
  ].join('\n'),
208
235
  ].join('\n\n');
209
236
  };
@@ -222,6 +249,7 @@ const buildSpecPrompt = ({ projectName, projectPath, instruction, hasAttachments
222
249
  : '';
223
250
  const existingMermaid = Boolean(previousSnapshot?.mermaid);
224
251
  const existingMockup = Boolean(previousSnapshot?.mockup);
252
+ const existingFileRelationGraph = Boolean(previousSnapshot?.file_relation_graph);
225
253
  const previousSpecBaseline = previousSnapshot
226
254
  ? [
227
255
  'This spec already exists from prior turns. Treat the spec as accumulating: the artifact you emit this',
@@ -252,7 +280,7 @@ const buildSpecPrompt = ({ projectName, projectPath, instruction, hasAttachments
252
280
  ];
253
281
  const modeTail = mode === 'grill'
254
282
  ? buildGrillModeTail()
255
- : buildStandardModeTail({ existingMermaid, existingMockup });
283
+ : buildStandardModeTail({ existingMermaid, existingMockup, existingFileRelationGraph });
256
284
  return [
257
285
  ...sharedBlocks,
258
286
  modeTail,
@@ -460,10 +488,11 @@ export const startSpecSessionTurn = ({ specSessionId, instruction, attachments =
460
488
  // A block re-emitted this turn overrides the previous snapshot's value;
461
489
  // an omitted block is carried forward so established artifacts don't
462
490
  // disappear when a follow-up turn omits the diagram/mockup.
463
- const { mermaid: mermaidBlock, mockup: mockupBlock } = resolveCarriedForwardArtifacts({
491
+ const { mermaid: mermaidBlock, mockup: mockupBlock, fileRelationGraph: fileRelationGraphBlock } = resolveCarriedForwardArtifacts({
464
492
  rawResponse,
465
493
  previousMermaid: previousSnapshot?.mermaid ?? null,
466
494
  previousMockup: previousSnapshot?.mockup ?? null,
495
+ previousFileRelationGraph: previousSnapshot?.file_relation_graph ?? null,
467
496
  });
468
497
  // Optional structured array fields use the same carry-forward contract:
469
498
  // a field the LLM emitted this turn (including an explicit empty array)
@@ -491,6 +520,7 @@ export const startSpecSessionTurn = ({ specSessionId, instruction, attachments =
491
520
  dependencies: carriedFields.dependencies,
492
521
  mermaid: mermaidBlock,
493
522
  mockup: mockupBlock,
523
+ fileRelationGraph: fileRelationGraphBlock,
494
524
  planText: cleanedPlanText,
495
525
  });
496
526
  updateSpecSessionLatestSnapshot(specSessionId, snapshotId);
@@ -1 +1 @@
1
- {"version":3,"file":"specSession.js","sourceRoot":"","sources":["../../../server/workers/specSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specSession.js","sourceRoot":"","sources":["../../../server/workers/specSession.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@straiffi/archon",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
@@ -1,5 +0,0 @@
1
- import{a as e}from"./chunk-BNv3lrIs.js";import{A as t,C as n,D as r,E as i,F as a,M as o,N as s,O as c,P as l,S as u,T as d,_ as f,a as p,b as m,c as h,d as g,f as _,g as v,h as ee,i as te,j as y,k as ne,l as b,m as x,o as S,p as C,r as w,s as T,t as E,u as D,v as O,w as re,x as ie,y as k}from"./index-CiOFEE0Z.js";var A=e(a(),1),ae=(e,t)=>l(o(`/projects/${e}/test-sessions`),{method:`POST`,body:t,fallbackErrorMessage:`Unable to open the test runner right now.`}),oe=(e,t)=>l(o(`/tickets/${e}/test-sessions${t?`?project_id=${encodeURIComponent(t)}`:``}`),{method:`POST`,fallbackErrorMessage:`Unable to open the test runner right now.`}),se=(e,t={})=>l(o(`/test-sessions/${e}/discovery${t.commandId?`?command_id=${encodeURIComponent(t.commandId)}`:``}`),{signal:t.signal,fallbackErrorMessage:`Unable to discover tests right now.`}),ce=(e,t)=>l(o(`/test-sessions/${e}/run`),{method:`POST`,body:t,fallbackErrorMessage:`Unable to start the selected tests right now.`}),le=e=>l(o(`/test-sessions/${e}/stop`),{method:`POST`,fallbackErrorMessage:`Unable to stop the test run right now.`}),ue=e=>s(o(`/test-sessions/${e}`),{method:`DELETE`,fallbackErrorMessage:`Unable to close the test runner right now.`}),j=t(),M=256*1024,N=24,P=RegExp(`\x1B\\[[0-9;?]*[ -/]*[@-~]`,`g`),F=(e,t)=>_.t(`common:testsDialog.${e}`,t),de=(e,t)=>{let n=`${e}${t}`;return n.length<=M?n:n.slice(-M)},I=e=>e.replace(P,``),fe=e=>e.scrollHeight-e.scrollTop-e.clientHeight<=N,L=e=>{e.scrollTop=e.scrollHeight},pe=(e,t=!1)=>{L(e);let n=0,r=0;return n=window.requestAnimationFrame(()=>{L(e),t&&(r=window.requestAnimationFrame(()=>{L(e)}))}),()=>{window.cancelAnimationFrame(n),r!==0&&window.cancelAnimationFrame(r)}},me=e=>{if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e;if(typeof t.id!=`string`||typeof t.name!=`string`||typeof t.command!=`string`)return[];let n=t.runner===`vitest`||t.runner===`jest`||t.runner===`unknown`?t.runner:`auto`;return[{id:t.id,name:t.name,command:t.command,runner:n,...typeof t.cwd==`string`&&t.cwd.trim()!==``?{cwd:t.cwd}:{}}]}):[]}catch{return[]}},R=e=>e===`running`?`border-sky-400/40 bg-sky-500/10 text-sky-200`:e===`passed`?`border-emerald-400/40 bg-emerald-500/10 text-emerald-200`:e===`failed`||e===`error`?`border-rose-400/40 bg-rose-500/10 text-rose-200`:e===`stopped`?`border-amber-400/40 bg-amber-500/10 text-amber-200`:`border-border/70 bg-background/60 text-muted-foreground`,he=e=>e==null?null:e<1e3?`${e} ms`:`${(e/1e3).toFixed(e>=1e4?0:1)} s`,z=e=>{let t=e.split(`/`);return t[t.length-1]||e},B=e=>e.toLowerCase().trim().split(/\s+/).filter(Boolean),V=(e,t)=>e.length===0?!0:e.every(e=>t.some(t=>t.includes(e))),H=(e,t)=>{let n=B(t);return n.length===0?e:e.flatMap(e=>{let t=z(e.path);if(V(n,[t.toLowerCase(),e.path.toLowerCase()]))return[e];let r=e.cases.filter(r=>V(n,[t.toLowerCase(),e.path.toLowerCase(),r.name.toLowerCase()]));return r.length===0?[]:[{...e,cases:r}]})},U=e=>F(e===`passed`?`status.passed`:e===`failed`?`status.failed`:e===`running`?`status.running`:e===`error`?`status.error`:e===`stopped`?`status.stopped`:`status.idle`),ge=e=>e?.selection?e.selection.kind===`all`?F(`selection.allTests`):e.selection.kind===`case`?e.selection.name:z(e.selection.path):F(`selection.noRunYet`),W=e=>/(^|\s)(?:FAIL|✗)(\s|$)|\b(?:failed|error|stderr|Expected:|Received:)\b/i.test(e)?`failure`:/(^|\s)(?:PASS|✓)(\s|$)|\bpassed\b/i.test(e)?`success`:/\b(?:WARN|warning|skipped|todo|pending)\b/i.test(e)?`warning`:`default`,G=e=>e===`failure`?`text-rose-200`:e===`success`?`text-emerald-200`:e===`warning`?`text-amber-200`:`text-slate-200`,_e=(e,t)=>e===t?!0:e.length===t.length?e.every((e,n)=>{let r=t[n];return r!=null&&e.id===r.id&&e.name===r.name&&e.command===r.command&&e.cwd===r.cwd&&e.runner===r.runner}):!1,ve=`min-w-24 justify-center shadow-none transition-none disabled:opacity-100`,K=({line:e,tone:t})=>(0,j.jsx)(`div`,{"data-tone":t,className:c(`whitespace-pre-wrap break-words`,G(t)),children:e===``?` `:e}),q=(0,A.memo)(({canRunGranular:e,filePath:t,isActive:n,name:r,onRunCase:i})=>(0,j.jsxs)(`button`,{type:`button`,"aria-label":F(`caseRow.runAriaLabel`,{name:r}),title:r,className:c(`flex w-full min-w-0 items-center gap-2.5 rounded-xl px-2.5 py-1.5 text-left transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,e?`cursor-pointer hover:bg-sky-500/10`:`cursor-not-allowed opacity-60`,n&&`bg-sky-500/10`),disabled:!e,onClick:()=>{i(t,r)},children:[(0,j.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full bg-sky-300/80`}),(0,j.jsx)(`span`,{className:`truncate text-xs text-foreground`,children:r})]}));q.displayName=`TestCaseRow`;var J=(0,A.memo)(({activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,canRunGranular:i,file:a,isExpanded:o,onRunCase:s,onRunFile:l,onToggleFile:u})=>{let d=e===`file`&&n===a.path,f=e===`case`&&n===a.path;return(0,j.jsx)(h,{open:o,onOpenChange:e=>{u(a.path,e)},children:(0,j.jsxs)(`div`,{className:`space-y-1`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,j.jsx)(D,{asChild:!0,children:(0,j.jsx)(r,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":F(o?`fileRow.collapseAriaLabel`:`fileRow.expandAriaLabel`,{path:a.path}),className:`mt-1 shrink-0 text-muted-foreground hover:text-foreground`,children:(0,j.jsx)(O,{className:c(`h-4 w-4 transition-transform`,o&&`rotate-180`)})})}),(0,j.jsx)(`button`,{type:`button`,"aria-label":F(`fileRow.runAriaLabel`,{path:a.path}),className:c(`min-w-0 flex-1 rounded-xl border border-border/60 bg-background/20 px-2.5 py-2 text-left transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,i?`cursor-pointer hover:border-sky-400/35 hover:bg-sky-500/10`:`cursor-not-allowed opacity-60`,(d||f)&&`border-sky-400/45 bg-sky-500/10`),disabled:!i,onClick:()=>{l(a.path)},children:(0,j.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,j.jsx)(`span`,{className:`flex size-6 shrink-0 items-center justify-center rounded-md border border-border/70 bg-background/60 text-sky-200`,children:(0,j.jsx)(T,{className:`h-3.5 w-3.5`})}),(0,j.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-start justify-between gap-3`,children:[(0,j.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,j.jsx)(`span`,{className:`block truncate text-xs font-medium text-foreground`,children:z(a.path)}),(0,j.jsx)(`span`,{className:`mt-0.5 block truncate text-[11px] text-muted-foreground`,children:a.path})]}),(0,j.jsx)(`span`,{className:`shrink-0 text-[11px] text-muted-foreground`,children:F(`fileRow.testCount`,{count:a.cases.length})})]})]})})]}),(0,j.jsx)(b,{children:(0,j.jsx)(`div`,{className:`ml-4 border-l border-border/60 pl-6`,children:a.cases.length===0?(0,j.jsx)(`p`,{className:`px-2.5 py-1.5 text-xs text-muted-foreground`,children:F(`fileRow.noNamedTests`)}):(0,j.jsx)(`div`,{className:`space-y-1`,children:a.cases.map(r=>{let o=e===`case`&&n===a.path&&t===r.name;return(0,j.jsx)(q,{canRunGranular:i,filePath:a.path,isActive:o,name:r.name,onRunCase:s},r.id)})})})})]})})});J.displayName=`DiscoveryFileRow`;var ye=(0,A.memo)(({activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,availableCommands:i,canRunGranular:a,discovery:o,expandedFiles:s,fullSuiteOnlyNotice:l,isLoading:u,selectedCommandId:d,selectedCommandName:f,sessionError:m,sessionStatus:h,shouldShowCommandSelector:g,onRunCase:_,onRunFile:ee,onSelectCommand:y,onToggleFile:ne})=>{let[b,x]=(0,A.useState)(``),T=(0,A.useMemo)(()=>H(o,b),[o,b]),E=(0,A.useMemo)(()=>T.reduce((e,t)=>e+t.cases.length,0),[T]),D=B(b).length>0;return(0,j.jsx)(`aside`,{className:`min-h-0 border-b border-border/70 px-4 py-4 lg:border-r lg:border-b-0`,children:(0,j.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-3`,children:[g&&(0,j.jsxs)(`div`,{className:`space-y-2`,children:[(0,j.jsx)(`p`,{className:`text-xs uppercase tracking-[0.22em] text-muted-foreground`,children:F(`scope.label`)}),(0,j.jsxs)(w,{children:[(0,j.jsx)(S,{asChild:!0,children:(0,j.jsxs)(r,{type:`button`,variant:`outline`,className:`w-full justify-between rounded-xl border-border/70 bg-background/60`,"aria-label":F(`scope.selectedCommandAriaLabel`),disabled:i.length===0||h===`running`,children:[(0,j.jsx)(`span`,{className:`truncate`,children:f??F(`scope.selectTestScope`)}),(0,j.jsx)(O,{className:`h-4 w-4 text-muted-foreground`})]})}),(0,j.jsx)(te,{align:`start`,className:`w-72`,children:i.map(e=>(0,j.jsx)(p,{className:c(d===e.id&&`bg-accent text-accent-foreground`),onSelect:()=>{y(e.id)},children:(0,j.jsx)(`span`,{className:`truncate`,children:e.name})},e.id))})]})]}),l&&(0,j.jsx)(`div`,{className:`rounded-2xl border border-border/70 bg-background/30 px-4 py-3 text-sm text-muted-foreground`,children:l}),(o.length>0||b.length>0)&&(0,j.jsxs)(`div`,{className:`relative mt-1 shrink-0`,children:[(0,j.jsx)(k,{type:`search`,value:b,onChange:e=>{x(e.target.value)},placeholder:F(`filter.placeholder`),"aria-label":F(`filter.ariaLabel`),className:`pr-10`}),b.length>0&&(0,j.jsx)(r,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":F(`filter.clearAriaLabel`),className:`absolute right-1 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>{x(``)},children:(0,j.jsx)(C,{className:`size-4`})})]}),!i.length&&(0,j.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-4 text-sm text-muted-foreground`,children:F(`discovery.noCommands`)}),m&&(0,j.jsx)(`div`,{className:`rounded-2xl border border-rose-500/30 bg-rose-500/10 px-4 py-3 text-sm text-rose-200`,children:m}),(0,j.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-hidden rounded-2xl border border-border/70 bg-background/20 p-4`,children:[(0,j.jsxs)(`div`,{className:`shrink-0 flex items-start justify-between gap-3`,children:[(0,j.jsx)(`div`,{className:`min-w-0`,children:(0,j.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[F(`discovery.fileCount`,{count:T.length}),`, `,F(`discovery.caseCount`,{count:E})]})}),u&&(0,j.jsx)(v,{className:`h-4 w-4 animate-spin text-muted-foreground`})]}),(0,j.jsx)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto pr-1`,children:o.length===0&&!u?(0,j.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-5 text-sm text-muted-foreground`,children:F(`discovery.noFilesDetected`)}):T.length===0?(0,j.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-5 text-sm text-muted-foreground`,children:F(`discovery.noFilterMatches`)}):T.map(r=>(0,j.jsx)(J,{activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,canRunGranular:a,file:r,isExpanded:D||(s[r.path]??!1),onRunCase:_,onRunFile:ee,onToggleFile:ne},r.path))})]})]})})});ye.displayName=`DiscoveryPane`;var be=(0,A.memo)(({durationMs:e,output:t,outputTruncated:n,selectionLabel:r,status:i,summaryCounts:a,viewportRef:o,onScroll:s})=>{let l=(0,A.useMemo)(()=>t?I(t).replaceAll(`\r
2
- `,`
3
- `).replaceAll(`\r`,`
4
- `).split(`
5
- `).map(e=>({line:e,tone:W(e)})):[],[t]);return(0,j.jsx)(`section`,{className:`min-h-0 px-4 py-4`,children:(0,j.jsxs)(`div`,{className:`flex h-full flex-col gap-3`,children:[(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,j.jsx)(`span`,{className:`font-medium text-foreground`,children:r}),i&&(0,j.jsx)(g,{variant:`outline`,className:c(`px-3 py-1 text-xs uppercase tracking-[0.2em]`,R(i)),children:U(i)}),a&&(0,j.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-xs font-medium uppercase tracking-[0.18em]`,children:[(0,j.jsxs)(`span`,{className:`text-rose-200`,children:[a.failed.count,` `,a.failed.label]}),(0,j.jsxs)(`span`,{className:`text-emerald-200`,children:[a.passed.count,` `,a.passed.label]})]}),e!=null&&(0,j.jsx)(`span`,{className:`text-muted-foreground`,children:he(e)}),n&&(0,j.jsx)(g,{variant:`outline`,className:`border-amber-400/30 bg-amber-500/10 text-amber-200`,children:F(`output.trimmed`)})]}),(0,j.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden rounded-2xl border border-border/70 bg-[#0d1017]`,children:(0,j.jsx)(`div`,{ref:o,"aria-label":F(`output.ariaLabel`),className:`h-full overflow-auto px-4 py-4`,onScroll:s,children:(0,j.jsx)(`div`,{className:`font-mono text-xs leading-5`,children:l.length>0?l.map((e,t)=>(0,j.jsx)(K,{line:e.line,tone:e.tone},`${t}:${e.line}`)):(0,j.jsx)(`div`,{className:`text-slate-200`,children:F(`output.empty`)})})})})]})})});be.displayName=`OutputPane`;var xe=({testCommands:e,onClose:t,...a})=>{let o=a.scope,s=a.projectId,c=a.scope===`ticket`?a.ticketId:null,l=a.scope===`project`?a.targetKind:null,p=a.scope===`project`?a.targetBundleId:null,[h,g]=(0,A.useState)(e),[_,v]=(0,A.useState)(null),[te,b]=(0,A.useState)([]),[S,w]=(0,A.useState)(``),[T,D]=(0,A.useState)({}),[O,k]=(0,A.useState)(!0),[M,N]=(0,A.useState)(!1),[P,I]=(0,A.useState)(!1),[L,R]=(0,A.useState)(null),[he,z]=(0,A.useState)(!1),[B,V]=(0,A.useState)(!1),H=(0,A.useRef)(null),U=(0,A.useRef)(!1),W=(0,A.useRef)(null),G=(0,A.useRef)(!0),K=(0,A.useRef)(null),q=(0,A.useRef)(null),J=_?.selection?.kind??null,xe=_?.selection?.kind===`all`?null:_?.selection?.path??null,Se=_?.selection?.kind===`case`?_.selection.name:null,Y=_?.id??null,X=_?.status??null,Z=(0,A.useMemo)(()=>h.find(e=>e.id===S)??null,[h,S]),Ce=(0,A.useMemo)(()=>{if(_?.summary?.failed_count==null&&_?.summary?.passed_count==null&&_?.summary?.failed_file_count==null&&_?.summary?.passed_file_count==null)return null;let e=_?.summary?.failed_count==null&&_?.summary?.passed_count==null;return{failed:X===`failed`&&_?.summary?.failed_count==null&&_?.summary?.failed_file_count!=null||e?{count:_?.summary?.failed_file_count??0,label:F(`summaryCounts.filesFailed`)}:{count:_?.summary?.failed_count??0,label:F(`summaryCounts.failed`)},passed:e?{count:_?.summary?.passed_file_count??0,label:F(`summaryCounts.filesPassed`)}:{count:_?.summary?.passed_count??_?.summary?.passed_file_count??0,label:F(`summaryCounts.passed`)}}},[_?.summary?.failed_count,_?.summary?.passed_count,_?.summary?.failed_file_count,_?.summary?.passed_file_count,X]),we=Z?.runner===`unknown`?F(`scope.fullSuiteOnlyNotice`):null,Te=!!(Z&&_?.status!==`running`&&!M&&!P),Ee=Te,De=Te&&B,Oe=h.length>1;(0,A.useEffect)(()=>{S||h.length===0||w(h[0]?.id??``)},[h,S]),(0,A.useEffect)(()=>{e.length>0&&g(t=>_e(t,e)?t:e)},[e]),(0,A.useEffect)(()=>{if(h.length>0||!s)return;let e=new AbortController;return ne(e.signal).then(e=>{let t=e.find(e=>e.id===s);t&&g(e=>{let n=me(t.test_commands);return _e(e,n)?e:n})}).catch(()=>{}),()=>{e.abort()}},[h.length,s]),(0,A.useEffect)(()=>{let e=e=>{!e||e.id!==H.current||v(e)},t=e=>{!e||e.session_id!==H.current||v(t=>!t||t.id!==e.session_id?t:{...t,output:de(t.output,e.chunk),output_truncated:e.output_truncated})};return E.on(`test-session:updated`,e),E.on(`test-session:output`,t),()=>{E.off(`test-session:updated`,e),E.off(`test-session:output`,t)}},[]),(0,A.useEffect)(()=>{let e=W.current;if(!e){K.current=_?.output??null,q.current=_?.status??null;return}let t=K.current!==(_?.output??null),n=q.current!==`running`&&_?.status===`running`,r=q.current===`running`&&_?.status!==`running`;if(n&&(G.current=!0),n||t&&_?.status===`running`&&G.current||r&&G.current){let t=pe(e,r);return K.current=_?.output??null,q.current=_?.status??null,t}K.current=_?.output??null,q.current=_?.status??null},[_?.output,_?.status]),(0,A.useEffect)(()=>{let e=!1;return(async()=>{try{let t=o===`project`?await ae(s,{target_kind:l??`repo_root`,target_bundle_id:p??null}):await oe(c??``,s);if(e)return;H.current=t.id,v(t)}catch(t){e||R(t instanceof y?t.message:F(`messages.loadRunnerError`))}finally{!e&&H.current==null&&k(!1)}})(),()=>{e=!0}},[s,o,p,l,c]),(0,A.useEffect)(()=>{if(!_?.id){V(!1);return}if(h.length>0&&!S){V(!1);return}let e=new AbortController,t=!1;return k(!0),V(!1),se(_.id,{commandId:S||null,signal:e.signal}).then(e=>{t||(b(e.files),V(e.supports_granular_selection))}).catch(n=>{t||e.signal.aborted||R(n instanceof y?n.message:F(`messages.discoverError`))}).finally(()=>{t||k(!1)}),()=>{t=!0,e.abort()}},[h.length,S,_?.id]),(0,A.useEffect)(()=>()=>{let e=H.current;!e||U.current||(U.current=!0,ue(e).catch(()=>{}))},[]);let Q=(0,A.useCallback)(async e=>{if(!(!Y||X===`running`||!Z||M||P)){R(null),N(!0);try{v(await ce(Y,{command_id:Z.id,selection:e}))}catch(e){R(e instanceof y?e.message:F(`messages.startError`))}finally{N(!1)}}},[M,P,Z,Y,X]),ke=(0,A.useCallback)(async()=>{if(!(!Y||X!==`running`||P)){R(null),I(!0);try{v(await le(Y))}catch(e){R(e instanceof y?e.message:F(`messages.stopError`))}finally{I(!1)}}},[P,Y,X]),$=(0,A.useCallback)(()=>{let e=H.current;if(!e||U.current){t();return}U.current=!0,t(),ue(e).catch(()=>{})},[t]),Ae=(0,A.useCallback)(()=>{if(X===`running`){z(!0);return}$()},[$,X]),je=(0,A.useCallback)(()=>{let e=W.current;e&&(G.current=fe(e))},[]),Me=(0,A.useCallback)(e=>{w(e)},[]),Ne=(0,A.useCallback)((e,t)=>{D(n=>(n[e]??!1)===t?n:{...n,[e]:t})},[]),Pe=(0,A.useCallback)(e=>{Q({kind:`file`,path:e})},[Q]),Fe=(0,A.useCallback)((e,t)=>{Q({kind:`case`,path:e,name:t})},[Q]);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(m,{open:!0,onOpenChange:e=>{e||Ae()},children:(0,j.jsxs)(u,{showCloseButton:!1,overlayClassName:`bg-black/70`,className:`flex h-[calc(100vh-2rem)] max-h-[58rem] w-full max-w-[calc(100%-1rem)] flex-col gap-0 overflow-hidden rounded-3xl border border-[#2a2a38] bg-[#16161f] p-0 shadow-2xl sm:max-w-7xl`,onInteractOutside:e=>e.preventDefault(),children:[(0,j.jsx)(i,{className:`sr-only`,children:F(`dialog.srTitle`)}),(0,j.jsx)(n,{className:`sr-only`,children:F(`dialog.srDescription`)}),(0,j.jsxs)(`div`,{className:`flex items-start justify-between gap-4 border-b border-border px-6 py-4`,children:[(0,j.jsx)(`div`,{className:`min-w-0`,children:(0,j.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,j.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-2xl border border-border/70 bg-background/60 text-sky-200`,children:(0,j.jsx)(f,{className:`h-5 w-5`})}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{className:`text-2xl font-semibold text-foreground`,children:F(`dialog.title`)}),(0,j.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:_?.target_label??F(`dialog.preparingTarget`)})]})]})}),(0,j.jsx)(ie,{asChild:!0,children:(0,j.jsx)(r,{type:`button`,"aria-label":F(`dialog.closeAriaLabel`),variant:`ghost`,size:`icon-sm`,className:`cursor-pointer text-muted-foreground hover:text-foreground`,children:(0,j.jsx)(C,{className:`h-4 w-4`})})})]}),(0,j.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-0 lg:grid-cols-[22rem_minmax(0,1fr)]`,children:[(0,j.jsx)(ye,{activeSelectionKind:J,activeSelectionName:Se,activeSelectionPath:xe,availableCommands:h,canRunGranular:De,discovery:te,expandedFiles:T,fullSuiteOnlyNotice:we,isLoading:O,selectedCommandId:S,selectedCommandName:Z?.name??null,sessionError:L,sessionStatus:X,shouldShowCommandSelector:Oe,onRunCase:Fe,onRunFile:Pe,onSelectCommand:Me,onToggleFile:Ne}),(0,j.jsx)(be,{durationMs:_?.duration_ms??null,output:_?.output??``,outputTruncated:_?.output_truncated??!1,selectionLabel:ge(_),status:X,summaryCounts:Ce,viewportRef:W,onScroll:je})]}),(0,j.jsx)(re,{className:`border-t border-border/70 px-6 py-4 sm:flex-row sm:items-center sm:justify-end`,children:(0,j.jsx)(`div`,{className:`flex items-center justify-end gap-2`,children:_?.status===`running`?(0,j.jsxs)(r,{type:`button`,variant:`destructive`,className:ve,onClick:()=>{ke()},disabled:P,children:[(0,j.jsx)(x,{className:`h-4 w-4`}),(0,j.jsx)(`span`,{children:F(`actions.stop`)})]}):(0,j.jsxs)(r,{type:`button`,variant:`success`,className:ve,disabled:!Ee,onClick:()=>{Q({kind:`all`})},children:[(0,j.jsx)(ee,{className:`h-4 w-4`}),(0,j.jsx)(`span`,{children:F(`actions.run`)})]})})})]})}),(0,j.jsx)(m,{open:he,onOpenChange:z,children:(0,j.jsxs)(u,{showCloseButton:!1,overlayClassName:`z-[60] bg-black/60`,className:`z-[60] max-w-md rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:[(0,j.jsxs)(d,{children:[(0,j.jsx)(i,{className:`text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:F(`closeConfirmation.title`)}),(0,j.jsx)(n,{className:`text-sm text-foreground whitespace-pre-line`,children:F(`closeConfirmation.description`)})]}),(0,j.jsxs)(re,{className:`sm:flex-row sm:justify-end`,children:[(0,j.jsx)(r,{type:`button`,variant:`ghost`,onClick:()=>z(!1),children:F(`closeConfirmation.keepRunning`)}),(0,j.jsx)(r,{type:`button`,variant:`destructive`,onClick:()=>{z(!1),$()},children:F(`closeConfirmation.stopAndClose`)})]})]})})]})};export{xe as TestsDialog};
@@ -1 +0,0 @@
1
- import{at as e,ot as t}from"./chunk-CSCIHK7Q-CTy5Vnsi.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
@@ -1 +0,0 @@
1
- import{h as e}from"./src-BcaL9nCM.js";import"./chunk-CSCIHK7Q-CTy5Vnsi.js";import"./chunk-5ZQYHXKU-DYo_TwPP.js";import"./chunk-O5CBEL6O-Dr6DQwZn.js";import"./chunk-FMBD7UC4-mGY2D2YB.js";import"./chunk-BSJP7CBP-X4eyoSqE.js";import"./chunk-L5ZTLDWV-BFBha-m9.js";import"./chunk-ND2GUHAM-CazKz40j.js";import"./chunk-55IACEB6-BB-0ajVZ.js";import"./chunk-2J33WTMH-BKDkaoQT.js";import"./chunk-NZK2D7GU-B2IFwDK1.js";import"./chunk-3OPIFGDE-CS0HFD9a.js";import"./chunk-KSCS5N6A-DFdh0Cya.js";import"./chunk-LZXEDZCA-DpeaPMtX.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-BajKdB6e.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import{h as e}from"./src-BcaL9nCM.js";import"./chunk-CSCIHK7Q-CTy5Vnsi.js";import"./chunk-5ZQYHXKU-DYo_TwPP.js";import"./chunk-O5CBEL6O-Dr6DQwZn.js";import"./chunk-FMBD7UC4-mGY2D2YB.js";import"./chunk-BSJP7CBP-X4eyoSqE.js";import"./chunk-L5ZTLDWV-BFBha-m9.js";import"./chunk-ND2GUHAM-CazKz40j.js";import"./chunk-55IACEB6-BB-0ajVZ.js";import"./chunk-2J33WTMH-BKDkaoQT.js";import"./chunk-NZK2D7GU-B2IFwDK1.js";import"./chunk-3OPIFGDE-CS0HFD9a.js";import"./chunk-KSCS5N6A-DFdh0Cya.js";import"./chunk-LZXEDZCA-DpeaPMtX.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-BajKdB6e.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};