@nexus-cortex/core 4.100.0 → 4.102.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 (47) hide show
  1. package/.env.defaults +53 -4
  2. package/dist/config/RuntimeConfigRegistry.d.ts.map +1 -1
  3. package/dist/config/RuntimeConfigRegistry.js +3 -0
  4. package/dist/config/RuntimeConfigRegistry.js.map +1 -1
  5. package/dist/config/SettingsLoader.d.ts.map +1 -1
  6. package/dist/config/SettingsLoader.js +3 -0
  7. package/dist/config/SettingsLoader.js.map +1 -1
  8. package/dist/config/SettingsSchema.d.ts +3 -0
  9. package/dist/config/SettingsSchema.d.ts.map +1 -1
  10. package/dist/config/SettingsSchema.js +32 -5
  11. package/dist/config/SettingsSchema.js.map +1 -1
  12. package/dist/config/effectiveConfig.d.ts.map +1 -1
  13. package/dist/config/effectiveConfig.js +7 -2
  14. package/dist/config/effectiveConfig.js.map +1 -1
  15. package/dist/middleware/HelperModelMiddleware.d.ts +3 -0
  16. package/dist/middleware/HelperModelMiddleware.d.ts.map +1 -1
  17. package/dist/middleware/HelperModelMiddleware.js +4 -1
  18. package/dist/middleware/HelperModelMiddleware.js.map +1 -1
  19. package/dist/orchestrator/CortexOrchestrator.d.ts +2 -0
  20. package/dist/orchestrator/CortexOrchestrator.d.ts.map +1 -1
  21. package/dist/orchestrator/CortexOrchestrator.js +39 -14
  22. package/dist/orchestrator/CortexOrchestrator.js.map +1 -1
  23. package/dist/tools/ToolProfile.d.ts +2 -1
  24. package/dist/tools/ToolProfile.d.ts.map +1 -1
  25. package/dist/tools/ToolProfile.js +4 -3
  26. package/dist/tools/ToolProfile.js.map +1 -1
  27. package/dist/training/deadlineExitMentor.d.ts +2 -0
  28. package/dist/training/deadlineExitMentor.d.ts.map +1 -1
  29. package/dist/training/deadlineExitMentor.js +7 -1
  30. package/dist/training/deadlineExitMentor.js.map +1 -1
  31. package/dist/training/endTurnResolver.d.ts +4 -0
  32. package/dist/training/endTurnResolver.d.ts.map +1 -1
  33. package/dist/training/endTurnResolver.js +13 -2
  34. package/dist/training/endTurnResolver.js.map +1 -1
  35. package/dist/training/judgeEvidence.d.ts +39 -0
  36. package/dist/training/judgeEvidence.d.ts.map +1 -0
  37. package/dist/training/judgeEvidence.js +167 -0
  38. package/dist/training/judgeEvidence.js.map +1 -0
  39. package/dist/training/loopLadder.d.ts +10 -2
  40. package/dist/training/loopLadder.d.ts.map +1 -1
  41. package/dist/training/loopLadder.js +48 -4
  42. package/dist/training/loopLadder.js.map +1 -1
  43. package/dist/training/toolOutcome.d.ts +11 -0
  44. package/dist/training/toolOutcome.d.ts.map +1 -1
  45. package/dist/training/toolOutcome.js +39 -0
  46. package/dist/training/toolOutcome.js.map +1 -1
  47. package/package.json +3 -3
@@ -46,7 +46,8 @@ export declare function resolveVisionHandoffMax(env?: NodeJS.ProcessEnv): number
46
46
  export declare function resolveSliceNudge(env?: NodeJS.ProcessEnv): boolean;
47
47
  /** CORTEX_SLICE_BLOCK (HB-SLICE-BLOCK): the coercive escalation of the ignored slice-nudge — after
48
48
  * CORTEX_SLICE_BLOCK_AT slices of a STATIC/source file, BLOCK further slice-reads of it (force Read),
49
- * bounded to CORTEX_SLICE_BLOCK_MAX blocks/file. Ships DARK (default OFF); only 'true' enables. */
49
+ * bounded to CORTEX_SLICE_BLOCK_MAX blocks/file. DEFAULT ON since 4.101.0 (cell-d-k3 2026-09-10: the
50
+ * nudge fired 23× on 17/42 rows and was ignored — 61 further slices vs 5 Reads); 'false' disables. */
50
51
  export declare function resolveSliceBlock(env?: NodeJS.ProcessEnv): boolean;
51
52
  export declare function resolveSliceBlockAt(env?: NodeJS.ProcessEnv): number;
52
53
  export declare function resolveSliceBlockMax(env?: NodeJS.ProcessEnv): number;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolProfile.d.ts","sourceRoot":"","sources":["../../src/tools/ToolProfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolProfile.d.ts","sourceRoot":"","sources":["../../src/tools/ToolProfile.ts"],"names":[],"mappings":"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"}
@@ -116,9 +116,10 @@ export function resolveSliceNudge(env = process.env) {
116
116
  }
