@nexus-cortex/core 4.108.8 → 4.108.10

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 (39) hide show
  1. package/.env.defaults +11 -0
  2. package/dist/config/RuntimeConfigRegistry.d.ts.map +1 -1
  3. package/dist/config/RuntimeConfigRegistry.js +1 -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 +1 -0
  7. package/dist/config/SettingsLoader.js.map +1 -1
  8. package/dist/config/SettingsSchema.d.ts +1 -0
  9. package/dist/config/SettingsSchema.d.ts.map +1 -1
  10. package/dist/config/SettingsSchema.js +9 -0
  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 +1 -0
  14. package/dist/config/effectiveConfig.js.map +1 -1
  15. package/dist/orchestrator/CortexOrchestrator.d.ts +4 -0
  16. package/dist/orchestrator/CortexOrchestrator.d.ts.map +1 -1
  17. package/dist/orchestrator/CortexOrchestrator.js +25 -7
  18. package/dist/orchestrator/CortexOrchestrator.js.map +1 -1
  19. package/dist/orchestrator/outerToolTimeout.d.ts +11 -1
  20. package/dist/orchestrator/outerToolTimeout.d.ts.map +1 -1
  21. package/dist/orchestrator/outerToolTimeout.js +16 -2
  22. package/dist/orchestrator/outerToolTimeout.js.map +1 -1
  23. package/dist/orchestrator/sliceBlock.d.ts +14 -0
  24. package/dist/orchestrator/sliceBlock.d.ts.map +1 -1
  25. package/dist/orchestrator/sliceBlock.js +14 -0
  26. package/dist/orchestrator/sliceBlock.js.map +1 -1
  27. package/dist/training/chunkReadProgression.d.ts +30 -0
  28. package/dist/training/chunkReadProgression.d.ts.map +1 -0
  29. package/dist/training/chunkReadProgression.js +80 -0
  30. package/dist/training/chunkReadProgression.js.map +1 -0
  31. package/dist/training/loopLadder.d.ts +2 -1
  32. package/dist/training/loopLadder.d.ts.map +1 -1
  33. package/dist/training/loopLadder.js +15 -2
  34. package/dist/training/loopLadder.js.map +1 -1
  35. package/dist/training/toolOutcome.d.ts +5 -0
  36. package/dist/training/toolOutcome.d.ts.map +1 -1
  37. package/dist/training/toolOutcome.js +3 -0
  38. package/dist/training/toolOutcome.js.map +1 -1
  39. package/package.json +3 -3
@@ -2,12 +2,22 @@ export type ToolUseBlockLike = {
2
2
  name?: string;
3
3
  input?: unknown;
4
4
  };
5
+ /**
6
+ * CORTEX_OUTER_TOOL_TIMEOUT_MS (2026-09-13): a FLOOR (ms) for the outer batch deadline. Non-Bash tools
7
+ * without a limit of their own (CreateArtifactTool persistent launches, ctr-optimization) and Task
8
+ * sub-agents mid-turn were still killed at the static ~150s (5 TB4.0 kills). With the floor set the
9
+ * deadline becomes max(computed, floor + grace). Unset / 0 / junk = no floor (behaviour unchanged).
10
+ */
11
+ export declare function resolveOuterToolTimeoutFloorMs(env?: NodeJS.ProcessEnv): number;
5
12
  /**
6
13
  * R133 HB-SUBAGENT-TIMEOUT (2026-09-13): a Task batch was aborted at this same ~150s, BELOW the sub-agent's
7
14
  * own timeout (300s hardcoded then; now derived from the parent's remaining turn budget). The optional
8
15
  * `blockTimeoutMs` lookup lets the caller contribute a per-block resolved timeout (Task → resolveSubAgentTimeoutMs)
9
16
  * so the batch abort is >= the sub-agent timeout + grace. Not clamped to the shell ceiling — a sub-agent
10
17
  * legitimately runs for hours under a long turn deadline.
18
+ *
19
+ * `floorMs` (CORTEX_OUTER_TOOL_TIMEOUT_MS, resolved by the caller once per turn) lifts the deadline to at
20
+ * least floor + grace; 0 / undefined / non-finite = no floor.
11
21
  */
