@harness-engineering/cli 2.0.0 → 2.1.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.
- 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-L4X4MOWT.js} +3 -3
- package/dist/{architecture-5YR52NSV.js → architecture-WJRIYQ45.js} +4 -4
- package/dist/{assess-project-5X7TYQFM.js → assess-project-PHC2HO3V.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-646KY67H.js} +5 -4
- package/dist/{chunk-ZYLBIDLE.js → chunk-224XKVLP.js} +1 -1
- package/dist/{chunk-ELJ2MXMO.js → chunk-2QPHCR22.js} +9 -9
- package/dist/{chunk-SITVRO7K.js → chunk-2ZURBWEV.js} +9 -9
- package/dist/{chunk-2IBXUG6J.js → chunk-36X7TRUI.js} +2 -2
- package/dist/{chunk-6L2BU4BP.js → chunk-4HKVZO7R.js} +1 -1
- package/dist/{chunk-74YADB7T.js → chunk-7XQYOXTB.js} +96 -94
- package/dist/{chunk-S2WB4LE7.js → chunk-BMM3GXV6.js} +384 -28
- package/dist/{chunk-BYS3TQOO.js → chunk-CPYL6LJR.js} +1 -1
- package/dist/{chunk-QDRBWVVY.js → chunk-E7W3YOXL.js} +2 -2
- package/dist/{chunk-MTPHNOJW.js → chunk-FNCJ3UCU.js} +507 -244
- package/dist/{chunk-RYDPFIJY.js → chunk-JPWICLXQ.js} +1 -1
- package/dist/{chunk-RFYF7TJS.js → chunk-K4WRQTEF.js} +1835 -805
- package/dist/{chunk-DXGI7DL3.js → chunk-KTWKW6KJ.js} +1 -1
- package/dist/{chunk-JNKALGRM.js → chunk-KV7A5OZT.js} +5 -5
- package/dist/{chunk-KJD4J54I.js → chunk-LO7ZLV7S.js} +6 -1
- package/dist/{chunk-XHOGGZS7.js → chunk-QTUPHTTK.js} +1 -1
- package/dist/{chunk-R2CBBZA6.js → chunk-SVC7THFK.js} +1 -1
- package/dist/{chunk-PFM3BVVU.js → chunk-TNZYQTEE.js} +1 -1
- package/dist/{chunk-HT7HYYGT.js → chunk-VJQLUS5I.js} +1 -1
- package/dist/{chunk-6GXSJGSW.js → chunk-VKDBM3RX.js} +3 -3
- package/dist/{chunk-JZST2WZS.js → chunk-W4AFGFFB.js} +3 -3
- package/dist/{chunk-YJE23GRZ.js → chunk-YG4ZBGEH.js} +39 -5
- package/dist/{chunk-5ME3WG3G.js → chunk-YLOAQZLA.js} +5 -5
- package/dist/{chunk-7JQ7HLM4.js → chunk-YLTRFZAT.js} +8 -8
- package/dist/{chunk-BFBZK6BC.js → chunk-YWD6WXXM.js} +6 -6
- package/dist/chunk-ZCZD7FHU.js +16 -0
- package/dist/{ci-workflow-7T2XKB3P.js → ci-workflow-TOS5X527.js} +3 -3
- package/dist/{dist-77VNTHWV.js → dist-6RT2AVYU.js} +78 -2
- package/dist/{dist-42AYXCAK.js → dist-D27LJR2T.js} +7 -1
- package/dist/{docs-MSIJ6SDO.js → docs-HOJMQYDZ.js} +5 -4
- package/dist/{engine-F4P5RBE4.js → engine-D6UYH6DB.js} +3 -3
- package/dist/{entropy-GSUTIORR.js → entropy-LZ4IDGZR.js} +3 -3
- package/dist/{feedback-NST6T4HI.js → feedback-WV7EQVK7.js} +1 -1
- package/dist/{generate-agent-definitions-BOUGQIPA.js → generate-agent-definitions-ZHFFS6YG.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-Z23JTXIZ.js} +3 -3
- package/dist/{mcp-QFBGTUX6.js → mcp-QFZDPFNP.js} +16 -15
- package/dist/{performance-B2NAAIE5.js → performance-7ATLHTQU.js} +5 -4
- package/dist/{review-pipeline-6EYMBS6B.js → review-pipeline-COBGGXHJ.js} +3 -3
- package/dist/{runtime-VFZK6BCZ.js → runtime-KCBNQUXK.js} +3 -3
- package/dist/{scan-DB6FNYGG.js → scan-BIJYHOE7.js} +2 -1
- package/dist/{security-HRNTYHPM.js → security-MAPRIFQT.js} +1 -1
- package/dist/templates/orchestrator/harness.orchestrator.md +9 -1
- package/dist/{validate-YEMAFWJE.js → validate-74XTQR7Q.js} +4 -4
- package/dist/{validate-cross-check-DGHTJFVH.js → validate-cross-check-MI5MZ7MB.js} +3 -3
- package/package.json +7 -6
- package/dist/glob-helper-VCQXK5XY.js +0 -54
package/dist/index.d.ts
CHANGED
|
@@ -48,6 +48,15 @@ interface GraphStatusResult {
|
|
|
48
48
|
lastScanTimestamp?: string;
|
|
49
49
|
connectorSyncStatus?: Record<string, string>;
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Reports graph statistics. Reads `metadata.json` only — it carries node/edge
|
|
53
|
+
* counts and per-type breakdowns (since schema v2). This avoids the streaming
|
|
54
|
+
* graph.json read entirely, so `harness graph status` returns instantly even on
|
|
55
|
+
* multi-GB graphs that would otherwise take seconds (or trip pre-v2 callers).
|
|
56
|
+
*
|
|
57
|
+
* Falls back to a full graph load only when the metadata file lacks `nodesByType`,
|
|
58
|
+
* which happens for graphs written before that field was added.
|
|
59
|
+
*/
|
|
51
60
|
declare function runGraphStatus(projectPath: string): Promise<GraphStatusResult>;
|
|
52
61
|
|
|
53
62
|
declare function runGraphExport(projectPath: string, format: string): Promise<string>;
|
|
@@ -389,6 +398,23 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
389
398
|
timeout?: number | undefined;
|
|
390
399
|
skills?: string[] | undefined;
|
|
391
400
|
}>>;
|
|
401
|
+
/** Source-file ingestion controls (skip-dirs, exclude patterns, gitignore handling) */
|
|
402
|
+
ingest: z.ZodOptional<z.ZodObject<{
|
|
403
|
+
skipDirs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
404
|
+
additionalSkipDirs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
405
|
+
excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
406
|
+
respectGitignore: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
407
|
+
}, "strip", z.ZodTypeAny, {
|
|
408
|
+
respectGitignore: boolean;
|
|
409
|
+
skipDirs?: string[] | undefined;
|
|
410
|
+
additionalSkipDirs?: string[] | undefined;
|
|
411
|
+
excludePatterns?: string[] | undefined;
|
|
412
|
+
}, {
|
|
413
|
+
skipDirs?: string[] | undefined;
|
|
414
|
+
additionalSkipDirs?: string[] | undefined;
|
|
415
|
+
excludePatterns?: string[] | undefined;
|
|
416
|
+
respectGitignore?: boolean | undefined;
|
|
417
|
+
}>>;
|
|
392
418
|
/** Drift and stale code management settings */
|
|
393
419
|
entropy: z.ZodOptional<z.ZodObject<{
|
|
394
420
|
/** Explicit entry points for reachability analysis (overrides auto-detection) */
|
|
@@ -402,8 +428,8 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
402
428
|
autoFix: boolean;
|
|
403
429
|
entryPoints?: string[] | undefined;
|
|
404
430
|
}, {
|
|
405
|
-
entryPoints?: string[] | undefined;
|
|
406
431
|
excludePatterns?: string[] | undefined;
|
|
432
|
+
entryPoints?: string[] | undefined;
|
|
407
433
|
autoFix?: boolean | undefined;
|
|
408
434
|
}>>;
|
|
409
435
|
/** Security scanning configuration */
|
|
@@ -752,14 +778,14 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
752
778
|
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>]>>>;
|
|
753
779
|
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>]>>>>;
|
|
754
780
|
}, "strip", z.ZodTypeAny, {
|
|
781
|
+
enabled: boolean;
|
|
755
782
|
thresholds: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
|
|
756
783
|
modules: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
|
|
757
|
-
enabled: boolean;
|
|
758
784
|
baselinePath: string;
|
|
759
785
|
}, {
|
|
786
|
+
enabled?: boolean | undefined;
|
|
760
787
|
thresholds?: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
|
|
761
788
|
modules?: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
|
|
762
|
-
enabled?: boolean | undefined;
|
|
763
789
|
baselinePath?: string | undefined;
|
|
764
790
|
}>>;
|
|
765
791
|
/** Skill loading, suggestion, and tier override settings */
|
|
@@ -919,6 +945,12 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
919
945
|
timeout: number;
|
|
920
946
|
skills?: string[] | undefined;
|
|
921
947
|
} | undefined;
|
|
948
|
+
ingest?: {
|
|
949
|
+
respectGitignore: boolean;
|
|
950
|
+
skipDirs?: string[] | undefined;
|
|
951
|
+
additionalSkipDirs?: string[] | undefined;
|
|
952
|
+
excludePatterns?: string[] | undefined;
|
|
953
|
+
} | undefined;
|
|
922
954
|
entropy?: {
|
|
923
955
|
excludePatterns: string[];
|
|
924
956
|
autoFix: boolean;
|
|
@@ -1007,9 +1039,9 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
1007
1039
|
dismissed: string[];
|
|
1008
1040
|
} | undefined;
|
|
1009
1041
|
architecture?: {
|
|
1042
|
+
enabled: boolean;
|
|
1010
1043
|
thresholds: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
|
|
1011
1044
|
modules: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
|
|
1012
|
-
enabled: boolean;
|
|
1013
1045
|
baselinePath: string;
|
|
1014
1046
|
} | undefined;
|
|
1015
1047
|
traceability?: {
|
|
@@ -1071,9 +1103,15 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
1071
1103
|
timeout?: number | undefined;
|
|
1072
1104
|
skills?: string[] | undefined;
|
|
1073
1105
|
} | undefined;
|
|
1106
|
+
ingest?: {
|
|
1107
|
+
skipDirs?: string[] | undefined;
|
|
1108
|
+
additionalSkipDirs?: string[] | undefined;
|
|
1109
|
+
excludePatterns?: string[] | undefined;
|
|
1110
|
+
respectGitignore?: boolean | undefined;
|
|
1111
|
+
} | undefined;
|
|
1074
1112
|
entropy?: {
|
|
1075
|
-
entryPoints?: string[] | undefined;
|
|
1076
1113
|
excludePatterns?: string[] | undefined;
|
|
1114
|
+
entryPoints?: string[] | undefined;
|
|
1077
1115
|
autoFix?: boolean | undefined;
|
|
1078
1116
|
} | undefined;
|
|
1079
1117
|
security?: z.objectInputType<{
|
|
@@ -1159,9 +1197,9 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
1159
1197
|
dismissed?: string[] | undefined;
|
|
1160
1198
|
} | undefined;
|
|
1161
1199
|
architecture?: {
|
|
1200
|
+
enabled?: boolean | undefined;
|
|
1162
1201
|
thresholds?: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
|
|
1163
1202
|
modules?: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
|
|
1164
|
-
enabled?: boolean | undefined;
|
|
1165
1203
|
baselinePath?: string | undefined;
|
|
1166
1204
|
} | undefined;
|
|
1167
1205
|
traceability?: {
|
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-FNCJ3UCU.js";
|
|
16
16
|
import {
|
|
17
17
|
generateRuntime
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-TNZYQTEE.js";
|
|
19
19
|
import {
|
|
20
20
|
generateAgentsMd
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4HKVZO7R.js";
|
|
22
22
|
import {
|
|
23
23
|
generateCIWorkflow
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-JPWICLXQ.js";
|
|
25
25
|
import {
|
|
26
26
|
runCrossCheck
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-QTUPHTTK.js";
|
|
28
28
|
import {
|
|
29
29
|
TemplateEngine
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-224XKVLP.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-E7W3YOXL.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-SVC7THFK.js";
|
|
56
56
|
import "./chunk-KET4QQZB.js";
|
|
57
57
|
import {
|
|
58
58
|
listPersonas,
|
|
59
59
|
loadPersona
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-VJQLUS5I.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-7XQYOXTB.js";
|
|
70
|
+
import "./chunk-36X7TRUI.js";
|
|
71
|
+
import "./chunk-YWD6WXXM.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-2ZURBWEV.js";
|
|
74
|
+
import "./chunk-W4AFGFFB.js";
|
|
75
|
+
import "./chunk-KTWKW6KJ.js";
|
|
76
|
+
import "./chunk-VKDBM3RX.js";
|
|
77
|
+
import "./chunk-YLOAQZLA.js";
|
|
78
|
+
import "./chunk-CPYL6LJR.js";
|
|
79
|
+
import "./chunk-2QPHCR22.js";
|
|
80
|
+
import "./chunk-KV7A5OZT.js";
|
|
81
|
+
import "./chunk-YLTRFZAT.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-LO7ZLV7S.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-K4WRQTEF.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-VJQLUS5I.js";
|
|
5
|
+
import "./chunk-K4WRQTEF.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-7XQYOXTB.js";
|
|
6
|
+
import "./chunk-36X7TRUI.js";
|
|
7
|
+
import "./chunk-YWD6WXXM.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-2ZURBWEV.js";
|
|
10
|
+
import "./chunk-W4AFGFFB.js";
|
|
11
|
+
import "./chunk-KTWKW6KJ.js";
|
|
12
|
+
import "./chunk-VKDBM3RX.js";
|
|
13
|
+
import "./chunk-YLOAQZLA.js";
|
|
14
14
|
import {
|
|
15
15
|
resolveProjectConfig
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-CPYL6LJR.js";
|
|
17
|
+
import "./chunk-2QPHCR22.js";
|
|
18
|
+
import "./chunk-KV7A5OZT.js";
|
|
19
|
+
import "./chunk-YLTRFZAT.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-LO7ZLV7S.js";
|
|
26
26
|
import "./chunk-3ISINLYT.js";
|
|
27
27
|
import "./chunk-6B6UN6SG.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-ZCZD7FHU.js";
|
|
29
|
+
import "./chunk-K4WRQTEF.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-YLTRFZAT.js";
|
|
11
11
|
import "./chunk-EPUKTTJZ.js";
|
|
12
12
|
import "./chunk-W6Y7ZW3Y.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-LO7ZLV7S.js";
|
|
14
|
+
import "./chunk-ZCZD7FHU.js";
|
|
15
|
+
import "./chunk-K4WRQTEF.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-36X7TRUI.js";
|
|
5
5
|
import "./chunk-W6Y7ZW3Y.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-K4WRQTEF.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-TNZYQTEE.js";
|
|
4
4
|
import "./chunk-KET4QQZB.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-K4WRQTEF.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
|
|
@@ -96,6 +96,12 @@ high-quality, architecturally sound delivery:
|
|
|
96
96
|
integration tier.
|
|
97
97
|
6. **Code Review:** Use `/harness:code-review` and `/harness:pre-commit-review`
|
|
98
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.
|
|
99
105
|
7. **Ship:** When the review is clean, you are pre-authorized to ship without asking:
|
|
100
106
|
- Create a topic branch if you are still on `main`/`master` (e.g. `feat/{{ issue.identifier }}`).
|
|
101
107
|
- Stage your changes and create a descriptive commit (Conventional Commits style).
|
|
@@ -115,7 +121,9 @@ high-quality, architecturally sound delivery:
|
|
|
115
121
|
|
|
116
122
|
- Always verify your changes with `harness validate`.
|
|
117
123
|
- Adhere to the architectural constraints defined in `harness.config.json`.
|
|
118
|
-
-
|
|
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.
|
|
119
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.
|
|
120
128
|
|
|
121
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-VKDBM3RX.js";
|
|
5
|
+
import "./chunk-CPYL6LJR.js";
|
|
6
6
|
import "./chunk-W6Y7ZW3Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-K4WRQTEF.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-QTUPHTTK.js";
|
|
4
|
+
import "./chunk-K4WRQTEF.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": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
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/dashboard": "0.5.
|
|
42
|
-
"@harness-engineering/graph": "0.
|
|
41
|
+
"@harness-engineering/core": "0.23.8",
|
|
42
|
+
"@harness-engineering/dashboard": "0.5.2",
|
|
43
|
+
"@harness-engineering/graph": "0.8.0",
|
|
43
44
|
"@harness-engineering/linter-gen": "0.1.7",
|
|
44
|
-
"@harness-engineering/orchestrator": "0.3.
|
|
45
|
+
"@harness-engineering/orchestrator": "0.3.2",
|
|
45
46
|
"@harness-engineering/types": "0.11.0"
|
|
46
47
|
},
|
|
47
48
|
"peerDependencies": {
|
|
48
|
-
"@harness-engineering/intelligence": "0.2.
|
|
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
|
-
};
|