@harness-engineering/cli 1.22.0 → 1.23.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-autopilot/SKILL.md +2 -2
- package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +5 -5
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +18 -14
- package/dist/agents/skills/codex/harness-autopilot/SKILL.md +2 -2
- package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +1 -1
- package/dist/agents/skills/codex/harness-execution/SKILL.md +1 -1
- package/dist/agents/skills/codex/harness-roadmap/SKILL.md +5 -5
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +18 -14
- package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +2 -2
- package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +1 -1
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +1 -1
- package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +5 -5
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +18 -14
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +2 -2
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +5 -5
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +18 -14
- package/dist/{agents-md-PM7LO74M.js → agents-md-FJXDMZPJ.js} +2 -2
- package/dist/{architecture-OVOCDTI6.js → architecture-FVERI7BQ.js} +3 -3
- package/dist/{assess-project-R2OZIDDS.js → assess-project-UGL5KLBV.js} +1 -1
- package/dist/bin/harness-mcp.js +14 -14
- package/dist/bin/harness.js +16 -16
- package/dist/{check-phase-gate-7JQ6EW5R.js → check-phase-gate-C7JPPKMX.js} +4 -4
- package/dist/{chunk-B4WHXHF7.js → chunk-7DMF3VT5.js} +1 -1
- package/dist/{chunk-ASS5TD2Y.js → chunk-7V5Y2L67.js} +1 -1
- package/dist/{chunk-J7W4LTRK.js → chunk-7XZSHTYZ.js} +2 -2
- package/dist/{chunk-GRJ7A4WT.js → chunk-AQN7GFKU.js} +1 -1
- package/dist/{chunk-5FBWWMY2.js → chunk-CZEPCYVX.js} +6 -6
- package/dist/{chunk-TEZI27SA.js → chunk-EUCASOD7.js} +2 -2
- package/dist/{chunk-FSLFBLYW.js → chunk-FNVAW5NG.js} +7 -7
- package/dist/{chunk-5QTWFO24.js → chunk-HRUCT5YX.js} +8 -8
- package/dist/{chunk-DXYOAQQC.js → chunk-KIR5PQX5.js} +1 -1
- package/dist/{chunk-DJEBBENF.js → chunk-L57RL7MC.js} +95 -81
- package/dist/{chunk-ZEIEUCZL.js → chunk-LAKMOIU6.js} +9 -9
- package/dist/{chunk-U44JNY3Y.js → chunk-QBATHQXU.js} +64 -36
- package/dist/{chunk-W6MPLFXU.js → chunk-RQ3AKUJB.js} +3 -3
- package/dist/{chunk-SOTTK27D.js → chunk-UJHNGRS6.js} +19 -19
- package/dist/{chunk-PUOMFNRO.js → chunk-WKLLNUAT.js} +1 -1
- package/dist/{chunk-IK5GSLW6.js → chunk-ZLTFDTK7.js} +4 -4
- package/dist/{ci-workflow-OTTEERPF.js → ci-workflow-S7VY625R.js} +2 -2
- package/dist/{dist-IA6XYKNO.js → dist-K56VJ4UJ.js} +1 -1
- package/dist/{dist-LCR2IO7U.js → dist-LPGVPYOZ.js} +2 -2
- package/dist/{docs-CHAYSGOP.js → docs-CGUBALYL.js} +4 -4
- package/dist/{engine-4MY2U5RZ.js → engine-PEHFAFOT.js} +2 -2
- package/dist/{entropy-AKSZG7G5.js → entropy-H5OOCI57.js} +3 -3
- package/dist/{feedback-QGCSW7SB.js → feedback-XTDR7E3R.js} +1 -1
- package/dist/{generate-agent-definitions-KU6X2UQN.js → generate-agent-definitions-RBI7Z4RY.js} +2 -2
- package/dist/{graph-loader-FJN4H7Y4.js → graph-loader-GRXDUWXO.js} +1 -1
- package/dist/index.js +16 -16
- package/dist/{loader-AV5XEMER.js → loader-IOC5L7NL.js} +2 -2
- package/dist/{mcp-LWHVQRG7.js → mcp-7RPKBGIR.js} +14 -14
- package/dist/{performance-ETZVXXGQ.js → performance-FSXEQJYB.js} +4 -4
- package/dist/{review-pipeline-3ZS3GJSP.js → review-pipeline-VLKL7NV2.js} +1 -1
- package/dist/{runtime-KQTJRK3H.js → runtime-3X2MV6R4.js} +2 -2
- package/dist/{security-LJCLZES6.js → security-B76X5RL7.js} +1 -1
- package/dist/{validate-4IA5RPEX.js → validate-KN6A2GN3.js} +3 -3
- package/dist/{validate-cross-check-VX2BAHQI.js → validate-cross-check-LITTM24O.js} +2 -2
- package/package.json +3 -3
|
@@ -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-LPGVPYOZ.js");
|
|
37
37
|
const parseResult = parseDiff(input.diff);
|
|
38
38
|
if (!parseResult.ok) {
|
|
39
39
|
return resultToMcpResponse(parseResult);
|
|
@@ -53,11 +53,11 @@ async function handleCreateSelfReview(input) {
|
|
|
53
53
|
...input.maxFileCount !== void 0 ? { maxChangedFiles: input.maxFileCount } : {}
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
-
const { loadGraphStore } = await import("./graph-loader-
|
|
56
|
+
const { loadGraphStore } = await import("./graph-loader-GRXDUWXO.js");
|
|
57
57
|
const store = await loadGraphStore(projectPath);
|
|
58
58
|
let graphData;
|
|
59
59
|
if (store) {
|
|
60
|
-
const { GraphFeedbackAdapter } = await import("./dist-
|
|
60
|
+
const { GraphFeedbackAdapter } = await import("./dist-K56VJ4UJ.js");
|
|
61
61
|
const adapter = new GraphFeedbackAdapter(store);
|
|
62
62
|
const changedFiles = parseResult.value.files.map((f) => f.path);
|
|
63
63
|
const impact = adapter.computeImpactData(changedFiles);
|
|
@@ -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-LPGVPYOZ.js");
|
|
123
123
|
const parseResult = parseDiff(input.diff);
|
|
124
124
|
if (!parseResult.ok) {
|
|
125
125
|
return resultToMcpResponse(parseResult);
|
|
@@ -139,10 +139,10 @@ async function handleAnalyzeDiff(input) {
|
|
|
139
139
|
let graphImpactData;
|
|
140
140
|
if (input.path) {
|
|
141
141
|
try {
|
|
142
|
-
const { loadGraphStore } = await import("./graph-loader-
|
|
142
|
+
const { loadGraphStore } = await import("./graph-loader-GRXDUWXO.js");
|
|
143
143
|
const store = await loadGraphStore(sanitizePath(input.path));
|
|
144
144
|
if (store) {
|
|
145
|
-
const { GraphFeedbackAdapter } = await import("./dist-
|
|
145
|
+
const { GraphFeedbackAdapter } = await import("./dist-K56VJ4UJ.js");
|
|
146
146
|
const adapter = new GraphFeedbackAdapter(store);
|
|
147
147
|
const changedFiles = parseResult.value.files.map((f) => f.path);
|
|
148
148
|
const impact = adapter.computeImpactData(changedFiles);
|
|
@@ -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-LPGVPYOZ.js");
|
|
199
199
|
const parseResult = parseDiff(input.diff);
|
|
200
200
|
if (!parseResult.ok) {
|
|
201
201
|
return resultToMcpResponse(parseResult);
|
|
@@ -206,10 +206,10 @@ async function handleRequestPeerReview(input) {
|
|
|
206
206
|
...input.context ? { metadata: { context: input.context } } : {}
|
|
207
207
|
};
|
|
208
208
|
try {
|
|
209
|
-
const { loadGraphStore } = await import("./graph-loader-
|
|
209
|
+
const { loadGraphStore } = await import("./graph-loader-GRXDUWXO.js");
|
|
210
210
|
const store = await loadGraphStore(sanitizePath(input.path));
|
|
211
211
|
if (store) {
|
|
212
|
-
const { GraphFeedbackAdapter } = await import("./dist-
|
|
212
|
+
const { GraphFeedbackAdapter } = await import("./dist-K56VJ4UJ.js");
|
|
213
213
|
const adapter = new GraphFeedbackAdapter(store);
|
|
214
214
|
const changedFiles = parseResult.value.files.map((f) => f.path);
|
|
215
215
|
const impactData = adapter.computeImpactData(changedFiles);
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
GraphStore,
|
|
8
8
|
queryTraceability
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EUCASOD7.js";
|
|
10
10
|
|
|
11
11
|
// ../core/dist/chunk-BQUWXBGR.mjs
|
|
12
12
|
import { z } from "zod";
|
|
@@ -13135,6 +13135,7 @@ var GitHubIssuesSyncAdapter = class {
|
|
|
13135
13135
|
const data = await response.json();
|
|
13136
13136
|
return Ok({
|
|
13137
13137
|
externalId,
|
|
13138
|
+
title: data.title,
|
|
13138
13139
|
status: data.state,
|
|
13139
13140
|
labels: data.labels.map((l) => l.name),
|
|
13140
13141
|
assignee: data.assignee ? `@${data.assignee.login}` : null
|
|
@@ -13169,6 +13170,7 @@ var GitHubIssuesSyncAdapter = class {
|
|
|
13169
13170
|
for (const issue of issues) {
|
|
13170
13171
|
tickets.push({
|
|
13171
13172
|
externalId: buildExternalId(this.owner, this.repo, issue.number),
|
|
13173
|
+
title: issue.title,
|
|
13172
13174
|
status: issue.state,
|
|
13173
13175
|
labels: issue.labels.map((l) => l.name),
|
|
13174
13176
|
assignee: issue.assignee ? `@${issue.assignee.login}` : null
|
|
@@ -13210,43 +13212,61 @@ var GitHubIssuesSyncAdapter = class {
|
|
|
13210
13212
|
function emptySyncResult() {
|
|
13211
13213
|
return { created: [], updated: [], assignmentChanges: [], errors: [] };
|
|
13212
13214
|
}
|
|
13213
|
-
|
|
13214
|
-
const
|
|
13215
|
-
|
|
13216
|
-
const
|
|
13217
|
-
|
|
13218
|
-
|
|
13215
|
+
function buildDedupIndex(tickets, config) {
|
|
13216
|
+
const index = /* @__PURE__ */ new Map();
|
|
13217
|
+
if (!tickets) return index;
|
|
13218
|
+
const configLabels = new Set((config.labels ?? []).map((l) => l.toLowerCase()));
|
|
13219
|
+
for (const ticket of tickets) {
|
|
13220
|
+
const hasConfigLabels = configLabels.size === 0 || ticket.labels.some((l) => configLabels.has(l.toLowerCase()));
|
|
13221
|
+
if (!hasConfigLabels) continue;
|
|
13222
|
+
const key = ticket.title.toLowerCase();
|
|
13223
|
+
const prev = index.get(key);
|
|
13224
|
+
if (!prev || prev.status === "closed" && ticket.status === "open") {
|
|
13225
|
+
index.set(key, ticket);
|
|
13226
|
+
}
|
|
13227
|
+
}
|
|
13228
|
+
return index;
|
|
13229
|
+
}
|
|
13230
|
+
async function resolveExternalId(feature, milestone, adapter, dedupIndex, result) {
|
|
13231
|
+
if (feature.externalId) return true;
|
|
13232
|
+
const existing = dedupIndex.get(feature.name.toLowerCase());
|
|
13233
|
+
if (existing) {
|
|
13234
|
+
feature.externalId = existing.externalId;
|
|
13235
|
+
return true;
|
|
13219
13236
|
}
|
|
13237
|
+
const createResult = await adapter.createTicket(feature, milestone);
|
|
13238
|
+
if (createResult.ok) {
|
|
13239
|
+
feature.externalId = createResult.value.externalId;
|
|
13240
|
+
result.created.push(createResult.value);
|
|
13241
|
+
} else {
|
|
13242
|
+
result.errors.push({ featureOrId: feature.name, error: createResult.error });
|
|
13243
|
+
}
|
|
13244
|
+
return false;
|
|
13245
|
+
}
|
|
13246
|
+
async function syncToExternal(roadmap, adapter, config, prefetchedTickets) {
|
|
13247
|
+
const result = emptySyncResult();
|
|
13248
|
+
const dedupIndex = buildDedupIndex(prefetchedTickets, config);
|
|
13220
13249
|
for (const milestone of roadmap.milestones) {
|
|
13221
13250
|
for (const feature of milestone.features) {
|
|
13222
|
-
|
|
13223
|
-
feature
|
|
13224
|
-
|
|
13225
|
-
|
|
13226
|
-
|
|
13227
|
-
|
|
13228
|
-
|
|
13229
|
-
|
|
13230
|
-
|
|
13231
|
-
|
|
13232
|
-
|
|
13251
|
+
const shouldUpdate = await resolveExternalId(
|
|
13252
|
+
feature,
|
|
13253
|
+
milestone.name,
|
|
13254
|
+
adapter,
|
|
13255
|
+
dedupIndex,
|
|
13256
|
+
result
|
|
13257
|
+
);
|
|
13258
|
+
if (!shouldUpdate) continue;
|
|
13259
|
+
const updateResult = await adapter.updateTicket(feature.externalId, feature, milestone.name);
|
|
13260
|
+
if (updateResult.ok) {
|
|
13261
|
+
result.updated.push(feature.externalId);
|
|
13233
13262
|
} else {
|
|
13234
|
-
|
|
13235
|
-
feature.externalId,
|
|
13236
|
-
feature,
|
|
13237
|
-
milestone.name
|
|
13238
|
-
);
|
|
13239
|
-
if (updateResult.ok) {
|
|
13240
|
-
result.updated.push(feature.externalId);
|
|
13241
|
-
} else {
|
|
13242
|
-
result.errors.push({ featureOrId: feature.externalId, error: updateResult.error });
|
|
13243
|
-
}
|
|
13263
|
+
result.errors.push({ featureOrId: feature.externalId, error: updateResult.error });
|
|
13244
13264
|
}
|
|
13245
13265
|
}
|
|
13246
13266
|
}
|
|
13247
13267
|
return result;
|
|
13248
13268
|
}
|
|
13249
|
-
async function syncFromExternal(roadmap, adapter, config, options) {
|
|
13269
|
+
async function syncFromExternal(roadmap, adapter, config, options, prefetchedTickets) {
|
|
13250
13270
|
const result = emptySyncResult();
|
|
13251
13271
|
const forceSync = options?.forceSync ?? false;
|
|
13252
13272
|
const featureByExternalId = /* @__PURE__ */ new Map();
|
|
@@ -13258,12 +13278,18 @@ async function syncFromExternal(roadmap, adapter, config, options) {
|
|
|
13258
13278
|
}
|
|
13259
13279
|
}
|
|
13260
13280
|
if (featureByExternalId.size === 0) return result;
|
|
13261
|
-
|
|
13262
|
-
if (
|
|
13263
|
-
|
|
13264
|
-
|
|
13281
|
+
let tickets;
|
|
13282
|
+
if (prefetchedTickets) {
|
|
13283
|
+
tickets = prefetchedTickets;
|
|
13284
|
+
} else {
|
|
13285
|
+
const fetchResult = await adapter.fetchAllTickets();
|
|
13286
|
+
if (!fetchResult.ok) {
|
|
13287
|
+
result.errors.push({ featureOrId: "*", error: fetchResult.error });
|
|
13288
|
+
return result;
|
|
13289
|
+
}
|
|
13290
|
+
tickets = fetchResult.value;
|
|
13265
13291
|
}
|
|
13266
|
-
for (const ticketState of
|
|
13292
|
+
for (const ticketState of tickets) {
|
|
13267
13293
|
const feature = featureByExternalId.get(ticketState.externalId);
|
|
13268
13294
|
if (!feature) continue;
|
|
13269
13295
|
if (ticketState.assignee !== feature.assignee) {
|
|
@@ -13303,8 +13329,10 @@ async function fullSync(roadmapPath, adapter, config, options) {
|
|
|
13303
13329
|
};
|
|
13304
13330
|
}
|
|
13305
13331
|
const roadmap = parseResult.value;
|
|
13306
|
-
const
|
|
13307
|
-
const
|
|
13332
|
+
const fetchResult = await adapter.fetchAllTickets();
|
|
13333
|
+
const tickets = fetchResult.ok ? fetchResult.value : void 0;
|
|
13334
|
+
const pushResult = await syncToExternal(roadmap, adapter, config, tickets);
|
|
13335
|
+
const pullResult = await syncFromExternal(roadmap, adapter, config, options, tickets);
|
|
13308
13336
|
fs22.writeFileSync(roadmapPath, serializeRoadmap(roadmap), "utf-8");
|
|
13309
13337
|
return {
|
|
13310
13338
|
created: pushResult.created,
|
|
@@ -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-LPGVPYOZ.js");
|
|
42
42
|
const config = configResult.value;
|
|
43
43
|
const rawLayers = Array.isArray(config.layers) ? config.layers : [];
|
|
44
44
|
const layers = rawLayers.map((l) => ({
|
|
@@ -47,11 +47,11 @@ async function handleCheckDependencies(input) {
|
|
|
47
47
|
allowedDependencies: l.allowedDependencies
|
|
48
48
|
}));
|
|
49
49
|
const parser = new TypeScriptParser();
|
|
50
|
-
const { loadGraphStore } = await import("./graph-loader-
|
|
50
|
+
const { loadGraphStore } = await import("./graph-loader-GRXDUWXO.js");
|
|
51
51
|
const store = await loadGraphStore(projectPath);
|
|
52
52
|
let graphDependencyData;
|
|
53
53
|
if (store) {
|
|
54
|
-
const { GraphConstraintAdapter } = await import("./dist-
|
|
54
|
+
const { GraphConstraintAdapter } = await import("./dist-K56VJ4UJ.js");
|
|
55
55
|
const adapter = new GraphConstraintAdapter(store);
|
|
56
56
|
const graphData = adapter.computeDependencyGraph();
|
|
57
57
|
graphDependencyData = {
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
OutputMode,
|
|
10
10
|
createCheckPhaseGateCommand,
|
|
11
11
|
findFiles
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WKLLNUAT.js";
|
|
13
13
|
import {
|
|
14
14
|
createGenerateAgentDefinitionsCommand,
|
|
15
15
|
generateAgentDefinitions
|
|
@@ -58,14 +58,14 @@ import {
|
|
|
58
58
|
loadOrRebuildIndex,
|
|
59
59
|
persistToolingConfig,
|
|
60
60
|
recommend
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-L57RL7MC.js";
|
|
62
62
|
import {
|
|
63
63
|
VALID_PLATFORMS
|
|
64
64
|
} from "./chunk-CJDVBBPB.js";
|
|
65
65
|
import {
|
|
66
66
|
findConfigFile,
|
|
67
67
|
resolveConfig
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-AQN7GFKU.js";
|
|
69
69
|
import {
|
|
70
70
|
resolveGlobalSkillsDir,
|
|
71
71
|
resolvePersonasDir,
|
|
@@ -143,7 +143,7 @@ import {
|
|
|
143
143
|
validateKnowledgeMap,
|
|
144
144
|
writeConfig,
|
|
145
145
|
writeLockfile
|
|
146
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-QBATHQXU.js";
|
|
147
147
|
import {
|
|
148
148
|
Err,
|
|
149
149
|
Ok
|
|
@@ -229,7 +229,7 @@ function createValidateCommand() {
|
|
|
229
229
|
process.exit(result.error.exitCode);
|
|
230
230
|
}
|
|
231
231
|
if (opts.crossCheck) {
|
|
232
|
-
const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-
|
|
232
|
+
const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-LITTM24O.js");
|
|
233
233
|
const cwd = process.cwd();
|
|
234
234
|
const specsDir = path.join(cwd, "docs", "specs");
|
|
235
235
|
const plansDir = path.join(cwd, "docs", "plans");
|
|
@@ -586,7 +586,7 @@ function registerBenchCommand(perf) {
|
|
|
586
586
|
perf.command("bench [glob]").description("Run benchmarks via vitest bench").action(async (glob, _opts, cmd) => {
|
|
587
587
|
const globalOpts = cmd.optsWithGlobals();
|
|
588
588
|
const cwd = process.cwd();
|
|
589
|
-
const { BenchmarkRunner } = await import("./dist-
|
|
589
|
+
const { BenchmarkRunner } = await import("./dist-LPGVPYOZ.js");
|
|
590
590
|
const runner = new BenchmarkRunner();
|
|
591
591
|
const benchFiles = runner.discover(cwd, glob);
|
|
592
592
|
if (benchFiles.length === 0) {
|
|
@@ -654,7 +654,7 @@ function registerBaselinesCommands(perf) {
|
|
|
654
654
|
baselines.command("update").description("Update baselines from latest benchmark run").action(async (_opts, cmd) => {
|
|
655
655
|
const globalOpts = cmd.optsWithGlobals();
|
|
656
656
|
const cwd = process.cwd();
|
|
657
|
-
const { BenchmarkRunner } = await import("./dist-
|
|
657
|
+
const { BenchmarkRunner } = await import("./dist-LPGVPYOZ.js");
|
|
658
658
|
const runner = new BenchmarkRunner();
|
|
659
659
|
const manager = new BaselineManager(cwd);
|
|
660
660
|
logger.info("Running benchmarks to update baselines...");
|
|
@@ -687,7 +687,7 @@ function registerReportCommand(perf) {
|
|
|
687
687
|
perf.command("report").description("Full performance report with metrics, trends, and hotspots").action(async (_opts, cmd) => {
|
|
688
688
|
const globalOpts = cmd.optsWithGlobals();
|
|
689
689
|
const cwd = process.cwd();
|
|
690
|
-
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-
|
|
690
|
+
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-LPGVPYOZ.js");
|
|
691
691
|
const analyzer = new EntropyAnalyzer2({
|
|
692
692
|
rootDir: path5.resolve(cwd),
|
|
693
693
|
analyze: { complexity: true, coupling: true }
|
|
@@ -4767,7 +4767,7 @@ function createGenerateCommand3() {
|
|
|
4767
4767
|
import { Command as Command46 } from "commander";
|
|
4768
4768
|
import * as path38 from "path";
|
|
4769
4769
|
async function runScan(projectPath) {
|
|
4770
|
-
const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-
|
|
4770
|
+
const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-K56VJ4UJ.js");
|
|
4771
4771
|
const store = new GraphStore();
|
|
4772
4772
|
const start = Date.now();
|
|
4773
4773
|
await new CodeIngestor(store).ingest(projectPath);
|
|
@@ -4848,7 +4848,7 @@ async function runIngest(projectPath, source, opts) {
|
|
|
4848
4848
|
SyncManager,
|
|
4849
4849
|
JiraConnector,
|
|
4850
4850
|
SlackConnector
|
|
4851
|
-
} = await import("./dist-
|
|
4851
|
+
} = await import("./dist-K56VJ4UJ.js");
|
|
4852
4852
|
const graphDir = path39.join(projectPath, ".harness", "graph");
|
|
4853
4853
|
const store = new GraphStore();
|
|
4854
4854
|
await store.load(graphDir);
|
|
@@ -4941,7 +4941,7 @@ function createIngestCommand() {
|
|
|
4941
4941
|
import { Command as Command48 } from "commander";
|
|
4942
4942
|
import * as path40 from "path";
|
|
4943
4943
|
async function runQuery(projectPath, rootNodeId, opts) {
|
|
4944
|
-
const { GraphStore, ContextQL } = await import("./dist-
|
|
4944
|
+
const { GraphStore, ContextQL } = await import("./dist-K56VJ4UJ.js");
|
|
4945
4945
|
const store = new GraphStore();
|
|
4946
4946
|
const graphDir = path40.join(projectPath, ".harness", "graph");
|
|
4947
4947
|
const loaded = await store.load(graphDir);
|
|
@@ -4990,7 +4990,7 @@ import { Command as Command49 } from "commander";
|
|
|
4990
4990
|
// src/commands/graph/status.ts
|
|
4991
4991
|
import * as path41 from "path";
|
|
4992
4992
|
async function runGraphStatus(projectPath) {
|
|
4993
|
-
const { GraphStore } = await import("./dist-
|
|
4993
|
+
const { GraphStore } = await import("./dist-K56VJ4UJ.js");
|
|
4994
4994
|
const graphDir = path41.join(projectPath, ".harness", "graph");
|
|
4995
4995
|
const store = new GraphStore();
|
|
4996
4996
|
const loaded = await store.load(graphDir);
|
|
@@ -5030,7 +5030,7 @@ async function runGraphStatus(projectPath) {
|
|
|
5030
5030
|
// src/commands/graph/export.ts
|
|
5031
5031
|
import * as path42 from "path";
|
|
5032
5032
|
async function runGraphExport(projectPath, format) {
|
|
5033
|
-
const { GraphStore } = await import("./dist-
|
|
5033
|
+
const { GraphStore } = await import("./dist-K56VJ4UJ.js");
|
|
5034
5034
|
const graphDir = path42.join(projectPath, ".harness", "graph");
|
|
5035
5035
|
const store = new GraphStore();
|
|
5036
5036
|
const loaded = await store.load(graphDir);
|
|
@@ -5109,7 +5109,7 @@ function createGraphCommand() {
|
|
|
5109
5109
|
import { Command as Command50 } from "commander";
|
|
5110
5110
|
function createMcpCommand() {
|
|
5111
5111
|
return new Command50("mcp").description("Start the MCP (Model Context Protocol) server on stdio").option("--tools <tools...>", "Only register the specified tools (used by Cursor integration)").action(async (opts) => {
|
|
5112
|
-
const { startServer: startServer2 } = await import("./mcp-
|
|
5112
|
+
const { startServer: startServer2 } = await import("./mcp-7RPKBGIR.js");
|
|
5113
5113
|
await startServer2(opts.tools);
|
|
5114
5114
|
});
|
|
5115
5115
|
}
|
|
@@ -6608,7 +6608,7 @@ function createIntegrationsCommand() {
|
|
|
6608
6608
|
// src/commands/usage.ts
|
|
6609
6609
|
import { Command as Command67 } from "commander";
|
|
6610
6610
|
async function loadAndPriceRecords(cwd, includeClaudeSessions = false) {
|
|
6611
|
-
const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-
|
|
6611
|
+
const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-LPGVPYOZ.js");
|
|
6612
6612
|
const records = readCostRecords(cwd);
|
|
6613
6613
|
if (includeClaudeSessions) {
|
|
6614
6614
|
const ccRecords = parseCCRecords();
|
|
@@ -6652,7 +6652,7 @@ function registerDailyCommand(usage) {
|
|
|
6652
6652
|
}
|
|
6653
6653
|
return;
|
|
6654
6654
|
}
|
|
6655
|
-
const { aggregateByDay } = await import("./dist-
|
|
6655
|
+
const { aggregateByDay } = await import("./dist-LPGVPYOZ.js");
|
|
6656
6656
|
const dailyData = aggregateByDay(records);
|
|
6657
6657
|
const limited = dailyData.slice(0, days);
|
|
6658
6658
|
if (globalOpts.json) {
|
|
@@ -6688,7 +6688,7 @@ function registerSessionsCommand(usage) {
|
|
|
6688
6688
|
}
|
|
6689
6689
|
return;
|
|
6690
6690
|
}
|
|
6691
|
-
const { aggregateBySession } = await import("./dist-
|
|
6691
|
+
const { aggregateBySession } = await import("./dist-LPGVPYOZ.js");
|
|
6692
6692
|
const sessionData = aggregateBySession(records);
|
|
6693
6693
|
const limited = sessionData.slice(0, limit);
|
|
6694
6694
|
if (globalOpts.json) {
|
|
@@ -6717,7 +6717,7 @@ function registerSessionCommand(usage) {
|
|
|
6717
6717
|
const globalOpts = cmd.optsWithGlobals();
|
|
6718
6718
|
const cwd = process.cwd();
|
|
6719
6719
|
const records = await loadAndPriceRecords(cwd, globalOpts.includeClaudeSessions);
|
|
6720
|
-
const { aggregateBySession } = await import("./dist-
|
|
6720
|
+
const { aggregateBySession } = await import("./dist-LPGVPYOZ.js");
|
|
6721
6721
|
const sessionData = aggregateBySession(records);
|
|
6722
6722
|
const match = sessionData.find((s) => s.sessionId === id);
|
|
6723
6723
|
if (!match) {
|
|
@@ -6783,7 +6783,7 @@ function registerLatestCommand(usage) {
|
|
|
6783
6783
|
}
|
|
6784
6784
|
return;
|
|
6785
6785
|
}
|
|
6786
|
-
const { aggregateBySession } = await import("./dist-
|
|
6786
|
+
const { aggregateBySession } = await import("./dist-LPGVPYOZ.js");
|
|
6787
6787
|
const sessionData = aggregateBySession(records);
|
|
6788
6788
|
const latest = sessionData[0];
|
|
6789
6789
|
if (!latest) {
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
|
|
11
11
|
// src/mcp/tools/entropy.ts
|
|
12
12
|
async function loadEntropyGraphOptions(projectPath) {
|
|
13
|
-
const { loadGraphStore } = await import("./graph-loader-
|
|
13
|
+
const { loadGraphStore } = await import("./graph-loader-GRXDUWXO.js");
|
|
14
14
|
const store = await loadGraphStore(projectPath);
|
|
15
15
|
if (!store) return void 0;
|
|
16
|
-
const { GraphEntropyAdapter } = await import("./dist-
|
|
16
|
+
const { GraphEntropyAdapter } = await import("./dist-K56VJ4UJ.js");
|
|
17
17
|
const adapter = new GraphEntropyAdapter(store);
|
|
18
18
|
const driftData = adapter.computeDriftData();
|
|
19
19
|
const deadCodeData = adapter.computeDeadCodeData();
|
|
@@ -123,7 +123,7 @@ function buildSummaryResponse(report) {
|
|
|
123
123
|
}
|
|
124
124
|
async function handleDetectEntropy(input) {
|
|
125
125
|
try {
|
|
126
|
-
const { EntropyAnalyzer } = await import("./dist-
|
|
126
|
+
const { EntropyAnalyzer } = await import("./dist-LPGVPYOZ.js");
|
|
127
127
|
const typeFilter = input.type ?? "all";
|
|
128
128
|
const analyzer = new EntropyAnalyzer({
|
|
129
129
|
rootDir: sanitizePath(input.path),
|
|
@@ -142,7 +142,7 @@ async function handleDetectEntropy(input) {
|
|
|
142
142
|
return resultToMcpResponse(result);
|
|
143
143
|
}
|
|
144
144
|
if (!result.ok) return resultToMcpResponse(result);
|
|
145
|
-
const { createFixes, applyFixes, generateSuggestions } = await import("./dist-
|
|
145
|
+
const { createFixes, applyFixes, generateSuggestions } = await import("./dist-LPGVPYOZ.js");
|
|
146
146
|
const report = result.value;
|
|
147
147
|
const deadCode = report.deadCode;
|
|
148
148
|
const fixTypesConfig = input.fixTypes ? { fixTypes: input.fixTypes } : void 0;
|
|
@@ -317,7 +317,7 @@ import {
|
|
|
317
317
|
writeSessionSummary,
|
|
318
318
|
writeTaint,
|
|
319
319
|
xssRules
|
|
320
|
-
} from "./chunk-
|
|
320
|
+
} from "./chunk-QBATHQXU.js";
|
|
321
321
|
import {
|
|
322
322
|
Err,
|
|
323
323
|
Ok,
|
|
@@ -326,7 +326,7 @@ import {
|
|
|
326
326
|
isErr,
|
|
327
327
|
isOk
|
|
328
328
|
} from "./chunk-ERS5EVUZ.js";
|
|
329
|
-
import "./chunk-
|
|
329
|
+
import "./chunk-EUCASOD7.js";
|
|
330
330
|
export {
|
|
331
331
|
AGENT_DESCRIPTORS,
|
|
332
332
|
ARCHITECTURE_DESCRIPTOR,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
checkDocsDefinition,
|
|
3
3
|
handleCheckDocs
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-HRUCT5YX.js";
|
|
5
|
+
import "./chunk-AQN7GFKU.js";
|
|
6
6
|
import "./chunk-IDZNPTYD.js";
|
|
7
7
|
import "./chunk-W6Y7ZW3Y.js";
|
|
8
8
|
import "./chunk-3WGJMBKH.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-QBATHQXU.js";
|
|
10
10
|
import "./chunk-ERS5EVUZ.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-EUCASOD7.js";
|
|
12
12
|
export {
|
|
13
13
|
checkDocsDefinition,
|
|
14
14
|
handleCheckDocs
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
detectEntropyDefinition,
|
|
3
3
|
handleDetectEntropy
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZLTFDTK7.js";
|
|
5
5
|
import "./chunk-IDZNPTYD.js";
|
|
6
6
|
import "./chunk-W6Y7ZW3Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-QBATHQXU.js";
|
|
8
8
|
import "./chunk-ERS5EVUZ.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-EUCASOD7.js";
|
|
10
10
|
export {
|
|
11
11
|
detectEntropyDefinition,
|
|
12
12
|
handleDetectEntropy
|
package/dist/{generate-agent-definitions-KU6X2UQN.js → generate-agent-definitions-RBI7Z4RY.js}
RENAMED
|
@@ -7,9 +7,9 @@ import "./chunk-KET4QQZB.js";
|
|
|
7
7
|
import "./chunk-CJDVBBPB.js";
|
|
8
8
|
import "./chunk-N5G5QMS3.js";
|
|
9
9
|
import "./chunk-3WGJMBKH.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-QBATHQXU.js";
|
|
11
11
|
import "./chunk-ERS5EVUZ.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-EUCASOD7.js";
|
|
13
13
|
export {
|
|
14
14
|
createGenerateAgentDefinitionsCommand,
|
|
15
15
|
generateAgentDefinitions
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
runSnapshotCapture,
|
|
14
14
|
runUninstall,
|
|
15
15
|
runUninstallConstraints
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-UJHNGRS6.js";
|
|
17
17
|
import {
|
|
18
18
|
generateAgentsMd
|
|
19
19
|
} from "./chunk-OD3S2NHN.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
OutputFormatter,
|
|
25
25
|
OutputMode,
|
|
26
26
|
runCheckPhaseGate
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-WKLLNUAT.js";
|
|
28
28
|
import {
|
|
29
29
|
AGENT_DESCRIPTIONS,
|
|
30
30
|
DEFAULT_TOOLS,
|
|
@@ -67,24 +67,24 @@ import {
|
|
|
67
67
|
generateSlashCommands,
|
|
68
68
|
getToolDefinitions,
|
|
69
69
|
startServer
|
|
70
|
-
} from "./chunk-
|
|
71
|
-
import "./chunk-
|
|
72
|
-
import "./chunk-
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
75
|
-
import "./chunk-
|
|
76
|
-
import "./chunk-
|
|
70
|
+
} from "./chunk-L57RL7MC.js";
|
|
71
|
+
import "./chunk-ZLTFDTK7.js";
|
|
72
|
+
import "./chunk-FNVAW5NG.js";
|
|
73
|
+
import "./chunk-LAKMOIU6.js";
|
|
74
|
+
import "./chunk-KIR5PQX5.js";
|
|
75
|
+
import "./chunk-7DMF3VT5.js";
|
|
76
|
+
import "./chunk-CZEPCYVX.js";
|
|
77
77
|
import "./chunk-CJDVBBPB.js";
|
|
78
|
-
import "./chunk-
|
|
79
|
-
import "./chunk-
|
|
80
|
-
import "./chunk-
|
|
78
|
+
import "./chunk-7XZSHTYZ.js";
|
|
79
|
+
import "./chunk-7V5Y2L67.js";
|
|
80
|
+
import "./chunk-RQ3AKUJB.js";
|
|
81
81
|
import "./chunk-H7Y5CKTM.js";
|
|
82
|
-
import "./chunk-
|
|
82
|
+
import "./chunk-HRUCT5YX.js";
|
|
83
83
|
import {
|
|
84
84
|
findConfigFile,
|
|
85
85
|
loadConfig,
|
|
86
86
|
resolveConfig
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-AQN7GFKU.js";
|
|
88
88
|
import "./chunk-IDZNPTYD.js";
|
|
89
89
|
import "./chunk-W6Y7ZW3Y.js";
|
|
90
90
|
import "./chunk-N5G5QMS3.js";
|
|
@@ -98,9 +98,9 @@ import "./chunk-BM3PWGXQ.js";
|
|
|
98
98
|
import {
|
|
99
99
|
runCrossCheck
|
|
100
100
|
} from "./chunk-GZKSBLQL.js";
|
|
101
|
-
import "./chunk-
|
|
101
|
+
import "./chunk-QBATHQXU.js";
|
|
102
102
|
import "./chunk-ERS5EVUZ.js";
|
|
103
|
-
import "./chunk-
|
|
103
|
+
import "./chunk-EUCASOD7.js";
|
|
104
104
|
export {
|
|
105
105
|
AGENT_DESCRIPTIONS,
|
|
106
106
|
ALLOWED_PERSONA_COMMANDS,
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
listPersonas,
|
|
3
3
|
loadPersona
|
|
4
4
|
} from "./chunk-YQ6KC6TE.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-QBATHQXU.js";
|
|
6
6
|
import "./chunk-ERS5EVUZ.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-EUCASOD7.js";
|
|
8
8
|
export {
|
|
9
9
|
listPersonas,
|
|
10
10
|
loadPersona
|