@harness-engineering/cli 1.25.6 → 1.26.0

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 (61) hide show
  1. package/dist/agents/skills/claude-code/harness-knowledge-pipeline/SKILL.md +277 -0
  2. package/dist/agents/skills/claude-code/harness-knowledge-pipeline/skill.yaml +60 -0
  3. package/dist/agents/skills/codex/harness-knowledge-pipeline/SKILL.md +277 -0
  4. package/dist/agents/skills/codex/harness-knowledge-pipeline/skill.yaml +60 -0
  5. package/dist/agents/skills/cursor/harness-knowledge-pipeline/SKILL.md +277 -0
  6. package/dist/agents/skills/cursor/harness-knowledge-pipeline/skill.yaml +60 -0
  7. package/dist/agents/skills/gemini-cli/harness-knowledge-pipeline/SKILL.md +277 -0
  8. package/dist/agents/skills/gemini-cli/harness-knowledge-pipeline/skill.yaml +60 -0
  9. package/dist/agents/skills/package.json +2 -2
  10. package/dist/{agents-md-2PYJM2MK.js → agents-md-OPOZA5L7.js} +3 -3
  11. package/dist/{architecture-VCLB7A23.js → architecture-PMVMO6SF.js} +4 -4
  12. package/dist/{assess-project-64C6LIKN.js → assess-project-ZW7EKNIT.js} +1 -1
  13. package/dist/bin/harness-mcp.js +15 -15
  14. package/dist/bin/harness.js +25 -25
  15. package/dist/{check-phase-gate-RT6PGEHY.js → check-phase-gate-NTLAU3LO.js} +4 -4
  16. package/dist/{chunk-JUXFYB2K.js → chunk-4KSKV5MK.js} +1 -1
  17. package/dist/{chunk-7BAGSY5Q.js → chunk-6SCA4NEZ.js} +1 -1
  18. package/dist/{chunk-42ZZLMYD.js → chunk-77EZGPSR.js} +1 -1
  19. package/dist/{chunk-CBZECDCW.js → chunk-7JNZXJKY.js} +5 -5
  20. package/dist/{chunk-43VBX44J.js → chunk-CAS3TS4Y.js} +110 -92
  21. package/dist/{chunk-FL6A72LV.js → chunk-EXTWTJRF.js} +1 -1
  22. package/dist/{chunk-XLO4AXXM.js → chunk-FI3D6D7U.js} +9 -9
  23. package/dist/{chunk-ZAKUCM7O.js → chunk-G6SYTGOH.js} +2 -2
  24. package/dist/{chunk-RKZW3FDF.js → chunk-HAOBHL3W.js} +1 -1
  25. package/dist/{chunk-4YEBV2FT.js → chunk-IFHAUFJX.js} +2 -2
  26. package/dist/{chunk-XMEEYMGE.js → chunk-J3O64D2A.js} +1 -1
  27. package/dist/{chunk-WEOGCL7B.js → chunk-JBJ4AVE4.js} +3 -3
  28. package/dist/{chunk-VELT5VAG.js → chunk-JWSVLC4I.js} +1 -1
  29. package/dist/{chunk-BUJOMC3O.js → chunk-JZ6GORAK.js} +38 -2
  30. package/dist/{chunk-JQCS75DY.js → chunk-KFE2X7LG.js} +4 -4
  31. package/dist/{chunk-U2OMWI7Z.js → chunk-KSFUJT5B.js} +1 -1
  32. package/dist/{chunk-Y5JA4J2M.js → chunk-KXIAHHHP.js} +2 -2
  33. package/dist/{chunk-R2BI5UPK.js → chunk-NIOB6FTG.js} +1 -1
  34. package/dist/{chunk-X2JJ3CPG.js → chunk-NVGQO4VM.js} +8 -8
  35. package/dist/{chunk-EY6F2QXW.js → chunk-QYSWNPXZ.js} +1 -1
  36. package/dist/{chunk-SZZ5UQL7.js → chunk-RNAGPTKF.js} +6 -6
  37. package/dist/{chunk-KJC4SE7C.js → chunk-UBRD5FH4.js} +9 -9
  38. package/dist/{chunk-RDQGCHKD.js → chunk-VV2PJT4K.js} +3358 -227
  39. package/dist/{chunk-SMY35HJM.js → chunk-Z2JORLRT.js} +1 -1
  40. package/dist/{chunk-R7P2FMJT.js → chunk-ZBQ3ZY75.js} +436 -284
  41. package/dist/{ci-workflow-SZL3KVUK.js → ci-workflow-H52EMCL6.js} +3 -3
  42. package/dist/{dist-GRW3X2ZQ.js → dist-PGQ32ZI7.js} +41 -1
  43. package/dist/{dist-T3DGV5UN.js → dist-TG63OKA5.js} +2 -2
  44. package/dist/{docs-WDLJORLK.js → docs-GP4VUSIB.js} +4 -4
  45. package/dist/{engine-2YWYRCKK.js → engine-KQG5RVXX.js} +3 -3
  46. package/dist/{entropy-PJGTOORX.js → entropy-RXESIYKC.js} +3 -3
  47. package/dist/{feedback-M5KCJKL2.js → feedback-HS7ZYXOU.js} +1 -1
  48. package/dist/{generate-agent-definitions-MFDW6LZT.js → generate-agent-definitions-I4B7CVOB.js} +4 -4
  49. package/dist/{graph-loader-QMKXT454.js → graph-loader-TIVI6NQ7.js} +1 -1
  50. package/dist/index.d.ts +6 -0
  51. package/dist/index.js +25 -25
  52. package/dist/{loader-6O52FYHE.js → loader-CWAH6B4H.js} +3 -3
  53. package/dist/{mcp-GGNFWKVC.js → mcp-KHK5KYER.js} +15 -15
  54. package/dist/{performance-337U5URQ.js → performance-WDW5WS3J.js} +4 -4
  55. package/dist/{review-pipeline-DB5RD4SN.js → review-pipeline-QOZGWCTY.js} +3 -3
  56. package/dist/{runtime-B74EN2WD.js → runtime-SFEFRPLX.js} +3 -3
  57. package/dist/{scan-DXQUHGTT.js → scan-IJ7EYTF7.js} +1 -1
  58. package/dist/{security-3AYN6FVU.js → security-2K7UUK6T.js} +1 -1
  59. package/dist/{validate-35CD7VWN.js → validate-HXM6DXRZ.js} +4 -4
  60. package/dist/{validate-cross-check-LJKXBQYH.js → validate-cross-check-ULQLEOME.js} +3 -3
  61. package/package.json +9 -9
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  assessProjectDefinition,
3
3
  handleAssessProject
