@harness-engineering/cli 1.21.0 → 1.23.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 (127) hide show
  1. package/dist/agents/skills/claude-code/cleanup-dead-code/skill.yaml +3 -0
  2. package/dist/agents/skills/claude-code/detect-doc-drift/skill.yaml +5 -0
  3. package/dist/agents/skills/claude-code/enforce-architecture/skill.yaml +13 -0
  4. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +2 -2
  5. package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +1 -1
  6. package/dist/agents/skills/claude-code/harness-code-review/skill.yaml +5 -0
  7. package/dist/agents/skills/claude-code/harness-codebase-cleanup/skill.yaml +5 -0
  8. package/dist/agents/skills/claude-code/harness-debugging/skill.yaml +5 -0
  9. package/dist/agents/skills/claude-code/harness-dependency-health/skill.yaml +9 -0
  10. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +1 -1
  11. package/dist/agents/skills/claude-code/harness-hotspot-detector/skill.yaml +9 -0
  12. package/dist/agents/skills/claude-code/harness-integrity/skill.yaml +5 -0
  13. package/dist/agents/skills/claude-code/harness-perf/skill.yaml +3 -0
  14. package/dist/agents/skills/claude-code/harness-refactoring/skill.yaml +9 -0
  15. package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +5 -5
  16. package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +18 -14
  17. package/dist/agents/skills/claude-code/harness-security-scan/skill.yaml +3 -0
  18. package/dist/agents/skills/claude-code/harness-soundness-review/skill.yaml +5 -0
  19. package/dist/agents/skills/claude-code/harness-supply-chain-audit/skill.yaml +3 -0
  20. package/dist/agents/skills/claude-code/harness-tdd/skill.yaml +3 -0
  21. package/dist/agents/skills/codex/cleanup-dead-code/skill.yaml +3 -0
  22. package/dist/agents/skills/codex/detect-doc-drift/skill.yaml +5 -0
  23. package/dist/agents/skills/codex/enforce-architecture/skill.yaml +13 -0
  24. package/dist/agents/skills/codex/harness-autopilot/SKILL.md +2 -2
  25. package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +1 -1
  26. package/dist/agents/skills/codex/harness-code-review/skill.yaml +5 -0
  27. package/dist/agents/skills/codex/harness-codebase-cleanup/skill.yaml +5 -0
  28. package/dist/agents/skills/codex/harness-debugging/skill.yaml +5 -0
  29. package/dist/agents/skills/codex/harness-dependency-health/skill.yaml +9 -0
  30. package/dist/agents/skills/codex/harness-execution/SKILL.md +1 -1
  31. package/dist/agents/skills/codex/harness-hotspot-detector/skill.yaml +9 -0
  32. package/dist/agents/skills/codex/harness-integrity/skill.yaml +5 -0
  33. package/dist/agents/skills/codex/harness-perf/skill.yaml +3 -0
  34. package/dist/agents/skills/codex/harness-refactoring/skill.yaml +9 -0
  35. package/dist/agents/skills/codex/harness-roadmap/SKILL.md +5 -5
  36. package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +18 -14
  37. package/dist/agents/skills/codex/harness-security-scan/skill.yaml +3 -0
  38. package/dist/agents/skills/codex/harness-soundness-review/skill.yaml +5 -0
  39. package/dist/agents/skills/codex/harness-supply-chain-audit/skill.yaml +3 -0
  40. package/dist/agents/skills/codex/harness-tdd/skill.yaml +3 -0
  41. package/dist/agents/skills/cursor/cleanup-dead-code/skill.yaml +3 -0
  42. package/dist/agents/skills/cursor/detect-doc-drift/skill.yaml +5 -0
  43. package/dist/agents/skills/cursor/enforce-architecture/skill.yaml +13 -0
  44. package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +2 -2
  45. package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +1 -1
  46. package/dist/agents/skills/cursor/harness-code-review/skill.yaml +5 -0
  47. package/dist/agents/skills/cursor/harness-codebase-cleanup/skill.yaml +5 -0
  48. package/dist/agents/skills/cursor/harness-debugging/skill.yaml +5 -0
  49. package/dist/agents/skills/cursor/harness-dependency-health/skill.yaml +9 -0
  50. package/dist/agents/skills/cursor/harness-execution/SKILL.md +1 -1
  51. package/dist/agents/skills/cursor/harness-hotspot-detector/skill.yaml +9 -0
  52. package/dist/agents/skills/cursor/harness-integrity/skill.yaml +5 -0
  53. package/dist/agents/skills/cursor/harness-perf/skill.yaml +3 -0
  54. package/dist/agents/skills/cursor/harness-refactoring/skill.yaml +9 -0
  55. package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +5 -5
  56. package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +18 -14
  57. package/dist/agents/skills/cursor/harness-security-scan/skill.yaml +3 -0
  58. package/dist/agents/skills/cursor/harness-soundness-review/skill.yaml +5 -0
  59. package/dist/agents/skills/cursor/harness-supply-chain-audit/skill.yaml +3 -0
  60. package/dist/agents/skills/cursor/harness-tdd/skill.yaml +3 -0
  61. package/dist/agents/skills/gemini-cli/cleanup-dead-code/skill.yaml +3 -0
  62. package/dist/agents/skills/gemini-cli/detect-doc-drift/skill.yaml +5 -0
  63. package/dist/agents/skills/gemini-cli/enforce-architecture/skill.yaml +13 -0
  64. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +2 -2
  65. package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +1 -1
  66. package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +5 -0
  67. package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/skill.yaml +5 -0
  68. package/dist/agents/skills/gemini-cli/harness-debugging/skill.yaml +5 -0
  69. package/dist/agents/skills/gemini-cli/harness-dependency-health/skill.yaml +9 -0
  70. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +1 -1
  71. package/dist/agents/skills/gemini-cli/harness-hotspot-detector/skill.yaml +9 -0
  72. package/dist/agents/skills/gemini-cli/harness-integrity/skill.yaml +5 -0
  73. package/dist/agents/skills/gemini-cli/harness-perf/skill.yaml +3 -0
  74. package/dist/agents/skills/gemini-cli/harness-refactoring/skill.yaml +9 -0
  75. package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +5 -5
  76. package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +18 -14
  77. package/dist/agents/skills/gemini-cli/harness-security-scan/skill.yaml +3 -0
  78. package/dist/agents/skills/gemini-cli/harness-soundness-review/skill.yaml +5 -0
  79. package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/skill.yaml +3 -0
  80. package/dist/agents/skills/gemini-cli/harness-tdd/skill.yaml +3 -0
  81. package/dist/{agents-md-TDTLYAQU.js → agents-md-GLKJSGKT.js} +2 -1
  82. package/dist/{architecture-NANP4XPE.js → architecture-EDSBAGR4.js} +3 -2
  83. package/dist/assess-project-CEDY4JU3.js +9 -0
  84. package/dist/bin/harness-mcp.js +15 -13
  85. package/dist/bin/harness.js +21 -19
  86. package/dist/{check-phase-gate-I4NQOCSU.js → check-phase-gate-N3DTKFCZ.js} +4 -3
  87. package/dist/{chunk-UEKQ5G3V.js → chunk-26AUZBV4.js} +459 -37
  88. package/dist/chunk-2LAEDVOC.js +293 -0
  89. package/dist/{chunk-M6TIO6NF.js → chunk-2PAPHA77.js} +1 -1
  90. package/dist/{dist-U7EAO6T2.js → chunk-5SWE24IG.js} +401 -60
  91. package/dist/{chunk-7G2ZUTZA.js → chunk-A4AI3H3R.js} +26 -3
  92. package/dist/{chunk-HUDEBSR2.js → chunk-AIBAYANF.js} +3 -3
  93. package/dist/{chunk-6GEYPBDU.js → chunk-AKVG4MMZ.js} +9 -9
  94. package/dist/{chunk-SPUK5W4W.js → chunk-ENA4O4WD.js} +2 -2
  95. package/dist/{chunk-SZ5TGZMI.js → chunk-GJRUIXUK.js} +17 -2
  96. package/dist/{chunk-YF5ROTWR.js → chunk-HT4VPPB4.js} +8 -8
  97. package/dist/{chunk-L6LTNZQZ.js → chunk-LIWGCYON.js} +1 -1
  98. package/dist/{chunk-UVJFBKCX.js → chunk-QUKH6QCJ.js} +7 -7
  99. package/dist/{chunk-HKUX2X7O.js → chunk-SE4YPMLH.js} +9 -1
  100. package/dist/{chunk-TMSGI27F.js → chunk-SM22U22L.js} +982 -386
  101. package/dist/{chunk-LRG3B43J.js → chunk-T5QWCVGK.js} +1 -1
  102. package/dist/{chunk-H6LXAH66.js → chunk-TD6MQUV2.js} +1 -1
  103. package/dist/{chunk-WXI5ONCU.js → chunk-TJ6NLLAY.js} +4 -4
  104. package/dist/{chunk-CZZXE6BL.js → chunk-TLDCCPUZ.js} +1 -1
  105. package/dist/{chunk-YZYBQZVL.js → chunk-XDAIFVGC.js} +1539 -587
  106. package/dist/{ci-workflow-Z4IUJBZL.js → ci-workflow-LE3QF4FP.js} +2 -1
  107. package/dist/{create-skill-NDXQSTIK.js → create-skill-U3XCFRZN.js} +2 -2
  108. package/dist/dist-OEXTQQZC.js +92 -0
  109. package/dist/{dist-KV2ICL5X.js → dist-YIKUBJLQ.js} +56 -3
  110. package/dist/{docs-2PCZVSGB.js → docs-F5G7NAFF.js} +4 -3
  111. package/dist/{engine-EOXMI5MD.js → engine-LX5RVGXN.js} +2 -1
  112. package/dist/{entropy-VGXXBIGX.js → entropy-A5Q2USYX.js} +3 -2
  113. package/dist/{feedback-VTSPL3O7.js → feedback-2EU25RIW.js} +1 -1
  114. package/dist/{generate-agent-definitions-QICSCGXB.js → generate-agent-definitions-HNJHO5YQ.js} +2 -1
  115. package/dist/{graph-loader-KMHDQYDT.js → graph-loader-XULF5QF7.js} +1 -1
  116. package/dist/index.d.ts +66 -10
  117. package/dist/index.js +27 -23
  118. package/dist/{loader-7S4FYAPP.js → loader-GWIEW4HM.js} +2 -1
  119. package/dist/{mcp-DF25USTE.js → mcp-ID3LR6JB.js} +15 -13
  120. package/dist/{performance-RV4DUMFI.js → performance-YAY2A6A6.js} +4 -3
  121. package/dist/{review-pipeline-7KQJB4SI.js → review-pipeline-YD4WI3JM.js} +1 -1
  122. package/dist/{runtime-XKOHGGRC.js → runtime-UJ4YO4CA.js} +2 -1
  123. package/dist/{security-NLWTMK3G.js → security-IBSUKMVD.js} +1 -1
  124. package/dist/{skill-executor-XEVDGXUM.js → skill-executor-2BZQLHYN.js} +2 -2
  125. package/dist/{validate-VHFE6J6O.js → validate-NHXWKMCR.js} +3 -2
  126. package/dist/{validate-cross-check-PFRKABCS.js → validate-cross-check-R3GV2MLM.js} +2 -1
  127. package/package.json +4 -4
