@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.
Files changed (49) hide show
  1. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +57 -9
  2. package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +1 -1
  3. package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +19 -2
  4. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +39 -12
  5. package/dist/agents/skills/claude-code/harness-planning/SKILL.md +28 -11
  6. package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +34 -0
  7. package/dist/agents/skills/claude-code/harness-verification/SKILL.md +42 -0
  8. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +57 -9
  9. package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +1 -1
  10. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +19 -2
  11. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +39 -12
  12. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +28 -11
  13. package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +34 -0
  14. package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +42 -0
  15. package/dist/{agents-md-ZFV6RR5J.js → agents-md-P2RHSUV7.js} +1 -1
  16. package/dist/{architecture-EXNUMH5R.js → architecture-ESOOE26S.js} +2 -2
  17. package/dist/bin/harness-mcp.js +10 -10
  18. package/dist/bin/harness.js +12 -12
  19. package/dist/{check-phase-gate-VZFOY2PO.js → check-phase-gate-S2MZKLFQ.js} +2 -2
  20. package/dist/{chunk-GSIVNYVJ.js → chunk-2VU4MFM3.js} +4 -4
  21. package/dist/{chunk-2NCIKJES.js → chunk-3KOLLWWE.js} +1 -1
  22. package/dist/{chunk-X3MN5UQJ.js → chunk-5VY23YK3.js} +1 -1
  23. package/dist/{chunk-I6JZYEGT.js → chunk-7KQSUZVG.js} +96 -50
  24. package/dist/{chunk-PA2XHK75.js → chunk-7PZWR4LI.js} +3 -3
  25. package/dist/{chunk-2YSQOUHO.js → chunk-KELT6K6M.js} +662 -283
  26. package/dist/{chunk-WUJTCNOU.js → chunk-LD3DKUK5.js} +1 -1
  27. package/dist/{chunk-Z75JC6I2.js → chunk-MACVXDZK.js} +2 -2
  28. package/dist/{chunk-NC6PXVWT.js → chunk-MI5XJQDY.js} +3 -3
  29. package/dist/{chunk-WJZDO6OY.js → chunk-PSNN4LWX.js} +2 -2
  30. package/dist/{chunk-ZWC3MN5E.js → chunk-RZSUJBZZ.js} +765 -203
  31. package/dist/{chunk-TI4TGEX6.js → chunk-WPPDRIJL.js} +1 -1
  32. package/dist/{ci-workflow-K5RCRNYR.js → ci-workflow-4NYBUG6R.js} +1 -1
  33. package/dist/{dist-JVZ2MKBC.js → dist-WF4C7A4A.js} +27 -1
  34. package/dist/{docs-PWCUVYWU.js → docs-BPYCN2DR.js} +2 -2
  35. package/dist/{engine-6XUP6GAK.js → engine-LXLIWQQ3.js} +1 -1
  36. package/dist/{entropy-4I6JEYAC.js → entropy-4VDVV5CR.js} +2 -2
  37. package/dist/{feedback-TNIW534S.js → feedback-63QB5RCA.js} +1 -1
  38. package/dist/{generate-agent-definitions-MWKEA5NU.js → generate-agent-definitions-QABOJG56.js} +1 -1
  39. package/dist/index.d.ts +80 -43
  40. package/dist/index.js +17 -13
  41. package/dist/{loader-4FIPIFII.js → loader-Z2IT7QX3.js} +1 -1
  42. package/dist/{mcp-MOKLYNZL.js → mcp-KQHEL5IF.js} +10 -10
  43. package/dist/{performance-BTOJCPXU.js → performance-26BH47O4.js} +2 -2
  44. package/dist/{review-pipeline-3YTW3463.js → review-pipeline-GHR3WFBI.js} +1 -1
  45. package/dist/{runtime-GO7K2PJE.js → runtime-PDWD7UIK.js} +1 -1
  46. package/dist/{security-4P2GGFF6.js → security-UQFUZXEN.js} +1 -1
  47. package/dist/{validate-JN44D2Q7.js → validate-N7QJOKFZ.js} +2 -2
  48. package/dist/{validate-cross-check-DB7RIFFF.js → validate-cross-check-EDQ5QGTM.js} +1 -1
  49. package/package.json +4 -4
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  detectEntropyDefinition,
3
3
  handleDetectEntropy
4
- } from "./chunk-Z75JC6I2.js";
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-GSIVNYVJ.js";
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-PA2XHK75.js";
22
+ } from "./chunk-7PZWR4LI.js";
23
23
  import {
24
24
  handleRunSecurityScan,
25
25
  runSecurityScanDefinition
26
- } from "./chunk-X3MN5UQJ.js";
26
+ } from "./chunk-5VY23YK3.js";
27
27
  import {
28
28
  handleRunCodeReview,
29
29
  runCodeReviewDefinition
30
- } from "./chunk-WUJTCNOU.js";
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-WJZDO6OY.js";
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-TI4TGEX6.js";
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-NC6PXVWT.js";
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-6XUP6GAK.js");
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-4FIPIFII.js");
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-4FIPIFII.js");
246
- const { generateRuntime } = await import("./runtime-GO7K2PJE.js");
247
- const { generateAgentsMd } = await import("./agents-md-ZFV6RR5J.js");
248
- const { generateCIWorkflow } = await import("./ci-workflow-K5RCRNYR.js");
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-4FIPIFII.js");
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-JVZ2MKBC.js");
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(projectPath, { ...DEFAULT_STATE }, input.stream);
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-JVZ2MKBC.js");
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-JVZ2MKBC.js");
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-JVZ2MKBC.js");
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-VZFOY2PO.js");
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-DB7RIFFF.js");
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-JVZ2MKBC.js");
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-MWKEA5NU.js");
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-JVZ2MKBC.js");
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-JVZ2MKBC.js");
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-JVZ2MKBC.js");
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-JVZ2MKBC.js").then((core) => core.loadState(projectPath)) : Promise.resolve(null);
3249
- const learningsPromise = includeSet.has("learnings") ? import("./dist-JVZ2MKBC.js").then(
3250
- (core) => core.loadRelevantLearnings(projectPath, input.skill)
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-JN44D2Q7.js");
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-JN44D2Q7.js");
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-EXNUMH5R.js");
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-PWCUVYWU.js");
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-4I6JEYAC.js");
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-4P2GGFF6.js");
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-BTOJCPXU.js");
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-TNIW534S.js");
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-TNIW534S.js");
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-3YTW3463.js");
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-JVZ2MKBC.js");
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-JVZ2MKBC.js");
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-JVZ2MKBC.js");
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-JVZ2MKBC.js");
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-JVZ2MKBC.js");
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);