12
- export declare function resolveOuterToolDeadlineMs(toolUseBlocks: ReadonlyArray<ToolUseBlockLike>, toolTimeoutMs: number, graceMs: number, blockTimeoutMs?: (block: ToolUseBlockLike, index: number) => number | undefined): number;
22
+ export declare function resolveOuterToolDeadlineMs(toolUseBlocks: ReadonlyArray<ToolUseBlockLike>, toolTimeoutMs: number, graceMs: number, blockTimeoutMs?: (block: ToolUseBlockLike, index: number) => number | undefined, floorMs?: number): number;
13
23
  //# sourceMappingURL=outerToolTimeout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outerToolTimeout.d.ts","sourceRoot":"","sources":["../../src/orchestrator/outerToolTimeout.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAC9C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC9E,MAAM,CAgBR"}
1
+ {"version":3,"file":"outerToolTimeout.d.ts","sourceRoot":"","sources":["../../src/orchestrator/outerToolTimeout.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAC9C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAC/E,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAiBR"}
@@ -13,14 +13,27 @@
13
13
  * timer is only ever the true last-resort for a hung tool.
14
14
  */
15
15
  const SHELL_MAX_TIMEOUT_MS = 600_000; // mirrors ShellTool.MAX_TIMEOUT_MS (requested timeouts are clamped there)
16
+ /**
17
+ * CORTEX_OUTER_TOOL_TIMEOUT_MS (2026-09-13): a FLOOR (ms) for the outer batch deadline. Non-Bash tools
18
+ * without a limit of their own (CreateArtifactTool persistent launches, ctr-optimization) and Task
19
+ * sub-agents mid-turn were still killed at the static ~150s (5 TB4.0 kills). With the floor set the
20
+ * deadline becomes max(computed, floor + grace). Unset / 0 / junk = no floor (behaviour unchanged).
21
+ */
22
+ export function resolveOuterToolTimeoutFloorMs(env = process.env) {
23
+ const n = Number(String(env.CORTEX_OUTER_TOOL_TIMEOUT_MS ?? '').trim() || 0);
24
+ return Number.isFinite(n) && n > 0 ? Math.floor(n) : 0;
25
+ }
16
26
  /**
17
27
  * R133 HB-SUBAGENT-TIMEOUT (2026-09-13): a Task batch was aborted at this same ~150s, BELOW the sub-agent's
18
28
  * own timeout (300s hardcoded then; now derived from the parent's remaining turn budget). The optional
19
29
  * `blockTimeoutMs` lookup lets the caller contribute a per-block resolved timeout (Task → resolveSubAgentTimeoutMs)
20
30
  * so the batch abort is >= the sub-agent timeout + grace. Not clamped to the shell ceiling — a sub-agent
21
31
  * legitimately runs for hours under a long turn deadline.
32
+ *
33
+ * `floorMs` (CORTEX_OUTER_TOOL_TIMEOUT_MS, resolved by the caller once per turn) lifts the deadline to at
34
+ * least floor + grace; 0 / undefined / non-finite = no floor.
22
35
  */
23
- export function resolveOuterToolDeadlineMs(toolUseBlocks, toolTimeoutMs, graceMs, blockTimeoutMs) {
36
+ export function resolveOuterToolDeadlineMs(toolUseBlocks, toolTimeoutMs, graceMs, blockTimeoutMs, floorMs) {
24
37
  let maxRequested = 0;
25
38
  let maxResolved = 0;
26
39
  for (let i = 0; i < toolUseBlocks.length; i++) {
@@ -39,6 +52,7 @@ export function resolveOuterToolDeadlineMs(toolUseBlocks, toolTimeoutMs, graceMs
39
52
  maxRequested = t;
40
53
  }
41
54
  const honored = Math.max(Math.min(maxRequested, SHELL_MAX_TIMEOUT_MS), maxResolved);
42
- return Math.max(toolTimeoutMs, honored) + graceMs;
55
+ const floor = Number.isFinite(floorMs) && floorMs > 0 ? floorMs : 0;
56
+ return Math.max(toolTimeoutMs, honored, floor) + graceMs;
43
57
  }
44
58
  //# sourceMappingURL=outerToolTimeout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outerToolTimeout.js","sourceRoot":"","sources":["../../src/orchestrator/outerToolTimeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,oBAAoB,GAAG,OAAO,CAAC,CAAC,0EAA0E;AAIhH;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,aAA8C,EAC9C,aAAqB,EACrB,OAAe,EACf,cAA+E;IAE/E,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW;gBAAE,WAAW,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM;YAAE,SAAS,CAAC,0CAA0C;QAC5E,MAAM,CAAC,GAAG,MAAM,CAAE,CAAC,CAAC,KAA2C,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY;YAAE,YAAY,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,WAAW,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"outerToolTimeout.js","sourceRoot":"","sources":["../../src/orchestrator/outerToolTimeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,oBAAoB,GAAG,OAAO,CAAC,CAAC,0EAA0E;AAIhH;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAyB,OAAO,CAAC,GAAG;IACjF,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CACxC,aAA8C,EAC9C,aAAqB,EACrB,OAAe,EACf,cAA+E,EAC/E,OAAgB;IAEhB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW;gBAAE,WAAW,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM;YAAE,SAAS,CAAC,0CAA0C;QAC5E,MAAM,CAAC,GAAG,MAAM,CAAE,CAAC,CAAC,KAA2C,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY;YAAE,YAAY,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,WAAW,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAK,OAAkB,GAAG,CAAC,CAAC,CAAC,CAAE,OAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC;AAC3D,CAAC"}
@@ -19,6 +19,7 @@
19
19
  *
20
20
  * PURE + deterministic — all state (per-file slice count, per-file block count) lives in the orchestrator.
21
21
  */
22
+ import { type ChunkRead } from '../training/chunkReadProgression.js';
22
23
  export type SliceBlockAction = 'block' | 'none';
23
24
  export interface SliceBlockDecision {
24
25
  action: SliceBlockAction;
@@ -47,4 +48,17 @@ export declare function isPathLike(file: string): boolean;
47
48
  * CORTEX_SLICE_BLOCK and confirmed this is a slice-read (via sliceReadFile).
48
49
  */
49
50
  export declare function decideSliceBlock(file: string, priorSlices: number, priorBlocks: number, at?: number, max?: number): SliceBlockDecision;
51
+ /**
52
+ * HB-CHUNKED-READS (R128): one step of the per-file slice-read counter. A slice that is the next
53
+ * DISJOINT, INCREASING chunk of the same file (sed -n 'A,Bp' / head|tail / tail|head / awk NR) is a
54
+ * progression, not a re-read: the count does NOT advance (so neither the slice_read nudge at 3 nor the
55
+ * slice block at 5 fires across a chunked read), but the chunk is remembered as the new `lastChunk`.
56
+ * An identical / overlapping / backwards range, or a slice with no parseable range, counts as before.
57
+ * PURE — the orchestrator keeps both maps (count per file, last chunk per file).
58
+ */
59
+ export declare function sliceReadStep(priorCount: number, lastChunk: ChunkRead | undefined, cmd: string): {
60
+ count: number;
61
+ progression: boolean;
62
+ chunk: ChunkRead | null;
63
+ };
50
64
  //# sourceMappingURL=sliceBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sliceBlock.d.ts","sourceRoot":"","sources":["../../src/orchestrator/sliceBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;yGACyG;AACzG,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAMzC,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxD;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,EAAE,GAAE,MAA+B,EACnC,GAAG,GAAE,MAAgC,GACpC,kBAAkB,CAWpB"}
1
+ {"version":3,"file":"sliceBlock.d.ts","sourceRoot":"","sources":["../../src/orchestrator/sliceBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEzG,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;yGACyG;AACzG,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAMzC,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxD;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,EAAE,GAAE,MAA+B,EACnC,GAAG,GAAE,MAAgC,GACpC,kBAAkB,CAWpB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,CAIlE"}
@@ -19,6 +19,7 @@
19
19
  *
20
20
  * PURE + deterministic — all state (per-file slice count, per-file block count) lives in the orchestrator.
21
21
  */
22
+ import { parseChunkRead, isChunkProgression } from '../training/chunkReadProgression.js';
22
23
  /** Default: block once the model is ATTEMPTING the (at+1)th slice — leaves the soft nudge at 3 and the
23
24
  * ~60% shallow-stoppers (1-2 extra slices) alone, coercing only the sustained grinders. Env-tunable. */
24
25
  export const SLICE_BLOCK_AT_DEFAULT = 5;
@@ -66,4 +67,17 @@ export function decideSliceBlock(file, priorSlices, priorBlocks, at = SLICE_BLOC
66
67
  `${file} can be sliced again next turn.`;
67
68
  return { action: 'block', message };
68
69
  }
70
+ /**
71
+ * HB-CHUNKED-READS (R128): one step of the per-file slice-read counter. A slice that is the next
72
+ * DISJOINT, INCREASING chunk of the same file (sed -n 'A,Bp' / head|tail / tail|head / awk NR) is a
73
+ * progression, not a re-read: the count does NOT advance (so neither the slice_read nudge at 3 nor the
74
+ * slice block at 5 fires across a chunked read), but the chunk is remembered as the new `lastChunk`.
75
+ * An identical / overlapping / backwards range, or a slice with no parseable range, counts as before.
76
+ * PURE — the orchestrator keeps both maps (count per file, last chunk per file).
77
+ */
78
+ export function sliceReadStep(priorCount, lastChunk, cmd) {
79
+ const chunk = parseChunkRead(cmd);
80
+ const progression = isChunkProgression(lastChunk, chunk);
81
+ return { count: progression ? priorCount : priorCount + 1, progression, chunk };
82
+ }
69
83
  //# sourceMappingURL=sliceBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sliceBlock.js","sourceRoot":"","sources":["../../src/orchestrator/sliceBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAUH;yGACyG;AACzG,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,sGAAsG;AACtG,oGAAoG;AACpG,MAAM,QAAQ,GAAG,6FAA6F,CAAC;AAE/G,+FAA+F;AAC/F,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;IAC3C,OAAO,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,WAAmB,EACnB,WAAmB,EACnB,KAAa,sBAAsB,EACnC,MAAc,uBAAuB;IAErC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAG,8DAA8D;IAC/H,IAAI,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAG,8BAA8B;IAC/F,IAAI,WAAW,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAK,uCAAuC;IACzG,IAAI,WAAW,IAAI,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAG,gCAAgC;IAClG,MAAM,OAAO,GACX,iBAAiB,IAAI,OAAO,WAAW,0DAA0D;QACjG,8DAA8D,IAAI,kCAAkC;QACpG,sFAAsF;QACtF,GAAG,IAAI,iCAAiC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"sliceBlock.js","sourceRoot":"","sources":["../../src/orchestrator/sliceBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAkB,MAAM,qCAAqC,CAAC;AAUzG;yGACyG;AACzG,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,sGAAsG;AACtG,oGAAoG;AACpG,MAAM,QAAQ,GAAG,6FAA6F,CAAC;AAE/G,+FAA+F;AAC/F,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;IAC3C,OAAO,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,WAAmB,EACnB,WAAmB,EACnB,KAAa,sBAAsB,EACnC,MAAc,uBAAuB;IAErC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAG,8DAA8D;IAC/H,IAAI,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAG,8BAA8B;IAC/F,IAAI,WAAW,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAK,uCAAuC;IACzG,IAAI,WAAW,IAAI,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAG,gCAAgC;IAClG,MAAM,OAAO,GACX,iBAAiB,IAAI,OAAO,WAAW,0DAA0D;QACjG,8DAA8D,IAAI,kCAAkC;QACpG,sFAAsF;QACtF,GAAG,IAAI,iCAAiC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,SAAgC,EAChC,GAAW;IAEX,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzD,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAClF,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * chunkReadProgression — HB-CHUNKED-READS (R128, 2026-09-13).
3
+ *
4
+ * The anti-loop stack (approachHash strips digits → `sed -n '1,200p'` ≡ `sed -n '201,400p'`; the
5
+ * near-dup hash lens; the poll guard; the per-file slice_read nudge/block) fought a task that read a
6
+ * 1200-line file in ≤200-line chunks: loop_escalation remind(4)/diversify(12) on ONE hash,
7
+ * steering_injected slice_read, then loop_tool_block neardup-hash pushed the model off Bash. A
8
+ * monotonic range progression over one file is the canonical way to read a large input.
9
+ *
10
+ * ONE pure helper shared by the ladder (hash lens + poll guard + similarity lens), the near-dup
11
+ * trigger downstream of it, and the slice_read nudge/block: recognize a chunk read and decide
12
+ * whether two chunk reads of the same file form a DISJOINT, INCREASING progression (a new approach)
13
+ * or a repeat/overlap/backwards read (still a retry — real loop detection stays intact).
14
+ */
15
+ export type ChunkReadKind = 'sed' | 'head' | 'head-tail' | 'tail-head' | 'awk' | 'read';
16
+ export interface ChunkRead {
17
+ file: string;
18
+ /** 1-based inclusive line range. */
19
+ start: number;
20
+ end: number;
21
+ kind: ChunkReadKind;
22
+ }
23
+ /** Parse a bash command as a chunk read of one file, or null when it is not one (or the range is invalid). */
24
+ export declare function parseChunkRead(command: string): ChunkRead | null;
25
+ /** Parse a tool input (Bash {command} or Read {file_path, offset, limit}) as a chunk read. */
26
+ export declare function parseChunkReadInput(toolName: string, input: unknown): ChunkRead | null;
27
+ /** True when `next` is a DISJOINT, INCREASING chunk of the same file after `prev` — a progression,
28
+ * not a retry. Identical, overlapping and backwards ranges (and different files) are NOT. */
29
+ export declare function isChunkProgression(prev: ChunkRead | null | undefined, next: ChunkRead | null | undefined): boolean;
30
+ //# sourceMappingURL=chunkReadProgression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkReadProgression.d.ts","sourceRoot":"","sources":["../../src/training/chunkReadProgression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;AAExF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,aAAa,CAAC;CACrB;AAsBD,8GAA8G;AAC9G,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgBhE;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAYtF;AAED;8FAC8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGlH"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * chunkReadProgression — HB-CHUNKED-READS (R128, 2026-09-13).
3
+ *
4
+ * The anti-loop stack (approachHash strips digits → `sed -n '1,200p'` ≡ `sed -n '201,400p'`; the
5
+ * near-dup hash lens; the poll guard; the per-file slice_read nudge/block) fought a task that read a
6
+ * 1200-line file in ≤200-line chunks: loop_escalation remind(4)/diversify(12) on ONE hash,
7
+ * steering_injected slice_read, then loop_tool_block neardup-hash pushed the model off Bash. A
8
+ * monotonic range progression over one file is the canonical way to read a large input.
9
+ *
10
+ * ONE pure helper shared by the ladder (hash lens + poll guard + similarity lens), the near-dup
11
+ * trigger downstream of it, and the slice_read nudge/block: recognize a chunk read and decide
12
+ * whether two chunk reads of the same file form a DISJOINT, INCREASING progression (a new approach)
13
+ * or a repeat/overlap/backwards read (still a retry — real loop detection stays intact).
14
+ */
15
+ const FILE = String.raw `([^\s;|&><'"]+)`;
16
+ const Q = String.raw `['"]?`;
17
+ // sed -n 'A,Bp' FILE | sed -n "A,Bp" FILE | sed -n A,Bp FILE
18
+ const SED_FILE_RE = new RegExp(String.raw `sed\s+-n\s+${Q}(\d+)\s*,\s*(\d+)\s*p${Q}\s+${FILE}`);
19
+ // cat FILE | sed -n 'A,Bp'
20
+ const CAT_SED_RE = new RegExp(String.raw `cat\s+${FILE}\s*\|\s*sed\s+-n\s+${Q}(\d+)\s*,\s*(\d+)\s*p${Q}`);
21
+ // head -n N FILE | tail -n M (also head -N / tail -M)
22
+ const HEAD_TAIL_RE = new RegExp(String.raw `head\s+-n?\s*(\d+)\s+${FILE}\s*\|\s*tail\s+-n?\s*(\d+)(?!\d)`);
23
+ // tail -n +A FILE | head -n B (also head -B)
24
+ const TAIL_HEAD_RE = new RegExp(String.raw `tail\s+-n?\s*\+(\d+)\s+${FILE}\s*\|\s*head\s+-n?\s*(\d+)`);
25
+ // bare head -n N FILE (lines 1..N)
26
+ const HEAD_RE = new RegExp(String.raw `head\s+-n?\s*(\d+)\s+${FILE}`);
27
+ // awk 'NR>=A && NR<=B' FILE
28
+ const AWK_RE = new RegExp(String.raw `awk\s+${Q}\s*NR\s*>=\s*(\d+)\s*&&\s*NR\s*<=\s*(\d+)\s*${Q}\s+${FILE}`);
29
+ function chunk(file, start, end, kind) {
30
+ if (!Number.isFinite(start) || !Number.isFinite(end) || start < 1 || end < start)
31
+ return null;
32
+ return { file, start, end, kind };
33
+ }
34
+ /** Parse a bash command as a chunk read of one file, or null when it is not one (or the range is invalid). */
35
+ export function parseChunkRead(command) {
36
+ const cmd = String(command ?? '');
37
+ let m;
38
+ if ((m = SED_FILE_RE.exec(cmd)))
39
+ return chunk(m[3], Number(m[1]), Number(m[2]), 'sed');
40
+ if ((m = CAT_SED_RE.exec(cmd)))
41
+ return chunk(m[1], Number(m[2]), Number(m[3]), 'sed');
42
+ if ((m = TAIL_HEAD_RE.exec(cmd))) {
43
+ const start = Number(m[1]);
44
+ return chunk(m[2], start, start + Number(m[3]) - 1, 'tail-head');
45
+ }
46
+ if ((m = HEAD_TAIL_RE.exec(cmd))) {
47
+ const end = Number(m[1]);
48
+ return chunk(m[2], end - Number(m[3]) + 1, end, 'head-tail');
49
+ }
50
+ if ((m = AWK_RE.exec(cmd)))
51
+ return chunk(m[3], Number(m[1]), Number(m[2]), 'awk');
52
+ if ((m = HEAD_RE.exec(cmd)))
53
+ return chunk(m[2], 1, Number(m[1]), 'head');
54
+ return null;
55
+ }
56
+ /** Parse a tool input (Bash {command} or Read {file_path, offset, limit}) as a chunk read. */
57
+ export function parseChunkReadInput(toolName, input) {
58
+ if (!input || typeof input !== 'object')
59
+ return null;
60
+ const i = input;
61
+ if (toolName === 'Bash')
62
+ return parseChunkRead(String(i.command ?? ''));
63
+ if (toolName === 'Read') {
64
+ const file = typeof i.file_path === 'string' ? i.file_path : '';
65
+ const limit = typeof i.limit === 'number' ? i.limit : NaN;
66
+ if (!file || !Number.isFinite(limit) || limit < 1)
67
+ return null; // whole-file Read is not a chunk
68
+ const start = typeof i.offset === 'number' && i.offset >= 1 ? i.offset : 1;
69
+ return chunk(file, start, start + limit - 1, 'read');
70
+ }
71
+ return null;
72
+ }
73
+ /** True when `next` is a DISJOINT, INCREASING chunk of the same file after `prev` — a progression,
74
+ * not a retry. Identical, overlapping and backwards ranges (and different files) are NOT. */
75
+ export function isChunkProgression(prev, next) {
76
+ if (!prev || !next)
77
+ return false;
78
+ return prev.file === next.file && next.start > prev.end && next.end >= next.start;
79
+ }
80
+ //# sourceMappingURL=chunkReadProgression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkReadProgression.js","sourceRoot":"","sources":["../../src/training/chunkReadProgression.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ export declare class LoopLadder {
39
39
  private readonly simNudged;
40
40
  private readonly recentKeys;
41
41
  private readonly nearDupNudged;
42
+ private readonly lastChunk;
42
43
  constructor(thresholds?: LoopLadderThresholds);
43
44
  /** HB-LOOP-NEARDUP: windowed similarity count for an executing tool's normalized text. */
44
45
  private observeSimilar;
@@ -46,7 +47,7 @@ export declare class LoopLadder {
46
47
  * same normalized approach recurs >= nudgeAt (diversify, once per key) or
47
48
  * >= 2x nudgeAt (break) within the sliding window. */
48
49
  private observeNearDup;
49
- observe(toolName: string, outcome: Pick<ToolOutcome, 'status' | 'approachHash' | 'family' | 'approachText'>): LadderResult;
50
+ observe(toolName: string, outcome: Pick<ToolOutcome, 'status' | 'approachHash' | 'family' | 'approachText' | 'chunkRead'>): LadderResult;
50
51
  }
51
52
  /**
52
53
  * 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,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
+ {"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;AAGpE,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;IAInD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;gBAE9C,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,GAAG,WAAW,CAAC,GAAG,YAAY;CA+CzI;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"}
@@ -6,6 +6,7 @@
6
6
  * detector remains as the fast path for byte-identical spam.)
7
7
  */
8
8
  import { diceSimilarity } from './toolOutcome.js';
9
+ import { isChunkProgression } from './chunkReadProgression.js';
9
10
  const RANK = { none: 0, remind: 1, diversify: 2, break: 3 };
10
11
  function envInt(name, fallback) {
11
12
  const v = parseInt(process.env[name] ?? '', 10);
@@ -48,6 +49,10 @@ export class LoopLadder {
48
49
  simNudged = new Set();
49
50
  recentKeys = [];
50
51
  nearDupNudged = new Set();
52
+ // HB-CHUNKED-READS (R128): last chunk read per (tool, file). A disjoint increasing progression
53
+ // gets a range-suffixed key (a NEW approach for the hash lens, poll guard and failure ladder) and
54
+ // skips the similarity lens; an identical/overlapping/backwards range keeps the plain hash key.
55
+ lastChunk = new Map();
51
56
  constructor(thresholds = {}) {
52
57
  this.remindAt = thresholds.remindAt ?? envInt('LOOP_REMIND_AT', 2);
53
58
  this.diversifyAt = thresholds.diversifyAt ?? envInt('LOOP_DIVERSIFY_AT', 4);
@@ -107,9 +112,17 @@ export class LoopLadder {
107
112
  return null;
108
113
  }
109
114
  observe(toolName, outcome) {
110
- const key = `${toolName}\n${outcome.approachHash}`;
115
+ let key = `${toolName}\n${outcome.approachHash}`;
116
+ let progression = false;
117
+ if (outcome.chunkRead) {
118
+ const chunkKey = `${toolName}\n${outcome.chunkRead.file}`;
119
+ progression = isChunkProgression(this.lastChunk.get(chunkKey), outcome.chunkRead);
120
+ this.lastChunk.set(chunkKey, outcome.chunkRead);
121
+ if (progression)
122
+ key += `\n${outcome.chunkRead.start}-${outcome.chunkRead.end}`;
123
+ }
111
124
  const hashDup = this.observeNearDup(key);
112
- const simDup = this.observeSimilar(toolName, outcome.approachText);
125
+ const simDup = this.observeSimilar(toolName, progression ? undefined : outcome.approachText);
113
126
  // the more severe of the two near-dup lenses
114
127
  const nearDup = hashDup && simDup ? (RANK[simDup.action] >= RANK[hashDup.action] ? simDup : hashDup) : (simDup ?? hashDup);
115
128
  if (outcome.status === 'ok') {
@@ -1 +1 @@
1
- {"version":3,"file":"loopLadder.js","sourceRoot":"","sources":["../../src/training/loopLadder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loopLadder.js","sourceRoot":"","sources":["../../src/training/loopLadder.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type ChunkRead } from './chunkReadProgression.js';
1
2
  export interface ToolOutcome {
2
3
  status: 'ok' | 'failed' | 'error';
3
4
  /** Normalized failure fingerprint (present when status !== 'ok'). */
@@ -10,6 +11,10 @@ export interface ToolOutcome {
10
11
  * text the similarity near-dup lens compares (the approachHash is too fine: `python3 -c "…"` retries
11
12
  * with an edited script never collide, the 12-in-30 rung was unreachable on every real loop replayed). */
12
13
  approachText?: string;
14
+ /** HB-CHUNKED-READS (R128): the file + line range when the call is a chunk read (sed -n / head|tail /
15
+ * awk NR / Read offset+limit). The ladder keys a disjoint increasing progression over one file as
16
+ * a NEW approach instead of the digit-stripped hash the whole progression collides into. */
17
+ chunkRead?: ChunkRead;
13
18
  }
14
19
  export declare const EXEC_TOOLS: Set<string>;
15
20
  /** Slice-reads (sed -n / head / tail paging) are inspection, handled by CORTEX_SLICE_BLOCK — excluded from the loop lens. */
@@ -1 +1 @@
1
- {"version":3,"file":"toolOutcome.d.ts","sourceRoot":"","sources":["../../src/training/toolOutcome.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;IAClC,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB;;+GAE2G;IAC3G,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,aAAkE,CAAC;AAC1F,6HAA6H;AAC7H,eAAO,MAAM,aAAa,QAA6C,CAAC;AAExE,6GAA6G;AAC7G,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAWrE;AAED,+GAA+G;AAC/G,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnE;AA2ED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAYrE;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,cAAc,GACrB,WAAW,CAyCb"}
1
+ {"version":3,"file":"toolOutcome.d.ts","sourceRoot":"","sources":["../../src/training/toolOutcome.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;IAClC,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB;;+GAE2G;IAC3G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;iGAE6F;IAC7F,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,aAAkE,CAAC;AAC1F,6HAA6H;AAC7H,eAAO,MAAM,aAAa,QAA6C,CAAC;AAExE,6GAA6G;AAC7G,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAWrE;AAED,+GAA+G;AAC/G,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnE;AA2ED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAYrE;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,cAAc,GACrB,WAAW,CA2Cb"}
@@ -15,6 +15,7 @@
15
15
  import { createHash } from 'crypto';
16
16
  import { classifyErrorFamily } from './errorFamily.js';
17
17
  import { stableInputHash } from './DecisionStore.js';
18
+ import { parseChunkReadInput } from './chunkReadProgression.js';
18
19
  export const EXEC_TOOLS = new Set(['Bash', 'Write', 'Edit', 'MultiEdit', 'NotebookEdit']);
19
20
  /** Slice-reads (sed -n / head / tail paging) are inspection, handled by CORTEX_SLICE_BLOCK — excluded from the loop lens. */
20
21
  export const SLICE_READ_RE = /\b(sed\s+-n|head\s+-[nc]|tail\s+-[nc])\b/;
@@ -141,6 +142,7 @@ export function approachHash(toolName, input) {
141
142
  export function classifyToolOutcome(toolName, input, result) {
142
143
  const exactHash = stableInputHash(input);
143
144
  const aHash = approachHash(toolName, input);
145
+ const chunkRead = parseChunkReadInput(toolName, input);
144
146
  const content = String(result.content ?? '');
145
147
  let status;
146
148
  if (result.is_error) {
@@ -181,6 +183,7 @@ export function classifyToolOutcome(toolName, input, result) {
181
183
  approachHash: aHash,
182
184
  exactHash,
183
185
  ...(EXEC_TOOLS.has(toolName) ? { approachText: approachText(toolName, input) } : {}),
186
+ ...(chunkRead ? { chunkRead } : {}),
184
187
  };
185
188
  }
186
189
  /** Loop-level classification sees results ALREADY augmented with prepended
@@ -1 +1 @@
1
- {"version":3,"file":"toolOutcome.js","sourceRoot":"","sources":["../../src/training/toolOutcome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolOutcome.js","sourceRoot":"","sources":["../../src/training/toolOutcome.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cortex/core",
3
- "version": "4.108.8",
3
+ "version": "4.108.10",
4
4
  "description": "Core orchestration library implementing Claude CLI architecture patterns",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -47,8 +47,8 @@
47
47
  "@google/generative-ai": "^0.2.1",
48
48
  "@gradio/client": "^2.3.1",
49
49
  "@modelcontextprotocol/sdk": "^1.20.2",
50
- "@nexus-cortex/executors": "4.108.8",
51
- "@nexus-cortex/types": "4.108.8",
50
+ "@nexus-cortex/executors": "4.108.10",
51
+ "@nexus-cortex/types": "4.108.10",
52
52
  "@types/uuid": "^10.0.0",
53
53
  "ajv": "^8.12.0",
54
54
  "chokidar": "^3.6.0",