117
117
  /** CORTEX_SLICE_BLOCK (HB-SLICE-BLOCK): the coercive escalation of the ignored slice-nudge — after
118
118
  * CORTEX_SLICE_BLOCK_AT slices of a STATIC/source file, BLOCK further slice-reads of it (force Read),
119
- * bounded to CORTEX_SLICE_BLOCK_MAX blocks/file. Ships DARK (default OFF); only 'true' enables. */
119
+ * bounded to CORTEX_SLICE_BLOCK_MAX blocks/file. DEFAULT ON since 4.101.0 (cell-d-k3 2026-09-10: the
120
+ * nudge fired 23× on 17/42 rows and was ignored — 61 further slices vs 5 Reads); 'false' disables. */
120
121
  export function resolveSliceBlock(env = process.env) {
121
- return (env.CORTEX_SLICE_BLOCK ?? '').trim().toLowerCase() === 'true';
122
+ return (env.CORTEX_SLICE_BLOCK ?? '').trim().toLowerCase() !== 'false';
122
123
  }
123
124
  export function resolveSliceBlockAt(env = process.env) {
124
125
  const n = parseInt((env.CORTEX_SLICE_BLOCK_AT ?? '').trim(), 10);
@@ -133,7 +134,7 @@ export function resolveVisionHelperModel(env = process.env) {
133
134
  const v = raw.toLowerCase();
134
135
  if (v === 'false' || v === 'off' || v === 'none' || v === '0')
135
136
  return null;
136
- return raw || 'deepseek-v4-flash-vision-exp';
137
+ return raw || 'deepseek-flash'; // V4.1 Flash (multimodal); the vision-exp name is retired (2026-09-10)
137
138
  }
138
139
  export function resolveToolProfile(env = process.env) {
139
140
  const raw = (env.CORTEX_TOOL_PROFILE ?? 'full').trim().toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"ToolProfile.js","sourceRoot":"","sources":["../../src/tools/ToolProfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolProfile.js","sourceRoot":"","sources":["../../src/tools/ToolProfile.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,8 @@ export interface DeadlineExitContext {
51
51
  /** A brief trace of the last few tool calls / whether recent steps reduced the gap (for the
52
52
  * convergence judgment), if available. */
53
53
  recentProgress?: string;
54
+ /** HB-JUDGE-GROUNDING: files changed this task + a bounded head of each (collectWorkspaceDelta). */
55
+ workspaceDelta?: string;
54
56
  }
55
57
  export declare function buildDeadlineExitPrompt(ctx: DeadlineExitContext): string;
56
58
  export type DeadlineExitDecision = 'continue' | 'finish' | 'action' | 'retire';
@@ -1 +1 @@
1
- {"version":3,"file":"deadlineExitMentor.d.ts","sourceRoot":"","sources":["../../src/training/deadlineExitMentor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf;;2DAEuD;IACvD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sFAAsF;IACtF,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;CACtB;AAUD,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,kBAAkB,CAYlG;AAED;iEACiE;AACjE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAQtI;AAED,eAAO,MAAM,oBAAoB,QAgBH,CAAC;AAE/B,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,eAAe,EAAE,MAAM,CAAC;IACxB;+CAC2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAcxE;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;uDACuD;AACvD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAS1E"}
1
+ {"version":3,"file":"deadlineExitMentor.d.ts","sourceRoot":"","sources":["../../src/training/deadlineExitMentor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf;;2DAEuD;IACvD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sFAAsF;IACtF,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;CACtB;AAUD,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,kBAAkB,CAYlG;AAED;iEACiE;AACjE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAQtI;AAED,eAAO,MAAM,oBAAoB,QAmB8D,CAAC;AAEhG,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,eAAe,EAAE,MAAM,CAAC;IACxB;+CAC2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oGAAoG;IACpG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAgBxE;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;uDACuD;AACvD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAS1E"}
@@ -66,7 +66,10 @@ export const DEADLINE_EXIT_SYSTEM = 'You are a senior engineer running a CHECKPO
66
66
  'If ACTION: after the verdict line, give the SINGLE concrete step + the exact check to run.\n' +
67
67
  'If FINISH: optionally one clause confirming the criteria are met.\n' +
68
68
  'If RETIRE: one short line naming why the residual cannot close it.\n' +
69
- 'If CONTINUE: nothing more.';
69
+ 'If CONTINUE: nothing more.\n' +
70
+ 'EVIDENCE RULE (HB-JUDGE-GROUNDING): when a WORKSPACE DELTA is provided it is the ground truth for what exists — ' +
71
+ 'FINISH only if the delta shows the required artifact(s) present and the recent outputs show them checked; ACTION ' +
72
+ 'only for a defect you can point at in the delta; never FINISH on the junior\'s claim alone.';
70
73
  export function buildDeadlineExitPrompt(ctx) {
71
74
  const parts = [];
72
75
  parts.push(`TASK:\n${(ctx.task || '').trim().slice(0, 2500)}`);
@@ -77,6 +80,9 @@ export function buildDeadlineExitPrompt(ctx) {
77
80
  const prog = (ctx.recentProgress || '').trim();
78
81
  if (prog)
79
82
  parts.push(`RECENT PROGRESS (did each step reduce the gap?):\n${prog.slice(0, 1500)}`);
83
+ const delta = (ctx.workspaceDelta || '').trim();
84
+ if (delta)
85
+ parts.push(`WORKSPACE DELTA — THE ARTIFACT (files changed this task, with heads; ground truth):\n${delta.slice(0, 5000)}`);
80
86
  parts.push(`WORK SO FAR (latest answer + recent tool outputs):\n${(ctx.workProduct || '').trim().slice(0, 5000)}`);
81
87
  parts.push('Checkpoint now. First line: `VERDICT: CONTINUE` | `FINISH` | `ACTION` | `RETIRE`. ' +
82
88
  'If ACTION, the single step + its check; if RETIRE, one line why; if FINISH, one confirming clause.');
@@ -1 +1 @@
1
- {"version":3,"file":"deadlineExitMentor.js","sourceRoot":"","sources":["../../src/training/deadlineExitMentor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deadlineExitMentor.js","sourceRoot":"","sources":["../../src/training/deadlineExitMentor.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,10 @@ export interface EndTurnResolverContext {
37
37
  workProduct: string;
38
38
  /** The junior's own EndTurn attestation (requirements/verification), if any — what IT claims it did. */
39
39
  attestation?: string;
40
+ /** HB-JUDGE-GROUNDING: files changed this task + a bounded head of each (collectWorkspaceDelta). */
41
+ workspaceDelta?: string;
42
+ /** HB-JUDGE-GROUNDING: the labeled result of running an evident check entry point (runCheck). */
43
+ checkResult?: string;
40
44
  }
41
45
  /** Build the user prompt for the judge. Bounded slices keep the call cheap and cache-stable. */
42
46
  export declare function buildResolverUserPrompt(ctx: EndTurnResolverContext, abstain?: boolean): string;
@@ -1 +1 @@
1
- {"version":3,"file":"endTurnResolver.d.ts","sourceRoot":"","sources":["../../src/training/endTurnResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,uGAAuG;IACvG,UAAU,EAAE,MAAM,CAAC;IACnB;;6EAEyE;IACzE,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,4BAA4B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,qBAAqB,CAUxG;AAED,qGAAqG;AACrG,eAAO,MAAM,eAAe,QAgB8B,CAAC;AAE3D,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,QAMyE,CAAC;AAE9G,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,OAAO,UAAQ,GAAG,MAAM,CAE5D;AAED,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,WAAW,EAAE,MAAM,CAAC;IACpB,wGAAwG;IACxG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gGAAgG;AAChG,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,sBAAsB,EAAE,OAAO,UAAQ,GAAG,MAAM,CAgB5F;AAED,MAAM,WAAW,eAAe;IAC9B;sGACkG;IAClG,KAAK,EAAE,OAAO,CAAC;IACf;wGACoG;IACpG,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAYlE"}
1
+ {"version":3,"file":"endTurnResolver.d.ts","sourceRoot":"","sources":["../../src/training/endTurnResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,uGAAuG;IACvG,UAAU,EAAE,MAAM,CAAC;IACnB;;6EAEyE;IACzE,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,4BAA4B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,qBAAqB,CAUxG;AAED,qGAAqG;AACrG,eAAO,MAAM,eAAe,QAqB+D,CAAC;AAE5F,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,QAMyE,CAAC;AAE9G,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,OAAO,UAAQ,GAAG,MAAM,CAE5D;AAED,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,WAAW,EAAE,MAAM,CAAC;IACpB,wGAAwG;IACxG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oGAAoG;IACpG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gGAAgG;AAChG,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,sBAAsB,EAAE,OAAO,UAAQ,GAAG,MAAM,CAoB5F;AAED,MAAM,WAAW,eAAe;IAC9B;sGACkG;IAClG,KAAK,EAAE,OAAO,CAAC;IACf;wGACoG;IACpG,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAYlE"}
@@ -39,7 +39,12 @@ export const RESOLVER_SYSTEM = 'You are a senior engineer performing the FINAL a
39
39
  'If GAP: after the verdict line, give a SHORT numbered FIX PLAN — name each unmet requirement, then the ' +
40
40
  'concrete step(s) to close it and the exact check to verify it against the TASK\'s criteria. If a gap ' +
41
41
  'cannot be verified in this box, say so and tell the junior to note it in open_items and finish. Be ' +
42
- 'terse and concrete; do not rewrite the whole solution.';
42
+ 'terse and concrete; do not rewrite the whole solution.\n' +
43
+ 'EVIDENCE RULE (HB-JUDGE-GROUNDING): judge the ARTIFACT, not the prose. When a WORKSPACE DELTA and/or a CHECK RUN ' +
44
+ 'are provided, they are the ground truth: a GAP must name a concrete defect you can point at in the delta or a ' +
45
+ 'failed check; a MEETS must point at a passing check or the delta content that satisfies each criterion. Do not ' +
46
+ 'GAP on suspicion of the junior\'s wording when the delta shows the artifact meets the criteria, and do not MEETS ' +
47
+ 'on the junior\'s claim when the check failed or the artifact is missing from the delta.';
43
48
  /** Appended to the persona when abstention is enabled — offers the conservative RETIRE verdict. */
44
49
  export const RESOLVER_ABSTAIN_CLAUSE = '\n\nA THIRD verdict is available: `VERDICT: RETIRE`. Use it ONLY when the work does not meet requirements ' +
45
50
  'AND the gap is structurally UNCLOSABLE by this junior in the remaining budget — a fundamentally wrong ' +
@@ -58,7 +63,13 @@ export function buildResolverUserPrompt(ctx, abstain = false) {
58
63
  const env = (ctx.envReport || '').trim();
59
64
  if (env)
60
65
  parts.push(`ENVIRONMENT REPORT:\n${env.slice(0, 2500)}`);
61
- parts.push(`WORK PRODUCT (what the junior produced + the checks it ran this task):\n${(ctx.workProduct || '').trim().slice(0, 5000)}`);
66
+ const delta = (ctx.workspaceDelta || '').trim();
67
+ if (delta)
68
+ parts.push(`WORKSPACE DELTA — THE ARTIFACT (files changed this task, with heads; ground truth):\n${delta.slice(0, 6000)}`);
69
+ const check = (ctx.checkResult || '').trim();
70
+ if (check)
71
+ parts.push(`CHECK RUN (an evident check entry point, executed by the harness just now; ground truth):\n${check.slice(0, 3000)}`);
72
+ parts.push(`WORK PRODUCT (the junior's final answer + its most recent checks/tool outputs):\n${(ctx.workProduct || '').trim().slice(0, 5000)}`);
62
73
  const att = (ctx.attestation || '').trim();
63
74
  if (att)
64
75
  parts.push(`THE JUNIOR'S OWN ATTESTATION (treat as a claim to VERIFY, not as truth):\n${att.slice(0, 2000)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"endTurnResolver.js","sourceRoot":"","sources":["../../src/training/endTurnResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,MAAM,QAAQ,GAA0B,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAEnH,MAAM,UAAU,4BAA4B,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC/E,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO;QACL,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB;QAClF,MAAM,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM;QAC5B,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU;QACnE,OAAO,EAAE,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM;KACrF,CAAC;AACJ,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,eAAe,GAC1B,kGAAkG;IAClG,uGAAuG;IACvG,qGAAqG;IACrG,uGAAuG;IACvG,4BAA4B;IAC5B,sGAAsG;IACtG,yGAAyG;IACzG,iFAAiF;IACjF,oDAAoD;IACpD,oBAAoB;IACpB,kBAAkB;IAClB,4EAA4E;IAC5E,yGAAyG;IACzG,uGAAuG;IACvG,qGAAqG;IACrG,wDAAwD,CAAC;AAE3D,mGAAmG;AACnG,MAAM,CAAC,MAAM,uBAAuB,GAClC,4GAA4G;IAC5G,wGAAwG;IACxG,0GAA0G;IAC1G,yGAAyG;IACzG,6GAA6G;IAC7G,2GAA2G,CAAC;AAE9G,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,OAAO,GAAG,KAAK;IAClD,OAAO,OAAO,CAAC,CAAC,CAAC,eAAe,GAAG,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC;AAC/E,CAAC;AAaD,gGAAgG;AAChG,MAAM,UAAU,uBAAuB,CAAC,GAA2B,EAAE,OAAO,GAAG,KAAK;IAClF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACvI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,6EAA6E,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACvH,KAAK,CAAC,IAAI,CACR,OAAO;QACL,CAAC,CAAC,sGAAsG;YACpG,uGAAuG;QAC3G,CAAC,CAAC,oGAAoG;YAClG,wCAAwC,CAC/C,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAeD,4FAA4F;AAC5F,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACvE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,6CAA6C;IACrH,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,KAAK,OAAO,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,KAAK,QAAQ,CAAC;IACpC,yEAAyE;IACzE,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"endTurnResolver.js","sourceRoot":"","sources":["../../src/training/endTurnResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export interface JudgeGroundingConfig {
2
+ /** CORTEX_JUDGE_DELTA: hand the judges the workspace delta (files changed this task + heads). Default on. */
3
+ delta: boolean;
4
+ /** CORTEX_JUDGE_RUN_CHECK: at the EndTurn resolver, run an evident check entry point and hand the judge its result. Default on. */
5
+ runCheck: boolean;
6
+ /** CORTEX_JUDGE_CHECK_TIMEOUT_MS: cap on the check run. Default 45000. */
7
+ checkTimeoutMs: number;
8
+ /** CORTEX_JUDGE_DELTA_MAX_FILES: files whose head is included. Default 8. */
9
+ deltaMaxFiles: number;
10
+ /** CORTEX_JUDGE_DELTA_HEAD_LINES: lines of each changed file shown. Default 60. */
11
+ deltaHeadLines: number;
12
+ /** Total character cap on the delta text. Default 6000. */
13
+ deltaMaxChars: number;
14
+ }
15
+ export declare function resolveJudgeGroundingConfig(env?: NodeJS.ProcessEnv): JudgeGroundingConfig;
16
+ /** Pure: pick the files to show from a list of changed paths — skip build/vendor dirs and binaries, cap the count. */
17
+ export declare function selectDeltaFiles(paths: string[], maxFiles: number): string[];
18
+ /** Pure: format the delta text from the pieces (status lines + per-file heads), bounded. */
19
+ export declare function formatWorkspaceDelta(summary: string, files: Array<{
20
+ path: string;
21
+ head: string;
22
+ lines?: number;
23
+ truncated?: boolean;
24
+ }>, maxChars: number): string;
25
+ /**
26
+ * The files changed since `sinceMs` (task start) and a bounded head of each. In a git repo: `git status
27
+ * --short` (modified + untracked) + `git diff --stat`; otherwise a POSIX `find -newermt @epoch` scan.
28
+ * Returns '' when nothing changed or on any failure (the judge then sees no delta section — fail-soft).
29
+ */
30
+ export declare function collectWorkspaceDelta(cwd: string, sinceMs: number, cfg?: JudgeGroundingConfig): string;
31
+ /**
32
+ * Pure-ish: find an EVIDENT check entry point in the workspace (task-provided, not the junior's ad-hoc
33
+ * tests): a Makefile with a `test` target, test.sh / run_tests.sh / run-tests.sh, or a pytest layout
34
+ * (tests/ dir or test_*.py at the root). Returns the command or null.
35
+ */
36
+ export declare function detectCheckCommand(cwd: string): string | null;
37
+ /** Run a check command bounded by the config; returns a labeled, capped result the judge can cite. */
38
+ export declare function runCheck(cwd: string, cmd: string, cfg?: JudgeGroundingConfig): string;
39
+ //# sourceMappingURL=judgeEvidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judgeEvidence.d.ts","sourceRoot":"","sources":["../../src/training/judgeEvidence.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,oBAAoB;IACnC,6GAA6G;IAC7G,KAAK,EAAE,OAAO,CAAC;IACf,mIAAmI;IACnI,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;CACvB;AAcD,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,oBAAoB,CAStG;AAaD,sHAAsH;AACtH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAS5E;AAED,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACjF,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,oBAAoD,GAAG,MAAM,CAiCrI;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB7D;AAED,sGAAsG;AACtG,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,oBAAoD,GAAG,MAAM,CAcpH"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * judgeEvidence — HB-JUDGE-GROUNDING (2026-09-10): the EVIDENCE the done/not-done judges (EndTurn
3
+ * resolver, deadline exit planner) verify against.
4
+ *
5
+ * The judge prompts (endTurnResolver.ts / deadlineExitMentor.ts) already ask for an adversarial check of
6
+ * the work against the task's real criteria and promise the judge "the work product + the checks it ran"
7
+ * and an environment report. Until now the orchestrator handed them the junior's prose, the OLDEST 4K of
8
+ * tool output and a start-of-task tooling inventory — never the deliverable. cell-d-k3 (42 rows): the
9
+ * resolver held 9/10 PASSING finishes, the exit planner mis-called 3/3 real done/not-done decisions.
10
+ *
11
+ * This module supplies what the prompts assume:
12
+ * - collectWorkspaceDelta: the files changed since the task started (git status/diff --stat when in a
13
+ * repo, else a mtime scan) + a bounded head of each — the deliverable itself, not a description of it.
14
+ * - detectCheckCommand / runCheck: when the workspace carries an evident check entry point
15
+ * (Makefile `test` target, test.sh / run_tests.sh, pytest layout), run it (bounded) and hand the
16
+ * judge the result, so HOLD/FINISH can be anchored to a real check.
17
+ * Every leg is fail-soft and bounded (shell timeouts, output caps); a judge must never hang or throw on
18
+ * evidence collection. Pure config resolution is exported for tests.
19
+ */
20
+ import { execSync } from 'child_process';
21
+ import { existsSync, readFileSync, statSync } from 'fs';
22
+ import { join } from 'path';
23
+ const DEFAULTS = {
24
+ delta: true, runCheck: true, checkTimeoutMs: 45_000, deltaMaxFiles: 8, deltaHeadLines: 60, deltaMaxChars: 6000,
25
+ };
26
+ function flagNotFalse(v) {
27
+ return (v ?? '').trim().toLowerCase() !== 'false';
28
+ }
29
+ function intOr(v, d) {
30
+ const n = parseInt((v ?? '').trim(), 10);
31
+ return Number.isInteger(n) && n > 0 ? n : d;
32
+ }
33
+ export function resolveJudgeGroundingConfig(env = process.env) {
34
+ return {
35
+ delta: flagNotFalse(env.CORTEX_JUDGE_DELTA),
36
+ runCheck: flagNotFalse(env.CORTEX_JUDGE_RUN_CHECK),
37
+ checkTimeoutMs: intOr(env.CORTEX_JUDGE_CHECK_TIMEOUT_MS, DEFAULTS.checkTimeoutMs),
38
+ deltaMaxFiles: intOr(env.CORTEX_JUDGE_DELTA_MAX_FILES, DEFAULTS.deltaMaxFiles),
39
+ deltaHeadLines: intOr(env.CORTEX_JUDGE_DELTA_HEAD_LINES, DEFAULTS.deltaHeadLines),
40
+ deltaMaxChars: DEFAULTS.deltaMaxChars,
41
+ };
42
+ }
43
+ function sh(cmd, cwd, timeoutMs, maxBuffer = 512 * 1024) {
44
+ try {
45
+ return String(execSync(cmd, { cwd, timeout: timeoutMs, encoding: 'utf8', maxBuffer, stdio: ['ignore', 'pipe', 'ignore'], shell: '/bin/sh' }));
46
+ }
47
+ catch (e) {
48
+ return String(e?.stdout ?? '');
49
+ }
50
+ }
51
+ const SKIP_DIRS = /(^|\/)(node_modules|\.git|\.venv|venv|__pycache__|dist|build|target|\.cache)(\/|$)/;
52
+ const BINARY_EXT = /\.(png|jpe?g|gif|webp|bmp|pdf|zip|tar|gz|bz2|xz|7z|whl|so|o|a|bin|exe|dll|dylib|pyc|class|jar|wasm|mp3|mp4|wav|ogg|ttf|otf|woff2?)$/i;
53
+ /** Pure: pick the files to show from a list of changed paths — skip build/vendor dirs and binaries, cap the count. */
54
+ export function selectDeltaFiles(paths, maxFiles) {
55
+ const out = [];
56
+ for (const raw of paths) {
57
+ const p = raw.trim();
58
+ if (!p || SKIP_DIRS.test(p) || BINARY_EXT.test(p))
59
+ continue;
60
+ if (!out.includes(p))
61
+ out.push(p);
62
+ if (out.length >= maxFiles)
63
+ break;
64
+ }
65
+ return out;
66
+ }
67
+ /** Pure: format the delta text from the pieces (status lines + per-file heads), bounded. */
68
+ export function formatWorkspaceDelta(summary, files, maxChars) {
69
+ const parts = [];
70
+ if (summary.trim())
71
+ parts.push(summary.trim());
72
+ for (const f of files) {
73
+ const tag = f.lines !== undefined ? ` (${f.lines} lines${f.truncated ? ', head shown' : ''})` : '';
74
+ parts.push(`--- ${f.path}${tag} ---\n${f.head.replace(/\s+$/, '')}`);
75
+ }
76
+ const text = parts.join('\n');
77
+ return text.length > maxChars ? text.slice(0, maxChars) + '\n…[delta truncated]' : text;
78
+ }
79
+ /**
80
+ * The files changed since `sinceMs` (task start) and a bounded head of each. In a git repo: `git status
81
+ * --short` (modified + untracked) + `git diff --stat`; otherwise a POSIX `find -newermt @epoch` scan.
82
+ * Returns '' when nothing changed or on any failure (the judge then sees no delta section — fail-soft).
83
+ */
84
+ export function collectWorkspaceDelta(cwd, sinceMs, cfg = resolveJudgeGroundingConfig()) {
85
+ if (!cfg.delta || !cwd || !existsSync(cwd))
86
+ return '';
87
+ const inRepo = sh('git rev-parse --is-inside-work-tree 2>/dev/null', cwd, 3000).trim() === 'true';
88
+ let summary = '';
89
+ let candidates = [];
90
+ if (inRepo) {
91
+ const status = sh('git status --short --untracked-files=all 2>/dev/null | head -60', cwd, 5000);
92
+ const stat = sh('git diff --stat 2>/dev/null | tail -20', cwd, 5000);
93
+ summary = ['WORKSPACE DELTA (files changed this task, git):', status.trim() || '(no changes vs HEAD)', stat.trim()].filter(Boolean).join('\n');
94
+ candidates = status.split('\n').map((l) => l.slice(3).trim()).filter(Boolean)
95
+ .map((p) => (p.includes(' -> ') ? p.split(' -> ').pop().trim() : p));
96
+ }
97
+ else {
98
+ const epoch = Math.max(0, Math.floor(sinceMs / 1000) - 1);
99
+ const found = sh(`find . -type f -newermt @${epoch} 2>/dev/null | grep -v -E '/(node_modules|\\.git|__pycache__|\\.venv|venv)/' | head -60`, cwd, 8000);
100
+ const list = found.split('\n').map((l) => l.replace(/^\.\//, '').trim()).filter(Boolean);
101
+ if (list.length === 0)
102
+ return '';
103
+ summary = ['WORKSPACE DELTA (files modified this task):', ...list.slice(0, 40)].join('\n');
104
+ candidates = list;
105
+ }
106
+ const files = selectDeltaFiles(candidates, cfg.deltaMaxFiles).map((p) => {
107
+ try {
108
+ const full = join(cwd, p);
109
+ const st = statSync(full);
110
+ if (!st.isFile() || st.size > 2 * 1024 * 1024)
111
+ return { path: p, head: `(${st.isFile() ? st.size + ' bytes, not shown' : 'not a regular file'})` };
112
+ const all = readFileSync(full, 'utf8').split('\n');
113
+ const truncated = all.length > cfg.deltaHeadLines;
114
+ return { path: p, head: all.slice(0, cfg.deltaHeadLines).join('\n'), lines: all.length, truncated };
115
+ }
116
+ catch {
117
+ return { path: p, head: '(unreadable)' };
118
+ }
119
+ });
120
+ if (!summary && files.length === 0)
121
+ return '';
122
+ return formatWorkspaceDelta(summary, files, cfg.deltaMaxChars);
123
+ }
124
+ /**
125
+ * Pure-ish: find an EVIDENT check entry point in the workspace (task-provided, not the junior's ad-hoc
126
+ * tests): a Makefile with a `test` target, test.sh / run_tests.sh / run-tests.sh, or a pytest layout
127
+ * (tests/ dir or test_*.py at the root). Returns the command or null.
128
+ */
129
+ export function detectCheckCommand(cwd) {
130
+ try {
131
+ for (const mk of ['Makefile', 'makefile', 'GNUmakefile']) {
132
+ const p = join(cwd, mk);
133
+ if (existsSync(p) && /^test\s*:/m.test(readFileSync(p, 'utf8')))
134
+ return 'make test';
135
+ }
136
+ for (const s of ['test.sh', 'run_tests.sh', 'run-tests.sh', 'tests.sh']) {
137
+ if (existsSync(join(cwd, s)))
138
+ return `sh ./${s}`;
139
+ }
140
+ if (existsSync(join(cwd, 'pytest.ini')) || existsSync(join(cwd, 'tests')) || existsSync(join(cwd, 'test'))) {
141
+ return 'python3 -m pytest -q -x --no-header -p no:cacheprovider 2>&1 | tail -40';
142
+ }
143
+ const rootTests = sh("ls test_*.py *_test.py 2>/dev/null | head -1", cwd, 2000).trim();
144
+ if (rootTests)
145
+ return 'python3 -m pytest -q -x --no-header -p no:cacheprovider 2>&1 | tail -40';
146
+ }
147
+ catch { /* fail-soft */ }
148
+ return null;
149
+ }
150
+ /** Run a check command bounded by the config; returns a labeled, capped result the judge can cite. */
151
+ export function runCheck(cwd, cmd, cfg = resolveJudgeGroundingConfig()) {
152
+ const t0 = Date.now();
153
+ let out = '';
154
+ let code = 0;
155
+ try {
156
+ out = String(execSync(cmd, { cwd, timeout: cfg.checkTimeoutMs, encoding: 'utf8', maxBuffer: 1024 * 1024, stdio: ['ignore', 'pipe', 'pipe'], shell: '/bin/sh' }));
157
+ }
158
+ catch (e) {
159
+ code = typeof e?.status === 'number' ? e.status : (e?.killed || /ETIMEDOUT|timed out/i.test(String(e?.message)) ? 124 : 1);
160
+ out = `${String(e?.stdout ?? '')}\n${String(e?.stderr ?? '')}`;
161
+ }
162
+ const ms = Date.now() - t0;
163
+ const body = out.trim().length > 2500 ? out.trim().slice(-2500) : out.trim();
164
+ const verdict = code === 0 ? 'PASSED' : code === 124 ? `TIMED OUT after ${cfg.checkTimeoutMs} ms (not a pass)` : `FAILED (exit ${code})`;
165
+ return `CHECK RUN: \`${cmd}\` → ${verdict} in ${ms} ms\n${body || '(no output)'}`;
166
+ }
167
+ //# sourceMappingURL=judgeEvidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judgeEvidence.js","sourceRoot":"","sources":["../../src/training/judgeEvidence.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,15 @@
5
5
  * (docs/UNIFIED_OUTCOME_LADDER.md. The exact-hash MAX_LOOP_REPETITIONS
6
6
  * detector remains as the fast path for byte-identical spam.)
7
7
  */
8
- import type { ToolOutcome } from './toolOutcome.js';
8
+ import { type ToolOutcome } from './toolOutcome.js';
9
9
  export type LadderAction = 'none' | 'remind' | 'diversify' | 'break';
10
10
  export interface LadderResult {
11
11
  action: LadderAction;
12
12
  /** Consecutive not-ok observations for this (tool, approach). */
13
13
  count: number;
14
14
  family?: string;
15
+ /** Which lens produced a 'neardup' result: 'hash' (approachHash equality) or 'similarity' (HB-LOOP-NEARDUP). */
16
+ trigger?: 'hash' | 'similarity';
15
17
  }
16
18
  export interface LoopLadderThresholds {
17
19
  remindAt?: number;
@@ -31,14 +33,20 @@ export declare class LoopLadder {
31
33
  private readonly nearDupEnabled;
32
34
  private readonly nearDupWindow;
33
35
  private readonly nearDupNudgeAt;
36
+ private readonly nearDupSim;
37
+ private readonly nearDupSimAt;
38
+ private readonly recentSim;
39
+ private readonly simNudged;
34
40
  private readonly recentKeys;
35
41
  private readonly nearDupNudged;
36
42
  constructor(thresholds?: LoopLadderThresholds);
43
+ /** HB-LOOP-NEARDUP: windowed similarity count for an executing tool's normalized text. */
44
+ private observeSimilar;
37
45
  /** 14b: outcome-agnostic windowed near-dup check. Returns a result when the
38
46
  * same normalized approach recurs >= nudgeAt (diversify, once per key) or
39
47
  * >= 2x nudgeAt (break) within the sliding window. */
40
48
  private observeNearDup;
41
- observe(toolName: string, outcome: Pick<ToolOutcome, 'status' | 'approachHash' | 'family'>): LadderResult;
49
+ observe(toolName: string, outcome: Pick<ToolOutcome, 'status' | 'approachHash' | 'family' | 'approachText'>): LadderResult;
42
50
  }
43
51
  /**
44
52
  * Format the tool-result signal text for a ladder escalation. `null` for
@@ -1 +1 @@
1
- {"version":3,"file":"loopLadder.d.ts","sourceRoot":"","sources":["../../src/training/loopLadder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyD;IAQhF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAS;IAM3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,UAAU,GAAE,oBAAyB;IAoBjD;;2DAEuD;IACvD,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,cAAc,GAAG,QAAQ,CAAC,GAAG,YAAY;CAmC1G;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CA2CxF;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,KAAK,CAAK;IAElB,oEAAoE;IACpE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAUrD"}
1
+ {"version":3,"file":"loopLadder.d.ts","sourceRoot":"","sources":["../../src/training/loopLadder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gHAAgH;IAChH,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;CACjC;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyD;IAQhF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAS;IAM3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAOxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,UAAU,GAAE,oBAAyB;IAuBjD,0FAA0F;IAC1F,OAAO,CAAC,cAAc;IActB;;2DAEuD;IACvD,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,cAAc,GAAG,QAAQ,GAAG,cAAc,CAAC,GAAG,YAAY;CAwC3H;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CA2CxF;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,KAAK,CAAK;IAElB,oEAAoE;IACpE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAUrD"}
@@ -1,3 +1,12 @@
1
+ /**
2
+ * LoopLadder — escalation over repeated FAILING approaches (per tool +
3
+ * approachHash), replacing independent blunt guards with teach-then-break:
4
+ * remind(2) → diversify(4) → break(6); an ok on the approach resets it.
5
+ * (docs/UNIFIED_OUTCOME_LADDER.md. The exact-hash MAX_LOOP_REPETITIONS
6
+ * detector remains as the fast path for byte-identical spam.)
7
+ */
8
+ import { diceSimilarity } from './toolOutcome.js';
9
+ const RANK = { none: 0, remind: 1, diversify: 2, break: 3 };
1
10
  function envInt(name, fallback) {
2
11
  const v = parseInt(process.env[name] ?? '', 10);
3
12
  return Number.isNaN(v) || v <= 0 ? fallback : v;
@@ -27,6 +36,16 @@ export class LoopLadder {
27
36
  nearDupEnabled;
28
37
  nearDupWindow;
29
38
  nearDupNudgeAt;
39
+ // HB-LOOP-NEARDUP (2026-09-10): SIMILARITY lens for EXECUTING tools. Replay of 47 real sessions
40
+ // (cell-l loops + cell-d-k3): the hash lens peaked at 7-in-30 on every genuine loop (the 12 rung was
41
+ // structurally unreachable — each loop iteration is 3-5 distinct calls) and its top hits were paging
42
+ // Reads with different offsets. Bigram-Dice ≥ NEARDUP_SIM over the last NEARDUP_WINDOW executing
43
+ // calls (slice-reads excluded): every real loop (dna-assembly ×2, gcode python -c ×1 at 7/7/18) crossed
44
+ // 7; no PASSING session did (max 6 = healthy test iteration). Diversify at NEARDUP_SIM_AT (7), break at 2×.
45
+ nearDupSim;
46
+ nearDupSimAt;
47
+ recentSim = [];
48
+ simNudged = new Set();
30
49
  recentKeys = [];
31
50
  nearDupNudged = new Set();
32
51
  constructor(thresholds = {}) {
@@ -47,6 +66,26 @@ export class LoopLadder {
47
66
  // genuine grinds more rope while still catching runaway loops (engaged help:harm
48
67
  // was 3.75:1 at 8 — the tune trims the harm side). Ledger: r-tb21g-guarded.
49
68
  this.nearDupNudgeAt = envInt('NEARDUP_NUDGE_AT', 12);
69
+ this.nearDupSimAt = envInt('NEARDUP_SIM_AT', 7);
70
+ const sim = parseFloat(process.env.NEARDUP_SIM ?? '');
71
+ this.nearDupSim = Number.isFinite(sim) && sim > 0 && sim <= 1 ? sim : 0.9;
72
+ }
73
+ /** HB-LOOP-NEARDUP: windowed similarity count for an executing tool's normalized text. */
74
+ observeSimilar(toolName, text) {
75
+ if (!this.nearDupEnabled || !text)
76
+ return null;
77
+ const count = 1 + this.recentSim.filter((e) => e.tool === toolName && (e.text === text || diceSimilarity(e.text, text) >= this.nearDupSim)).length;
78
+ this.recentSim.push({ tool: toolName, text });
79
+ if (this.recentSim.length > this.nearDupWindow)
80
+ this.recentSim.shift();
81
+ if (count >= this.nearDupSimAt * 2)
82
+ return { action: 'break', count, family: 'neardup', trigger: 'similarity' };
83
+ const nudgeKey = `${toolName}\n${text.slice(0, 80)}`;
84
+ if (count >= this.nearDupSimAt && !this.simNudged.has(nudgeKey)) {
85
+ this.simNudged.add(nudgeKey);
86
+ return { action: 'diversify', count, family: 'neardup', trigger: 'similarity' };
87
+ }
88
+ return null;
50
89
  }
51
90
  /** 14b: outcome-agnostic windowed near-dup check. Returns a result when the
52
91
  * same normalized approach recurs >= nudgeAt (diversify, once per key) or
@@ -59,17 +98,20 @@ export class LoopLadder {
59
98
  this.recentKeys.shift();
60
99
  const count = this.recentKeys.filter(k => k === key).length;
61
100
  if (count >= this.nearDupNudgeAt * 2) {
62
- return { action: 'break', count, family: 'neardup' };
101
+ return { action: 'break', count, family: 'neardup', trigger: 'hash' };
63
102
  }
64
103
  if (count >= this.nearDupNudgeAt && !this.nearDupNudged.has(key)) {
65
104
  this.nearDupNudged.add(key);
66
- return { action: 'diversify', count, family: 'neardup' };
105
+ return { action: 'diversify', count, family: 'neardup', trigger: 'hash' };
67
106
  }
68
107
  return null;
69
108
  }
70
109
  observe(toolName, outcome) {
71
110
  const key = `${toolName}\n${outcome.approachHash}`;
72
- const nearDup = this.observeNearDup(key);
111
+ const hashDup = this.observeNearDup(key);
112
+ const simDup = this.observeSimilar(toolName, outcome.approachText);
113
+ // the more severe of the two near-dup lenses
114
+ const nearDup = hashDup && simDup ? (RANK[simDup.action] >= RANK[hashDup.action] ? simDup : hashDup) : (simDup ?? hashDup);
73
115
  if (outcome.status === 'ok') {
74
116
  this.counts.delete(key);
75
117
  if (this.pollEnabled) {
@@ -104,7 +146,9 @@ export class LoopLadder {
104
146
  action = 'diversify';
105
147
  else if (entry.count >= this.remindAt)
106
148
  action = 'remind';
107
- if (action === 'none' && nearDup)
149
+ // HB-LOOP-NEARDUP masking fix: a near-dup diversify/break is never dropped because a LOWER
150
+ // failure-ladder rung (remind) fired on the same call — return the more severe signal.
151
+ if (nearDup && RANK[nearDup.action] > RANK[action])
108
152
  return nearDup;
109
153
  return { action, count: entry.count, ...(entry.family ? { family: entry.family } : {}) };
110
154
  }