@harness-engineering/cli 1.28.1 → 2.1.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 (95) hide show
  1. package/dist/agents/skills/claude-code/harness-compound/SKILL.md +153 -0
  2. package/dist/agents/skills/claude-code/harness-compound/skill.yaml +60 -0
  3. package/dist/agents/skills/claude-code/harness-knowledge-pipeline/SKILL.md +12 -1
  4. package/dist/agents/skills/claude-code/harness-observability/SKILL.md +2 -0
  5. package/dist/agents/skills/claude-code/harness-pulse/SKILL.md +138 -0
  6. package/dist/agents/skills/claude-code/harness-pulse/references/interview.md +77 -0
  7. package/dist/agents/skills/claude-code/harness-pulse/skill.yaml +61 -0
  8. package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +25 -1
  9. package/dist/agents/skills/codex/harness-compound/SKILL.md +153 -0
  10. package/dist/agents/skills/codex/harness-compound/skill.yaml +60 -0
  11. package/dist/agents/skills/codex/harness-knowledge-pipeline/SKILL.md +12 -1
  12. package/dist/agents/skills/codex/harness-observability/SKILL.md +2 -0
  13. package/dist/agents/skills/codex/harness-pulse/SKILL.md +138 -0
  14. package/dist/agents/skills/codex/harness-pulse/references/interview.md +77 -0
  15. package/dist/agents/skills/codex/harness-pulse/skill.yaml +61 -0
  16. package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +25 -1
  17. package/dist/agents/skills/cursor/harness-compound/SKILL.md +153 -0
  18. package/dist/agents/skills/cursor/harness-compound/skill.yaml +60 -0
  19. package/dist/agents/skills/cursor/harness-knowledge-pipeline/SKILL.md +12 -1
  20. package/dist/agents/skills/cursor/harness-observability/SKILL.md +2 -0
  21. package/dist/agents/skills/cursor/harness-pulse/SKILL.md +138 -0
  22. package/dist/agents/skills/cursor/harness-pulse/references/interview.md +77 -0
  23. package/dist/agents/skills/cursor/harness-pulse/skill.yaml +61 -0
  24. package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +25 -1
  25. package/dist/agents/skills/gemini-cli/harness-compound/SKILL.md +153 -0
  26. package/dist/agents/skills/gemini-cli/harness-compound/skill.yaml +60 -0
  27. package/dist/agents/skills/gemini-cli/harness-knowledge-pipeline/SKILL.md +12 -1
  28. package/dist/agents/skills/gemini-cli/harness-observability/SKILL.md +2 -0
  29. package/dist/agents/skills/gemini-cli/harness-pulse/SKILL.md +138 -0
  30. package/dist/agents/skills/gemini-cli/harness-pulse/references/interview.md +77 -0
  31. package/dist/agents/skills/gemini-cli/harness-pulse/skill.yaml +61 -0
  32. package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +25 -1
  33. package/dist/agents/skills/package.json +1 -0
  34. package/dist/agents/skills/tests/fixtures/harness-compound/bug-track-fixture/input.json +10 -0
  35. package/dist/agents/skills/tests/fixtures/harness-compound/duplicate-detection-fixture/docs/solutions/bug-track/integration-issues/stalled-lease-cleanup.md +28 -0
  36. package/dist/agents/skills/tests/fixtures/harness-compound/duplicate-detection-fixture/expected.json +4 -0
  37. package/dist/agents/skills/tests/fixtures/harness-compound/duplicate-detection-fixture/input.json +10 -0
  38. package/dist/agents/skills/tests/fixtures/harness-compound/knowledge-track-fixture/input.json +10 -0
  39. package/dist/agents/skills/tests/harness-compound.test.ts +86 -0
  40. package/dist/{agents-md-6SAMHE7H.js → agents-md-XCAWON2D.js} +3 -3
  41. package/dist/{architecture-5YR52NSV.js → architecture-KERHEEQZ.js} +4 -4
  42. package/dist/{assess-project-5X7TYQFM.js → assess-project-NPYA3UVI.js} +1 -1
  43. package/dist/bin/harness-mcp.js +16 -15
  44. package/dist/bin/harness.js +26 -25
  45. package/dist/{check-phase-gate-PLV2VDOL.js → check-phase-gate-GE5ALEEU.js} +5 -4
  46. package/dist/{chunk-KJD4J54I.js → chunk-4FVHBBPY.js} +6 -1
  47. package/dist/{chunk-PFM3BVVU.js → chunk-AEFZJ543.js} +1 -1
  48. package/dist/{chunk-S2WB4LE7.js → chunk-BMM3GXV6.js} +384 -28
  49. package/dist/{chunk-RYDPFIJY.js → chunk-D5FE4L2O.js} +1 -1
  50. package/dist/{chunk-HT7HYYGT.js → chunk-DRD7LLFC.js} +1 -1
  51. package/dist/{chunk-2IBXUG6J.js → chunk-EFA4OEEN.js} +2 -2
  52. package/dist/{chunk-JZST2WZS.js → chunk-FBQYKH7R.js} +3 -3
  53. package/dist/{chunk-MTPHNOJW.js → chunk-FQAJAM54.js} +506 -242
  54. package/dist/{chunk-R2CBBZA6.js → chunk-GCYGGQFM.js} +1 -1
  55. package/dist/{chunk-7JQ7HLM4.js → chunk-GHPWBWUW.js} +8 -8
  56. package/dist/{chunk-6L2BU4BP.js → chunk-HBQ3BK2E.js} +1 -1
  57. package/dist/{chunk-ZYLBIDLE.js → chunk-IIX5OJES.js} +1 -1
  58. package/dist/{chunk-DXGI7DL3.js → chunk-KTWKW6KJ.js} +1 -1
  59. package/dist/{chunk-6GXSJGSW.js → chunk-LY2TY6NE.js} +3 -3
  60. package/dist/{chunk-JNKALGRM.js → chunk-M4C3ZIGL.js} +5 -5
  61. package/dist/{chunk-RFYF7TJS.js → chunk-MAFI6UWT.js} +1701 -769
  62. package/dist/{chunk-BYS3TQOO.js → chunk-OXFFN3FD.js} +1 -1
  63. package/dist/{chunk-XHOGGZS7.js → chunk-PCX4GPNT.js} +1 -1
  64. package/dist/{chunk-BFBZK6BC.js → chunk-RCHXBL2M.js} +6 -6
  65. package/dist/{chunk-74YADB7T.js → chunk-T7MNLCUD.js} +92 -92
  66. package/dist/{chunk-SITVRO7K.js → chunk-URLDPALI.js} +9 -9
  67. package/dist/{chunk-ELJ2MXMO.js → chunk-UWIOBHZL.js} +9 -9
  68. package/dist/{chunk-QDRBWVVY.js → chunk-WW6AUOA3.js} +2 -2
  69. package/dist/{chunk-5ME3WG3G.js → chunk-YBGVZQQE.js} +5 -5
  70. package/dist/{chunk-YJE23GRZ.js → chunk-YG4ZBGEH.js} +39 -5
  71. package/dist/chunk-ZCZD7FHU.js +16 -0
  72. package/dist/{ci-workflow-7T2XKB3P.js → ci-workflow-A2E2RTOP.js} +3 -3
  73. package/dist/{dist-42AYXCAK.js → dist-D27LJR2T.js} +7 -1
  74. package/dist/{dist-77VNTHWV.js → dist-K22DQUYY.js} +78 -2
  75. package/dist/{docs-MSIJ6SDO.js → docs-GXJOFVCF.js} +5 -4
  76. package/dist/{engine-F4P5RBE4.js → engine-JBUIA2XO.js} +3 -3
  77. package/dist/{entropy-GSUTIORR.js → entropy-Y7LUT4BZ.js} +3 -3
  78. package/dist/{feedback-NST6T4HI.js → feedback-BHOBVKI3.js} +1 -1
  79. package/dist/{generate-agent-definitions-BOUGQIPA.js → generate-agent-definitions-VL3ZVR32.js} +4 -4
  80. package/dist/glob-helper-FZPPTGJN.js +62 -0
  81. package/dist/{graph-loader-IAUPGLRV.js → graph-loader-5MKHAJJF.js} +1 -1
  82. package/dist/index.d.ts +44 -6
  83. package/dist/index.js +26 -25
  84. package/dist/{loader-6QTJC7IN.js → loader-WCKVMDYR.js} +3 -3
  85. package/dist/{mcp-QFBGTUX6.js → mcp-FA2CKHFY.js} +16 -15
  86. package/dist/{performance-B2NAAIE5.js → performance-NISUL5AA.js} +5 -4
  87. package/dist/{review-pipeline-6EYMBS6B.js → review-pipeline-CHE5LJ5D.js} +3 -3
  88. package/dist/{runtime-VFZK6BCZ.js → runtime-3SKKEVPF.js} +3 -3
  89. package/dist/{scan-DB6FNYGG.js → scan-BIJYHOE7.js} +2 -1
  90. package/dist/{security-HRNTYHPM.js → security-MF54MY3P.js} +1 -1
  91. package/dist/templates/orchestrator/harness.orchestrator.md +31 -8
  92. package/dist/{validate-YEMAFWJE.js → validate-SIWFNTXI.js} +4 -4
  93. package/dist/{validate-cross-check-DGHTJFVH.js → validate-cross-check-GBX7B7CQ.js} +3 -3
  94. package/package.json +8 -7
  95. package/dist/glob-helper-VCQXK5XY.js +0 -54
