@harness-engineering/cli 2.7.0 → 2.7.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 (52) hide show
  1. package/dist/agents/skills/claude-code/naming-craft/SKILL.md +74 -2
  2. package/dist/agents/skills/codex/naming-craft/SKILL.md +74 -2
  3. package/dist/agents/skills/cursor/naming-craft/SKILL.md +74 -2
  4. package/dist/agents/skills/gemini-cli/naming-craft/SKILL.md +74 -2
  5. package/dist/{agents-md-267R2NUJ.js → agents-md-FKMKH6ZF.js} +3 -3
  6. package/dist/{analyzer-VY6DJVOU-WYKV3TTW.js → analyzer-H3AHBFSL-KPOPJYRB.js} +7 -7
  7. package/dist/{architecture-ZTEHGIHD.js → architecture-LUR2I67H.js} +4 -4
  8. package/dist/{assess-project-OKDW3YSK.js → assess-project-OJWECOP2.js} +1 -1
  9. package/dist/bin/harness-mcp.js +14 -14
  10. package/dist/bin/harness.js +23 -23
  11. package/dist/{check-phase-gate-YJWFDW66.js → check-phase-gate-HS5KYLRO.js} +4 -4
  12. package/dist/{chunk-MQG7FHXX.js → chunk-7AF6C5GE.js} +3 -3
  13. package/dist/{chunk-4EGPFB7V.js → chunk-7PLIWP7U.js} +961 -256
  14. package/dist/{chunk-WOXR6I3R.js → chunk-B2VAYLYI.js} +1 -1
  15. package/dist/{chunk-67RP7MLR.js → chunk-CZPOPMMI.js} +2 -2
  16. package/dist/{chunk-OLTVDPA2.js → chunk-FC4JPM6W.js} +2 -2
  17. package/dist/{chunk-CXAHK5PJ.js → chunk-FEKBXX2J.js} +6 -6
  18. package/dist/{chunk-B4OLYXZ4.js → chunk-FXZI6NJ2.js} +39 -4
  19. package/dist/{chunk-6T5AYG5S.js → chunk-GGSNWH7P.js} +2 -2
  20. package/dist/{chunk-ZKA3TGYS.js → chunk-INBTDBV2.js} +1 -1
  21. package/dist/{chunk-HMMSWRWR.js → chunk-KN3EMDZ5.js} +2 -2
  22. package/dist/{chunk-OQE6ME2Z.js → chunk-LECXPXS3.js} +1 -1
  23. package/dist/{chunk-HLPY3RHE.js → chunk-LGYXR2KZ.js} +799 -515
  24. package/dist/{chunk-QUPC37UB.js → chunk-LYIPI2SJ.js} +3 -3
  25. package/dist/{chunk-S7GEONXL.js → chunk-N5NSSLMU.js} +1 -1
  26. package/dist/{chunk-P7EO7USC.js → chunk-NIVWM7OW.js} +5 -5
  27. package/dist/{chunk-PARV3G2F.js → chunk-O2ASYKA6.js} +1 -1
  28. package/dist/{chunk-XTIPZUPR.js → chunk-PTHX545Q.js} +1 -1
  29. package/dist/{chunk-B3B64OPD.js → chunk-RJ2WEES5.js} +1 -1
  30. package/dist/{chunk-TIZ3L6CU.js → chunk-VI4IS55S.js} +6 -6
  31. package/dist/{chunk-VG6UK6G6.js → chunk-VSIRUZQP.js} +1 -1
  32. package/dist/{chunk-IY2TZLY5.js → chunk-WZY5U6NS.js} +4 -4
  33. package/dist/{chunk-W3PDVZ4I.js → chunk-Y4T6ENKQ.js} +8 -8
  34. package/dist/{chunk-Z2GUITAS.js → chunk-Z3TMCCZB.js} +3 -3
  35. package/dist/{ci-workflow-YGTQTNVC.js → ci-workflow-MDSTHJOY.js} +3 -3
  36. package/dist/{dist-XIJWWQ5N.js → dist-72ID44UE.js} +2 -2
  37. package/dist/{docs-KCTLXK2G.js → docs-2RFOJ6XY.js} +4 -4
  38. package/dist/{engine-J64WPH5K.js → engine-BSFKOGPN.js} +3 -3
  39. package/dist/{entropy-M27JUL3V.js → entropy-3UX6644G.js} +3 -3
  40. package/dist/{feedback-W25QO3OL.js → feedback-CVCFYND4.js} +1 -1
  41. package/dist/{generate-agent-definitions-RNMU5U5R.js → generate-agent-definitions-HZ3XENWO.js} +4 -4
  42. package/dist/index.d.ts +425 -6
  43. package/dist/index.js +23 -23
  44. package/dist/{loader-HZKJ5ABV.js → loader-6RHWU5FH.js} +3 -3
  45. package/dist/{mcp-NEAPIDTT.js → mcp-OYR26JDI.js} +14 -14
  46. package/dist/{performance-3AVQUDRG.js → performance-JJMIRXCH.js} +4 -4
  47. package/dist/{review-pipeline-KA7SGUXJ.js → review-pipeline-BHQZIXWZ.js} +3 -3
  48. package/dist/{runtime-IP6FVV5M.js → runtime-DALTAVTN.js} +3 -3
  49. package/dist/{security-EAR4FJWI.js → security-RMLMYFPB.js} +1 -1
  50. package/dist/{validate-EVH3UXIC.js → validate-R7DZRDFK.js} +4 -4
  51. package/dist/{validate-cross-check-SNE3SQOB.js → validate-cross-check-AUUZFNVL.js} +3 -3
  52. package/package.json +4 -4
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-IY2TZLY5.js";
3
+ } from "./chunk-WZY5U6NS.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-XIJWWQ5N.js");
30
+ const core = await import("./dist-72ID44UE.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-XIJWWQ5N.js");
117
+ const core = await import("./dist-72ID44UE.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
  resolveConfig
3
- } from "./chunk-B4OLYXZ4.js";
3
+ } from "./chunk-FXZI6NJ2.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-IY2TZLY5.js";
12
+ } from "./chunk-WZY5U6NS.js";
13
13
  import {
14
14
  Ok
15
15
  } from "./chunk-OH3NXXUY.js";
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  findConfigFile,
9
9
  loadConfig
