@harness-engineering/cli 1.27.1 → 1.28.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 (108) hide show
  1. package/dist/agents/skills/claude-code/harness-architecture-advisor/SKILL.md +17 -5
  2. package/dist/agents/skills/claude-code/harness-architecture-advisor/skill.yaml +1 -1
  3. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +4 -4
  4. package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +1 -1
  5. package/dist/agents/skills/claude-code/harness-design-system/SKILL.md +6 -1
  6. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +4 -4
  7. package/dist/agents/skills/claude-code/harness-i18n-process/SKILL.md +2 -2
  8. package/dist/agents/skills/claude-code/harness-integration/SKILL.md +1 -1
  9. package/dist/agents/skills/claude-code/harness-knowledge-pipeline/SKILL.md +1 -0
  10. package/dist/agents/skills/claude-code/harness-onboarding/SKILL.md +1 -1
  11. package/dist/agents/skills/claude-code/harness-planning/SKILL.md +3 -3
  12. package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +4 -3
  13. package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +150 -10
  14. package/dist/agents/skills/claude-code/initialize-harness-project/skill.yaml +2 -1
  15. package/dist/agents/skills/codex/harness-architecture-advisor/SKILL.md +17 -5
  16. package/dist/agents/skills/codex/harness-architecture-advisor/skill.yaml +1 -1
  17. package/dist/agents/skills/codex/harness-autopilot/SKILL.md +4 -4
  18. package/dist/agents/skills/codex/harness-code-review/SKILL.md +1 -1
  19. package/dist/agents/skills/codex/harness-design-system/SKILL.md +6 -1
  20. package/dist/agents/skills/codex/harness-execution/SKILL.md +4 -4
  21. package/dist/agents/skills/codex/harness-i18n-process/SKILL.md +2 -2
  22. package/dist/agents/skills/codex/harness-integration/SKILL.md +1 -1
  23. package/dist/agents/skills/codex/harness-knowledge-pipeline/SKILL.md +1 -0
  24. package/dist/agents/skills/codex/harness-onboarding/SKILL.md +1 -1
  25. package/dist/agents/skills/codex/harness-planning/SKILL.md +3 -3
  26. package/dist/agents/skills/codex/harness-roadmap/SKILL.md +4 -3
  27. package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +150 -10
  28. package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +2 -1
  29. package/dist/agents/skills/cursor/harness-architecture-advisor/SKILL.md +17 -5
  30. package/dist/agents/skills/cursor/harness-architecture-advisor/skill.yaml +1 -1
  31. package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +4 -4
  32. package/dist/agents/skills/cursor/harness-code-review/SKILL.md +1 -1
  33. package/dist/agents/skills/cursor/harness-design-system/SKILL.md +6 -1
  34. package/dist/agents/skills/cursor/harness-execution/SKILL.md +4 -4
  35. package/dist/agents/skills/cursor/harness-i18n-process/SKILL.md +2 -2
  36. package/dist/agents/skills/cursor/harness-integration/SKILL.md +1 -1
  37. package/dist/agents/skills/cursor/harness-knowledge-pipeline/SKILL.md +1 -0
  38. package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +1 -1
  39. package/dist/agents/skills/cursor/harness-planning/SKILL.md +3 -3
  40. package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +4 -3
  41. package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +150 -10
  42. package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +2 -1
  43. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +17 -5
  44. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/skill.yaml +1 -1
  45. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +4 -4
  46. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +1 -1
  47. package/dist/agents/skills/gemini-cli/harness-design-system/SKILL.md +6 -1
  48. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +4 -4
  49. package/dist/agents/skills/gemini-cli/harness-i18n-process/SKILL.md +2 -2
  50. package/dist/agents/skills/gemini-cli/harness-integration/SKILL.md +1 -1
  51. package/dist/agents/skills/gemini-cli/harness-knowledge-pipeline/SKILL.md +1 -0
  52. package/dist/agents/skills/gemini-cli/harness-onboarding/SKILL.md +1 -1
  53. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +3 -3
  54. package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +4 -3
  55. package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +150 -10
  56. package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +2 -1
  57. package/dist/{agents-md-2RN666DE.js → agents-md-76IEMV6O.js} +3 -3
  58. package/dist/{architecture-ZR33YKJB.js → architecture-5GVJRRUD.js} +4 -4
  59. package/dist/{assess-project-LLWWEQEV.js → assess-project-WDUFL7SO.js} +1 -1
  60. package/dist/bin/harness-mcp.js +15 -15
  61. package/dist/bin/harness.js +25 -25
  62. package/dist/{check-phase-gate-ZVG56NT2.js → check-phase-gate-QR3ONJYP.js} +4 -4
  63. package/dist/{chunk-FUS4OOGC.js → chunk-3WLXR23L.js} +1 -1
  64. package/dist/{chunk-IBTHD2UA.js → chunk-6JBJ5FSW.js} +2 -1
  65. package/dist/{chunk-C7RPQWBG.js → chunk-77OMOFZL.js} +1 -1
  66. package/dist/{chunk-YZH4I4JO.js → chunk-AJG2LCMA.js} +1 -1
  67. package/dist/{chunk-3AJW7VQ3.js → chunk-CS7K6ZQ3.js} +2 -2
  68. package/dist/{chunk-SDDQPMZK.js → chunk-D25P6763.js} +1 -1
  69. package/dist/{chunk-XKU37HGH.js → chunk-DHGL3SF2.js} +1 -1
  70. package/dist/{chunk-CJYNZMOP.js → chunk-E7QD4YHA.js} +8 -8
  71. package/dist/{chunk-BO4AJZRE.js → chunk-H43UQY6B.js} +1 -1
  72. package/dist/{chunk-SDPHFDQS.js → chunk-ILVO6LZY.js} +1 -1
  73. package/dist/{chunk-BZZNYHRY.js → chunk-K5ZOBBQB.js} +9 -9
  74. package/dist/{chunk-A4ETL34H.js → chunk-KLE6FXWM.js} +23 -1
  75. package/dist/{chunk-F3Y64VNF.js → chunk-L4RURCSF.js} +6 -6
  76. package/dist/{chunk-EGRQHLDM.js → chunk-LINAFNIK.js} +5 -5
  77. package/dist/{chunk-EHTUWULH.js → chunk-OPOSSZJS.js} +97 -93
  78. package/dist/{chunk-L3Y7L4EG.js → chunk-OQS7KURX.js} +1 -1
  79. package/dist/{chunk-T7UZOJF4.js → chunk-QZ46CI6E.js} +9 -9
  80. package/dist/{chunk-MGPVA2EM.js → chunk-TFNQ72RF.js} +5 -5
  81. package/dist/{chunk-3XMOWLK3.js → chunk-USG7DV5N.js} +2 -2
  82. package/dist/{chunk-776JFSPK.js → chunk-VITLE3PS.js} +1 -1
  83. package/dist/{chunk-2FOLD76X.js → chunk-WPSM7WT6.js} +2 -2
  84. package/dist/{chunk-GAIOIINV.js → chunk-X7XQ3ELM.js} +108 -36
  85. package/dist/{chunk-EICASBYP.js → chunk-YZZVOT7I.js} +1 -1
  86. package/dist/{chunk-VCC47EXU.js → chunk-Z63IDQ7Y.js} +860 -412
  87. package/dist/{chunk-Q5DKIL46.js → chunk-Z7ZF2XDL.js} +3 -3
  88. package/dist/{ci-workflow-JFOL4YWW.js → ci-workflow-GYQXE5X4.js} +3 -3
  89. package/dist/{dist-CPKL5Y2R.js → dist-46VOJIG4.js} +2 -2
  90. package/dist/{dist-BZS2XRLG.js → dist-BP6E6QGG.js} +7 -1
  91. package/dist/{docs-FUTRJQHA.js → docs-CVQMSMQC.js} +4 -4
  92. package/dist/{engine-FB3HCNVT.js → engine-23PJMRHA.js} +3 -3
  93. package/dist/{entropy-FIEE4YDA.js → entropy-K2YTZFCP.js} +3 -3
  94. package/dist/{feedback-7EC4T6XG.js → feedback-6HP42GTK.js} +1 -1
  95. package/dist/{generate-agent-definitions-FOSFADNR.js → generate-agent-definitions-6RJKL6VW.js} +4 -4
  96. package/dist/{graph-loader-QEI7SYOQ.js → graph-loader-BI3OFFFS.js} +1 -1
  97. package/dist/index.d.ts +44 -1
  98. package/dist/index.js +25 -25
  99. package/dist/{loader-HXUOBTYA.js → loader-U2WEC3PZ.js} +3 -3
  100. package/dist/{mcp-NUG4BMKJ.js → mcp-N6XVWPXJ.js} +15 -15
  101. package/dist/{performance-TYXBCTR7.js → performance-T3XAESWR.js} +4 -4
  102. package/dist/{review-pipeline-B4WPU6BQ.js → review-pipeline-HTC5HA5X.js} +3 -3
  103. package/dist/{runtime-HQQNOARD.js → runtime-UFXMNN3Q.js} +3 -3
  104. package/dist/{scan-M4EGDAQ2.js → scan-XRGMTO6K.js} +1 -1
  105. package/dist/{security-25VFLIAO.js → security-ROK5IFDA.js} +1 -1
  106. package/dist/{validate-EAVGKZQB.js → validate-IJHHQHT5.js} +4 -4
  107. package/dist/{validate-cross-check-SPL3H4O5.js → validate-cross-check-LUQYIA46.js} +3 -3
  108. package/package.json +6 -6