package/dist/index.js CHANGED
@@ -12,22 +12,22 @@ import {
12
12
  runSnapshotCapture,
13
13
  runUninstall,
14
14
  runUninstallConstraints
15
- } from "./chunk-MTPHNOJW.js";
15
+ } from "./chunk-FQAJAM54.js";
16
16
  import {
17
17
  generateRuntime
18
- } from "./chunk-PFM3BVVU.js";
18
+ } from "./chunk-AEFZJ543.js";
19
19
  import {
20
20
  generateAgentsMd
21
- } from "./chunk-6L2BU4BP.js";
21
+ } from "./chunk-HBQ3BK2E.js";
22
22
  import {
23
23
  generateCIWorkflow
24
- } from "./chunk-RYDPFIJY.js";
24
+ } from "./chunk-D5FE4L2O.js";
25
25
  import {
26
26
  runCrossCheck
27
- } from "./chunk-XHOGGZS7.js";
27
+ } from "./chunk-PCX4GPNT.js";
28
28
  import {
29
29
  TemplateEngine
30
- } from "./chunk-ZYLBIDLE.js";
30
+ } from "./chunk-IIX5OJES.js";
31
31
  import "./chunk-CQ553GZO.js";
32
32
  import {
33
33
  detectTrigger,
@@ -43,7 +43,7 @@ import {
43
43
  OutputFormatter,
44
44
  OutputMode,
45
45
  runCheckPhaseGate
46
- } from "./chunk-QDRBWVVY.js";
46
+ } from "./chunk-WW6AUOA3.js";
47
47
  import {
48
48
  AGENT_DESCRIPTIONS,
49
49
  DEFAULT_TOOLS,
@@ -52,33 +52,33 @@ import {
52
52
  generateAgentDefinitions,
53
53
  renderClaudeCodeAgent,
54
54
  renderGeminiAgent
55
- } from "./chunk-R2CBBZA6.js";
55
+ } from "./chunk-GCYGGQFM.js";
56
56
  import "./chunk-KET4QQZB.js";
