@harness-engineering/cli 6.0.0 → 7.0.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 (48) hide show
  1. package/dist/{agents-md-OTKZE5HH.js → agents-md-XBJ6YOSW.js} +2 -2
  2. package/dist/{architecture-3VYDN7MQ.js → architecture-D7PWJDXA.js} +3 -3
  3. package/dist/{assess-project-27X2FSZZ.js → assess-project-ENSWO4AX.js} +1 -1
  4. package/dist/bin/harness-mcp.js +13 -13
  5. package/dist/bin/harness.js +23 -23
  6. package/dist/{check-phase-gate-IXLFZ6YH.js → check-phase-gate-GTYAJ2YL.js} +3 -3
  7. package/dist/{chunk-QHFXVVUY.js → chunk-54RE35Q7.js} +2 -2
  8. package/dist/{chunk-XNHKXELN.js → chunk-5VP4ZQ3F.js} +1 -1
  9. package/dist/{chunk-CTMHHMHQ.js → chunk-6SP665CR.js} +89 -2
  10. package/dist/{chunk-VRA64HYI.js → chunk-7IVIRKHD.js} +1 -1
  11. package/dist/{chunk-3H7JA24B.js → chunk-CAGNARCD.js} +6 -6
  12. package/dist/{chunk-BMNHLKBA.js → chunk-GUL75WAM.js} +2 -2
  13. package/dist/{chunk-IXGYIQSR.js → chunk-HQUQA5D7.js} +1 -1
  14. package/dist/{chunk-354MCPT3.js → chunk-I6YMJ7ZD.js} +3 -3
  15. package/dist/{chunk-IOJGLIEQ.js → chunk-ILKL5I4J.js} +17 -2
  16. package/dist/{chunk-D7QXGI6E.js → chunk-INT5MUQX.js} +1 -1
  17. package/dist/{chunk-6Y6M3AZA.js → chunk-N3S6JTRS.js} +2 -2
  18. package/dist/{chunk-VGDZAWCJ.js → chunk-N4VEUBJ5.js} +934 -377
  19. package/dist/{chunk-L5UKNGC5.js → chunk-NXTNLNIP.js} +2 -2
  20. package/dist/{chunk-EFWRZHZ7.js → chunk-P7DXQAKU.js} +82 -82
  21. package/dist/{chunk-MEIUXTFY.js → chunk-PQBSP5AO.js} +1 -1
  22. package/dist/{chunk-TM4KFUWP.js → chunk-PYDUECJ3.js} +1 -1
  23. package/dist/{chunk-LISEPDVT.js → chunk-QB67FMZZ.js} +4 -4
  24. package/dist/{chunk-WAFTJFT3.js → chunk-TNR4BUWB.js} +3 -3
  25. package/dist/{chunk-KPBGAB35.js → chunk-UFZ6FMFC.js} +1 -1
  26. package/dist/{chunk-S2ETJDQJ.js → chunk-XRPHOCKU.js} +6 -6
  27. package/dist/{chunk-XF6RE3JQ.js → chunk-XYP5CIEN.js} +1 -1
  28. package/dist/{chunk-JJLOWMGC.js → chunk-YQK3GRW7.js} +1 -1
  29. package/dist/{chunk-3MKQKNY3.js → chunk-ZGK3JT4S.js} +5 -5
  30. package/dist/{ci-workflow-Y5GBKNZP.js → ci-workflow-ZODLVH62.js} +2 -2
  31. package/dist/{dist-4CZLCE33.js → dist-DTXVNQAY.js} +1 -1
  32. package/dist/{docs-3MWDPK4S.js → docs-ZU2HJCKW.js} +3 -3
  33. package/dist/{engine-RJXQ5DHK.js → engine-2DAJGPFZ.js} +2 -2
  34. package/dist/{entropy-OX5LSM4S.js → entropy-6JK3TCWY.js} +3 -3
  35. package/dist/{feedback-OODAP2G2.js → feedback-GEVH6CY3.js} +1 -1
  36. package/dist/{generate-agent-definitions-CCREQZEA.js → generate-agent-definitions-4DULEX3H.js} +3 -3
  37. package/dist/index.d.ts +745 -0
  38. package/dist/index.js +23 -23
  39. package/dist/{loader-ZICOJBVX.js → loader-K3A4YKWA.js} +2 -2
  40. package/dist/{mcp-XX6EIBLL.js → mcp-5MEIUQLV.js} +13 -13
  41. package/dist/{performance-OLZVGMAY.js → performance-HUXOQW7Q.js} +3 -3
  42. package/dist/{review-pipeline-3QPHMWPC.js → review-pipeline-QEYZXEMW.js} +2 -2
  43. package/dist/{runtime-ZFFIH76Z.js → runtime-45A4EGZD.js} +2 -2
  44. package/dist/{security-7YW3UK2C.js → security-CLZZRKND.js} +1 -1
  45. package/dist/{state-events-PTWAEGJ2.js → state-events-YLQEYOLI.js} +2 -2
  46. package/dist/{validate-H5SB7X3Z.js → validate-35GZKAOF.js} +3 -3
  47. package/dist/{validate-cross-check-YYVYMSPA.js → validate-cross-check-QJGCDWRO.js} +2 -2
  48. package/package.json +8 -8
@@ -27,7 +27,7 @@ var runSecurityScanDefinition = {
27
27
  };
