@harness-engineering/cli 1.20.0 → 1.21.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 (88) hide show
  1. package/dist/agents/skills/claude-code/harness-accessibility/skill.yaml +20 -0
  2. package/dist/agents/skills/claude-code/harness-design/skill.yaml +20 -0
  3. package/dist/agents/skills/claude-code/harness-design-mobile/skill.yaml +20 -0
  4. package/dist/agents/skills/claude-code/harness-design-system/skill.yaml +22 -0
  5. package/dist/agents/skills/claude-code/harness-design-web/skill.yaml +22 -0
  6. package/dist/agents/skills/claude-code/harness-diagnostics/skill.yaml +19 -0
  7. package/dist/agents/skills/claude-code/harness-git-workflow/skill.yaml +15 -0
  8. package/dist/agents/skills/claude-code/harness-i18n/skill.yaml +22 -0
  9. package/dist/agents/skills/claude-code/harness-i18n-process/skill.yaml +15 -0
  10. package/dist/agents/skills/claude-code/harness-i18n-workflow/skill.yaml +19 -0
  11. package/dist/agents/skills/claude-code/harness-perf-tdd/skill.yaml +20 -0
  12. package/dist/agents/skills/claude-code/harness-pre-commit-review/skill.yaml +18 -0
  13. package/dist/agents/skills/claude-code/harness-security-review/skill.yaml +23 -0
  14. package/dist/agents/skills/codex/harness-accessibility/skill.yaml +20 -0
  15. package/dist/agents/skills/codex/harness-design/skill.yaml +20 -0
  16. package/dist/agents/skills/codex/harness-design-mobile/skill.yaml +20 -0
  17. package/dist/agents/skills/codex/harness-design-system/skill.yaml +22 -0
  18. package/dist/agents/skills/codex/harness-design-web/skill.yaml +22 -0
  19. package/dist/agents/skills/codex/harness-diagnostics/skill.yaml +19 -0
  20. package/dist/agents/skills/codex/harness-git-workflow/skill.yaml +15 -0
  21. package/dist/agents/skills/codex/harness-i18n/skill.yaml +22 -0
  22. package/dist/agents/skills/codex/harness-i18n-process/skill.yaml +15 -0
  23. package/dist/agents/skills/codex/harness-i18n-workflow/skill.yaml +19 -0
  24. package/dist/agents/skills/codex/harness-perf-tdd/skill.yaml +20 -0
  25. package/dist/agents/skills/codex/harness-pre-commit-review/skill.yaml +18 -0
  26. package/dist/agents/skills/codex/harness-security-review/skill.yaml +23 -0
  27. package/dist/agents/skills/cursor/harness-accessibility/skill.yaml +20 -0
  28. package/dist/agents/skills/cursor/harness-design/skill.yaml +20 -0
  29. package/dist/agents/skills/cursor/harness-design-mobile/skill.yaml +20 -0
  30. package/dist/agents/skills/cursor/harness-design-system/skill.yaml +22 -0
  31. package/dist/agents/skills/cursor/harness-design-web/skill.yaml +22 -0
  32. package/dist/agents/skills/cursor/harness-diagnostics/skill.yaml +19 -0
  33. package/dist/agents/skills/cursor/harness-git-workflow/skill.yaml +15 -0
  34. package/dist/agents/skills/cursor/harness-i18n/skill.yaml +22 -0
  35. package/dist/agents/skills/cursor/harness-i18n-process/skill.yaml +15 -0
  36. package/dist/agents/skills/cursor/harness-i18n-workflow/skill.yaml +19 -0
  37. package/dist/agents/skills/cursor/harness-perf-tdd/skill.yaml +20 -0
  38. package/dist/agents/skills/cursor/harness-pre-commit-review/skill.yaml +18 -0
  39. package/dist/agents/skills/cursor/harness-security-review/skill.yaml +23 -0
  40. package/dist/agents/skills/gemini-cli/harness-accessibility/skill.yaml +20 -0
  41. package/dist/agents/skills/gemini-cli/harness-design/skill.yaml +20 -0
  42. package/dist/agents/skills/gemini-cli/harness-design-mobile/skill.yaml +20 -0
  43. package/dist/agents/skills/gemini-cli/harness-design-system/skill.yaml +22 -0
  44. package/dist/agents/skills/gemini-cli/harness-design-web/skill.yaml +22 -0
  45. package/dist/agents/skills/gemini-cli/harness-diagnostics/skill.yaml +19 -0
  46. package/dist/agents/skills/gemini-cli/harness-git-workflow/skill.yaml +15 -0
  47. package/dist/agents/skills/gemini-cli/harness-i18n/skill.yaml +22 -0
  48. package/dist/agents/skills/gemini-cli/harness-i18n-process/skill.yaml +15 -0
  49. package/dist/agents/skills/gemini-cli/harness-i18n-workflow/skill.yaml +19 -0
  50. package/dist/agents/skills/gemini-cli/harness-perf-tdd/skill.yaml +20 -0
  51. package/dist/agents/skills/gemini-cli/harness-pre-commit-review/skill.yaml +18 -0
  52. package/dist/agents/skills/gemini-cli/harness-security-review/skill.yaml +23 -0
  53. package/dist/{agents-md-WHXVPOK2.js → agents-md-TDTLYAQU.js} +1 -1
  54. package/dist/{architecture-45YCLD26.js → architecture-NANP4XPE.js} +2 -2
  55. package/dist/bin/harness-mcp.js +11 -11
  56. package/dist/bin/harness.js +13 -13
  57. package/dist/{check-phase-gate-2VXVOUJ5.js → check-phase-gate-I4NQOCSU.js} +3 -3
  58. package/dist/{chunk-V73TEHIF.js → chunk-6GEYPBDU.js} +3 -3
  59. package/dist/{chunk-PDOSLTWP.js → chunk-7G2ZUTZA.js} +1 -1
  60. package/dist/{chunk-LEWXD6PR.js → chunk-H6LXAH66.js} +1 -1
  61. package/dist/{chunk-A33LHIRD.js → chunk-HUDEBSR2.js} +1 -1
  62. package/dist/{chunk-45ZJPG24.js → chunk-L6LTNZQZ.js} +1 -1
  63. package/dist/{chunk-LVJ7SCD7.js → chunk-SPUK5W4W.js} +2 -2
  64. package/dist/{chunk-YDOGGQSF.js → chunk-SZ5TGZMI.js} +1 -1
  65. package/dist/{chunk-YL4UHE52.js → chunk-TMSGI27F.js} +134 -110
  66. package/dist/{chunk-RJFWCL6M.js → chunk-UEKQ5G3V.js} +14 -14
  67. package/dist/{chunk-PDEEQJHH.js → chunk-UVJFBKCX.js} +5 -5
  68. package/dist/{chunk-4U4V7A6U.js → chunk-WXI5ONCU.js} +2 -2
  69. package/dist/{chunk-H6KZAGHZ.js → chunk-YF5ROTWR.js} +4 -4
  70. package/dist/{chunk-IC5CZSHF.js → chunk-YZYBQZVL.js} +10 -6
  71. package/dist/{ci-workflow-HWX5OVLI.js → ci-workflow-Z4IUJBZL.js} +1 -1
  72. package/dist/{dist-WHL3NN5S.js → dist-KV2ICL5X.js} +1 -1
  73. package/dist/{docs-FJFY7GF2.js → docs-2PCZVSGB.js} +3 -3
  74. package/dist/{engine-R5BZHIZB.js → engine-EOXMI5MD.js} +1 -1
  75. package/dist/{entropy-Y2GE4MYS.js → entropy-VGXXBIGX.js} +2 -2
  76. package/dist/{feedback-FKZ7GMPO.js → feedback-VTSPL3O7.js} +1 -1
  77. package/dist/{generate-agent-definitions-LN3A45OL.js → generate-agent-definitions-QICSCGXB.js} +1 -1
  78. package/dist/index.d.ts +10 -8
  79. package/dist/index.js +13 -13
  80. package/dist/{loader-2TBQUFWX.js → loader-7S4FYAPP.js} +1 -1
  81. package/dist/{mcp-I7UP73GV.js → mcp-DF25USTE.js} +11 -11
  82. package/dist/{performance-BSOMMWK5.js → performance-RV4DUMFI.js} +3 -3
  83. package/dist/{review-pipeline-KUBHP3RV.js → review-pipeline-7KQJB4SI.js} +1 -1
  84. package/dist/{runtime-BN7KGJAO.js → runtime-XKOHGGRC.js} +1 -1
  85. package/dist/{security-3T4JGDZP.js → security-NLWTMK3G.js} +1 -1
  86. package/dist/{validate-R5WGB2AV.js → validate-VHFE6J6O.js} +2 -2
  87. package/dist/{validate-cross-check-76Z5P6EX.js → validate-cross-check-PFRKABCS.js} +1 -1
  88. package/package.json +4 -4
