@harness-engineering/cli 2.8.0 → 3.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 (119) hide show
  1. package/dist/agents/skills/claude-code/harness-audit-harness-strength/SKILL.md +188 -0
  2. package/dist/agents/skills/claude-code/harness-audit-harness-strength/skill.yaml +54 -0
  3. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +2 -0
  4. package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +28 -14
  5. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +1 -1
  6. package/dist/agents/skills/claude-code/harness-git-workflow/SKILL.md +2 -0
  7. package/dist/agents/skills/claude-code/harness-ideate/SKILL.md +2 -0
  8. package/dist/agents/skills/claude-code/harness-knowledge-pipeline/SKILL.md +2 -0
  9. package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +62 -4
  10. package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +2 -0
  11. package/dist/agents/skills/claude-code/harness-test-advisor/SKILL.md +80 -2
  12. package/dist/agents/skills/claude-code/harness-test-advisor/skill.yaml +4 -1
  13. package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +27 -25
  14. package/dist/agents/skills/claude-code/initialize-harness-project/skill.yaml +1 -0
  15. package/dist/agents/skills/claude-code/outcome-eval/SKILL.md +97 -0
  16. package/dist/agents/skills/claude-code/outcome-eval/skill.yaml +51 -0
  17. package/dist/agents/skills/codex/harness-audit-harness-strength/SKILL.md +188 -0
  18. package/dist/agents/skills/codex/harness-audit-harness-strength/skill.yaml +54 -0
  19. package/dist/agents/skills/codex/harness-autopilot/SKILL.md +2 -0
  20. package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +28 -14
  21. package/dist/agents/skills/codex/harness-execution/SKILL.md +1 -1
  22. package/dist/agents/skills/codex/harness-git-workflow/SKILL.md +2 -0
  23. package/dist/agents/skills/codex/harness-ideate/SKILL.md +2 -0
  24. package/dist/agents/skills/codex/harness-knowledge-pipeline/SKILL.md +2 -0
  25. package/dist/agents/skills/codex/harness-roadmap/SKILL.md +62 -4
  26. package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +2 -0
  27. package/dist/agents/skills/codex/harness-test-advisor/SKILL.md +80 -2
  28. package/dist/agents/skills/codex/harness-test-advisor/skill.yaml +4 -1
  29. package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +27 -25
  30. package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +1 -0
  31. package/dist/agents/skills/codex/outcome-eval/SKILL.md +97 -0
  32. package/dist/agents/skills/codex/outcome-eval/skill.yaml +51 -0
  33. package/dist/agents/skills/cursor/harness-audit-harness-strength/SKILL.md +188 -0
  34. package/dist/agents/skills/cursor/harness-audit-harness-strength/skill.yaml +54 -0
  35. package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +2 -0
  36. package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +28 -14
  37. package/dist/agents/skills/cursor/harness-execution/SKILL.md +1 -1
  38. package/dist/agents/skills/cursor/harness-git-workflow/SKILL.md +2 -0
  39. package/dist/agents/skills/cursor/harness-ideate/SKILL.md +2 -0
  40. package/dist/agents/skills/cursor/harness-knowledge-pipeline/SKILL.md +2 -0
  41. package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +62 -4
  42. package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +2 -0
  43. package/dist/agents/skills/cursor/harness-test-advisor/SKILL.md +80 -2
  44. package/dist/agents/skills/cursor/harness-test-advisor/skill.yaml +4 -1
  45. package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +27 -25
  46. package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +1 -0
  47. package/dist/agents/skills/cursor/outcome-eval/SKILL.md +97 -0
  48. package/dist/agents/skills/cursor/outcome-eval/skill.yaml +51 -0
  49. package/dist/agents/skills/gemini-cli/harness-audit-harness-strength/SKILL.md +188 -0
  50. package/dist/agents/skills/gemini-cli/harness-audit-harness-strength/skill.yaml +54 -0
  51. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +2 -0
  52. package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +28 -14
  53. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +1 -1
  54. package/dist/agents/skills/gemini-cli/harness-git-workflow/SKILL.md +2 -0
  55. package/dist/agents/skills/gemini-cli/harness-ideate/SKILL.md +2 -0
  56. package/dist/agents/skills/gemini-cli/harness-knowledge-pipeline/SKILL.md +2 -0
  57. package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +62 -4
  58. package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +2 -0
  59. package/dist/agents/skills/gemini-cli/harness-test-advisor/SKILL.md +80 -2
  60. package/dist/agents/skills/gemini-cli/harness-test-advisor/skill.yaml +4 -1
  61. package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +27 -25
  62. package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +1 -0
  63. package/dist/agents/skills/gemini-cli/outcome-eval/SKILL.md +97 -0
  64. package/dist/agents/skills/gemini-cli/outcome-eval/skill.yaml +51 -0
  65. package/dist/agents/skills/tests/harness-test-advisor.test.ts +94 -0
  66. package/dist/{agents-md-WMJO5HSM.js → agents-md-XOJE5ETA.js} +2 -2
  67. package/dist/{architecture-EVYVGPRZ.js → architecture-JEZPJ725.js} +3 -3
  68. package/dist/{assess-project-KZG563SO.js → assess-project-RHXOQNMM.js} +1 -1
  69. package/dist/bin/harness-mcp.js +13 -13
  70. package/dist/bin/harness.js +22 -22
  71. package/dist/{check-phase-gate-MK364VXS.js → check-phase-gate-GNDOMS35.js} +3 -3
  72. package/dist/{chunk-VBNJAKUH.js → chunk-3ISHDWO7.js} +1 -1
  73. package/dist/{chunk-UJFNIWC7.js → chunk-527G27VI.js} +2 -2
  74. package/dist/{chunk-5XL5QJ5B.js → chunk-6WQCLCBO.js} +1 -1
  75. package/dist/{chunk-UXPWSV3B.js → chunk-BYVT5LVO.js} +3 -3
  76. package/dist/{chunk-HRSE6IQD.js → chunk-DE5U6KOL.js} +1 -1
  77. package/dist/{chunk-B7KMTHN3.js → chunk-GGKRA7A7.js} +1 -1
  78. package/dist/{chunk-STESM73J.js → chunk-GSP2XIVS.js} +1 -1
  79. package/dist/{chunk-KBCPELBC.js → chunk-HEIMJJI4.js} +2 -2
  80. package/dist/{chunk-KI6PHH6Q.js → chunk-HWTUUQOW.js} +3 -3
  81. package/dist/{chunk-2SNRCAC3.js → chunk-KAJOS3BA.js} +2 -2
  82. package/dist/{chunk-C7J55C6E.js → chunk-MGUPSE6D.js} +5 -5
  83. package/dist/{chunk-GOHWCHCS.js → chunk-N24HCQA4.js} +2243 -776
  84. package/dist/{chunk-EEFRPEWT.js → chunk-NWLGL3IR.js} +1 -1
  85. package/dist/{chunk-UUO4K7NX.js → chunk-ONCPJGHY.js} +6 -6
  86. package/dist/{chunk-X4EFYVCZ.js → chunk-PC2R5RUJ.js} +1 -1
  87. package/dist/{chunk-7EQAZKJ5.js → chunk-QBC7DI4Q.js} +1 -1
  88. package/dist/{chunk-UBZQE3JN.js → chunk-UX3PQKVZ.js} +7 -2
  89. package/dist/{chunk-CAQPSFPT.js → chunk-WWEVS7RO.js} +453 -91
  90. package/dist/{chunk-4BDOSCNY.js → chunk-XFU6SB2Q.js} +1015 -648
  91. package/dist/{chunk-LADPYELQ.js → chunk-XX4OLNWQ.js} +2 -2
  92. package/dist/{chunk-FZ5MBXEG.js → chunk-YQSYCBAH.js} +6 -6
  93. package/dist/{chunk-ACOOG3UW.js → chunk-Z4AWEIBY.js} +3 -3
  94. package/dist/{ci-workflow-IW2H5DC4.js → ci-workflow-ORZ4F45F.js} +2 -2
  95. package/dist/{dist-JCFK263L.js → dist-LHINSVK4.js} +85 -1
  96. package/dist/{docs-7CP6VV42.js → docs-AU3DXFFO.js} +3 -3
  97. package/dist/{engine-MKJEBWU7.js → engine-6GPWOYQH.js} +2 -2
  98. package/dist/{entropy-6JOZJYG7.js → entropy-VLKDRMRT.js} +2 -2
  99. package/dist/{feedback-T65AEJEG.js → feedback-YXYY44ZC.js} +1 -1
  100. package/dist/{generate-agent-definitions-4VI4YTO2.js → generate-agent-definitions-XIHQPKG3.js} +3 -3
  101. package/dist/hooks/cost-tracker.js +29 -6
  102. package/dist/index.js +22 -22
  103. package/dist/{loader-AWTHHE3A.js → loader-YAN56MT3.js} +2 -2
  104. package/dist/{mcp-JBIBINO2.js → mcp-RK3SFVYB.js} +13 -13
  105. package/dist/{performance-NCOUDOMW.js → performance-64DPTLLQ.js} +3 -3
  106. package/dist/{review-pipeline-YIC6JPMY.js → review-pipeline-NENG6LW7.js} +2 -2
  107. package/dist/{runtime-5MHV4UEE.js → runtime-FFIIRT2T.js} +2 -2
  108. package/dist/{security-VZPJNIDP.js → security-3PIBN35B.js} +1 -1
  109. package/dist/templates/basic/harness.config.json.hbs +34 -0
  110. package/dist/templates/ci/README.md +86 -0
  111. package/dist/templates/ci/required-review.ruleset.json +20 -0
  112. package/dist/templates/ci/required-review.yml.hbs +57 -0
  113. package/dist/templates/ci/template.json +5 -0
  114. package/dist/templates/intermediate/harness.config.json.hbs +36 -0
  115. package/dist/templates/orchestrator/harness.orchestrator.md +9 -0
  116. package/dist/{tool-tiers-B7JC2XC3.js → tool-tiers-OKK5FE57.js} +2 -0
  117. package/dist/{validate-7BE4VTFI.js → validate-7IAF2ES3.js} +3 -3
  118. package/dist/{validate-cross-check-F7GEBRDH.js → validate-cross-check-QPSAOZKD.js} +2 -2
  119. package/package.json +7 -7
