@harness-engineering/cli 1.11.0 → 1.13.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 +57 -9
- package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +19 -2
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +39 -12
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +28 -11
- package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +34 -0
- package/dist/agents/skills/claude-code/harness-verification/SKILL.md +42 -0
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +57 -9
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +19 -2
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +39 -12
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +28 -11
- package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +34 -0
- package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +42 -0
- package/dist/{agents-md-ZFV6RR5J.js → agents-md-P2RHSUV7.js} +1 -1
- package/dist/{architecture-EXNUMH5R.js → architecture-ESOOE26S.js} +2 -2
- package/dist/bin/harness-mcp.js +10 -10
- package/dist/bin/harness.js +12 -12
- package/dist/{check-phase-gate-VZFOY2PO.js → check-phase-gate-S2MZKLFQ.js} +2 -2
- package/dist/{chunk-GSIVNYVJ.js → chunk-2VU4MFM3.js} +4 -4
- package/dist/{chunk-2NCIKJES.js → chunk-3KOLLWWE.js} +1 -1
- package/dist/{chunk-X3MN5UQJ.js → chunk-5VY23YK3.js} +1 -1
- package/dist/{chunk-I6JZYEGT.js → chunk-7KQSUZVG.js} +96 -50
- package/dist/{chunk-PA2XHK75.js → chunk-7PZWR4LI.js} +3 -3
- package/dist/{chunk-2YSQOUHO.js → chunk-KELT6K6M.js} +662 -283
- package/dist/{chunk-WUJTCNOU.js → chunk-LD3DKUK5.js} +1 -1
- package/dist/{chunk-Z75JC6I2.js → chunk-MACVXDZK.js} +2 -2
- package/dist/{chunk-NC6PXVWT.js → chunk-MI5XJQDY.js} +3 -3
- package/dist/{chunk-WJZDO6OY.js → chunk-PSNN4LWX.js} +2 -2
- package/dist/{chunk-ZWC3MN5E.js → chunk-RZSUJBZZ.js} +765 -203
- package/dist/{chunk-TI4TGEX6.js → chunk-WPPDRIJL.js} +1 -1
- package/dist/{ci-workflow-K5RCRNYR.js → ci-workflow-4NYBUG6R.js} +1 -1
- package/dist/{dist-JVZ2MKBC.js → dist-WF4C7A4A.js} +27 -1
- package/dist/{docs-PWCUVYWU.js → docs-BPYCN2DR.js} +2 -2
- package/dist/{engine-6XUP6GAK.js → engine-LXLIWQQ3.js} +1 -1
- package/dist/{entropy-4I6JEYAC.js → entropy-4VDVV5CR.js} +2 -2
- package/dist/{feedback-TNIW534S.js → feedback-63QB5RCA.js} +1 -1
- package/dist/{generate-agent-definitions-MWKEA5NU.js → generate-agent-definitions-QABOJG56.js} +1 -1
- package/dist/index.d.ts +80 -43
- package/dist/index.js +17 -13
- package/dist/{loader-4FIPIFII.js → loader-Z2IT7QX3.js} +1 -1
- package/dist/{mcp-MOKLYNZL.js → mcp-KQHEL5IF.js} +10 -10
- package/dist/{performance-BTOJCPXU.js → performance-26BH47O4.js} +2 -2
- package/dist/{review-pipeline-3YTW3463.js → review-pipeline-GHR3WFBI.js} +1 -1
- package/dist/{runtime-GO7K2PJE.js → runtime-PDWD7UIK.js} +1 -1
- package/dist/{security-4P2GGFF6.js → security-UQFUZXEN.js} +1 -1
- package/dist/{validate-JN44D2Q7.js → validate-N7QJOKFZ.js} +2 -2
- package/dist/{validate-cross-check-DB7RIFFF.js → validate-cross-check-EDQ5QGTM.js} +1 -1
- package/package.json +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
detectEntropyDefinition,
|
|
3
3
|
handleDetectEntropy
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MACVXDZK.js";
|
|
5
5
|
import {
|
|
6
6
|
checkPerformanceDefinition,
|
|
7
7
|
getCriticalPathsDefinition,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
handleGetPerfBaselines,
|
|
12
12
|
handleUpdatePerfBaselines,
|
|
13
13
|
updatePerfBaselinesDefinition
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2VU4MFM3.js";
|
|
15
15
|
import {
|
|
16
16
|
analyzeDiffDefinition,
|
|
17
17
|
createSelfReviewDefinition,
|
|
@@ -19,15 +19,15 @@ import {
|
|
|
19
19
|
handleCreateSelfReview,
|
|
20
20
|
handleRequestPeerReview,
|
|
21
21
|
requestPeerReviewDefinition
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-7PZWR4LI.js";
|
|
23
23
|
import {
|
|
24
24
|
handleRunSecurityScan,
|
|
25
25
|
runSecurityScanDefinition
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-5VY23YK3.js";
|
|
27
27
|
import {
|
|
28
28
|
handleRunCodeReview,
|
|
29
29
|
runCodeReviewDefinition
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-LD3DKUK5.js";
|
|
31
31
|
import {
|
|
32
32
|
GENERATED_HEADER_CLAUDE,
|
|
33
33
|
GENERATED_HEADER_GEMINI,
|
|
@@ -38,21 +38,21 @@ import {
|
|
|
38
38
|
import {
|
|
39
39
|
handleValidateProject,
|
|
40
40
|
validateToolDefinition
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-PSNN4LWX.js";
|
|
42
42
|
import {
|
|
43
43
|
loadGraphStore
|
|
44
44
|
} from "./chunk-2YPZKGAG.js";
|
|
45
45
|
import {
|
|
46
46
|
checkDependenciesDefinition,
|
|
47
47
|
handleCheckDependencies
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-WPPDRIJL.js";
|
|
49
49
|
import {
|
|
50
50
|
resolveProjectConfig
|
|
51
51
|
} from "./chunk-K6XAPGML.js";
|
|
52
52
|
import {
|
|
53
53
|
checkDocsDefinition,
|
|
54
54
|
handleCheckDocs
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-MI5XJQDY.js";
|
|
56
56
|
import {
|
|
57
57
|
resultToMcpResponse
|
|
58
58
|
} from "./chunk-IDZNPTYD.js";
|
|
@@ -180,7 +180,7 @@ var initProjectDefinition = {
|
|
|
180
180
|
};
|
|
181
181
|
async function handleInitProject(input) {
|
|
182
182
|
try {
|
|
183
|
-
const { TemplateEngine } = await import("./engine-
|
|
183
|
+
const { TemplateEngine } = await import("./engine-LXLIWQQ3.js");
|
|
184
184
|
const templatesDir = resolveTemplatesDir();
|
|
185
185
|
const engine = new TemplateEngine(templatesDir);
|
|
186
186
|
const level = input.level ?? "basic";
|
|
@@ -218,7 +218,7 @@ var listPersonasDefinition = {
|
|
|
218
218
|
inputSchema: { type: "object", properties: {} }
|
|
219
219
|
};
|
|
220
220
|
async function handleListPersonas() {
|
|
221
|
-
const { listPersonas } = await import("./loader-
|
|
221
|
+
const { listPersonas } = await import("./loader-Z2IT7QX3.js");
|
|
222
222
|
const result = listPersonas(resolvePersonasDir());
|
|
223
223
|
return resultToMcpResponse(result);
|
|
224
224
|
}
|
|
@@ -242,10 +242,10 @@ async function handleGeneratePersonaArtifacts(input) {
|
|
|
242
242
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
|
|
243
243
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
|
|
244
244
|
}
|
|
245
|
-
const { loadPersona } = await import("./loader-
|
|
246
|
-
const { generateRuntime } = await import("./runtime-
|
|
247
|
-
const { generateAgentsMd } = await import("./agents-md-
|
|
248
|
-
const { generateCIWorkflow } = await import("./ci-workflow-
|
|
245
|
+
const { loadPersona } = await import("./loader-Z2IT7QX3.js");
|
|
246
|
+
const { generateRuntime } = await import("./runtime-PDWD7UIK.js");
|
|
247
|
+
const { generateAgentsMd } = await import("./agents-md-P2RHSUV7.js");
|
|
248
|
+
const { generateCIWorkflow } = await import("./ci-workflow-4NYBUG6R.js");
|
|
249
249
|
const personasDir = resolvePersonasDir();
|
|
250
250
|
const filePath = path2.join(personasDir, `${input.name}.yaml`);
|
|
251
251
|
if (!filePath.startsWith(personasDir)) {
|
|
@@ -300,7 +300,7 @@ async function handleRunPersona(input) {
|
|
|
300
300
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
|
|
301
301
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
|
|
302
302
|
}
|
|
303
|
-
const { loadPersona } = await import("./loader-
|
|
303
|
+
const { loadPersona } = await import("./loader-Z2IT7QX3.js");
|
|
304
304
|
const { runPersona } = await import("./runner-VMYLHWOC.js");
|
|
305
305
|
const { executeSkill } = await import("./skill-executor-RG45LUO5.js");
|
|
306
306
|
const personasDir = resolvePersonasDir();
|
|
@@ -690,6 +690,10 @@ var manageStateDefinition = {
|
|
|
690
690
|
stream: {
|
|
691
691
|
type: "string",
|
|
692
692
|
description: "Stream name to target (auto-resolves from branch if omitted)"
|
|
693
|
+
},
|
|
694
|
+
session: {
|
|
695
|
+
type: "string",
|
|
696
|
+
description: "Session slug for session-scoped state (takes priority over stream when provided)"
|
|
693
697
|
}
|
|
694
698
|
},
|
|
695
699
|
required: ["path", "action"]
|
|
@@ -705,11 +709,11 @@ async function handleManageState(input) {
|
|
|
705
709
|
archiveFailures,
|
|
706
710
|
runMechanicalGate,
|
|
707
711
|
DEFAULT_STATE
|
|
708
|
-
} = await import("./dist-
|
|
712
|
+
} = await import("./dist-WF4C7A4A.js");
|
|
709
713
|
const projectPath = sanitizePath(input.path);
|
|
710
714
|
switch (input.action) {
|
|
711
715
|
case "show": {
|
|
712
|
-
const result = await loadState(projectPath, input.stream);
|
|
716
|
+
const result = await loadState(projectPath, input.stream, input.session);
|
|
713
717
|
return resultToMcpResponse(result);
|
|
714
718
|
}
|
|
715
719
|
case "learn": {
|
|
@@ -726,7 +730,8 @@ async function handleManageState(input) {
|
|
|
726
730
|
input.learning,
|
|
727
731
|
input.skillName,
|
|
728
732
|
input.outcome,
|
|
729
|
-
input.stream
|
|
733
|
+
input.stream,
|
|
734
|
+
input.session
|
|
730
735
|
);
|
|
731
736
|
if (!result.ok) return resultToMcpResponse(result);
|
|
732
737
|
return resultToMcpResponse(Ok({ recorded: true }));
|
|
@@ -756,18 +761,24 @@ async function handleManageState(input) {
|
|
|
756
761
|
input.description,
|
|
757
762
|
input.skillName ?? "unknown",
|
|
758
763
|
input.failureType,
|
|
759
|
-
input.stream
|
|
764
|
+
input.stream,
|
|
765
|
+
input.session
|
|
760
766
|
);
|
|
761
767
|
if (!result.ok) return resultToMcpResponse(result);
|
|
762
768
|
return resultToMcpResponse(Ok({ recorded: true }));
|
|
763
769
|
}
|
|
764
770
|
case "archive": {
|
|
765
|
-
const result = await archiveFailures(projectPath, input.stream);
|
|
771
|
+
const result = await archiveFailures(projectPath, input.stream, input.session);
|
|
766
772
|
if (!result.ok) return resultToMcpResponse(result);
|
|
767
773
|
return resultToMcpResponse(Ok({ archived: true }));
|
|
768
774
|
}
|
|
769
775
|
case "reset": {
|
|
770
|
-
const result = await saveState(
|
|
776
|
+
const result = await saveState(
|
|
777
|
+
projectPath,
|
|
778
|
+
{ ...DEFAULT_STATE },
|
|
779
|
+
input.stream,
|
|
780
|
+
input.session
|
|
781
|
+
);
|
|
771
782
|
if (!result.ok) return resultToMcpResponse(result);
|
|
772
783
|
return resultToMcpResponse(Ok({ reset: true }));
|
|
773
784
|
}
|
|
@@ -784,17 +795,18 @@ async function handleManageState(input) {
|
|
|
784
795
|
isError: true
|
|
785
796
|
};
|
|
786
797
|
}
|
|
787
|
-
const { saveHandoff } = await import("./dist-
|
|
798
|
+
const { saveHandoff } = await import("./dist-WF4C7A4A.js");
|
|
788
799
|
const result = await saveHandoff(
|
|
789
800
|
projectPath,
|
|
790
801
|
input.handoff,
|
|
791
|
-
input.stream
|
|
802
|
+
input.stream,
|
|
803
|
+
input.session
|
|
792
804
|
);
|
|
793
805
|
return resultToMcpResponse(result.ok ? Ok({ saved: true }) : result);
|
|
794
806
|
}
|
|
795
807
|
case "load-handoff": {
|
|
796
|
-
const { loadHandoff } = await import("./dist-
|
|
797
|
-
const result = await loadHandoff(projectPath, input.stream);
|
|
808
|
+
const { loadHandoff } = await import("./dist-WF4C7A4A.js");
|
|
809
|
+
const result = await loadHandoff(projectPath, input.stream, input.session);
|
|
798
810
|
return resultToMcpResponse(result);
|
|
799
811
|
}
|
|
800
812
|
default: {
|
|
@@ -829,7 +841,7 @@ var listStreamsDefinition = {
|
|
|
829
841
|
};
|
|
830
842
|
async function handleListStreams(input) {
|
|
831
843
|
try {
|
|
832
|
-
const { listStreams, loadStreamIndex } = await import("./dist-
|
|
844
|
+
const { listStreams, loadStreamIndex } = await import("./dist-WF4C7A4A.js");
|
|
833
845
|
const projectPath = sanitizePath(input.path);
|
|
834
846
|
const indexResult = await loadStreamIndex(projectPath);
|
|
835
847
|
const streamsResult = await listStreams(projectPath);
|
|
@@ -867,7 +879,7 @@ var checkPhaseGateDefinition = {
|
|
|
867
879
|
};
|
|
868
880
|
async function handleCheckPhaseGate(input) {
|
|
869
881
|
try {
|
|
870
|
-
const { runCheckPhaseGate } = await import("./check-phase-gate-
|
|
882
|
+
const { runCheckPhaseGate } = await import("./check-phase-gate-S2MZKLFQ.js");
|
|
871
883
|
const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
|
|
872
884
|
if (result.ok) {
|
|
873
885
|
return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
|
|
@@ -923,7 +935,7 @@ async function handleValidateCrossCheck(input) {
|
|
|
923
935
|
};
|
|
924
936
|
}
|
|
925
937
|
try {
|
|
926
|
-
const { runCrossCheck } = await import("./validate-cross-check-
|
|
938
|
+
const { runCrossCheck } = await import("./validate-cross-check-EDQ5QGTM.js");
|
|
927
939
|
const specsDir = path8.resolve(projectPath, input.specsDir ?? "docs/specs");
|
|
928
940
|
if (!specsDir.startsWith(projectPath)) {
|
|
929
941
|
return {
|
|
@@ -1418,7 +1430,7 @@ async function handleGenerateSlashCommands(input) {
|
|
|
1418
1430
|
// src/mcp/resources/state.ts
|
|
1419
1431
|
async function getStateResource(projectRoot) {
|
|
1420
1432
|
try {
|
|
1421
|
-
const { loadState, migrateToStreams } = await import("./dist-
|
|
1433
|
+
const { loadState, migrateToStreams } = await import("./dist-WF4C7A4A.js");
|
|
1422
1434
|
await migrateToStreams(projectRoot);
|
|
1423
1435
|
const result = await loadState(projectRoot);
|
|
1424
1436
|
if (result.ok) {
|
|
@@ -2221,7 +2233,7 @@ var generateAgentDefinitionsDefinition = {
|
|
|
2221
2233
|
}
|
|
2222
2234
|
};
|
|
2223
2235
|
async function handleGenerateAgentDefinitions(input) {
|
|
2224
|
-
const { generateAgentDefinitions } = await import("./generate-agent-definitions-
|
|
2236
|
+
const { generateAgentDefinitions } = await import("./generate-agent-definitions-QABOJG56.js");
|
|
2225
2237
|
const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
|
|
2226
2238
|
const results = generateAgentDefinitions({
|
|
2227
2239
|
platforms: [...platforms],
|
|
@@ -2306,7 +2318,7 @@ function writeRoadmapFile(projectRoot, content) {
|
|
|
2306
2318
|
}
|
|
2307
2319
|
async function handleManageRoadmap(input) {
|
|
2308
2320
|
try {
|
|
2309
|
-
const { parseRoadmap, serializeRoadmap, syncRoadmap } = await import("./dist-
|
|
2321
|
+
const { parseRoadmap, serializeRoadmap, syncRoadmap } = await import("./dist-WF4C7A4A.js");
|
|
2310
2322
|
const { Ok: Ok2 } = await import("./dist-D4RYGUZE.js");
|
|
2311
2323
|
const projectPath = sanitizePath(input.path);
|
|
2312
2324
|
switch (input.action) {
|
|
@@ -2699,6 +2711,7 @@ var EmitInteractionInputSchema = z.object({
|
|
|
2699
2711
|
path: z.string().min(1),
|
|
2700
2712
|
type: InteractionTypeSchema,
|
|
2701
2713
|
stream: z.string().optional(),
|
|
2714
|
+
session: z.string().optional(),
|
|
2702
2715
|
// Uses base schema here; refined validation (recommendation required with options)
|
|
2703
2716
|
// is applied in the handler's question branch via InteractionQuestionWithOptionsSchema.
|
|
2704
2717
|
// Refined schemas with .refine() cannot be nested inside z.object().optional() reliably.
|
|
@@ -2823,6 +2836,10 @@ var emitInteractionDefinition = {
|
|
|
2823
2836
|
type: "string",
|
|
2824
2837
|
description: "State stream for recording (auto-resolves from branch if omitted)"
|
|
2825
2838
|
},
|
|
2839
|
+
session: {
|
|
2840
|
+
type: "string",
|
|
2841
|
+
description: "Session slug for session-scoped handoff (takes priority over stream when provided)"
|
|
2842
|
+
},
|
|
2826
2843
|
question: {
|
|
2827
2844
|
type: "object",
|
|
2828
2845
|
description: "Question payload (required when type is question)",
|
|
@@ -3072,7 +3089,7 @@ async function handleEmitInteraction(input) {
|
|
|
3072
3089
|
const transition = transitionResult.data;
|
|
3073
3090
|
const prompt = renderTransition(transition);
|
|
3074
3091
|
try {
|
|
3075
|
-
const { saveHandoff } = await import("./dist-
|
|
3092
|
+
const { saveHandoff } = await import("./dist-WF4C7A4A.js");
|
|
3076
3093
|
await saveHandoff(
|
|
3077
3094
|
projectPath,
|
|
3078
3095
|
{
|
|
@@ -3087,7 +3104,8 @@ async function handleEmitInteraction(input) {
|
|
|
3087
3104
|
blockers: [],
|
|
3088
3105
|
contextKeywords: []
|
|
3089
3106
|
},
|
|
3090
|
-
validInput.stream
|
|
3107
|
+
validInput.stream,
|
|
3108
|
+
validInput.session
|
|
3091
3109
|
);
|
|
3092
3110
|
} catch {
|
|
3093
3111
|
}
|
|
@@ -3173,7 +3191,7 @@ async function handleEmitInteraction(input) {
|
|
|
3173
3191
|
}
|
|
3174
3192
|
async function recordInteraction(projectPath, id, type, decision, stream) {
|
|
3175
3193
|
try {
|
|
3176
|
-
const { loadState, saveState } = await import("./dist-
|
|
3194
|
+
const { loadState, saveState } = await import("./dist-WF4C7A4A.js");
|
|
3177
3195
|
const stateResult = await loadState(projectPath, stream);
|
|
3178
3196
|
if (stateResult.ok) {
|
|
3179
3197
|
const state = stateResult.value;
|
|
@@ -3220,6 +3238,14 @@ var gatherContextDefinition = {
|
|
|
3220
3238
|
type: "string",
|
|
3221
3239
|
enum: ["summary", "detailed"],
|
|
3222
3240
|
description: "Response density. Default: summary"
|
|
3241
|
+
},
|
|
3242
|
+
learningsBudget: {
|
|
3243
|
+
type: "number",
|
|
3244
|
+
description: "Token budget for learnings slice (default 1000). Separate from graph tokenBudget."
|
|
3245
|
+
},
|
|
3246
|
+
session: {
|
|
3247
|
+
type: "string",
|
|
3248
|
+
description: "Session slug for session-scoped state. When provided, state/learnings/handoff/failures are read from .harness/sessions/<session>/ instead of .harness/. Omit for global fallback."
|
|
3223
3249
|
}
|
|
3224
3250
|
},
|
|
3225
3251
|
required: ["path", "intent"]
|
|
@@ -3245,11 +3271,20 @@ async function handleGatherContext(input) {
|
|
|
3245
3271
|
input.include ?? ["state", "learnings", "handoff", "graph", "validation"]
|
|
3246
3272
|
);
|
|
3247
3273
|
const errors = [];
|
|
3248
|
-
const statePromise = includeSet.has("state") ? import("./dist-
|
|
3249
|
-
|
|
3250
|
-
|
|
3274
|
+
const statePromise = includeSet.has("state") ? import("./dist-WF4C7A4A.js").then(
|
|
3275
|
+
(core) => core.loadState(projectPath, void 0, input.session)
|
|
3276
|
+
) : Promise.resolve(null);
|
|
3277
|
+
const learningsPromise = includeSet.has("learnings") ? import("./dist-WF4C7A4A.js").then(
|
|
3278
|
+
(core) => core.loadBudgetedLearnings(projectPath, {
|
|
3279
|
+
intent: input.intent,
|
|
3280
|
+
tokenBudget: input.learningsBudget ?? 1e3,
|
|
3281
|
+
...input.skill !== void 0 && { skill: input.skill },
|
|
3282
|
+
...input.session !== void 0 && { session: input.session }
|
|
3283
|
+
})
|
|
3284
|
+
) : Promise.resolve(null);
|
|
3285
|
+
const handoffPromise = includeSet.has("handoff") ? import("./dist-WF4C7A4A.js").then(
|
|
3286
|
+
(core) => core.loadHandoff(projectPath, void 0, input.session)
|
|
3251
3287
|
) : Promise.resolve(null);
|
|
3252
|
-
const handoffPromise = includeSet.has("handoff") ? import("./dist-JVZ2MKBC.js").then((core) => core.loadHandoff(projectPath)) : Promise.resolve(null);
|
|
3253
3288
|
const graphPromise = includeSet.has("graph") ? (async () => {
|
|
3254
3289
|
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-KO4GJ5N2.js");
|
|
3255
3290
|
const store = await loadGraphStore2(projectPath);
|
|
@@ -3292,7 +3327,7 @@ async function handleGatherContext(input) {
|
|
|
3292
3327
|
};
|
|
3293
3328
|
})() : Promise.resolve(null);
|
|
3294
3329
|
const validationPromise = includeSet.has("validation") ? (async () => {
|
|
3295
|
-
const { handleValidateProject: handleValidateProject2 } = await import("./validate-
|
|
3330
|
+
const { handleValidateProject: handleValidateProject2 } = await import("./validate-N7QJOKFZ.js");
|
|
3296
3331
|
const result = await handleValidateProject2({ path: projectPath });
|
|
3297
3332
|
const first = result.content[0];
|
|
3298
3333
|
return first ? JSON.parse(first.text) : null;
|
|
@@ -3364,6 +3399,17 @@ async function handleGatherContext(input) {
|
|
|
3364
3399
|
errors
|
|
3365
3400
|
}
|
|
3366
3401
|
};
|
|
3402
|
+
if (input.session) {
|
|
3403
|
+
try {
|
|
3404
|
+
const core = await import("./dist-WF4C7A4A.js");
|
|
3405
|
+
core.updateSessionIndex(
|
|
3406
|
+
projectPath,
|
|
3407
|
+
input.session,
|
|
3408
|
+
`${input.skill ?? "unknown"} \u2014 ${input.intent}`
|
|
3409
|
+
);
|
|
3410
|
+
} catch {
|
|
3411
|
+
}
|
|
3412
|
+
}
|
|
3367
3413
|
const outputText = JSON.stringify(output);
|
|
3368
3414
|
const tokenEstimate = Math.ceil(outputText.length / 4);
|
|
3369
3415
|
output.meta.tokenEstimate = tokenEstimate;
|
|
@@ -3425,7 +3471,7 @@ async function handleAssessProject(input) {
|
|
|
3425
3471
|
let validateResult = null;
|
|
3426
3472
|
if (checksToRun.has("validate")) {
|
|
3427
3473
|
try {
|
|
3428
|
-
const { handleValidateProject: handleValidateProject2 } = await import("./validate-
|
|
3474
|
+
const { handleValidateProject: handleValidateProject2 } = await import("./validate-N7QJOKFZ.js");
|
|
3429
3475
|
const result = await handleValidateProject2({ path: projectPath });
|
|
3430
3476
|
const first = result.content[0];
|
|
3431
3477
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -3450,7 +3496,7 @@ async function handleAssessProject(input) {
|
|
|
3450
3496
|
parallelChecks.push(
|
|
3451
3497
|
(async () => {
|
|
3452
3498
|
try {
|
|
3453
|
-
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-
|
|
3499
|
+
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-ESOOE26S.js");
|
|
3454
3500
|
const result = await handleCheckDependencies2({ path: projectPath });
|
|
3455
3501
|
const first = result.content[0];
|
|
3456
3502
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -3477,7 +3523,7 @@ async function handleAssessProject(input) {
|
|
|
3477
3523
|
parallelChecks.push(
|
|
3478
3524
|
(async () => {
|
|
3479
3525
|
try {
|
|
3480
|
-
const { handleCheckDocs: handleCheckDocs2 } = await import("./docs-
|
|
3526
|
+
const { handleCheckDocs: handleCheckDocs2 } = await import("./docs-BPYCN2DR.js");
|
|
3481
3527
|
const result = await handleCheckDocs2({ path: projectPath, scope: "coverage" });
|
|
3482
3528
|
const first = result.content[0];
|
|
3483
3529
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -3504,7 +3550,7 @@ async function handleAssessProject(input) {
|
|
|
3504
3550
|
parallelChecks.push(
|
|
3505
3551
|
(async () => {
|
|
3506
3552
|
try {
|
|
3507
|
-
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-
|
|
3553
|
+
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-4VDVV5CR.js");
|
|
3508
3554
|
const result = await handleDetectEntropy2({ path: projectPath, type: "all" });
|
|
3509
3555
|
const first = result.content[0];
|
|
3510
3556
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -3531,7 +3577,7 @@ async function handleAssessProject(input) {
|
|
|
3531
3577
|
parallelChecks.push(
|
|
3532
3578
|
(async () => {
|
|
3533
3579
|
try {
|
|
3534
|
-
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-
|
|
3580
|
+
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-UQFUZXEN.js");
|
|
3535
3581
|
const result = await handleRunSecurityScan2({ path: projectPath });
|
|
3536
3582
|
const first = result.content[0];
|
|
3537
3583
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -3563,7 +3609,7 @@ async function handleAssessProject(input) {
|
|
|
3563
3609
|
parallelChecks.push(
|
|
3564
3610
|
(async () => {
|
|
3565
3611
|
try {
|
|
3566
|
-
const { handleCheckPerformance: handleCheckPerformance2 } = await import("./performance-
|
|
3612
|
+
const { handleCheckPerformance: handleCheckPerformance2 } = await import("./performance-26BH47O4.js");
|
|
3567
3613
|
const result = await handleCheckPerformance2({ path: projectPath });
|
|
3568
3614
|
const first = result.content[0];
|
|
3569
3615
|
const parsed = first ? JSON.parse(first.text) : {};
|
|
@@ -3738,7 +3784,7 @@ async function handleReviewChanges(input) {
|
|
|
3738
3784
|
}
|
|
3739
3785
|
try {
|
|
3740
3786
|
if (effectiveDepth === "quick") {
|
|
3741
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-
|
|
3787
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-63QB5RCA.js");
|
|
3742
3788
|
const result2 = await handleAnalyzeDiff2({ diff, path: projectPath });
|
|
3743
3789
|
const firstContent = result2.content[0];
|
|
3744
3790
|
if (!firstContent) throw new Error("Empty analyze_diff response");
|
|
@@ -3760,7 +3806,7 @@ async function handleReviewChanges(input) {
|
|
|
3760
3806
|
};
|
|
3761
3807
|
}
|
|
3762
3808
|
if (effectiveDepth === "standard") {
|
|
3763
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-
|
|
3809
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-63QB5RCA.js");
|
|
3764
3810
|
const [diffResult, reviewResult] = await Promise.all([
|
|
3765
3811
|
handleAnalyzeDiff2({ diff, path: projectPath }),
|
|
3766
3812
|
handleCreateSelfReview2({ path: projectPath, diff })
|
|
@@ -3791,7 +3837,7 @@ async function handleReviewChanges(input) {
|
|
|
3791
3837
|
]
|
|
3792
3838
|
};
|
|
3793
3839
|
}
|
|
3794
|
-
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-
|
|
3840
|
+
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-GHR3WFBI.js");
|
|
3795
3841
|
const result = await handleRunCodeReview2({ path: projectPath, diff });
|
|
3796
3842
|
const deepContent = result.content[0];
|
|
3797
3843
|
if (!deepContent) throw new Error("Empty code review response");
|
|
@@ -4083,7 +4129,7 @@ async function handleDetectStaleConstraints(input) {
|
|
|
4083
4129
|
]
|
|
4084
4130
|
};
|
|
4085
4131
|
}
|
|
4086
|
-
const { detectStaleConstraints } = await import("./dist-
|
|
4132
|
+
const { detectStaleConstraints } = await import("./dist-WF4C7A4A.js");
|
|
4087
4133
|
const result = detectStaleConstraints(
|
|
4088
4134
|
store,
|
|
4089
4135
|
windowDays,
|
|
@@ -4294,7 +4340,7 @@ function createHarnessServer(projectRoot) {
|
|
|
4294
4340
|
shouldRunCheck,
|
|
4295
4341
|
readCheckState,
|
|
4296
4342
|
spawnBackgroundCheck
|
|
4297
|
-
} = await import("./dist-
|
|
4343
|
+
} = await import("./dist-WF4C7A4A.js");
|
|
4298
4344
|
const { CLI_VERSION: version } = await import("./version-KFFPOQAX.js");
|
|
4299
4345
|
let CLI_VERSION = version;
|
|
4300
4346
|
let configInterval;
|
|
@@ -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-WF4C7A4A.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-WF4C7A4A.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-WF4C7A4A.js");
|
|
199
199
|
const parseResult = parseDiff(input.diff);
|
|
200
200
|
if (!parseResult.ok) {
|
|
201
201
|
return resultToMcpResponse(parseResult);
|