@harness-engineering/cli 2.4.2 → 2.4.5

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 (46) hide show
  1. package/dist/{agents-md-2M46KG4F.js → agents-md-KJVGWF2S.js} +2 -2
  2. package/dist/{architecture-3ZSN5RDQ.js → architecture-NX7FWQD3.js} +3 -3
  3. package/dist/{assess-project-KZWFQEJE.js → assess-project-PLY6ZWMW.js} +1 -1
  4. package/dist/bin/harness-mcp.js +13 -13
  5. package/dist/bin/harness.js +22 -22
  6. package/dist/{check-phase-gate-EWV5VYTG.js → check-phase-gate-WFIEJKMN.js} +3 -3
  7. package/dist/{chunk-KRQTN46U.js → chunk-3XFFGAX4.js} +3 -3
  8. package/dist/{chunk-NTOKQJOX.js → chunk-4H2KIQ3I.js} +1 -1
  9. package/dist/{chunk-GOSUZC5H.js → chunk-4PO2QAXO.js} +25 -25
  10. package/dist/{chunk-2TGCYJMT.js → chunk-65M5R3X6.js} +22 -8
  11. package/dist/{chunk-KOK7BFP2.js → chunk-72TZ2GZR.js} +2 -2
  12. package/dist/{chunk-QV5EBDWA.js → chunk-73ACYXIS.js} +1 -1
  13. package/dist/{chunk-7RZZV73V.js → chunk-7TRTU7JL.js} +2 -2
  14. package/dist/{chunk-B2ZYMQGT.js → chunk-A5GXGRW6.js} +6 -6
  15. package/dist/{chunk-GLKASJZE.js → chunk-DUCVDDZO.js} +3 -3
  16. package/dist/{chunk-TPNA2I4J.js → chunk-DUK6C7I7.js} +77 -70
  17. package/dist/{chunk-LHHO7AH4.js → chunk-FPUNXFJG.js} +2 -2
  18. package/dist/{chunk-UQJV7NNM.js → chunk-HCTXLKAH.js} +1 -1
  19. package/dist/{chunk-MXOQEI72.js → chunk-KEF624FQ.js} +1 -1
  20. package/dist/{chunk-LJF6UY4R.js → chunk-LJTQVJEP.js} +1 -1
  21. package/dist/{chunk-UPV7VDUB.js → chunk-M5TJOV3A.js} +2 -2
  22. package/dist/{chunk-NM3ZIWVN.js → chunk-NSLFLGUB.js} +1 -1
  23. package/dist/{chunk-PPQ3TY2R.js → chunk-OPDIMKUZ.js} +1 -1
  24. package/dist/{chunk-73KZ2E47.js → chunk-PGY57ABC.js} +6 -6
  25. package/dist/{chunk-I2KULMPD.js → chunk-TC4GQBIK.js} +5 -5
  26. package/dist/{chunk-RRTTJ3VB.js → chunk-YL2N4OZQ.js} +1 -1
  27. package/dist/{chunk-IEHXZB6J.js → chunk-Z6PF2YXB.js} +3 -3
  28. package/dist/{chunk-OUXYITL5.js → chunk-ZEKY6PQQ.js} +1 -1
  29. package/dist/{ci-workflow-5TBUHJFC.js → ci-workflow-XDIKOFSN.js} +2 -2
  30. package/dist/{dist-HA6IIPRC.js → dist-SVZHSOLP.js} +1 -1
  31. package/dist/{docs-D6WI2LCF.js → docs-7LXCR62T.js} +3 -3
  32. package/dist/{engine-GBEVIZZQ.js → engine-MMQF2ZW5.js} +2 -2
  33. package/dist/{entropy-V6M4KJDC.js → entropy-LMOXWMR4.js} +2 -2
  34. package/dist/{feedback-22I4HHXM.js → feedback-CLBC3IMP.js} +1 -1
  35. package/dist/{generate-agent-definitions-UM7T3WLA.js → generate-agent-definitions-5FDIGEVZ.js} +3 -3
  36. package/dist/index.d.ts +8 -8
  37. package/dist/index.js +22 -22
  38. package/dist/{loader-5V72NYMF.js → loader-WTWR2CWT.js} +2 -2
  39. package/dist/{mcp-5KQGFG5U.js → mcp-4W45E6OH.js} +13 -13
  40. package/dist/{performance-MVORVVMG.js → performance-WZQIUHLR.js} +3 -3
  41. package/dist/{review-pipeline-JYSVCNGJ.js → review-pipeline-YPRUHKM7.js} +2 -2
  42. package/dist/{runtime-KZC2OQI7.js → runtime-WC2IWI2X.js} +2 -2
  43. package/dist/{security-WOVOBLCI.js → security-AZNLX3N6.js} +1 -1
  44. package/dist/{validate-55HGQKWR.js → validate-S7G6H7F4.js} +3 -3
  45. package/dist/{validate-cross-check-H3PSV4VY.js → validate-cross-check-Z73SCHXZ.js} +2 -2
  46. package/package.json +4 -4