57
57
  import {
58
58
  listPersonas,
59
59
  loadPersona
60
- } from "./chunk-HT7HYYGT.js";
60
+ } from "./chunk-DRD7LLFC.js";
61
61
  import {
62
62
  runScan
63
- } from "./chunk-YJE23GRZ.js";
63
+ } from "./chunk-YG4ZBGEH.js";
64
64
  import {
65
65
  createHarnessServer,
66
66
  generateSlashCommands,
67
67
  getToolDefinitions,
68
68
  startServer
69
- } from "./chunk-74YADB7T.js";
70
- import "./chunk-2IBXUG6J.js";
71
- import "./chunk-BFBZK6BC.js";
69
+ } from "./chunk-T7MNLCUD.js";
70
+ import "./chunk-EFA4OEEN.js";
71
+ import "./chunk-RCHXBL2M.js";
72
72
  import "./chunk-IOW3MW2K.js";
73
- import "./chunk-SITVRO7K.js";
74
- import "./chunk-JZST2WZS.js";
75
- import "./chunk-DXGI7DL3.js";
76
- import "./chunk-6GXSJGSW.js";
77
- import "./chunk-5ME3WG3G.js";
78
- import "./chunk-BYS3TQOO.js";
79
- import "./chunk-ELJ2MXMO.js";
80
- import "./chunk-JNKALGRM.js";
81
- import "./chunk-7JQ7HLM4.js";
73
+ import "./chunk-URLDPALI.js";
74
+ import "./chunk-FBQYKH7R.js";
75
+ import "./chunk-KTWKW6KJ.js";
76
+ import "./chunk-LY2TY6NE.js";
77
+ import "./chunk-YBGVZQQE.js";
78
+ import "./chunk-OXFFN3FD.js";
79
+ import "./chunk-UWIOBHZL.js";
80
+ import "./chunk-M4C3ZIGL.js";
81
+ import "./chunk-GHPWBWUW.js";
82
82
  import "./chunk-EPUKTTJZ.js";