@@ -0,0 +1,51 @@
1
+ name: outcome-eval
2
+ version: '0.1.0'
3
+ description: >-
4
+ LLM-judgment skill that produces a structured, confidence-rated verdict on
5
+ whether an implementation satisfied its spec. Reads the spec's acceptance
6
+ section, the change diff, and test output; emits an OutcomeVerdict
7
+ (SATISFIED | NOT_SATISFIED | INCONCLUSIVE) with confidence, rationale, and
8
+ unmet criteria. Authority is derived in TypeScript, never from the LLM: a
9
+ high-confidence NOT_SATISFIED blocks ship; every other verdict is advisory.
10
+ The verdict persists as an execution_outcome node and feeds skill-effectiveness
11
+ baselines. The harness's first blocking post-execution spec-satisfaction gate.
12
+ stability: draft
13
+ cognitive_mode: constructive-architect
14
+ triggers:
15
+ - manual
16
+ - on_pr
17
+ platforms:
18
+ - claude-code
19
+ tools:
20
+ - Bash
21
+ - Read
22
+ - Glob
23
+ - Grep
24
+ mcp:
25
+ tool: outcome_eval
26
+ # specPath, diff, and testOutput are ALL required. diff/testOutput are the
27
+ # evidence the judge reasons over: omitting them degrades the verdict to
28
+ # INCONCLUSIVE/advisory (never blocking), so the agent MUST supply them.
29
+ input:
30
+ specPath: 'string (required) — absolute or repo-relative path to the spec markdown to judge against'
31
+ diff: 'string (required) — unified diff of the change under judgment (git diff); omission degrades the verdict to INCONCLUSIVE/advisory'
32
+ testOutput: 'string (required) — captured test-runner stdout+stderr; omission degrades the verdict to INCONCLUSIVE/advisory'
33
+ model: 'string (optional) — model override for the outcome-eval LLM call'
34
+ path: 'string (optional) — project root used to resolve the knowledge graph (default cwd)'
35
+ type: rigid
36
+ tier: 2
37
+ phases:
38
+ - name: gather
39
+ description: Collect the unified diff (git diff), capture test output, resolve the spec path
40
+ required: true
41
+ - name: resolve
42
+ description: Resolve the judgment section (Success Criteria -> User-Visible Behavior -> Overview)
43
+ required: true
44
+ - name: judge
45
+ description: Invoke OutcomeEvaluator.evaluate(); LLM returns verdict/confidence/rationale/unmetCriteria; authority derived in TS
46
+ required: true
47
+ - name: gate
48
+ description: Render the verdict; on a blocking verdict (NOT_SATISFIED + high confidence) halt before Ship
49
+ required: true
50
+ state:
51
+ persistent: false
@@ -0,0 +1,94 @@
1
+ // agents/skills/tests/harness-test-advisor.test.ts
2
+ //
3
+ // Contract tests for the harness-test-advisor skill. Locks in the Coverage
4
+ // Audit mode contract from GH issue 488: skill exposes an audit entry point,
5
+ // SKILL.md documents the three audit phases (INVENTORY, QUALITY REVIEW,
6
+ // GAP REPORT), and the canary plugin agents are named as the remediation
7
+ // path. Generic schema/structure/parity checks live in the sibling
8
+ // *.test.ts files.
9
+
10
+ import { describe, it, expect } from 'vitest';
11
+ import { readFileSync } from 'fs';
12
+ import { resolve, dirname } from 'path';
13
+ import { fileURLToPath } from 'url';
14
+ import { parse } from 'yaml';
15
+
16
+ const __dirname = dirname(fileURLToPath(import.meta.url));
17
+ const SKILLS_DIR = resolve(__dirname, '..');
18
+
19
+ const SKILL_NAME = 'harness-test-advisor';
20
+ const PLATFORMS = ['claude-code', 'gemini-cli', 'cursor', 'codex'] as const;
21
+
22
+ function readSkillYaml(platform: string): Record<string, unknown> {
23
+ const path = resolve(SKILLS_DIR, platform, SKILL_NAME, 'skill.yaml');
24
+ return parse(readFileSync(path, 'utf-8'));
25
+ }
26
+
27
+ function readSkillMd(platform: string): string {
28
+ return readFileSync(resolve(SKILLS_DIR, platform, SKILL_NAME, 'SKILL.md'), 'utf-8');
29
+ }
30
+
31
+ describe('harness-test-advisor Coverage Audit metadata', () => {
32
+ it.each(PLATFORMS)('%s skill.yaml exposes an audit CLI arg', (platform) => {
33
+ const meta = readSkillYaml(platform) as {
34
+ cli: { args: Array<{ name: string }> };
35
+ };
36
+ const argNames = meta.cli.args.map((a) => a.name);
37
+ expect(argNames).toContain('audit');
38
+ });
39
+
40
+ it.each(PLATFORMS)(
41
+ '%s skill.yaml description advertises coverage audit alongside selection',
42
+ (platform) => {
43
+ const meta = readSkillYaml(platform) as { description: string };
44
+ expect(meta.description).toMatch(/coverage/i);
45
+ }
46
+ );
47
+ });
48
+
49
+ describe('harness-test-advisor SKILL.md surfaces Coverage Audit mode', () => {
50
+ it.each(PLATFORMS)('%s SKILL.md advertises Coverage Audit in When to Use', (platform) => {
51
+ const body = readSkillMd(platform);
52
+ const whenToUse = body.split('## Prerequisites')[0] ?? '';
53
+ expect(whenToUse).toMatch(/Coverage Audit/);
54
+ });
55
+
56
+ const AUDIT_PHASES = ['INVENTORY', 'QUALITY REVIEW', 'GAP REPORT'];
57
+
58
+ it.each(PLATFORMS)('%s SKILL.md declares the three Coverage Audit phases', (platform) => {
59
+ const body = readSkillMd(platform);
60
+ for (const phase of AUDIT_PHASES) {
61
+ expect(body, `missing Coverage Audit phase "${phase}" in ${platform}`).toContain(phase);
62
+ }
63
+ });
64
+
65
+ const CANARY_SKILLS = [
66
+ 'canary:canary-review-test',
67
+ 'canary:canary-write-test',
68
+ 'canary:canary-pick-framework',
69
+ ];
70
+
71
+ it.each(PLATFORMS)('%s SKILL.md routes audit follow-ups to canary plugin skills', (platform) => {
72
+ const body = readSkillMd(platform);
73
+ for (const skill of CANARY_SKILLS) {
74
+ expect(body, `missing canary skill reference "${skill}" in ${platform}`).toContain(skill);
75
+ }
76
+ });
77
+ });
78
+
79
+ describe('harness-test-advisor wires the canary MCP tools (deterministic path)', () => {
80
+ // The audit probes the canary CLI for graceful degradation and uses the
81
+ // deterministic framework recommender — separate from the generative plugin path.
82
+ const CANARY_MCP_TOOLS = ['canary_probe', 'canary_recommend_framework'];
83
+
84
+ it.each(PLATFORMS)('%s SKILL.md declares an audit PROBE phase', (platform) => {
85
+ expect(readSkillMd(platform)).toMatch(/Audit Phase 0: PROBE/);
86
+ });
87
+
88
+ it.each(PLATFORMS)('%s SKILL.md references both canary MCP tools', (platform) => {
89
+ const body = readSkillMd(platform);
90
+ for (const tool of CANARY_MCP_TOOLS) {
91
+ expect(body, `missing canary MCP tool "${tool}" in ${platform}`).toContain(tool);
92
+ }
93
+ });
94
+ });
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generateAgentsMd
3
- } from "./chunk-7EQAZKJ5.js";
4
- import "./chunk-GOHWCHCS.js";
3
+ } from "./chunk-QBC7DI4Q.js";
4
+ import "./chunk-N24HCQA4.js";
5
5
  import "./chunk-N55WOGN3.js";
