@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.
- package/dist/agents/skills/claude-code/harness-compound/SKILL.md +153 -0
- package/dist/agents/skills/claude-code/harness-compound/skill.yaml +60 -0
- package/dist/agents/skills/claude-code/harness-knowledge-pipeline/SKILL.md +12 -1
- package/dist/agents/skills/claude-code/harness-observability/SKILL.md +2 -0
- package/dist/agents/skills/claude-code/harness-pulse/SKILL.md +138 -0
- package/dist/agents/skills/claude-code/harness-pulse/references/interview.md +77 -0
- package/dist/agents/skills/claude-code/harness-pulse/skill.yaml +61 -0
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +25 -1
- package/dist/agents/skills/codex/harness-compound/SKILL.md +153 -0
- package/dist/agents/skills/codex/harness-compound/skill.yaml +60 -0
- package/dist/agents/skills/codex/harness-knowledge-pipeline/SKILL.md +12 -1
- package/dist/agents/skills/codex/harness-observability/SKILL.md +2 -0
- package/dist/agents/skills/codex/harness-pulse/SKILL.md +138 -0
- package/dist/agents/skills/codex/harness-pulse/references/interview.md +77 -0
- package/dist/agents/skills/codex/harness-pulse/skill.yaml +61 -0
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +25 -1
- package/dist/agents/skills/cursor/harness-compound/SKILL.md +153 -0
- package/dist/agents/skills/cursor/harness-compound/skill.yaml +60 -0
- package/dist/agents/skills/cursor/harness-knowledge-pipeline/SKILL.md +12 -1
- package/dist/agents/skills/cursor/harness-observability/SKILL.md +2 -0
- package/dist/agents/skills/cursor/harness-pulse/SKILL.md +138 -0
- package/dist/agents/skills/cursor/harness-pulse/references/interview.md +77 -0
- package/dist/agents/skills/cursor/harness-pulse/skill.yaml +61 -0
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +25 -1
- package/dist/agents/skills/gemini-cli/harness-compound/SKILL.md +153 -0
- package/dist/agents/skills/gemini-cli/harness-compound/skill.yaml +60 -0
- package/dist/agents/skills/gemini-cli/harness-knowledge-pipeline/SKILL.md +12 -1
- package/dist/agents/skills/gemini-cli/harness-observability/SKILL.md +2 -0
- package/dist/agents/skills/gemini-cli/harness-pulse/SKILL.md +138 -0
- package/dist/agents/skills/gemini-cli/harness-pulse/references/interview.md +77 -0
- package/dist/agents/skills/gemini-cli/harness-pulse/skill.yaml +61 -0
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +25 -1
- package/dist/agents/skills/package.json +1 -0
- package/dist/agents/skills/tests/fixtures/harness-compound/bug-track-fixture/input.json +10 -0
- package/dist/agents/skills/tests/fixtures/harness-compound/duplicate-detection-fixture/docs/solutions/bug-track/integration-issues/stalled-lease-cleanup.md +28 -0
- package/dist/agents/skills/tests/fixtures/harness-compound/duplicate-detection-fixture/expected.json +4 -0
- package/dist/agents/skills/tests/fixtures/harness-compound/duplicate-detection-fixture/input.json +10 -0
- package/dist/agents/skills/tests/fixtures/harness-compound/knowledge-track-fixture/input.json +10 -0
- package/dist/agents/skills/tests/harness-compound.test.ts +86 -0
- package/dist/{agents-md-6SAMHE7H.js → agents-md-XCAWON2D.js} +3 -3
- package/dist/{architecture-5YR52NSV.js → architecture-KERHEEQZ.js} +4 -4
- package/dist/{assess-project-5X7TYQFM.js → assess-project-NPYA3UVI.js} +1 -1
- package/dist/bin/harness-mcp.js +16 -15
- package/dist/bin/harness.js +26 -25
- package/dist/{check-phase-gate-PLV2VDOL.js → check-phase-gate-GE5ALEEU.js} +5 -4
- package/dist/{chunk-KJD4J54I.js → chunk-4FVHBBPY.js} +6 -1
- package/dist/{chunk-PFM3BVVU.js → chunk-AEFZJ543.js} +1 -1
- package/dist/{chunk-S2WB4LE7.js → chunk-BMM3GXV6.js} +384 -28
- package/dist/{chunk-RYDPFIJY.js → chunk-D5FE4L2O.js} +1 -1
- package/dist/{chunk-HT7HYYGT.js → chunk-DRD7LLFC.js} +1 -1
- package/dist/{chunk-2IBXUG6J.js → chunk-EFA4OEEN.js} +2 -2
- package/dist/{chunk-JZST2WZS.js → chunk-FBQYKH7R.js} +3 -3
- package/dist/{chunk-MTPHNOJW.js → chunk-FQAJAM54.js} +506 -242
- package/dist/{chunk-R2CBBZA6.js → chunk-GCYGGQFM.js} +1 -1
- package/dist/{chunk-7JQ7HLM4.js → chunk-GHPWBWUW.js} +8 -8
- package/dist/{chunk-6L2BU4BP.js → chunk-HBQ3BK2E.js} +1 -1
- package/dist/{chunk-ZYLBIDLE.js → chunk-IIX5OJES.js} +1 -1
- package/dist/{chunk-DXGI7DL3.js → chunk-KTWKW6KJ.js} +1 -1
- package/dist/{chunk-6GXSJGSW.js → chunk-LY2TY6NE.js} +3 -3
- package/dist/{chunk-JNKALGRM.js → chunk-M4C3ZIGL.js} +5 -5
- package/dist/{chunk-RFYF7TJS.js → chunk-MAFI6UWT.js} +1701 -769
- package/dist/{chunk-BYS3TQOO.js → chunk-OXFFN3FD.js} +1 -1
- package/dist/{chunk-XHOGGZS7.js → chunk-PCX4GPNT.js} +1 -1
- package/dist/{chunk-BFBZK6BC.js → chunk-RCHXBL2M.js} +6 -6
- package/dist/{chunk-74YADB7T.js → chunk-T7MNLCUD.js} +92 -92
- package/dist/{chunk-SITVRO7K.js → chunk-URLDPALI.js} +9 -9
- package/dist/{chunk-ELJ2MXMO.js → chunk-UWIOBHZL.js} +9 -9
- package/dist/{chunk-QDRBWVVY.js → chunk-WW6AUOA3.js} +2 -2
- package/dist/{chunk-5ME3WG3G.js → chunk-YBGVZQQE.js} +5 -5
- package/dist/{chunk-YJE23GRZ.js → chunk-YG4ZBGEH.js} +39 -5
- package/dist/chunk-ZCZD7FHU.js +16 -0
- package/dist/{ci-workflow-7T2XKB3P.js → ci-workflow-A2E2RTOP.js} +3 -3
- package/dist/{dist-42AYXCAK.js → dist-D27LJR2T.js} +7 -1
- package/dist/{dist-77VNTHWV.js → dist-K22DQUYY.js} +78 -2
- package/dist/{docs-MSIJ6SDO.js → docs-GXJOFVCF.js} +5 -4
- package/dist/{engine-F4P5RBE4.js → engine-JBUIA2XO.js} +3 -3
- package/dist/{entropy-GSUTIORR.js → entropy-Y7LUT4BZ.js} +3 -3
- package/dist/{feedback-NST6T4HI.js → feedback-BHOBVKI3.js} +1 -1
- package/dist/{generate-agent-definitions-BOUGQIPA.js → generate-agent-definitions-VL3ZVR32.js} +4 -4
- package/dist/glob-helper-FZPPTGJN.js +62 -0
- package/dist/{graph-loader-IAUPGLRV.js → graph-loader-5MKHAJJF.js} +1 -1
- package/dist/index.d.ts +44 -6
- package/dist/index.js +26 -25
- package/dist/{loader-6QTJC7IN.js → loader-WCKVMDYR.js} +3 -3
- package/dist/{mcp-QFBGTUX6.js → mcp-FA2CKHFY.js} +16 -15
- package/dist/{performance-B2NAAIE5.js → performance-NISUL5AA.js} +5 -4
- package/dist/{review-pipeline-6EYMBS6B.js → review-pipeline-CHE5LJ5D.js} +3 -3
- package/dist/{runtime-VFZK6BCZ.js → runtime-3SKKEVPF.js} +3 -3
- package/dist/{scan-DB6FNYGG.js → scan-BIJYHOE7.js} +2 -1
- package/dist/{security-HRNTYHPM.js → security-MF54MY3P.js} +1 -1
- package/dist/templates/orchestrator/harness.orchestrator.md +31 -8
- package/dist/{validate-YEMAFWJE.js → validate-SIWFNTXI.js} +4 -4
- package/dist/{validate-cross-check-DGHTJFVH.js → validate-cross-check-GBX7B7CQ.js} +3 -3
- package/package.json +8 -7
- 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-
|
|
15
|
+
} from "./chunk-FQAJAM54.js";
|
|
16
16
|
import {
|
|
17
17
|
generateRuntime
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-AEFZJ543.js";
|
|
19
19
|
import {
|
|
20
20
|
generateAgentsMd
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-HBQ3BK2E.js";
|
|
22
22
|
import {
|
|
23
23
|
generateCIWorkflow
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-D5FE4L2O.js";
|
|
25
25
|
import {
|
|
26
26
|
runCrossCheck
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-PCX4GPNT.js";
|
|
28
28
|
import {
|
|
29
29
|
TemplateEngine
|
|
30
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
55
|
+
} from "./chunk-GCYGGQFM.js";
|
|
56
56
|
import "./chunk-KET4QQZB.js";
|
|
57
57
|
import {
|
|
58
58
|
listPersonas,
|
|
59
59
|
loadPersona
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-DRD7LLFC.js";
|
|
61
61
|
import {
|
|
62
62
|
runScan
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-YG4ZBGEH.js";
|
|
64
64
|
import {
|
|
65
65
|
createHarnessServer,
|
|
66
66
|
generateSlashCommands,
|
|
67
67
|
getToolDefinitions,
|
|
68
68
|
startServer
|
|
69
|
-
} from "./chunk-
|
|
70
|
-
import "./chunk-
|
|
71
|
-
import "./chunk-
|
|
69
|
+
} from "./chunk-T7MNLCUD.js";
|
|
70
|
+
import "./chunk-EFA4OEEN.js";
|
|
71
|
+
import "./chunk-RCHXBL2M.js";
|
|
72
72
|
import "./chunk-IOW3MW2K.js";
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
75
|
-
import "./chunk-
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-
|
|
78
|
-
import "./chunk-
|
|
79
|
-
import "./chunk-
|
|
80
|
-
import "./chunk-
|
|
81
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
94
|
+
import "./chunk-MAFI6UWT.js";
|
|
94
95
|
import "./chunk-RL4VMEXL.js";
|
|
95
|
-
import "./chunk-
|
|
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-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-DRD7LLFC.js";
|
|
5
|
+
import "./chunk-MAFI6UWT.js";
|
|
6
6
|
import "./chunk-RL4VMEXL.js";
|
|
7
|
-
import "./chunk-
|
|
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-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-T7MNLCUD.js";
|
|
6
|
+
import "./chunk-EFA4OEEN.js";
|
|
7
|
+
import "./chunk-RCHXBL2M.js";
|
|
8
8
|
import "./chunk-IOW3MW2K.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
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-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
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-
|
|
25
|
+
import "./chunk-4FVHBBPY.js";
|
|
26
26
|
import "./chunk-3ISINLYT.js";
|
|
27
27
|
import "./chunk-6B6UN6SG.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-ZCZD7FHU.js";
|
|
29
|
+
import "./chunk-MAFI6UWT.js";
|
|
29
30
|
import "./chunk-RL4VMEXL.js";
|
|
30
|
-
import "./chunk-
|
|
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-
|
|
10
|
+
} from "./chunk-GHPWBWUW.js";
|
|
11
11
|
import "./chunk-EPUKTTJZ.js";
|
|
12
12
|
import "./chunk-W6Y7ZW3Y.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-4FVHBBPY.js";
|
|
14
|
+
import "./chunk-ZCZD7FHU.js";
|
|
15
|
+
import "./chunk-MAFI6UWT.js";
|
|
15
16
|
import "./chunk-RL4VMEXL.js";
|
|
16
|
-
import "./chunk-
|
|
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-
|
|
4
|
+
} from "./chunk-EFA4OEEN.js";
|
|
5
5
|
import "./chunk-W6Y7ZW3Y.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-MAFI6UWT.js";
|
|
7
7
|
import "./chunk-RL4VMEXL.js";
|
|
8
|
-
import "./chunk-
|
|
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-
|
|
3
|
+
} from "./chunk-AEFZJ543.js";
|
|
4
4
|
import "./chunk-KET4QQZB.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-MAFI6UWT.js";
|
|
6
6
|
import "./chunk-RL4VMEXL.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-BMM3GXV6.js";
|
|
8
8
|
import "./chunk-KFQGP6VL.js";
|
|
9
9
|
export {
|
|
10
10
|
generateRuntime
|
|
@@ -15,13 +15,28 @@ hooks:
|
|
|
15
15
|
beforeRemove: null
|
|
16
16
|
timeoutMs: 60000
|
|
17
17
|
agent:
|
|
18
|
-
backend
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
-
|
|
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-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-LY2TY6NE.js";
|
|
5
|
+
import "./chunk-OXFFN3FD.js";
|
|
6
6
|
import "./chunk-W6Y7ZW3Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-MAFI6UWT.js";
|
|
8
8
|
import "./chunk-RL4VMEXL.js";
|
|
9
|
-
import "./chunk-
|
|
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-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-PCX4GPNT.js";
|
|
4
|
+
import "./chunk-MAFI6UWT.js";
|
|
5
5
|
import "./chunk-RL4VMEXL.js";
|
|
6
|
-
import "./chunk-
|
|
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.
|
|
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.
|
|
41
|
-
"@harness-engineering/
|
|
42
|
-
"@harness-engineering/
|
|
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.
|
|
45
|
-
"@harness-engineering/types": "0.
|
|
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
|
|
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
|
-
};
|