@@ -6,7 +6,7 @@ import {
6
6
  OutputMode,
7
7
  createCheckPhaseGateCommand,
8
8
  findFiles
9
- } from "./chunk-PDOSLTWP.js";
9
+ } from "./chunk-7G2ZUTZA.js";
10
10
  import {
11
11
  createGenerateAgentDefinitionsCommand,
12
12
  generateAgentDefinitions
@@ -50,14 +50,14 @@ import {
50
50
  handleGetImpact,
51
51
  handleOrphanDeletion,
52
52
  persistToolingConfig
53
- } from "./chunk-YL4UHE52.js";
53
+ } from "./chunk-TMSGI27F.js";
54
54
  import {
55
55
  VALID_PLATFORMS
56
56
  } from "./chunk-CJDVBBPB.js";
57
57
  import {
58
58
  findConfigFile,
59
59
  resolveConfig
60
- } from "./chunk-YDOGGQSF.js";
60
+ } from "./chunk-SZ5TGZMI.js";
61
61
  import {
62
62
  resolveGlobalSkillsDir,
63
63
  resolvePersonasDir,
@@ -135,7 +135,7 @@ import {
135
135
  validateKnowledgeMap,
136
136
  writeConfig,
137
137
  writeLockfile
138
- } from "./chunk-IC5CZSHF.js";
138
+ } from "./chunk-YZYBQZVL.js";
139
139
  import {
140
140
  Err,
141
141
  Ok
@@ -221,7 +221,7 @@ function createValidateCommand() {
221
221
  process.exit(result.error.exitCode);
222
222
  }
223
223
  if (opts.crossCheck) {
224
- const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-76Z5P6EX.js");
224
+ const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-PFRKABCS.js");
225
225
  const cwd = process.cwd();
226
226
  const specsDir = path.join(cwd, "docs", "specs");
227
227
  const plansDir = path.join(cwd, "docs", "plans");
@@ -578,7 +578,7 @@ function registerBenchCommand(perf) {
578
578
  perf.command("bench [glob]").description("Run benchmarks via vitest bench").action(async (glob, _opts, cmd) => {
579
579
  const globalOpts = cmd.optsWithGlobals();
580
580
  const cwd = process.cwd();
581
- const { BenchmarkRunner } = await import("./dist-WHL3NN5S.js");
581
+ const { BenchmarkRunner } = await import("./dist-KV2ICL5X.js");
582
582
  const runner = new BenchmarkRunner();
583
583
  const benchFiles = runner.discover(cwd, glob);
584
584
  if (benchFiles.length === 0) {
@@ -646,7 +646,7 @@ function registerBaselinesCommands(perf) {
646
646
  baselines.command("update").description("Update baselines from latest benchmark run").action(async (_opts, cmd) => {
647
647
  const globalOpts = cmd.optsWithGlobals();
648
648
  const cwd = process.cwd();
649
- const { BenchmarkRunner } = await import("./dist-WHL3NN5S.js");
649
+ const { BenchmarkRunner } = await import("./dist-KV2ICL5X.js");
650
650
  const runner = new BenchmarkRunner();
651
651
  const manager = new BaselineManager(cwd);
652
652
  logger.info("Running benchmarks to update baselines...");
@@ -679,7 +679,7 @@ function registerReportCommand(perf) {
679
679
  perf.command("report").description("Full performance report with metrics, trends, and hotspots").action(async (_opts, cmd) => {
680
680
  const globalOpts = cmd.optsWithGlobals();
681
681
  const cwd = process.cwd();
682
- const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-WHL3NN5S.js");
682
+ const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-KV2ICL5X.js");
683
683
  const analyzer = new EntropyAnalyzer2({
684
684
  rootDir: path5.resolve(cwd),
685
685
  analyze: { complexity: true, coupling: true }
@@ -5095,7 +5095,7 @@ function createGraphCommand() {
5095
5095
  import { Command as Command50 } from "commander";
5096
5096
  function createMcpCommand() {
5097
5097
  return new Command50("mcp").description("Start the MCP (Model Context Protocol) server on stdio").option("--tools <tools...>", "Only register the specified tools (used by Cursor integration)").action(async (opts) => {
5098
- const { startServer: startServer2 } = await import("./mcp-I7UP73GV.js");
5098
+ const { startServer: startServer2 } = await import("./mcp-DF25USTE.js");
5099
5099
  await startServer2(opts.tools);
5100
5100
  });
5101
5101
  }
@@ -6594,7 +6594,7 @@ function createIntegrationsCommand() {
6594
6594
  // src/commands/usage.ts
6595
6595
  import { Command as Command67 } from "commander";
6596
6596
  async function loadAndPriceRecords(cwd, includeClaudeSessions = false) {
6597
- const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-WHL3NN5S.js");
6597
+ const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-KV2ICL5X.js");
6598
6598
  const records = readCostRecords(cwd);
6599
6599
  if (includeClaudeSessions) {
6600
6600
  const ccRecords = parseCCRecords();
@@ -6638,7 +6638,7 @@ function registerDailyCommand(usage) {
6638
6638
  }
6639
6639
  return;
6640
6640
  }
6641
- const { aggregateByDay } = await import("./dist-WHL3NN5S.js");
6641
+ const { aggregateByDay } = await import("./dist-KV2ICL5X.js");
6642
6642
  const dailyData = aggregateByDay(records);
6643
6643
  const limited = dailyData.slice(0, days);
6644
6644
  if (globalOpts.json) {
@@ -6674,7 +6674,7 @@ function registerSessionsCommand(usage) {
6674
6674
  }
6675
6675
  return;
6676
6676
  }
6677
- const { aggregateBySession } = await import("./dist-WHL3NN5S.js");
6677
+ const { aggregateBySession } = await import("./dist-KV2ICL5X.js");
6678
6678
  const sessionData = aggregateBySession(records);
6679
6679
  const limited = sessionData.slice(0, limit);
6680
6680
  if (globalOpts.json) {
@@ -6703,7 +6703,7 @@ function registerSessionCommand(usage) {
6703
6703
  const globalOpts = cmd.optsWithGlobals();
6704
6704
  const cwd = process.cwd();
6705
6705
  const records = await loadAndPriceRecords(cwd, globalOpts.includeClaudeSessions);
6706
- const { aggregateBySession } = await import("./dist-WHL3NN5S.js");
6706
+ const { aggregateBySession } = await import("./dist-KV2ICL5X.js");
6707
6707
  const sessionData = aggregateBySession(records);
6708
6708
  const match = sessionData.find((s) => s.sessionId === id);
6709
6709
  if (!match) {
@@ -6769,7 +6769,7 @@ function registerLatestCommand(usage) {
6769
6769
  }
6770
6770
  return;
6771
6771
  }
6772
- const { aggregateBySession } = await import("./dist-WHL3NN5S.js");
6772
+ const { aggregateBySession } = await import("./dist-KV2ICL5X.js");
6773
6773
  const sessionData = aggregateBySession(records);
6774
6774
  const latest = sessionData[0];
6775
6775
  if (!latest) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  findConfigFile,
3
3
  loadConfig
4
- } from "./chunk-YDOGGQSF.js";
4
+ } from "./chunk-SZ5TGZMI.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-WHL3NN5S.js");
34
+ const { EntropyAnalyzer } = await import("./dist-KV2ICL5X.js");
35
35
  const typeFilter = input.type ?? "all";
36
36
  const projectPath = sanitizePath(input.path);
37
37
  let entryPoints;
@@ -94,7 +94,7 @@ var getPerfBaselinesDefinition = {
94
94
  };
95
95
  async function handleGetPerfBaselines(input) {
96
96
  try {
97
- const { BaselineManager } = await import("./dist-WHL3NN5S.js");
97
+ const { BaselineManager } = await import("./dist-KV2ICL5X.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-WHL3NN5S.js");
145
+ const { BaselineManager } = await import("./dist-KV2ICL5X.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-WHL3NN5S.js");
175
+ const { CriticalPathResolver } = await import("./dist-KV2ICL5X.js");
176
176
  const resolver = new CriticalPathResolver(sanitizePath(input.path));
177
177
  const result = await resolver.resolve();
178
178
  return resultToMcpResponse(Ok(result));
@@ -123,7 +123,7 @@ function buildSummaryResponse(report) {
123
123
  }
124
124
  async function handleDetectEntropy(input) {
125
125
  try {
126
- const { EntropyAnalyzer } = await import("./dist-WHL3NN5S.js");
126
+ const { EntropyAnalyzer } = await import("./dist-KV2ICL5X.js");
127
127
  const typeFilter = input.type ?? "all";
128
128
  const analyzer = new EntropyAnalyzer({
129
129
  rootDir: sanitizePath(input.path),
@@ -142,7 +142,7 @@ async function handleDetectEntropy(input) {
142
142
  return resultToMcpResponse(result);
143
143
  }
144
144
  if (!result.ok) return resultToMcpResponse(result);
145
- const { createFixes, applyFixes, generateSuggestions } = await import("./dist-WHL3NN5S.js");
145
+ const { createFixes, applyFixes, generateSuggestions } = await import("./dist-KV2ICL5X.js");
146
146
  const report = result.value;
147
147
  const deadCode = report.deadCode;
148
148
  const fixTypesConfig = input.fixTypes ? { fixTypes: input.fixTypes } : void 0;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  findConfigFile,
3
3
  loadConfig
4
- } from "./chunk-YDOGGQSF.js";
4
+ } from "./chunk-SZ5TGZMI.js";
5
5
  import {
6
6
  resultToMcpResponse
7
7
  } from "./chunk-IDZNPTYD.js";
@@ -46,12 +46,12 @@ 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-WHL3NN5S.js");
49
+ const { validateKnowledgeMap } = await import("./dist-KV2ICL5X.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-WHL3NN5S.js");
54
+ const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-KV2ICL5X.js");
55
55
  const domain2 = input.domain ?? "src";
56
56
  const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-KMHDQYDT.js");
57
57
  const store2 = await loadGraphStore2(projectPath);
@@ -90,7 +90,7 @@ async function handleCheckDocs(input) {
90
90
  }
91
91
  return resultToMcpResponse(Ok({ coverage, integrity }));
92
92
  }
93
- const { checkDocCoverage } = await import("./dist-WHL3NN5S.js");
93
+ const { checkDocCoverage } = await import("./dist-KV2ICL5X.js");
94
94
  const domain = input.domain ?? "src";
95
95
  const { loadGraphStore } = await import("./graph-loader-KMHDQYDT.js");
96
96
  const store = await loadGraphStore(projectPath);
@@ -11980,6 +11980,13 @@ function labelsForStatus(status, config) {
11980
11980
  return [...base];
11981
11981
  }
11982
11982
  var RETRY_DEFAULTS = { maxRetries: 5, baseDelayMs: 1e3 };
11983
+ function parseRepoParts(repo) {
11984
+ const parts = (repo ?? "").split("/");
11985
+ if (parts.length !== 2 || !parts[0] || !parts[1]) {
11986
+ throw new Error(`Invalid repo format: "${repo}". Expected "owner/repo".`);
11987
+ }
11988
+ return { owner: parts[0], repo: parts[1] };
11989
+ }
11983
11990
  function sleep(ms) {
11984
11991
  return new Promise((resolve5) => setTimeout(resolve5, ms));
11985
11992
  }
@@ -12023,12 +12030,9 @@ var GitHubIssuesSyncAdapter = class {
12023
12030
  maxRetries: options.maxRetries ?? RETRY_DEFAULTS.maxRetries,
12024
12031
  baseDelayMs: options.baseDelayMs ?? RETRY_DEFAULTS.baseDelayMs
12025
12032
  };
12026
- const repoParts = (options.config.repo ?? "").split("/");
12027
- if (repoParts.length !== 2 || !repoParts[0] || !repoParts[1]) {
12028
- throw new Error(`Invalid repo format: "${options.config.repo}". Expected "owner/repo".`);
12029
- }
12030
- this.owner = repoParts[0];
12031
- this.repo = repoParts[1];
12033
+ const { owner, repo } = parseRepoParts(options.config.repo);
12034
+ this.owner = owner;
12035
+ this.repo = repo;
12032
12036
  }
12033
12037
  /**
12034
12038
  * Fetch all GitHub milestones and build the name -> ID cache.
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generateCIWorkflow
3
3
  } from "./chunk-SD3SQOZ2.js";
4
- import "./chunk-IC5CZSHF.js";
4
+ import "./chunk-YZYBQZVL.js";
5
5
  import "./chunk-ERS5EVUZ.js";
6
6
  export {
7
7
  generateCIWorkflow
@@ -291,7 +291,7 @@ import {
291
291
  writeSessionSummary,
292
292
  writeTaint,
293
293
  xssRules
294
- } from "./chunk-IC5CZSHF.js";
294
+ } from "./chunk-YZYBQZVL.js";
295
295
  import {
296
296
  Err,
297
297
  Ok,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  checkDocsDefinition,
3
3
  handleCheckDocs
4
- } from "./chunk-H6KZAGHZ.js";
5
- import "./chunk-YDOGGQSF.js";
4
+ } from "./chunk-YF5ROTWR.js";
5
+ import "./chunk-SZ5TGZMI.js";
6
6
  import "./chunk-IDZNPTYD.js";
7
7
  import "./chunk-W6Y7ZW3Y.js";
8
8
  import "./chunk-3WGJMBKH.js";
9
- import "./chunk-IC5CZSHF.js";
9
+ import "./chunk-YZYBQZVL.js";
10
10
  import "./chunk-ERS5EVUZ.js";
11
11
  export {
12
12
  checkDocsDefinition,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  TemplateEngine
3
3
  } from "./chunk-YLN34N65.js";
4
- import "./chunk-IC5CZSHF.js";
4
+ import "./chunk-YZYBQZVL.js";
5
5
  import "./chunk-ERS5EVUZ.js";
6
6
  export {
7
7
  TemplateEngine
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  detectEntropyDefinition,
3
3
  handleDetectEntropy
4
- } from "./chunk-4U4V7A6U.js";
4
+ } from "./chunk-WXI5ONCU.js";
5
5
  import "./chunk-IDZNPTYD.js";
6
6
  import "./chunk-W6Y7ZW3Y.js";
7
- import "./chunk-IC5CZSHF.js";
7
+ import "./chunk-YZYBQZVL.js";
8
8
  import "./chunk-ERS5EVUZ.js";
9
9
  export {
10
10
  detectEntropyDefinition,
@@ -5,7 +5,7 @@ import {
5
5
  handleCreateSelfReview,
6
6
  handleRequestPeerReview,
7
7
  requestPeerReviewDefinition
8
- } from "./chunk-V73TEHIF.js";
8
+ } from "./chunk-6GEYPBDU.js";
9
9
  import "./chunk-IDZNPTYD.js";
10
10
  import "./chunk-W6Y7ZW3Y.js";
11
11
  export {
@@ -7,7 +7,7 @@ import "./chunk-KET4QQZB.js";
7
7
  import "./chunk-CJDVBBPB.js";
8
8
  import "./chunk-N5G5QMS3.js";
9
9
  import "./chunk-3WGJMBKH.js";
10
- import "./chunk-IC5CZSHF.js";
10
+ import "./chunk-YZYBQZVL.js";
11
11
  import "./chunk-ERS5EVUZ.js";
12
12
  export {
13
13
  createGenerateAgentDefinitionsCommand,
package/dist/index.d.ts CHANGED
@@ -713,15 +713,15 @@ declare const HarnessConfigSchema: z.ZodObject<{
713
713
  thresholds: z.ZodDefault<z.ZodRecord<z.ZodEnum<["circular-deps", "layer-violations", "complexity", "coupling", "forbidden-imports", "module-size", "dependency-depth"]>, z.ZodUnion<[z.ZodNumber, z.ZodRecord<z.ZodString, z.ZodNumber>]>>>;
714
714
  modules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEnum<["circular-deps", "layer-violations", "complexity", "coupling", "forbidden-imports", "module-size", "dependency-depth"]>, z.ZodUnion<[z.ZodNumber, z.ZodRecord<z.ZodString, z.ZodNumber>]>>>>;
715
715
  }, "strip", z.ZodTypeAny, {
716
+ thresholds: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
717
+ modules: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
716
718
  enabled: boolean;
717
719
  baselinePath: string;
718
- thresholds: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
719
- modules: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
720
720
  }, {
721
+ thresholds?: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
722
+ modules?: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
721
723
  enabled?: boolean | undefined;
722
724
  baselinePath?: string | undefined;
723
- thresholds?: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
724
- modules?: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
725
725
  }>>;
726
726
  /** Skill loading, suggestion, and tier override settings */
727
727
  skills: z.ZodOptional<z.ZodObject<{
@@ -900,10 +900,10 @@ declare const HarnessConfigSchema: z.ZodObject<{
900
900
  dismissed: string[];
901
901
  } | undefined;
902
902
  architecture?: {
903
+ thresholds: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
904
+ modules: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
903
905
  enabled: boolean;
904
906
  baselinePath: string;
905
- thresholds: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
906
- modules: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
907
907
  } | undefined;
908
908
  roadmap?: {
909
909
  tracker?: {
@@ -1029,10 +1029,10 @@ declare const HarnessConfigSchema: z.ZodObject<{
1029
1029
  dismissed?: string[] | undefined;
1030
1030
  } | undefined;
1031
1031
  architecture?: {
1032
+ thresholds?: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
1033
+ modules?: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
1032
1034
  enabled?: boolean | undefined;
1033
1035
  baselinePath?: string | undefined;
1034
- thresholds?: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
1035
- modules?: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
1036
1036
  } | undefined;
1037
1037
  roadmap?: {
1038
1038
  tracker?: {
@@ -1504,6 +1504,8 @@ type ToolDefinition = {
1504
1504
  name: string;
1505
1505
  description: string;
1506
1506
  inputSchema: Record<string, unknown>;
1507
+ /** When true, output scanning is skipped for this tool (internal content, not external). */
1508
+ trustedOutput?: boolean;
1507
1509
  };
1508
1510
  declare function getToolDefinitions(): ToolDefinition[];
1509
1511
  declare function createHarnessServer(projectRoot?: string, toolFilter?: string[]): Server;
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  runScan,
13
13
  runUninstall,
14
14
  runUninstallConstraints
15
- } from "./chunk-RJFWCL6M.js";
15
+ } from "./chunk-UEKQ5G3V.js";
16
16
  import {
17
17
  generateCIWorkflow
18
18
  } from "./chunk-SD3SQOZ2.js";
@@ -20,7 +20,7 @@ import {
20
20
  OutputFormatter,
21
21
  OutputMode,
22
22
  runCheckPhaseGate
23
- } from "./chunk-PDOSLTWP.js";
23
+ } from "./chunk-7G2ZUTZA.js";
24
24
  import {
25
25
  AGENT_DESCRIPTIONS,
26
26
  DEFAULT_TOOLS,
@@ -63,23 +63,23 @@ import {
63
63
  generateSlashCommands,
64
64
  getToolDefinitions,
65
65
  startServer
66
- } from "./chunk-YL4UHE52.js";
67
- import "./chunk-4U4V7A6U.js";
68
- import "./chunk-PDEEQJHH.js";
69
- import "./chunk-V73TEHIF.js";
70
- import "./chunk-LEWXD6PR.js";
71
- import "./chunk-45ZJPG24.js";
66
+ } from "./chunk-TMSGI27F.js";
67
+ import "./chunk-WXI5ONCU.js";
68
+ import "./chunk-UVJFBKCX.js";
69
+ import "./chunk-6GEYPBDU.js";
70
+ import "./chunk-H6LXAH66.js";
71
+ import "./chunk-L6LTNZQZ.js";
72
72
  import "./chunk-CJDVBBPB.js";
73
- import "./chunk-LVJ7SCD7.js";
73
+ import "./chunk-SPUK5W4W.js";
74
74
  import "./chunk-CZZXE6BL.js";
75
- import "./chunk-A33LHIRD.js";
75
+ import "./chunk-HUDEBSR2.js";
76
76
  import "./chunk-H7Y5CKTM.js";
77
- import "./chunk-H6KZAGHZ.js";
77
+ import "./chunk-YF5ROTWR.js";
78
78
  import {
79
79
  findConfigFile,
80
80
  loadConfig,
81
81
  resolveConfig
82
- } from "./chunk-YDOGGQSF.js";
82
+ } from "./chunk-SZ5TGZMI.js";
83
83
  import "./chunk-IDZNPTYD.js";
84
84
  import "./chunk-W6Y7ZW3Y.js";
85
85
  import "./chunk-N5G5QMS3.js";
@@ -96,7 +96,7 @@ import {
96
96
  import {
97
97
  TemplateEngine
98
98
  } from "./chunk-YLN34N65.js";
99
- import "./chunk-IC5CZSHF.js";
99
+ import "./chunk-YZYBQZVL.js";
100
100
  import "./chunk-ERS5EVUZ.js";
101
101
  export {
102
102
  AGENT_DESCRIPTIONS,
@@ -2,7 +2,7 @@ import {
2
2
  listPersonas,
3
3
  loadPersona
4
4
  } from "./chunk-YQ6KC6TE.js";
5
- import "./chunk-IC5CZSHF.js";
5
+ import "./chunk-YZYBQZVL.js";
6
6
  import "./chunk-ERS5EVUZ.js";
7
7
  export {
8
8
  listPersonas,
@@ -2,21 +2,21 @@ import {
2
2
  createHarnessServer,
3
3
  getToolDefinitions,
4
4
  startServer
5
- } from "./chunk-YL4UHE52.js";
6
- import "./chunk-4U4V7A6U.js";
7
- import "./chunk-PDEEQJHH.js";
8
- import "./chunk-V73TEHIF.js";
9
- import "./chunk-LEWXD6PR.js";
10
- import "./chunk-45ZJPG24.js";
5
+ } from "./chunk-TMSGI27F.js";
6
+ import "./chunk-WXI5ONCU.js";
7
+ import "./chunk-UVJFBKCX.js";
8
+ import "./chunk-6GEYPBDU.js";
9
+ import "./chunk-H6LXAH66.js";
10
+ import "./chunk-L6LTNZQZ.js";
11
11
  import "./chunk-CJDVBBPB.js";
12
- import "./chunk-LVJ7SCD7.js";
12
+ import "./chunk-SPUK5W4W.js";
13
13
  import "./chunk-CZZXE6BL.js";
14
- import "./chunk-A33LHIRD.js";
14
+ import "./chunk-HUDEBSR2.js";
15
15
  import {
16
16
  resolveProjectConfig
17
17
  } from "./chunk-H7Y5CKTM.js";
18
- import "./chunk-H6KZAGHZ.js";
19
- import "./chunk-YDOGGQSF.js";
18
+ import "./chunk-YF5ROTWR.js";
19
+ import "./chunk-SZ5TGZMI.js";
20
20
  import {
21
21
  resultToMcpResponse
22
22
  } from "./chunk-IDZNPTYD.js";
@@ -24,7 +24,7 @@ import "./chunk-W6Y7ZW3Y.js";
24
24
  import "./chunk-N5G5QMS3.js";
25
25
  import "./chunk-3WGJMBKH.js";
26
26
  import "./chunk-HKUX2X7O.js";
27
- import "./chunk-IC5CZSHF.js";
27
+ import "./chunk-YZYBQZVL.js";
28
28
  import "./chunk-ERS5EVUZ.js";
29
29
  export {
30
30
  createHarnessServer,
@@ -7,12 +7,12 @@ import {
7
7
  handleGetPerfBaselines,
8
8
  handleUpdatePerfBaselines,
9
9
  updatePerfBaselinesDefinition
10
- } from "./chunk-PDEEQJHH.js";
11
- import "./chunk-YDOGGQSF.js";
10
+ } from "./chunk-UVJFBKCX.js";
11
+ import "./chunk-SZ5TGZMI.js";
12
12
  import "./chunk-IDZNPTYD.js";
13
13
  import "./chunk-W6Y7ZW3Y.js";
14
14
  import "./chunk-3WGJMBKH.js";
15
- import "./chunk-IC5CZSHF.js";
15
+ import "./chunk-YZYBQZVL.js";
16
16
  import "./chunk-ERS5EVUZ.js";
17
17
  export {
18
18
  checkPerformanceDefinition,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  handleRunCodeReview,
3
3
  runCodeReviewDefinition
4
- } from "./chunk-45ZJPG24.js";
4
+ } from "./chunk-L6LTNZQZ.js";
5
5
  import "./chunk-W6Y7ZW3Y.js";
6
6
  export {
7
7
  handleRunCodeReview,
@@ -2,7 +2,7 @@ import {
2
2
  generateRuntime
3
3
  } from "./chunk-FIAPHX37.js";
4
4
  import "./chunk-KET4QQZB.js";
5
- import "./chunk-IC5CZSHF.js";
5
+ import "./chunk-YZYBQZVL.js";
6
6
  import "./chunk-ERS5EVUZ.js";
7
7
  export {
8
8
  generateRuntime
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  handleRunSecurityScan,
3
3
  runSecurityScanDefinition
4
- } from "./chunk-LEWXD6PR.js";
4
+ } from "./chunk-H6LXAH66.js";
5
5
  import "./chunk-W6Y7ZW3Y.js";
6
6
  export {
7
7
  handleRunSecurityScan,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  handleValidateProject,
3
3
  validateToolDefinition
4
- } from "./chunk-LVJ7SCD7.js";
4
+ } from "./chunk-SPUK5W4W.js";
5
5
  import "./chunk-H7Y5CKTM.js";
6
6
  import "./chunk-W6Y7ZW3Y.js";
7
- import "./chunk-IC5CZSHF.js";
7
+ import "./chunk-YZYBQZVL.js";
8
8
  import "./chunk-ERS5EVUZ.js";
9
9
  export {
10
10
  handleValidateProject,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  runCrossCheck
3
3
  } from "./chunk-GZKSBLQL.js";
4
- import "./chunk-IC5CZSHF.js";
4
+ import "./chunk-YZYBQZVL.js";
5
5
  import "./chunk-ERS5EVUZ.js";
6
6
  export {
7
7
  runCrossCheck
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harness-engineering/cli",
3
- "version": "1.20.0",
3
+ "version": "1.21.0",
4
4
  "description": "CLI for Harness Engineering toolkit",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,11 +37,11 @@
37
37
  "web-tree-sitter": "^0.24.7",
38
38
  "yaml": "^2.8.3",
39
39
  "zod": "^3.25.76",
40
- "@harness-engineering/core": "0.19.0",
41
40
  "@harness-engineering/graph": "0.3.5",
42
41
  "@harness-engineering/linter-gen": "0.1.4",
43
- "@harness-engineering/types": "0.8.0",
44
- "@harness-engineering/orchestrator": "0.2.5"
42
+ "@harness-engineering/core": "0.19.0",
43
+ "@harness-engineering/orchestrator": "0.2.5",
44
+ "@harness-engineering/types": "0.8.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^22.19.15",