6
6
  import "./chunk-BDGTZRZ6.js";
7
7
  import "./chunk-PP6ZRL5T.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  checkDependenciesDefinition,
3
3
  handleCheckDependencies
4
- } from "./chunk-UJFNIWC7.js";
5
- import "./chunk-HRSE6IQD.js";
4
+ } from "./chunk-527G27VI.js";
5
+ import "./chunk-DE5U6KOL.js";
6
6
  import "./chunk-RC3OI5NK.js";
7
7
  import "./chunk-W6Y7ZW3Y.js";
8
- import "./chunk-GOHWCHCS.js";
8
+ import "./chunk-N24HCQA4.js";
9
9
  import "./chunk-N55WOGN3.js";
10
10
  import "./chunk-BDGTZRZ6.js";
11
11
  import "./chunk-PP6ZRL5T.js";
@@ -2,7 +2,7 @@ import {
2
2
  assessProjectDefinition,
3
3
  handleAssessProject,
4
4
  parseToolResponse
5
- } from "./chunk-FZ5MBXEG.js";
5
+ } from "./chunk-YQSYCBAH.js";
6
6
  import "./chunk-RC3OI5NK.js";
7
7
  import "./chunk-W6Y7ZW3Y.js";
8
8
  import "./chunk-KFQGP6VL.js";
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  startServer
4
- } from "../chunk-CAQPSFPT.js";
5
- import "../chunk-KBCPELBC.js";
6
- import "../chunk-LADPYELQ.js";
7
- import "../chunk-FZ5MBXEG.js";
8
- import "../chunk-ACOOG3UW.js";
9
- import "../chunk-UUO4K7NX.js";
4
+ } from "../chunk-WWEVS7RO.js";
5
+ import "../chunk-HEIMJJI4.js";
6
+ import "../chunk-XX4OLNWQ.js";
7
+ import "../chunk-YQSYCBAH.js";
8
+ import "../chunk-Z4AWEIBY.js";
9
+ import "../chunk-ONCPJGHY.js";
10
10
  import "../chunk-IOW3MW2K.js";
