@nexus-cortex/core 4.108.2 → 4.108.3

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.
@@ -28,8 +28,28 @@ export interface CompactionResumeInput {
28
28
  taskText: string;
29
29
  helperModelId?: string;
30
30
  rebuild?: string;
31
- memorySource?: 'checkpoint' | 'dropped' | 'none';
31
+ memorySource?: 'checkpoint' | 'dropped' | 'rolled' | 'none';
32
32
  }
33
33
  /** The `<system-reminder>` prepended to the compacted history. */
34
34
  export declare function buildCompactionResumeReminder(i: CompactionResumeInput): string;
35
+ /** Recover the ORIGINAL TASK text from a prior compaction reminder (the task message itself is gone after the first compaction). */
36
+ export declare function extractTaskFromReminder(reminderText: string): string;
37
+ /**
38
+ * The task, from the first plain user message if it still exists, else from the newest compaction reminder in the history,
39
+ * else the pinned copy the orchestrator kept from an earlier compaction.
40
+ */
41
+ export declare function resolveTaskText(messages: any[], pinned: string, maxChars?: number): string;
42
+ /** Resume-memory size: ~10% of the compaction threshold, clamped to [1500, 6000] tokens (a forced 14K test window gets ~1.5K). */
43
+ export declare function resumeMemoryTargetTokens(threshold: number): number;
44
+ /**
45
+ * v3 (4.108.3, from the live proof): a checkpoint may be REUSED at compaction only if it already covered every message being
46
+ * dropped. The v2 rule compared token distance, which goes negative once a compaction shrinks the history — so one stale checkpoint
47
+ * was replayed into every later reminder and the model's progress after it was erased each time (27 compactions, 0 fresh memories).
48
+ */
49
+ export declare function coversAll(covered: WeakSet<object> | undefined, dropped: any[]): boolean;
50
+ /**
51
+ * v3: when the checkpoint is stale, the new summary must ROLL the prior memory forward — the helper sees the prior memory as the
52
+ * first message, then the newly dropped messages, and writes one memory covering both (otherwise each compaction forgets the last).
53
+ */
54
+ export declare function buildRollingSeedMessage(priorText: string): any;
35
55
  //# sourceMappingURL=compactionResume.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compactionResume.d.ts","sourceRoot":"","sources":["../../src/orchestrator/compactionResume.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,wBAAwB,wCAAwC,CAAC;AAE9E,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAGrF;AAmBD,8FAA8F;AAC9F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAE/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,QAAQ,SAAO,GAAG,MAAM,CAS7E;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAGvD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;CAClD;AAED,kEAAkE;AAClE,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAgB9E"}