@@ -2,11 +2,11 @@ import {
2
2
  handleRunCodeReview,
3
3
  runCodeReviewDefinition,
4
4
  sortFindingsBySeverity
5
- } from "./chunk-2FOLD76X.js";
5
+ } from "./chunk-WPSM7WT6.js";
6
6
  import {
7
7
  assessProjectDefinition,
8
8
  handleAssessProject
9
- } from "./chunk-F3Y64VNF.js";
9
+ } from "./chunk-L4RURCSF.js";
10
10
  import {
11
11
  getBusinessKnowledgeResource
12
12
  } from "./chunk-IOW3MW2K.js";
@@ -17,35 +17,35 @@ import {
17
17
  handleCreateSelfReview,
18
18
  handleRequestPeerReview,
19
19
  requestPeerReviewDefinition
20
- } from "./chunk-BZZNYHRY.js";
20
+ } from "./chunk-K5ZOBBQB.js";
21
21
  import {
22
22
  getSecurityTrendsDefinition,
23
23
  handleGetSecurityTrends,
24
24
  handleRunSecurityScan,
25
25
  runSecurityScanDefinition
26
- } from "./chunk-3AJW7VQ3.js";
26
+ } from "./chunk-CS7K6ZQ3.js";
27
27
  import {
28
28
  loadGraphStore
29
- } from "./chunk-776JFSPK.js";
29
+ } from "./chunk-VITLE3PS.js";
30
30
  import {
31
31
  handleValidateProject,
32
32
  validateToolDefinition
33
- } from "./chunk-Q5DKIL46.js";
33
+ } from "./chunk-Z7ZF2XDL.js";
34
34
  import {
35
35
  checkDependenciesDefinition,
36
36
  handleCheckDependencies
37
- } from "./chunk-MGPVA2EM.js";
37
+ } from "./chunk-TFNQ72RF.js";
38
38
  import {
39
39
  resolveProjectConfig
40
- } from "./chunk-YZH4I4JO.js";
40
+ } from "./chunk-AJG2LCMA.js";
41
41
  import {
42
42
  checkDocsDefinition,
43
43
  handleCheckDocs
44
- } from "./chunk-T7UZOJF4.js";
44
+ } from "./chunk-QZ46CI6E.js";
45
45
  import {
46
46
  detectEntropyDefinition,
47
47
  handleDetectEntropy
48
- } from "./chunk-EGRQHLDM.js";
48
+ } from "./chunk-LINAFNIK.js";
49
49
  import {
50
50
  checkPerformanceDefinition,
51
51
  getCriticalPathsDefinition,
@@ -55,7 +55,7 @@ import {
55
55
  handleGetPerfBaselines,
56
56
  handleUpdatePerfBaselines,
57
57
  updatePerfBaselinesDefinition
58
- } from "./chunk-CJYNZMOP.js";
58
+ } from "./chunk-E7QD4YHA.js";
59
59
  import {
60
60
  resultToMcpResponse
61
61
  } from "./chunk-EPUKTTJZ.js";
@@ -67,7 +67,7 @@ import {
67
67
  } from "./chunk-27AJKSQY.js";