11
- import "../chunk-UXPWSV3B.js";
11
+ import "../chunk-BYVT5LVO.js";
12
12
  import "../chunk-3ISINLYT.js";
13
13
  import "../chunk-CLI4K2CH.js";
14
- import "../chunk-KI6PHH6Q.js";
15
- import "../chunk-UJFNIWC7.js";
16
- import "../chunk-HRSE6IQD.js";
17
- import "../chunk-C7J55C6E.js";
14
+ import "../chunk-HWTUUQOW.js";
15
+ import "../chunk-527G27VI.js";
16
+ import "../chunk-DE5U6KOL.js";
17
+ import "../chunk-MGUPSE6D.js";
18
18
  import "../chunk-RC3OI5NK.js";
19
19
  import "../chunk-W6Y7ZW3Y.js";
20
20
  import "../chunk-27AJKSQY.js";
21
21
  import "../chunk-6B6UN6SG.js";
22
22
  import "../chunk-HIK6OEUF.js";
23
- import "../chunk-B7KMTHN3.js";
23
+ import "../chunk-GGKRA7A7.js";
24
24
  import "../chunk-ZCZD7FHU.js";
25
25
  import "../chunk-EBJQ6N4M.js";
26
26
  import "../chunk-3WGJMBKH.js";
27
- import "../chunk-GOHWCHCS.js";
27
+ import "../chunk-N24HCQA4.js";
28
28
  import "../chunk-N55WOGN3.js";