1
+ {"version":3,"file":"compactionResume.d.ts","sourceRoot":"","sources":["../../src/orchestrator/compactionResume.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,wBAAwB,wCAAwC,CAAC;AAE9E,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAGrF;AAmBD,8FAA8F;AAC9F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAE/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,QAAQ,SAAO,GAAG,MAAM,CAS7E;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAGvD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC7D;AAED,kEAAkE;AAClE,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAkB9E;AAED,oIAAoI;AACpI,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,MAAM,CAWxF;AAED,kIAAkI;AAClI,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAGvF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAU9D"}
@@ -58,7 +58,9 @@ export function pickDropped(all, kept) {
58
58
  export function buildCompactionResumeReminder(i) {
59
59
  const head = `${COMPACTION_RESUME_MARKER} at turn ${i.turn}: ${i.droppedCount} older message(s) (~${Math.max(0, i.tokensBefore - i.tokensAfter)} tokens) ` +
60
60
  `were removed from your context to stay within the model window; ${i.keptCount} recent message(s) were kept verbatim.]`;
61
- const src = i.memorySource === 'checkpoint' ? 'at the pre-compaction checkpoint (whole conversation)' : 'from the removed messages';
61
+ const src = i.memorySource === 'checkpoint' ? 'at the pre-compaction checkpoint (whole conversation)'
62
+ : i.memorySource === 'rolled' ? 'from the removed messages, carrying the earlier resume memory forward'
63
+ : 'from the removed messages';
62
64
  const memory = i.resumeText.trim()
63
65
  ? `RESUME MEMORY (written by ${i.helperModelId ?? 'the helper model'} ${src}):\n${i.resumeText.trim()}`
64
66
  : 'RESUME MEMORY: unavailable (the helper summary failed); rely on the files on disk and the recent messages below.';
@@ -71,4 +73,57 @@ export function buildCompactionResumeReminder(i) {
71
73
  'and completed sub-goals in the resume memory are done. Do not restart from scratch.') + '</system-reminder>';
72
74
  return `${head}\n${memory}\n${task}\n${tail}`;
73
75
  }
76
+ /** Recover the ORIGINAL TASK text from a prior compaction reminder (the task message itself is gone after the first compaction). */
77
+ export function extractTaskFromReminder(reminderText) {
78
+ const m = reminderText.match(/ORIGINAL TASK \(verbatim[^\n]*\):\n([\s\S]*?)\n(?:REBUILD PROTOCOL|Continue from the CURRENT state)/);
79
+ return m && m[1] ? m[1].trim() : '';
80
+ }
81
+ /**
82
+ * The task, from the first plain user message if it still exists, else from the newest compaction reminder in the history,
83
+ * else the pinned copy the orchestrator kept from an earlier compaction.
84
+ */
85
+ export function resolveTaskText(messages, pinned, maxChars = 6000) {
86
+ const direct = extractFirstUserText(messages, maxChars);
87
+ if (direct)
88
+ return direct;
89
+ for (let i = (messages ?? []).length - 1; i >= 0; i--) {
90
+ const m = messages[i];
91
+ if (isCompactionResumeMessage(m)) {
92
+ const t = extractTaskFromReminder(textOf(m));
93
+ if (t)
94
+ return t;
95
+ }
96
+ }
97
+ return pinned || '';
98
+ }
99
+ /** Resume-memory size: ~10% of the compaction threshold, clamped to [1500, 6000] tokens (a forced 14K test window gets ~1.5K). */
100
+ export function resumeMemoryTargetTokens(threshold) {
101
+ if (!(threshold > 0))
102
+ return 6000;
103
+ return Math.max(1500, Math.min(6000, Math.floor(threshold * 0.1)));
104
+ }
105
+ /**
106
+ * v3 (4.108.3, from the live proof): a checkpoint may be REUSED at compaction only if it already covered every message being
107
+ * dropped. The v2 rule compared token distance, which goes negative once a compaction shrinks the history — so one stale checkpoint
108
+ * was replayed into every later reminder and the model's progress after it was erased each time (27 compactions, 0 fresh memories).
109
+ */
110
+ export function coversAll(covered, dropped) {
111
+ if (!covered)
112
+ return false;
113
+ return (dropped ?? []).every((m) => !!m && typeof m === 'object' && covered.has(m));
114
+ }
115
+ /**
116
+ * v3: when the checkpoint is stale, the new summary must ROLL the prior memory forward — the helper sees the prior memory as the
117
+ * first message, then the newly dropped messages, and writes one memory covering both (otherwise each compaction forgets the last).
118
+ */
119
+ export function buildRollingSeedMessage(priorText) {
120
+ const text = 'PRIOR RESUME MEMORY (already summarizes everything before the messages that follow — carry every DONE / OUTSTANDING / DECISION ' +
121
+ 'item forward unless the messages below supersede it):\n' + String(priorText ?? '').trim();
122
+ return {
123
+ uuid: `resume-seed-${Date.now().toString(36)}`,
124
+ timestamp: new Date().toISOString(),
125
+ type: 'user',
126
+ message: { role: 'user', content: [{ type: 'text', text }] },
127
+ };
128
+ }
74
129
  //# sourceMappingURL=compactionResume.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compactionResume.js","sourceRoot":"","sources":["../../src/orchestrator/compactionResume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compactionResume.js","sourceRoot":"","sources":["../../src/orchestrator/compactionResume.ts"],"names":[],"mappings":"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"}
@@ -19,4 +19,10 @@ export declare function buildRebuildInstructions(): string;
19
19
  export declare function resolveCheckpointBand(currentTokens: number, threshold: number, env?: NodeJS.ProcessEnv): number;
20
20
  /** Fill the prompt template. */
21
21
  export declare function renderResumeMemoryPrompt(conversationText: string, targetTokens: number): string;
22
+ /**
23
+ * v3 (4.108.3): the band to re-arm the rung at AFTER a compaction. The memory is fresh at that moment, so later cycles need only
24
+ * the LAST rung before the threshold (one whole-conversation helper call per cycle, not one per band — each call summarizes the
25
+ * whole history, which at a 747K threshold is a ~$0.1 helper call). Returns max(band at the post-compaction level, lastBand − 1).
26
+ */
27
+ export declare function resolveRearmBand(tokensAfter: number, threshold: number, env?: NodeJS.ProcessEnv): number;
22
28
  //# sourceMappingURL=compactionResumeTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compactionResumeTemplate.d.ts","sourceRoot":"","sources":["../../src/orchestrator/compactionResumeTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oHAAoH;AACpH,eAAO,MAAM,oBAAoB,4gEAkCyB,CAAC;AAE3D,iEAAiE;AACjE,wBAAgB,wBAAwB,IAAI,MAAM,CASjD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAOR;AAQD,gCAAgC;AAChC,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/F"}
1
+ {"version":3,"file":"compactionResumeTemplate.d.ts","sourceRoot":"","sources":["../../src/orchestrator/compactionResumeTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oHAAoH;AACpH,eAAO,MAAM,oBAAoB,4gEAkCyB,CAAC;AAE3D,iEAAiE;AACjE,wBAAgB,wBAAwB,IAAI,MAAM,CASjD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAOR;AAQD,gCAAgC;AAChC,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAIR"}
@@ -77,4 +77,15 @@ function clampPct(raw, dflt, lo = 0.3, hi = 0.99) {
77
77
  export function renderResumeMemoryPrompt(conversationText, targetTokens) {
78
78
  return RESUME_MEMORY_PROMPT.replace('{{TARGET_TOKENS}}', String(targetTokens)).replace('{{CONVERSATION}}', conversationText);
79
79
  }
80
+ /**
81
+ * v3 (4.108.3): the band to re-arm the rung at AFTER a compaction. The memory is fresh at that moment, so later cycles need only
82
+ * the LAST rung before the threshold (one whole-conversation helper call per cycle, not one per band — each call summarizes the
83
+ * whole history, which at a 747K threshold is a ~$0.1 helper call). Returns max(band at the post-compaction level, lastBand − 1).
84
+ */
85
+ export function resolveRearmBand(tokensAfter, threshold, env = process.env) {
86
+ if (!(threshold > 0))
87
+ return 0;
88
+ const lastBand = resolveCheckpointBand(threshold * 0.999999, threshold, env);
89
+ return Math.max(resolveCheckpointBand(tokensAfter, threshold, env), Math.max(0, lastBand - 1));
90
+ }
80
91
  //# sourceMappingURL=compactionResumeTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compactionResumeTemplate.js","sourceRoot":"","sources":["../../src/orchestrator/compactionResumeTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oHAAoH;AACpH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DAkCsB,CAAC;AAE3D,iEAAiE;AACjE,MAAM,UAAU,wBAAwB;IACtC,OAAO,CACL,wDAAwD;QACxD,4DAA4D;QAC5D,iKAAiK;QACjK,iGAAiG;QACjG,4BAA4B;QAC5B,yHAAyH,CAC1H,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAqB,EACrB,SAAiB,EACjB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,iCAAiC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,aAAa,GAAG,SAAS,CAAC;IACxC,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,0CAA0C;AAChG,CAAC;AAED,SAAS,QAAQ,CAAC,GAAuB,EAAE,IAAY,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI;IAC1E,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,wBAAwB,CAAC,gBAAwB,EAAE,YAAoB;IACrF,OAAO,oBAAoB,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;AAC/H,CAAC"}
1
+ {"version":3,"file":"compactionResumeTemplate.js","sourceRoot":"","sources":["../../src/orchestrator/compactionResumeTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oHAAoH;AACpH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DAkCsB,CAAC;AAE3D,iEAAiE;AACjE,MAAM,UAAU,wBAAwB;IACtC,OAAO,CACL,wDAAwD;QACxD,4DAA4D;QAC5D,iKAAiK;QACjK,iGAAiG;QACjG,4BAA4B;QAC5B,yHAAyH,CAC1H,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAqB,EACrB,SAAiB,EACjB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,iCAAiC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,aAAa,GAAG,SAAS,CAAC;IACxC,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,0CAA0C;AAChG,CAAC;AAED,SAAS,QAAQ,CAAC,GAAuB,EAAE,IAAY,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI;IAC1E,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,wBAAwB,CAAC,gBAAwB,EAAE,YAAoB;IACrF,OAAO,oBAAoB,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;AAC/H,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,SAAiB,EACjB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AACjG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cortex/core",
3
- "version": "4.108.2",
3
+ "version": "4.108.3",
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.2",
51
- "@nexus-cortex/types": "4.108.2",
50
+ "@nexus-cortex/executors": "4.108.3",
51
+ "@nexus-cortex/types": "4.108.3",
52
52
  "@types/uuid": "^10.0.0",
53
53
  "ajv": "^8.12.0",
54
54
  "chokidar": "^3.6.0",