83
83
  import "./chunk-W6Y7ZW3Y.js";
84
84
  import "./chunk-27AJKSQY.js";
@@ -86,13 +86,14 @@ import {
86
86
  findConfigFile,
87
87
  loadConfig,
88
88
  resolveConfig
89
- } from "./chunk-KJD4J54I.js";
89
+ } from "./chunk-4FVHBBPY.js";
90
90
  import "./chunk-3ISINLYT.js";
91
91
  import "./chunk-6B6UN6SG.js";
92
+ import "./chunk-ZCZD7FHU.js";
92
93
  import "./chunk-BM3PWGXQ.js";
93
- import "./chunk-RFYF7TJS.js";
94
+ import "./chunk-MAFI6UWT.js";
94
95
  import "./chunk-RL4VMEXL.js";
95
- import "./chunk-S2WB4LE7.js";
96
+ import "./chunk-BMM3GXV6.js";
96
97
  import {
97
98
  generateSkillFiles
98
99
  } from "./chunk-ZP5E7YET.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  listPersonas,
3
3
  loadPersona
4
- } from "./chunk-HT7HYYGT.js";
5
- import "./chunk-RFYF7TJS.js";
4
+ } from "./chunk-DRD7LLFC.js";
5
+ import "./chunk-MAFI6UWT.js";
6
6
  import "./chunk-RL4VMEXL.js";
7
- import "./chunk-S2WB4LE7.js";
7
+ import "./chunk-BMM3GXV6.js";
8
8
  import "./chunk-KFQGP6VL.js";
9
9
  export {
10
10
  listPersonas,
@@ -2,32 +2,33 @@ import {
2
2
  createHarnessServer,
3
3
  getToolDefinitions,
4
4
  startServer
5
- } from "./chunk-74YADB7T.js";
6
- import "./chunk-2IBXUG6J.js";
7
- import "./chunk-BFBZK6BC.js";
5
+ } from "./chunk-T7MNLCUD.js";
6
+ import "./chunk-EFA4OEEN.js";
7
+ import "./chunk-RCHXBL2M.js";
8
8
  import "./chunk-IOW3MW2K.js";
9
- import "./chunk-SITVRO7K.js";
10
- import "./chunk-JZST2WZS.js";
11
- import "./chunk-DXGI7DL3.js";
12
- import "./chunk-6GXSJGSW.js";
13
- import "./chunk-5ME3WG3G.js";
9
+ import "./chunk-URLDPALI.js";
10
+ import "./chunk-FBQYKH7R.js";
11
+ import "./chunk-KTWKW6KJ.js";
12
+ import "./chunk-LY2TY6NE.js";
13
+ import "./chunk-YBGVZQQE.js";
14
14
  import {
15
15
  resolveProjectConfig
16
- } from "./chunk-BYS3TQOO.js";
17
- import "./chunk-ELJ2MXMO.js";
18
- import "./chunk-JNKALGRM.js";
19
- import "./chunk-7JQ7HLM4.js";
16
+ } from "./chunk-OXFFN3FD.js";
17
+ import "./chunk-UWIOBHZL.js";
18
+ import "./chunk-M4C3ZIGL.js";
19
+ import "./chunk-GHPWBWUW.js";
20
20
  import {
21
21
  resultToMcpResponse
22
22
  } from "./chunk-EPUKTTJZ.js";
23
23
  import "./chunk-W6Y7ZW3Y.js";
