@harness-engineering/cli 1.28.0 → 1.28.1

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 (51) hide show
  1. package/dist/{agents-md-76IEMV6O.js → agents-md-6SAMHE7H.js} +3 -3
  2. package/dist/{architecture-5GVJRRUD.js → architecture-5YR52NSV.js} +4 -4
  3. package/dist/{assess-project-WDUFL7SO.js → assess-project-5X7TYQFM.js} +1 -1
  4. package/dist/bin/harness-mcp.js +15 -15
  5. package/dist/bin/harness.js +25 -25
  6. package/dist/{check-phase-gate-QR3ONJYP.js → check-phase-gate-PLV2VDOL.js} +4 -4
  7. package/dist/{chunk-WPSM7WT6.js → chunk-2IBXUG6J.js} +2 -2
  8. package/dist/{chunk-TFNQ72RF.js → chunk-5ME3WG3G.js} +5 -5
  9. package/dist/{chunk-Z7ZF2XDL.js → chunk-6GXSJGSW.js} +3 -3
  10. package/dist/{chunk-77OMOFZL.js → chunk-6L2BU4BP.js} +1 -1
  11. package/dist/{chunk-OPOSSZJS.js → chunk-74YADB7T.js} +92 -92
  12. package/dist/{chunk-E7QD4YHA.js → chunk-7JQ7HLM4.js} +8 -8
  13. package/dist/{chunk-L4RURCSF.js → chunk-BFBZK6BC.js} +6 -6
  14. package/dist/{chunk-AJG2LCMA.js → chunk-BYS3TQOO.js} +1 -1
  15. package/dist/{chunk-VITLE3PS.js → chunk-DXGI7DL3.js} +1 -1
  16. package/dist/{chunk-QZ46CI6E.js → chunk-ELJ2MXMO.js} +9 -9
  17. package/dist/{chunk-H43UQY6B.js → chunk-HT7HYYGT.js} +1 -1
  18. package/dist/{chunk-LINAFNIK.js → chunk-JNKALGRM.js} +5 -5
  19. package/dist/{chunk-CS7K6ZQ3.js → chunk-JZST2WZS.js} +2 -2
  20. package/dist/{chunk-KLE6FXWM.js → chunk-KJD4J54I.js} +1 -1
  21. package/dist/{chunk-Z63IDQ7Y.js → chunk-MTPHNOJW.js} +36 -36
  22. package/dist/{chunk-YZZVOT7I.js → chunk-PFM3BVVU.js} +1 -1
  23. package/dist/{chunk-USG7DV5N.js → chunk-QDRBWVVY.js} +2 -2
  24. package/dist/{chunk-D25P6763.js → chunk-R2CBBZA6.js} +1 -1
  25. package/dist/{chunk-6JBJ5FSW.js → chunk-RFYF7TJS.js} +1 -1
  26. package/dist/{chunk-3WLXR23L.js → chunk-RYDPFIJY.js} +1 -1
  27. package/dist/{chunk-X7XQ3ELM.js → chunk-S2WB4LE7.js} +5 -0
  28. package/dist/{chunk-K5ZOBBQB.js → chunk-SITVRO7K.js} +9 -9
  29. package/dist/{chunk-ILVO6LZY.js → chunk-XHOGGZS7.js} +1 -1
  30. package/dist/{chunk-DHGL3SF2.js → chunk-YJE23GRZ.js} +1 -1
  31. package/dist/{chunk-OQS7KURX.js → chunk-ZYLBIDLE.js} +1 -1
  32. package/dist/{ci-workflow-GYQXE5X4.js → ci-workflow-7T2XKB3P.js} +3 -3
  33. package/dist/{dist-BP6E6QGG.js → dist-42AYXCAK.js} +1 -1
  34. package/dist/{dist-46VOJIG4.js → dist-77VNTHWV.js} +2 -2
  35. package/dist/{docs-CVQMSMQC.js → docs-MSIJ6SDO.js} +4 -4
  36. package/dist/{engine-23PJMRHA.js → engine-F4P5RBE4.js} +3 -3
  37. package/dist/{entropy-K2YTZFCP.js → entropy-GSUTIORR.js} +3 -3
  38. package/dist/{feedback-6HP42GTK.js → feedback-NST6T4HI.js} +1 -1
  39. package/dist/{generate-agent-definitions-6RJKL6VW.js → generate-agent-definitions-BOUGQIPA.js} +4 -4
  40. package/dist/{graph-loader-BI3OFFFS.js → graph-loader-IAUPGLRV.js} +1 -1
  41. package/dist/index.js +25 -25
  42. package/dist/{loader-U2WEC3PZ.js → loader-6QTJC7IN.js} +3 -3
  43. package/dist/{mcp-N6XVWPXJ.js → mcp-QFBGTUX6.js} +15 -15
  44. package/dist/{performance-T3XAESWR.js → performance-B2NAAIE5.js} +4 -4
  45. package/dist/{review-pipeline-HTC5HA5X.js → review-pipeline-6EYMBS6B.js} +3 -3
  46. package/dist/{runtime-UFXMNN3Q.js → runtime-VFZK6BCZ.js} +3 -3
  47. package/dist/{scan-XRGMTO6K.js → scan-DB6FNYGG.js} +1 -1
  48. package/dist/{security-ROK5IFDA.js → security-HRNTYHPM.js} +1 -1
  49. package/dist/{validate-IJHHQHT5.js → validate-YEMAFWJE.js} +4 -4
  50. package/dist/{validate-cross-check-LUQYIA46.js → validate-cross-check-DGHTJFVH.js} +3 -3
  51. package/package.json +6 -6
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  findConfigFile,
9
9
  loadConfig