28
28
  async function handleRunSecurityScan(input) {
29
29
  try {
30
- const core = await import("./dist-4CZLCE33.js");
30
+ const core = await import("./dist-DTXVNQAY.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-4CZLCE33.js");
117
+ const core = await import("./dist-DTXVNQAY.js");
118
118
  const projectRoot = sanitizePath(input.path);
119
119
  const manager = new core.SecurityTimelineManager(projectRoot);
120
120
  const trendOptions = {};
@@ -5,30 +5,30 @@ import {
5
5
  handleCreateSelfReview,
6
6
  handleRequestPeerReview,
7
7
  requestPeerReviewDefinition
8
- } from "./chunk-354MCPT3.js";
8
+ } from "./chunk-I6YMJ7ZD.js";
9
9
  import {
10
10
  getSecurityTrendsDefinition,
11
11
  handleGetSecurityTrends,
12
12
  handleRunSecurityScan,
13
13
  runSecurityScanDefinition
14
- } from "./chunk-L5UKNGC5.js";
14
+ } from "./chunk-NXTNLNIP.js";
15
15
  import {
16
16
  handleRunCodeReview,
17
17
  runCodeReviewDefinition,
18
18
  sortFindingsBySeverity
19
- } from "./chunk-QHFXVVUY.js";
19
+ } from "./chunk-54RE35Q7.js";
20
20
  import {
21
21
  assessProjectDefinition,
22
22
  handleAssessProject
23
- } from "./chunk-S2ETJDQJ.js";
23
+ } from "./chunk-XRPHOCKU.js";
24
24
  import {
25
25
  checkDocsDefinition,
26
26
  handleCheckDocs
27
- } from "./chunk-3MKQKNY3.js";
27
+ } from "./chunk-ZGK3JT4S.js";
28
28
  import {
29
29
  detectEntropyDefinition,
30
30
  handleDetectEntropy
31
- } from "./chunk-LISEPDVT.js";
31
+ } from "./chunk-QB67FMZZ.js";
32
32
  import {
33
33
  checkPerformanceDefinition,
34
34
  getCriticalPathsDefinition,
@@ -38,7 +38,7 @@ import {
38
38
  handleGetPerfBaselines,
39
39
  handleUpdatePerfBaselines,
40
40
  updatePerfBaselinesDefinition
41
- } from "./chunk-3H7JA24B.js";
41
+ } from "./chunk-CAGNARCD.js";
42
42
  import {
43
43
  getBusinessKnowledgeResource
44
44
  } from "./chunk-IOW3MW2K.js";
@@ -57,17 +57,17 @@ import {
57
57
  import {
58
58
  handleValidateProject,
59
59
  validateToolDefinition
60
- } from "./chunk-WAFTJFT3.js";
60
+ } from "./chunk-TNR4BUWB.js";
61
61
  import {
62
62
  checkDependenciesDefinition,
63
63
  handleCheckDependencies
64
- } from "./chunk-BMNHLKBA.js";
64
+ } from "./chunk-GUL75WAM.js";
65
65
  import {
66
66
  resultToMcpResponse
67
67
  } from "./chunk-RC3OI5NK.js";
68
68
  import {
69
69
  resolveProjectConfig
70
- } from "./chunk-XNHKXELN.js";
70
+ } from "./chunk-5VP4ZQ3F.js";
71
71
  import {
72
72
  sanitizePath
73
73
  } from "./chunk-W6Y7ZW3Y.js";
@@ -93,7 +93,7 @@ import {
93
93
  findConfigFile,
94
94
  loadConfig,
95
95
  resolveConfig
96
- } from "./chunk-IOJGLIEQ.js";
96
+ } from "./chunk-ILKL5I4J.js";
97
97
  import {
98
98
  logger
99
99
  } from "./chunk-EBJQ6N4M.js";
