maestro-agent-sdk 0.1.26 → 0.1.28

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 (65) hide show
  1. package/README.md +20 -0
  2. package/dist/core/agent.d.ts +28 -0
  3. package/dist/core/agent.d.ts.map +1 -1
  4. package/dist/core/agent.js +2 -0
  5. package/dist/core/agent.js.map +1 -1
  6. package/dist/core/is-abort-error.d.ts +18 -0
  7. package/dist/core/is-abort-error.d.ts.map +1 -1
  8. package/dist/core/is-abort-error.js +34 -0
  9. package/dist/core/is-abort-error.js.map +1 -1
  10. package/dist/core/loop.d.ts.map +1 -1
  11. package/dist/core/loop.js +69 -14
  12. package/dist/core/loop.js.map +1 -1
  13. package/dist/core/tool-result-truncation.d.ts +34 -0
  14. package/dist/core/tool-result-truncation.d.ts.map +1 -0
  15. package/dist/core/tool-result-truncation.js +162 -0
  16. package/dist/core/tool-result-truncation.js.map +1 -0
  17. package/dist/index.d.ts +7 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +7 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/memory/active-task-template.d.ts +7 -4
  22. package/dist/memory/active-task-template.d.ts.map +1 -1
  23. package/dist/memory/active-task-template.js +19 -4
  24. package/dist/memory/active-task-template.js.map +1 -1
  25. package/dist/memory/aux-model-map.d.ts +49 -0
  26. package/dist/memory/aux-model-map.d.ts.map +1 -0
  27. package/dist/memory/aux-model-map.js +103 -0
  28. package/dist/memory/aux-model-map.js.map +1 -0
  29. package/dist/memory/compressor.d.ts +34 -59
  30. package/dist/memory/compressor.d.ts.map +1 -1
  31. package/dist/memory/compressor.js +222 -89
  32. package/dist/memory/compressor.js.map +1 -1
  33. package/dist/platform/config.d.ts +5 -0
  34. package/dist/platform/config.d.ts.map +1 -1
  35. package/dist/platform/config.js +9 -0
  36. package/dist/platform/config.js.map +1 -1
  37. package/dist/platform/version.d.ts +1 -1
  38. package/dist/platform/version.js +1 -1
  39. package/dist/provider.d.ts +18 -6
  40. package/dist/provider.d.ts.map +1 -1
  41. package/dist/provider.js +71 -8
  42. package/dist/provider.js.map +1 -1
  43. package/dist/providers/codex-auth.d.ts +149 -0
  44. package/dist/providers/codex-auth.d.ts.map +1 -0
  45. package/dist/providers/codex-auth.js +332 -0
  46. package/dist/providers/codex-auth.js.map +1 -0
  47. package/dist/providers/codex-stream.d.ts +42 -0
  48. package/dist/providers/codex-stream.d.ts.map +1 -0
  49. package/dist/providers/codex-stream.js +330 -0
  50. package/dist/providers/codex-stream.js.map +1 -0
  51. package/dist/providers/codex-translators.d.ts +105 -0
  52. package/dist/providers/codex-translators.d.ts.map +1 -0
  53. package/dist/providers/codex-translators.js +244 -0
  54. package/dist/providers/codex-translators.js.map +1 -0
  55. package/dist/providers/codex.d.ts +145 -0
  56. package/dist/providers/codex.d.ts.map +1 -0
  57. package/dist/providers/codex.js +417 -0
  58. package/dist/providers/codex.js.map +1 -0
  59. package/dist/registry.d.ts.map +1 -1
  60. package/dist/registry.js +25 -1
  61. package/dist/registry.js.map +1 -1
  62. package/dist/types.d.ts +24 -0
  63. package/dist/types.d.ts.map +1 -1
  64. package/dist/types.js.map +1 -1
  65. package/package.json +17 -1
@@ -3,12 +3,28 @@ import { pruneMessages } from "../memory/prune.js";
3
3
  import { estimateTokens } from "../memory/token-estimate.js";
4
4
  import { logger } from "../platform/logger.js";
5
5
  const compactorAntiThrash = new WeakMap();
6
- /** A compaction that doesn't save at least this fraction of tokens is
7
- * considered ineffective and counts toward backoff. */
8
6
  const COMPACTOR_MIN_SAVINGS_RATIO = 0.1;
9
- /** Two consecutive ineffective calls on the same array → bail out and just
10
- * prune. */
11
7
  const COMPACTOR_ANTI_THRASH_LIMIT = 2;