68
68
  import {
69
69
  resolveConfig
70
- } from "./chunk-A4ETL34H.js";
70
+ } from "./chunk-KLE6FXWM.js";
71
71
  import {
72
72
  GENERATED_HEADER_CLAUDE,
73
73
  GENERATED_HEADER_CODEX,
@@ -103,7 +103,7 @@ import {
103
103
  scanForInjection,
104
104
  serializeEnvelope,
105
105
  writeTaint
106
- } from "./chunk-IBTHD2UA.js";
106
+ } from "./chunk-6JBJ5FSW.js";
107
107
  import {
108
108
  Err,
109
109
  Ok
@@ -706,7 +706,7 @@ ${skippedMsg}`
706
706
  async function handleInitProject(input) {
707
707
  const i = input;
708
708
  try {
709
- const { TemplateEngine } = await import("./engine-FB3HCNVT.js");
709
+ const { TemplateEngine } = await import("./engine-23PJMRHA.js");
710
710
  const engine = new TemplateEngine(resolveTemplatesDir());
711
711
  const safePath = sanitizePath(i.path);
712
712
  const detected = tryDetectFramework(engine, safePath, i);
@@ -728,7 +728,7 @@ var listPersonasDefinition = {
728
728
  inputSchema: { type: "object", properties: {} }
729
729
  };
730
730
  async function handleListPersonas() {
731
- const { listPersonas } = await import("./loader-HXUOBTYA.js");
731
+ const { listPersonas } = await import("./loader-U2WEC3PZ.js");
732
732
  const result = listPersonas(resolvePersonasDir());
733
733
  return resultToMcpResponse(result);
734
734
  }
@@ -752,10 +752,10 @@ async function handleGeneratePersonaArtifacts(input) {
752
752
  if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
753
753
  return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
754
754
  }
755
- const { loadPersona } = await import("./loader-HXUOBTYA.js");
756
- const { generateRuntime } = await import("./runtime-HQQNOARD.js");
757
- const { generateAgentsMd } = await import("./agents-md-2RN666DE.js");
758
- const { generateCIWorkflow } = await import("./ci-workflow-JFOL4YWW.js");
755
+ const { loadPersona } = await import("./loader-U2WEC3PZ.js");
756
+ const { generateRuntime } = await import("./runtime-UFXMNN3Q.js");
757
+ const { generateAgentsMd } = await import("./agents-md-76IEMV6O.js");
758
+ const { generateCIWorkflow } = await import("./ci-workflow-GYQXE5X4.js");
759
759
  const personasDir = resolvePersonasDir();
760
760
  const filePath = path3.join(personasDir, `${input.name}.yaml`);
761
761
  if (!filePath.startsWith(personasDir)) {
@@ -810,7 +810,7 @@ async function handleRunPersona(input) {
810
810
  if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
811
811
  return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
812
812
  }
813
- const { loadPersona } = await import("./loader-HXUOBTYA.js");
813
+ const { loadPersona } = await import("./loader-U2WEC3PZ.js");
814
814
  const { runPersona } = await import("./runner-AAEF2TXY.js");
815
815
  const { executeSkill } = await import("./skill-executor-MOCUIAYS.js");
816
816
  const personasDir = resolvePersonasDir();
@@ -1255,7 +1255,7 @@ function loadOrGenerateProfile(projectRoot) {
1255
1255
  // src/mcp/tools/event-emitter.ts
1256
1256
  async function emitSkillEvent(projectPath, event) {
1257
1257
  try {
1258
- const { emitEvent } = await import("./dist-CPKL5Y2R.js");
1258
+ const { emitEvent } = await import("./dist-46VOJIG4.js");
1259
1259
  await emitEvent(projectPath, event);
1260
1260
  } catch {
1261
1261
  }
@@ -1527,7 +1527,7 @@ async function autoSyncRoadmap(projectPath) {
1527
1527
  try {
1528
1528
  const roadmapFile = path10.join(projectPath, "docs", "roadmap.md");
1529
1529
  if (!fs9.existsSync(roadmapFile)) return;
1530
- const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-CPKL5Y2R.js");
1530
+ const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-46VOJIG4.js");
1531
1531
  const raw = fs9.readFileSync(roadmapFile, "utf-8");
1532
1532
  const parseResult = parseRoadmap(raw);
1533
1533
  if (!parseResult.ok) return;
@@ -1557,7 +1557,7 @@ async function triggerExternalSync(projectPath, roadmapFile) {
1557
1557
  console.warn("[roadmap-sync] GITHUB_TOKEN not found \u2014 external sync skipped");
1558
1558
  return;
1559
1559
  }
1560
- const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-CPKL5Y2R.js");
1560
+ const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-46VOJIG4.js");
1561
1561
  const adapter = new GitHubIssuesSyncAdapter({
1562
1562
  token,
1563
1563
  config: trackerConfig
@@ -1654,12 +1654,12 @@ var manageStateDefinition = {
1654
1654
  }
1655
1655
  };
1656
1656
  async function handleShow(projectPath, input) {
1657
- const { loadState } = await import("./dist-CPKL5Y2R.js");
1657
+ const { loadState } = await import("./dist-46VOJIG4.js");
1658
1658
  return resultToMcpResponse(await loadState(projectPath, input.stream, input.session));
1659
1659
  }
1660
1660
  async function handleLearn(projectPath, input) {
1661
1661
  if (!input.learning) return mcpError("Error: learning is required for learn action");
1662
- const { appendLearning } = await import("./dist-CPKL5Y2R.js");
1662
+ const { appendLearning } = await import("./dist-46VOJIG4.js");
1663
1663
  const result = await appendLearning(
1664
1664
  projectPath,
1665
1665
  input.learning,
@@ -1674,7 +1674,7 @@ async function handleLearn(projectPath, input) {
1674
1674
  async function handleFailure(projectPath, input) {
1675
1675
  if (!input.description) return mcpError("Error: description is required for failure action");
1676
1676
  if (!input.failureType) return mcpError("Error: failureType is required for failure action");
1677
- const { appendFailure } = await import("./dist-CPKL5Y2R.js");
1677
+ const { appendFailure } = await import("./dist-46VOJIG4.js");
1678
1678
  const result = await appendFailure(
1679
1679
  projectPath,
1680
1680
  input.description,
@@ -1693,19 +1693,19 @@ async function handleFailure(projectPath, input) {
1693
1693
  return resultToMcpResponse(Ok({ recorded: true }));
1694
1694
  }
1695
1695
  async function handleArchive(projectPath, input) {
1696
- const { archiveFailures } = await import("./dist-CPKL5Y2R.js");
1696
+ const { archiveFailures } = await import("./dist-46VOJIG4.js");
1697
1697
  const result = await archiveFailures(projectPath, input.stream, input.session);
1698
1698
  if (!result.ok) return resultToMcpResponse(result);
1699
1699
  return resultToMcpResponse(Ok({ archived: true }));
1700
1700
  }
1701
1701
  async function handleReset(projectPath, input) {
1702
- const { saveState, DEFAULT_STATE } = await import("./dist-CPKL5Y2R.js");
1702
+ const { saveState, DEFAULT_STATE } = await import("./dist-46VOJIG4.js");
1703
1703
  const result = await saveState(projectPath, { ...DEFAULT_STATE }, input.stream, input.session);
1704
1704
  if (!result.ok) return resultToMcpResponse(result);
1705
1705
  return resultToMcpResponse(Ok({ reset: true }));
1706
1706
  }
1707
1707
  async function handleGate(projectPath, input) {
1708
- const { runMechanicalGate } = await import("./dist-CPKL5Y2R.js");
1708
+ const { runMechanicalGate } = await import("./dist-46VOJIG4.js");
1709
1709
  const result = await runMechanicalGate(projectPath);
1710
1710
  if (result.ok) {
1711
1711
  await emitSkillEvent(projectPath, {
@@ -1725,7 +1725,7 @@ async function handleGate(projectPath, input) {
1725
1725
  }
1726
1726
  async function handleSaveHandoff(projectPath, input) {
1727
1727
  if (!input.handoff) return mcpError("Error: handoff is required for save-handoff action");
1728
- const { saveHandoff } = await import("./dist-CPKL5Y2R.js");
1728
+ const { saveHandoff } = await import("./dist-46VOJIG4.js");
1729
1729
  const result = await saveHandoff(
1730
1730
  projectPath,
1731
1731
  input.handoff,
@@ -1747,7 +1747,7 @@ async function handleSaveHandoff(projectPath, input) {
1747
1747
  return resultToMcpResponse(Ok({ saved: true }));
1748
1748
  }
1749
1749
  async function handleLoadHandoff(projectPath, input) {
1750
- const { loadHandoff } = await import("./dist-CPKL5Y2R.js");
1750
+ const { loadHandoff } = await import("./dist-46VOJIG4.js");
1751
1751
  return resultToMcpResponse(await loadHandoff(projectPath, input.stream, input.session));
1752
1752
  }
1753
1753
  async function handleAppendEntry(projectPath, input) {
@@ -1755,7 +1755,7 @@ async function handleAppendEntry(projectPath, input) {
1755
1755
  if (!input.authorSkill) return mcpError("Error: authorSkill is required for append_entry action");
1756
1756
  if (!input.content) return mcpError("Error: content is required for append_entry action");
1757
1757
  if (input.session) {
1758
- const { appendSessionEntry } = await import("./dist-CPKL5Y2R.js");
1758
+ const { appendSessionEntry } = await import("./dist-46VOJIG4.js");
1759
1759
  const result = await appendSessionEntry(
1760
1760
  projectPath,
1761
1761
  input.session,
@@ -1768,7 +1768,7 @@ async function handleAppendEntry(projectPath, input) {
1768
1768
  if (input.section !== "decisions") {
1769
1769
  return mcpError("Error: session is required for non-decisions sections");
1770
1770
  }
1771
- const { loadState, saveState } = await import("./dist-CPKL5Y2R.js");
1771
+ const { loadState, saveState } = await import("./dist-46VOJIG4.js");
1772
1772
  const lr = await loadState(projectPath, input.stream);
1773
1773
  if (!lr.ok) return resultToMcpResponse(lr);
1774
1774
  lr.value.decisions.push({
@@ -1786,7 +1786,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
1786
1786
  if (!input.entryId) return mcpError("Error: entryId is required for update_entry_status action");
1787
1787
  if (!input.newStatus)
1788
1788
  return mcpError("Error: newStatus is required for update_entry_status action");
1789
- const { updateSessionEntryStatus } = await import("./dist-CPKL5Y2R.js");
1789
+ const { updateSessionEntryStatus } = await import("./dist-46VOJIG4.js");
1790
1790
  const result = await updateSessionEntryStatus(
1791
1791
  projectPath,
1792
1792
  input.session,
@@ -1799,7 +1799,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
1799
1799
  async function handleReadSection(projectPath, input) {
1800
1800
  if (!input.session) return mcpError("Error: session is required for read_section action");
1801
1801
  if (!input.section) return mcpError("Error: section is required for read_section action");
1802
- const { readSessionSection } = await import("./dist-CPKL5Y2R.js");
1802
+ const { readSessionSection } = await import("./dist-46VOJIG4.js");
1803
1803
  const result = await readSessionSection(
1804
1804
  projectPath,
1805
1805
  input.session,
@@ -1809,13 +1809,13 @@ async function handleReadSection(projectPath, input) {
1809
1809
  }
1810
1810
  async function handleReadSections(projectPath, input) {
1811
1811
  if (!input.session) return mcpError("Error: session is required for read_sections action");
1812
- const { readSessionSections } = await import("./dist-CPKL5Y2R.js");
1812
+ const { readSessionSections } = await import("./dist-46VOJIG4.js");
1813
1813
  const result = await readSessionSections(projectPath, input.session);
1814
1814
  return resultToMcpResponse(result);
1815
1815
  }
1816
1816
  async function handleArchiveSession(projectPath, input) {
1817
1817
  if (!input.session) return mcpError("Error: session is required for archive_session action");
1818
- const { archiveSession } = await import("./dist-CPKL5Y2R.js");
1818
+ const { archiveSession } = await import("./dist-46VOJIG4.js");
1819
1819
  const result = await archiveSession(projectPath, input.session);
1820
1820
  if (!result.ok) return resultToMcpResponse(result);
1821
1821
  await autoSyncRoadmap(projectPath);
@@ -1895,7 +1895,7 @@ var listStreamsDefinition = {
1895
1895
  };
1896
1896
  async function handleListStreams(input) {
1897
1897
  try {
1898
- const { listStreams, loadStreamIndex } = await import("./dist-CPKL5Y2R.js");
1898
+ const { listStreams, loadStreamIndex } = await import("./dist-46VOJIG4.js");
1899
1899
  const projectPath = sanitizePath(input.path);
1900
1900
  const indexResult = await loadStreamIndex(projectPath);
1901
1901
  const streamsResult = await listStreams(projectPath);
@@ -1933,7 +1933,7 @@ var checkPhaseGateDefinition = {
1933
1933
  };
1934
1934
  async function handleCheckPhaseGate(input) {
1935
1935
  try {
1936
- const { runCheckPhaseGate } = await import("./check-phase-gate-ZVG56NT2.js");
1936
+ const { runCheckPhaseGate } = await import("./check-phase-gate-QR3ONJYP.js");
1937
1937
  const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
1938
1938
  if (result.ok) {
1939
1939
  return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
@@ -1989,7 +1989,7 @@ async function handleValidateCrossCheck(input) {
1989
1989
  };
1990
1990
  }
1991
1991
  try {
1992
- const { runCrossCheck } = await import("./validate-cross-check-SPL3H4O5.js");
1992
+ const { runCrossCheck } = await import("./validate-cross-check-LUQYIA46.js");
1993
1993
  const specsDir = path11.resolve(projectPath, input.specsDir ?? "docs/specs");
1994
1994
  if (!specsDir.startsWith(projectPath)) {
1995
1995
  return {
@@ -2712,7 +2712,7 @@ async function handleGenerateSlashCommands(input) {
2712
2712
  // src/mcp/resources/state.ts
2713
2713
  async function getStateResource(projectRoot) {
2714
2714
  try {
2715
- const { loadState, migrateToStreams } = await import("./dist-CPKL5Y2R.js");
2715
+ const { loadState, migrateToStreams } = await import("./dist-46VOJIG4.js");
2716
2716
  await migrateToStreams(projectRoot);
2717
2717
  const result = await loadState(projectRoot);
2718
2718
  if (result.ok) {
@@ -2830,7 +2830,7 @@ async function handleQueryGraph(input) {
2830
2830
  const projectPath = sanitizePath(input.path);
2831
2831
  const store = await loadGraphStore(projectPath);
2832
2832
  if (!store) return graphNotFoundError();
2833
- const { ContextQL } = await import("./dist-BZS2XRLG.js");
2833
+ const { ContextQL } = await import("./dist-BP6E6QGG.js");
2834
2834
  const cql = new ContextQL(store);
2835
2835
  const result = cql.execute({
2836
2836
  rootNodeIds: input.rootNodeIds,
@@ -2912,7 +2912,7 @@ async function handleSearchSimilar(input) {
2912
2912
  const projectPath = sanitizePath(input.path);
2913
2913
  const store = await loadGraphStore(projectPath);
2914
2914
  if (!store) return graphNotFoundError();
2915
- const { FusionLayer } = await import("./dist-BZS2XRLG.js");
2915
+ const { FusionLayer } = await import("./dist-BP6E6QGG.js");
2916
2916
  const fusion = new FusionLayer(store);
2917
2917
  const results = fusion.search(input.query, input.topK ?? 10);
2918
2918
  if (input.mode === "summary") {
@@ -2967,7 +2967,7 @@ async function handleFindContextFor(input) {
2967
2967
  const projectPath = sanitizePath(input.path);
2968
2968
  const store = await loadGraphStore(projectPath);
2969
2969
  if (!store) return graphNotFoundError();
2970
- const { FusionLayer, ContextQL } = await import("./dist-BZS2XRLG.js");
2970
+ const { FusionLayer, ContextQL } = await import("./dist-BP6E6QGG.js");
2971
2971
  const fusion = new FusionLayer(store);
2972
2972
  const cql = new ContextQL(store);
2973
2973
  const tokenBudget = input.tokenBudget ?? 4e3;
@@ -3072,7 +3072,7 @@ async function handleGetRelationships(input) {
3072
3072
  const projectPath = sanitizePath(input.path);
3073
3073
  const store = await loadGraphStore(projectPath);
3074
3074
  if (!store) return graphNotFoundError();
3075
- const { ContextQL } = await import("./dist-BZS2XRLG.js");
3075
+ const { ContextQL } = await import("./dist-BP6E6QGG.js");
3076
3076
  const cql = new ContextQL(store);
3077
3077
  const direction = input.direction ?? "both";
3078
3078
  const bidirectional = direction === "both" || direction === "inbound";
@@ -3190,7 +3190,7 @@ async function handleGetImpact(input) {
3190
3190
  const projectPath = sanitizePath(input.path);
3191
3191
  const store = await loadGraphStore(projectPath);
3192
3192
  if (!store) return graphNotFoundError();
3193
- const { ContextQL } = await import("./dist-BZS2XRLG.js");
3193
+ const { ContextQL } = await import("./dist-BP6E6QGG.js");
3194
3194
  let targetNodeId = input.nodeId;
3195
3195
  if (!targetNodeId && input.filePath) {
3196
3196
  const fileNodes = store.findNodes({ type: "file" });
@@ -3322,7 +3322,7 @@ async function handleIngestSource(input) {
3322
3322
  try {
3323
3323
  const projectPath = sanitizePath(input.path);
3324
3324
  const graphDir = path15.join(projectPath, ".harness", "graph");
3325
- const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-BZS2XRLG.js");
3325
+ const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-BP6E6QGG.js");
3326
3326
  const fs17 = await import("fs/promises");
3327
3327
  await fs17.mkdir(graphDir, { recursive: true });
3328
3328
  const store = new GraphStore();
@@ -3346,13 +3346,13 @@ async function handleIngestSource(input) {
3346
3346
  results.push(gitResult);
3347
3347
  }
3348
3348
  if (input.source === "business-signals" || input.source === "all") {
3349
- const { createExtractionRunner } = await import("./dist-BZS2XRLG.js");
3349
+ const { createExtractionRunner } = await import("./dist-BP6E6QGG.js");
3350
3350
  const extractedDir = path15.join(projectPath, ".harness", "knowledge", "extracted");
3351
3351
  const signalsResult = await createExtractionRunner().run(projectPath, store, extractedDir);
3352
3352
  results.push(signalsResult);
3353
3353
  }
3354
3354
  if (input.source === "diagrams" || input.source === "all") {
3355
- const { DiagramParser } = await import("./dist-BZS2XRLG.js");
3355
+ const { DiagramParser } = await import("./dist-BP6E6QGG.js");
3356
3356
  const diagramParser = new DiagramParser(store);
3357
3357
  const diagramResult = await diagramParser.ingest(projectPath);
3358
3358
  results.push(diagramResult);
@@ -3418,7 +3418,7 @@ async function handleDetectAnomalies(input) {
3418
3418
  const projectPath = sanitizePath(input.path);
3419
3419
  const store = await loadGraphStore(projectPath);
3420
3420
  if (!store) return graphNotFoundError();
3421
- const { GraphAnomalyAdapter } = await import("./dist-BZS2XRLG.js");
3421
+ const { GraphAnomalyAdapter } = await import("./dist-BP6E6QGG.js");
3422
3422
  const adapter = new GraphAnomalyAdapter(store);
3423
3423
  const report = adapter.detect({
3424
3424
  ...input.threshold !== void 0 && { threshold: input.threshold },
@@ -3467,7 +3467,7 @@ async function handleAskGraph(input) {
3467
3467
  const projectPath = sanitizePath(input.path);
3468
3468
  const store = await loadGraphStore(projectPath);
3469
3469
  if (!store) return graphNotFoundError();
3470
- const { askGraph } = await import("./dist-BZS2XRLG.js");
3470
+ const { askGraph } = await import("./dist-BP6E6QGG.js");
3471
3471
  const result = await askGraph(store, input.question);
3472
3472
  return {
3473
3473
  content: [{ type: "text", text: JSON.stringify(result) }]
@@ -3531,7 +3531,7 @@ async function handleComputeBlastRadius(input) {
3531
3531
  const projectPath = sanitizePath(input.path);
3532
3532
  const store = await loadGraphStore(projectPath);
3533
3533
  if (!store) return graphNotFoundError();
3534
- const { CascadeSimulator } = await import("./dist-BZS2XRLG.js");
3534
+ const { CascadeSimulator } = await import("./dist-BP6E6QGG.js");
3535
3535
  let targetNodeId = input.nodeId;
3536
3536
  if (!targetNodeId && input.file) {
3537
3537
  const fileNodes = store.findNodes({ type: "file" });
@@ -3732,7 +3732,7 @@ var generateAgentDefinitionsDefinition = {
3732
3732
  }
3733
3733
  };
3734
3734
  async function handleGenerateAgentDefinitions(input) {
3735
- const { generateAgentDefinitions } = await import("./generate-agent-definitions-FOSFADNR.js");
3735
+ const { generateAgentDefinitions } = await import("./generate-agent-definitions-6RJKL6VW.js");
3736
3736
  const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
3737
3737
  const results = generateAgentDefinitions({
3738
3738
  platforms: [...platforms],
@@ -3914,7 +3914,7 @@ function handleAdd(projectPath, input, deps) {
3914
3914
  return resultToMcpResponse(Ok2(roadmap));
3915
3915
  }
3916
3916
  function handleUpdate(projectPath, input, deps) {
3917
- const { parseRoadmap, serializeRoadmap, Ok: Ok2 } = deps;
3917
+ const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, Ok: Ok2 } = deps;
3918
3918
  if (!input.feature) {
3919
3919
  return {
3920
3920
  content: [{ type: "text", text: "Error: feature is required for update action" }],
@@ -3948,6 +3948,10 @@ function handleUpdate(projectPath, input, deps) {
3948
3948
  isError: true
3949
3949
  };
3950
3950
  }
3951
+ const cascade = syncRoadmap({ projectPath, roadmap });
3952
+ if (cascade.ok && cascade.value.length > 0) {
3953
+ applySyncChanges(roadmap, cascade.value);
3954
+ }
3951
3955
  roadmap.frontmatter.lastManualEdit = (/* @__PURE__ */ new Date()).toISOString();
3952
3956
  writeRoadmapFile(projectPath, serializeRoadmap(roadmap));
3953
3957
  return resultToMcpResponse(Ok2(roadmap));
@@ -4060,7 +4064,7 @@ function shouldTriggerExternalSync(input, response) {
4060
4064
  }
4061
4065
  async function handleManageRoadmap(input) {
4062
4066
  try {
4063
- const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-CPKL5Y2R.js");
4067
+ const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-46VOJIG4.js");
4064
4068
  const { Ok: Ok2 } = await import("./dist-3EWNRFFQ.js");
4065
4069
  const projectPath = sanitizePath(input.path);
4066
4070
  const deps = {
@@ -4499,7 +4503,7 @@ async function handleTransition(validInput, projectPath, id) {
4499
4503
  const transition = transitionResult.data;
4500
4504
  const prompt = renderTransition(transition);
4501
4505
  try {
4502
- const { saveHandoff } = await import("./dist-CPKL5Y2R.js");
4506
+ const { saveHandoff } = await import("./dist-46VOJIG4.js");
4503
4507
  await saveHandoff(
4504
4508
  projectPath,
4505
4509
  {
@@ -4580,7 +4584,7 @@ async function handleEmitInteraction(input) {
4580
4584
  }
4581
4585
  async function recordInteraction(projectPath, id, type, decision, stream) {
4582
4586
  try {
4583
- const { loadState, saveState } = await import("./dist-CPKL5Y2R.js");
4587
+ const { loadState, saveState } = await import("./dist-46VOJIG4.js");
4584
4588
  const stateResult = await loadState(projectPath, stream);
4585
4589
  if (stateResult.ok) {
4586
4590
  const state = stateResult.value;
@@ -4741,10 +4745,10 @@ async function handleGatherContext(input) {
4741
4745
  input.include ?? ["state", "learnings", "handoff", "graph", "validation", "businessKnowledge"]
4742
4746
  );
4743
4747
  const errors = [];
4744
- const statePromise = includeSet.has("state") ? import("./dist-CPKL5Y2R.js").then(
4748
+ const statePromise = includeSet.has("state") ? import("./dist-46VOJIG4.js").then(
4745
4749
  (core) => core.loadState(projectPath, void 0, input.session)
4746
4750
  ) : Promise.resolve(null);
4747
- const learningsPromise = includeSet.has("learnings") ? import("./dist-CPKL5Y2R.js").then(
4751
+ const learningsPromise = includeSet.has("learnings") ? import("./dist-46VOJIG4.js").then(
4748
4752
  (core) => core.loadBudgetedLearnings(projectPath, {
4749
4753
  intent: input.intent,
4750
4754
  tokenBudget: input.learningsBudget ?? 1e3,
@@ -4753,14 +4757,14 @@ async function handleGatherContext(input) {
4753
4757
  ...input.depth !== void 0 && { depth: input.depth }
4754
4758
  })
4755
4759
  ) : Promise.resolve(null);
4756
- const handoffPromise = includeSet.has("handoff") ? import("./dist-CPKL5Y2R.js").then(
4760
+ const handoffPromise = includeSet.has("handoff") ? import("./dist-46VOJIG4.js").then(
4757
4761
  (core) => core.loadHandoff(projectPath, void 0, input.session)
4758
4762
  ) : Promise.resolve(null);
4759
4763
  const graphPromise = includeSet.has("graph") ? (async () => {
4760
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-QEI7SYOQ.js");
4764
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-BI3OFFFS.js");
4761
4765
  const store = await loadGraphStore2(projectPath);
4762
4766
  if (!store) return null;
4763
- const { FusionLayer, ContextQL } = await import("./dist-BZS2XRLG.js");
4767
+ const { FusionLayer, ContextQL } = await import("./dist-BP6E6QGG.js");
4764
4768
  const fusion = new FusionLayer(store);
4765
4769
  const cql = new ContextQL(store);
4766
4770
  const tokenBudget = input.tokenBudget ?? 4e3;
@@ -4797,11 +4801,11 @@ async function handleGatherContext(input) {
4797
4801
  context: contextBlocks
4798
4802
  };
4799
4803
  })() : Promise.resolve(null);
4800
- const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-CPKL5Y2R.js").then(
4804
+ const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-46VOJIG4.js").then(
4801
4805
  (core) => core.readSessionSections(projectPath, input.session)
4802
4806
  ) : Promise.resolve(null);
4803
4807
  const shouldIncludeEvents = input.includeEvents !== void 0 ? input.includeEvents : includeSet.has("events") || !!input.session && !input.include;
4804
- const eventsPromise = shouldIncludeEvents ? import("./dist-CPKL5Y2R.js").then(async (core) => {
4808
+ const eventsPromise = shouldIncludeEvents ? import("./dist-46VOJIG4.js").then(async (core) => {
4805
4809
  const result = await core.loadEvents(projectPath, {
4806
4810
  session: input.session
4807
4811
  });
@@ -4809,7 +4813,7 @@ async function handleGatherContext(input) {
4809
4813
  return core.formatEventTimeline(result.value);
4810
4814
  }) : Promise.resolve(null);
4811
4815
  const validationPromise = includeSet.has("validation") ? (async () => {
4812
- const { handleValidateProject: handleValidateProject2 } = await import("./validate-EAVGKZQB.js");
4816
+ const { handleValidateProject: handleValidateProject2 } = await import("./validate-IJHHQHT5.js");
4813
4817
  const result = await handleValidateProject2({ path: projectPath });
4814
4818
  const first = result.content[0];
4815
4819
  return first ? JSON.parse(first.text) : null;
@@ -4912,7 +4916,7 @@ async function handleGatherContext(input) {
4912
4916
  };
4913
4917
  if (input.session) {
4914
4918
  try {
4915
- const core = await import("./dist-CPKL5Y2R.js");
4919
+ const core = await import("./dist-46VOJIG4.js");
4916
4920
  core.updateSessionIndex(
4917
4921
  projectPath,
4918
4922
  input.session,
@@ -5064,7 +5068,7 @@ async function handleReviewChanges(input) {
5064
5068
  }
5065
5069
  }
5066
5070
  async function runQuickReview(projectPath, diff, diffLines, downgraded, offset, limit) {
5067
- const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-7EC4T6XG.js");
5071
+ const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-6HP42GTK.js");
5068
5072
  const result = await handleAnalyzeDiff2({ diff, path: projectPath });
5069
5073
  const firstContent = result.content[0];
5070
5074
  if (!firstContent) throw new Error("Empty analyze_diff response");
@@ -5099,7 +5103,7 @@ function extractFileCount(diffParsed) {
5099
5103
  return files?.length ?? 0;
5100
5104
  }
5101
5105
  async function runStandardReview(projectPath, diff, diffLines, downgraded, offset, limit) {
5102
- const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-7EC4T6XG.js");
5106
+ const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-6HP42GTK.js");
5103
5107
  const [diffResult, reviewResult] = await Promise.all([
5104
5108
  handleAnalyzeDiff2({ diff, path: projectPath }),
5105
5109
  handleCreateSelfReview2({ path: projectPath, diff })
@@ -5134,7 +5138,7 @@ async function runStandardReview(projectPath, diff, diffLines, downgraded, offse
5134
5138
  };
5135
5139
  }
5136
5140
  async function runDeepReview(projectPath, diff, diffLines, _downgraded, offset, limit) {
5137
- const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-B4WPU6BQ.js");
5141
+ const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-HTC5HA5X.js");
5138
5142
  const result = await handleRunCodeReview2({
5139
5143
  path: projectPath,
5140
5144
  diff,
@@ -5213,7 +5217,7 @@ async function handleCheckTaskIndependence(input) {
5213
5217
  try {
5214
5218
  const projectPath = sanitizePath(input.path);
5215
5219
  const store = await loadGraphStore(projectPath);
5216
- const { TaskIndependenceAnalyzer } = await import("./dist-BZS2XRLG.js");
5220
+ const { TaskIndependenceAnalyzer } = await import("./dist-BP6E6QGG.js");
5217
5221
  const analyzer = new TaskIndependenceAnalyzer(store ?? void 0);
5218
5222
  const result = analyzer.analyze({
5219
5223
  tasks: input.tasks,
@@ -5301,7 +5305,7 @@ async function handlePredictConflicts(input) {
5301
5305
  try {
5302
5306
  const projectPath = sanitizePath(input.path);
5303
5307
  const store = await loadGraphStore(projectPath);
5304
- const { ConflictPredictor } = await import("./dist-BZS2XRLG.js");
5308
+ const { ConflictPredictor } = await import("./dist-BP6E6QGG.js");
5305
5309
  const predictor = new ConflictPredictor(store ?? void 0);
5306
5310
  const result = predictor.predict({
5307
5311
  tasks: input.tasks,
@@ -5407,7 +5411,7 @@ async function handleDetectStaleConstraints(input) {
5407
5411
  isError: true
5408
5412
  };
5409
5413
  }
5410
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-QEI7SYOQ.js");
5414
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-BI3OFFFS.js");
5411
5415
  const store = await loadGraphStore2(projectPath);
5412
5416
  if (!store) {
5413
5417
  return {
@@ -5428,7 +5432,7 @@ async function handleDetectStaleConstraints(input) {
5428
5432
  ]
5429
5433
  };
5430
5434
  }
5431
- const { detectStaleConstraints } = await import("./dist-CPKL5Y2R.js");
5435
+ const { detectStaleConstraints } = await import("./dist-46VOJIG4.js");
5432
5436
  const result = detectStaleConstraints(
5433
5437
  store,
5434
5438
  windowDays,
@@ -5548,10 +5552,10 @@ function countCriticalFindings(securityData) {
5548
5552
  return findings.filter((f) => f.severity === "error").length;
5549
5553
  }
5550
5554
  async function runHealthChecks(projectPath) {
5551
- const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-LLWWEQEV.js");
5552
- const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-ZR33YKJB.js");
5553
- const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-FIEE4YDA.js");
5554
- const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-25VFLIAO.js");
5555
+ const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-WDUFL7SO.js");
5556
+ const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-5GVJRRUD.js");
5557
+ const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-K2YTZFCP.js");
5558
+ const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-ROK5IFDA.js");
5555
5559
  const [assessResult, depsResult, entropyResult, securityResult] = await Promise.all([
5556
5560
  handleAssessProject2({
5557
5561
  path: projectPath,
@@ -5606,10 +5610,10 @@ function avg(values) {
5606
5610
  }
5607
5611
  async function runGraphMetrics(projectPath) {
5608
5612
  try {
5609
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-QEI7SYOQ.js");
5613
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-BI3OFFFS.js");
5610
5614
  const store = await loadGraphStore2(projectPath);
5611
5615
  if (!store) return ZERO_METRICS;
5612
- const { GraphCouplingAdapter, GraphComplexityAdapter, GraphAnomalyAdapter } = await import("./dist-BZS2XRLG.js");
5616
+ const { GraphCouplingAdapter, GraphComplexityAdapter, GraphAnomalyAdapter } = await import("./dist-BP6E6QGG.js");
5613
5617
  const couplingAdapter = new GraphCouplingAdapter(store);
5614
5618
  const couplingData = couplingAdapter.computeCouplingData();
5615
5619
  const files = couplingData.files;
@@ -6392,7 +6396,7 @@ async function handleGetDecayTrends(input) {
6392
6396
  };
6393
6397
  }
6394
6398
  try {
6395
- const core = await import("./dist-CPKL5Y2R.js");
6399
+ const core = await import("./dist-46VOJIG4.js");
6396
6400
  const { TimelineManager } = core;
6397
6401
  const manager = new TimelineManager(projectPath);
6398
6402
  const timeline = manager.load();
@@ -6527,7 +6531,7 @@ async function handleCodeOutline(input) {
6527
6531
  };
6528
6532
  }
6529
6533
  try {
6530
- const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-CPKL5Y2R.js");
6534
+ const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-46VOJIG4.js");
6531
6535
  const { stat } = await import("fs/promises");
6532
6536
  const stats = await stat(targetPath).catch(() => null);
6533
6537
  if (stats?.isFile()) {
@@ -6546,7 +6550,7 @@ async function handleCodeOutline(input) {
6546
6550
  })
6547
6551
  );
6548
6552
  fileStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
6549
- const { paginate: paginate2 } = await import("./dist-CPKL5Y2R.js");
6553
+ const { paginate: paginate2 } = await import("./dist-46VOJIG4.js");
6550
6554
  const paged = paginate2(fileStats, input.offset ?? 0, input.limit ?? 30);
6551
6555
  const results = [];
6552
6556
  for (const entry of paged.items) {
@@ -6619,7 +6623,7 @@ async function handleCodeSearch(input) {
6619
6623
  };
6620
6624
  }
6621
6625
  try {
6622
- const { searchSymbols } = await import("./dist-CPKL5Y2R.js");
6626
+ const { searchSymbols } = await import("./dist-46VOJIG4.js");
6623
6627
  const result = await searchSymbols(input.query, directory, input.glob);
6624
6628
  const lines = [`Search: "${result.query}" \u2014 ${result.matches.length} matches`];
6625
6629
  for (const match of result.matches) {
@@ -6688,7 +6692,7 @@ async function handleCodeUnfold(input) {
6688
6692
  }
6689
6693
  try {
6690
6694
  if (input.symbol) {
6691
- const { unfoldSymbol } = await import("./dist-CPKL5Y2R.js");
6695
+ const { unfoldSymbol } = await import("./dist-46VOJIG4.js");
6692
6696
  const result = await unfoldSymbol(filePath, input.symbol);
6693
6697
  const header = result.warning ? `${result.file}:${result.startLine}-${result.endLine} ${result.warning}
6694
6698
  ` : `${result.file}:${result.startLine}-${result.endLine}
@@ -6696,7 +6700,7 @@ async function handleCodeUnfold(input) {
6696
6700
  return { content: [{ type: "text", text: header + result.content }] };
6697
6701
  }
6698
6702
  if (input.startLine != null && input.endLine != null) {
6699
- const { unfoldRange } = await import("./dist-CPKL5Y2R.js");
6703
+ const { unfoldRange } = await import("./dist-46VOJIG4.js");
6700
6704
  const result = await unfoldRange(filePath, input.startLine, input.endLine);
6701
6705
  const header = `${result.file}:${result.startLine}-${result.endLine}
6702
6706
  `;
@@ -6758,7 +6762,7 @@ async function handleCheckTraceability(input) {
6758
6762
  isError: true
6759
6763
  };
6760
6764
  }
6761
- const { queryTraceability } = await import("./dist-BZS2XRLG.js");
6765
+ const { queryTraceability } = await import("./dist-BP6E6QGG.js");
6762
6766
  const options = {};
6763
6767
  if (input.spec) options.specPath = input.spec;
6764
6768
  if (input.feature) options.featureName = input.feature;
@@ -6881,7 +6885,7 @@ async function handlePredictFailures(input) {
6881
6885
  };
6882
6886
  }