29
29
  import "../chunk-BDGTZRZ6.js";
30
30
  import "../chunk-PP6ZRL5T.js";
@@ -3,38 +3,38 @@ import {
3
3
  createProgram,
4
4
  installCommandTelemetry,
5
5
  printFirstRunWelcome
6
- } from "../chunk-4BDOSCNY.js";
7
- import "../chunk-5XL5QJ5B.js";
8
- import "../chunk-7EQAZKJ5.js";
9
- import "../chunk-STESM73J.js";
10
- import "../chunk-VBNJAKUH.js";
11
- import "../chunk-EEFRPEWT.js";
6
+ } from "../chunk-XFU6SB2Q.js";
7
+ import "../chunk-6WQCLCBO.js";
8
+ import "../chunk-QBC7DI4Q.js";
9
+ import "../chunk-GSP2XIVS.js";
10
+ import "../chunk-3ISHDWO7.js";
11
+ import "../chunk-NWLGL3IR.js";
12
12
  import "../chunk-KET4QQZB.js";
13
13
  import "../chunk-2N4OENGE.js";
14
- import "../chunk-UBZQE3JN.js";
14
+ import "../chunk-UX3PQKVZ.js";
15
15
  import "../chunk-CQ553GZO.js";
16
16
  import "../chunk-ZP5E7YET.js";