8
+ /** Sentinel user message that marks a compaction block pair.
9
+ * Uses NUL-bytes to make accidental user-content collision extremely unlikely. */
10
+ const COMPACTION_MARKER = "\x00maestro-compaction\x00";
11
+ /** Incremental summary update prompt. Restates the schema contract
12
+ * (same sections as ACTIVE_TASK_TEMPLATE) so aux output never drifts. */
13
+ function incrementalPrompt(previousSummary) {
14
+ return [
15
+ ACTIVE_TASK_TEMPLATE,
16
+ "",
17
+ "---",
18
+ "The conversation above has been partially summarized before.",
19
+ "Update the previous summary below by preserving still-true details,",
20
+ "removing stale details, and merging in new facts from the recent",
21
+ "conversation history above.",
22
+ "",
23
+ "<previous-summary>",
24
+ previousSummary,
25
+ "</previous-summary>",
26
+ ].join("\n");
27
+ }
12
28
  function defaultContextWindow() {
13
29
  const env = process.env.MAESTRO_CONTEXT_WINDOW;
14
30
  if (env) {
@@ -18,109 +34,164 @@ function defaultContextWindow() {
18
34
  }
19
35
  return 200_000;
20
36
  }
37
+ function extractText(blocks) {
38
+ if (typeof blocks === "string")
39
+ return blocks;
40
+ if (Array.isArray(blocks)) {
41
+ return blocks
42
+ .filter((b) => b.type === "text")
43
+ .map((b) => b.text ?? "")
44
+ .join("\n");
45
+ }
46
+ return "";
47
+ }
48
+ /**
49
+ * Returns true when a ProviderMessage's blocks contain at least one
50
+ * tool_result. Used by snap-helper to avoid cutting the wire at a
51
+ * tool_result user message that would orphan the preceding tool_use.
52
+ */
53
+ function hasToolResultBlocks(msg) {
54
+ const content = msg.content;
55
+ if (typeof content === "string")
56
+ return false;
57
+ if (!Array.isArray(content))
58
+ return false;
59
+ return content.some((b) => b.type === "tool_result");
60
+ }
61
+ /**
62
+ * Find the most recent compaction block pair in messages.
63
+ * Returns indices and the summary text, or undefined.
64
+ */
65
+ function findLastCompaction(messages) {
66
+ for (let i = messages.length - 1; i >= 1; i--) {
67
+ const assistant = messages[i];
68
+ const user = messages[i - 1];
69
+ if (user.role === "user" &&
70
+ typeof user.content === "string" &&
71
+ user.content === COMPACTION_MARKER &&
72
+ assistant.role === "assistant" &&
73
+ typeof assistant.content === "string" &&
74
+ assistant.content.length > 0) {
75
+ return { userIdx: i - 1, assistantIdx: i, summary: assistant.content };
76
+ }
77
+ }
78
+ return undefined;
79
+ }
80
+ /**
81
+ * Collect indices of all compaction block pairs in messages.
82
+ */
83
+ function compactionBlockIndices(messages) {
84
+ const indices = new Set();
85
+ for (let i = 0; i < messages.length - 1; i++) {
86
+ const user = messages[i];
87
+ const next = messages[i + 1];
88
+ if (user.role === "user" &&
89
+ typeof user.content === "string" &&
90
+ user.content === COMPACTION_MARKER &&
91
+ next.role === "assistant") {
92
+ indices.add(i);
93
+ indices.add(i + 1);
94
+ }
95
+ }
96
+ return indices;
97
+ }
98
+ // ─── public API ───────────────────────────────────────────────────────────
21
99
  /**
22
100
  * Run the auto-compaction pipeline.
23
101
  *
24
102
  * Steps:
25
- * 1. Apply `pruneMessages` first pass 1+2 are cheap and frequently
26
- * bring the wire size below the trigger ratio on their own.
27
- * 2. Re-estimate tokens. If below threshold, return the pruned array.
28
- * 3. Otherwise slice head + tail and dispatch the aux LLM to summarize
29
- * the middle. Reconstruct as [head, summary user message, tail].
30
- * 4. Anti-thrash: if two consecutive compactions on this array saved
31
- * <10%, drop back to prune-only and stop calling the aux LLM until
32
- * the caller hands us a different array reference.
103
+ * 1. Prune (cheap: dedup, age-summary, truncate tool output).
104
+ * 2. Re-estimate tokens. If below threshold, return pruned.
105
+ * 3. Snap head/tail boundaries. If no middle, return pruned.
106
+ * 4. Find previous compaction blocks extract last summary for
107
+ * incremental aux-LLM prompt.
108
+ * 5. Call aux LLM to summarize the middle. When a previous summary
109
+ * exists, only the *delta* after the last compaction
110
+ * (messages[assistantIdx+1 .. tailStart]) is sent to the aux LLM.
111
+ * 6. After the degenerate-savings guard, persist compaction user +
112
+ * summary assistant pair in the canonical `messages` array.
113
+ * 7. Return wire array: [head, wrapped-summary, tail].
33
114
  *
34
- * Returns a new array caller is responsible for using the returned slice
35
- * on the wire and keeping the unmodified canonical history for persistence.
115
+ * All wire head/tail boundaries are built from a compaction-stripped
116
+ * view of messages so the wire never leaks internal sentinels.
36
117
  */
37
118
  export async function compressIfNeeded(messages, opts = {}) {
38
119
  const contextWindow = opts.contextWindow ?? defaultContextWindow();
39
- const triggerRatio = opts.triggerRatio ?? 0.8;
120
+ const triggerRatio = opts.triggerRatio ?? 0.6;
40
121
  const headProtect = opts.headProtect ?? 2;
41
122
  const tailProtect = opts.tailProtect ?? 6;
42
123
  const auxModel = opts.auxModel;
43
- // v0.1.19+ fast-path: short conversations can never trigger compaction (we
44
- // need at least `headProtect + 1 + tailProtect` messages to even slice a
45
- // middle), AND at this size dedup/age-summary saves nothing (age threshold
46
- // is 10 user-turns). Skipping the whole prune pipeline saves ~6 O(n) walks
47
- // per turn during the first several iterations of every session — the
48
- // exact window where the loop spends most of its short-conversation life.
49
- // Trade-off: we forgo the cheap "string-content gets deduped immediately"
50
- // win on duplicate tool results in the first few turns, but the model
51
- // rarely re-issues an identical tool call inside a 9-message window.
124
+ // Fast-path: short conversations can't trigger compaction.
52
125
  const minSize = headProtect + 1 + tailProtect;
53
126
  if (messages.length < minSize) {
54
127
  return messages;
55
128
  }
56
- // v0.1.19+ cheap pre-gate: estimate raw tokens BEFORE running prune. If
57
- // we're well under the trigger (≤ 50% of threshold) the conversation has
58
- // nowhere near enough payload to need compaction, and prune's three passes
59
- // wouldn't do anything an anti-thrash latch wouldn't catch on iteration 2.
60
- // We skip prune entirely and return the input — same as the anti-thrash
61
- // short-circuit, just gated on actual size rather than past behavior.
62
- //
63
- // 0.5 ratio picked empirically: at 200K window × 0.8 trigger × 0.5 gate =
64
- // 80K tokens, which lands between "still actively gathering context" and
65
- // "approaching compaction zone". Above the gate we run the full pipeline
66
- // so an anti-thrash latch from earlier doesn't strand the loop without
67
- // any pruning when the conversation actually grows large.
129
+ // Cheap pre-gate: skip prune when well under threshold.
68
130
  const threshold = contextWindow * triggerRatio;
69
131
  const rawTokens = estimateTokens(messages);
70
132
  if (rawTokens < threshold * 0.5) {
71
133
  return messages;
72
134
  }
73
- // Step 1: prune first. Cheap and often enough.
135
+ // Step 1: prune.
74
136
  const pruned = pruneMessages(messages);
75
137
  const prunedTokens = estimateTokens(pruned);
76
138
  if (prunedTokens < threshold) {
77
139
  return pruned;
78
140
  }
79
- // Anti-thrash check — bail if we already tried twice and it didn't help.
141
+ // Anti-thrash check.
80
142
  const state = compactorAntiThrash.get(messages);
81
143
  if (state && state.failedCompactions >= COMPACTOR_ANTI_THRASH_LIMIT) {
82
144
  return pruned;
83
145
  }
84
- // (Step 2 short-conversation guard moved to the fast-path at the top of
85
- // this function — pruneMessages preserves array length, so checking
86
- // `messages.length < minSize` up there is equivalent and lets us skip
87
- // the whole prune pipeline when the conversation is too small to ever
88
- // need compaction.)
89
- // Snap head/tail boundaries to safe split points. Anthropic rejects a
90
- // request whose first message after the head isn't a user turn, and
91
- // requires every tool_use to be answered by a tool_result on the next
92
- // user turn. We never split a user→assistant or assistant→user(tool_result)
93
- // pairing.
94
- const headEnd = snapHeadEnd(pruned, headProtect);
95
- const tailStart = snapTailStart(pruned, pruned.length - tailProtect);
96
- if (tailStart <= headEnd) {
97
- // Snapping collapsed the middle — nothing left to compress.
146
+ // Step 4: find previous compaction for incremental prompt.
147
+ const prevCompaction = findLastCompaction(messages);
148
+ const previousSummary = prevCompaction?.summary;
149
+ // Build a compaction-free view of canonical messages for all wire
150
+ // boundary calculations (FIX #1: head/tail must never contain
151
+ // sentinel markers).
152
+ const skipIndices = compactionBlockIndices(messages);
153
+ const cleanMessages = messages.filter((_, i) => !skipIndices.has(i));
154
+ // Snap wire boundaries on the clean view.
155
+ const cleanHeadEnd = snapHeadEnd(cleanMessages, Math.min(headProtect, cleanMessages.length));
156
+ const cleanTailStart = snapTailStart(cleanMessages, Math.max(cleanMessages.length - tailProtect, 0));
157
+ if (cleanTailStart <= cleanHeadEnd) {
98
158
  return pruned;
99
159
  }
100
- const head = pruned.slice(0, headEnd);
101
- const middle = pruned.slice(headEnd, tailStart);
102
- const tail = pruned.slice(tailStart);
103
- // Step 3: aux LLM call.
160
+ // Build middle for aux LLM.
161
+ // FIX #2: when a previous summary exists, limit the aux input to
162
+ // the *delta* after the last compaction (messages *including* the
163
+ // sentinel pair are canonical; the delta starts right after the
164
+ // summary assistant). Otherwise use the full clean middle.
165
+ let auxMiddle;
166
+ if (prevCompaction) {
167
+ // Delta: everything after the summary assistant up to (but not including) the tail.
168
+ const deltaStart = prevCompaction.assistantIdx + 1;
169
+ const deltaEnd = messages.length - tailProtect;
170
+ auxMiddle = messages.slice(deltaStart, Math.max(deltaStart, deltaEnd));
171
+ }
172
+ else {
173
+ auxMiddle = cleanMessages.slice(cleanHeadEnd, cleanTailStart);
174
+ }
175
+ // Step 5: aux LLM call.
104
176
  if (!opts.auxProvider) {
105
- // No provider supplied AND no factory available in production callers
106
- // (the agent loop passes its own provider). Without one we can't
107
- // summarize — drop to pruned and log so the operator sees why.
108
- logger.warn({ prunedTokens, threshold }, "compressIfNeeded: over threshold but no auxProvider supplied — falling back to prune-only");
177
+ logger.warn({ prunedTokens, threshold }, "compressIfNeeded: no auxProvider prune-only");
109
178
  return pruned;
110
179
  }
111
180
  if (!auxModel) {
112
- // No model id supplied. The agent loop wires `auxModel: agent.config.model`
113
- // by default, so this branch only fires if a host calls compressIfNeeded
114
- // directly without one. Same fallback as missing provider.
115
- logger.warn({ prunedTokens, threshold }, "compressIfNeeded: over threshold but no auxModel supplied — falling back to prune-only");
181
+ logger.warn({ prunedTokens, threshold }, "compressIfNeeded: no auxModel prune-only");
116
182
  return pruned;
117
183
  }
184
+ // FIX #4: incremental prompt now includes the full ACTIVE_TASK_TEMPLATE
185
+ // so the schema contract is restated every time.
186
+ const systemPrompt = previousSummary
187
+ ? incrementalPrompt(previousSummary)
188
+ : ACTIVE_TASK_TEMPLATE;
118
189
  let summaryText;
119
190
  try {
120
191
  const auxResponse = await opts.auxProvider.complete({
121
192
  model: auxModel,
122
- messages: middle,
123
- system: ACTIVE_TASK_TEMPLATE,
193
+ messages: auxMiddle,
194
+ system: systemPrompt,
124
195
  maxTokens: 2048,
125
196
  ...(opts.abortSignal ? { abortSignal: opts.abortSignal } : {}),
126
197
  });
@@ -130,67 +201,129 @@ export async function compressIfNeeded(messages, opts = {}) {
130
201
  }
131
202
  }
132
203
  catch (err) {
133
- logger.warn({ err, prunedTokens, threshold }, "compressIfNeeded: aux LLM call failed — returning prune-only fallback");
204
+ logger.warn({ err, prunedTokens, threshold }, "compressIfNeeded: aux LLM failed");
134
205
  if (opts.disablePruneFallback)
135
206
  return messages;
136
- return pruned;
207
+ const target = opts.emergencyTargetTokens;
208
+ const effectiveTarget = target !== undefined && Number.isFinite(target) && target > 0 ? target : 50_000;
209
+ if (target === 0)
210
+ return pruned;
211
+ const notice = "[메모리 압축 실패로 이전 대화 일부가 잘렸습니다. 최근 대화만 모델에 전달됨.]";
212
+ if (opts.onEmergencyTrim) {
213
+ try {
214
+ opts.onEmergencyTrim(notice);
215
+ }
216
+ catch (cbErr) {
217
+ logger.warn({ err: cbErr }, "onEmergencyTrim threw — swallowed");
218
+ }
219
+ }
220
+ return emergencyTail(pruned, effectiveTarget, notice);
137
221
  }
222
+ // Build wire from clean messages (FIX #1).
223
+ const head = cleanMessages.slice(0, cleanHeadEnd);
224
+ const tail = cleanMessages.slice(cleanTailStart);
138
225
  const compacted = [
139
226
  ...head,
140
227
  { role: "user", content: wrapCompactedSummary(summaryText) },
141
228
  ...tail,
142
229
  ];
143
230
  const compactedTokens = estimateTokens(compacted);
144
- // Degenerate aux output: compaction made things bigger or barely smaller.
145
- // Discard and fall back to prune-only.
231
+ // Degenerate check MUST run before persisting compaction blocks (FIX #3).
146
232
  const savings = prunedTokens - compactedTokens;
147
233
  const ratio = savings / prunedTokens;
148
234
  if (ratio < COMPACTOR_MIN_SAVINGS_RATIO) {
149
235
  const next = state ?? { failedCompactions: 0 };
150
236
  next.failedCompactions++;
151
237
  compactorAntiThrash.set(messages, next);
152
- logger.info({ prunedTokens, compactedTokens, ratio, failedCompactions: next.failedCompactions }, "compressIfNeeded: low-savings compaction discarded — anti-thrash counter incremented");
238
+ logger.info({
239
+ prunedTokens,
240
+ compactedTokens,
241
+ ratio,
242
+ failedCompactions: next.failedCompactions,
243
+ }, "compressIfNeeded: low savings — anti-thrash incremented");
153
244
  return pruned;
154
245
  }
155
- // Successful compaction resets the anti-thrash counter.
246
+ // Step 6: persist compaction blocks AFTER savings gate (FIX #3).
247
+ if (prevCompaction) {
248
+ messages[prevCompaction.userIdx] = { role: "user", content: COMPACTION_MARKER };
249
+ messages[prevCompaction.assistantIdx] = { role: "assistant", content: summaryText };
250
+ }
251
+ else {
252
+ messages.push({ role: "user", content: COMPACTION_MARKER });
253
+ messages.push({ role: "assistant", content: summaryText });
254
+ }
156
255
  if (state)
157
256
  compactorAntiThrash.delete(messages);
158
- logger.info({ prunedTokens, compactedTokens, ratio, headProtect, tailProtect, middleSize: middle.length }, "compressIfNeeded: applied aux-LLM compaction");
257
+ logger.info({
258
+ prunedTokens,
259
+ compactedTokens,
260
+ ratio,
261
+ incremental: !!previousSummary,
262
+ auxMiddleSize: auxMiddle.length,
263
+ }, "compressIfNeeded: applied compaction");
159
264
  return compacted;
160
265
  }
266
+ // ─── helpers ──────────────────────────────────────────────────────────────
161
267
  /**
162
- * Walk forward from `idealEnd` to land on the first boundary where the next
163
- * message is `role:"user"` (so the post-head slice starts cleanly with a
164
- * user turn Anthropic's pairing rules require it). Caps at `idealEnd + 4`
165
- * so a pathological "all assistant" run can't push the head past the tail.
268
+ * Walk forward from `idealEnd` to land on a user message boundary.
269
+ * Skips user messages that are tool_result carriers (to avoid
270
+ * orphaning a preceding tool_use).
166
271
  */
167
272
  function snapHeadEnd(messages, idealEnd) {
168
273
  const cap = Math.min(messages.length, idealEnd + 4);
169
274
  let i = Math.min(idealEnd, messages.length);
170
- while (i < cap && messages[i] && messages[i].role !== "user")
275
+ while (i < cap && messages[i] && (messages[i].role !== "user" || hasToolResultBlocks(messages[i]))) {
171
276
  i++;
277
+ }
172
278
  return i;
173
279
  }
174
280
  /**
175
- * Walk backward from `idealStart` until we land on a user turn — so the
176
- * tail slice begins with a user turn (mirror of `snapHeadEnd`). Caps at
177
- * `idealStart - 4` so the tail never grows unboundedly.
281
+ * Walk backward from `idealStart` until we land on a user message boundary.
282
+ * Skips user messages that are tool_result carriers (FIX #6).
178
283
  */
179
284
  function snapTailStart(messages, idealStart) {
180
285
  const floor = Math.max(0, idealStart - 4);
181
286
  let i = Math.max(idealStart, 0);
182
- while (i > floor && messages[i] && messages[i].role !== "user")
287
+ while (i > floor &&
288
+ messages[i] &&
289
+ (messages[i].role !== "user" || hasToolResultBlocks(messages[i]))) {
183
290
  i--;
291
+ }
184
292
  return i;
185
293
  }
186
- /** Pull the concatenated text out of an aux LLM ProviderResponse. */
187
- function extractText(blocks) {
188
- return blocks
189
- .filter((b) => b.type === "text")
190
- .map((b) => b.text)
191
- .join("\n");
294
+ /**
295
+ * Emergency tail-only trim — FIX #5: does NOT over-trim when the whole
296
+ * history fits inside targetTokens.
297
+ */
298
+ function emergencyTail(messages, targetTokens, notice) {
299
+ if (messages.length === 0)
300
+ return messages;
301
+ let acc = 0;
302
+ let cut = messages.length; // marker: threshold never reached
303
+ let reachedThreshold = false;
304
+ for (let i = messages.length - 1; i >= 0; i--) {
305
+ acc += estimateTokens([messages[i]]);
306
+ if (acc >= targetTokens) {
307
+ cut = i;
308
+ reachedThreshold = true;
309
+ break;
310
+ }
311
+ }
312
+ // FIX #5: if history fits entirely within target, return full history.
313
+ if (!reachedThreshold) {
314
+ return [{ role: "user", content: `<emergency-truncation>\n${notice}\n</emergency-truncation>` }, ...messages];
315
+ }
316
+ // Snap cut to a safe user message boundary.
317
+ while (cut < messages.length && messages[cut]?.role !== "user")
318
+ cut++;
319
+ if (cut >= messages.length)
320
+ cut = messages.length - 1;
321
+ while (cut > 0 && messages[cut]?.role !== "user")
322
+ cut--;
323
+ const tail = messages.slice(cut);
324
+ return [{ role: "user", content: `<emergency-truncation>\n${notice}\n</emergency-truncation>` }, ...tail];
192
325
  }
193
- // Test-only: reset the WeakMap state for deterministic single-test runs.
326
+ /** Test-only: reset the compactor anti-thrash WeakMap entry for an array. */
194
327
  export function __resetCompactorState(messages) {
195
328
  compactorAntiThrash.delete(messages);
196
329
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compressor.js","sourceRoot":"","sources":["../../src/memory/compressor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compressor.js","sourceRoot":"","sources":["../../src/memory/compressor.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,11 @@ export declare const MODEL_SONNET: string;
3
3
  export declare const MODEL_OPUS: string;
4
4
  export declare const MODEL_DEEPSEEK_V4_PRO: string;
5
5
  export declare const MODEL_DEEPSEEK_V4_FLASH: string;
6
+ export declare const MODEL_CODEX_GPT5_5: string;
7
+ export declare const MODEL_CODEX_GPT5_4: string;
8
+ export declare const MODEL_CODEX_GPT5_4_MINI: string;
9
+ export declare const MODEL_CODEX_GPT5_3_CODEX: string;
10
+ export declare const MODEL_CODEX_GPT5_2: string;
6
11
  export declare const FILE_TAG_REGEX: RegExp;
7
12
  /** Returns `process.env` without `CLAUDECODE` so spawned subprocesses don't
8
13
  * inherit a nested-claude-code detection flag from a parent harness. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,QAAQ,EAAE,MAEM,CAAC;AAK9B,eAAO,MAAM,YAAY,EAAE,MAA4B,CAAC;AACxD,eAAO,MAAM,UAAU,EAAE,MAA0B,CAAC;AAGpD,eAAO,MAAM,qBAAqB,EAAE,MAA0B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,EAAE,MAA4B,CAAC;AAEnE,eAAO,MAAM,cAAc,EAAE,MAAgC,CAAC;AAW9D;yEACyE;AACzE,wBAAgB,WAAW,IAAI,MAAM,CAAC,UAAU,CAI/C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,QAAQ,EAAE,MAEM,CAAC;AAK9B,eAAO,MAAM,YAAY,EAAE,MAA4B,CAAC;AACxD,eAAO,MAAM,UAAU,EAAE,MAA0B,CAAC;AAGpD,eAAO,MAAM,qBAAqB,EAAE,MAA0B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,EAAE,MAA4B,CAAC;AAMnE,eAAO,MAAM,kBAAkB,EAAE,MAAkB,CAAC;AACpD,eAAO,MAAM,kBAAkB,EAAE,MAAkB,CAAC;AACpD,eAAO,MAAM,uBAAuB,EAAE,MAAuB,CAAC;AAC9D,eAAO,MAAM,wBAAwB,EAAE,MAAwB,CAAC;AAChE,eAAO,MAAM,kBAAkB,EAAE,MAAkB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,MAAgC,CAAC;AAW9D;yEACyE;AACzE,wBAAgB,WAAW,IAAI,MAAM,CAAC,UAAU,CAI/C"}
@@ -30,6 +30,15 @@ export const MODEL_OPUS = "claude-opus-4-7";
30
30
  // DeepSeek V4 (released 2026-04-24). OpenAI-compatible chat-completions API.
31
31
  export const MODEL_DEEPSEEK_V4_PRO = "deepseek-v4-pro";
32
32
  export const MODEL_DEEPSEEK_V4_FLASH = "deepseek-v4-flash";
33
+ // Codex Responses API (ChatGPT-backed OAuth). The endpoint only accepts a
34
+ // codex-issued whitelist of model slugs — these are the ones surfaced by the
35
+ // `/codex/models` endpoint as of 2026-05-23. Adding a new one: list it here
36
+ // AND in `MODEL_MAX_OUTPUT_TOKENS` / `ALIAS_MAP` if it deserves a short alias.
37
+ export const MODEL_CODEX_GPT5_5 = "gpt-5.5";
38
+ export const MODEL_CODEX_GPT5_4 = "gpt-5.4";
39
+ export const MODEL_CODEX_GPT5_4_MINI = "gpt-5.4-mini";
40
+ export const MODEL_CODEX_GPT5_3_CODEX = "gpt-5.3-codex";
41
+ export const MODEL_CODEX_GPT5_2 = "gpt-5.2";
33
42
  export const FILE_TAG_REGEX = /\[FILE:(\/[^\]]+)\]/gi;
34
43
  // Make sure DATA_DIR exists before any tool/skill code tries to readdir into
35
44
  // it. Idempotent and best-effort — hosts that point this at a read-only
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;GAWG;AAEH,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AAEvB,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,uEAAuE;AACvE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAW,OAAO,CAAC,GAAG,CAAC,gBAAgB;IAC1D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACvC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAE9B,2EAA2E;AAC3E,0EAA0E;AAC1E,4BAA4B;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAW,mBAAmB,CAAC;AACxD,MAAM,CAAC,MAAM,UAAU,GAAW,iBAAiB,CAAC;AAEpD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAW,iBAAiB,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAW,mBAAmB,CAAC;AAEnE,MAAM,CAAC,MAAM,cAAc,GAAW,uBAAuB,CAAC;AAE9D,6EAA6E;AAC7E,wEAAwE;AACxE,wDAAwD;AACxD,IAAI,CAAC;IACH,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAAC,MAAM,CAAC;IACP,yDAAyD;AAC3D,CAAC;AAED;yEACyE;AACzE,MAAM,UAAU,WAAW;IACzB,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,UAAU,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;GAWG;AAEH,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AAEvB,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,uEAAuE;AACvE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAW,OAAO,CAAC,GAAG,CAAC,gBAAgB;IAC1D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACvC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAE9B,2EAA2E;AAC3E,0EAA0E;AAC1E,4BAA4B;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAW,mBAAmB,CAAC;AACxD,MAAM,CAAC,MAAM,UAAU,GAAW,iBAAiB,CAAC;AAEpD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAW,iBAAiB,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAW,mBAAmB,CAAC;AAEnE,0EAA0E;AAC1E,6EAA6E;AAC7E,4EAA4E;AAC5E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAW,SAAS,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAW,SAAS,CAAC;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAW,cAAc,CAAC;AAC9D,MAAM,CAAC,MAAM,wBAAwB,GAAW,eAAe,CAAC;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAW,SAAS,CAAC;AAEpD,MAAM,CAAC,MAAM,cAAc,GAAW,uBAAuB,CAAC;AAE9D,6EAA6E;AAC7E,wEAAwE;AACxE,wDAAwD;AACxD,IAAI,CAAC;IACH,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAAC,MAAM,CAAC;IACP,yDAAyD;AAC3D,CAAC;AAED;yEACyE;AACzE,MAAM,UAAU,WAAW;IACzB,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,UAAU,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -9,5 +9,5 @@
9
9
  *
10
10
  * Bump in lock-step with `package.json#version` on every release.
11
11
  */
12
- export declare const MAESTRO_SDK_VERSION: "0.1.24";
12
+ export declare const MAESTRO_SDK_VERSION: "0.1.27";
13
13
  //# sourceMappingURL=version.d.ts.map
@@ -9,5 +9,5 @@
9
9
  *
10
10
  * Bump in lock-step with `package.json#version` on every release.
11
11
  */
12
- export const MAESTRO_SDK_VERSION = "0.1.24";
12
+ export const MAESTRO_SDK_VERSION = "0.1.27";
13
13
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,4 @@
1
- import { isAbortError } from "./core/is-abort-error.js";
1
+ import { isAbortError, isTimeoutError } from "./core/is-abort-error.js";
2
2
  import type { Provider } from "./providers/base.js";
3
3
  import type { AgentQueryOptions, UnifiedEvent } from "./types.js";
4
4
  /**
@@ -191,10 +191,22 @@ export declare function applySkillAllowlist<T extends {
191
191
  name: string;
192
192
  }>(skills: T[], allowedSkills?: string[]): T[];
193
193
  /**
194
- * Pick the right provider adapter for a resolved model id. DeepSeek's V4
195
- * family uses `deepseek-*` ids; everything else (Anthropic claude-* + future
196
- * direct full ids) falls through to the Anthropic adapter. Exported so tests
197
- * can lock the dispatch shape independently of `maestroProvider`'s I/O.
194
+ * Pick the right provider adapter for a resolved model id.
195
+ *
196
+ * Dispatch table:
197
+ * - `gpt-5.*` / `gpt-4.*` / `o3` / `o4` CodexResponsesProvider
198
+ * (ChatGPT-OAuth-backed Responses API at
199
+ * chatgpt.com/backend-api/codex; reads ~/.codex/auth.json).
200
+ * - `deepseek-*` → DeepseekProvider
201
+ * (DEEPSEEK_API_KEY env).
202
+ * - everything else (claude-*, custom full ids)
203
+ * → AnthropicProvider
204
+ * (ANTHROPIC_API_KEY env).
205
+ *
206
+ * Exported so tests / hosts can lock the dispatch shape independently of
207
+ * `maestroProvider`'s I/O. The codex match is prefix-based so hosts can ship
208
+ * new codex slugs (gpt-5.6, future tiers) without a dispatcher change — only
209
+ * the registry alias map needs updating.
198
210
  */
199
211
  export declare function providerForModel(resolvedModel: string): Provider;
200
212
  /**
@@ -227,5 +239,5 @@ export declare function pickHigherBudget(a: number | undefined, b: number | unde
227
239
  * Exported for unit coverage — used internally by `maestroProvider`'s catch
228
240
  * branch to distinguish a user-initiated abort from a real provider crash.
229
241
  */
230
- export { isAbortError };
242
+ export { isAbortError, isTimeoutError };
231
243
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAsBrD,OAAO,KAAK,EAAE,QAAQ,EAAyC,MAAM,kBAAkB,CAAC;AAyCxF,OAAO,KAAK,EAAE,iBAAiB,EAAc,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB,QAA2B,CAAC;AAE/D,wBAAuB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,CA0jB5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAa1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/E;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAG,SAAkB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEjF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5D,MAAM,EAAE,CAAC,EAAE,EACX,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,CAAC,EAAE,CAGL;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAKhE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIjG;AAED;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsBrE,OAAO,KAAK,EAAE,QAAQ,EAAyC,MAAM,kBAAkB,CAAC;AA0CxF,OAAO,KAAK,EAAE,iBAAiB,EAAc,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB,QAA2B,CAAC;AAE/D,wBAAuB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,CAylB5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAa1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/E;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAG,SAAkB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEjF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5D,MAAM,EAAE,CAAC,EAAE,EACX,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,CAAC,EAAE,CAGL;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAQhE;AAwBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIjG;AAED;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC"}