4
- } from "./chunk-SZZ5UQL7.js";
4
+ } from "./chunk-RNAGPTKF.js";
5
5
  import {
6
6
  getBusinessKnowledgeResource
7
7
  } from "./chunk-RC5ZY3EV.js";
@@ -12,37 +12,37 @@ import {
12
12
  handleCreateSelfReview,
13
13
  handleRequestPeerReview,
14
14
  requestPeerReviewDefinition
15
- } from "./chunk-KJC4SE7C.js";
15
+ } from "./chunk-UBRD5FH4.js";
16
16
  import {
17
17
  getSecurityTrendsDefinition,
18
18
  handleGetSecurityTrends,
19
19
  handleRunSecurityScan,
20
20
  runSecurityScanDefinition
21
- } from "./chunk-4YEBV2FT.js";
21
+ } from "./chunk-IFHAUFJX.js";
22
22
  import {
23
23
  handleRunCodeReview,
24
24
  runCodeReviewDefinition,
25
25
  sortFindingsBySeverity
26
- } from "./chunk-ZAKUCM7O.js";
26
+ } from "./chunk-G6SYTGOH.js";
27
27
  import {
28
28
  handleValidateProject,
29
29
  validateToolDefinition
30
- } from "./chunk-WEOGCL7B.js";
30
+ } from "./chunk-JBJ4AVE4.js";
31
31
  import {
32
32
  checkDependenciesDefinition,
33
33
  handleCheckDependencies
34
- } from "./chunk-JQCS75DY.js";
34
+ } from "./chunk-KFE2X7LG.js";
35
35
  import {
36
36
  resolveProjectConfig
37
- } from "./chunk-XMEEYMGE.js";
37
+ } from "./chunk-J3O64D2A.js";
38
38
  import {
39
39
  checkDocsDefinition,
40
40
  handleCheckDocs
41
- } from "./chunk-XLO4AXXM.js";
41
+ } from "./chunk-FI3D6D7U.js";
42
42
  import {
43
43
  detectEntropyDefinition,
44
44
  handleDetectEntropy
45
- } from "./chunk-CBZECDCW.js";
45
+ } from "./chunk-7JNZXJKY.js";
46
46
  import {
47
47
  checkPerformanceDefinition,
48
48
  getCriticalPathsDefinition,
@@ -52,7 +52,7 @@ import {
52
52
  handleGetPerfBaselines,
53
53
  handleUpdatePerfBaselines,
54
54
  updatePerfBaselinesDefinition
55
- } from "./chunk-X2JJ3CPG.js";
55
+ } from "./chunk-NVGQO4VM.js";
56
56
  import {
57
57
  resultToMcpResponse
58
58
  } from "./chunk-EPUKTTJZ.js";
@@ -61,7 +61,7 @@ import {
61
61
  } from "./chunk-W6Y7ZW3Y.js";
62
62
  import {
63
63
  resolveConfig
64
- } from "./chunk-JUXFYB2K.js";
64
+ } from "./chunk-4KSKV5MK.js";
65
65
  import {
66
66
  GENERATED_HEADER_CLAUDE,
67
67
  GENERATED_HEADER_CODEX,
@@ -83,7 +83,7 @@ import {
83
83
  } from "./chunk-6B6UN6SG.js";
84
84
  import {
85
85
  loadGraphStore
86
- } from "./chunk-SMY35HJM.js";
86
+ } from "./chunk-Z2JORLRT.js";
87
87
  import {
88
88
  CompactionPipeline,
89
89
  DEFAULT_TOKEN_BUDGET,
@@ -101,7 +101,7 @@ import {
101
101
  scanForInjection,
102
102
  serializeEnvelope,
103
103
  writeTaint
104
- } from "./chunk-42ZZLMYD.js";
104
+ } from "./chunk-77EZGPSR.js";
105
105
  import {
106
106
  Err,
107
107
  Ok
@@ -676,9 +676,11 @@ function scaffoldMcp(engine, safePath, i, language) {
676
676
  ...language !== void 0 && { language }
677
677
  });
678
678
  if (!renderResult.ok) return resultToMcpResponse(renderResult);
679
+ const existingProject = engine.isExistingProject(safePath);
679
680
  const writeResult = engine.write(renderResult.value, safePath, {
680
681
  overwrite: false,
681
- ...language !== void 0 && { language }
682
+ ...language !== void 0 && { language },
683
+ existingProject
682
684
  });