10
- } from "./chunk-KLE6FXWM.js";
10
+ } from "./chunk-KJD4J54I.js";
11
11
  import {
12
12
  init_dist
13
- } from "./chunk-6JBJ5FSW.js";
13
+ } from "./chunk-RFYF7TJS.js";
14
14
  import {
15
15
  Ok
16
16
  } from "./chunk-RL4VMEXL.js";
@@ -35,7 +35,7 @@ var checkPerformanceDefinition = {
35
35
  };
36
36
  async function handleCheckPerformance(input) {
37
37
  try {
38
- const { EntropyAnalyzer } = await import("./dist-46VOJIG4.js");
38
+ const { EntropyAnalyzer } = await import("./dist-77VNTHWV.js");
39
39
  const typeFilter = input.type ?? "all";
40
40
  const projectPath = sanitizePath(input.path);
41
41
  let entryPoints;
@@ -58,10 +58,10 @@ async function handleCheckPerformance(input) {
58
58
  });
59
59
  let graphOptions;
60
60
  try {
61
- const { loadGraphStore } = await import("./graph-loader-BI3OFFFS.js");
61
+ const { loadGraphStore } = await import("./graph-loader-IAUPGLRV.js");
62
62
  const store = await loadGraphStore(projectPath);
63
63
  if (store) {
64
- const { GraphComplexityAdapter, GraphCouplingAdapter } = await import("./dist-BP6E6QGG.js");
64
+ const { GraphComplexityAdapter, GraphCouplingAdapter } = await import("./dist-42AYXCAK.js");
65
65
  const complexityAdapter = new GraphComplexityAdapter(store);
66
66
  const couplingAdapter = new GraphCouplingAdapter(store);
67
67
  graphOptions = {
@@ -98,7 +98,7 @@ var getPerfBaselinesDefinition = {
98
98
  };
99
99
  async function handleGetPerfBaselines(input) {
100
100
  try {
101
- const { BaselineManager } = await import("./dist-46VOJIG4.js");
101
+ const { BaselineManager } = await import("./dist-77VNTHWV.js");
102
102
  const manager = new BaselineManager(sanitizePath(input.path));
103
103
  const baselines = manager.load();
104
104
  return resultToMcpResponse(
@@ -146,7 +146,7 @@ var updatePerfBaselinesDefinition = {
146
146
  };
147
147
  async function handleUpdatePerfBaselines(input) {
148
148
  try {
149
- const { BaselineManager } = await import("./dist-46VOJIG4.js");
149
+ const { BaselineManager } = await import("./dist-77VNTHWV.js");
150
150
  const manager = new BaselineManager(sanitizePath(input.path));
151
151
  manager.save(input.results, input.commitHash);
152
152
  const updated = manager.load();
@@ -176,7 +176,7 @@ var getCriticalPathsDefinition = {
176
176
  };
177
177
  async function handleGetCriticalPaths(input) {
178
178
  try {
179
- const { CriticalPathResolver } = await import("./dist-46VOJIG4.js");
179
+ const { CriticalPathResolver } = await import("./dist-77VNTHWV.js");
180
180
  const resolver = new CriticalPathResolver(sanitizePath(input.path));
181
181
  const result = await resolver.resolve();
182
182
  return resultToMcpResponse(Ok(result));
@@ -50,7 +50,7 @@ async function handleAssessProject(input) {
50
50
  let validateResult = null;
51
51
  if (checksToRun.has("validate")) {
52
52
  try {
53
- const { handleValidateProject } = await import("./validate-IJHHQHT5.js");
53
+ const { handleValidateProject } = await import("./validate-YEMAFWJE.js");
54
54
  const result = await handleValidateProject({ path: projectPath });
55
55
  const first = result.content[0];
56
56
  const parsed = first ? JSON.parse(first.text) : {};
@@ -75,7 +75,7 @@ async function handleAssessProject(input) {
75
75
  parallelChecks.push(
76
76
  (async () => {
77
77
  try {
78
- const { handleCheckDependencies } = await import("./architecture-5GVJRRUD.js");
78
+ const { handleCheckDependencies } = await import("./architecture-5YR52NSV.js");
79
79
  const result = await handleCheckDependencies({ path: projectPath });
80
80
  const first = result.content[0];
81
81
  const parsed = first ? JSON.parse(first.text) : {};
@@ -102,7 +102,7 @@ async function handleAssessProject(input) {
102
102
  parallelChecks.push(
103
103
  (async () => {
104
104
  try {
105
- const { handleCheckDocs } = await import("./docs-CVQMSMQC.js");
105
+ const { handleCheckDocs } = await import("./docs-MSIJ6SDO.js");
106
106
  const result = await handleCheckDocs({ path: projectPath, scope: "coverage" });
107
107
  const first = result.content[0];
108
108
  const parsed = first ? JSON.parse(first.text) : {};
@@ -129,7 +129,7 @@ async function handleAssessProject(input) {
129
129
  parallelChecks.push(
130
130
  (async () => {
131
131
  try {
132
- const { handleDetectEntropy } = await import("./entropy-K2YTZFCP.js");
132
+ const { handleDetectEntropy } = await import("./entropy-GSUTIORR.js");
133
133
  const result = await handleDetectEntropy({ path: projectPath, type: "all" });
134
134
  const first = result.content[0];
135
135
  const parsed = first ? JSON.parse(first.text) : {};
@@ -156,7 +156,7 @@ async function handleAssessProject(input) {
156
156
  parallelChecks.push(
157
157
  (async () => {
158
158
  try {
159
- const { handleRunSecurityScan } = await import("./security-ROK5IFDA.js");
159
+ const { handleRunSecurityScan } = await import("./security-HRNTYHPM.js");
160
160
  const result = await handleRunSecurityScan({ path: projectPath });
161
161
  const first = result.content[0];
162
162
  const parsed = first ? JSON.parse(first.text) : {};
@@ -188,7 +188,7 @@ async function handleAssessProject(input) {
188
188
  parallelChecks.push(
189
189
  (async () => {
190
190
  try {
191
- const { handleCheckPerformance } = await import("./performance-T3XAESWR.js");
191
+ const { handleCheckPerformance } = await import("./performance-B2NAAIE5.js");
192
192
  const result = await handleCheckPerformance({ path: projectPath });
193
193
  if ("isError" in result && result.isError) {
194
194
  const msg = result.content[0]?.text ?? "Performance check failed";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-6JBJ5FSW.js";
3
+ } from "./chunk-RFYF7TJS.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
@@ -15,7 +15,7 @@ function evictIfNeeded() {
15
15
  }
16
16
  }
17
17
  async function doLoadGraphStore(projectRoot) {
18
- const { GraphStore } = await import("./dist-BP6E6QGG.js");
18
+ const { GraphStore } = await import("./dist-42AYXCAK.js");
19
19
  const graphDir = path.join(projectRoot, ".harness", "graph");
20
20
  const store = new GraphStore();
21
21
  const loaded = await store.load(graphDir);
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  findConfigFile,
9
9
  loadConfig
10
- } from "./chunk-KLE6FXWM.js";
10
+ } from "./chunk-KJD4J54I.js";
11
11
  import {
12
12
  init_dist
13
- } from "./chunk-6JBJ5FSW.js";
13
+ } from "./chunk-RFYF7TJS.js";
14
14
  import {
15
15
  Ok
16
16
  } from "./chunk-RL4VMEXL.js";
@@ -50,18 +50,18 @@ async function handleCheckDocs(input) {
50
50
  const projectPath = sanitizePath(input.path);
51
51
  const scope = input.scope ?? "coverage";
52
52
  if (scope === "integrity") {
53
- const { validateKnowledgeMap } = await import("./dist-46VOJIG4.js");
53
+ const { validateKnowledgeMap } = await import("./dist-77VNTHWV.js");
54
54
  const result2 = await validateKnowledgeMap(projectPath);
55
55
  return resultToMcpResponse(result2);
56
56
  }
57
57
  if (scope === "all") {
58
- const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-46VOJIG4.js");
58
+ const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-77VNTHWV.js");
59
59
  const domain2 = input.domain ?? "src";
60
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-BI3OFFFS.js");
60
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-IAUPGLRV.js");
61
61
  const store2 = await loadGraphStore2(projectPath);
62
62
  let graphCoverage2;
63
63
  if (store2) {
64
- const { Assembler } = await import("./dist-BP6E6QGG.js");
64
+ const { Assembler } = await import("./dist-42AYXCAK.js");
65
65
  const assembler = new Assembler(store2);
66
66
  const report = assembler.checkCoverage();
67
67
  graphCoverage2 = {
@@ -94,13 +94,13 @@ async function handleCheckDocs(input) {
94
94
  }
95
95
  return resultToMcpResponse(Ok({ coverage, integrity }));
96
96
  }
97
- const { checkDocCoverage } = await import("./dist-46VOJIG4.js");
97
+ const { checkDocCoverage } = await import("./dist-77VNTHWV.js");
98
98
  const domain = input.domain ?? "src";
99
- const { loadGraphStore } = await import("./graph-loader-BI3OFFFS.js");
99
+ const { loadGraphStore } = await import("./graph-loader-IAUPGLRV.js");
100
100
  const store = await loadGraphStore(projectPath);
101
101
  let graphCoverage;
102
102
  if (store) {
103
- const { Assembler } = await import("./dist-BP6E6QGG.js");
103
+ const { Assembler } = await import("./dist-42AYXCAK.js");
104
104
  const assembler = new Assembler(store);
105
105
  const report = assembler.checkCoverage();
106
106
  graphCoverage = {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-6JBJ5FSW.js";
3
+ } from "./chunk-RFYF7TJS.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-W6Y7ZW3Y.js";
7
7
  import {
8
8
  init_dist
9
- } from "./chunk-6JBJ5FSW.js";
9
+ } from "./chunk-RFYF7TJS.js";
10
10
  import {
11
11
  Ok
12
12
  } from "./chunk-RL4VMEXL.js";
@@ -14,10 +14,10 @@ import {
14
14
  // src/mcp/tools/entropy.ts
15
15
  init_dist();
16
16
  async function loadEntropyGraphOptions(projectPath) {
17
- const { loadGraphStore } = await import("./graph-loader-BI3OFFFS.js");
17
+ const { loadGraphStore } = await import("./graph-loader-IAUPGLRV.js");
18
18
  const store = await loadGraphStore(projectPath);
19
19
  if (!store) return void 0;
20
- const { GraphEntropyAdapter } = await import("./dist-BP6E6QGG.js");
20
+ const { GraphEntropyAdapter } = await import("./dist-42AYXCAK.js");
21
21
  const adapter = new GraphEntropyAdapter(store);
22
22
  const driftData = adapter.computeDriftData();
23
23
  const deadCodeData = adapter.computeDeadCodeData();
@@ -127,7 +127,7 @@ function buildSummaryResponse(report) {
127
127
  }
128
128
  async function handleDetectEntropy(input) {
129
129
  try {
130
- const { EntropyAnalyzer } = await import("./dist-46VOJIG4.js");
130
+ const { EntropyAnalyzer } = await import("./dist-77VNTHWV.js");
131
131
  const typeFilter = input.type ?? "all";
132
132
  const analyzer = new EntropyAnalyzer({
133
133
  rootDir: sanitizePath(input.path),
@@ -146,7 +146,7 @@ async function handleDetectEntropy(input) {
146
146
  return resultToMcpResponse(result);
147
147
  }
148
148
  if (!result.ok) return resultToMcpResponse(result);
149
- const { createFixes, applyFixes, generateSuggestions } = await import("./dist-46VOJIG4.js");
149
+ const { createFixes, applyFixes, generateSuggestions } = await import("./dist-77VNTHWV.js");
150
150
  const report = result.value;
151
151
  const deadCode = report.deadCode;
152
152
  const fixTypesConfig = input.fixTypes ? { fixTypes: input.fixTypes } : void 0;
@@ -27,7 +27,7 @@ var runSecurityScanDefinition = {
27
27
  };
28
28
  async function handleRunSecurityScan(input) {
29
29
  try {
30
- const core = await import("./dist-46VOJIG4.js");
30
+ const core = await import("./dist-77VNTHWV.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-46VOJIG4.js");
117
+ const core = await import("./dist-77VNTHWV.js");
118
118
  const projectRoot = sanitizePath(input.path);
119
119
  const manager = new core.SecurityTimelineManager(projectRoot);
120
120
  const trendOptions = {};
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ArchConfigSchema,
3
3
  init_dist
4
- } from "./chunk-6JBJ5FSW.js";
4
+ } from "./chunk-RFYF7TJS.js";
5
5
  import {
6
6
  Err,
7
7
  Ok
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  generateRuntime
3
- } from "./chunk-YZZVOT7I.js";
3
+ } from "./chunk-PFM3BVVU.js";
4
4
  import {
5
5
  generateAgentsMd
6
- } from "./chunk-77OMOFZL.js";
6
+ } from "./chunk-6L2BU4BP.js";
7
7
  import {
8
8
  generateCIWorkflow
9
- } from "./chunk-3WLXR23L.js";
9
+ } from "./chunk-RYDPFIJY.js";
10
10
  import {
11
11
  TemplateEngine
12
- } from "./chunk-OQS7KURX.js";
12
+ } from "./chunk-ZYLBIDLE.js";
13
13
  import {
14
14
  generate,
15
15
  validate
@@ -28,21 +28,21 @@ import {
28
28
  OutputMode,
29
29
  createCheckPhaseGateCommand,
30
30
  findFiles
31
- } from "./chunk-USG7DV5N.js";
31
+ } from "./chunk-QDRBWVVY.js";
32
32
  import {
33
33
  createGenerateAgentDefinitionsCommand,
34
34
  generateAgentDefinitions
35
- } from "./chunk-D25P6763.js";
35
+ } from "./chunk-R2CBBZA6.js";
36
36
  import {
37
37
  toKebabCase
38
38
  } from "./chunk-KET4QQZB.js";
39
39
  import {
40
40
  listPersonas,
41
41
  loadPersona
42
- } from "./chunk-H43UQY6B.js";
42
+ } from "./chunk-HT7HYYGT.js";
43
43
  import {
44
44
  createScanCommand
45
- } from "./chunk-DHGL3SF2.js";
45
+ } from "./chunk-YJE23GRZ.js";
46
46
  import {
47
47
  appendFrameworkAgents,
48
48
  captureHealthSnapshot,
@@ -56,17 +56,17 @@ import {
56
56
  loadCachedSnapshot,
57
57
  persistToolingConfig,
58
58
  recommend
59
- } from "./chunk-OPOSSZJS.js";
59
+ } from "./chunk-74YADB7T.js";
60
60
  import {
61
61
  loadGraphStore
62
- } from "./chunk-VITLE3PS.js";
62
+ } from "./chunk-DXGI7DL3.js";
63
63
  import {
64
64
  loadOrRebuildIndex
65
65
  } from "./chunk-27AJKSQY.js";
66
66
  import {
67
67
  findConfigFile,
68
68
  resolveConfig
69
- } from "./chunk-KLE6FXWM.js";
69
+ } from "./chunk-KJD4J54I.js";
70
70
  import {
71
71
  VALID_PLATFORMS
72
72
  } from "./chunk-3ISINLYT.js";
@@ -151,7 +151,7 @@ import {
151
151
  validateKnowledgeMap,
152
152
  writeConfig,
153
153
  writeLockfile
154
- } from "./chunk-6JBJ5FSW.js";
154
+ } from "./chunk-RFYF7TJS.js";
155
155
  import {
156
156
  Err,
157
157
  Ok
@@ -365,7 +365,7 @@ function registerSkillsCommand(adoption) {
365
365
  const globalOpts = cmd.optsWithGlobals();
366
366
  const limit = Math.max(parseInt(opts.limit, 10) || 20, 1);
367
367
  const cwd = process.cwd();
368
- const { readAdoptionRecords, aggregateBySkill } = await import("./dist-46VOJIG4.js");
368
+ const { readAdoptionRecords, aggregateBySkill } = await import("./dist-77VNTHWV.js");
369
369
  const records = readAdoptionRecords(cwd);
370
370
  if (records.length === 0) {
371
371
  if (globalOpts.json) {
@@ -401,7 +401,7 @@ function registerRecentCommand(adoption) {
401
401
  const globalOpts = cmd.optsWithGlobals();
402
402
  const limit = Math.max(parseInt(opts.limit, 10) || 20, 1);
403
403
  const cwd = process.cwd();
404
- const { readAdoptionRecords } = await import("./dist-46VOJIG4.js");
404
+ const { readAdoptionRecords } = await import("./dist-77VNTHWV.js");
405
405
  const records = readAdoptionRecords(cwd);
406
406
  if (records.length === 0) {
407
407
  if (globalOpts.json) {
@@ -479,7 +479,7 @@ function registerSkillCommand(adoption) {
479
479
  adoption.command("skill <name>").description("Show detail for a specific skill").action(async (name, _opts, cmd) => {
480
480
  const globalOpts = cmd.optsWithGlobals();
481
481
  const cwd = process.cwd();
482
- const { readAdoptionRecords, aggregateBySkill } = await import("./dist-46VOJIG4.js");
482
+ const { readAdoptionRecords, aggregateBySkill } = await import("./dist-77VNTHWV.js");
483
483
  const records = readAdoptionRecords(cwd);
484
484
  const skillRecords = records.filter((r) => r.skill === name);
485
485
  if (skillRecords.length === 0) {
@@ -2768,7 +2768,7 @@ import { Command as Command25 } from "commander";
2768
2768
  // src/commands/graph/status.ts
2769
2769
  import * as path15 from "path";
2770
2770
  async function runGraphStatus(projectPath) {
2771
- const { GraphStore } = await import("./dist-BP6E6QGG.js");
2771
+ const { GraphStore } = await import("./dist-42AYXCAK.js");
2772
2772
  const graphDir = path15.join(projectPath, ".harness", "graph");
2773
2773
  const store = new GraphStore();
2774
2774
  const loaded = await store.load(graphDir);
@@ -2808,7 +2808,7 @@ async function runGraphStatus(projectPath) {
2808
2808
  // src/commands/graph/export.ts
2809
2809
  import * as path16 from "path";
2810
2810
  async function runGraphExport(projectPath, format) {
2811
- const { GraphStore } = await import("./dist-BP6E6QGG.js");
2811
+ const { GraphStore } = await import("./dist-42AYXCAK.js");
2812
2812
  const graphDir = path16.join(projectPath, ".harness", "graph");
2813
2813
  const store = new GraphStore();
2814
2814
  const loaded = await store.load(graphDir);
@@ -2844,7 +2844,7 @@ import * as path19 from "path";
2844
2844
  import { Command as Command23 } from "commander";
2845
2845
  import * as path17 from "path";
2846
2846
  async function runQuery(projectPath, rootNodeId, opts) {
2847
- const { GraphStore, ContextQL } = await import("./dist-BP6E6QGG.js");
2847
+ const { GraphStore, ContextQL } = await import("./dist-42AYXCAK.js");
2848
2848
  const store = new GraphStore();
2849
2849
  const graphDir = path17.join(projectPath, ".harness", "graph");
2850
2850
  const loaded = await store.load(graphDir);
@@ -2941,7 +2941,7 @@ async function runIngest(projectPath, source, opts) {
2941
2941
  ConfluenceConnector,
2942
2942
  FigmaConnector,
2943
2943
  MiroConnector
2944
- } = await import("./dist-BP6E6QGG.js");
2944
+ } = await import("./dist-42AYXCAK.js");
2945
2945
  const graphDir = path18.join(projectPath, ".harness", "graph");
2946
2946
  const store = new GraphStore();
2947
2947
  await store.load(graphDir);
@@ -2954,7 +2954,7 @@ async function runIngest(projectPath, source, opts) {
2954
2954
  path18.join(projectPath, "docs", "changes")
2955
2955
  );
2956
2956
  const gitResult = await new GitIngestor(store).ingest(projectPath);
2957
- const { createExtractionRunner } = await import("./dist-BP6E6QGG.js");
2957
+ const { createExtractionRunner } = await import("./dist-42AYXCAK.js");
2958
2958
  const extractedDir = path18.join(projectPath, ".harness", "knowledge", "extracted");
2959
2959
  const signalsResult = await createExtractionRunner().run(projectPath, store, extractedDir);
2960
2960
  const syncManager = new SyncManager(store, graphDir);
@@ -3000,7 +3000,7 @@ async function runIngest(projectPath, source, opts) {
3000
3000
  );
3001
3001
  break;
3002
3002
  case "business-signals": {
3003
- const { createExtractionRunner } = await import("./dist-BP6E6QGG.js");
3003
+ const { createExtractionRunner } = await import("./dist-42AYXCAK.js");
3004
3004
  const extractedDir = path18.join(projectPath, ".harness", "knowledge", "extracted");
3005
3005
  result = await createExtractionRunner().run(projectPath, store, extractedDir);
3006
3006
  break;
@@ -5301,7 +5301,7 @@ function createKnowledgePipelineCommand() {
5301
5301
  const graphDir = path38.join(projectDir, ".harness", "graph");
5302
5302
  const fs42 = await import("fs/promises");
5303
5303
  await fs42.mkdir(graphDir, { recursive: true });
5304
- const { GraphStore, KnowledgePipelineRunner } = await import("./dist-BP6E6QGG.js");
5304
+ const { GraphStore, KnowledgePipelineRunner } = await import("./dist-42AYXCAK.js");
5305
5305
  const store = new GraphStore();
5306
5306
  try {
5307
5307
  await store.load(graphDir);
@@ -5643,7 +5643,7 @@ function createMcpCommand() {
5643
5643
  parseBudget
5644
5644
  ).action(async (opts) => {
5645
5645
  const [{ startServer: startServer2, getToolDefinitions: getToolDefinitions2 }, { selectTier }] = await Promise.all([
5646
- import("./mcp-N6XVWPXJ.js"),
5646
+ import("./mcp-QFBGTUX6.js"),
5647
5647
  import("./tool-tiers-7QGZ3FKY.js")
5648
5648
  ]);
5649
5649
  if (opts.tools && opts.tools.length > 0) {
@@ -6134,7 +6134,7 @@ function registerBenchCommand(perf) {
6134
6134
  perf.command("bench [glob]").description("Run benchmarks via vitest bench").action(async (glob2, _opts, cmd) => {
6135
6135
  const globalOpts = cmd.optsWithGlobals();
6136
6136
  const cwd = process.cwd();
6137
- const { BenchmarkRunner } = await import("./dist-46VOJIG4.js");
6137
+ const { BenchmarkRunner } = await import("./dist-77VNTHWV.js");
6138
6138
  const runner = new BenchmarkRunner();
6139
6139
  const benchFiles = runner.discover(cwd, glob2);
6140
6140
  if (benchFiles.length === 0) {
@@ -6198,7 +6198,7 @@ async function runBaselinesShow(globalOpts) {
6198
6198
  }
6199
6199
  async function runBaselinesUpdate(globalOpts) {
6200
6200
  const cwd = process.cwd();
6201
- const { BenchmarkRunner } = await import("./dist-46VOJIG4.js");
6201
+ const { BenchmarkRunner } = await import("./dist-77VNTHWV.js");
6202
6202
  const runner = new BenchmarkRunner();
6203
6203
  const manager = new BaselineManager(cwd);
6204
6204
  logger.info("Running benchmarks to update baselines...");
@@ -6239,7 +6239,7 @@ function registerReportCommand(perf) {
6239
6239
  perf.command("report").description("Full performance report with metrics, trends, and hotspots").action(async (_opts, cmd) => {
6240
6240
  const globalOpts = cmd.optsWithGlobals();
6241
6241
  const cwd = process.cwd();
6242
- const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-46VOJIG4.js");
6242
+ const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-77VNTHWV.js");
6243
6243
  const analyzer = new EntropyAnalyzer2({
6244
6244
  rootDir: path42.resolve(cwd),
6245
6245
  analyze: { complexity: true, coupling: true }
@@ -6630,7 +6630,7 @@ async function runPublishAnalyses(opts) {
6630
6630
  const nameToExternalId = buildNameToExternalIdMap(projectPath);
6631
6631
  if (!nameToExternalId) return process.exit(1);
6632
6632
  const { AnalysisArchive } = await import("@harness-engineering/orchestrator");
6633
- const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-46VOJIG4.js");
6633
+ const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-77VNTHWV.js");
6634
6634
  const archive = new AnalysisArchive(path44.join(projectPath, ".harness", "analyses"));
6635
6635
  const analyses = await archive.list();
6636
6636
  if (analyses.length === 0) {
@@ -7169,7 +7169,7 @@ async function detectLegacyLayout(cwd) {
7169
7169
  }
7170
7170
  async function runInitialGraphScan(cwd) {
7171
7171
  try {
7172
- const { runScan: runScan2 } = await import("./scan-XRGMTO6K.js");
7172
+ const { runScan: runScan2 } = await import("./scan-DB6FNYGG.js");
7173
7173
  const result = await runScan2(cwd);
7174
7174
  return {
7175
7175
  status: "pass",
@@ -8674,7 +8674,7 @@ async function runSyncAnalyses(opts) {
8674
8674
  return;
8675
8675
  }
8676
8676
  const { AnalysisArchive, loadPublishedIndex: loadPublishedIndex2, savePublishedIndex: savePublishedIndex2 } = await import("@harness-engineering/orchestrator");
8677
- const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-46VOJIG4.js");
8677
+ const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-77VNTHWV.js");
8678
8678
  const adapter = new GitHubIssuesSyncAdapter2({ token, config: trackerConfig });
8679
8679
  const archive = new AnalysisArchive(path60.join(projectPath, ".harness", "analyses"));
8680
8680
  const publishedIndex = loadPublishedIndex2(projectPath);
@@ -9206,7 +9206,7 @@ async function runTraceability(options) {
9206
9206
  const projectPath = process.cwd();
9207
9207
  const store = await loadGraphStore(projectPath);
9208
9208
  if (!store) handleNoStore(mode);
9209
- const graphModule = await import("./dist-BP6E6QGG.js");
9209
+ const graphModule = await import("./dist-42AYXCAK.js");
9210
9210
  const filterOptions = buildFilterOptions(options);
9211
9211
  const results = graphModule.queryTraceability(store, filterOptions);
9212
9212
  if (results.length === 0) handleEmptyResults(mode);
@@ -9620,7 +9620,7 @@ function createUpdateCommand() {
9620
9620
  // src/commands/usage.ts
9621
9621
  import { Command as Command84 } from "commander";
9622
9622
  async function loadAndPriceRecords(cwd, includeClaudeSessions = false) {
9623
- const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-46VOJIG4.js");
9623
+ const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-77VNTHWV.js");
9624
9624
  const records = readCostRecords(cwd);
9625
9625
  if (includeClaudeSessions) {
9626
9626
  const ccRecords = parseCCRecords();
@@ -9713,7 +9713,7 @@ function registerDailyCommand(usage) {
9713
9713
  else logger.info("No usage data found. Run some harness sessions first.");
9714
9714
  return;
9715
9715
  }
9716
- const { aggregateByDay } = await import("./dist-46VOJIG4.js");
9716
+ const { aggregateByDay } = await import("./dist-77VNTHWV.js");
9717
9717
  const limited = aggregateByDay(records).slice(0, days);
9718
9718
  if (globalOpts.json) {
9719
9719
  console.log(
@@ -9742,7 +9742,7 @@ function registerSessionsCommand(usage) {
9742
9742
  }
9743
9743
  return;
9744
9744
  }
9745
- const { aggregateBySession } = await import("./dist-46VOJIG4.js");
9745
+ const { aggregateBySession } = await import("./dist-77VNTHWV.js");
9746
9746
  const sessionData = aggregateBySession(records);
9747
9747
  const limited = sessionData.slice(0, limit);
9748
9748
  if (globalOpts.json) {
@@ -9822,7 +9822,7 @@ function registerSessionCommand(usage) {
9822
9822
  cwd,
9823
9823
  globalOpts.includeClaudeSessions
9824
9824
  );
9825
- const { aggregateBySession } = await import("./dist-46VOJIG4.js");
9825
+ const { aggregateBySession } = await import("./dist-77VNTHWV.js");
9826
9826
  const sessionData = aggregateBySession(records);
9827
9827
  const match = sessionData.find((s) => s.sessionId === id);
9828
9828
  if (!match) {
@@ -9857,7 +9857,7 @@ function registerLatestCommand(usage) {
9857
9857
  }
9858
9858
  return;
9859
9859
  }
9860
- const { aggregateBySession } = await import("./dist-46VOJIG4.js");
9860
+ const { aggregateBySession } = await import("./dist-77VNTHWV.js");
9861
9861
  const sessionData = aggregateBySession(records);
9862
9862
  const latest = sessionData[0];
9863
9863
  if (!latest) {
@@ -9981,7 +9981,7 @@ function resolveValidateMode(globalOpts) {
9981
9981
  return OutputMode.TEXT;
9982
9982
  }
9983
9983
  async function printCrossCheckWarnings(mode) {
9984
- const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-LUQYIA46.js");
9984
+ const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-DGHTJFVH.js");
9985
9985
  const cwd = process.cwd();
9986
9986
  const crossResult = await runCrossCheck2({
9987
9987
  specsDir: path64.join(cwd, "docs", "specs"),
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KET4QQZB.js";
4
4
  import {
5
5
  init_dist
6
- } from "./chunk-6JBJ5FSW.js";
6
+ } from "./chunk-RFYF7TJS.js";
7
7
  import {
8
8
  Err,
9
9
  Ok
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  resolveConfig
3
- } from "./chunk-KLE6FXWM.js";
3
+ } from "./chunk-KJD4J54I.js";
4
4
  import {
5
5
  init_dist
6
- } from "./chunk-6JBJ5FSW.js";
6
+ } from "./chunk-RFYF7TJS.js";
7
7
  import {
8
8
  Ok
9
9
  } from "./chunk-RL4VMEXL.js";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  listPersonas,
6
6
  loadPersona
7
- } from "./chunk-H43UQY6B.js";
7
+ } from "./chunk-HT7HYYGT.js";
8
8
  import {
9
9
  GENERATED_HEADER_AGENT,
10
10
  VALID_PLATFORMS,
@@ -13,7 +13,7 @@ import {
13
13
  NODE_STABILITY,
14
14
  init_dist as init_dist2,
15
15
  queryTraceability
16
- } from "./chunk-X7XQ3ELM.js";
16
+ } from "./chunk-S2WB4LE7.js";
17
17
  import {
18
18
  __esm,
19
19
  __export
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-6JBJ5FSW.js";
3
+ } from "./chunk-RFYF7TJS.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
@@ -3106,6 +3106,7 @@ var init_dist = __esm({
3106
3106
  content: body.trim(),
3107
3107
  metadata: {
3108
3108
  domain,
3109
+ ...frontmatter.source && { source: frontmatter.source },
3109
3110
  ...frontmatter.tags && { tags: frontmatter.tags },
3110
3111
  ...frontmatter.related && { related: frontmatter.related }
3111
3112
  }
@@ -5774,6 +5775,10 @@ var init_dist = __esm({
5774
5775
  const mappedType = this.mapNodeType(node);
5775
5776
  const sanitize = (s) => s.replace(/[\n\r]/g, " ").replace(/:/g, "-");
5776
5777
  const lines = ["---", `type: ${sanitize(mappedType)}`, `domain: ${sanitize(domain)}`];
5778
+ const source = node.metadata?.source;
5779
+ if (typeof source === "string" && source.length > 0) {
5780
+ lines.push(`source: ${sanitize(source)}`);
5781
+ }
5777
5782
  const tags = node.metadata?.tags;
5778
5783
  if (Array.isArray(tags) && tags.length > 0) {
5779
5784
  lines.push(`tags: [${tags.map((t) => sanitize(String(t))).join(", ")}]`);