@@ -2,11 +2,11 @@ import {
2
2
  handleRunCodeReview,
3
3
  runCodeReviewDefinition,
4
4
  sortFindingsBySeverity
5
- } from "./chunk-UPV7VDUB.js";
5
+ } from "./chunk-M5TJOV3A.js";
6
6
  import {
7
7
  assessProjectDefinition,
8
8
  handleAssessProject
9
- } from "./chunk-B2ZYMQGT.js";
9
+ } from "./chunk-A5GXGRW6.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-IEHXZB6J.js";
20
+ } from "./chunk-Z6PF2YXB.js";
21
21
  import {
22
22
  getSecurityTrendsDefinition,
23
23
  handleGetSecurityTrends,
24
24
  handleRunSecurityScan,
25
25
  runSecurityScanDefinition
26
- } from "./chunk-LHHO7AH4.js";
26
+ } from "./chunk-FPUNXFJG.js";
27
27
  import {
28
28
  loadGraphStore
29
29
  } from "./chunk-5FDBXUFW.js";
30
30
  import {
31
31
  handleValidateProject,
32
32
  validateToolDefinition
33
- } from "./chunk-KRQTN46U.js";
33
+ } from "./chunk-3XFFGAX4.js";
34
34
  import {
35
35
  checkDependenciesDefinition,
36
36
  handleCheckDependencies
37
- } from "./chunk-7RZZV73V.js";
37
+ } from "./chunk-7TRTU7JL.js";
38
38
  import {
39
39
  resolveProjectConfig
40
- } from "./chunk-LJF6UY4R.js";
40
+ } from "./chunk-LJTQVJEP.js";
41
41
  import {
42
42
  checkDocsDefinition,
43
43
  handleCheckDocs
44
- } from "./chunk-I2KULMPD.js";
44
+ } from "./chunk-TC4GQBIK.js";
45
45
  import {
46
46
  detectEntropyDefinition,
47
47
  handleDetectEntropy
48
- } from "./chunk-GLKASJZE.js";
48
+ } from "./chunk-DUCVDDZO.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-73KZ2E47.js";
58
+ } from "./chunk-PGY57ABC.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-MXOQEI72.js";
70
+ } from "./chunk-KEF624FQ.js";
71
71
  import {
72
72
  GENERATED_HEADER_CLAUDE,
73
73
  GENERATED_HEADER_CODEX,
@@ -107,7 +107,7 @@ import {
107
107
  scanForInjection,
108
108
  serializeEnvelope,
109
109
  writeTaint
110
- } from "./chunk-2TGCYJMT.js";
110
+ } from "./chunk-65M5R3X6.js";
111
111
  import {
112
112
  Err,
113
113
  Ok
@@ -316,6 +316,13 @@ events.jsonl
316
316
  telemetry.json
317
317
  .telemetry-notice-shown
318
318
 
319
+ # Phase 3 webhook delivery queue \u2014 SQLite runtime DB (and WAL/SHM sidecars)
320
+ webhook-queue.sqlite
321
+ webhook-queue.sqlite-wal
322
+ webhook-queue.sqlite-shm
323
+ # Maintenance task run history (regenerated each tick)
324
+ maintenance/
325
+
319
326
  # security/: track timeline.json (trend ledger), ignore everything else
320
327
  security/*
321
328
  !security/timeline.json
@@ -712,7 +719,7 @@ ${skippedMsg}`
712
719
  async function handleInitProject(input) {
713
720
  const i = input;
714
721
  try {
715
- const { TemplateEngine } = await import("./engine-GBEVIZZQ.js");
722
+ const { TemplateEngine } = await import("./engine-MMQF2ZW5.js");
716
723
  const engine = new TemplateEngine(resolveTemplatesDir());
717
724
  const safePath = sanitizePath(i.path);
718
725
  const detected = tryDetectFramework(engine, safePath, i);
@@ -734,7 +741,7 @@ var listPersonasDefinition = {
734
741
  inputSchema: { type: "object", properties: {} }
735
742
  };
736
743
  async function handleListPersonas() {
737
- const { listPersonas } = await import("./loader-5V72NYMF.js");
744
+ const { listPersonas } = await import("./loader-WTWR2CWT.js");
738
745
  const result = listPersonas(resolvePersonasDir());
739
746
  return resultToMcpResponse(result);
740
747
  }
@@ -758,10 +765,10 @@ async function handleGeneratePersonaArtifacts(input) {
758
765
  if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
759
766
  return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
760
767
  }
761
- const { loadPersona } = await import("./loader-5V72NYMF.js");
762
- const { generateRuntime } = await import("./runtime-KZC2OQI7.js");
763
- const { generateAgentsMd } = await import("./agents-md-2M46KG4F.js");
764
- const { generateCIWorkflow } = await import("./ci-workflow-5TBUHJFC.js");
768
+ const { loadPersona } = await import("./loader-WTWR2CWT.js");
769
+ const { generateRuntime } = await import("./runtime-WC2IWI2X.js");
770
+ const { generateAgentsMd } = await import("./agents-md-KJVGWF2S.js");
771
+ const { generateCIWorkflow } = await import("./ci-workflow-XDIKOFSN.js");
765
772
  const personasDir = resolvePersonasDir();
766
773
  const filePath = path3.join(personasDir, `${input.name}.yaml`);
767
774
  if (!filePath.startsWith(personasDir)) {
@@ -816,7 +823,7 @@ async function handleRunPersona(input) {
816
823
  if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
817
824
  return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
818
825
  }
819
- const { loadPersona } = await import("./loader-5V72NYMF.js");
826
+ const { loadPersona } = await import("./loader-WTWR2CWT.js");
820
827
  const { runPersona } = await import("./runner-AAEF2TXY.js");
821
828
  const { executeSkill } = await import("./skill-executor-MOCUIAYS.js");
822
829
  const personasDir = resolvePersonasDir();
@@ -1261,7 +1268,7 @@ function loadOrGenerateProfile(projectRoot) {
1261
1268
  // src/mcp/tools/event-emitter.ts
1262
1269
  async function emitSkillEvent(projectPath, event) {
1263
1270
  try {
1264
- const { emitEvent } = await import("./dist-HA6IIPRC.js");
1271
+ const { emitEvent } = await import("./dist-SVZHSOLP.js");
1265
1272
  await emitEvent(projectPath, event);
1266
1273
  } catch {
1267
1274
  }
@@ -1533,7 +1540,7 @@ async function autoSyncRoadmap(projectPath) {
1533
1540
  try {
1534
1541
  const roadmapFile = path10.join(projectPath, "docs", "roadmap.md");
1535
1542
  if (!fs9.existsSync(roadmapFile)) return;
1536
- const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-HA6IIPRC.js");
1543
+ const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-SVZHSOLP.js");
1537
1544
  const raw = fs9.readFileSync(roadmapFile, "utf-8");
1538
1545
  const parseResult = parseRoadmap(raw);
1539
1546
  if (!parseResult.ok) return;
@@ -1563,7 +1570,7 @@ async function triggerExternalSync(projectPath, roadmapFile) {
1563
1570
  console.warn("[roadmap-sync] GITHUB_TOKEN not found \u2014 external sync skipped");
1564
1571
  return;
1565
1572
  }
1566
- const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-HA6IIPRC.js");
1573
+ const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-SVZHSOLP.js");
1567
1574
  const adapter = new GitHubIssuesSyncAdapter({
1568
1575
  token,
1569
1576
  config: trackerConfig
@@ -1660,12 +1667,12 @@ var manageStateDefinition = {
1660
1667
  }
1661
1668
  };
1662
1669
  async function handleShow(projectPath, input) {
1663
- const { loadState } = await import("./dist-HA6IIPRC.js");
1670
+ const { loadState } = await import("./dist-SVZHSOLP.js");
1664
1671
  return resultToMcpResponse(await loadState(projectPath, input.stream, input.session));
1665
1672
  }
1666
1673
  async function handleLearn(projectPath, input) {
1667
1674
  if (!input.learning) return mcpError("Error: learning is required for learn action");
1668
- const { appendLearning } = await import("./dist-HA6IIPRC.js");
1675
+ const { appendLearning } = await import("./dist-SVZHSOLP.js");
1669
1676
  const result = await appendLearning(
1670
1677
  projectPath,
1671
1678
  input.learning,
@@ -1680,7 +1687,7 @@ async function handleLearn(projectPath, input) {
1680
1687
  async function handleFailure(projectPath, input) {
1681
1688
  if (!input.description) return mcpError("Error: description is required for failure action");
1682
1689
  if (!input.failureType) return mcpError("Error: failureType is required for failure action");
1683
- const { appendFailure } = await import("./dist-HA6IIPRC.js");
1690
+ const { appendFailure } = await import("./dist-SVZHSOLP.js");
1684
1691
  const result = await appendFailure(
1685
1692
  projectPath,
1686
1693
  input.description,
@@ -1699,19 +1706,19 @@ async function handleFailure(projectPath, input) {
1699
1706
  return resultToMcpResponse(Ok({ recorded: true }));
1700
1707
  }
1701
1708
  async function handleArchive(projectPath, input) {
1702
- const { archiveFailures } = await import("./dist-HA6IIPRC.js");
1709
+ const { archiveFailures } = await import("./dist-SVZHSOLP.js");
1703
1710
  const result = await archiveFailures(projectPath, input.stream, input.session);
1704
1711
  if (!result.ok) return resultToMcpResponse(result);
1705
1712
  return resultToMcpResponse(Ok({ archived: true }));
1706
1713
  }
1707
1714
  async function handleReset(projectPath, input) {
1708
- const { saveState, DEFAULT_STATE } = await import("./dist-HA6IIPRC.js");
1715
+ const { saveState, DEFAULT_STATE } = await import("./dist-SVZHSOLP.js");
1709
1716
  const result = await saveState(projectPath, { ...DEFAULT_STATE }, input.stream, input.session);
1710
1717
  if (!result.ok) return resultToMcpResponse(result);
1711
1718
  return resultToMcpResponse(Ok({ reset: true }));
1712
1719
  }
1713
1720
  async function handleGate(projectPath, input) {
1714
- const { runMechanicalGate } = await import("./dist-HA6IIPRC.js");
1721
+ const { runMechanicalGate } = await import("./dist-SVZHSOLP.js");
1715
1722
  const result = await runMechanicalGate(projectPath);
1716
1723
  if (result.ok) {
1717
1724
  await emitSkillEvent(projectPath, {
@@ -1731,7 +1738,7 @@ async function handleGate(projectPath, input) {
1731
1738
  }
1732
1739
  async function handleSaveHandoff(projectPath, input) {
1733
1740
  if (!input.handoff) return mcpError("Error: handoff is required for save-handoff action");
1734
- const { saveHandoff } = await import("./dist-HA6IIPRC.js");
1741
+ const { saveHandoff } = await import("./dist-SVZHSOLP.js");
1735
1742
  const result = await saveHandoff(
1736
1743
  projectPath,
1737
1744
  input.handoff,
@@ -1753,7 +1760,7 @@ async function handleSaveHandoff(projectPath, input) {
1753
1760
  return resultToMcpResponse(Ok({ saved: true }));
1754
1761
  }
1755
1762
  async function handleLoadHandoff(projectPath, input) {
1756
- const { loadHandoff } = await import("./dist-HA6IIPRC.js");
1763
+ const { loadHandoff } = await import("./dist-SVZHSOLP.js");
1757
1764
  return resultToMcpResponse(await loadHandoff(projectPath, input.stream, input.session));
1758
1765
  }
1759
1766
  async function handleAppendEntry(projectPath, input) {
@@ -1761,7 +1768,7 @@ async function handleAppendEntry(projectPath, input) {
1761
1768
  if (!input.authorSkill) return mcpError("Error: authorSkill is required for append_entry action");
1762
1769
  if (!input.content) return mcpError("Error: content is required for append_entry action");
1763
1770
  if (input.session) {
1764
- const { appendSessionEntry } = await import("./dist-HA6IIPRC.js");
1771
+ const { appendSessionEntry } = await import("./dist-SVZHSOLP.js");
1765
1772
  const result = await appendSessionEntry(
1766
1773
  projectPath,
1767
1774
  input.session,
@@ -1774,7 +1781,7 @@ async function handleAppendEntry(projectPath, input) {
1774
1781
  if (input.section !== "decisions") {
1775
1782
  return mcpError("Error: session is required for non-decisions sections");
1776
1783
  }
1777
- const { loadState, saveState } = await import("./dist-HA6IIPRC.js");
1784
+ const { loadState, saveState } = await import("./dist-SVZHSOLP.js");
1778
1785
  const lr = await loadState(projectPath, input.stream);
1779
1786
  if (!lr.ok) return resultToMcpResponse(lr);
1780
1787
  lr.value.decisions.push({
@@ -1792,7 +1799,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
1792
1799
  if (!input.entryId) return mcpError("Error: entryId is required for update_entry_status action");
1793
1800
  if (!input.newStatus)
1794
1801
  return mcpError("Error: newStatus is required for update_entry_status action");
1795
- const { updateSessionEntryStatus } = await import("./dist-HA6IIPRC.js");
1802
+ const { updateSessionEntryStatus } = await import("./dist-SVZHSOLP.js");
1796
1803
  const result = await updateSessionEntryStatus(
1797
1804
  projectPath,
1798
1805
  input.session,
@@ -1805,7 +1812,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
1805
1812
  async function handleReadSection(projectPath, input) {
1806
1813
  if (!input.session) return mcpError("Error: session is required for read_section action");
1807
1814
  if (!input.section) return mcpError("Error: section is required for read_section action");
1808
- const { readSessionSection } = await import("./dist-HA6IIPRC.js");
1815
+ const { readSessionSection } = await import("./dist-SVZHSOLP.js");
1809
1816
  const result = await readSessionSection(
1810
1817
  projectPath,
1811
1818
  input.session,
@@ -1815,13 +1822,13 @@ async function handleReadSection(projectPath, input) {
1815
1822
  }
1816
1823
  async function handleReadSections(projectPath, input) {
1817
1824
  if (!input.session) return mcpError("Error: session is required for read_sections action");
1818
- const { readSessionSections } = await import("./dist-HA6IIPRC.js");
1825
+ const { readSessionSections } = await import("./dist-SVZHSOLP.js");
1819
1826
  const result = await readSessionSections(projectPath, input.session);
1820
1827
  return resultToMcpResponse(result);
1821
1828
  }
1822
1829
  async function handleArchiveSession(projectPath, input) {
1823
1830
  if (!input.session) return mcpError("Error: session is required for archive_session action");
1824
- const { archiveSession } = await import("./dist-HA6IIPRC.js");
1831
+ const { archiveSession } = await import("./dist-SVZHSOLP.js");
1825
1832
  const result = await archiveSession(projectPath, input.session);
1826
1833
  if (!result.ok) return resultToMcpResponse(result);
1827
1834
  await autoSyncRoadmap(projectPath);
@@ -1901,7 +1908,7 @@ var listStreamsDefinition = {
1901
1908
  };
1902
1909
  async function handleListStreams(input) {
1903
1910
  try {
1904
- const { listStreams, loadStreamIndex } = await import("./dist-HA6IIPRC.js");
1911
+ const { listStreams, loadStreamIndex } = await import("./dist-SVZHSOLP.js");
1905
1912
  const projectPath = sanitizePath(input.path);
1906
1913
  const indexResult = await loadStreamIndex(projectPath);
1907
1914
  const streamsResult = await listStreams(projectPath);
@@ -1939,7 +1946,7 @@ var checkPhaseGateDefinition = {
1939
1946
  };
1940
1947
  async function handleCheckPhaseGate(input) {
1941
1948
  try {
1942
- const { runCheckPhaseGate } = await import("./check-phase-gate-EWV5VYTG.js");
1949
+ const { runCheckPhaseGate } = await import("./check-phase-gate-WFIEJKMN.js");
1943
1950
  const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
1944
1951
  if (result.ok) {
1945
1952
  return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
@@ -1995,7 +2002,7 @@ async function handleValidateCrossCheck(input) {
1995
2002
  };
1996
2003
  }
1997
2004
  try {
1998
- const { runCrossCheck } = await import("./validate-cross-check-H3PSV4VY.js");
2005
+ const { runCrossCheck } = await import("./validate-cross-check-Z73SCHXZ.js");
1999
2006
  const specsDir = path11.resolve(projectPath, input.specsDir ?? "docs/specs");
2000
2007
  if (!specsDir.startsWith(projectPath)) {
2001
2008
  return {
@@ -2762,7 +2769,7 @@ async function handleGenerateSlashCommands(input) {
2762
2769
  // src/mcp/resources/state.ts
2763
2770
  async function getStateResource(projectRoot) {
2764
2771
  try {
2765
- const { loadState, migrateToStreams } = await import("./dist-HA6IIPRC.js");
2772
+ const { loadState, migrateToStreams } = await import("./dist-SVZHSOLP.js");
2766
2773
  await migrateToStreams(projectRoot);
2767
2774
  const result = await loadState(projectRoot);
2768
2775
  if (result.ok) {
@@ -3782,7 +3789,7 @@ var generateAgentDefinitionsDefinition = {
3782
3789
  }
3783
3790
  };
3784
3791
  async function handleGenerateAgentDefinitions(input) {
3785
- const { generateAgentDefinitions } = await import("./generate-agent-definitions-UM7T3WLA.js");
3792
+ const { generateAgentDefinitions } = await import("./generate-agent-definitions-5FDIGEVZ.js");
3786
3793
  const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
3787
3794
  const results = generateAgentDefinitions({
3788
3795
  platforms: [...platforms],
@@ -4276,7 +4283,7 @@ async function handleManageRoadmap(input) {
4276
4283
  return handleManageRoadmapFileLess(input, clientResult.value);
4277
4284
  }
4278
4285
  try {
4279
- const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-HA6IIPRC.js");
4286
+ const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-SVZHSOLP.js");
4280
4287
  const { Ok: Ok2 } = await import("./dist-O733ZU6I.js");
4281
4288
  const projectPath = projectPathPre;
4282
4289
  const deps = {
@@ -4715,7 +4722,7 @@ async function handleTransition(validInput, projectPath, id) {
4715
4722
  const transition = transitionResult.data;
4716
4723
  const prompt = renderTransition(transition);
4717
4724
  try {
4718
- const { saveHandoff } = await import("./dist-HA6IIPRC.js");
4725
+ const { saveHandoff } = await import("./dist-SVZHSOLP.js");
4719
4726
  await saveHandoff(
4720
4727
  projectPath,
4721
4728
  {
@@ -4796,7 +4803,7 @@ async function handleEmitInteraction(input) {
4796
4803
  }
4797
4804
  async function recordInteraction(projectPath, id, type, decision, stream) {
4798
4805
  try {
4799
- const { loadState, saveState } = await import("./dist-HA6IIPRC.js");
4806
+ const { loadState, saveState } = await import("./dist-SVZHSOLP.js");
4800
4807
  const stateResult = await loadState(projectPath, stream);
4801
4808
  if (stateResult.ok) {
4802
4809
  const state = stateResult.value;
@@ -4957,10 +4964,10 @@ async function handleGatherContext(input) {
4957
4964
  input.include ?? ["state", "learnings", "handoff", "graph", "validation", "businessKnowledge"]
4958
4965
  );
4959
4966
  const errors = [];
4960
- const statePromise = includeSet.has("state") ? import("./dist-HA6IIPRC.js").then(
4967
+ const statePromise = includeSet.has("state") ? import("./dist-SVZHSOLP.js").then(
4961
4968
  (core) => core.loadState(projectPath, void 0, input.session)
4962
4969
  ) : Promise.resolve(null);
4963
- const learningsPromise = includeSet.has("learnings") ? import("./dist-HA6IIPRC.js").then(
4970
+ const learningsPromise = includeSet.has("learnings") ? import("./dist-SVZHSOLP.js").then(
4964
4971
  (core) => core.loadBudgetedLearnings(projectPath, {
4965
4972
  intent: input.intent,
4966
4973
  tokenBudget: input.learningsBudget ?? 1e3,
@@ -4969,7 +4976,7 @@ async function handleGatherContext(input) {
4969
4976
  ...input.depth !== void 0 && { depth: input.depth }
4970
4977
  })
4971
4978
  ) : Promise.resolve(null);
4972
- const handoffPromise = includeSet.has("handoff") ? import("./dist-HA6IIPRC.js").then(
4979
+ const handoffPromise = includeSet.has("handoff") ? import("./dist-SVZHSOLP.js").then(
4973
4980
  (core) => core.loadHandoff(projectPath, void 0, input.session)
4974
4981
  ) : Promise.resolve(null);
4975
4982
  const graphPromise = includeSet.has("graph") ? (async () => {
@@ -5013,11 +5020,11 @@ async function handleGatherContext(input) {
5013
5020
  context: contextBlocks
5014
5021
  };
5015
5022
  })() : Promise.resolve(null);
5016
- const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-HA6IIPRC.js").then(
5023
+ const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-SVZHSOLP.js").then(
5017
5024
  (core) => core.readSessionSections(projectPath, input.session)
5018
5025
  ) : Promise.resolve(null);
5019
5026
  const shouldIncludeEvents = input.includeEvents !== void 0 ? input.includeEvents : includeSet.has("events") || !!input.session && !input.include;
5020
- const eventsPromise = shouldIncludeEvents ? import("./dist-HA6IIPRC.js").then(async (core) => {
5027
+ const eventsPromise = shouldIncludeEvents ? import("./dist-SVZHSOLP.js").then(async (core) => {
5021
5028
  const result = await core.loadEvents(projectPath, {
5022
5029
  session: input.session
5023
5030
  });
@@ -5025,7 +5032,7 @@ async function handleGatherContext(input) {
5025
5032
  return core.formatEventTimeline(result.value);
5026
5033
  }) : Promise.resolve(null);
5027
5034
  const validationPromise = includeSet.has("validation") ? (async () => {
5028
- const { handleValidateProject: handleValidateProject2 } = await import("./validate-55HGQKWR.js");
5035
+ const { handleValidateProject: handleValidateProject2 } = await import("./validate-S7G6H7F4.js");
5029
5036
  const result = await handleValidateProject2({ path: projectPath });
5030
5037
  const first = result.content[0];
5031
5038
  return first ? JSON.parse(first.text) : null;
@@ -5128,7 +5135,7 @@ async function handleGatherContext(input) {
5128
5135
  };
5129
5136
  if (input.session) {
5130
5137
  try {
5131
- const core = await import("./dist-HA6IIPRC.js");
5138
+ const core = await import("./dist-SVZHSOLP.js");
5132
5139
  core.updateSessionIndex(
5133
5140
  projectPath,
5134
5141
  input.session,
@@ -5280,7 +5287,7 @@ async function handleReviewChanges(input) {
5280
5287
  }
5281
5288
  }
5282
5289
  async function runQuickReview(projectPath, diff, diffLines, downgraded, offset, limit) {
5283
- const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-22I4HHXM.js");
5290
+ const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-CLBC3IMP.js");
5284
5291
  const result = await handleAnalyzeDiff2({ diff, path: projectPath });
5285
5292
  const firstContent = result.content[0];
5286
5293
  if (!firstContent) throw new Error("Empty analyze_diff response");
@@ -5315,7 +5322,7 @@ function extractFileCount(diffParsed) {
5315
5322
  return files?.length ?? 0;
5316
5323
  }
5317
5324
  async function runStandardReview(projectPath, diff, diffLines, downgraded, offset, limit) {
5318
- const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-22I4HHXM.js");
5325
+ const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-CLBC3IMP.js");
5319
5326
  const [diffResult, reviewResult] = await Promise.all([
5320
5327
  handleAnalyzeDiff2({ diff, path: projectPath }),
5321
5328
  handleCreateSelfReview2({ path: projectPath, diff })
@@ -5350,7 +5357,7 @@ async function runStandardReview(projectPath, diff, diffLines, downgraded, offse
5350
5357
  };
5351
5358
  }
5352
5359
  async function runDeepReview(projectPath, diff, diffLines, _downgraded, offset, limit) {
5353
- const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-JYSVCNGJ.js");
5360
+ const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-YPRUHKM7.js");
5354
5361
  const result = await handleRunCodeReview2({
5355
5362
  path: projectPath,
5356
5363
  diff,
@@ -5644,7 +5651,7 @@ async function handleDetectStaleConstraints(input) {
5644
5651
  ]
5645
5652
  };
5646
5653
  }
5647
- const { detectStaleConstraints } = await import("./dist-HA6IIPRC.js");
5654
+ const { detectStaleConstraints } = await import("./dist-SVZHSOLP.js");
5648
5655
  const result = detectStaleConstraints(
5649
5656
  store,
5650
5657
  windowDays,
@@ -5764,10 +5771,10 @@ function countCriticalFindings(securityData) {
5764
5771
  return findings.filter((f) => f.severity === "error").length;
5765
5772
  }
5766
5773
  async function runHealthChecks(projectPath) {
5767
- const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-KZWFQEJE.js");
5768
- const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-3ZSN5RDQ.js");
5769
- const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-V6M4KJDC.js");
5770
- const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-WOVOBLCI.js");
5774
+ const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-PLY6ZWMW.js");
5775
+ const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-NX7FWQD3.js");
5776
+ const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-LMOXWMR4.js");
5777
+ const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-AZNLX3N6.js");
5771
5778
  const [assessResult, depsResult, entropyResult, securityResult] = await Promise.all([
5772
5779
  handleAssessProject2({
5773
5780
  path: projectPath,
@@ -6608,7 +6615,7 @@ async function handleGetDecayTrends(input) {
6608
6615
  };
6609
6616
  }
6610
6617
  try {
6611
- const core = await import("./dist-HA6IIPRC.js");
6618
+ const core = await import("./dist-SVZHSOLP.js");
6612
6619
  const { TimelineManager } = core;
6613
6620
  const manager = new TimelineManager(projectPath);
6614
6621
  const timeline = manager.load();
@@ -6743,7 +6750,7 @@ async function handleCodeOutline(input) {
6743
6750
  };
6744
6751
  }
6745
6752
  try {
6746
- const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-HA6IIPRC.js");
6753
+ const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-SVZHSOLP.js");
6747
6754
  const { stat } = await import("fs/promises");
6748
6755
  const stats = await stat(targetPath).catch(() => null);
6749
6756
  if (stats?.isFile()) {
@@ -6762,7 +6769,7 @@ async function handleCodeOutline(input) {
6762
6769
  })
6763
6770
  );
6764
6771
  fileStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
6765
- const { paginate: paginate2 } = await import("./dist-HA6IIPRC.js");
6772
+ const { paginate: paginate2 } = await import("./dist-SVZHSOLP.js");
6766
6773
  const paged = paginate2(fileStats, input.offset ?? 0, input.limit ?? 30);
6767
6774
  const results = [];
6768
6775
  for (const entry of paged.items) {
@@ -6835,7 +6842,7 @@ async function handleCodeSearch(input) {
6835
6842
  };
6836
6843
  }
6837
6844
  try {
6838
- const { searchSymbols } = await import("./dist-HA6IIPRC.js");
6845
+ const { searchSymbols } = await import("./dist-SVZHSOLP.js");
6839
6846
  const result = await searchSymbols(input.query, directory, input.glob);
6840
6847
  const lines = [`Search: "${result.query}" \u2014 ${result.matches.length} matches`];
6841
6848
  for (const match of result.matches) {
@@ -6904,7 +6911,7 @@ async function handleCodeUnfold(input) {
6904
6911
  }
6905
6912
  try {
6906
6913
  if (input.symbol) {
6907
- const { unfoldSymbol } = await import("./dist-HA6IIPRC.js");
6914
+ const { unfoldSymbol } = await import("./dist-SVZHSOLP.js");
6908
6915
  const result = await unfoldSymbol(filePath, input.symbol);
6909
6916
  const header = result.warning ? `${result.file}:${result.startLine}-${result.endLine} ${result.warning}
6910
6917
  ` : `${result.file}:${result.startLine}-${result.endLine}
@@ -6912,7 +6919,7 @@ async function handleCodeUnfold(input) {
6912
6919
  return { content: [{ type: "text", text: header + result.content }] };
6913
6920
  }
6914
6921
  if (input.startLine != null && input.endLine != null) {
6915
- const { unfoldRange } = await import("./dist-HA6IIPRC.js");
6922
+ const { unfoldRange } = await import("./dist-SVZHSOLP.js");
6916
6923
  const result = await unfoldRange(filePath, input.startLine, input.endLine);
6917
6924
  const header = `${result.file}:${result.startLine}-${result.endLine}
6918
6925
  `;
@@ -7097,7 +7104,7 @@ async function handlePredictFailures(input) {
7097
7104
  };
7098
7105
  }
7099
7106
  try {
7100
- const core = await import("./dist-HA6IIPRC.js");
7107
+ const core = await import("./dist-SVZHSOLP.js");
7101
7108
  const { TimelineManager, PredictionEngine, SpecImpactEstimator } = core;
7102
7109
  const manager = new TimelineManager(projectPath);
7103
7110
  const includeRoadmap = input.includeRoadmap !== false;
@@ -8206,7 +8213,7 @@ async function handleDetectConstraintEmergence(input) {
8206
8213
  }
8207
8214
  const nodePath = await import("path");
8208
8215
  const historyPath = nodePath.resolve(projectPath, ".harness/arch/violation-history.json");
8209
- const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-HA6IIPRC.js");
8216
+ const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-SVZHSOLP.js");
8210
8217
  const manager = new ViolationHistoryManager(historyPath);
8211
8218
  const history = manager.load();
8212
8219
  const options = { windowWeeks, minOccurrences };
@@ -8294,7 +8301,7 @@ async function handleRunCIChecks(input) {
8294
8301
  };
8295
8302
  }
8296
8303
  try {
8297
- const { runCIChecks } = await import("./dist-HA6IIPRC.js");
8304
+ const { runCIChecks } = await import("./dist-SVZHSOLP.js");
8298
8305
  const skip = input.checks ? VALID_CHECKS.filter((c) => !input.checks.includes(c)) : [];
8299
8306
  const result = await runCIChecks({
8300
8307
  projectRoot: projectPath,
@@ -8356,7 +8363,7 @@ async function handleGenerateBlueprint(input) {
8356
8363
  };
8357
8364
  }
8358
8365
  try {
8359
- const { ProjectScanner } = await import("./dist-HA6IIPRC.js");
8366
+ const { ProjectScanner } = await import("./dist-SVZHSOLP.js");
8360
8367
  const scanner = new ProjectScanner(projectPath);
8361
8368
  const data = await scanner.scan();
8362
8369
  return {
@@ -8711,7 +8718,7 @@ async function appendUpdateNotification(result, resolvedRoot) {
8711
8718
  shouldRunCheck,
8712
8719
  readCheckState,
8713
8720
  spawnBackgroundCheck
8714
- } = await import("./dist-HA6IIPRC.js");
8721
+ } = await import("./dist-SVZHSOLP.js");
8715
8722
  const { CLI_VERSION } = await import("./version-CUI434OP.js");
8716
8723
  const configInterval = readConfigInterval(resolvedRoot);
8717
8724
  const DEFAULT_INTERVAL = 864e5;
@@ -27,7 +27,7 @@ var runSecurityScanDefinition = {
27
27
  };
28
28
  async function handleRunSecurityScan(input) {
29
29
  try {
30
- const core = await import("./dist-HA6IIPRC.js");
30
+ const core = await import("./dist-SVZHSOLP.js");
31
31
  const projectRoot = sanitizePath(input.path);
32
32
  let configData = {};
33
33
  try {
@@ -114,7 +114,7 @@ var getSecurityTrendsDefinition = {
114
114
  };
115
115
  async function handleGetSecurityTrends(input) {
116
116
  try {
117
- const core = await import("./dist-HA6IIPRC.js");
117
+ const core = await import("./dist-SVZHSOLP.js");
118
118
  const projectRoot = sanitizePath(input.path);
119
119
  const manager = new core.SecurityTimelineManager(projectRoot);
120
120
  const trendOptions = {};
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-2TGCYJMT.js";
3
+ } from "./chunk-65M5R3X6.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  ArchConfigSchema,
6
6
  init_dist as init_dist2
7
- } from "./chunk-2TGCYJMT.js";
7
+ } from "./chunk-65M5R3X6.js";
8
8
  import {
9
9
  Err,
10
10
  Ok
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-2TGCYJMT.js";
3
+ } from "./chunk-65M5R3X6.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  init_dist,
6
6
  paginate
7
- } from "./chunk-2TGCYJMT.js";
7
+ } from "./chunk-65M5R3X6.js";
8
8
 
9
9
  // src/mcp/tools/review-pipeline.ts
10
10
  init_dist();
@@ -79,7 +79,7 @@ var runCodeReviewDefinition = {
79
79
  };
80
80
  async function handleRunCodeReview(input) {
81
81
  try {
82
- const { parseDiff, runReviewPipeline } = await import("./dist-HA6IIPRC.js");
82
+ const { parseDiff, runReviewPipeline } = await import("./dist-SVZHSOLP.js");
83
83
  const parseResult = parseDiff(input.diff);
84
84
  if (!parseResult.ok) {
85
85
  return {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-2TGCYJMT.js";
3
+ } from "./chunk-65M5R3X6.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-2TGCYJMT.js";
3
+ } from "./chunk-65M5R3X6.js";
4
4
  import {
5
5
  Ok
6
6
  } from "./chunk-O63AAPIZ.js";