@harness-engineering/cli 3.0.1 → 4.0.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/personas/harness-pm.yaml +33 -0
- package/dist/agents/skills/claude-code/acceptance-eval/SKILL.md +92 -0
- package/dist/agents/skills/claude-code/acceptance-eval/skill.yaml +54 -0
- package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +46 -38
- package/dist/agents/skills/claude-code/harness-brainstorming/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +10 -11
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +59 -26
- package/dist/agents/skills/claude-code/harness-integration/SKILL.md +21 -19
- package/dist/agents/skills/claude-code/harness-maintenance-pipeline/SKILL.md +173 -0
- package/dist/agents/skills/claude-code/harness-maintenance-pipeline/skill.yaml +43 -0
- package/dist/agents/skills/claude-code/harness-onboarding/SKILL.md +2 -0
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +17 -40
- package/dist/agents/skills/claude-code/harness-pulse/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +17 -0
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +40 -43
- package/dist/agents/skills/claude-code/harness-verification/SKILL.md +9 -12
- package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +112 -126
- package/dist/agents/skills/claude-code/outcome-eval/SKILL.md +1 -0
- package/dist/agents/skills/codex/acceptance-eval/SKILL.md +92 -0
- package/dist/agents/skills/codex/acceptance-eval/skill.yaml +54 -0
- package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +46 -38
- package/dist/agents/skills/codex/harness-brainstorming/skill.yaml +1 -0
- package/dist/agents/skills/codex/harness-code-review/SKILL.md +10 -11
- package/dist/agents/skills/codex/harness-execution/SKILL.md +59 -26
- package/dist/agents/skills/codex/harness-integration/SKILL.md +21 -19
- package/dist/agents/skills/codex/harness-maintenance-pipeline/SKILL.md +173 -0
- package/dist/agents/skills/codex/harness-maintenance-pipeline/skill.yaml +43 -0
- package/dist/agents/skills/codex/harness-onboarding/SKILL.md +2 -0
- package/dist/agents/skills/codex/harness-planning/SKILL.md +17 -40
- package/dist/agents/skills/codex/harness-pulse/SKILL.md +1 -1
- package/dist/agents/skills/codex/harness-roadmap/SKILL.md +17 -0
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +40 -43
- package/dist/agents/skills/codex/harness-verification/SKILL.md +9 -12
- package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +112 -126
- package/dist/agents/skills/codex/outcome-eval/SKILL.md +1 -0
- package/dist/agents/skills/cursor/acceptance-eval/SKILL.md +92 -0
- package/dist/agents/skills/cursor/acceptance-eval/skill.yaml +54 -0
- package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +46 -38
- package/dist/agents/skills/cursor/harness-brainstorming/skill.yaml +1 -0
- package/dist/agents/skills/cursor/harness-code-review/SKILL.md +10 -11
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +59 -26
- package/dist/agents/skills/cursor/harness-integration/SKILL.md +21 -19
- package/dist/agents/skills/cursor/harness-maintenance-pipeline/SKILL.md +173 -0
- package/dist/agents/skills/cursor/harness-maintenance-pipeline/skill.yaml +43 -0
- package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +2 -0
- package/dist/agents/skills/cursor/harness-planning/SKILL.md +17 -40
- package/dist/agents/skills/cursor/harness-pulse/SKILL.md +1 -1
- package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +17 -0
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +40 -43
- package/dist/agents/skills/cursor/harness-verification/SKILL.md +9 -12
- package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +112 -126
- package/dist/agents/skills/cursor/outcome-eval/SKILL.md +1 -0
- package/dist/agents/skills/gemini-cli/acceptance-eval/SKILL.md +92 -0
- package/dist/agents/skills/gemini-cli/acceptance-eval/skill.yaml +54 -0
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +46 -38
- package/dist/agents/skills/gemini-cli/harness-brainstorming/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +10 -11
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +59 -26
- package/dist/agents/skills/gemini-cli/harness-integration/SKILL.md +21 -19
- package/dist/agents/skills/gemini-cli/harness-maintenance-pipeline/SKILL.md +173 -0
- package/dist/agents/skills/gemini-cli/harness-maintenance-pipeline/skill.yaml +43 -0
- package/dist/agents/skills/gemini-cli/harness-onboarding/SKILL.md +2 -0
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +17 -40
- package/dist/agents/skills/gemini-cli/harness-pulse/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +17 -0
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +40 -43
- package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +9 -12
- package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +112 -126
- package/dist/agents/skills/gemini-cli/outcome-eval/SKILL.md +1 -0
- package/dist/agents/skills/tests/interaction-channel.test.ts +64 -0
- package/dist/{agents-md-XOJE5ETA.js → agents-md-7OSNWU52.js} +2 -2
- package/dist/{architecture-JEZPJ725.js → architecture-2XYGJGT3.js} +3 -3
- package/dist/{assess-project-RHXOQNMM.js → assess-project-3KPP2D6M.js} +1 -1
- package/dist/bin/harness-mcp.js +16 -15
- package/dist/bin/harness.js +27 -25
- package/dist/{check-phase-gate-GNDOMS35.js → check-phase-gate-46U5AAXE.js} +4 -3
- package/dist/{chunk-MGUPSE6D.js → chunk-363V6GPR.js} +5 -5
- package/dist/{chunk-HEIMJJI4.js → chunk-6NCREWWM.js} +2 -2
- package/dist/{chunk-XFU6SB2Q.js → chunk-6YXCZV33.js} +2171 -924
- package/dist/{chunk-HWTUUQOW.js → chunk-AK67S3O4.js} +3 -3
- package/dist/{chunk-BYVT5LVO.js → chunk-BV45354Q.js} +3 -3
- package/dist/{chunk-WWEVS7RO.js → chunk-ERILXQBP.js} +1181 -486
- package/dist/{chunk-UX3PQKVZ.js → chunk-FZ4Q73HA.js} +1 -1
- package/dist/{chunk-Z4AWEIBY.js → chunk-GXCPDAS5.js} +3 -3
- package/dist/{chunk-XX4OLNWQ.js → chunk-HMW3C5DP.js} +2 -2
- package/dist/{chunk-PC2R5RUJ.js → chunk-HXMAIVV2.js} +1 -1
- package/dist/{chunk-QBC7DI4Q.js → chunk-IYWT3JJW.js} +1 -1
- package/dist/{chunk-N24HCQA4.js → chunk-KLPX55TI.js} +3015 -1138
- package/dist/{chunk-527G27VI.js → chunk-MSBJ445U.js} +4 -4
- package/dist/{chunk-NWLGL3IR.js → chunk-MYVTYFQD.js} +2 -2
- package/dist/{chunk-KAJOS3BA.js → chunk-PHX45JYN.js} +5 -9
- package/dist/{chunk-6WQCLCBO.js → chunk-S2RQPPL6.js} +1 -1
- package/dist/chunk-SPE7P4GL.js +61 -0
- package/dist/{chunk-YQSYCBAH.js → chunk-TTWNGOBT.js} +6 -6
- package/dist/{chunk-6B6UN6SG.js → chunk-UTJJJDNN.js} +11 -1
- package/dist/{chunk-WWACIIBA.js → chunk-V3ZQUCRH.js} +1 -1
- package/dist/{chunk-GSP2XIVS.js → chunk-VTU3QOJT.js} +48 -4
- package/dist/{chunk-3ISHDWO7.js → chunk-VTUINXWR.js} +1 -1
- package/dist/{chunk-27AJKSQY.js → chunk-WBVCN35T.js} +1 -1
- package/dist/{chunk-ONCPJGHY.js → chunk-WL3O2PKJ.js} +6 -6
- package/dist/{chunk-GGKRA7A7.js → chunk-XFHZ7GCI.js} +1 -1
- package/dist/chunk-Y6SUQC32.js +9 -0
- package/dist/{chunk-DE5U6KOL.js → chunk-ZEYAOYJL.js} +1 -1
- package/dist/{ci-workflow-ORZ4F45F.js → ci-workflow-XJN4UO3Q.js} +2 -2
- package/dist/{dist-LHINSVK4.js → dist-IPVFYGY2.js} +85 -15
- package/dist/{docs-AU3DXFFO.js → docs-RSFZTNPG.js} +3 -3
- package/dist/{engine-6GPWOYQH.js → engine-DJIHY4JT.js} +2 -2
- package/dist/{entropy-VLKDRMRT.js → entropy-EAEKJKRM.js} +2 -2
- package/dist/{feedback-YXYY44ZC.js → feedback-JT5X3DBC.js} +1 -1
- package/dist/{generate-agent-definitions-XIHQPKG3.js → generate-agent-definitions-CC6KED3E.js} +4 -4
- package/dist/hooks/adoption-tracker.js +6 -5
- package/dist/hooks/format-check.js +202 -0
- package/dist/hooks/protect-config.js +15 -5
- package/dist/hooks/quality-warner.js +32 -0
- package/dist/hooks/strict-quality-gate.js +48 -0
- package/dist/{index-builder-3AOQ3ZII.js → index-builder-52IJJHJC.js} +2 -2
- package/dist/index.d.ts +8 -8
- package/dist/index.js +27 -25
- package/dist/{loader-YAN56MT3.js → loader-UWNVTYBY.js} +2 -2
- package/dist/{mcp-RK3SFVYB.js → mcp-TCLNK7HG.js} +18 -17
- package/dist/{performance-64DPTLLQ.js → performance-R6O3N3UB.js} +3 -3
- package/dist/{review-pipeline-NENG6LW7.js → review-pipeline-MOOWXWSQ.js} +2 -2
- package/dist/{runtime-FFIIRT2T.js → runtime-RIWQUKBQ.js} +2 -2
- package/dist/{security-3PIBN35B.js → security-U76C54W6.js} +1 -1
- package/dist/{skill-executor-MOCUIAYS.js → skill-executor-BGUCAVBU.js} +2 -2
- package/dist/state-events-F44CUUZG.js +25 -0
- package/dist/{validate-7IAF2ES3.js → validate-IUAV7MOU.js} +3 -3
- package/dist/{validate-cross-check-QPSAOZKD.js → validate-cross-check-M2ZM6RFY.js} +2 -2
- package/package.json +7 -7
- package/dist/hooks/quality-gate.js +0 -131
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
handleValidateProject,
|
|
3
3
|
validateToolDefinition
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-AK67S3O4.js";
|
|
5
|
+
import "./chunk-ZEYAOYJL.js";
|
|
6
6
|
import "./chunk-W6Y7ZW3Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-KLPX55TI.js";
|
|
8
8
|
import "./chunk-N55WOGN3.js";
|
|
9
9
|
import "./chunk-BDGTZRZ6.js";
|
|
10
10
|
import "./chunk-PP6ZRL5T.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@harness-engineering/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "CLI for Harness Engineering toolkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -39,15 +39,15 @@
|
|
|
39
39
|
"web-tree-sitter": "^0.24.7",
|
|
40
40
|
"yaml": "^2.8.3",
|
|
41
41
|
"zod": "^3.25.76",
|
|
42
|
-
"@harness-engineering/core": "0.
|
|
43
|
-
"@harness-engineering/dashboard": "0.
|
|
44
|
-
"@harness-engineering/graph": "0.11.
|
|
42
|
+
"@harness-engineering/core": "0.32.0",
|
|
43
|
+
"@harness-engineering/dashboard": "0.11.0",
|
|
44
|
+
"@harness-engineering/graph": "0.11.2",
|
|
45
45
|
"@harness-engineering/linter-gen": "0.1.7",
|
|
46
|
-
"@harness-engineering/orchestrator": "0.
|
|
47
|
-
"@harness-engineering/types": "0.16.
|
|
46
|
+
"@harness-engineering/orchestrator": "0.9.0",
|
|
47
|
+
"@harness-engineering/types": "0.16.2"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@harness-engineering/intelligence": "0.
|
|
50
|
+
"@harness-engineering/intelligence": "0.4.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependenciesMeta": {
|
|
53
53
|
"@harness-engineering/intelligence": {
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// quality-gate.js — PostToolUse:Edit/Write hook
|
|
3
|
-
// Runs project formatter/linter after edits and warns on violations.
|
|
4
|
-
// Never blocks (always exits 0). Warnings go to stderr.
|
|
5
|
-
// Exit codes: 0 = allow (always)
|
|
6
|
-
|
|
7
|
-
import { readFileSync, accessSync } from 'node:fs';
|
|
8
|
-
import { join } from 'node:path';
|
|
9
|
-
import { execFileSync } from 'node:child_process';
|
|
10
|
-
import process from 'node:process';
|
|
11
|
-
|
|
12
|
-
// Detection order: first match wins
|
|
13
|
-
const DETECTORS = [
|
|
14
|
-
{
|
|
15
|
-
configs: ['biome.json', 'biome.jsonc'],
|
|
16
|
-
cmd: 'npx',
|
|
17
|
-
args: ['biome', 'check'],
|
|
18
|
-
name: 'Biome',
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
configs: [
|
|
22
|
-
'.prettierrc',
|
|
23
|
-
'.prettierrc.json',
|
|
24
|
-
'.prettierrc.yml',
|
|
25
|
-
'.prettierrc.yaml',
|
|
26
|
-
'.prettierrc.js',
|
|
27
|
-
'.prettierrc.cjs',
|
|
28
|
-
'.prettierrc.mjs',
|
|
29
|
-
'prettier.config.js',
|
|
30
|
-
'prettier.config.cjs',
|
|
31
|
-
'prettier.config.mjs',
|
|
32
|
-
],
|
|
33
|
-
cmd: 'npx',
|
|
34
|
-
args: ['prettier', '--check'],
|
|
35
|
-
name: 'Prettier',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
configs: ['.ruff.toml', 'ruff.toml'],
|
|
39
|
-
cmd: 'ruff',
|
|
40
|
-
args: ['check'],
|
|
41
|
-
name: 'Ruff',
|
|
42
|
-
},
|
|
43
|
-
];
|
|
44
|
-
|
|
45
|
-
function detectFormatter(cwd) {
|
|
46
|
-
for (const detector of DETECTORS) {
|
|
47
|
-
for (const config of detector.configs) {
|
|
48
|
-
try {
|
|
49
|
-
accessSync(join(cwd, config));
|
|
50
|
-
return detector;
|
|
51
|
-
} catch {
|
|
52
|
-
// Config not found, try next
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function main() {
|
|
60
|
-
let raw = '';
|
|
61
|
-
try {
|
|
62
|
-
raw = readFileSync(0, 'utf-8');
|
|
63
|
-
} catch {
|
|
64
|
-
process.exit(0);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (!raw.trim()) {
|
|
68
|
-
process.exit(0);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
let input;
|
|
72
|
-
try {
|
|
73
|
-
input = JSON.parse(raw);
|
|
74
|
-
} catch {
|
|
75
|
-
process.exit(0);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
try {
|
|
79
|
-
const filePath = input?.tool_input?.file_path ?? '';
|
|
80
|
-
const cwd = process.cwd();
|
|
81
|
-
|
|
82
|
-
// Special case: .go files use gofmt
|
|
83
|
-
if (typeof filePath === 'string' && filePath.endsWith('.go')) {
|
|
84
|
-
try {
|
|
85
|
-
const result = execFileSync('gofmt', ['-l', filePath], {
|
|
86
|
-
encoding: 'utf-8',
|
|
87
|
-
cwd,
|
|
88
|
-
timeout: 10000,
|
|
89
|
-
});
|
|
90
|
-
if (result.trim()) {
|
|
91
|
-
process.stderr.write(
|
|
92
|
-
`[quality-gate] gofmt found formatting issues in: ${result.trim()}\n`
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
} catch {
|
|
96
|
-
// gofmt not available or failed — warn and continue
|
|
97
|
-
process.stderr.write('[quality-gate] gofmt check failed (tool may not be installed)\n');
|
|
98
|
-
}
|
|
99
|
-
process.exit(0);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const detector = detectFormatter(cwd);
|
|
103
|
-
if (!detector) {
|
|
104
|
-
// No formatter detected — nothing to check
|
|
105
|
-
process.exit(0);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
try {
|
|
109
|
-
execFileSync(detector.cmd, detector.args, {
|
|
110
|
-
encoding: 'utf-8',
|
|
111
|
-
cwd,
|
|
112
|
-
timeout: 30000,
|
|
113
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
114
|
-
});
|
|
115
|
-
process.stderr.write(`[quality-gate] ${detector.name} check passed\n`);
|
|
116
|
-
} catch (err) {
|
|
117
|
-
// Formatter found violations or failed to run — warn only
|
|
118
|
-
const output = err.stdout || err.stderr || '';
|
|
119
|
-
process.stderr.write(
|
|
120
|
-
`[quality-gate] ${detector.name} check reported issues:\n${output.slice(0, 500)}\n`
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
process.exit(0);
|
|
125
|
-
} catch {
|
|
126
|
-
// Unexpected error — fail open
|
|
127
|
-
process.exit(0);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
main();
|