@harness-engineering/cli 2.1.0 → 2.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/initialize-harness-project/SKILL.md +168 -13
- package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +168 -13
- package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +168 -13
- package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +168 -13
- package/dist/{agents-md-XCAWON2D.js → agents-md-L4X4MOWT.js} +2 -2
- package/dist/{architecture-KERHEEQZ.js → architecture-WJRIYQ45.js} +3 -3
- package/dist/{assess-project-NPYA3UVI.js → assess-project-PHC2HO3V.js} +1 -1
- package/dist/bin/harness-mcp.js +13 -13
- package/dist/bin/harness.js +22 -22
- package/dist/{check-phase-gate-GE5ALEEU.js → check-phase-gate-646KY67H.js} +3 -3
- package/dist/{chunk-IIX5OJES.js → chunk-224XKVLP.js} +1 -1
- package/dist/{chunk-UWIOBHZL.js → chunk-2QPHCR22.js} +5 -5
- package/dist/{chunk-URLDPALI.js → chunk-2ZURBWEV.js} +3 -3
- package/dist/{chunk-EFA4OEEN.js → chunk-36X7TRUI.js} +2 -2
- package/dist/{chunk-HBQ3BK2E.js → chunk-4HKVZO7R.js} +1 -1
- package/dist/{chunk-OXFFN3FD.js → chunk-CPYL6LJR.js} +1 -1
- package/dist/{chunk-WW6AUOA3.js → chunk-E7W3YOXL.js} +2 -2
- package/dist/{chunk-FQAJAM54.js → chunk-GOOTYTTV.js} +71 -29
- package/dist/{chunk-D5FE4L2O.js → chunk-JPWICLXQ.js} +1 -1
- package/dist/{chunk-MAFI6UWT.js → chunk-K4WRQTEF.js} +137 -39
- package/dist/{chunk-M4C3ZIGL.js → chunk-KV7A5OZT.js} +3 -3
- package/dist/{chunk-T7MNLCUD.js → chunk-L2IDE7WS.js} +122 -76
- package/dist/{chunk-4FVHBBPY.js → chunk-LO7ZLV7S.js} +1 -1
- package/dist/{chunk-GCYGGQFM.js → chunk-OJMO4JBQ.js} +61 -6
- package/dist/{chunk-PCX4GPNT.js → chunk-QTUPHTTK.js} +1 -1
- package/dist/{chunk-AEFZJ543.js → chunk-TNZYQTEE.js} +1 -1
- package/dist/{chunk-DRD7LLFC.js → chunk-VJQLUS5I.js} +1 -1
- package/dist/{chunk-LY2TY6NE.js → chunk-VKDBM3RX.js} +3 -3
- package/dist/{chunk-FBQYKH7R.js → chunk-W4AFGFFB.js} +2 -2
- package/dist/{chunk-YBGVZQQE.js → chunk-YLOAQZLA.js} +2 -2
- package/dist/{chunk-GHPWBWUW.js → chunk-YLTRFZAT.js} +6 -6
- package/dist/{chunk-RCHXBL2M.js → chunk-YWD6WXXM.js} +6 -6
- package/dist/{ci-workflow-A2E2RTOP.js → ci-workflow-TOS5X527.js} +2 -2
- package/dist/{dist-K22DQUYY.js → dist-6RT2AVYU.js} +1 -1
- package/dist/{docs-GXJOFVCF.js → docs-HOJMQYDZ.js} +3 -3
- package/dist/{engine-JBUIA2XO.js → engine-D6UYH6DB.js} +2 -2
- package/dist/{entropy-Y7LUT4BZ.js → entropy-LZ4IDGZR.js} +2 -2
- package/dist/{feedback-BHOBVKI3.js → feedback-WV7EQVK7.js} +1 -1
- package/dist/{generate-agent-definitions-VL3ZVR32.js → generate-agent-definitions-GFNXJCBY.js} +3 -3
- package/dist/index.d.ts +17 -8
- package/dist/index.js +22 -22
- package/dist/{loader-WCKVMDYR.js → loader-Z23JTXIZ.js} +2 -2
- package/dist/{mcp-FA2CKHFY.js → mcp-JDJGELGD.js} +13 -13
- package/dist/{performance-NISUL5AA.js → performance-7ATLHTQU.js} +3 -3
- package/dist/{review-pipeline-CHE5LJ5D.js → review-pipeline-COBGGXHJ.js} +2 -2
- package/dist/{runtime-3SKKEVPF.js → runtime-KCBNQUXK.js} +2 -2
- package/dist/{security-MF54MY3P.js → security-MAPRIFQT.js} +1 -1
- package/dist/{validate-SIWFNTXI.js → validate-74XTQR7Q.js} +3 -3
- package/dist/{validate-cross-check-GBX7B7CQ.js → validate-cross-check-MI5MZ7MB.js} +2 -2
- package/package.json +4 -4
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
listPersonas,
|
|
6
6
|
loadPersona
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VJQLUS5I.js";
|
|
8
8
|
import {
|
|
9
9
|
GENERATED_HEADER_AGENT,
|
|
10
10
|
VALID_PLATFORMS,
|
|
@@ -175,16 +175,67 @@ function renderGeminiAgent(def) {
|
|
|
175
175
|
return lines.join("\n");
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
+
// src/agent-definitions/render-cursor.ts
|
|
179
|
+
function formatStep3(step, index) {
|
|
180
|
+
if ("command" in step && step.command) {
|
|
181
|
+
const cmd = step.command;
|
|
182
|
+
const when = step.when ?? "always";
|
|
183
|
+
return `${index + 1}. Run \`harness ${cmd}\` (${when})`;
|
|
184
|
+
}
|
|
185
|
+
if ("skill" in step && step.skill) {
|
|
186
|
+
const skill = step.skill;
|
|
187
|
+
const when = step.when ?? "always";
|
|
188
|
+
return `${index + 1}. Execute ${skill} skill (${when})`;
|
|
189
|
+
}
|
|
190
|
+
return `${index + 1}. Unknown step`;
|
|
191
|
+
}
|
|
192
|
+
function renderCursorAgent(def) {
|
|
193
|
+
const lines = ["---"];
|
|
194
|
+
lines.push(`name: ${def.name}`);
|
|
195
|
+
lines.push(`description: >`);
|
|
196
|
+
lines.push(` ${def.description}`);
|
|
197
|
+
lines.push("---");
|
|
198
|
+
lines.push("");
|
|
199
|
+
lines.push(GENERATED_HEADER_AGENT);
|
|
200
|
+
lines.push("");
|
|
201
|
+
lines.push("## Role");
|
|
202
|
+
lines.push("");
|
|
203
|
+
lines.push(def.role);
|
|
204
|
+
lines.push("");
|
|
205
|
+
lines.push("## Skills");
|
|
206
|
+
lines.push("");
|
|
207
|
+
for (const skill of def.skills) {
|
|
208
|
+
lines.push(`- ${skill}`);
|
|
209
|
+
}
|
|
210
|
+
lines.push("");
|
|
211
|
+
lines.push("## Steps");
|
|
212
|
+
lines.push("");
|
|
213
|
+
def.steps.forEach((step, i) => {
|
|
214
|
+
lines.push(formatStep3(step, i));
|
|
215
|
+
});
|
|
216
|
+
lines.push("");
|
|
217
|
+
if (def.methodology) {
|
|
218
|
+
lines.push("## Methodology");
|
|
219
|
+
lines.push("");
|
|
220
|
+
lines.push(def.methodology);
|
|
221
|
+
lines.push("");
|
|
222
|
+
}
|
|
223
|
+
return lines.join("\n");
|
|
224
|
+
}
|
|
225
|
+
|
|
178
226
|
// src/commands/generate-agent-definitions.ts
|
|
179
227
|
function resolveOutputDir(platform, opts) {
|
|
180
228
|
if (opts.output) {
|
|
181
|
-
return
|
|
229
|
+
return path.join(opts.output, platform);
|
|
182
230
|
}
|
|
183
231
|
if (opts.global) {
|
|
184
232
|
const home = os.homedir();
|
|
185
|
-
|
|
233
|
+
if (platform === "claude-code") return path.join(home, ".claude", "agents");
|
|
234
|
+
if (platform === "gemini-cli") return path.join(home, ".gemini", "agents");
|
|
235
|
+
if (platform === "cursor") return path.join(home, ".cursor", "agents");
|
|
236
|
+
return path.join(home, ".codex", "agents");
|
|
186
237
|
}
|
|
187
|
-
return
|
|
238
|
+
return path.join("agents", "agents", platform);
|
|
188
239
|
}
|
|
189
240
|
function loadSkillContent(skillName) {
|
|
190
241
|
const skillsDir = resolveSkillsDir();
|
|
@@ -193,7 +244,9 @@ function loadSkillContent(skillName) {
|
|
|
193
244
|
return fs.readFileSync(skillMdPath, "utf-8");
|
|
194
245
|
}
|
|
195
246
|
function getRenderer(platform) {
|
|
196
|
-
|
|
247
|
+
if (platform === "claude-code") return renderClaudeCodeAgent;
|
|
248
|
+
if (platform === "cursor") return renderCursorAgent;
|
|
249
|
+
return renderGeminiAgent;
|
|
197
250
|
}
|
|
198
251
|
function generateAgentDefinitions(opts) {
|
|
199
252
|
const personasDir = resolvePersonasDir();
|
|
@@ -265,7 +318,9 @@ ${result.platform} \u2192 ${result.outputDir}`);
|
|
|
265
318
|
}
|
|
266
319
|
}
|
|
267
320
|
function createGenerateAgentDefinitionsCommand() {
|
|
268
|
-
return new Command("generate-agent-definitions").description(
|
|
321
|
+
return new Command("generate-agent-definitions").description(
|
|
322
|
+
"Generate agent definition files from personas for Claude Code, Gemini CLI, and Cursor"
|
|
323
|
+
).option("--platforms <list>", "Target platforms (comma-separated)", "claude-code,gemini-cli").option("--global", "Write to global agent directories", false).option("--output <dir>", "Custom output directory").option("--dry-run", "Show what would change without writing", false).action(async (opts, cmd) => {
|
|
269
324
|
const globalOpts = cmd.optsWithGlobals();
|
|
270
325
|
try {
|
|
271
326
|
const platforms = parsePlatforms(opts.platforms);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveProjectConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CPYL6LJR.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-6RT2AVYU.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-6RT2AVYU.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);
|
|
@@ -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-6RT2AVYU.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-6RT2AVYU.js");
|
|
118
118
|
const projectRoot = sanitizePath(input.path);
|
|
119
119
|
const manager = new core.SecurityTimelineManager(projectRoot);
|
|
120
120
|
const trendOptions = {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveProjectConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CPYL6LJR.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-6RT2AVYU.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-LO7ZLV7S.js";
|
|
11
11
|
import {
|
|
12
12
|
init_dist
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-K4WRQTEF.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-6RT2AVYU.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-6RT2AVYU.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-6RT2AVYU.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-6RT2AVYU.js");
|
|
180
180
|
const resolver = new CriticalPathResolver(sanitizePath(input.path));
|
|
181
181
|
const result = await resolver.resolve();
|
|
182
182
|
return resultToMcpResponse(Ok(result));
|
|
@@ -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-74XTQR7Q.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-WJRIYQ45.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-HOJMQYDZ.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-LZ4IDGZR.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-MAPRIFQT.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-7ATLHTQU.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";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
checkDocsDefinition,
|
|
3
3
|
handleCheckDocs
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2QPHCR22.js";
|
|
5
5
|
import "./chunk-EPUKTTJZ.js";
|
|
6
6
|
import "./chunk-W6Y7ZW3Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-LO7ZLV7S.js";
|
|
8
8
|
import "./chunk-ZCZD7FHU.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-K4WRQTEF.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-KV7A5OZT.js";
|
|
5
5
|
import "./chunk-EPUKTTJZ.js";
|
|
6
6
|
import "./chunk-W6Y7ZW3Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-K4WRQTEF.js";
|
|
8
8
|
import "./chunk-RL4VMEXL.js";
|
|
9
9
|
import "./chunk-BMM3GXV6.js";
|
|
10
10
|
import "./chunk-KFQGP6VL.js";
|
package/dist/{generate-agent-definitions-VL3ZVR32.js → generate-agent-definitions-GFNXJCBY.js}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createGenerateAgentDefinitionsCommand,
|
|
3
3
|
generateAgentDefinitions
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OJMO4JBQ.js";
|
|
5
5
|
import "./chunk-KET4QQZB.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-VJQLUS5I.js";
|
|
7
7
|
import "./chunk-3ISINLYT.js";
|
|
8
8
|
import "./chunk-6B6UN6SG.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-K4WRQTEF.js";
|
|
10
10
|
import "./chunk-RL4VMEXL.js";
|
|
11
11
|
import "./chunk-BMM3GXV6.js";
|
|
12
12
|
import "./chunk-3WGJMBKH.js";
|
package/dist/index.d.ts
CHANGED
|
@@ -148,6 +148,14 @@ interface GeneratedFiles {
|
|
|
148
148
|
declare function generateSkillFiles(opts: CreateSkillOptions): GeneratedFiles;
|
|
149
149
|
|
|
150
150
|
type Platform = 'claude-code' | 'gemini-cli' | 'codex' | 'cursor';
|
|
151
|
+
/**
|
|
152
|
+
* For the `cursor` platform, decides whether output is rendered as Cursor
|
|
153
|
+
* rules (`.mdc` with description/globs/alwaysApply — for `~/.cursor/rules/`)
|
|
154
|
+
* or as Cursor plugin commands (`.md` with name/description — for
|
|
155
|
+
* `<plugin>/commands/`). Defaults to `rules` for backward compatibility
|
|
156
|
+
* with `harness setup`.
|
|
157
|
+
*/
|
|
158
|
+
type CursorRenderMode = 'rules' | 'commands';
|
|
151
159
|
interface GenerateOptions {
|
|
152
160
|
platforms: Platform[];
|
|
153
161
|
global: boolean;
|
|
@@ -156,6 +164,7 @@ interface GenerateOptions {
|
|
|
156
164
|
skillsDir: string;
|
|
157
165
|
dryRun: boolean;
|
|
158
166
|
yes: boolean;
|
|
167
|
+
cursorMode?: CursorRenderMode;
|
|
159
168
|
}
|
|
160
169
|
|
|
161
170
|
interface SkillSource {
|
|
@@ -779,14 +788,14 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
779
788
|
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>]>>>>;
|
|
780
789
|
}, "strip", z.ZodTypeAny, {
|
|
781
790
|
enabled: boolean;
|
|
782
|
-
thresholds: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
|
|
783
|
-
modules: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
|
|
784
791
|
baselinePath: string;
|
|
792
|
+
thresholds: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
|
|
793
|
+
modules: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
|
|
785
794
|
}, {
|
|
786
795
|
enabled?: boolean | undefined;
|
|
787
|
-
thresholds?: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
|
|
788
|
-
modules?: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
|
|
789
796
|
baselinePath?: string | undefined;
|
|
797
|
+
thresholds?: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
|
|
798
|
+
modules?: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
|
|
790
799
|
}>>;
|
|
791
800
|
/** Skill loading, suggestion, and tier override settings */
|
|
792
801
|
skills: z.ZodOptional<z.ZodObject<{
|
|
@@ -1040,9 +1049,9 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
1040
1049
|
} | undefined;
|
|
1041
1050
|
architecture?: {
|
|
1042
1051
|
enabled: boolean;
|
|
1043
|
-
thresholds: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
|
|
1044
|
-
modules: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
|
|
1045
1052
|
baselinePath: string;
|
|
1053
|
+
thresholds: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
|
|
1054
|
+
modules: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
|
|
1046
1055
|
} | undefined;
|
|
1047
1056
|
traceability?: {
|
|
1048
1057
|
enabled: boolean;
|
|
@@ -1198,9 +1207,9 @@ declare const HarnessConfigSchema: z.ZodObject<{
|
|
|
1198
1207
|
} | undefined;
|
|
1199
1208
|
architecture?: {
|
|
1200
1209
|
enabled?: boolean | undefined;
|
|
1201
|
-
thresholds?: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
|
|
1202
|
-
modules?: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
|
|
1203
1210
|
baselinePath?: string | undefined;
|
|
1211
|
+
thresholds?: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
|
|
1212
|
+
modules?: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
|
|
1204
1213
|
} | undefined;
|
|
1205
1214
|
traceability?: {
|
|
1206
1215
|
enabled?: boolean | undefined;
|
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-GOOTYTTV.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,12 +52,12 @@ import {
|
|
|
52
52
|
generateAgentDefinitions,
|
|
53
53
|
renderClaudeCodeAgent,
|
|
54
54
|
renderGeminiAgent
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-OJMO4JBQ.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
63
|
} from "./chunk-YG4ZBGEH.js";
|
|
@@ -66,19 +66,19 @@ import {
|
|
|
66
66
|
generateSlashCommands,
|
|
67
67
|
getToolDefinitions,
|
|
68
68
|
startServer
|
|
69
|
-
} from "./chunk-
|
|
70
|
-
import "./chunk-
|
|
71
|
-
import "./chunk-
|
|
69
|
+
} from "./chunk-L2IDE7WS.js";
|
|
70
|
+
import "./chunk-36X7TRUI.js";
|
|
71
|
+
import "./chunk-YWD6WXXM.js";
|
|
72
72
|
import "./chunk-IOW3MW2K.js";
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-2ZURBWEV.js";
|
|
74
|
+
import "./chunk-W4AFGFFB.js";
|
|
75
75
|
import "./chunk-KTWKW6KJ.js";
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-
|
|
78
|
-
import "./chunk-
|
|
79
|
-
import "./chunk-
|
|
80
|
-
import "./chunk-
|
|
81
|
-
import "./chunk-
|
|
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,12 +86,12 @@ 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
92
|
import "./chunk-ZCZD7FHU.js";
|
|
93
93
|
import "./chunk-BM3PWGXQ.js";
|
|
94
|
-
import "./chunk-
|
|
94
|
+
import "./chunk-K4WRQTEF.js";
|
|
95
95
|
import "./chunk-RL4VMEXL.js";
|
|
96
96
|
import "./chunk-BMM3GXV6.js";
|
|
97
97
|
import {
|
|
@@ -1,8 +1,8 @@
|
|
|
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
7
|
import "./chunk-BMM3GXV6.js";
|
|
8
8
|
import "./chunk-KFQGP6VL.js";
|
|
@@ -2,31 +2,31 @@ import {
|
|
|
2
2
|
createHarnessServer,
|
|
3
3
|
getToolDefinitions,
|
|
4
4
|
startServer
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-L2IDE7WS.js";
|
|
6
|
+
import "./chunk-36X7TRUI.js";
|
|
7
|
+
import "./chunk-YWD6WXXM.js";
|
|
8
8
|
import "./chunk-IOW3MW2K.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-2ZURBWEV.js";
|
|
10
|
+
import "./chunk-W4AFGFFB.js";
|
|
11
11
|
import "./chunk-KTWKW6KJ.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
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
28
|
import "./chunk-ZCZD7FHU.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-K4WRQTEF.js";
|
|
30
30
|
import "./chunk-RL4VMEXL.js";
|
|
31
31
|
import "./chunk-BMM3GXV6.js";
|
|
32
32
|
import "./chunk-HIK6OEUF.js";
|
|
@@ -7,12 +7,12 @@ 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-
|
|
13
|
+
import "./chunk-LO7ZLV7S.js";
|
|
14
14
|
import "./chunk-ZCZD7FHU.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-K4WRQTEF.js";
|
|
16
16
|
import "./chunk-RL4VMEXL.js";
|
|
17
17
|
import "./chunk-BMM3GXV6.js";
|
|
18
18
|
import "./chunk-3WGJMBKH.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
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
8
|
import "./chunk-BMM3GXV6.js";
|
|
9
9
|
import "./chunk-KFQGP6VL.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
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
7
|
import "./chunk-BMM3GXV6.js";
|
|
8
8
|
import "./chunk-KFQGP6VL.js";
|