17
- import "../chunk-X4EFYVCZ.js";
17
+ import "../chunk-PC2R5RUJ.js";
18
18
  import "../chunk-GISMXMVL.js";
19
19
  import "../chunk-WWACIIBA.js";
20
20
  import "../chunk-TEFCFC4H.js";
21
- import "../chunk-2SNRCAC3.js";
21
+ import "../chunk-KAJOS3BA.js";
22
22
  import {
23
23
  dispatchSkillsFromGit
24
- } from "../chunk-CAQPSFPT.js";
25
- import "../chunk-KBCPELBC.js";
26
- import "../chunk-LADPYELQ.js";
27
- import "../chunk-FZ5MBXEG.js";
28
- import "../chunk-ACOOG3UW.js";
29
- import "../chunk-UUO4K7NX.js";
24
+ } from "../chunk-WWEVS7RO.js";
25
+ import "../chunk-HEIMJJI4.js";
26
+ import "../chunk-XX4OLNWQ.js";
27
+ import "../chunk-YQSYCBAH.js";
28
+ import "../chunk-Z4AWEIBY.js";
29
+ import "../chunk-ONCPJGHY.js";
30
30
  import "../chunk-IOW3MW2K.js";
31
- import "../chunk-UXPWSV3B.js";
31
+ import "../chunk-BYVT5LVO.js";
32
32
  import "../chunk-3ISINLYT.js";
33
33
  import "../chunk-CLI4K2CH.js";
34
- import "../chunk-KI6PHH6Q.js";
35
- import "../chunk-UJFNIWC7.js";
36
- import "../chunk-HRSE6IQD.js";
37
- import "../chunk-C7J55C6E.js";
34
+ import "../chunk-HWTUUQOW.js";
35
+ import "../chunk-527G27VI.js";
36
+ import "../chunk-DE5U6KOL.js";
37
+ import "../chunk-MGUPSE6D.js";
38
38
  import "../chunk-RC3OI5NK.js";
39
39
  import "../chunk-W6Y7ZW3Y.js";
40
40
  import "../chunk-27AJKSQY.js";
