@harness-engineering/cli 4.0.1 → 4.2.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-autopilot/SKILL.md +40 -8
- package/dist/agents/skills/claude-code/harness-catalog-retrospective/SKILL.md +124 -0
- package/dist/agents/skills/claude-code/harness-catalog-retrospective/skill.yaml +48 -0
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +13 -0
- package/dist/agents/skills/claude-code/harness-parallel-agents/SKILL.md +3 -0
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +3 -1
- package/dist/agents/skills/claude-code/pre-merge-brief/SKILL.md +86 -0
- package/dist/agents/skills/claude-code/pre-merge-brief/skill.yaml +67 -0
- package/dist/agents/skills/codex/harness-autopilot/SKILL.md +40 -8
- package/dist/agents/skills/codex/harness-catalog-retrospective/SKILL.md +124 -0
- package/dist/agents/skills/codex/harness-catalog-retrospective/skill.yaml +48 -0
- package/dist/agents/skills/codex/harness-execution/SKILL.md +13 -0
- package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +3 -0
- package/dist/agents/skills/codex/harness-planning/SKILL.md +3 -1
- package/dist/agents/skills/codex/pre-merge-brief/SKILL.md +86 -0
- package/dist/agents/skills/codex/pre-merge-brief/skill.yaml +67 -0
- package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +40 -8
- package/dist/agents/skills/cursor/harness-catalog-retrospective/SKILL.md +124 -0
- package/dist/agents/skills/cursor/harness-catalog-retrospective/skill.yaml +48 -0
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +13 -0
- package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +3 -0
- package/dist/agents/skills/cursor/harness-planning/SKILL.md +3 -1
- package/dist/agents/skills/cursor/pre-merge-brief/SKILL.md +86 -0
- package/dist/agents/skills/cursor/pre-merge-brief/skill.yaml +67 -0
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +40 -8
- package/dist/agents/skills/gemini-cli/harness-catalog-retrospective/SKILL.md +124 -0
- package/dist/agents/skills/gemini-cli/harness-catalog-retrospective/skill.yaml +48 -0
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +13 -0
- package/dist/agents/skills/gemini-cli/harness-parallel-agents/SKILL.md +3 -0
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +3 -1
- package/dist/agents/skills/gemini-cli/pre-merge-brief/SKILL.md +86 -0
- package/dist/agents/skills/gemini-cli/pre-merge-brief/skill.yaml +67 -0
- package/dist/{agents-md-VJLYEH2S.js → agents-md-BK2UPKUC.js} +4 -4
- package/dist/analyzer-XRCV63KC-6T2Z32XC.js +26 -0
- package/dist/{architecture-YQH2NYXY.js → architecture-7PNQZOWV.js} +5 -5
- package/dist/{assess-project-KOTAPAHD.js → assess-project-2QPCNN7N.js} +5 -3
- package/dist/bin/harness-mcp.js +15 -15
- package/dist/bin/harness.js +26 -26
- package/dist/{check-phase-gate-CHU2E3OU.js → check-phase-gate-RZUSDB3O.js} +5 -5
- package/dist/{chunk-MMLQPHZ5.js → chunk-33OU3LYX.js} +380 -15
- package/dist/{chunk-XAVMTAUT.js → chunk-6STDKKAM.js} +19 -3
- package/dist/{chunk-I3CGCZJF.js → chunk-BJDT3VGQ.js} +6 -6
- package/dist/{chunk-M7F2PPN3.js → chunk-D5YCPIK6.js} +2 -2
- package/dist/{chunk-SDMV4QHM.js → chunk-DBCC7KIW.js} +25 -7
- package/dist/{chunk-E5EW5HVJ.js → chunk-DVG6DDX6.js} +1 -1
- package/dist/{chunk-4VXFZSYF.js → chunk-DW6HE5DH.js} +2 -2
- package/dist/{chunk-7PJCK7UE.js → chunk-E5KJOUHI.js} +7 -7
- package/dist/{chunk-6SCYTIF4.js → chunk-HU7NS7JA.js} +32 -7
- package/dist/{chunk-36GQREOE.js → chunk-HUC73DZC.js} +3 -3
- package/dist/{chunk-EYMOPFSD.js → chunk-J5MFNKE7.js} +2 -2
- package/dist/{chunk-JPVOI7GP.js → chunk-J7H5I4FO.js} +2 -2
- package/dist/{chunk-RG3TNIUB.js → chunk-K5R2I37T.js} +208 -97
- package/dist/{chunk-AAUY53CC.js → chunk-KHL6WFRL.js} +2 -2
- package/dist/{chunk-OQ6KOQEV.js → chunk-KYFXXEK3.js} +3 -3
- package/dist/{chunk-5RSXUAMN.js → chunk-MHHISNS2.js} +2 -2
- package/dist/{chunk-GHBFNLV2.js → chunk-RRCS27GT.js} +1531 -1175
- package/dist/{chunk-6YFHUIGT.js → chunk-RZTLXZHJ.js} +59 -21
- package/dist/{chunk-AX5KGRM6.js → chunk-SI4O2W4H.js} +2 -2
- package/dist/{chunk-BDGTZRZ6.js → chunk-UEXQMI6K.js} +56 -44
- package/dist/{chunk-7TIJXWG3.js → chunk-V2GJE5J5.js} +3 -3
- package/dist/{chunk-T746REAE.js → chunk-VC2B275U.js} +2 -2
- package/dist/{chunk-SEA2PFVI.js → chunk-XACP5P2J.js} +2 -2
- package/dist/{chunk-UWVMJEUJ.js → chunk-YTJIRQON.js} +2 -2
- package/dist/{chunk-YANR2RL7.js → chunk-ZIJABBGZ.js} +2 -2
- package/dist/{ci-workflow-HO4WKGNG.js → ci-workflow-LGN7LHHO.js} +4 -4
- package/dist/{dist-ICW4QUEW.js → dist-FBBADRYS.js} +3 -1
- package/dist/{dist-6D2F2J57.js → dist-LE5AU7FR.js} +19 -3
- package/dist/{docs-FP47JONV.js → docs-3BTPSHKE.js} +5 -5
- package/dist/{engine-YUA6IYOG.js → engine-GWGU4AMH.js} +4 -4
- package/dist/{entropy-DBW2INZU.js → entropy-35XURODP.js} +7 -4
- package/dist/{feedback-BPHADTRQ.js → feedback-NDGZZ37W.js} +1 -1
- package/dist/{generate-agent-definitions-KPVGBGDY.js → generate-agent-definitions-PYZ3E7SP.js} +5 -5
- package/dist/hooks/sentinel-pre.js +15 -138
- package/dist/index.d.ts +61 -0
- package/dist/index.js +25 -25
- package/dist/{loader-QOJQ6NZM.js → loader-QK2OJXKB.js} +4 -4
- package/dist/{mcp-ZPX6O767.js → mcp-Z5YMV7TA.js} +15 -15
- package/dist/{performance-FXYTGJGQ.js → performance-VAYOYPVK.js} +5 -5
- package/dist/{review-pipeline-2TFQ5OAE.js → review-pipeline-UETEOWSS.js} +4 -4
- package/dist/{runtime-XK6ZCHKE.js → runtime-J7KFACTK.js} +4 -4
- package/dist/{security-4W2P5ZGI.js → security-6AIUZXF5.js} +1 -1
- package/dist/{state-events-ECQAIZLU.js → state-events-XQPHGLG5.js} +4 -4
- package/dist/{validate-64KTEGIE.js → validate-ON7YMVLY.js} +5 -5
- package/dist/{validate-cross-check-J5PVGICB.js → validate-cross-check-HKKQA7K5.js} +4 -4
- package/package.json +8 -7
- package/dist/analyzer-V633GUHY-OV335HGM.js +0 -26
|
@@ -7,13 +7,13 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
findConfigFile,
|
|
9
9
|
loadConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-6STDKKAM.js";
|
|
11
11
|
import {
|
|
12
12
|
init_dist
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-33OU3LYX.js";
|
|
14
14
|
import {
|
|
15
15
|
Ok
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-UEXQMI6K.js";
|
|
17
17
|
|
|
18
18
|
// src/mcp/tools/docs.ts
|
|
19
19
|
init_dist();
|
|
@@ -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-LE5AU7FR.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-LE5AU7FR.js");
|
|
59
59
|
const domain2 = input.domain ?? "src";
|
|
60
60
|
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-STFGYKZH.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-LE5AU7FR.js");
|
|
98
98
|
const domain = input.domain ?? "src";
|
|
99
99
|
const { loadGraphStore } = await import("./graph-loader-STFGYKZH.js");
|
|
100
100
|
const store = await loadGraphStore(projectPath);
|
|
@@ -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-LE5AU7FR.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-LE5AU7FR.js");
|
|
118
118
|
const projectRoot = sanitizePath(input.path);
|
|
119
119
|
const manager = new core.SecurityTimelineManager(projectRoot);
|
|
120
120
|
const trendOptions = {};
|
|
@@ -4,15 +4,26 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
sanitizePath
|
|
6
6
|
} from "./chunk-W6Y7ZW3Y.js";
|
|
7
|
+
import {
|
|
8
|
+
findConfigFile,
|
|
9
|
+
loadConfig
|
|
10
|
+
} from "./chunk-6STDKKAM.js";
|
|
7
11
|
import {
|
|
8
12
|
init_dist
|
|
9
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-33OU3LYX.js";
|
|
10
14
|
import {
|
|
11
15
|
Ok
|
|
12
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-UEXQMI6K.js";
|
|
13
17
|
|
|
14
18
|
// src/mcp/tools/entropy.ts
|
|
15
19
|
init_dist();
|
|
20
|
+
function loadEntropyConfig(projectPath) {
|
|
21
|
+
const configFile = findConfigFile(projectPath);
|
|
22
|
+
if (!configFile.ok) return void 0;
|
|
23
|
+
const loaded = loadConfig(configFile.value);
|
|
24
|
+
if (!loaded.ok) return void 0;
|
|
25
|
+
return loaded.value.entropy;
|
|
26
|
+
}
|
|
16
27
|
async function loadEntropyGraphOptions(projectPath) {
|
|
17
28
|
const { loadGraphStore } = await import("./graph-loader-STFGYKZH.js");
|
|
18
29
|
const store = await loadGraphStore(projectPath);
|
|
@@ -127,17 +138,24 @@ function buildSummaryResponse(report) {
|
|
|
127
138
|
}
|
|
128
139
|
async function handleDetectEntropy(input) {
|
|
129
140
|
try {
|
|
130
|
-
const { EntropyAnalyzer } = await import("./dist-
|
|
141
|
+
const { EntropyAnalyzer } = await import("./dist-LE5AU7FR.js");
|
|
131
142
|
const typeFilter = input.type ?? "all";
|
|
143
|
+
const projectPath = sanitizePath(input.path);
|
|
144
|
+
const entropy = loadEntropyConfig(projectPath);
|
|
145
|
+
const driftConfig = entropy?.drift;
|
|
146
|
+
const driftEnabled = typeFilter === "all" || typeFilter === "drift";
|
|
132
147
|
const analyzer = new EntropyAnalyzer({
|
|
133
|
-
rootDir:
|
|
148
|
+
rootDir: projectPath,
|
|
149
|
+
...entropy?.entryPoints && { entryPoints: entropy.entryPoints },
|
|
150
|
+
...entropy?.excludePatterns && { exclude: entropy.excludePatterns },
|
|
151
|
+
...driftConfig?.docPaths && { docPaths: driftConfig.docPaths },
|
|
134
152
|
analyze: {
|
|
135
|
-
drift:
|
|
153
|
+
drift: driftEnabled ? driftConfig ?? true : false,
|
|
136
154
|
deadCode: typeFilter === "all" || typeFilter === "dead-code",
|
|
137
155
|
patterns: typeFilter === "all" || typeFilter === "patterns"
|
|
138
156
|
}
|
|
139
157
|
});
|
|
140
|
-
const graphOptions = await loadEntropyGraphOptions(
|
|
158
|
+
const graphOptions = await loadEntropyGraphOptions(projectPath);
|
|
141
159
|
const result = await analyzer.analyze(graphOptions);
|
|
142
160
|
if (input.mode === "summary" && result.ok && !input.autoFix) {
|
|
143
161
|
return buildSummaryResponse(result.value);
|
|
@@ -146,7 +164,7 @@ async function handleDetectEntropy(input) {
|
|
|
146
164
|
return resultToMcpResponse(result);
|
|
147
165
|
}
|
|
148
166
|
if (!result.ok) return resultToMcpResponse(result);
|
|
149
|
-
const { createFixes, applyFixes, generateSuggestions } = await import("./dist-
|
|
167
|
+
const { createFixes, applyFixes, generateSuggestions } = await import("./dist-LE5AU7FR.js");
|
|
150
168
|
const report = result.value;
|
|
151
169
|
const deadCode = report.deadCode;
|
|
152
170
|
const fixTypesConfig = input.fixTypes ? { fixTypes: input.fixTypes } : void 0;
|
|
@@ -7,13 +7,13 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
findConfigFile,
|
|
9
9
|
loadConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-6STDKKAM.js";
|
|
11
11
|
import {
|
|
12
12
|
init_dist
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-33OU3LYX.js";
|
|
14
14
|
import {
|
|
15
15
|
Ok
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-UEXQMI6K.js";
|
|
17
17
|
|
|
18
18
|
// src/mcp/tools/performance.ts
|
|
19
19
|
init_dist();
|
|
@@ -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-LE5AU7FR.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-LE5AU7FR.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-LE5AU7FR.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-LE5AU7FR.js");
|
|
180
180
|
const resolver = new CriticalPathResolver(sanitizePath(input.path));
|
|
181
181
|
const result = await resolver.resolve();
|
|
182
182
|
return resultToMcpResponse(Ok(result));
|
|
@@ -6,6 +6,29 @@ import {
|
|
|
6
6
|
} from "./chunk-W6Y7ZW3Y.js";
|
|
7
7
|
|
|
8
8
|
// src/mcp/tools/assess-project.ts
|
|
9
|
+
import * as fs from "fs";
|
|
10
|
+
import * as path from "path";
|
|
11
|
+
var TURBO_LINT = { command: "npx", args: ["turbo", "run", "lint", "--force"] };
|
|
12
|
+
function resolveLintCommand(projectPath) {
|
|
13
|
+
let linter;
|
|
14
|
+
try {
|
|
15
|
+
const raw = fs.readFileSync(path.join(projectPath, "harness.config.json"), "utf-8");
|
|
16
|
+
const config = JSON.parse(raw);
|
|
17
|
+
linter = config.tooling?.linter ?? config.template?.tooling?.linter;
|
|
18
|
+
} catch {
|
|
19
|
+
return TURBO_LINT;
|
|
20
|
+
}
|
|
21
|
+
switch (linter) {
|
|
22
|
+
case "ruff":
|
|
23
|
+
return { command: "ruff", args: ["check", "."] };
|
|
24
|
+
case "golangci-lint":
|
|
25
|
+
return { command: "golangci-lint", args: ["run"] };
|
|
26
|
+
case "clippy":
|
|
27
|
+
return { command: "cargo", args: ["clippy"] };
|
|
28
|
+
default:
|
|
29
|
+
return TURBO_LINT;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
9
32
|
var assessProjectDefinition = {
|
|
10
33
|
name: "assess_project",
|
|
11
34
|
description: "Run all project health checks in parallel and return a unified report. Checks: validate, dependencies, docs, entropy, security, performance, lint.",
|
|
@@ -75,7 +98,7 @@ async function handleAssessProject(input) {
|
|
|
75
98
|
let validateResult = null;
|
|
76
99
|
if (checksToRun.has("validate")) {
|
|
77
100
|
try {
|
|
78
|
-
const { handleValidateProject } = await import("./validate-
|
|
101
|
+
const { handleValidateProject } = await import("./validate-ON7YMVLY.js");
|
|
79
102
|
const result = await handleValidateProject({ path: projectPath });
|
|
80
103
|
const out = parseToolResponse(result, "validate");
|
|
81
104
|
if ("error" in out) {
|
|
@@ -104,7 +127,7 @@ async function handleAssessProject(input) {
|
|
|
104
127
|
parallelChecks.push(
|
|
105
128
|
(async () => {
|
|
106
129
|
try {
|
|
107
|
-
const { handleCheckDependencies } = await import("./architecture-
|
|
130
|
+
const { handleCheckDependencies } = await import("./architecture-7PNQZOWV.js");
|
|
108
131
|
const result = await handleCheckDependencies({ path: projectPath });
|
|
109
132
|
const out = parseToolResponse(result, "deps");
|
|
110
133
|
if ("error" in out) return out.error;
|
|
@@ -132,7 +155,7 @@ async function handleAssessProject(input) {
|
|
|
132
155
|
parallelChecks.push(
|
|
133
156
|
(async () => {
|
|
134
157
|
try {
|
|
135
|
-
const { handleCheckDocs } = await import("./docs-
|
|
158
|
+
const { handleCheckDocs } = await import("./docs-3BTPSHKE.js");
|
|
136
159
|
const result = await handleCheckDocs({ path: projectPath, scope: "coverage" });
|
|
137
160
|
const out = parseToolResponse(result, "docs");
|
|
138
161
|
if ("error" in out) return out.error;
|
|
@@ -160,7 +183,7 @@ async function handleAssessProject(input) {
|
|
|
160
183
|
parallelChecks.push(
|
|
161
184
|
(async () => {
|
|
162
185
|
try {
|
|
163
|
-
const { handleDetectEntropy } = await import("./entropy-
|
|
186
|
+
const { handleDetectEntropy } = await import("./entropy-35XURODP.js");
|
|
164
187
|
const result = await handleDetectEntropy({ path: projectPath, type: "all" });
|
|
165
188
|
const out = parseToolResponse(result, "entropy");
|
|
166
189
|
if ("error" in out) return out.error;
|
|
@@ -191,7 +214,7 @@ async function handleAssessProject(input) {
|
|
|
191
214
|
parallelChecks.push(
|
|
192
215
|
(async () => {
|
|
193
216
|
try {
|
|
194
|
-
const { handleRunSecurityScan } = await import("./security-
|
|
217
|
+
const { handleRunSecurityScan } = await import("./security-6AIUZXF5.js");
|
|
195
218
|
const result = await handleRunSecurityScan({ path: projectPath });
|
|
196
219
|
const out = parseToolResponse(result, "security");
|
|
197
220
|
if ("error" in out) return out.error;
|
|
@@ -224,7 +247,7 @@ async function handleAssessProject(input) {
|
|
|
224
247
|
parallelChecks.push(
|
|
225
248
|
(async () => {
|
|
226
249
|
try {
|
|
227
|
-
const { handleCheckPerformance } = await import("./performance-
|
|
250
|
+
const { handleCheckPerformance } = await import("./performance-VAYOYPVK.js");
|
|
228
251
|
const result = await handleCheckPerformance({ path: projectPath });
|
|
229
252
|
if ("isError" in result && result.isError) {
|
|
230
253
|
const msg = result.content[0]?.text ?? "Performance check failed";
|
|
@@ -266,7 +289,8 @@ async function handleAssessProject(input) {
|
|
|
266
289
|
(async () => {
|
|
267
290
|
try {
|
|
268
291
|
const { execFileSync } = await import("child_process");
|
|
269
|
-
const
|
|
292
|
+
const { command, args } = resolveLintCommand(projectPath);
|
|
293
|
+
const output = execFileSync(command, args, {
|
|
270
294
|
cwd: projectPath,
|
|
271
295
|
encoding: "utf-8",
|
|
272
296
|
timeout: 6e4,
|
|
@@ -324,6 +348,7 @@ async function handleAssessProject(input) {
|
|
|
324
348
|
}
|
|
325
349
|
|
|
326
350
|
export {
|
|
351
|
+
resolveLintCommand,
|
|
327
352
|
assessProjectDefinition,
|
|
328
353
|
parseToolResponse,
|
|
329
354
|
handleAssessProject
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveProjectConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XACP5P2J.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-LE5AU7FR.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-LE5AU7FR.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);
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
init_dist,
|
|
6
6
|
paginate
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-33OU3LYX.js";
|
|
8
8
|
|
|
9
9
|
// src/mcp/tools/review-pipeline.ts
|
|
10
10
|
init_dist();
|
|
@@ -84,7 +84,7 @@ var runCodeReviewDefinition = {
|
|
|
84
84
|
};
|
|
85
85
|
async function handleRunCodeReview(input) {
|
|
86
86
|
try {
|
|
87
|
-
const { parseDiff, runReviewPipeline } = await import("./dist-
|
|
87
|
+
const { parseDiff, runReviewPipeline } = await import("./dist-LE5AU7FR.js");
|
|
88
88
|
const parseResult = parseDiff(input.diff);
|
|
89
89
|
if (!parseResult.ok) {
|
|
90
90
|
return {
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-RC3OI5NK.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveProjectConfig
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XACP5P2J.js";
|
|
7
7
|
import {
|
|
8
8
|
sanitizePath
|
|
9
9
|
} from "./chunk-W6Y7ZW3Y.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-LE5AU7FR.js");
|
|
42
42
|
const config = configResult.value;
|
|
43
43
|
const rawLayers = Array.isArray(config.layers) ? config.layers : [];
|
|
44
44
|
const layers = rawLayers.map((l) => ({
|