683
685
  if (writeResult.ok) {
684
686
  persistToolingConfig(safePath, resolveResult.value, i.framework);
@@ -699,7 +701,7 @@ ${skippedMsg}`
699
701
  async function handleInitProject(input) {
700
702
  const i = input;
701
703
  try {
702
- const { TemplateEngine } = await import("./engine-2YWYRCKK.js");
704
+ const { TemplateEngine } = await import("./engine-KQG5RVXX.js");
703
705
  const engine = new TemplateEngine(resolveTemplatesDir());
704
706
  const safePath = sanitizePath(i.path);
705
707
  const detected = tryDetectFramework(engine, safePath, i);
@@ -721,7 +723,7 @@ var listPersonasDefinition = {
721
723
  inputSchema: { type: "object", properties: {} }
722
724
  };
723
725
  async function handleListPersonas() {
724
- const { listPersonas } = await import("./loader-6O52FYHE.js");
726
+ const { listPersonas } = await import("./loader-CWAH6B4H.js");
725
727
  const result = listPersonas(resolvePersonasDir());
726
728
  return resultToMcpResponse(result);
727
729
  }
@@ -745,10 +747,10 @@ async function handleGeneratePersonaArtifacts(input) {
745
747
  if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
746
748
  return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
747
749
  }
748
- const { loadPersona } = await import("./loader-6O52FYHE.js");
749
- const { generateRuntime } = await import("./runtime-B74EN2WD.js");
750
- const { generateAgentsMd } = await import("./agents-md-2PYJM2MK.js");
751
- const { generateCIWorkflow } = await import("./ci-workflow-SZL3KVUK.js");
750
+ const { loadPersona } = await import("./loader-CWAH6B4H.js");
751
+ const { generateRuntime } = await import("./runtime-SFEFRPLX.js");
752
+ const { generateAgentsMd } = await import("./agents-md-OPOZA5L7.js");
753
+ const { generateCIWorkflow } = await import("./ci-workflow-H52EMCL6.js");
752
754
  const personasDir = resolvePersonasDir();
753
755
  const filePath = path3.join(personasDir, `${input.name}.yaml`);
754
756
  if (!filePath.startsWith(personasDir)) {
@@ -803,7 +805,7 @@ async function handleRunPersona(input) {
803
805
  if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
804
806
  return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
805
807
  }
806
- const { loadPersona } = await import("./loader-6O52FYHE.js");
808
+ const { loadPersona } = await import("./loader-CWAH6B4H.js");
807
809
  const { runPersona } = await import("./runner-AAEF2TXY.js");
808
810
  const { executeSkill } = await import("./skill-executor-MOCUIAYS.js");
809
811
  const personasDir = resolvePersonasDir();
@@ -1342,7 +1344,7 @@ function loadOrGenerateProfile(projectRoot) {
1342
1344
  // src/mcp/tools/event-emitter.ts
1343
1345
  async function emitSkillEvent(projectPath, event) {
1344
1346
  try {
1345
- const { emitEvent } = await import("./dist-T3DGV5UN.js");
1347
+ const { emitEvent } = await import("./dist-TG63OKA5.js");
1346
1348
  await emitEvent(projectPath, event);
1347
1349
  } catch {
1348
1350
  }
@@ -1614,7 +1616,7 @@ async function autoSyncRoadmap(projectPath) {
1614
1616
  try {
1615
1617
  const roadmapFile = path11.join(projectPath, "docs", "roadmap.md");
1616
1618
  if (!fs10.existsSync(roadmapFile)) return;
1617
- const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-T3DGV5UN.js");
1619
+ const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-TG63OKA5.js");
1618
1620
  const raw = fs10.readFileSync(roadmapFile, "utf-8");
1619
1621
  const parseResult = parseRoadmap(raw);
1620
1622
  if (!parseResult.ok) return;
@@ -1644,7 +1646,7 @@ async function triggerExternalSync(projectPath, roadmapFile) {
1644
1646
  console.warn("[roadmap-sync] GITHUB_TOKEN not found \u2014 external sync skipped");
1645
1647
  return;
1646
1648
  }
1647
- const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-T3DGV5UN.js");
1649
+ const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-TG63OKA5.js");
1648
1650
  const adapter = new GitHubIssuesSyncAdapter({
1649
1651
  token,
1650
1652
  config: trackerConfig
@@ -1741,12 +1743,12 @@ var manageStateDefinition = {
1741
1743
  }
1742
1744
  };
1743
1745
  async function handleShow(projectPath, input) {
1744
- const { loadState } = await import("./dist-T3DGV5UN.js");
1746
+ const { loadState } = await import("./dist-TG63OKA5.js");
1745
1747
  return resultToMcpResponse(await loadState(projectPath, input.stream, input.session));
1746
1748
  }
1747
1749
  async function handleLearn(projectPath, input) {
1748
1750
  if (!input.learning) return mcpError("Error: learning is required for learn action");
1749
- const { appendLearning } = await import("./dist-T3DGV5UN.js");
1751
+ const { appendLearning } = await import("./dist-TG63OKA5.js");
1750
1752
  const result = await appendLearning(
1751
1753
  projectPath,
1752
1754
  input.learning,
@@ -1761,7 +1763,7 @@ async function handleLearn(projectPath, input) {
1761
1763
  async function handleFailure(projectPath, input) {
1762
1764
  if (!input.description) return mcpError("Error: description is required for failure action");
1763
1765
  if (!input.failureType) return mcpError("Error: failureType is required for failure action");
1764
- const { appendFailure } = await import("./dist-T3DGV5UN.js");
1766
+ const { appendFailure } = await import("./dist-TG63OKA5.js");
1765
1767
  const result = await appendFailure(
1766
1768
  projectPath,
1767
1769
  input.description,
@@ -1780,19 +1782,19 @@ async function handleFailure(projectPath, input) {
1780
1782
  return resultToMcpResponse(Ok({ recorded: true }));
1781
1783
  }
1782
1784
  async function handleArchive(projectPath, input) {
1783
- const { archiveFailures } = await import("./dist-T3DGV5UN.js");
1785
+ const { archiveFailures } = await import("./dist-TG63OKA5.js");
1784
1786
  const result = await archiveFailures(projectPath, input.stream, input.session);
1785
1787
  if (!result.ok) return resultToMcpResponse(result);
1786
1788
  return resultToMcpResponse(Ok({ archived: true }));
1787
1789
  }
1788
1790
  async function handleReset(projectPath, input) {
1789
- const { saveState, DEFAULT_STATE } = await import("./dist-T3DGV5UN.js");
1791
+ const { saveState, DEFAULT_STATE } = await import("./dist-TG63OKA5.js");
1790
1792
  const result = await saveState(projectPath, { ...DEFAULT_STATE }, input.stream, input.session);
1791
1793
  if (!result.ok) return resultToMcpResponse(result);
1792
1794
  return resultToMcpResponse(Ok({ reset: true }));
1793
1795
  }
1794
1796
  async function handleGate(projectPath, input) {
1795
- const { runMechanicalGate } = await import("./dist-T3DGV5UN.js");
1797
+ const { runMechanicalGate } = await import("./dist-TG63OKA5.js");
1796
1798
  const result = await runMechanicalGate(projectPath);
1797
1799
  if (result.ok) {
1798
1800
  await emitSkillEvent(projectPath, {
@@ -1812,7 +1814,7 @@ async function handleGate(projectPath, input) {
1812
1814
  }
1813
1815
  async function handleSaveHandoff(projectPath, input) {
1814
1816
  if (!input.handoff) return mcpError("Error: handoff is required for save-handoff action");
1815
- const { saveHandoff } = await import("./dist-T3DGV5UN.js");
1817
+ const { saveHandoff } = await import("./dist-TG63OKA5.js");
1816
1818
  const result = await saveHandoff(
1817
1819
  projectPath,
1818
1820
  input.handoff,
@@ -1834,7 +1836,7 @@ async function handleSaveHandoff(projectPath, input) {
1834
1836
  return resultToMcpResponse(Ok({ saved: true }));
1835
1837
  }
1836
1838
  async function handleLoadHandoff(projectPath, input) {
1837
- const { loadHandoff } = await import("./dist-T3DGV5UN.js");
1839
+ const { loadHandoff } = await import("./dist-TG63OKA5.js");
1838
1840
  return resultToMcpResponse(await loadHandoff(projectPath, input.stream, input.session));
1839
1841
  }
1840
1842
  async function handleAppendEntry(projectPath, input) {
@@ -1842,7 +1844,7 @@ async function handleAppendEntry(projectPath, input) {
1842
1844
  if (!input.authorSkill) return mcpError("Error: authorSkill is required for append_entry action");
1843
1845
  if (!input.content) return mcpError("Error: content is required for append_entry action");
1844
1846
  if (input.session) {
1845
- const { appendSessionEntry } = await import("./dist-T3DGV5UN.js");
1847
+ const { appendSessionEntry } = await import("./dist-TG63OKA5.js");
1846
1848
  const result = await appendSessionEntry(
1847
1849
  projectPath,
1848
1850
  input.session,
@@ -1855,7 +1857,7 @@ async function handleAppendEntry(projectPath, input) {
1855
1857
  if (input.section !== "decisions") {
1856
1858
  return mcpError("Error: session is required for non-decisions sections");
1857
1859
  }
1858
- const { loadState, saveState } = await import("./dist-T3DGV5UN.js");
1860
+ const { loadState, saveState } = await import("./dist-TG63OKA5.js");
1859
1861
  const lr = await loadState(projectPath, input.stream);
1860
1862
  if (!lr.ok) return resultToMcpResponse(lr);
1861
1863
  lr.value.decisions.push({
@@ -1873,7 +1875,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
1873
1875
  if (!input.entryId) return mcpError("Error: entryId is required for update_entry_status action");
1874
1876
  if (!input.newStatus)
1875
1877
  return mcpError("Error: newStatus is required for update_entry_status action");
1876
- const { updateSessionEntryStatus } = await import("./dist-T3DGV5UN.js");
1878
+ const { updateSessionEntryStatus } = await import("./dist-TG63OKA5.js");
1877
1879
  const result = await updateSessionEntryStatus(
1878
1880
  projectPath,
1879
1881
  input.session,
@@ -1886,7 +1888,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
1886
1888
  async function handleReadSection(projectPath, input) {
1887
1889
  if (!input.session) return mcpError("Error: session is required for read_section action");
1888
1890
  if (!input.section) return mcpError("Error: section is required for read_section action");
1889
- const { readSessionSection } = await import("./dist-T3DGV5UN.js");
1891
+ const { readSessionSection } = await import("./dist-TG63OKA5.js");
1890
1892
  const result = await readSessionSection(
1891
1893
  projectPath,
1892
1894
  input.session,
@@ -1896,13 +1898,13 @@ async function handleReadSection(projectPath, input) {
1896
1898
  }
1897
1899
  async function handleReadSections(projectPath, input) {
1898
1900
  if (!input.session) return mcpError("Error: session is required for read_sections action");
1899
- const { readSessionSections } = await import("./dist-T3DGV5UN.js");
1901
+ const { readSessionSections } = await import("./dist-TG63OKA5.js");
1900
1902
  const result = await readSessionSections(projectPath, input.session);
1901
1903
  return resultToMcpResponse(result);
1902
1904
  }
1903
1905
  async function handleArchiveSession(projectPath, input) {
1904
1906
  if (!input.session) return mcpError("Error: session is required for archive_session action");
1905
- const { archiveSession } = await import("./dist-T3DGV5UN.js");
1907
+ const { archiveSession } = await import("./dist-TG63OKA5.js");
1906
1908
  const result = await archiveSession(projectPath, input.session);
1907
1909
  if (!result.ok) return resultToMcpResponse(result);
1908
1910
  await autoSyncRoadmap(projectPath);
@@ -1982,7 +1984,7 @@ var listStreamsDefinition = {
1982
1984
  };
1983
1985
  async function handleListStreams(input) {
1984
1986
  try {
1985
- const { listStreams, loadStreamIndex } = await import("./dist-T3DGV5UN.js");
1987
+ const { listStreams, loadStreamIndex } = await import("./dist-TG63OKA5.js");
1986
1988
  const projectPath = sanitizePath(input.path);
1987
1989
  const indexResult = await loadStreamIndex(projectPath);
1988
1990
  const streamsResult = await listStreams(projectPath);
@@ -2020,7 +2022,7 @@ var checkPhaseGateDefinition = {
2020
2022
  };
2021
2023
  async function handleCheckPhaseGate(input) {
2022
2024
  try {
2023
- const { runCheckPhaseGate } = await import("./check-phase-gate-RT6PGEHY.js");
2025
+ const { runCheckPhaseGate } = await import("./check-phase-gate-NTLAU3LO.js");
2024
2026
  const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
2025
2027
  if (result.ok) {
2026
2028
  return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
@@ -2076,7 +2078,7 @@ async function handleValidateCrossCheck(input) {
2076
2078
  };
2077
2079
  }
2078
2080
  try {
2079
- const { runCrossCheck } = await import("./validate-cross-check-LJKXBQYH.js");
2081
+ const { runCrossCheck } = await import("./validate-cross-check-ULQLEOME.js");
2080
2082
  const specsDir = path12.resolve(projectPath, input.specsDir ?? "docs/specs");
2081
2083
  if (!specsDir.startsWith(projectPath)) {
2082
2084
  return {
@@ -2799,7 +2801,7 @@ async function handleGenerateSlashCommands(input) {
2799
2801
  // src/mcp/resources/state.ts
2800
2802
  async function getStateResource(projectRoot) {
2801
2803
  try {
2802
- const { loadState, migrateToStreams } = await import("./dist-T3DGV5UN.js");
2804
+ const { loadState, migrateToStreams } = await import("./dist-TG63OKA5.js");
2803
2805
  await migrateToStreams(projectRoot);
2804
2806
  const result = await loadState(projectRoot);
2805
2807
  if (result.ok) {
@@ -2917,7 +2919,7 @@ async function handleQueryGraph(input) {
2917
2919
  const projectPath = sanitizePath(input.path);
2918
2920
  const store = await loadGraphStore(projectPath);
2919
2921
  if (!store) return graphNotFoundError();
2920
- const { ContextQL } = await import("./dist-GRW3X2ZQ.js");
2922
+ const { ContextQL } = await import("./dist-PGQ32ZI7.js");
2921
2923
  const cql = new ContextQL(store);
2922
2924
  const result = cql.execute({
2923
2925
  rootNodeIds: input.rootNodeIds,
@@ -2999,7 +3001,7 @@ async function handleSearchSimilar(input) {
2999
3001
  const projectPath = sanitizePath(input.path);
3000
3002
  const store = await loadGraphStore(projectPath);
3001
3003
  if (!store) return graphNotFoundError();
3002
- const { FusionLayer } = await import("./dist-GRW3X2ZQ.js");
3004
+ const { FusionLayer } = await import("./dist-PGQ32ZI7.js");
3003
3005
  const fusion = new FusionLayer(store);
3004
3006
  const results = fusion.search(input.query, input.topK ?? 10);
3005
3007
  if (input.mode === "summary") {
@@ -3054,7 +3056,7 @@ async function handleFindContextFor(input) {
3054
3056
  const projectPath = sanitizePath(input.path);
3055
3057
  const store = await loadGraphStore(projectPath);
3056
3058
  if (!store) return graphNotFoundError();
3057
- const { FusionLayer, ContextQL } = await import("./dist-GRW3X2ZQ.js");
3059
+ const { FusionLayer, ContextQL } = await import("./dist-PGQ32ZI7.js");
3058
3060
  const fusion = new FusionLayer(store);
3059
3061
  const cql = new ContextQL(store);
3060
3062
  const tokenBudget = input.tokenBudget ?? 4e3;
@@ -3159,7 +3161,7 @@ async function handleGetRelationships(input) {
3159
3161
  const projectPath = sanitizePath(input.path);
3160
3162
  const store = await loadGraphStore(projectPath);
3161
3163
  if (!store) return graphNotFoundError();
3162
- const { ContextQL } = await import("./dist-GRW3X2ZQ.js");
3164
+ const { ContextQL } = await import("./dist-PGQ32ZI7.js");
3163
3165
  const cql = new ContextQL(store);
3164
3166
  const direction = input.direction ?? "both";
3165
3167
  const bidirectional = direction === "both" || direction === "inbound";
@@ -3277,7 +3279,7 @@ async function handleGetImpact(input) {
3277
3279
  const projectPath = sanitizePath(input.path);
3278
3280
  const store = await loadGraphStore(projectPath);
3279
3281
  if (!store) return graphNotFoundError();
3280
- const { ContextQL } = await import("./dist-GRW3X2ZQ.js");
3282
+ const { ContextQL } = await import("./dist-PGQ32ZI7.js");
3281
3283
  let targetNodeId = input.nodeId;
3282
3284
  if (!targetNodeId && input.filePath) {
3283
3285
  const fileNodes = store.findNodes({ type: "file" });
@@ -3398,7 +3400,7 @@ var ingestSourceDefinition = {
3398
3400
  path: { type: "string", description: "Path to project root" },
3399
3401
  source: {
3400
3402
  type: "string",
3401
- enum: ["code", "knowledge", "git", "all"],
3403
+ enum: ["code", "knowledge", "git", "business-signals", "diagrams", "all"],
3402
3404
  description: "Type of source to ingest"
3403
3405
  }
3404
3406
  },
@@ -3409,7 +3411,7 @@ async function handleIngestSource(input) {
3409
3411
  try {
3410
3412
  const projectPath = sanitizePath(input.path);
3411
3413
  const graphDir = path16.join(projectPath, ".harness", "graph");
3412
- const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-GRW3X2ZQ.js");
3414
+ const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-PGQ32ZI7.js");
3413
3415
  const fs17 = await import("fs/promises");
3414
3416
  await fs17.mkdir(graphDir, { recursive: true });
3415
3417
  const store = new GraphStore();
@@ -3432,6 +3434,18 @@ async function handleIngestSource(input) {
3432
3434
  const gitResult = await gitIngestor.ingest(projectPath);
3433
3435
  results.push(gitResult);
3434
3436
  }
3437
+ if (input.source === "business-signals" || input.source === "all") {
3438
+ const { createExtractionRunner } = await import("./dist-PGQ32ZI7.js");
3439
+ const extractedDir = path16.join(projectPath, ".harness", "knowledge", "extracted");
3440
+ const signalsResult = await createExtractionRunner().run(projectPath, store, extractedDir);
3441
+ results.push(signalsResult);
3442
+ }
3443
+ if (input.source === "diagrams" || input.source === "all") {
3444
+ const { DiagramParser } = await import("./dist-PGQ32ZI7.js");
3445
+ const diagramParser = new DiagramParser(store);
3446
+ const diagramResult = await diagramParser.ingest(projectPath);
3447
+ results.push(diagramResult);
3448
+ }
3435
3449
  await store.save(graphDir);
3436
3450
  const combined = {
3437
3451
  nodesAdded: results.reduce((s, r) => s + r.nodesAdded, 0),
@@ -3493,7 +3507,7 @@ async function handleDetectAnomalies(input) {
3493
3507
  const projectPath = sanitizePath(input.path);
3494
3508
  const store = await loadGraphStore(projectPath);
3495
3509
  if (!store) return graphNotFoundError();
3496
- const { GraphAnomalyAdapter } = await import("./dist-GRW3X2ZQ.js");
3510
+ const { GraphAnomalyAdapter } = await import("./dist-PGQ32ZI7.js");
3497
3511
  const adapter = new GraphAnomalyAdapter(store);
3498
3512
  const report = adapter.detect({
3499
3513
  ...input.threshold !== void 0 && { threshold: input.threshold },
@@ -3542,7 +3556,7 @@ async function handleAskGraph(input) {
3542
3556
  const projectPath = sanitizePath(input.path);
3543
3557
  const store = await loadGraphStore(projectPath);
3544
3558
  if (!store) return graphNotFoundError();
3545
- const { askGraph } = await import("./dist-GRW3X2ZQ.js");
3559
+ const { askGraph } = await import("./dist-PGQ32ZI7.js");
3546
3560
  const result = await askGraph(store, input.question);
3547
3561
  return {
3548
3562
  content: [{ type: "text", text: JSON.stringify(result) }]
@@ -3606,7 +3620,7 @@ async function handleComputeBlastRadius(input) {
3606
3620
  const projectPath = sanitizePath(input.path);
3607
3621
  const store = await loadGraphStore(projectPath);
3608
3622
  if (!store) return graphNotFoundError();
3609
- const { CascadeSimulator } = await import("./dist-GRW3X2ZQ.js");
3623
+ const { CascadeSimulator } = await import("./dist-PGQ32ZI7.js");
3610
3624
  let targetNodeId = input.nodeId;
3611
3625
  if (!targetNodeId && input.file) {
3612
3626
  const fileNodes = store.findNodes({ type: "file" });
@@ -3807,7 +3821,7 @@ var generateAgentDefinitionsDefinition = {
3807
3821
  }
3808
3822
  };
3809
3823
  async function handleGenerateAgentDefinitions(input) {
3810
- const { generateAgentDefinitions } = await import("./generate-agent-definitions-MFDW6LZT.js");
3824
+ const { generateAgentDefinitions } = await import("./generate-agent-definitions-I4B7CVOB.js");
3811
3825
  const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
3812
3826
  const results = generateAgentDefinitions({
3813
3827
  platforms: [...platforms],
@@ -4135,7 +4149,7 @@ function shouldTriggerExternalSync(input, response) {
4135
4149
  }
4136
4150
  async function handleManageRoadmap(input) {
4137
4151
  try {
4138
- const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-T3DGV5UN.js");
4152
+ const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-TG63OKA5.js");
4139
4153
  const { Ok: Ok2 } = await import("./dist-3EWNRFFQ.js");
4140
4154
  const projectPath = sanitizePath(input.path);
4141
4155
  const deps = {
@@ -4298,8 +4312,12 @@ ${rows.join("\n")}`;
4298
4312
  prompt += `
4299
4313
 
4300
4314
  **Recommendation:** ${recLabel} (confidence: ${recommendation.confidence})`;
4301
- prompt += `
4302
- > ${recommendation.reason}`;
4315
+ const cleanReason = recommendation.reason.trim();
4316
+ const cleanText = text.trim();
4317
+ if (cleanReason && cleanReason !== cleanText && !cleanReason.startsWith(cleanText)) {
4318
+ prompt += `
4319
+ > ${cleanReason}`;
4320
+ }
4303
4321
  }