24
24
  import "./chunk-27AJKSQY.js";
25
- import "./chunk-KJD4J54I.js";
25
+ import "./chunk-4FVHBBPY.js";
26
26
  import "./chunk-3ISINLYT.js";
27
27
  import "./chunk-6B6UN6SG.js";
28
- import "./chunk-RFYF7TJS.js";
28
+ import "./chunk-ZCZD7FHU.js";
29
+ import "./chunk-MAFI6UWT.js";
29
30
  import "./chunk-RL4VMEXL.js";
30
- import "./chunk-S2WB4LE7.js";
31
+ import "./chunk-BMM3GXV6.js";
31
32
  import "./chunk-HIK6OEUF.js";
32
33
  import "./chunk-EBJQ6N4M.js";
33
34
  import "./chunk-3WGJMBKH.js";
@@ -7,13 +7,14 @@ import {
7
7
  handleGetPerfBaselines,
8
8
  handleUpdatePerfBaselines,
9
9
  updatePerfBaselinesDefinition
10
- } from "./chunk-7JQ7HLM4.js";
10
+ } from "./chunk-GHPWBWUW.js";
11
11
  import "./chunk-EPUKTTJZ.js";
12
12
  import "./chunk-W6Y7ZW3Y.js";
13
- import "./chunk-KJD4J54I.js";
14
- import "./chunk-RFYF7TJS.js";
13
+ import "./chunk-4FVHBBPY.js";
14
+ import "./chunk-ZCZD7FHU.js";
15
+ import "./chunk-MAFI6UWT.js";
15
16
  import "./chunk-RL4VMEXL.js";
16
- import "./chunk-S2WB4LE7.js";
17
+ import "./chunk-BMM3GXV6.js";
17
18
  import "./chunk-3WGJMBKH.js";
18
19
  import "./chunk-KFQGP6VL.js";
19
20
  export {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  handleRunCodeReview,
3
3
  runCodeReviewDefinition
4
- } from "./chunk-2IBXUG6J.js";
4
+ } from "./chunk-EFA4OEEN.js";
5
5
  import "./chunk-W6Y7ZW3Y.js";
6
- import "./chunk-RFYF7TJS.js";
6
+ import "./chunk-MAFI6UWT.js";
7
7
  import "./chunk-RL4VMEXL.js";
8
- import "./chunk-S2WB4LE7.js";
8
+ import "./chunk-BMM3GXV6.js";
9
9
  import "./chunk-KFQGP6VL.js";
10
10
  export {
11
11
  handleRunCodeReview,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  generateRuntime
3
- } from "./chunk-PFM3BVVU.js";
3
+ } from "./chunk-AEFZJ543.js";
4
4
  import "./chunk-KET4QQZB.js";
5
- import "./chunk-RFYF7TJS.js";
5
+ import "./chunk-MAFI6UWT.js";
6
6
  import "./chunk-RL4VMEXL.js";
7
- import "./chunk-S2WB4LE7.js";
7
+ import "./chunk-BMM3GXV6.js";
8
8
  import "./chunk-KFQGP6VL.js";
9
9
  export {
10
10
  generateRuntime
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  createScanCommand,
3
3
  runScan
4
- } from "./chunk-YJE23GRZ.js";
4
+ } from "./chunk-YG4ZBGEH.js";
5
+ import "./chunk-ZCZD7FHU.js";
5
6
  import "./chunk-KFQGP6VL.js";
6
7
  export {
7
8
  createScanCommand,
@@ -3,7 +3,7 @@ import {
3
3
  handleGetSecurityTrends,
4
4
  handleRunSecurityScan,
5
5
  runSecurityScanDefinition
6
- } from "./chunk-JZST2WZS.js";
6
+ } from "./chunk-FBQYKH7R.js";
7
7
  import "./chunk-W6Y7ZW3Y.js";
8
8
  import "./chunk-KFQGP6VL.js";