6883
6887
  try {
6884
- const core = await import("./dist-CPKL5Y2R.js");
6888
+ const core = await import("./dist-46VOJIG4.js");
6885
6889
  const { TimelineManager, PredictionEngine, SpecImpactEstimator } = core;
6886
6890
  const manager = new TimelineManager(projectPath);
6887
6891
  const includeRoadmap = input.includeRoadmap !== false;
@@ -7764,7 +7768,7 @@ function handleContentMode(content, pipeline, budget, source) {
7764
7768
  };
7765
7769
  }
7766
7770
  async function handleIntentMode(projectPath, intent, pipeline, budget, filterContent) {
7767
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-QEI7SYOQ.js");
7771
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-BI3OFFFS.js");
7768
7772
  const store = await loadGraphStore2(projectPath);
7769
7773
  if (!store) {
7770
7774
  return {
@@ -7777,7 +7781,7 @@ async function handleIntentMode(projectPath, intent, pipeline, budget, filterCon
7777
7781
  isError: true
7778
7782
  };
7779
7783
  }
7780
- const { PackedSummaryCache, FusionLayer, ContextQL } = await import("./dist-BZS2XRLG.js");
7784
+ const { PackedSummaryCache, FusionLayer, ContextQL } = await import("./dist-BP6E6QGG.js");
7781
7785
  const cache = new PackedSummaryCache(store);
7782
7786
  const cachedEnvelope = cache.get(intent);
7783
7787
  if (cachedEnvelope) {
@@ -7990,7 +7994,7 @@ async function handleDetectConstraintEmergence(input) {
7990
7994
  }
7991
7995
  const nodePath = await import("path");
7992
7996
  const historyPath = nodePath.resolve(projectPath, ".harness/arch/violation-history.json");
7993
- const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-CPKL5Y2R.js");
7997
+ const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-46VOJIG4.js");
7994
7998
  const manager = new ViolationHistoryManager(historyPath);
7995
7999
  const history = manager.load();
7996
8000
  const options = { windowWeeks, minOccurrences };
@@ -8078,7 +8082,7 @@ async function handleRunCIChecks(input) {
8078
8082
  };
8079
8083
  }
8080
8084
  try {
8081
- const { runCIChecks } = await import("./dist-CPKL5Y2R.js");
8085
+ const { runCIChecks } = await import("./dist-46VOJIG4.js");
8082
8086
  const skip = input.checks ? VALID_CHECKS.filter((c) => !input.checks.includes(c)) : [];
8083
8087
  const result = await runCIChecks({
8084
8088
  projectRoot: projectPath,
@@ -8140,7 +8144,7 @@ async function handleGenerateBlueprint(input) {
8140
8144
  };
8141
8145
  }
8142
8146
  try {
8143
- const { ProjectScanner } = await import("./dist-CPKL5Y2R.js");
8147
+ const { ProjectScanner } = await import("./dist-46VOJIG4.js");
8144
8148
  const scanner = new ProjectScanner(projectPath);
8145
8149
  const data = await scanner.scan();
8146
8150
  return {
@@ -8386,7 +8390,7 @@ async function appendUpdateNotification(result, resolvedRoot) {
8386
8390
  shouldRunCheck,
8387
8391
  readCheckState,
8388
8392
  spawnBackgroundCheck
8389
- } = await import("./dist-CPKL5Y2R.js");
8393
+ } = await import("./dist-46VOJIG4.js");
8390
8394
  const { CLI_VERSION } = await import("./version-CUI434OP.js");
8391
8395
  const configInterval = readConfigInterval(resolvedRoot);
8392
8396
  const DEFAULT_INTERVAL = 864e5;