4304
4322
  }
4305
4323
  return prompt;
@@ -4570,7 +4588,7 @@ async function handleTransition(validInput, projectPath, id) {
4570
4588
  const transition = transitionResult.data;
4571
4589
  const prompt = renderTransition(transition);
4572
4590
  try {
4573
- const { saveHandoff } = await import("./dist-T3DGV5UN.js");
4591
+ const { saveHandoff } = await import("./dist-TG63OKA5.js");
4574
4592
  await saveHandoff(
4575
4593
  projectPath,
4576
4594
  {
@@ -4651,7 +4669,7 @@ async function handleEmitInteraction(input) {
4651
4669
  }
4652
4670
  async function recordInteraction(projectPath, id, type, decision, stream) {
4653
4671
  try {
4654
- const { loadState, saveState } = await import("./dist-T3DGV5UN.js");
4672
+ const { loadState, saveState } = await import("./dist-TG63OKA5.js");
4655
4673
  const stateResult = await loadState(projectPath, stream);
4656
4674
  if (stateResult.ok) {
4657
4675
  const state = stateResult.value;
@@ -4812,10 +4830,10 @@ async function handleGatherContext(input) {
4812
4830
  input.include ?? ["state", "learnings", "handoff", "graph", "validation"]
4813
4831
  );
4814
4832
  const errors = [];
4815
- const statePromise = includeSet.has("state") ? import("./dist-T3DGV5UN.js").then(
4833
+ const statePromise = includeSet.has("state") ? import("./dist-TG63OKA5.js").then(
4816
4834
  (core) => core.loadState(projectPath, void 0, input.session)
4817
4835
  ) : Promise.resolve(null);
4818
- const learningsPromise = includeSet.has("learnings") ? import("./dist-T3DGV5UN.js").then(
4836
+ const learningsPromise = includeSet.has("learnings") ? import("./dist-TG63OKA5.js").then(
4819
4837
  (core) => core.loadBudgetedLearnings(projectPath, {
4820
4838
  intent: input.intent,
4821
4839
  tokenBudget: input.learningsBudget ?? 1e3,
@@ -4824,14 +4842,14 @@ async function handleGatherContext(input) {
4824
4842
  ...input.depth !== void 0 && { depth: input.depth }
4825
4843
  })
4826
4844
  ) : Promise.resolve(null);
4827
- const handoffPromise = includeSet.has("handoff") ? import("./dist-T3DGV5UN.js").then(
4845
+ const handoffPromise = includeSet.has("handoff") ? import("./dist-TG63OKA5.js").then(
4828
4846
  (core) => core.loadHandoff(projectPath, void 0, input.session)
4829
4847
  ) : Promise.resolve(null);
4830
4848
  const graphPromise = includeSet.has("graph") ? (async () => {
4831
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-QMKXT454.js");
4849
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-TIVI6NQ7.js");
4832
4850
  const store = await loadGraphStore2(projectPath);
4833
4851
  if (!store) return null;
4834
- const { FusionLayer, ContextQL } = await import("./dist-GRW3X2ZQ.js");
4852
+ const { FusionLayer, ContextQL } = await import("./dist-PGQ32ZI7.js");
4835
4853
  const fusion = new FusionLayer(store);
4836
4854
  const cql = new ContextQL(store);
4837
4855
  const tokenBudget = input.tokenBudget ?? 4e3;
@@ -4868,11 +4886,11 @@ async function handleGatherContext(input) {
4868
4886
  context: contextBlocks
4869
4887
  };
4870
4888
  })() : Promise.resolve(null);
4871
- const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-T3DGV5UN.js").then(
4889
+ const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-TG63OKA5.js").then(
4872
4890
  (core) => core.readSessionSections(projectPath, input.session)
4873
4891
  ) : Promise.resolve(null);
4874
4892
  const shouldIncludeEvents = input.includeEvents !== void 0 ? input.includeEvents : includeSet.has("events") || !!input.session && !input.include;
4875
- const eventsPromise = shouldIncludeEvents ? import("./dist-T3DGV5UN.js").then(async (core) => {
4893
+ const eventsPromise = shouldIncludeEvents ? import("./dist-TG63OKA5.js").then(async (core) => {
4876
4894
  const result = await core.loadEvents(projectPath, {
4877
4895
  session: input.session
4878
4896
  });
@@ -4880,7 +4898,7 @@ async function handleGatherContext(input) {
4880
4898
  return core.formatEventTimeline(result.value);
4881
4899
  }) : Promise.resolve(null);
4882
4900
  const validationPromise = includeSet.has("validation") ? (async () => {
4883
- const { handleValidateProject: handleValidateProject2 } = await import("./validate-35CD7VWN.js");
4901
+ const { handleValidateProject: handleValidateProject2 } = await import("./validate-HXM6DXRZ.js");
4884
4902
  const result = await handleValidateProject2({ path: projectPath });
4885
4903
  const first = result.content[0];
4886
4904
  return first ? JSON.parse(first.text) : null;
@@ -4983,7 +5001,7 @@ async function handleGatherContext(input) {
4983
5001
  };
4984
5002
  if (input.session) {
4985
5003
  try {
4986
- const core = await import("./dist-T3DGV5UN.js");
5004
+ const core = await import("./dist-TG63OKA5.js");
4987
5005
  core.updateSessionIndex(
4988
5006
  projectPath,
4989
5007
  input.session,
@@ -5135,7 +5153,7 @@ async function handleReviewChanges(input) {
5135
5153
  }
5136
5154
  }
5137
5155
  async function runQuickReview(projectPath, diff, diffLines, downgraded, offset, limit) {
5138
- const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-M5KCJKL2.js");
5156
+ const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-HS7ZYXOU.js");
5139
5157
  const result = await handleAnalyzeDiff2({ diff, path: projectPath });
5140
5158
  const firstContent = result.content[0];
5141
5159
  if (!firstContent) throw new Error("Empty analyze_diff response");
@@ -5170,7 +5188,7 @@ function extractFileCount(diffParsed) {
5170
5188
  return files?.length ?? 0;
5171
5189
  }
5172
5190
  async function runStandardReview(projectPath, diff, diffLines, downgraded, offset, limit) {
5173
- const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-M5KCJKL2.js");
5191
+ const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-HS7ZYXOU.js");
5174
5192
  const [diffResult, reviewResult] = await Promise.all([
5175
5193
  handleAnalyzeDiff2({ diff, path: projectPath }),
5176
5194
  handleCreateSelfReview2({ path: projectPath, diff })
@@ -5205,7 +5223,7 @@ async function runStandardReview(projectPath, diff, diffLines, downgraded, offse
5205
5223
  };
5206
5224
  }
5207
5225
  async function runDeepReview(projectPath, diff, diffLines, _downgraded, offset, limit) {
5208
- const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-DB5RD4SN.js");
5226
+ const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-QOZGWCTY.js");
5209
5227
  const result = await handleRunCodeReview2({
5210
5228
  path: projectPath,
5211
5229
  diff,
@@ -5284,7 +5302,7 @@ async function handleCheckTaskIndependence(input) {
5284
5302
  try {
5285
5303
  const projectPath = sanitizePath(input.path);
5286
5304
  const store = await loadGraphStore(projectPath);
5287
- const { TaskIndependenceAnalyzer } = await import("./dist-GRW3X2ZQ.js");
5305
+ const { TaskIndependenceAnalyzer } = await import("./dist-PGQ32ZI7.js");
5288
5306
  const analyzer = new TaskIndependenceAnalyzer(store ?? void 0);
5289
5307
  const result = analyzer.analyze({
5290
5308
  tasks: input.tasks,
@@ -5372,7 +5390,7 @@ async function handlePredictConflicts(input) {
5372
5390
  try {
5373
5391
  const projectPath = sanitizePath(input.path);
5374
5392
  const store = await loadGraphStore(projectPath);
5375
- const { ConflictPredictor } = await import("./dist-GRW3X2ZQ.js");
5393
+ const { ConflictPredictor } = await import("./dist-PGQ32ZI7.js");
5376
5394
  const predictor = new ConflictPredictor(store ?? void 0);
5377
5395
  const result = predictor.predict({
5378
5396
  tasks: input.tasks,
@@ -5478,7 +5496,7 @@ async function handleDetectStaleConstraints(input) {
5478
5496
  isError: true
5479
5497
  };
5480
5498
  }
5481
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-QMKXT454.js");
5499
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-TIVI6NQ7.js");
5482
5500
  const store = await loadGraphStore2(projectPath);
5483
5501
  if (!store) {
5484
5502
  return {
@@ -5499,7 +5517,7 @@ async function handleDetectStaleConstraints(input) {
5499
5517
  ]
5500
5518
  };
5501
5519
  }
5502
- const { detectStaleConstraints } = await import("./dist-T3DGV5UN.js");
5520
+ const { detectStaleConstraints } = await import("./dist-TG63OKA5.js");
5503
5521
  const result = detectStaleConstraints(
5504
5522
  store,
5505
5523
  windowDays,
@@ -5619,10 +5637,10 @@ function countCriticalFindings(securityData) {
5619
5637
  return findings.filter((f) => f.severity === "error").length;
5620
5638
  }
5621
5639
  async function runHealthChecks(projectPath) {
5622
- const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-64C6LIKN.js");
5623
- const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-VCLB7A23.js");
5624
- const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-PJGTOORX.js");
5625
- const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-3AYN6FVU.js");
5640
+ const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-ZW7EKNIT.js");
5641
+ const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-PMVMO6SF.js");
5642
+ const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-RXESIYKC.js");
5643
+ const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-2K7UUK6T.js");
5626
5644
  const [assessResult, depsResult, entropyResult, securityResult] = await Promise.all([
5627
5645
  handleAssessProject2({
5628
5646
  path: projectPath,
@@ -5677,10 +5695,10 @@ function avg(values) {
5677
5695
  }
5678
5696
  async function runGraphMetrics(projectPath) {
5679
5697
  try {
5680
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-QMKXT454.js");
5698
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-TIVI6NQ7.js");
5681
5699
  const store = await loadGraphStore2(projectPath);
5682
5700
  if (!store) return ZERO_METRICS;
5683
- const { GraphCouplingAdapter, GraphComplexityAdapter, GraphAnomalyAdapter } = await import("./dist-GRW3X2ZQ.js");
5701
+ const { GraphCouplingAdapter, GraphComplexityAdapter, GraphAnomalyAdapter } = await import("./dist-PGQ32ZI7.js");
5684
5702
  const couplingAdapter = new GraphCouplingAdapter(store);
5685
5703
  const couplingData = couplingAdapter.computeCouplingData();
5686
5704
  const files = couplingData.files;
@@ -6419,7 +6437,7 @@ async function handleGetDecayTrends(input) {
6419
6437
  };
6420
6438
  }
6421
6439
  try {
6422
- const core = await import("./dist-T3DGV5UN.js");
6440
+ const core = await import("./dist-TG63OKA5.js");
6423
6441
  const { TimelineManager } = core;
6424
6442
  const manager = new TimelineManager(projectPath);
6425
6443
  const timeline = manager.load();
@@ -6554,7 +6572,7 @@ async function handleCodeOutline(input) {
6554
6572
  };
6555
6573
  }
6556
6574
  try {
6557
- const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-T3DGV5UN.js");
6575
+ const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-TG63OKA5.js");
6558
6576
  const { stat } = await import("fs/promises");
6559
6577
  const stats = await stat(targetPath).catch(() => null);
6560
6578
  if (stats?.isFile()) {
@@ -6573,7 +6591,7 @@ async function handleCodeOutline(input) {
6573
6591
  })
6574
6592
  );
6575
6593
  fileStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
6576
- const { paginate: paginate2 } = await import("./dist-T3DGV5UN.js");
6594
+ const { paginate: paginate2 } = await import("./dist-TG63OKA5.js");
6577
6595
  const paged = paginate2(fileStats, input.offset ?? 0, input.limit ?? 30);
6578
6596
  const results = [];
6579
6597
  for (const entry of paged.items) {
@@ -6646,7 +6664,7 @@ async function handleCodeSearch(input) {
6646
6664
  };
6647
6665
  }
6648
6666
  try {
6649
- const { searchSymbols } = await import("./dist-T3DGV5UN.js");
6667
+ const { searchSymbols } = await import("./dist-TG63OKA5.js");
6650
6668
  const result = await searchSymbols(input.query, directory, input.glob);
6651
6669
  const lines = [`Search: "${result.query}" \u2014 ${result.matches.length} matches`];
6652
6670
  for (const match of result.matches) {
@@ -6715,7 +6733,7 @@ async function handleCodeUnfold(input) {
6715
6733
  }
6716
6734
  try {
6717
6735
  if (input.symbol) {
6718
- const { unfoldSymbol } = await import("./dist-T3DGV5UN.js");
6736
+ const { unfoldSymbol } = await import("./dist-TG63OKA5.js");
6719
6737
  const result = await unfoldSymbol(filePath, input.symbol);
6720
6738
  const header = result.warning ? `${result.file}:${result.startLine}-${result.endLine} ${result.warning}
6721
6739
  ` : `${result.file}:${result.startLine}-${result.endLine}
@@ -6723,7 +6741,7 @@ async function handleCodeUnfold(input) {
6723
6741
  return { content: [{ type: "text", text: header + result.content }] };
6724
6742
  }
6725
6743
  if (input.startLine != null && input.endLine != null) {
6726
- const { unfoldRange } = await import("./dist-T3DGV5UN.js");
6744
+ const { unfoldRange } = await import("./dist-TG63OKA5.js");
6727
6745
  const result = await unfoldRange(filePath, input.startLine, input.endLine);
6728
6746
  const header = `${result.file}:${result.startLine}-${result.endLine}
6729
6747
  `;
@@ -6785,7 +6803,7 @@ async function handleCheckTraceability(input) {
6785
6803
  isError: true
6786
6804
  };
6787
6805
  }
6788
- const { queryTraceability } = await import("./dist-GRW3X2ZQ.js");
6806
+ const { queryTraceability } = await import("./dist-PGQ32ZI7.js");
6789
6807
  const options = {};
6790
6808
  if (input.spec) options.specPath = input.spec;
6791
6809
  if (input.feature) options.featureName = input.feature;
@@ -6908,7 +6926,7 @@ async function handlePredictFailures(input) {
6908
6926
  };
6909
6927
  }
6910
6928
  try {
6911
- const core = await import("./dist-T3DGV5UN.js");
6929
+ const core = await import("./dist-TG63OKA5.js");
6912
6930
  const { TimelineManager, PredictionEngine, SpecImpactEstimator } = core;
6913
6931
  const manager = new TimelineManager(projectPath);
6914
6932
  const includeRoadmap = input.includeRoadmap !== false;
@@ -7098,7 +7116,7 @@ function handleContentMode(content, pipeline, budget, source) {
7098
7116
  };
7099
7117
  }
7100
7118
  async function handleIntentMode(projectPath, intent, pipeline, budget, filterContent) {
7101
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-QMKXT454.js");
7119
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-TIVI6NQ7.js");
7102
7120
  const store = await loadGraphStore2(projectPath);
7103
7121
  if (!store) {
7104
7122
  return {
@@ -7111,7 +7129,7 @@ async function handleIntentMode(projectPath, intent, pipeline, budget, filterCon
7111
7129
  isError: true
7112
7130
  };
7113
7131
  }
7114
- const { PackedSummaryCache, FusionLayer, ContextQL } = await import("./dist-GRW3X2ZQ.js");
7132
+ const { PackedSummaryCache, FusionLayer, ContextQL } = await import("./dist-PGQ32ZI7.js");
7115
7133
  const cache = new PackedSummaryCache(store);
7116
7134
  const cachedEnvelope = cache.get(intent);
7117
7135
  if (cachedEnvelope) {
@@ -7324,7 +7342,7 @@ async function handleDetectConstraintEmergence(input) {
7324
7342
  }
7325
7343
  const nodePath = await import("path");
7326
7344
  const historyPath = nodePath.resolve(projectPath, ".harness/arch/violation-history.json");
7327
- const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-T3DGV5UN.js");
7345
+ const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-TG63OKA5.js");
7328
7346
  const manager = new ViolationHistoryManager(historyPath);
7329
7347
  const history = manager.load();
7330
7348
  const options = { windowWeeks, minOccurrences };
@@ -7574,7 +7592,7 @@ async function appendUpdateNotification(result, resolvedRoot) {
7574
7592
  shouldRunCheck,
7575
7593
  readCheckState,
7576
7594
  spawnBackgroundCheck
7577
- } = await import("./dist-T3DGV5UN.js");
7595
+ } = await import("./dist-TG63OKA5.js");
7578
7596
  const { CLI_VERSION } = await import("./version-CUI434OP.js");
7579
7597
  const configInterval = readConfigInterval(resolvedRoot);
7580
7598
  const DEFAULT_INTERVAL = 864e5;