9
9
  export {
@@ -15,13 +15,28 @@ hooks:
15
15
  beforeRemove: null
16
16
  timeoutMs: 60000
17
17
  agent:
18
- backend: claude
19
- command: claude
20
- # Local model for autonomous execution of simple tasks
21
- localBackend: pi
22
- localEndpoint: http://localhost:1234/v1
23
- localModel: gemma-4-e4b
24
- # Escalation routing controls what runs locally vs primary vs human
18
+ # Named backend definitions (Spec 2). See the Multi-Backend Routing
19
+ # operator guide in the harness docs for the full schema reference.
20
+ backends:
21
+ primary: { type: claude, command: claude }
22
+ # Local backend for autonomous execution of simple tasks.
23
+ # `model` accepts a string OR a prefer-and-fallback array — first
24
+ # match wins after a `/v1/models` probe.
25
+ local:
26
+ type: pi
27
+ endpoint: http://localhost:1234/v1
28
+ model: gemma-4-e4b
29
+ # model: [gemma-4-e4b, qwen3:8b, deepseek-coder-v2]
30
+ # Routing — controls WHICH backend handles each use case.
31
+ routing:
32
+ default: primary
33
+ quick-fix: local
34
+ diagnostic: local
35
+ # Optional: route the intelligence pipeline (sel/pesl) to a local backend.
36
+ # intelligence:
37
+ # sel: local
38
+ # pesl: local
39
+ # Escalation — controls WHETHER a tier dispatches at all (orthogonal to routing).
25
40
  escalation:
26
41
  alwaysHuman: [full-exploration]
27
42
  autoExecute: [quick-fix, diagnostic]
@@ -81,6 +96,12 @@ high-quality, architecturally sound delivery:
81
96
  integration tier.
82
97
  6. **Code Review:** Use `/harness:code-review` and `/harness:pre-commit-review`
83
98
  to perform a final quality check before completing the task.
99
+ 6b. **Compound (when applicable):** Run `/harness:compound` when ANY of these
100
+ three concrete triggers fired during this issue:
101
+ (a) `/harness:debugging` was invoked at any point (regardless of outcome),
102
+ (b) the fix required more than one commit on the issue branch, or
103
+ (c) execution involved >1 attempt (`Attempt Number` above is greater than 1).
104
+ Otherwise skip silently. The triggers are mechanical — no judgment required.
84
105
  7. **Ship:** When the review is clean, you are pre-authorized to ship without asking:
85
106
  - Create a topic branch if you are still on `main`/`master` (e.g. `feat/{{ issue.identifier }}`).
86
107
  - Stage your changes and create a descriptive commit (Conventional Commits style).
@@ -100,7 +121,9 @@ high-quality, architecturally sound delivery:
100
121
 
101
122
  - Always verify your changes with `harness validate`.
102
123
  - Adhere to the architectural constraints defined in `harness.config.json`.
103
- - Document your progress and any learnings in `.harness/learnings.md`.
124
+ - For non-trivial learnings, run `/harness:compound` (writes structured docs to
125
+ `docs/solutions/<track>/<category>/`). The `.harness/learnings.md` file remains
126
+ for ephemeral session notes only and is not preserved as compounding knowledge.
104
127
  - Step 7 (Ship) is part of the standard workflow. Do not pause to ask for commit authorization — completing the issue means the PR has been opened.
105
128
 
106
129
  Attempt Number: {{ attempt }}
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  handleValidateProject,
3
3
  validateToolDefinition
4
- } from "./chunk-6GXSJGSW.js";
5
- import "./chunk-BYS3TQOO.js";
4
+ } from "./chunk-LY2TY6NE.js";
5
+ import "./chunk-OXFFN3FD.js";
6
6
  import "./chunk-W6Y7ZW3Y.js";
7
- import "./chunk-RFYF7TJS.js";
7
+ import "./chunk-MAFI6UWT.js";
8
8
  import "./chunk-RL4VMEXL.js";
9
- import "./chunk-S2WB4LE7.js";
9
+ import "./chunk-BMM3GXV6.js";
10
10
  import "./chunk-KFQGP6VL.js";
11
11
  export {
12
12
  handleValidateProject,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  runCrossCheck
3
- } from "./chunk-XHOGGZS7.js";
4
- import "./chunk-RFYF7TJS.js";
3
+ } from "./chunk-PCX4GPNT.js";
4
+ import "./chunk-MAFI6UWT.js";
5
5
  import "./chunk-RL4VMEXL.js";
6
- import "./chunk-S2WB4LE7.js";
6
+ import "./chunk-BMM3GXV6.js";
7
7
  import "./chunk-KFQGP6VL.js";