@@ -129,7 +129,7 @@ import {
129
129
  scanForInjection,
130
130
  serializeEnvelope,
131
131
  writeTaint
132
- } from "./chunk-CTMHHMHQ.js";
132
+ } from "./chunk-6SP665CR.js";
133
133
  import {
134
134
  Err,
135
135
  INDEXED_FILE_KINDS,
@@ -747,7 +747,7 @@ async function handleInsightsSummary(input) {
747
747
  const skip = Array.isArray(input.skip) ? input.skip.filter(
748
748
  (k) => typeof k === "string" && INSIGHTS_KEYS.includes(k)
749
749
  ) : void 0;
750
- const { composeInsights } = await import("./dist-4CZLCE33.js");
750
+ const { composeInsights } = await import("./dist-DTXVNQAY.js");
751
751
  const report = await composeInsights(projectPath, {
752
752
  ...skip && skip.length > 0 && { skip }
753
753
  });
@@ -923,7 +923,7 @@ ${skippedMsg}`
923
923
  async function handleInitProject(input) {
924
924
  const i = input;
925
925
  try {
926
- const { TemplateEngine } = await import("./engine-RJXQ5DHK.js");
926
+ const { TemplateEngine } = await import("./engine-2DAJGPFZ.js");
927
927
  const engine = new TemplateEngine(resolveTemplatesDir());
928
928
  const safePath = sanitizePath(i.path);
929
929
  const detected = tryDetectFramework(engine, safePath, i);
@@ -945,7 +945,7 @@ var listPersonasDefinition = {
945
945
  inputSchema: { type: "object", properties: {} }
946
946
  };
947
947
  async function handleListPersonas() {
948
- const { listPersonas } = await import("./loader-ZICOJBVX.js");
948
+ const { listPersonas } = await import("./loader-K3A4YKWA.js");
949
949
  const result = listPersonas(resolvePersonasDir());
950
950
  return resultToMcpResponse(result);
951
951
  }
@@ -969,10 +969,10 @@ async function handleGeneratePersonaArtifacts(input) {
969
969
  if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
970
970
  return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
971
971
  }
972
- const { loadPersona } = await import("./loader-ZICOJBVX.js");
973
- const { generateRuntime } = await import("./runtime-ZFFIH76Z.js");
974
- const { generateAgentsMd } = await import("./agents-md-OTKZE5HH.js");
975
- const { generateCIWorkflow } = await import("./ci-workflow-Y5GBKNZP.js");
972
+ const { loadPersona } = await import("./loader-K3A4YKWA.js");
973
+ const { generateRuntime } = await import("./runtime-45A4EGZD.js");
974
+ const { generateAgentsMd } = await import("./agents-md-XBJ6YOSW.js");
975
+ const { generateCIWorkflow } = await import("./ci-workflow-ZODLVH62.js");
976
976
  const personasDir = resolvePersonasDir();
977
977
  const filePath = path4.join(personasDir, `${input.name}.yaml`);
978
978
  if (!filePath.startsWith(personasDir)) {
@@ -1027,7 +1027,7 @@ async function handleRunPersona(input) {
1027
1027
  if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
1028
1028
  return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
1029
1029
  }
1030
- const { loadPersona } = await import("./loader-ZICOJBVX.js");
1030
+ const { loadPersona } = await import("./loader-K3A4YKWA.js");
1031
1031
  const { runPersona } = await import("./runner-AAEF2TXY.js");
1032
1032
  const { executeSkill } = await import("./skill-executor-BGUCAVBU.js");
1033
1033
  const personasDir = resolvePersonasDir();
@@ -1550,7 +1550,7 @@ async function handleRunSkill(input) {
1550
1550
  }
1551
1551
  if (input.path) {
1552
1552
  const projectPath = sanitizePath(input.path);
1553
- const { readHarnessState, isEmptyHarnessState } = await import("./state-events-PTWAEGJ2.js");
1553
+ const { readHarnessState, isEmptyHarnessState } = await import("./state-events-YLQEYOLI.js");
1554
1554
  const stateResult = await readHarnessState(projectPath);
1555
1555
  if (stateResult.ok && !isEmptyHarnessState(stateResult.value)) {
1556
1556
  const stateContent = JSON.stringify(stateResult.value, null, 2);
@@ -1749,7 +1749,7 @@ import * as path11 from "path";
1749
1749
  async function autoSyncRoadmap(projectPath) {
1750
1750
  try {
1751
1751
  if (!roadmapSourceExists(projectPath)) return;
1752
- const { syncRoadmap, applySyncChanges } = await import("./dist-4CZLCE33.js");
1752
+ const { syncRoadmap, applySyncChanges } = await import("./dist-DTXVNQAY.js");
1753
1753
  const store = resolveRoadmapStore({ projectRoot: projectPath });
1754
1754
  const loaded = await store.load();
1755
1755
  if (!loaded.ok) return;
@@ -1780,7 +1780,7 @@ async function triggerExternalSync(projectPath) {
1780
1780
  console.warn("[roadmap-sync] GITHUB_TOKEN not found \u2014 external sync skipped");
1781
1781
  return;
1782
1782
  }
1783
- const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-4CZLCE33.js");
1783
+ const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-DTXVNQAY.js");
1784
1784
  const adapter = new GitHubIssuesSyncAdapter({
1785
1785
  token,
1786
1786
  config: trackerConfig
@@ -1900,14 +1900,14 @@ var manageStateDefinition = {
1900
1900
  }
1901
1901
  };
1902
1902
  async function handleShow(projectPath, input) {
1903
- const { readHarnessState } = await import("./state-events-PTWAEGJ2.js");
1903
+ const { readHarnessState } = await import("./state-events-YLQEYOLI.js");
1904
1904
  return resultToMcpResponse(
1905
1905
  await readHarnessState(projectPath, { stream: input.stream, session: input.session })
1906
1906
  );
1907
1907
  }
1908
1908
  async function handleLearn(projectPath, input) {
1909
1909
  if (!input.learning) return mcpError("Error: learning is required for learn action");
1910
- const { appendLearning } = await import("./dist-4CZLCE33.js");
1910
+ const { appendLearning } = await import("./dist-DTXVNQAY.js");
1911
1911
  const result = await appendLearning(
1912
1912
  projectPath,
1913
1913
  input.learning,
@@ -1922,7 +1922,7 @@ async function handleLearn(projectPath, input) {
1922
1922
  async function handleFailure(projectPath, input) {
1923
1923
  if (!input.description) return mcpError("Error: description is required for failure action");
1924
1924
  if (!input.failureType) return mcpError("Error: failureType is required for failure action");
1925
- const { appendFailure } = await import("./dist-4CZLCE33.js");
1925
+ const { appendFailure } = await import("./dist-DTXVNQAY.js");
1926
1926
  const result = await appendFailure(
1927
1927
  projectPath,
1928
1928
  input.description,
@@ -1941,13 +1941,13 @@ async function handleFailure(projectPath, input) {
1941
1941
  return resultToMcpResponse(Ok({ recorded: true }));
1942
1942
  }
1943
1943
  async function handleArchive(projectPath, input) {
1944
- const { archiveFailures } = await import("./dist-4CZLCE33.js");
1944
+ const { archiveFailures } = await import("./dist-DTXVNQAY.js");
1945
1945
  const result = await archiveFailures(projectPath, input.stream, input.session);
1946
1946
  if (!result.ok) return resultToMcpResponse(result);
1947
1947
  return resultToMcpResponse(Ok({ archived: true }));
1948
1948
  }
1949
1949
  async function handleReset(projectPath, input) {
1950
- const { eventSourcing } = await import("./dist-4CZLCE33.js");
1950
+ const { eventSourcing } = await import("./dist-DTXVNQAY.js");
1951
1951
  const result = await eventSourcing.resetEventLog(projectPath, {
1952
1952
  stream: input.stream,
1953
1953
  session: input.session
@@ -1956,7 +1956,7 @@ async function handleReset(projectPath, input) {
1956
1956
  return resultToMcpResponse(Ok({ reset: true }));
1957
1957
  }
1958
1958
  async function handleGate(projectPath, input) {
1959
- const { runMechanicalGate } = await import("./dist-4CZLCE33.js");
1959
+ const { runMechanicalGate } = await import("./dist-DTXVNQAY.js");
1960
1960
  const result = await runMechanicalGate(projectPath);
1961
1961
  if (result.ok) {
1962
1962
  await emitSkillEvent(projectPath, {
@@ -1976,7 +1976,7 @@ async function handleGate(projectPath, input) {
1976
1976
  }
1977
1977
  async function handleSaveHandoff(projectPath, input) {
1978
1978
  if (!input.handoff) return mcpError("Error: handoff is required for save-handoff action");
1979
- const { saveHandoff } = await import("./dist-4CZLCE33.js");
1979
+ const { saveHandoff } = await import("./dist-DTXVNQAY.js");
1980
1980
  const result = await saveHandoff(
1981
1981
  projectPath,
1982
1982
  input.handoff,
@@ -1998,7 +1998,7 @@ async function handleSaveHandoff(projectPath, input) {
1998
1998
  return resultToMcpResponse(Ok({ saved: true }));
1999
1999
  }
2000
2000
  async function handleLoadHandoff(projectPath, input) {
2001
- const { loadHandoff } = await import("./dist-4CZLCE33.js");
2001
+ const { loadHandoff } = await import("./dist-DTXVNQAY.js");
2002
2002
  return resultToMcpResponse(await loadHandoff(projectPath, input.stream, input.session));
2003
2003
  }
2004
2004
  async function handleAppendEntry(projectPath, input) {
@@ -2006,7 +2006,7 @@ async function handleAppendEntry(projectPath, input) {
2006
2006
  if (!input.authorSkill) return mcpError("Error: authorSkill is required for append_entry action");
2007
2007
  if (!input.content) return mcpError("Error: content is required for append_entry action");
2008
2008
  if (input.session) {
2009
- const { appendSessionEntry } = await import("./dist-4CZLCE33.js");
2009
+ const { appendSessionEntry } = await import("./dist-DTXVNQAY.js");
2010
2010
  const result = await appendSessionEntry(
2011
2011
  projectPath,
2012
2012
  input.session,
@@ -2020,7 +2020,7 @@ async function handleAppendEntry(projectPath, input) {
2020
2020
  return mcpError("Error: session is required for non-decisions sections");
2021
2021
  }
2022
2022
  const { randomUUID: randomUUID10 } = await import("crypto");
2023
- const { emitCoreEvent } = await import("./state-events-PTWAEGJ2.js");
2023
+ const { emitCoreEvent } = await import("./state-events-YLQEYOLI.js");
2024
2024
  const r = await emitCoreEvent(
2025
2025
  projectPath,
2026
2026
  {
@@ -2038,7 +2038,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
2038
2038
  if (!input.entryId) return mcpError("Error: entryId is required for update_entry_status action");
2039
2039
  if (!input.newStatus)
2040
2040
  return mcpError("Error: newStatus is required for update_entry_status action");
2041
- const { updateSessionEntryStatus } = await import("./dist-4CZLCE33.js");
2041
+ const { updateSessionEntryStatus } = await import("./dist-DTXVNQAY.js");
2042
2042
  const result = await updateSessionEntryStatus(
2043
2043
  projectPath,
2044
2044
  input.session,
@@ -2048,7 +2048,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
2048
2048
  );
2049
2049
  if (result.ok && input.section === "decisions" && input.newStatus === "resolved") {
2050
2050
  try {
2051
- const { emitApprovalResolved } = await import("./state-events-PTWAEGJ2.js");
2051
+ const { emitApprovalResolved } = await import("./state-events-YLQEYOLI.js");
2052
2052
  await emitApprovalResolved(projectPath, input.entryId, input.newStatus, {
2053
2053
  stream: input.stream
2054
2054
  });
@@ -2060,7 +2060,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
2060
2060
  async function handleReadSection(projectPath, input) {
2061
2061
  if (!input.session) return mcpError("Error: session is required for read_section action");
2062
2062
  if (!input.section) return mcpError("Error: section is required for read_section action");
2063
- const { readSessionSection } = await import("./dist-4CZLCE33.js");
2063
+ const { readSessionSection } = await import("./dist-DTXVNQAY.js");
2064
2064
  const result = await readSessionSection(
2065
2065
  projectPath,
2066
2066
  input.session,
@@ -2070,13 +2070,13 @@ async function handleReadSection(projectPath, input) {
2070
2070
  }
2071
2071
  async function handleReadSections(projectPath, input) {
2072
2072
  if (!input.session) return mcpError("Error: session is required for read_sections action");
2073
- const { readSessionSections } = await import("./dist-4CZLCE33.js");
2073
+ const { readSessionSections } = await import("./dist-DTXVNQAY.js");
2074
2074
  const result = await readSessionSections(projectPath, input.session);
2075
2075
  return resultToMcpResponse(result);
2076
2076
  }
2077
2077
  async function handleArchiveSession(projectPath, input) {
2078
2078
  if (!input.session) return mcpError("Error: session is required for archive_session action");
2079
- const { archiveSession } = await import("./dist-4CZLCE33.js");
2079
+ const { archiveSession } = await import("./dist-DTXVNQAY.js");
2080
2080
  const { buildArchiveHooks } = await import("@harness-engineering/orchestrator");
2081
2081
  const hooks = buildArchiveHooks({ projectPath });
2082
2082
  const result = await archiveSession(projectPath, input.session, { hooks });
@@ -2119,7 +2119,7 @@ async function handlePhaseComplete(projectPath, input) {
2119
2119
  async function handleTaskTransition(projectPath, input) {
2120
2120
  if (!input.taskId) return mcpError("Error: taskId is required for task-transition action");
2121
2121
  if (!input.toLane) return mcpError("Error: toLane is required for task-transition action");
2122
- const { eventSourcing } = await import("./dist-4CZLCE33.js");
2122
+ const { eventSourcing } = await import("./dist-DTXVNQAY.js");
2123
2123
  const scope = { stream: input.stream, session: input.session };
2124
2124
  if (input.dependsOn) {
2125
2125
  const reg = await eventSourcing.registerTask(projectPath, input.taskId, input.dependsOn, scope);
@@ -2183,7 +2183,7 @@ var listStreamsDefinition = {
2183
2183
  };
2184
2184
  async function handleListStreams(input) {
2185
2185
  try {
2186
- const { listStreams, loadStreamIndex } = await import("./dist-4CZLCE33.js");
2186
+ const { listStreams, loadStreamIndex } = await import("./dist-DTXVNQAY.js");
2187
2187
  const projectPath = sanitizePath(input.path);
2188
2188
  const indexResult = await loadStreamIndex(projectPath);
2189
2189
  const streamsResult = await listStreams(projectPath);
@@ -2221,7 +2221,7 @@ var checkPhaseGateDefinition = {
2221
2221
  };
2222
2222
  async function handleCheckPhaseGate(input) {
2223
2223
  try {
2224
- const { runCheckPhaseGate } = await import("./check-phase-gate-IXLFZ6YH.js");
2224
+ const { runCheckPhaseGate } = await import("./check-phase-gate-GTYAJ2YL.js");
2225
2225
  const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
2226
2226
  if (result.ok) {
2227
2227
  return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
@@ -2277,7 +2277,7 @@ async function handleValidateCrossCheck(input) {
2277
2277
  };
2278
2278
  }
2279
2279
  try {
2280
- const { runCrossCheck } = await import("./validate-cross-check-YYVYMSPA.js");
2280
+ const { runCrossCheck } = await import("./validate-cross-check-QJGCDWRO.js");
2281
2281
  const specsDir = path12.resolve(projectPath, input.specsDir ?? "docs/specs");
2282
2282
  if (!specsDir.startsWith(projectPath)) {
2283
2283
  return {
@@ -3100,8 +3100,8 @@ async function handleGenerateSlashCommands(input) {
3100
3100
  // src/mcp/resources/state.ts
3101
3101
  async function getStateResource(projectRoot) {
3102
3102
  try {
3103
- const { migrateToStreams } = await import("./dist-4CZLCE33.js");
3104
- const { readHarnessState } = await import("./state-events-PTWAEGJ2.js");
3103
+ const { migrateToStreams } = await import("./dist-DTXVNQAY.js");
3104
+ const { readHarnessState } = await import("./state-events-YLQEYOLI.js");
3105
3105
  await migrateToStreams(projectRoot);
3106
3106
  const result = await readHarnessState(projectRoot);
3107
3107
  if (result.ok) {
@@ -4121,7 +4121,7 @@ var generateAgentDefinitionsDefinition = {
4121
4121
  }
4122
4122
  };
4123
4123
  async function handleGenerateAgentDefinitions(input) {
4124
- const { generateAgentDefinitions } = await import("./generate-agent-definitions-CCREQZEA.js");
4124
+ const { generateAgentDefinitions } = await import("./generate-agent-definitions-4DULEX3H.js");
4125
4125
  const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
4126
4126
  const results = generateAgentDefinitions({
4127
4127
  platforms: [...platforms],
@@ -4838,7 +4838,7 @@ async function handleManageRoadmap(input) {
4838
4838
  release,
4839
4839
  promoteFeature,
4840
4840
  groomRoadmap
4841
- } = await import("./dist-4CZLCE33.js");
4841
+ } = await import("./dist-DTXVNQAY.js");
4842
4842
  const { Ok: Ok2 } = await import("./dist-S3KCRI7X.js");
4843
4843
  const projectPath = projectPathPre;
4844
4844
  const deps = {
@@ -5282,7 +5282,7 @@ async function handleTransition(validInput, projectPath, id) {
5282
5282
  const transition = transitionResult.data;
5283
5283
  const prompt = renderTransition(transition);
5284
5284
  try {
5285
- const { saveHandoff } = await import("./dist-4CZLCE33.js");
5285
+ const { saveHandoff } = await import("./dist-DTXVNQAY.js");
5286
5286
  await saveHandoff(
5287
5287
  projectPath,
5288
5288
  {
@@ -5363,7 +5363,7 @@ async function handleEmitInteraction(input) {
5363
5363
  }
5364
5364
  async function recordInteraction(projectPath, id, type, decision, stream) {
5365
5365
  try {
5366
- const { emitCoreEvent, emitUserInputCaptured, emitApprovalRequested } = await import("./state-events-PTWAEGJ2.js");
5366
+ const { emitCoreEvent, emitUserInputCaptured, emitApprovalRequested } = await import("./state-events-YLQEYOLI.js");
5367
5367
  await emitCoreEvent(
5368
5368
  projectPath,
5369
5369
  {
@@ -5524,10 +5524,10 @@ async function handleGatherContext(input) {
5524
5524
  input.include ?? ["state", "learnings", "handoff", "graph", "validation", "businessKnowledge"]
5525
5525
  );
5526
5526
  const errors = [];
5527
- const statePromise = includeSet.has("state") ? import("./state-events-PTWAEGJ2.js").then(
5527
+ const statePromise = includeSet.has("state") ? import("./state-events-YLQEYOLI.js").then(
5528
5528
  (m) => m.readHarnessState(projectPath, { session: input.session })
5529
5529
  ) : Promise.resolve(null);
5530
- const learningsPromise = includeSet.has("learnings") ? import("./dist-4CZLCE33.js").then(
5530
+ const learningsPromise = includeSet.has("learnings") ? import("./dist-DTXVNQAY.js").then(
5531
5531
  (core) => core.loadBudgetedLearnings(projectPath, {
5532
5532
  intent: input.intent,
5533
5533
  tokenBudget: input.learningsBudget ?? 1e3,
@@ -5536,7 +5536,7 @@ async function handleGatherContext(input) {
5536
5536
  ...input.depth !== void 0 && { depth: input.depth }
5537
5537
  })
5538
5538
  ) : Promise.resolve(null);
5539
- const handoffPromise = includeSet.has("handoff") ? import("./dist-4CZLCE33.js").then(
5539
+ const handoffPromise = includeSet.has("handoff") ? import("./dist-DTXVNQAY.js").then(
5540
5540
  (core) => core.loadHandoff(projectPath, void 0, input.session)
5541
5541
  ) : Promise.resolve(null);
5542
5542
  const graphPromise = includeSet.has("graph") ? (async () => {
@@ -5580,15 +5580,15 @@ async function handleGatherContext(input) {
5580
5580
  context: contextBlocks
5581
5581
  };
5582
5582
  })() : Promise.resolve(null);
5583
- const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-4CZLCE33.js").then(
5583
+ const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-DTXVNQAY.js").then(
5584
5584
  (core) => core.readSessionSections(projectPath, input.session)
5585
5585
  ) : Promise.resolve(null);
5586
5586
  const shouldIncludeEvents = input.includeEvents !== void 0 ? input.includeEvents : includeSet.has("events") || !!input.session && !input.include;
5587
- const eventsPromise = shouldIncludeEvents ? import("./state-events-PTWAEGJ2.js").then(
5587
+ const eventsPromise = shouldIncludeEvents ? import("./state-events-YLQEYOLI.js").then(
5588
5588
  (m) => m.readAuditTimeline(projectPath, { session: input.session })
5589
5589
  ) : Promise.resolve(null);
5590
5590
  const validationPromise = includeSet.has("validation") ? (async () => {
5591
- const { handleValidateProject: handleValidateProject2 } = await import("./validate-H5SB7X3Z.js");
5591
+ const { handleValidateProject: handleValidateProject2 } = await import("./validate-35GZKAOF.js");
5592
5592
  const result = await handleValidateProject2({ path: projectPath });
5593
5593
  const first = result.content[0];
5594
5594
  return first ? JSON.parse(first.text) : null;
@@ -5691,7 +5691,7 @@ async function handleGatherContext(input) {
5691
5691
  };
5692
5692
  if (input.session) {
5693
5693
  try {
5694
- const core = await import("./dist-4CZLCE33.js");
5694
+ const core = await import("./dist-DTXVNQAY.js");
5695
5695
  core.updateSessionIndex(
5696
5696
  projectPath,
5697
5697
  input.session,
@@ -5889,7 +5889,7 @@ async function handleReviewChanges(input) {
5889
5889
  }
5890
5890
  }
5891
5891
  async function runQuickReview(projectPath, diff, diffLines, downgraded, offset, limit) {
5892
- const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-OODAP2G2.js");
5892
+ const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-GEVH6CY3.js");
5893
5893
  const result = await handleAnalyzeDiff2({ diff, path: projectPath });
5894
5894
  const firstContent = result.content[0];
5895
5895
  if (!firstContent) throw new Error("Empty analyze_diff response");
@@ -5924,7 +5924,7 @@ function extractFileCount(diffParsed) {
5924
5924
  return files?.length ?? 0;
5925
5925
  }
5926
5926
  async function runStandardReview(projectPath, diff, diffLines, downgraded, offset, limit) {
5927
- const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-OODAP2G2.js");
5927
+ const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-GEVH6CY3.js");
5928
5928
  const [diffResult, reviewResult] = await Promise.all([
5929
5929
  handleAnalyzeDiff2({ diff, path: projectPath }),
5930
5930
  handleCreateSelfReview2({ path: projectPath, diff })
@@ -5959,7 +5959,7 @@ async function runStandardReview(projectPath, diff, diffLines, downgraded, offse
5959
5959
  };
5960
5960
  }
5961
5961
  async function runDeepReview(projectPath, diff, diffLines, _downgraded, offset, limit) {
5962
- const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-3QPHMWPC.js");
5962
+ const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-QEYZXEMW.js");
5963
5963
  const result = await handleRunCodeReview2({
5964
5964
  path: projectPath,
5965
5965
  diff,
@@ -6221,7 +6221,7 @@ async function handlePlanParallelization(input) {
6221
6221
  try {
6222
6222
  const projectPath = sanitizePath(input.path);
6223
6223
  const { PlanTaskSchema } = await import("./dist-S3KCRI7X.js");
6224
- const { planParallelization, validatePlanTasks } = await import("./dist-4CZLCE33.js");
6224
+ const { planParallelization, validatePlanTasks } = await import("./dist-DTXVNQAY.js");
6225
6225
  const parsed = PlanTaskSchema.array().safeParse(input.tasks);
6226
6226
  if (!parsed.success) {
6227
6227
  return validationError(parsed.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`));