@@ -43,7 +43,7 @@ import "../chunk-HIK6OEUF.js";
43
43
  import {
44
44
  findConfigFile,
45
45
  loadConfig
46
- } from "../chunk-B7KMTHN3.js";
46
+ } from "../chunk-GGKRA7A7.js";
47
47
  import "../chunk-ZCZD7FHU.js";
48
48
  import "../chunk-EBJQ6N4M.js";
49
49
  import {
@@ -56,7 +56,7 @@ import {
56
56
  readCheckState,
57
57
  shouldRunCheck,
58
58
  spawnBackgroundCheck
59
- } from "../chunk-GOHWCHCS.js";
59
+ } from "../chunk-N24HCQA4.js";
60
60
  import {
61
61
  CLI_VERSION
62
62
  } from "../chunk-BM3PWGXQ.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  createCheckPhaseGateCommand,
3
3
  runCheckPhaseGate
4
- } from "./chunk-2SNRCAC3.js";
5
- import "./chunk-B7KMTHN3.js";
4
+ } from "./chunk-KAJOS3BA.js";
5
+ import "./chunk-GGKRA7A7.js";
6
6
  import "./chunk-ZCZD7FHU.js";
7
7
  import "./chunk-EBJQ6N4M.js";
8
8
  import "./chunk-3WGJMBKH.js";
9
- import "./chunk-GOHWCHCS.js";
9
+ import "./chunk-N24HCQA4.js";
10
10
  import "./chunk-N55WOGN3.js";
11
11
  import "./chunk-BDGTZRZ6.js";
12
12
  import "./chunk-PP6ZRL5T.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-GOHWCHCS.js";
3
+ } from "./chunk-N24HCQA4.js";
4
4
  import {
5
5
  Ok
6
6
  } from "./chunk-BDGTZRZ6.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveProjectConfig
3
- } from "./chunk-HRSE6IQD.js";
3
+ } from "./chunk-DE5U6KOL.js";
4
4
  import {
5
5
  resultToMcpResponse
6
6
  } from "./chunk-RC3OI5NK.js";