8
8
  export {
9
9
  runCrossCheck
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harness-engineering/cli",
3
- "version": "1.28.1",
3
+ "version": "2.1.0",
4
4
  "description": "CLI for Harness Engineering toolkit",
5
5
  "type": "module",
6
6
  "bin": {
@@ -30,6 +30,7 @@
30
30
  "dotenv": "^16.6.1",
31
31
  "ejs": "^3.1.10",
32
32
  "glob": "^13.0.6",
33
+ "gray-matter": "^4.0.3",
33
34
  "handlebars": "^4.7.9",
34
35
  "minimatch": "^10.2.5",
35
36
  "semver": "^7.7.4",
@@ -37,15 +38,15 @@
37
38
  "web-tree-sitter": "^0.24.7",
38
39
  "yaml": "^2.8.3",
39
40
  "zod": "^3.25.76",
40
- "@harness-engineering/core": "0.23.5",
41
- "@harness-engineering/dashboard": "0.4.1",
42
- "@harness-engineering/graph": "0.7.1",
41
+ "@harness-engineering/core": "0.23.7",
42
+ "@harness-engineering/graph": "0.8.0",
43
+ "@harness-engineering/dashboard": "0.5.1",
43
44
  "@harness-engineering/linter-gen": "0.1.7",
44
- "@harness-engineering/orchestrator": "0.2.17",
45
- "@harness-engineering/types": "0.10.1"
45
+ "@harness-engineering/orchestrator": "0.3.1",
46
+ "@harness-engineering/types": "0.11.0"
46
47
  },
47
48
  "peerDependencies": {
48
- "@harness-engineering/intelligence": "0.1.5"
49
+ "@harness-engineering/intelligence": "0.2.1"
49
50
  },
50
51
  "peerDependenciesMeta": {
51
52
  "@harness-engineering/intelligence": {
@@ -1,54 +0,0 @@
1
- import "./chunk-KFQGP6VL.js";
2
-
3
- // src/mcp/utils/glob-helper.ts
4
- import * as fs from "fs/promises";
5
- import * as path from "path";
6
- var SOURCE_EXTENSIONS = /* @__PURE__ */ new Set([".ts", ".tsx", ".js", ".jsx", ".go", ".py"]);
7
- function globToRegex(pattern) {
8
- const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*\*/g, "\xA7\xA7").replace(/\*/g, "[^/]*").replace(/§§/g, ".*");
9
- return new RegExp(escaped);
10
- }
11
- function isExcluded(relativePath, excludeRegexes) {
12
- for (const regex of excludeRegexes) {
13
- if (regex.test(relativePath)) return true;
14
- }
15
- return false;
16
- }
17
- var SKIP_DIRS = /* @__PURE__ */ new Set(["node_modules", ".git", "dist", ".next", ".nuxt", "__pycache__"]);
18
- async function walkDir(dir, rootDir, excludeRegexes, files) {
19
- let entries;
20
- try {
21
- entries = await fs.readdir(dir, { withFileTypes: true });
22
- } catch {
23
- return;
24
- }
25
- for (const entry of entries) {
26
- const fullPath = path.join(dir, entry.name);
27
- const relativePath = path.relative(rootDir, fullPath).replaceAll("\\", "/");
28
- if (entry.isDirectory()) {
29
- if (SKIP_DIRS.has(entry.name)) continue;
30
- if (isExcluded(relativePath + "/", excludeRegexes)) continue;
31
- await walkDir(fullPath, rootDir, excludeRegexes, files);
32
- } else if (entry.isFile()) {
33
- const ext = path.extname(entry.name);
34
- if (!SOURCE_EXTENSIONS.has(ext)) continue;
35
- if (isExcluded(relativePath, excludeRegexes)) continue;
36
- files.push(fullPath);
37
- }
38
- }
39
- }
40
- async function globFiles(rootDir, exclude) {
41
- const patterns = exclude ?? [
42
- "**/node_modules/**",
43
- "**/dist/**",
44
- "**/*.test.ts",
45
- "**/fixtures/**"
46
- ];
47
- const excludeRegexes = patterns.map(globToRegex);
48
- const files = [];
49
- await walkDir(rootDir, rootDir, excludeRegexes, files);
50
- return files;
51
- }
52
- export {
53
- globFiles
54
- };