@@ -33,7 +33,7 @@ var createSelfReviewDefinition = {
33
33
  };
34
34
  async function handleCreateSelfReview(input) {
35
35
  try {
36
- const { parseDiff, createSelfReview } = await import("./dist-KV2ICL5X.js");
36
+ const { parseDiff, createSelfReview } = await import("./dist-YIKUBJLQ.js");
37
37
  const parseResult = parseDiff(input.diff);
38
38
  if (!parseResult.ok) {
39
39
  return resultToMcpResponse(parseResult);
@@ -53,11 +53,11 @@ async function handleCreateSelfReview(input) {
53
53
  ...input.maxFileCount !== void 0 ? { maxChangedFiles: input.maxFileCount } : {}
54
54
  }
55
55
  };
56
- const { loadGraphStore } = await import("./graph-loader-KMHDQYDT.js");
56
+ const { loadGraphStore } = await import("./graph-loader-XULF5QF7.js");
57
57
  const store = await loadGraphStore(projectPath);
58
58
  let graphData;
59
59
  if (store) {
60
- const { GraphFeedbackAdapter } = await import("./dist-U7EAO6T2.js");
60
+ const { GraphFeedbackAdapter } = await import("./dist-OEXTQQZC.js");
61
61
  const adapter = new GraphFeedbackAdapter(store);
62
62
  const changedFiles = parseResult.value.files.map((f) => f.path);
63
63
  const impact = adapter.computeImpactData(changedFiles);
@@ -119,7 +119,7 @@ var analyzeDiffDefinition = {
119
119
  };
120
120
  async function handleAnalyzeDiff(input) {
121
121
  try {
122
- const { parseDiff, analyzeDiff } = await import("./dist-KV2ICL5X.js");
122
+ const { parseDiff, analyzeDiff } = await import("./dist-YIKUBJLQ.js");
123
123
  const parseResult = parseDiff(input.diff);
124
124
  if (!parseResult.ok) {
125
125
  return resultToMcpResponse(parseResult);
@@ -139,10 +139,10 @@ async function handleAnalyzeDiff(input) {
139
139
  let graphImpactData;
140
140
  if (input.path) {
141
141
  try {
142
- const { loadGraphStore } = await import("./graph-loader-KMHDQYDT.js");
142
+ const { loadGraphStore } = await import("./graph-loader-XULF5QF7.js");
143
143
  const store = await loadGraphStore(sanitizePath(input.path));
144
144
  if (store) {
145
- const { GraphFeedbackAdapter } = await import("./dist-U7EAO6T2.js");
145
+ const { GraphFeedbackAdapter } = await import("./dist-OEXTQQZC.js");
146
146
  const adapter = new GraphFeedbackAdapter(store);
147
147
  const changedFiles = parseResult.value.files.map((f) => f.path);
148
148
  const impact = adapter.computeImpactData(changedFiles);
@@ -195,7 +195,7 @@ var requestPeerReviewDefinition = {
195
195
  };
196
196
  async function handleRequestPeerReview(input) {
197
197
  try {
198
- const { parseDiff, requestPeerReview } = await import("./dist-KV2ICL5X.js");
198
+ const { parseDiff, requestPeerReview } = await import("./dist-YIKUBJLQ.js");
199
199
  const parseResult = parseDiff(input.diff);
200
200
  if (!parseResult.ok) {
201
201
  return resultToMcpResponse(parseResult);
@@ -206,10 +206,10 @@ async function handleRequestPeerReview(input) {
206
206
  ...input.context ? { metadata: { context: input.context } } : {}
207
207
  };
208
208
  try {
209
- const { loadGraphStore } = await import("./graph-loader-KMHDQYDT.js");
209
+ const { loadGraphStore } = await import("./graph-loader-XULF5QF7.js");
210
210
  const store = await loadGraphStore(sanitizePath(input.path));
211
211
  if (store) {
212
- const { GraphFeedbackAdapter } = await import("./dist-U7EAO6T2.js");
212
+ const { GraphFeedbackAdapter } = await import("./dist-OEXTQQZC.js");
213
213
  const adapter = new GraphFeedbackAdapter(store);
214
214
  const changedFiles = parseResult.value.files.map((f) => f.path);
215
215
  const impactData = adapter.computeImpactData(changedFiles);
@@ -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-KV2ICL5X.js");
52
+ const core = await import("./dist-YIKUBJLQ.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-KV2ICL5X.js");
71
+ const core = await import("./dist-YIKUBJLQ.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);
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-3WGJMBKH.js";
5
5
  import {
6
6
  ArchConfigSchema
7
- } from "./chunk-YZYBQZVL.js";
7
+ } from "./chunk-XDAIFVGC.js";
8
8
  import {
9
9
  Err,
10
10
  Ok
@@ -54,7 +54,9 @@ var PhaseGateMappingSchema = z.object({
54
54
  /** Pattern for implementation files */
55
55
  implPattern: z.string(),
56
56
  /** Pattern for corresponding specification files */
57
- specPattern: z.string()
57
+ specPattern: z.string(),
58
+ /** When true, validate that the spec file contains a numbered requirements section */
59
+ contentValidation: z.boolean().default(false)
58
60
  });
59
61
  var PhaseGatesConfigSchema = z.object({
60
62
  /** Whether phase gate checks are enabled */
@@ -245,6 +247,19 @@ var HarnessConfigSchema = z.object({
245
247
  /** Override the tier of specific skills (e.g., promote a Tier 3 skill to Tier 2) */
246
248
  tierOverrides: z.record(z.string(), z.number().int().min(1).max(3)).default({})
247
249
  }).optional(),
250
+ /** Spec-to-implementation traceability check settings */
251
+ traceability: z.object({
252
+ /** Whether traceability checks are enabled */
253
+ enabled: z.boolean().default(true),
254
+ /** Severity level when traceability coverage is below threshold */
255
+ severity: z.enum(["error", "warning"]).default("warning"),
256
+ /** Minimum required coverage percentage (0-100) */
257
+ minCoverage: z.number().min(0).max(100).default(0),
258
+ /** Glob patterns for specs to include in traceability checks */
259
+ includeSpecs: z.array(z.string()).default(["docs/changes/*/proposal.md"]),
260
+ /** Glob patterns for specs to exclude from traceability checks */
261
+ excludeSpecs: z.array(z.string()).default([])
262
+ }).optional(),
248
263
  /** Roadmap sync and tracker integration settings */
249
264
  roadmap: RoadmapConfigSchema.optional(),
250
265
  /** How often (in ms) to check for CLI updates */
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  findConfigFile,
3
3
  loadConfig
4
- } from "./chunk-SZ5TGZMI.js";
4
+ } from "./chunk-GJRUIXUK.js";
5
5
  import {
6
6
  resultToMcpResponse
7
7
  } from "./chunk-IDZNPTYD.js";
@@ -46,18 +46,18 @@ async function handleCheckDocs(input) {
46
46
  const projectPath = sanitizePath(input.path);
47
47
  const scope = input.scope ?? "coverage";
48
48
  if (scope === "integrity") {
49
- const { validateKnowledgeMap } = await import("./dist-KV2ICL5X.js");
49
+ const { validateKnowledgeMap } = await import("./dist-YIKUBJLQ.js");
50
50
  const result2 = await validateKnowledgeMap(projectPath);
51
51
  return resultToMcpResponse(result2);
52
52
  }
53
53
  if (scope === "all") {
54
- const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-KV2ICL5X.js");
54
+ const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-YIKUBJLQ.js");
55
55
  const domain2 = input.domain ?? "src";
56
- const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-KMHDQYDT.js");
56
+ const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-XULF5QF7.js");
57
57
  const store2 = await loadGraphStore2(projectPath);
58
58
  let graphCoverage2;
59
59
  if (store2) {
60
- const { Assembler } = await import("./dist-U7EAO6T2.js");
60
+ const { Assembler } = await import("./dist-OEXTQQZC.js");
61
61
  const assembler = new Assembler(store2);
62
62
  const report = assembler.checkCoverage();
63
63
  graphCoverage2 = {
@@ -90,13 +90,13 @@ async function handleCheckDocs(input) {
90
90
  }
91
91
  return resultToMcpResponse(Ok({ coverage, integrity }));
92
92
  }
93
- const { checkDocCoverage } = await import("./dist-KV2ICL5X.js");
93
+ const { checkDocCoverage } = await import("./dist-YIKUBJLQ.js");
94
94
  const domain = input.domain ?? "src";
95
- const { loadGraphStore } = await import("./graph-loader-KMHDQYDT.js");
95
+ const { loadGraphStore } = await import("./graph-loader-XULF5QF7.js");
96
96
  const store = await loadGraphStore(projectPath);
97
97
  let graphCoverage;
98
98
  if (store) {
99
- const { Assembler } = await import("./dist-U7EAO6T2.js");
99
+ const { Assembler } = await import("./dist-OEXTQQZC.js");
100
100
  const assembler = new Assembler(store);
101
101
  const report = assembler.checkCoverage();
102
102
  graphCoverage = {
@@ -45,7 +45,7 @@ var runCodeReviewDefinition = {
45
45
  };
46
46
  async function handleRunCodeReview(input) {
47
47
  try {
48
- const { parseDiff, runReviewPipeline } = await import("./dist-KV2ICL5X.js");
48
+ const { parseDiff, runReviewPipeline } = await import("./dist-YIKUBJLQ.js");
49
49
  const parseResult = parseDiff(input.diff);
50
50
  if (!parseResult.ok) {
51
51
  return {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  findConfigFile,
3
3
  loadConfig
4
- } from "./chunk-SZ5TGZMI.js";
4
+ } from "./chunk-GJRUIXUK.js";
5
5
  import {
6
6
  resultToMcpResponse
7
7
  } from "./chunk-IDZNPTYD.js";
@@ -31,7 +31,7 @@ var checkPerformanceDefinition = {
31
31
  };
32
32
  async function handleCheckPerformance(input) {
33
33
  try {
34
- const { EntropyAnalyzer } = await import("./dist-KV2ICL5X.js");
34
+ const { EntropyAnalyzer } = await import("./dist-YIKUBJLQ.js");
35
35
  const typeFilter = input.type ?? "all";
36
36
  const projectPath = sanitizePath(input.path);
37
37
  let entryPoints;
@@ -54,10 +54,10 @@ async function handleCheckPerformance(input) {
54
54
  });
55
55
  let graphOptions;
56
56
  try {
57
- const { loadGraphStore } = await import("./graph-loader-KMHDQYDT.js");
57
+ const { loadGraphStore } = await import("./graph-loader-XULF5QF7.js");
58
58
  const store = await loadGraphStore(projectPath);
59
59
  if (store) {
60
- const { GraphComplexityAdapter, GraphCouplingAdapter } = await import("./dist-U7EAO6T2.js");
60
+ const { GraphComplexityAdapter, GraphCouplingAdapter } = await import("./dist-OEXTQQZC.js");
61
61
  const complexityAdapter = new GraphComplexityAdapter(store);
62
62
  const couplingAdapter = new GraphCouplingAdapter(store);
63
63
  graphOptions = {
@@ -94,7 +94,7 @@ var getPerfBaselinesDefinition = {
94
94
  };
95
95
  async function handleGetPerfBaselines(input) {
96
96
  try {
97
- const { BaselineManager } = await import("./dist-KV2ICL5X.js");
97
+ const { BaselineManager } = await import("./dist-YIKUBJLQ.js");
98
98
  const manager = new BaselineManager(sanitizePath(input.path));
99
99
  const baselines = manager.load();
100
100
  return resultToMcpResponse(
@@ -142,7 +142,7 @@ var updatePerfBaselinesDefinition = {
142
142
  };
143
143
  async function handleUpdatePerfBaselines(input) {
144
144
  try {
145
- const { BaselineManager } = await import("./dist-KV2ICL5X.js");
145
+ const { BaselineManager } = await import("./dist-YIKUBJLQ.js");
146
146
  const manager = new BaselineManager(sanitizePath(input.path));
147
147
  manager.save(input.results, input.commitHash);
148
148
  const updated = manager.load();
@@ -172,7 +172,7 @@ var getCriticalPathsDefinition = {
172
172
  };
173
173
  async function handleGetCriticalPaths(input) {
174
174
  try {
175
- const { CriticalPathResolver } = await import("./dist-KV2ICL5X.js");
175
+ const { CriticalPathResolver } = await import("./dist-YIKUBJLQ.js");
176
176
  const resolver = new CriticalPathResolver(sanitizePath(input.path));
177
177
  const result = await resolver.resolve();
178
178
  return resultToMcpResponse(Ok(result));
@@ -52,6 +52,13 @@ var SkillCursorSchema = z.object({
52
52
  var SkillCodexSchema = z.object({
53
53
  instructions_override: z.string().optional()
54
54
  });
55
+ var SkillAddressSchema = z.object({
56
+ signal: z.string(),
57
+ hard: z.boolean().optional(),
58
+ metric: z.string().optional(),
59
+ threshold: z.number().optional(),
60
+ weight: z.number().min(0).max(1).optional()
61
+ });
55
62
  var SkillMetadataSchema = z.object({
56
63
  name: z.string().regex(/^[a-z][a-z0-9-]*$/, "Name must be lowercase with hyphens"),
57
64
  version: z.string().regex(/^\d+\.\d+\.\d+$/, "Version must be semver format"),
@@ -72,7 +79,8 @@ var SkillMetadataSchema = z.object({
72
79
  keywords: z.array(z.string()).default([]),
73
80
  stack_signals: z.array(z.string()).default([]),
74
81
  cursor: SkillCursorSchema.optional(),
75
- codex: SkillCodexSchema.optional()
82
+ codex: SkillCodexSchema.optional(),
83
+ addresses: z.array(SkillAddressSchema).default([])
76
84
  });
77
85
 
78
86
  export {