@@ -38,7 +38,7 @@ async function handleCheckDependencies(input) {
38
38
  const configResult = resolveProjectConfig(projectPath);
39
39
  if (!configResult.ok) return resultToMcpResponse(configResult);
40
40
  try {
41
- const { validateDependencies, TypeScriptParser } = await import("./dist-JCFK263L.js");
41
+ const { validateDependencies, TypeScriptParser } = await import("./dist-LHINSVK4.js");
42
42
  const config = configResult.value;
43
43
  const rawLayers = Array.isArray(config.layers) ? config.layers : [];
44
44
  const layers = rawLayers.map((l) => ({
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KET4QQZB.js";
4
4
  import {
5
5
  init_dist
6
- } from "./chunk-GOHWCHCS.js";
6
+ } from "./chunk-N24HCQA4.js";
7
7
  import {
8
8
  Err,
9
9
  Ok
@@ -33,7 +33,7 @@ var createSelfReviewDefinition = {
33
33
  };
34
34
  async function handleCreateSelfReview(input) {
35
35
  try {
36
- const { parseDiff, createSelfReview } = await import("./dist-JCFK263L.js");
36
+ const { parseDiff, createSelfReview } = await import("./dist-LHINSVK4.js");
37
37
  const parseResult = parseDiff(input.diff);
38
38
  if (!parseResult.ok) {
39
39
  return resultToMcpResponse(parseResult);
@@ -119,7 +119,7 @@ var analyzeDiffDefinition = {
119
119
  };
120
120
  async function handleAnalyzeDiff(input) {
121
121
  try {
122
- const { parseDiff, analyzeDiff } = await import("./dist-JCFK263L.js");
122
+ const { parseDiff, analyzeDiff } = await import("./dist-LHINSVK4.js");
123
123
  const parseResult = parseDiff(input.diff);
124
124
  if (!parseResult.ok) {
125
125
  return resultToMcpResponse(parseResult);
@@ -195,7 +195,7 @@ var requestPeerReviewDefinition = {
195
195
  };
196
196
  async function handleRequestPeerReview(input) {
197
197
  try {
198
- const { parseDiff, requestPeerReview } = await import("./dist-JCFK263L.js");
198
+ const { parseDiff, requestPeerReview } = await import("./dist-LHINSVK4.js");
199
199
  const parseResult = parseDiff(input.diff);
200
200
  if (!parseResult.ok) {
201
201
  return resultToMcpResponse(parseResult);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-GOHWCHCS.js";
3
+ } from "./chunk-N24HCQA4.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-3WGJMBKH.js";
8
8
  import {
9
9
  init_dist as init_dist2
10
- } from "./chunk-GOHWCHCS.js";
10
+ } from "./chunk-N24HCQA4.js";
11
11
  import {
12
12
  Err,
13
13
  Ok
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-GOHWCHCS.js";
3
+ } from "./chunk-N24HCQA4.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
@@ -27,7 +27,7 @@ var runSecurityScanDefinition = {
27
27
  };
28
28
  async function handleRunSecurityScan(input) {
29
29
  try {
30
- const core = await import("./dist-JCFK263L.js");
30
+ const core = await import("./dist-LHINSVK4.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-JCFK263L.js");
117
+ const core = await import("./dist-LHINSVK4.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
  resolveProjectConfig
3
- } from "./chunk-HRSE6IQD.js";
3
+ } from "./chunk-DE5U6KOL.js";
4
4
  import {
5
5
  sanitizePath
6
6
  } from "./chunk-W6Y7ZW3Y.js";
@@ -49,7 +49,7 @@ async function handleValidateProject(input) {
49
49
  checks.config = "pass";
50
50
  const config = configResult.value;
51
51
  try {
52
- const core = await import("./dist-JCFK263L.js");
52
+ const core = await import("./dist-LHINSVK4.js");
53
53
  if (typeof core.validateFileStructure === "function" && Array.isArray(config.conventions)) {
54
54
  const conventions = config.conventions;
55
55
  const structureResult = await core.validateFileStructure(projectPath, conventions);
@@ -68,7 +68,7 @@ async function handleValidateProject(input) {
68
68
  } catch {
69
69
  }
70
70
  try {
71
- const core = await import("./dist-JCFK263L.js");
71
+ const core = await import("./dist-LHINSVK4.js");
72
72
  if (typeof core.validateAgentsMap === "function") {
73
73
  const agentsMapPath = path.join(projectPath, "AGENTS.md");
74
74
  const agentsResult = await core.validateAgentsMap(agentsMapPath);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveConfig
3
- } from "./chunk-B7KMTHN3.js";
3
+ } from "./chunk-GGKRA7A7.js";
4
4
  import {
5
5
  logger
6
6
  } from "./chunk-EBJQ6N4M.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-3WGJMBKH.js";
10
10
  import {
11
11
  init_dist
12
- } from "./chunk-GOHWCHCS.js";
12
+ } from "./chunk-N24HCQA4.js";
13
13
  import {
14
14
  Ok
15
15
  } from "./chunk-BDGTZRZ6.js";
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  findConfigFile,
9
9
  loadConfig
10
- } from "./chunk-B7KMTHN3.js";
10
+ } from "./chunk-GGKRA7A7.js";
11
11
  import {
12
12
  init_dist
13
- } from "./chunk-GOHWCHCS.js";
13
+ } from "./chunk-N24HCQA4.js";
14
14
  import {
15
15
  Ok
16
16
  } from "./chunk-BDGTZRZ6.js";
@@ -50,12 +50,12 @@ 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-JCFK263L.js");
53
+ const { validateKnowledgeMap } = await import("./dist-LHINSVK4.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-JCFK263L.js");
58
+ const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-LHINSVK4.js");
59
59
  const domain2 = input.domain ?? "src";
60
60
  const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-HHXN5FLP.js");
61
61
  const store2 = await loadGraphStore2(projectPath);
@@ -94,7 +94,7 @@ async function handleCheckDocs(input) {
94
94
  }
95
95
  return resultToMcpResponse(Ok({ coverage, integrity }));
96
96
  }
97
- const { checkDocCoverage } = await import("./dist-JCFK263L.js");
97
+ const { checkDocCoverage } = await import("./dist-LHINSVK4.js");
98
98
  const domain = input.domain ?? "src";
99
99
  const { loadGraphStore } = await import("./graph-loader-HHXN5FLP.js");
100
100
  const store = await loadGraphStore(projectPath);