@@ -6333,7 +6333,7 @@ async function handleDetectStaleConstraints(input) {
6333
6333
  ]
6334
6334
  };
6335
6335
  }
6336
- const { detectStaleConstraints } = await import("./dist-4CZLCE33.js");
6336
+ const { detectStaleConstraints } = await import("./dist-DTXVNQAY.js");
6337
6337
  const result = detectStaleConstraints(
6338
6338
  store,
6339
6339
  windowDays,
@@ -6464,10 +6464,10 @@ function countCriticalFindings(securityData) {
6464
6464
  return findings.filter((f) => f.severity === "error").length;
6465
6465
  }
6466
6466
  async function runHealthChecks(projectPath) {
6467
- const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-27X2FSZZ.js");
6468
- const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-3VYDN7MQ.js");
6469
- const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-OX5LSM4S.js");
6470
- const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-7YW3UK2C.js");
6467
+ const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-ENSWO4AX.js");
6468
+ const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-D7PWJDXA.js");
6469
+ const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-6JK3TCWY.js");
6470
+ const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-CLZZRKND.js");
6471
6471
  const [assessResult, depsResult, entropyResult, securityResult] = await Promise.all([
6472
6472
  handleAssessProject2({
6473
6473
  path: projectPath,
@@ -7331,7 +7331,7 @@ async function handleGetDecayTrends(input) {
7331
7331
  };
7332
7332
  }
7333
7333
  try {
7334
- const core = await import("./dist-4CZLCE33.js");
7334
+ const core = await import("./dist-DTXVNQAY.js");
7335
7335
  const { TimelineManager } = core;
7336
7336
  const manager = new TimelineManager(projectPath);
7337
7337
  const timeline = manager.load();
@@ -7466,7 +7466,7 @@ async function handleCodeOutline(input) {
7466
7466
  };
7467
7467
  }
7468
7468
  try {
7469
- const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-4CZLCE33.js");
7469
+ const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-DTXVNQAY.js");
7470
7470
  const { stat } = await import("fs/promises");
7471
7471
  const stats = await stat(targetPath).catch(() => null);
7472
7472
  if (stats?.isFile()) {
@@ -7485,7 +7485,7 @@ async function handleCodeOutline(input) {
7485
7485
  })
7486
7486
  );
7487
7487
  fileStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
7488
- const { paginate: paginate2 } = await import("./dist-4CZLCE33.js");
7488
+ const { paginate: paginate2 } = await import("./dist-DTXVNQAY.js");
7489
7489
  const paged = paginate2(fileStats, input.offset ?? 0, input.limit ?? 30);
7490
7490
  const results = [];
7491
7491
  for (const entry of paged.items) {
@@ -7558,7 +7558,7 @@ async function handleCodeSearch(input) {
7558
7558
  };
7559
7559
  }
7560
7560
  try {
7561
- const { searchSymbols } = await import("./dist-4CZLCE33.js");
7561
+ const { searchSymbols } = await import("./dist-DTXVNQAY.js");
7562
7562
  const result = await searchSymbols(input.query, directory, input.glob);
7563
7563
  const lines = [`Search: "${result.query}" \u2014 ${result.matches.length} matches`];
7564
7564
  for (const match of result.matches) {
@@ -7627,7 +7627,7 @@ async function handleCodeUnfold(input) {
7627
7627
  }
7628
7628
  try {
7629
7629
  if (input.symbol) {
7630
- const { unfoldSymbol } = await import("./dist-4CZLCE33.js");
7630
+ const { unfoldSymbol } = await import("./dist-DTXVNQAY.js");
7631
7631
  const result = await unfoldSymbol(filePath, input.symbol);
7632
7632
  const header = result.warning ? `${result.file}:${result.startLine}-${result.endLine} ${result.warning}
7633
7633
  ` : `${result.file}:${result.startLine}-${result.endLine}
@@ -7635,7 +7635,7 @@ async function handleCodeUnfold(input) {
7635
7635
  return { content: [{ type: "text", text: header + result.content }] };
7636
7636
  }
7637
7637
  if (input.startLine != null && input.endLine != null) {
7638
- const { unfoldRange } = await import("./dist-4CZLCE33.js");
7638
+ const { unfoldRange } = await import("./dist-DTXVNQAY.js");
7639
7639
  const result = await unfoldRange(filePath, input.startLine, input.endLine);
7640
7640
  const header = `${result.file}:${result.startLine}-${result.endLine}
7641
7641
  `;
@@ -7820,7 +7820,7 @@ async function handlePredictFailures(input) {
7820
7820
  };
7821
7821
  }
7822
7822
  try {
7823
- const core = await import("./dist-4CZLCE33.js");
7823
+ const core = await import("./dist-DTXVNQAY.js");
7824
7824
  const { TimelineManager, PredictionEngine, SpecImpactEstimator } = core;
7825
7825
  const manager = new TimelineManager(projectPath);
7826
7826
  const includeRoadmap = input.includeRoadmap !== false;
@@ -8929,7 +8929,7 @@ async function handleDetectConstraintEmergence(input) {
8929
8929
  }
8930
8930
  const nodePath = await import("path");
8931
8931
  const historyPath = nodePath.resolve(projectPath, ".harness/arch/violation-history.json");
8932
- const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-4CZLCE33.js");
8932
+ const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-DTXVNQAY.js");
8933
8933
  const manager = new ViolationHistoryManager(historyPath);
8934
8934
  const history = manager.load();
8935
8935
  const options = { windowWeeks, minOccurrences };
@@ -9017,7 +9017,7 @@ async function handleRunCIChecks(input) {
9017
9017
  };
9018
9018
  }
9019
9019
  try {
9020
- const { runCIChecks } = await import("./dist-4CZLCE33.js");
9020
+ const { runCIChecks } = await import("./dist-DTXVNQAY.js");
9021
9021
  const skip = input.checks ? VALID_CHECKS.filter((c) => !input.checks.includes(c)) : [];
9022
9022
  const result = await runCIChecks({
9023
9023
  projectRoot: projectPath,
@@ -9079,7 +9079,7 @@ async function handleGenerateBlueprint(input) {
9079
9079
  };
9080
9080
  }
9081
9081
  try {
9082
- const { ProjectScanner } = await import("./dist-4CZLCE33.js");
9082
+ const { ProjectScanner } = await import("./dist-DTXVNQAY.js");
9083
9083
  const scanner = new ProjectScanner(projectPath);
9084
9084
  const data = await scanner.scan();
9085
9085
  return {
@@ -9282,7 +9282,7 @@ function validateProposalCrossFields(input) {
9282
9282
  }
9283
9283
  async function loadCoreProposalApi() {
9284
9284
  try {
9285
- const core = await import("./dist-4CZLCE33.js");
9285
+ const core = await import("./dist-DTXVNQAY.js");
9286
9286
  return {
9287
9287
  createProposal: core.createProposal,
9288
9288
  ProposalConflictError: core.ProposalConflictError
@@ -19880,7 +19880,7 @@ async function handleValidateStrategy(input) {
19880
19880
  } catch (error) {
19881
19881
  return mcpError2(error instanceof Error ? error.message : String(error));
19882
19882
  }
19883
- const { validateStrategy } = await import("./dist-4CZLCE33.js");
19883
+ const { validateStrategy } = await import("./dist-DTXVNQAY.js");
19884
19884
  const result = await validateStrategy(projectPath);
19885
19885
  if (!result.ok) {
19886
19886
  return mcpJson({ present: true, valid: false, error: result.error.message });
@@ -19905,7 +19905,7 @@ async function handleReadStrategy(input) {
19905
19905
  } catch (error) {
19906
19906
  return mcpError2(error instanceof Error ? error.message : String(error));
19907
19907
  }
19908
- const core = await import("./dist-4CZLCE33.js");
19908
+ const core = await import("./dist-DTXVNQAY.js");
19909
19909
  const validation = await core.validateStrategy(projectPath);
19910
19910
  if (!validation.ok) {
19911
19911
  return mcpJson({ present: true, valid: false, error: validation.error.message });
@@ -19957,7 +19957,7 @@ async function handleWriteStrategy(input) {
19957
19957
  } catch (error) {
19958
19958
  return mcpError2(error instanceof Error ? error.message : String(error));
19959
19959
  }
19960
- const core = await import("./dist-4CZLCE33.js");
19960
+ const core = await import("./dist-DTXVNQAY.js");
19961
19961
  try {
19962
19962
  core.writeStrategyDoc(input.doc, {
19963
19963
  cwd: projectPath,
@@ -20001,7 +20001,7 @@ async function handleSeedPulseFromStrategy(input) {
20001
20001
  } catch (error) {
20002
20002
  return mcpError3(error instanceof Error ? error.message : String(error));
20003
20003
  }
20004
- const core = await import("./dist-4CZLCE33.js");
20004
+ const core = await import("./dist-DTXVNQAY.js");
20005
20005
  const seed = core.seedFromStrategy({ cwd: projectPath });
20006
20006
  return mcpJson2(seed);
20007
20007
  }
@@ -20036,7 +20036,7 @@ async function handleWritePulseConfig(input) {
20036
20036
  return mcpError3(error instanceof Error ? error.message : String(error));
20037
20037
  }
20038
20038
  const resolvedConfigPath = input.configPath !== void 0 ? path55.isAbsolute(input.configPath) ? input.configPath : path55.join(projectPath, input.configPath) : path55.join(projectPath, "harness.config.json");
20039
- const core = await import("./dist-4CZLCE33.js");
20039
+ const core = await import("./dist-DTXVNQAY.js");
20040
20040
  try {
20041
20041
  core.writePulseConfig(input.config, {
20042
20042
  configPath: resolvedConfigPath,
@@ -20085,7 +20085,7 @@ async function handleAcquireCompoundLock(input) {
20085
20085
  } catch (error) {
20086
20086
  return mcpError4(error instanceof Error ? error.message : String(error));
20087
20087
  }
20088
- const core = await import("./dist-4CZLCE33.js");
20088
+ const core = await import("./dist-DTXVNQAY.js");
20089
20089
  try {
20090
20090
  const handle = core.acquireCompoundLock(
20091
20091
  input.category,
@@ -20451,7 +20451,7 @@ async function appendUpdateNotification(result, resolvedRoot) {
20451
20451
  shouldRunCheck,
20452
20452
  readCheckState,
20453
20453
  spawnBackgroundCheck
20454
- } = await import("./dist-4CZLCE33.js");
20454
+ } = await import("./dist-DTXVNQAY.js");
20455
20455
  const { CLI_VERSION } = await import("./version-CUI434OP.js");
20456
20456
  const configInterval = readConfigInterval(resolvedRoot);
20457
20457
  const DEFAULT_INTERVAL = 864e5;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  event_sourcing_exports,
3
3
  init_dist
4
- } from "./chunk-CTMHHMHQ.js";
4
+ } from "./chunk-6SP665CR.js";
5
5
  import {
6
6
  Ok
7
7
  } from "./chunk-LHWBQD7F.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KET4QQZB.js";
4
4
  import {
5
5
  init_dist
6
- } from "./chunk-CTMHHMHQ.js";
6
+ } from "./chunk-6SP665CR.js";
7
7
  import {
8
8
  Err,
9
9
  Ok