@harness-engineering/cli 2.2.0 → 2.3.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-roadmap-pilot/SKILL.md +13 -7
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +13 -7
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +13 -7
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +13 -7
- package/dist/{agents-md-L4X4MOWT.js → agents-md-N7YBQPE3.js} +2 -2
- package/dist/{architecture-WJRIYQ45.js → architecture-PP7WERSV.js} +3 -3
- package/dist/{assess-project-PHC2HO3V.js → assess-project-WXFCJQTX.js} +1 -1
- package/dist/bin/harness-mcp.js +13 -13
- package/dist/bin/harness.js +22 -22
- package/dist/{check-phase-gate-646KY67H.js → check-phase-gate-R3KQFBAH.js} +3 -3
- package/dist/{chunk-GOOTYTTV.js → chunk-35FI23SO.js} +855 -428
- package/dist/{chunk-L2IDE7WS.js → chunk-3LPOTTPX.js} +255 -89
- package/dist/{chunk-K4WRQTEF.js → chunk-4DWOMGUM.js} +1661 -434
- package/dist/{chunk-W4AFGFFB.js → chunk-4NFV5UZO.js} +2 -2
- package/dist/{chunk-224XKVLP.js → chunk-5KTTKXQN.js} +1 -1
- package/dist/{chunk-KV7A5OZT.js → chunk-5PPV4WYY.js} +3 -3
- package/dist/{chunk-CPYL6LJR.js → chunk-6CHNY3NJ.js} +1 -1
- package/dist/{chunk-VKDBM3RX.js → chunk-7PGYJO3L.js} +3 -3
- package/dist/{chunk-E7W3YOXL.js → chunk-D2LZUJLP.js} +2 -2
- package/dist/{chunk-4HKVZO7R.js → chunk-DLBMYLYR.js} +1 -1
- package/dist/{chunk-YWD6WXXM.js → chunk-EJPR5VCT.js} +6 -6
- package/dist/{chunk-2ZURBWEV.js → chunk-GTXUUGFG.js} +3 -3
- package/dist/{chunk-OJMO4JBQ.js → chunk-GUIX2TMZ.js} +1 -1
- package/dist/{chunk-TNZYQTEE.js → chunk-KUVPSUG4.js} +1 -1
- package/dist/{chunk-YLTRFZAT.js → chunk-KWD6FF7M.js} +6 -6
- package/dist/{chunk-VJQLUS5I.js → chunk-L3CEN42B.js} +1 -1
- package/dist/{chunk-YLOAQZLA.js → chunk-LM4F5KBK.js} +2 -2
- package/dist/{chunk-JPWICLXQ.js → chunk-MKPRB4PL.js} +1 -1
- package/dist/{chunk-2QPHCR22.js → chunk-MT2MMBUA.js} +5 -5
- package/dist/{chunk-QTUPHTTK.js → chunk-NP2ZI6E3.js} +1 -1
- package/dist/{chunk-LO7ZLV7S.js → chunk-PW3U4YJV.js} +4 -2
- package/dist/{chunk-36X7TRUI.js → chunk-YEBUFRTT.js} +2 -2
- package/dist/{ci-workflow-TOS5X527.js → ci-workflow-GFCXFJ4G.js} +2 -2
- package/dist/{dist-6RT2AVYU.js → dist-I4LWG3IN.js} +23 -1
- package/dist/{docs-HOJMQYDZ.js → docs-UXKDKPJF.js} +3 -3
- package/dist/{engine-D6UYH6DB.js → engine-A63FRDLF.js} +2 -2
- package/dist/{entropy-LZ4IDGZR.js → entropy-IFIP4ZP4.js} +2 -2
- package/dist/{feedback-WV7EQVK7.js → feedback-W36DSJQA.js} +1 -1
- package/dist/{generate-agent-definitions-GFNXJCBY.js → generate-agent-definitions-F4YMKQLP.js} +3 -3
- package/dist/hooks/block-no-verify.js +19 -1
- package/dist/index.d.ts +15 -9
- package/dist/index.js +22 -22
- package/dist/{loader-Z23JTXIZ.js → loader-4UAOGUSS.js} +2 -2
- package/dist/{mcp-JDJGELGD.js → mcp-YW7PLXVQ.js} +13 -13
- package/dist/{performance-7ATLHTQU.js → performance-AZ5UYPOQ.js} +3 -3
- package/dist/{review-pipeline-COBGGXHJ.js → review-pipeline-OLQVGBWJ.js} +2 -2
- package/dist/{runtime-KCBNQUXK.js → runtime-GG3U5HH5.js} +2 -2
- package/dist/{security-MAPRIFQT.js → security-MYTRFSR7.js} +1 -1
- package/dist/{validate-74XTQR7Q.js → validate-QI4V4JY6.js} +3 -3
- package/dist/{validate-cross-check-MI5MZ7MB.js → validate-cross-check-XRSSAXJP.js} +2 -2
- package/package.json +4 -4
|
@@ -27,7 +27,7 @@ var runSecurityScanDefinition = {
|
|
|
27
27
|
};
|
|
28
28
|
async function handleRunSecurityScan(input) {
|
|
29
29
|
try {
|
|
30
|
-
const core = await import("./dist-
|
|
30
|
+
const core = await import("./dist-I4LWG3IN.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-
|
|
117
|
+
const core = await import("./dist-I4LWG3IN.js");
|
|
118
118
|
const projectRoot = sanitizePath(input.path);
|
|
119
119
|
const manager = new core.SecurityTimelineManager(projectRoot);
|
|
120
120
|
const trendOptions = {};
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-W6Y7ZW3Y.js";
|
|
7
7
|
import {
|
|
8
8
|
init_dist
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4DWOMGUM.js";
|
|
10
10
|
import {
|
|
11
11
|
Ok
|
|
12
12
|
} from "./chunk-RL4VMEXL.js";
|
|
@@ -127,7 +127,7 @@ function buildSummaryResponse(report) {
|
|
|
127
127
|
}
|
|
128
128
|
async function handleDetectEntropy(input) {
|
|
129
129
|
try {
|
|
130
|
-
const { EntropyAnalyzer } = await import("./dist-
|
|
130
|
+
const { EntropyAnalyzer } = await import("./dist-I4LWG3IN.js");
|
|
131
131
|
const typeFilter = input.type ?? "all";
|
|
132
132
|
const analyzer = new EntropyAnalyzer({
|
|
133
133
|
rootDir: sanitizePath(input.path),
|
|
@@ -146,7 +146,7 @@ async function handleDetectEntropy(input) {
|
|
|
146
146
|
return resultToMcpResponse(result);
|
|
147
147
|
}
|
|
148
148
|
if (!result.ok) return resultToMcpResponse(result);
|
|
149
|
-
const { createFixes, applyFixes, generateSuggestions } = await import("./dist-
|
|
149
|
+
const { createFixes, applyFixes, generateSuggestions } = await import("./dist-I4LWG3IN.js");
|
|
150
150
|
const report = result.value;
|
|
151
151
|
const deadCode = report.deadCode;
|
|
152
152
|
const fixTypesConfig = input.fixTypes ? { fixTypes: input.fixTypes } : void 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveProjectConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6CHNY3NJ.js";
|
|
4
4
|
import {
|
|
5
5
|
sanitizePath
|
|
6
6
|
} from "./chunk-W6Y7ZW3Y.js";
|
|
@@ -49,7 +49,7 @@ async function handleValidateProject(input) {
|
|
|
49
49
|
checks.config = "pass";
|
|
50
50
|
const config = configResult.value;
|
|
51
51
|
try {
|
|
52
|
-
const core = await import("./dist-
|
|
52
|
+
const core = await import("./dist-I4LWG3IN.js");
|
|
53
53
|
if (typeof core.validateFileStructure === "function" && Array.isArray(config.conventions)) {
|
|
54
54
|
const conventions = config.conventions;
|
|
55
55
|
const structureResult = await core.validateFileStructure(projectPath, conventions);
|
|
@@ -68,7 +68,7 @@ async function handleValidateProject(input) {
|
|
|
68
68
|
} catch {
|
|
69
69
|
}
|
|
70
70
|
try {
|
|
71
|
-
const core = await import("./dist-
|
|
71
|
+
const core = await import("./dist-I4LWG3IN.js");
|
|
72
72
|
if (typeof core.validateAgentsMap === "function") {
|
|
73
73
|
const agentsMapPath = path.join(projectPath, "AGENTS.md");
|
|
74
74
|
const agentsResult = await core.validateAgentsMap(agentsMapPath);
|
|
@@ -50,7 +50,7 @@ async function handleAssessProject(input) {
|
|
|
50
50
|
let validateResult = null;
|
|
51
51
|
if (checksToRun.has("validate")) {
|
|
52
52
|
try {
|
|
53
|
-
const { handleValidateProject } = await import("./validate-
|
|
53
|
+
const { handleValidateProject } = await import("./validate-QI4V4JY6.js");
|
|
54
54
|
const result = await handleValidateProject({ path: projectPath });
|
|
55
55
|
const first = result.content[0];
|
|
56
56
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -75,7 +75,7 @@ async function handleAssessProject(input) {
|
|
|
75
75
|
parallelChecks.push(
|
|
76
76
|
(async () => {
|
|
77
77
|
try {
|
|
78
|
-
const { handleCheckDependencies } = await import("./architecture-
|
|
78
|
+
const { handleCheckDependencies } = await import("./architecture-PP7WERSV.js");
|
|
79
79
|
const result = await handleCheckDependencies({ path: projectPath });
|
|
80
80
|
const first = result.content[0];
|
|
81
81
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -102,7 +102,7 @@ async function handleAssessProject(input) {
|
|
|
102
102
|
parallelChecks.push(
|
|
103
103
|
(async () => {
|
|
104
104
|
try {
|
|
105
|
-
const { handleCheckDocs } = await import("./docs-
|
|
105
|
+
const { handleCheckDocs } = await import("./docs-UXKDKPJF.js");
|
|
106
106
|
const result = await handleCheckDocs({ path: projectPath, scope: "coverage" });
|
|
107
107
|
const first = result.content[0];
|
|
108
108
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -129,7 +129,7 @@ async function handleAssessProject(input) {
|
|
|
129
129
|
parallelChecks.push(
|
|
130
130
|
(async () => {
|
|
131
131
|
try {
|
|
132
|
-
const { handleDetectEntropy } = await import("./entropy-
|
|
132
|
+
const { handleDetectEntropy } = await import("./entropy-IFIP4ZP4.js");
|
|
133
133
|
const result = await handleDetectEntropy({ path: projectPath, type: "all" });
|
|
134
134
|
const first = result.content[0];
|
|
135
135
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -156,7 +156,7 @@ async function handleAssessProject(input) {
|
|
|
156
156
|
parallelChecks.push(
|
|
157
157
|
(async () => {
|
|
158
158
|
try {
|
|
159
|
-
const { handleRunSecurityScan } = await import("./security-
|
|
159
|
+
const { handleRunSecurityScan } = await import("./security-MYTRFSR7.js");
|
|
160
160
|
const result = await handleRunSecurityScan({ path: projectPath });
|
|
161
161
|
const first = result.content[0];
|
|
162
162
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -188,7 +188,7 @@ async function handleAssessProject(input) {
|
|
|
188
188
|
parallelChecks.push(
|
|
189
189
|
(async () => {
|
|
190
190
|
try {
|
|
191
|
-
const { handleCheckPerformance } = await import("./performance-
|
|
191
|
+
const { handleCheckPerformance } = await import("./performance-AZ5UYPOQ.js");
|
|
192
192
|
const result = await handleCheckPerformance({ path: projectPath });
|
|
193
193
|
if ("isError" in result && result.isError) {
|
|
194
194
|
const msg = result.content[0]?.text ?? "Performance check failed";
|
|
@@ -33,7 +33,7 @@ var createSelfReviewDefinition = {
|
|
|
33
33
|
};
|
|
34
34
|
async function handleCreateSelfReview(input) {
|
|
35
35
|
try {
|
|
36
|
-
const { parseDiff, createSelfReview } = await import("./dist-
|
|
36
|
+
const { parseDiff, createSelfReview } = await import("./dist-I4LWG3IN.js");
|
|
37
37
|
const parseResult = parseDiff(input.diff);
|
|
38
38
|
if (!parseResult.ok) {
|
|
39
39
|
return resultToMcpResponse(parseResult);
|
|
@@ -119,7 +119,7 @@ var analyzeDiffDefinition = {
|
|
|
119
119
|
};
|
|
120
120
|
async function handleAnalyzeDiff(input) {
|
|
121
121
|
try {
|
|
122
|
-
const { parseDiff, analyzeDiff } = await import("./dist-
|
|
122
|
+
const { parseDiff, analyzeDiff } = await import("./dist-I4LWG3IN.js");
|
|
123
123
|
const parseResult = parseDiff(input.diff);
|
|
124
124
|
if (!parseResult.ok) {
|
|
125
125
|
return resultToMcpResponse(parseResult);
|
|
@@ -195,7 +195,7 @@ var requestPeerReviewDefinition = {
|
|
|
195
195
|
};
|
|
196
196
|
async function handleRequestPeerReview(input) {
|
|
197
197
|
try {
|
|
198
|
-
const { parseDiff, requestPeerReview } = await import("./dist-
|
|
198
|
+
const { parseDiff, requestPeerReview } = await import("./dist-I4LWG3IN.js");
|
|
199
199
|
const parseResult = parseDiff(input.diff);
|
|
200
200
|
if (!parseResult.ok) {
|
|
201
201
|
return resultToMcpResponse(parseResult);
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
findConfigFile,
|
|
9
9
|
loadConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PW3U4YJV.js";
|
|
11
11
|
import {
|
|
12
12
|
init_dist
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-4DWOMGUM.js";
|
|
14
14
|
import {
|
|
15
15
|
Ok
|
|
16
16
|
} from "./chunk-RL4VMEXL.js";
|
|
@@ -35,7 +35,7 @@ var checkPerformanceDefinition = {
|
|
|
35
35
|
};
|
|
36
36
|
async function handleCheckPerformance(input) {
|
|
37
37
|
try {
|
|
38
|
-
const { EntropyAnalyzer } = await import("./dist-
|
|
38
|
+
const { EntropyAnalyzer } = await import("./dist-I4LWG3IN.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-
|
|
101
|
+
const { BaselineManager } = await import("./dist-I4LWG3IN.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-
|
|
149
|
+
const { BaselineManager } = await import("./dist-I4LWG3IN.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-
|
|
179
|
+
const { CriticalPathResolver } = await import("./dist-I4LWG3IN.js");
|
|
180
180
|
const resolver = new CriticalPathResolver(sanitizePath(input.path));
|
|
181
181
|
const result = await resolver.resolve();
|
|
182
182
|
return resultToMcpResponse(Ok(result));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveProjectConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6CHNY3NJ.js";
|
|
4
4
|
import {
|
|
5
5
|
resultToMcpResponse
|
|
6
6
|
} from "./chunk-EPUKTTJZ.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-
|
|
41
|
+
const { validateDependencies, TypeScriptParser } = await import("./dist-I4LWG3IN.js");
|
|
42
42
|
const config = configResult.value;
|
|
43
43
|
const rawLayers = Array.isArray(config.layers) ? config.layers : [];
|
|
44
44
|
const layers = rawLayers.map((l) => ({
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
findConfigFile,
|
|
9
9
|
loadConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PW3U4YJV.js";
|
|
11
11
|
import {
|
|
12
12
|
init_dist
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-4DWOMGUM.js";
|
|
14
14
|
import {
|
|
15
15
|
Ok
|
|
16
16
|
} from "./chunk-RL4VMEXL.js";
|
|
@@ -50,12 +50,12 @@ async function handleCheckDocs(input) {
|
|
|
50
50
|
const projectPath = sanitizePath(input.path);
|
|
51
51
|
const scope = input.scope ?? "coverage";
|
|
52
52
|
if (scope === "integrity") {
|
|
53
|
-
const { validateKnowledgeMap } = await import("./dist-
|
|
53
|
+
const { validateKnowledgeMap } = await import("./dist-I4LWG3IN.js");
|
|
54
54
|
const result2 = await validateKnowledgeMap(projectPath);
|
|
55
55
|
return resultToMcpResponse(result2);
|
|
56
56
|
}
|
|
57
57
|
if (scope === "all") {
|
|
58
|
-
const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-
|
|
58
|
+
const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-I4LWG3IN.js");
|
|
59
59
|
const domain2 = input.domain ?? "src";
|
|
60
60
|
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-5MKHAJJF.js");
|
|
61
61
|
const store2 = await loadGraphStore2(projectPath);
|
|
@@ -94,7 +94,7 @@ async function handleCheckDocs(input) {
|
|
|
94
94
|
}
|
|
95
95
|
return resultToMcpResponse(Ok({ coverage, integrity }));
|
|
96
96
|
}
|
|
97
|
-
const { checkDocCoverage } = await import("./dist-
|
|
97
|
+
const { checkDocCoverage } = await import("./dist-I4LWG3IN.js");
|
|
98
98
|
const domain = input.domain ?? "src";
|
|
99
99
|
const { loadGraphStore } = await import("./graph-loader-5MKHAJJF.js");
|
|
100
100
|
const store = await loadGraphStore(projectPath);
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
ArchConfigSchema,
|
|
6
6
|
init_dist
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4DWOMGUM.js";
|
|
8
8
|
import {
|
|
9
9
|
Err,
|
|
10
10
|
Ok
|
|
@@ -188,7 +188,7 @@ var IntegrationsConfigSchema = z.object({
|
|
|
188
188
|
dismissed: z.array(z.string()).default([])
|
|
189
189
|
});
|
|
190
190
|
var TrackerConfigSchema = z.object({
|
|
191
|
-
/** Tracker kind — currently only 'github' is supported */
|
|
191
|
+
/** Tracker kind — currently only 'github' is supported for `roadmap.tracker`. */
|
|
192
192
|
kind: z.literal("github"),
|
|
193
193
|
/** Repository in "owner/repo" format */
|
|
194
194
|
repo: z.string().optional(),
|
|
@@ -203,6 +203,8 @@ var TrackerConfigSchema = z.object({
|
|
|
203
203
|
reverseStatusMap: z.record(z.string(), z.string()).optional()
|
|
204
204
|
});
|
|
205
205
|
var RoadmapConfigSchema = z.object({
|
|
206
|
+
/** Roadmap storage mode. Defaults to `"file-backed"` (today's behavior). */
|
|
207
|
+
mode: z.enum(["file-backed", "file-less"]).default("file-backed"),
|
|
206
208
|
/** External tracker sync settings */
|
|
207
209
|
tracker: TrackerConfigSchema.optional()
|
|
208
210
|
});
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
init_dist,
|
|
6
6
|
paginate
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4DWOMGUM.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-
|
|
82
|
+
const { parseDiff, runReviewPipeline } = await import("./dist-I4LWG3IN.js");
|
|
83
83
|
const parseResult = parseDiff(input.diff);
|
|
84
84
|
if (!parseResult.ok) {
|
|
85
85
|
return {
|
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
CompoundLockHeldError,
|
|
35
35
|
ConfidenceTierSchema,
|
|
36
36
|
ConfirmationSchema,
|
|
37
|
+
ConflictError,
|
|
37
38
|
ConsoleSink,
|
|
38
39
|
ConstraintRuleSchema,
|
|
39
40
|
ContributingFeatureSchema,
|
|
@@ -53,6 +54,7 @@ import {
|
|
|
53
54
|
DirectionSchema,
|
|
54
55
|
DirectionSchema2,
|
|
55
56
|
EMPTY_SUPPLY_CHAIN,
|
|
57
|
+
ETagStore,
|
|
56
58
|
EVIDENCE_SATURATION,
|
|
57
59
|
EXTENSION_MAP,
|
|
58
60
|
EmergenceConfidenceSchema,
|
|
@@ -219,6 +221,7 @@ import {
|
|
|
219
221
|
createRegionMap,
|
|
220
222
|
createSelfReview,
|
|
221
223
|
createStream,
|
|
224
|
+
createTrackerClient,
|
|
222
225
|
crossReferenceUndocumentedFixes,
|
|
223
226
|
cryptoRules,
|
|
224
227
|
deduplicateCleanupFindings,
|
|
@@ -279,6 +282,7 @@ import {
|
|
|
279
282
|
getParser,
|
|
280
283
|
getPhaseCategories,
|
|
281
284
|
getPulseAdapter,
|
|
285
|
+
getRoadmapMode,
|
|
282
286
|
getStreamForBranch,
|
|
283
287
|
getTaintFilePath,
|
|
284
288
|
getTrustLevel,
|
|
@@ -304,18 +308,22 @@ import {
|
|
|
304
308
|
loadHandoff,
|
|
305
309
|
loadIndexEntries,
|
|
306
310
|
loadPricingData,
|
|
311
|
+
loadProjectRoadmapMode,
|
|
307
312
|
loadRelevantLearnings,
|
|
308
313
|
loadSessionSummary,
|
|
309
314
|
loadState,
|
|
310
315
|
loadStreamIndex,
|
|
316
|
+
loadTrackerClientConfigFromProject,
|
|
311
317
|
loadTrackerSyncConfig,
|
|
312
318
|
logAgentAction,
|
|
319
|
+
makeTrackerConflictBody,
|
|
313
320
|
mapInjectionFindings,
|
|
314
321
|
mapSecurityFindings,
|
|
315
322
|
mapSecuritySeverity,
|
|
316
323
|
markProtectedFindings,
|
|
317
324
|
mcpRules,
|
|
318
325
|
migrateToStreams,
|
|
326
|
+
migrate_exports,
|
|
319
327
|
networkRules,
|
|
320
328
|
nodeRules,
|
|
321
329
|
normalizeLearningContent,
|
|
@@ -386,6 +394,8 @@ import {
|
|
|
386
394
|
scanForInjection,
|
|
387
395
|
scopeContext,
|
|
388
396
|
scoreRoadmapCandidates,
|
|
397
|
+
scoreRoadmapCandidatesFileLess,
|
|
398
|
+
scoreRoadmapCandidatesForMode,
|
|
389
399
|
searchSymbols,
|
|
390
400
|
secretRules,
|
|
391
401
|
securityFindingId,
|
|
@@ -423,6 +433,7 @@ import {
|
|
|
423
433
|
validateKnowledgeMap,
|
|
424
434
|
validatePatternConfig,
|
|
425
435
|
validatePulseConfig,
|
|
436
|
+
validateRoadmapMode,
|
|
426
437
|
validateSolutionsDir,
|
|
427
438
|
violationId,
|
|
428
439
|
weeksUntilThreshold,
|
|
@@ -433,7 +444,7 @@ import {
|
|
|
433
444
|
writeSessionSummary,
|
|
434
445
|
writeTaint,
|
|
435
446
|
xssRules
|
|
436
|
-
} from "./chunk-
|
|
447
|
+
} from "./chunk-4DWOMGUM.js";
|
|
437
448
|
import {
|
|
438
449
|
DEFAULT_SKILL_CONTEXT_BUDGET,
|
|
439
450
|
Err,
|
|
@@ -482,6 +493,7 @@ export {
|
|
|
482
493
|
CompoundLockHeldError,
|
|
483
494
|
ConfidenceTierSchema,
|
|
484
495
|
ConfirmationSchema,
|
|
496
|
+
ConflictError,
|
|
485
497
|
ConsoleSink,
|
|
486
498
|
ConstraintRuleSchema,
|
|
487
499
|
ContributingFeatureSchema,
|
|
@@ -501,6 +513,7 @@ export {
|
|
|
501
513
|
DepDepthCollector,
|
|
502
514
|
DirectionSchema,
|
|
503
515
|
EMPTY_SUPPLY_CHAIN,
|
|
516
|
+
ETagStore,
|
|
504
517
|
EVIDENCE_SATURATION,
|
|
505
518
|
EXTENSION_MAP,
|
|
506
519
|
EmergenceConfidenceSchema,
|
|
@@ -672,6 +685,7 @@ export {
|
|
|
672
685
|
createRegionMap,
|
|
673
686
|
createSelfReview,
|
|
674
687
|
createStream,
|
|
688
|
+
createTrackerClient,
|
|
675
689
|
crossReferenceUndocumentedFixes,
|
|
676
690
|
cryptoRules,
|
|
677
691
|
deduplicateCleanupFindings,
|
|
@@ -732,6 +746,7 @@ export {
|
|
|
732
746
|
getParser,
|
|
733
747
|
getPhaseCategories,
|
|
734
748
|
getPulseAdapter,
|
|
749
|
+
getRoadmapMode,
|
|
735
750
|
getStreamForBranch,
|
|
736
751
|
getTaintFilePath,
|
|
737
752
|
getTrustLevel,
|
|
@@ -758,17 +773,21 @@ export {
|
|
|
758
773
|
loadHandoff,
|
|
759
774
|
loadIndexEntries,
|
|
760
775
|
loadPricingData,
|
|
776
|
+
loadProjectRoadmapMode,
|
|
761
777
|
loadRelevantLearnings,
|
|
762
778
|
loadSessionSummary,
|
|
763
779
|
loadState,
|
|
764
780
|
loadStreamIndex,
|
|
781
|
+
loadTrackerClientConfigFromProject,
|
|
765
782
|
loadTrackerSyncConfig,
|
|
766
783
|
logAgentAction,
|
|
784
|
+
makeTrackerConflictBody,
|
|
767
785
|
mapInjectionFindings,
|
|
768
786
|
mapSecurityFindings,
|
|
769
787
|
mapSecuritySeverity,
|
|
770
788
|
markProtectedFindings,
|
|
771
789
|
mcpRules,
|
|
790
|
+
migrate_exports as migrate,
|
|
772
791
|
migrateToStreams,
|
|
773
792
|
networkRules,
|
|
774
793
|
nodeRules,
|
|
@@ -840,6 +859,8 @@ export {
|
|
|
840
859
|
scanForInjection,
|
|
841
860
|
scopeContext,
|
|
842
861
|
scoreRoadmapCandidates,
|
|
862
|
+
scoreRoadmapCandidatesFileLess,
|
|
863
|
+
scoreRoadmapCandidatesForMode,
|
|
843
864
|
searchSymbols,
|
|
844
865
|
secretRules,
|
|
845
866
|
securityFindingId,
|
|
@@ -877,6 +898,7 @@ export {
|
|
|
877
898
|
validateKnowledgeMap,
|
|
878
899
|
validatePatternConfig,
|
|
879
900
|
validatePulseConfig,
|
|
901
|
+
validateRoadmapMode,
|
|
880
902
|
validateSolutionsDir,
|
|
881
903
|
violationId,
|
|
882
904
|
weeksUntilThreshold,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
checkDocsDefinition,
|
|
3
3
|
handleCheckDocs
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MT2MMBUA.js";
|
|
5
5
|
import "./chunk-EPUKTTJZ.js";
|
|
6
6
|
import "./chunk-W6Y7ZW3Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-PW3U4YJV.js";
|
|
8
8
|
import "./chunk-ZCZD7FHU.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-4DWOMGUM.js";
|
|
10
10
|
import "./chunk-RL4VMEXL.js";
|
|
11
11
|
import "./chunk-BMM3GXV6.js";
|
|
12
12
|
import "./chunk-3WGJMBKH.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
detectEntropyDefinition,
|
|
3
3
|
handleDetectEntropy
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5PPV4WYY.js";
|
|
5
5
|
import "./chunk-EPUKTTJZ.js";
|
|
6
6
|
import "./chunk-W6Y7ZW3Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-4DWOMGUM.js";
|
|
8
8
|
import "./chunk-RL4VMEXL.js";
|
|
9
9
|
import "./chunk-BMM3GXV6.js";
|
|
10
10
|
import "./chunk-KFQGP6VL.js";
|
package/dist/{generate-agent-definitions-GFNXJCBY.js → generate-agent-definitions-F4YMKQLP.js}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createGenerateAgentDefinitionsCommand,
|
|
3
3
|
generateAgentDefinitions
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GUIX2TMZ.js";
|
|
5
5
|
import "./chunk-KET4QQZB.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-L3CEN42B.js";
|
|
7
7
|
import "./chunk-3ISINLYT.js";
|
|
8
8
|
import "./chunk-6B6UN6SG.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-4DWOMGUM.js";
|
|
10
10
|
import "./chunk-RL4VMEXL.js";
|
|
11
11
|
import "./chunk-BMM3GXV6.js";
|
|
12
12
|
import "./chunk-3WGJMBKH.js";
|
|
@@ -33,7 +33,7 @@ function main() {
|
|
|
33
33
|
process.exit(0);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
if (
|
|
36
|
+
if (containsHookBypass(command)) {
|
|
37
37
|
process.stderr.write(
|
|
38
38
|
'BLOCKED: --no-verify flag detected. Hooks must not be bypassed.\n'
|
|
39
39
|
);
|
|
@@ -47,4 +47,22 @@ function main() {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
// Strip heredoc bodies, quoted strings, and shell comments so flag detection
|
|
51
|
+
// runs against argv tokens only — not text the user is just talking about.
|
|
52
|
+
function stripStringsAndComments(cmd) {
|
|
53
|
+
let s = cmd;
|
|
54
|
+
s = s.replace(/<<-?\s*['"]?(\w+)['"]?[\s\S]*?\n\s*\1\b/g, ' ');
|
|
55
|
+
s = s.replace(/'[^']*'/g, ' ');
|
|
56
|
+
s = s.replace(/"(?:[^"\\]|\\.)*"/g, ' ');
|
|
57
|
+
s = s.replace(/(^|[\s;&|`(])#[^\n]*/g, '$1');
|
|
58
|
+
return s;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function containsHookBypass(command) {
|
|
62
|
+
const stripped = stripStringsAndComments(command);
|
|
63
|
+
if (/(?:^|\s)--no-verify(?=\s|$)/.test(stripped)) return true;
|
|
64
|
+
if (/\bgit\s+(?:[\w-]+\s+)*?commit\b[^\n]*?(?:^|\s)-n(?=\s|$)/.test(stripped)) return true;
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
|
|
50
68
|
main();
|