10
- } from "./chunk-B4OLYXZ4.js";
10
+ } from "./chunk-FXZI6NJ2.js";
11
11
  import {
12
12
  init_dist
13
- } from "./chunk-IY2TZLY5.js";
13
+ } from "./chunk-WZY5U6NS.js";
14
14
  import {
15
15
  Ok
16
16
  } from "./chunk-OH3NXXUY.js";
@@ -35,7 +35,7 @@ var checkPerformanceDefinition = {
35
35
  };
36
36
  async function handleCheckPerformance(input) {
37
37
  try {
38
- const { EntropyAnalyzer } = await import("./dist-XIJWWQ5N.js");
38
+ const { EntropyAnalyzer } = await import("./dist-72ID44UE.js");
39
39
  const typeFilter = input.type ?? "all";
40
40
  const projectPath = sanitizePath(input.path);
41
41
  let entryPoints;
@@ -98,7 +98,7 @@ var getPerfBaselinesDefinition = {
98
98
  };
99
99
  async function handleGetPerfBaselines(input) {
100
100
  try {
101
- const { BaselineManager } = await import("./dist-XIJWWQ5N.js");
101
+ const { BaselineManager } = await import("./dist-72ID44UE.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-XIJWWQ5N.js");
149
+ const { BaselineManager } = await import("./dist-72ID44UE.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-XIJWWQ5N.js");
179
+ const { CriticalPathResolver } = await import("./dist-72ID44UE.js");
180
180
  const resolver = new CriticalPathResolver(sanitizePath(input.path));
181
181
  const result = await resolver.resolve();
182
182
  return resultToMcpResponse(Ok(result));
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-3WGJMBKH.js";
8
8
  import {
9
9
  init_dist as init_dist2
10
- } from "./chunk-IY2TZLY5.js";
10
+ } from "./chunk-WZY5U6NS.js";
11
11
  import {
12
12
  Err,
13
13
  Ok
@@ -29,6 +29,7 @@ import * as path from "path";
29
29
  init_dist2();
30
30
  init_dist();
31
31
  import { z } from "zod";
32
+ import { BackendDefSchema, RoutingConfigSchema } from "@harness-engineering/orchestrator";
32
33
  var LayerSchema = z.object({
33
34
  /** Human-readable name of the layer */
34
35
  name: z.string(),
@@ -55,7 +56,21 @@ var AgentConfigSchema = z.object({
55
56
  /** Maximum execution time in milliseconds */
56
57
  timeout: z.number().default(3e5),
57
58
  /** Optional list of skill IDs pre-authorized for the agent */
58
- skills: z.array(z.string()).optional()
59
+ skills: z.array(z.string()).optional(),
60
+ /**
61
+ * Named backend definitions (Spec 2 — multi-backend routing).
62
+ *
63
+ * Each entry maps a backend name (chosen by the project) to a backend
64
+ * type plus its connection details (model, endpoint, apiKey, etc.).
65
+ * Referenced from `craft.llm.backend`, from orchestrator routing rules,
66
+ * and from any future subsystem that needs a configured LLM backend.
67
+ *
68
+ * Schema is re-exported from @harness-engineering/orchestrator so this
69
+ * file and the orchestrator runtime validate against the same source.
70
+ */
71
+ backends: z.record(z.string(), BackendDefSchema).optional(),
72
+ /** Routing rules for orchestrator agent dispatch. */
73
+ routing: RoutingConfigSchema.optional()
59
74
  });
60
75
  var EntropyConfigSchema = z.object({
61
76
  /** Explicit entry points for reachability analysis (overrides auto-detection) */
@@ -351,6 +366,24 @@ var ComplianceConfigSchema = z.object({
351
366
  /** Branch naming convention settings */
352
367
  branching: BranchingConfigSchema.default({})
353
368
  });
369
+ var CraftConfigSchema = z.object({
370
+ llm: z.object({
371
+ /**
372
+ * Name of an entry in `agent.backends` to route craft LLM calls
373
+ * through. Supported backend types: claude, anthropic, openai,
374
+ * local, pi, mock. (gemini is declared in agent.backends but is
375
+ * not yet wired through the craft adapter.)
376
+ */
377
+ backend: z.string().optional(),
378
+ /**
379
+ * Special-case mode that doesn't correspond to a backend def.
380
+ * - `in-session` — defer prompts to the calling chat session
381
+ * via the two-step MCP flow (collect → finalize).
382
+ * - `mock` — deterministic mock provider, for tests / smoke runs.
383
+ */
384
+ mode: z.enum(["in-session", "mock"]).optional()
385
+ }).optional()
386
+ });
354
387
  var HarnessConfigSchema = z.object({
355
388
  /** Configuration schema version */
356
389
  version: z.literal(1),
@@ -402,6 +435,8 @@ var HarnessConfigSchema = z.object({
402
435
  phaseGates: PhaseGatesConfigSchema.optional(),
403
436
  /** Design system consistency settings */
404
437
  design: DesignConfigSchema.optional(),
438
+ /** Shared configuration for craft-pipeline ceiling skills (LLM-judgment) */
439
+ craft: CraftConfigSchema.optional(),
405
440
  /** Internationalization (i18n) settings */
406
441
  i18n: I18nConfigSchema.optional(),
407
442
  /** Code review settings */
@@ -453,7 +488,7 @@ var HarnessConfigSchema = z.object({
453
488
  connectors: z.record(z.string(), z.record(z.string(), z.unknown())).default({})
454
489
  }).optional(),
455
490
  /**
456
- * Hermes Phase 2 — Disk-hygiene rules consumed by `harness cleanup-sessions --all`.
491
+ * Disk-hygiene rules consumed by `harness cleanup-sessions --all`.
457
492
  * Keys correspond to registered target names (sessions, cache, maintenance,
458
493
  * dashboard-state, snapshots, analyzer-output); values override the default
459
494
  * TTL in hours. Unknown keys are ignored (forward-compatible).
@@ -462,7 +497,7 @@ var HarnessConfigSchema = z.object({
462
497
  ttlHours: z.record(z.string(), z.number().positive()).optional()
463
498
  }).optional(),
464
499
  /**
465
- * Hermes Phase 2 — Pre-launch OSV malware guard configuration.
500
+ * Pre-launch OSV malware guard configuration.
466
501
  * `enabled: false` disables the guard; `strict: true` reverses the default
467
502
  * fail-open posture on OSV.dev network errors.
468
503
  */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveProjectConfig
3
- } from "./chunk-VG6UK6G6.js";
3
+ } from "./chunk-VSIRUZQP.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-XIJWWQ5N.js");
41
+ const { validateDependencies, TypeScriptParser } = await import("./dist-72ID44UE.js");
42
42
  const config = configResult.value;
43
43
  const rawLayers = Array.isArray(config.layers) ? config.layers : [];
44
44
  const layers = rawLayers.map((l) => ({
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  listPersonas,
6
6
  loadPersona
7
- } from "./chunk-XTIPZUPR.js";
7
+ } from "./chunk-PTHX545Q.js";
8
8
  import {
9
9
  GENERATED_HEADER_AGENT,
10
10
  VALID_PLATFORMS,
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  init_dist,
6
6
  paginate
7
- } from "./chunk-IY2TZLY5.js";
7
+ } from "./chunk-WZY5U6NS.js";
8
8
 
9
9
  // src/mcp/tools/review-pipeline.ts
10
10
  init_dist();
@@ -79,7 +79,7 @@ var runCodeReviewDefinition = {
79
79
  };
80
80
  async function handleRunCodeReview(input) {
81
81
  try {
82
- const { parseDiff, runReviewPipeline } = await import("./dist-XIJWWQ5N.js");
82
+ const { parseDiff, runReviewPipeline } = await import("./dist-72ID44UE.js");
83
83
  const parseResult = parseDiff(input.diff);
84
84
  if (!parseResult.ok) {
85
85
  return {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-IY2TZLY5.js";
3
+ } from "./chunk-WZY5U6NS.js";
4
4
  import {
5
5
  Err,
6
6
  Ok