maestro-agent-sdk 0.1.37 → 0.1.39

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 (73) hide show
  1. package/README.md +55 -62
  2. package/dist/core/loop.d.ts.map +1 -1
  3. package/dist/core/loop.js +5 -43
  4. package/dist/core/loop.js.map +1 -1
  5. package/dist/index.d.ts +1 -5
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -6
  8. package/dist/index.js.map +1 -1
  9. package/dist/memory/aux-model-map.d.ts +2 -43
  10. package/dist/memory/aux-model-map.d.ts.map +1 -1
  11. package/dist/memory/aux-model-map.js +3 -85
  12. package/dist/memory/aux-model-map.js.map +1 -1
  13. package/dist/platform/config.d.ts +0 -7
  14. package/dist/platform/config.d.ts.map +1 -1
  15. package/dist/platform/config.js +0 -14
  16. package/dist/platform/config.js.map +1 -1
  17. package/dist/platform/version.d.ts +1 -1
  18. package/dist/platform/version.js +1 -1
  19. package/dist/provider.d.ts +12 -55
  20. package/dist/provider.d.ts.map +1 -1
  21. package/dist/provider.js +99 -156
  22. package/dist/provider.js.map +1 -1
  23. package/dist/registry.d.ts +6 -39
  24. package/dist/registry.d.ts.map +1 -1
  25. package/dist/registry.js +9 -76
  26. package/dist/registry.js.map +1 -1
  27. package/dist/sub-agent/runner.d.ts.map +1 -1
  28. package/dist/sub-agent/runner.js +0 -3
  29. package/dist/sub-agent/runner.js.map +1 -1
  30. package/dist/tools/builtin/bash.js +2 -2
  31. package/dist/tools/builtin/bash.js.map +1 -1
  32. package/dist/tools/builtin/bash_background.js +1 -1
  33. package/dist/tools/builtin/bash_background.js.map +1 -1
  34. package/dist/tools/builtin/gemini_image_qa.d.ts +12 -0
  35. package/dist/tools/builtin/gemini_image_qa.d.ts.map +1 -0
  36. package/dist/tools/builtin/gemini_image_qa.js +195 -0
  37. package/dist/tools/builtin/gemini_image_qa.js.map +1 -0
  38. package/dist/tools/builtin/read.d.ts.map +1 -1
  39. package/dist/tools/builtin/read.js +6 -6
  40. package/dist/tools/builtin/read.js.map +1 -1
  41. package/dist/tools/index.d.ts +1 -0
  42. package/dist/tools/index.d.ts.map +1 -1
  43. package/dist/tools/index.js +1 -0
  44. package/dist/tools/index.js.map +1 -1
  45. package/dist/types.d.ts +1 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +2 -2
  48. package/dist/types.js.map +1 -1
  49. package/package.json +2 -24
  50. package/dist/providers/anthropic.d.ts +0 -328
  51. package/dist/providers/anthropic.d.ts.map +0 -1
  52. package/dist/providers/anthropic.js +0 -857
  53. package/dist/providers/anthropic.js.map +0 -1
  54. package/dist/providers/codex-auth.d.ts +0 -149
  55. package/dist/providers/codex-auth.d.ts.map +0 -1
  56. package/dist/providers/codex-auth.js +0 -332
  57. package/dist/providers/codex-auth.js.map +0 -1
  58. package/dist/providers/codex-stream.d.ts +0 -42
  59. package/dist/providers/codex-stream.d.ts.map +0 -1
  60. package/dist/providers/codex-stream.js +0 -345
  61. package/dist/providers/codex-stream.js.map +0 -1
  62. package/dist/providers/codex-translators.d.ts +0 -105
  63. package/dist/providers/codex-translators.d.ts.map +0 -1
  64. package/dist/providers/codex-translators.js +0 -244
  65. package/dist/providers/codex-translators.js.map +0 -1
  66. package/dist/providers/codex.d.ts +0 -234
  67. package/dist/providers/codex.d.ts.map +0 -1
  68. package/dist/providers/codex.js +0 -461
  69. package/dist/providers/codex.js.map +0 -1
  70. package/dist/providers/fallback.d.ts +0 -71
  71. package/dist/providers/fallback.d.ts.map +0 -1
  72. package/dist/providers/fallback.js +0 -223
  73. package/dist/providers/fallback.js.map +0 -1
package/dist/provider.js CHANGED
@@ -14,11 +14,7 @@ import { getMcpServersForQuery } from "./platform/mcp-config.js";
14
14
  // One-shot at import time keeps the per-tool-call cost at zero. See
15
15
  // `platform/env-bootstrap.ts` for the full rationale and safety notes.
16
16
  bootstrapHostPath();
17
- import { MODEL_DEEPSEEK_V4_PRO } from "./platform/config.js";
18
- import { AnthropicProvider, detectThinkingKeyword, effortToPersonaPrompt, effortToThinkingBudget, } from "./providers/anthropic.js";
19
- import { CodexResponsesProvider } from "./providers/codex.js";
20
17
  import { DeepseekProvider } from "./providers/deepseek.js";
21
- import { FallbackProvider } from "./providers/fallback.js";
22
18
  import { maestroRegistry } from "./registry.js";
23
19
  import { isWellFormedMessage, loadMaestroSession, loadMaestroSessionMeta, saveMaestroSession, trimToSafePrefix, } from "./session-store.js";
24
20
  import { getTaskStore } from "./state/tasks.js";
@@ -27,6 +23,7 @@ import { askUserQuestionTool } from "./tools/builtin/ask_user_question.js";
27
23
  import { bashTool, createBashTool } from "./tools/builtin/bash.js";
28
24
  import { createBackgroundBashRegistry, createBashOutputTool, createKillBashTool, } from "./tools/builtin/bash_background.js";
29
25
  import { createEditTool } from "./tools/builtin/edit.js";
26
+ import { createGeminiImageQATool } from "./tools/builtin/gemini_image_qa.js";
30
27
  import { globTool } from "./tools/builtin/glob.js";
31
28
  import { grepTool } from "./tools/builtin/grep.js";
32
29
  import { createReadTool } from "./tools/builtin/read.js";
@@ -42,9 +39,7 @@ import { ToolRegistry } from "./tools/registry.js";
42
39
  * Multi-turn resume: when `opts.sessionId` is set we hydrate prior messages
43
40
  * from `~/.maestro/sessions/<id>.jsonl` (written by the previous turn's
44
41
  * persistence path or by a cross-agent rollout). Otherwise we mint a fresh
45
- * UUIDv4 matching the contract claude/codex providers expose, so the
46
- * router stays agent-agnostic and `{type:"session", sessionId}` always comes
47
- * back on the first iteration.
42
+ * UUIDv4 and start with empty history.
48
43
  *
49
44
  * After the loop drains we write the updated history back to disk so a
50
45
  * subsequent call resumes correctly. Failures here are logged but never
@@ -53,17 +48,10 @@ import { ToolRegistry } from "./tools/registry.js";
53
48
  *
54
49
  * MCP integration: every server in `getMcpServersForQuery(opts)` is leased
55
50
  * from the process-wide cache (`mcp/pool-cache.ts`) and its tools are
56
- * registered under `mcp__<server>__<tool>` the same name convention Claude
57
- * SDK uses, so the model sees consistent tool names across providers in the
58
- * same topic. Unlike claudeProvider / codexProvider which hand `mcpServers`
59
- * to a vendor SDK that owns MCP lifecycle internally — Maestro hits Anthropic's
60
- * Messages API via raw fetch, so we own startup + dispatch + cleanup here.
61
- * Cache key includes (userId, session, groupId) so two users never share an
62
- * MCP client; the cache evicts idle clients via TTL + LRU cap so stale slots
63
- * don't accumulate.
64
- *
65
- * Snapshot pinned to upstream Maestro v0.13.0 (MIT, Nous Research). See
66
- * docs/maestro-integration.md for the porting roadmap.
51
+ * registered under `mcp__<server>__<tool>`. Maestro owns MCP startup +
52
+ * dispatch + cleanup directly. Cache key includes (userId, session, groupId)
53
+ * so two users never share an MCP client; the cache evicts idle clients via
54
+ * TTL + LRU cap so stale slots don't accumulate.
67
55
  */
68
56
  /**
69
57
  * Default tool-iteration cap when the caller doesn't supply
@@ -86,11 +74,64 @@ import { ToolRegistry } from "./tools/registry.js";
86
74
  * line so the model isn't told "1/Infinity remaining — finalize NOW").
87
75
  */
88
76
  export const DEFAULT_MAX_ITERATIONS = Number.POSITIVE_INFINITY;
77
+ function effortToPersonaPrompt(e) {
78
+ let header;
79
+ let bullets;
80
+ switch (e) {
81
+ case "low":
82
+ header = "You are in **low** effort mode — answer fast.";
83
+ bullets = [
84
+ "Read at most one file. Skip exhaustive search.",
85
+ "No cross-verification unless the user explicitly asked.",
86
+ "Wrap up immediately after the first sufficient answer.",
87
+ "If the question is ambiguous, ask one clarifying question rather than exploring.",
88
+ ];
89
+ break;
90
+ case "medium":
91
+ header = "You are in **medium** effort mode — focused work.";
92
+ bullets = [
93
+ "Explore one area thoroughly; do not branch into adjacent files unless directly relevant.",
94
+ "Cross-check only within the same file or function.",
95
+ "If a tool result is ambiguous, do one follow-up read; do not start a new chain.",
96
+ "Answer when the primary question is resolved — do not preemptively extend scope.",
97
+ ];
98
+ break;
99
+ case "high":
100
+ header = "You are in **high** effort mode — careful work.";
101
+ bullets = [
102
+ "Multi-file exploration is expected when the question spans modules.",
103
+ "Verify assumptions with a second tool call (grep + read) before asserting.",
104
+ "Surface uncertainties explicitly rather than papering over them.",
105
+ "Still bias toward shipping an answer; do not spelunk indefinitely.",
106
+ ];
107
+ break;
108
+ case "xhigh":
109
+ header = "You are in **xhigh** effort mode — thorough investigation.";
110
+ bullets = [
111
+ "Survey the relevant surface broadly before drilling down.",
112
+ "Hold multiple hypotheses; rank them by evidence before committing.",
113
+ "Name edge cases and failure modes even if the happy path is clear.",
114
+ "Justify final claims with concrete code references (file + line).",
115
+ ];
116
+ break;
117
+ case "max":
118
+ header = "You are in **max** effort mode — exhaustive analysis.";
119
+ bullets = [
120
+ "Read every related file; do not stop at the first plausible answer.",
121
+ "Enumerate all failure modes you can construct; analyze each.",
122
+ "Cross-verify with independent paths (grep + read + run, if applicable).",
123
+ "Consider writing or updating tests when behavior is non-trivial.",
124
+ ];
125
+ break;
126
+ default:
127
+ return undefined;
128
+ }
129
+ return ["## Working mode", header, ...bullets.map((b) => `- ${b}`)].join("\n");
130
+ }
89
131
  export async function* maestroProvider(opts) {
90
- // Provider instantiation is deferred until after model resolution so the
91
- // right adapter (Anthropic / DeepSeek) is chosen based on the resolved
92
- // model id. The env-var check happens at fromEnv() time inside each
93
- // adapter — we surface its error as a normal `error` UnifiedEvent so the
132
+ // Provider instantiation is deferred until after model resolution.
133
+ // The env-var check happens at fromEnv() time inside the adapter
134
+ // we surface its error as a normal `error` UnifiedEvent so the
94
135
  // dispatcher doesn't see a synthetic crash.
95
136
  // Resolve sessionId up-front so per-session resources (file-state tracker,
96
137
  // skill_view) can key off a stable id. Either supplied by the caller
@@ -106,6 +147,8 @@ export async function* maestroProvider(opts) {
106
147
  // (auto-migrating from the legacy `.todos.json` when present) so a
107
148
  // multi-turn plan survives across calls.
108
149
  const taskStore = getTaskStore(sessionId);
150
+ const requestedModel = opts.model ?? maestroRegistry.defaultModel;
151
+ const resolvedModel = maestroRegistry.expandModelAlias(requestedModel);
109
152
  const tools = new ToolRegistry();
110
153
  // Caller-supplied tool hooks (pre/post dispatch guardrails). Applied before
111
154
  // any tool registrations so every tool — builtins + MCP — is covered.
@@ -148,6 +191,9 @@ export async function* maestroProvider(opts) {
148
191
  tools.register(globTool);
149
192
  tools.register(grepTool);
150
193
  tools.register(webFetchTool);
194
+ if (shouldRegisterGeminiImageQATool(resolvedModel)) {
195
+ tools.register(createGeminiImageQATool({ apiKey: process.env.GEMINI_API_KEY }));
196
+ }
151
197
  // AskUserQuestion — ask the user a question mid-task, get answer next turn
152
198
  tools.register(askUserQuestionTool);
153
199
  // Task family — granular CRUD replacing the v0.1.x TodoWrite. All four
@@ -204,8 +250,6 @@ export async function* maestroProvider(opts) {
204
250
  if (opts.enableToolSearch === true) {
205
251
  tools.register(createToolSearchTool({ registry: tools }));
206
252
  }
207
- const requestedModel = opts.model ?? maestroRegistry.defaultModel;
208
- const resolvedModel = maestroRegistry.expandModelAlias(requestedModel);
209
253
  // Resolve effort up-front (was previously deferred until after history
210
254
  // hydration) so we can both build the initial system-reminder with the
211
255
  // correct "iterations remaining: N/N" line and pass `maxIter` into
@@ -220,10 +264,8 @@ export async function* maestroProvider(opts) {
220
264
  // vs turn budget).
221
265
  const maxIter = opts.maxIterations ?? DEFAULT_MAX_ITERATIONS;
222
266
  logger.info({ effort: opts.effort, resolved: resolvedEffort, maxIter, callerOverride: opts.maxIterations }, "maestroProvider: effort + maxIter resolution");
223
- // Pick provider by resolved model id prefix. DeepSeek models (`deepseek-*`)
224
- // route to DeepseekProvider; anything else falls through to Anthropic. If
225
- // the chosen adapter's env var is missing, close the MCP pool we already
226
- // started before bailing so we don't leak subprocesses.
267
+ // Instantiate DeepseekProvider. If DEEPSEEK_API_KEY is missing, close
268
+ // the MCP pool before bailing so we don't leak subprocesses.
227
269
  let provider;
228
270
  try {
229
271
  provider = providerForModel(resolvedModel);
@@ -282,9 +324,8 @@ export async function* maestroProvider(opts) {
282
324
  // rides along automatically. Historical turns keep the reminder
283
325
  // that was true at THAT turn — drift across env-var changes is
284
326
  // feature, not bug.
285
- // Claude Code places `<system-reminder>` at the tail of user content; we
286
- // match that order so the model's pretrained intuition treats the
287
- // reminder as meta annotation, not as user intent.
327
+ // `<system-reminder>` is placed at the tail of user content so the
328
+ // model treats it as meta annotation, not as user intent.
288
329
  // The reminder carries the iteration budget so the model can self-pace
289
330
  // ("8 left → wrap up", "90 left → take your time"). Closure shared with
290
331
  // the per-iteration builder below so first-turn and subsequent-turn
@@ -292,9 +333,7 @@ export async function* maestroProvider(opts) {
292
333
  // in the same order, only the counts change.
293
334
  const buildIterReminder = (iterationsRemaining) => {
294
335
  // The iter-line carries the count + tone; the wrap-up overlay (v0.1.16+)
295
- // adds an explicit behavior cue for the last 3 turns, synchronized with
296
- // `thinkingBudgetForTurn`'s budget trim so the model sees thinking AND
297
- // behavior shrink together instead of one without the other.
336
+ // adds an explicit behavior cue for the last 3 turns.
298
337
  //
299
338
  // Skip both when `maxIter` is unbounded (the v0.1.26 default): the tone
300
339
  // selector in `iterationBudgetLine` divides by `max`, so an `Infinity`
@@ -347,7 +386,8 @@ export async function* maestroProvider(opts) {
347
386
  // The persona is a pure function of `resolvedEffort` so it stays
348
387
  // prefix-cache stable across every call at a given level.
349
388
  const personaBlock = effortToPersonaPrompt(resolvedEffort);
350
- const augmentedSystemPrompt = [opts.systemPrompt, personaBlock]
389
+ const imageHandlingBlock = deepseekImageHandlingPrompt(resolvedModel, tools.has("View"));
390
+ const augmentedSystemPrompt = [opts.systemPrompt, personaBlock, imageHandlingBlock]
351
391
  .filter((s) => typeof s === "string" && s.length > 0)
352
392
  .join("\n\n");
353
393
  // Collect MCP tool handlers that `general` sub-agents may receive. Only
@@ -375,33 +415,6 @@ export async function* maestroProvider(opts) {
375
415
  ...(mcpToolHandlers.length > 0 ? { extraTools: mcpToolHandlers } : {}),
376
416
  },
377
417
  }));
378
- // v0.1.19+: Claude Code-style thinking gating with effort-tier fallback.
379
- // Two routes activate thinking; both land on the same {4096, 10000, 31999}
380
- // tier ladder so behavior is predictable regardless of how the model got
381
- // there:
382
- //
383
- // 1. Prompt keyword — end-user types "think harder" / "끝까지 생각" /
384
- // etc. (see `detectThinkingKeyword`). Conversational surfaces
385
- // (Telegram, chat UI) where the user can't reach an effort flag.
386
- // 2. Effort escalation — caller pins `effort: "high" | "xhigh" | "max"`
387
- // via `AgentQueryOptions`. SDK consumers that want a working mode
388
- // with thinking on by default. `low` and `medium` map to undefined,
389
- // matching Claude Code's "off unless asked" defaults for the
390
- // conversational tiers.
391
- //
392
- // Resolution: keyword wins when both fire AND keyword's tier is higher.
393
- // Otherwise the effort tier is used. This way an `effort: "high"` call
394
- // whose prompt happens to contain "ultrathink" gets T3 (31999), not T1
395
- // (4096) — the explicit keyword in the user's message reads as an
396
- // intentional escalation past the caller's static config.
397
- //
398
- // Symmetry note: `effortToThinkingBudget` mirrors the keyword tiers
399
- // exactly (high=T1, xhigh=T2, max=T3), so the maximum of the two values
400
- // is always one of the three documented budgets — no fourth point on
401
- // the ladder.
402
- const keywordBudget = detectThinkingKeyword(opts.prompt);
403
- const effortBudget = effortToThinkingBudget(resolvedEffort);
404
- const thinkingBudget = pickHigherBudget(keywordBudget, effortBudget);
405
418
  const agent = new AIAgent(provider, tools, {
406
419
  model: resolvedModel,
407
420
  sessionId,
@@ -423,7 +436,6 @@ export async function* maestroProvider(opts) {
423
436
  // failed to parse. See the v0.1.21 changelog entry for the full
424
437
  // bug write-up.
425
438
  ...(opts.maxTokens !== undefined ? { maxTokens: opts.maxTokens } : {}),
426
- ...(thinkingBudget ? { thinkingBudget } : {}),
427
439
  ...(resolvedEffort ? { effort: resolvedEffort } : {}),
428
440
  ...(opts.abortController?.signal ? { abortSignal: opts.abortController.signal } : {}),
429
441
  // v0.1.28+: forward the caller's aux-model override into AIAgent so the
@@ -452,7 +464,6 @@ export async function* maestroProvider(opts) {
452
464
  model: resolvedModel,
453
465
  effort: resolvedEffort,
454
466
  maxIter,
455
- thinkingBudget: thinkingBudget ?? null,
456
467
  sessionId,
457
468
  session: opts.session ?? null,
458
469
  resumed: priorMessages.length > 0,
@@ -471,24 +482,13 @@ export async function* maestroProvider(opts) {
471
482
  drained = true;
472
483
  }
473
484
  catch (e) {
474
- // Abort is a user-initiated signal, not a provider failure. claude/codex
475
- // both silently return on AbortError (claude-provider relies on the SDK
476
- // closing the stream, codex-provider catches `err.name === "AbortError"`
477
- // and returns without yielding). Match that so the dispatcher doesn't
478
- // see a synthetic "maestroProvider crashed: The operation was aborted"
479
- // error event after the user simply moved on to a new prompt.
485
+ // Abort is a user-initiated signal, not a provider failure.
480
486
  if (isAbortError(e) || abortSignal?.aborted) {
481
487
  aborted = true;
482
488
  }
483
489
  else {
484
- // v0.1.28: dump the full error shape (name/code/cause/stack) so we can
485
- // tell the difference between a codex OAuth refresh timeout, the
486
- // `/responses` HTTP fetch timing out mid-roundtrip, an SSE stream
487
- // abort during chunk parse, and a plain Anthropic/Deepseek crash —
488
- // all of which previously surfaced as the same opaque "maestroProvider
489
- // crashed: <message>" event. The lower-level codex hops also log on
490
- // throw (see `codex.ts`/`codex-auth.ts` v0.1.28 instrumentation), so
491
- // the combined log trail tells us which leg actually died.
490
+ // Dump full error shape (name/code/cause/stack) so we can distinguish
491
+ // an HTTP fetch timeout from an SSE stream abort or a DeepSeek crash.
492
492
  const errIsTimeout = isTimeoutError(e);
493
493
  logger.error({
494
494
  sessionId,
@@ -673,88 +673,31 @@ export function wrapUpOverlayLine(remaining, max) {
673
673
  return null;
674
674
  return "[wrap-up zone] Tools are now disabled and the thinking budget is trimmed. No further tool calls are possible — synthesize the final answer from existing context.";
675
675
  }
676
- /**
677
- * Pick the right provider adapter for a resolved model id.
678
- *
679
- * Dispatch table:
680
- * - `gpt-5.*` / `gpt-4.*` / `o3` / `o4` → CodexResponsesProvider
681
- * (ChatGPT-OAuth-backed Responses API at
682
- * chatgpt.com/backend-api/codex; reads ~/.codex/auth.json).
683
- * When `DEEPSEEK_API_KEY` is present, the codex provider is wrapped in a
684
- * `FallbackProvider` that retries against DeepSeek (`deepseek-v4-pro`) if
685
- * codex fails before producing any output (OAuth dead, HTTP 4xx/5xx,
686
- * connect/TTFB timeout). Auto-on — no flag — because the only cost when
687
- * codex is healthy is one cheap wrapper object; the fallback provider is
688
- * lazily constructed and never touched unless codex actually fails.
689
- * - `deepseek-*` → DeepseekProvider
690
- * (DEEPSEEK_API_KEY env).
691
- * - everything else (claude-*, custom full ids)
692
- * → AnthropicProvider
693
- * (ANTHROPIC_API_KEY env).
694
- *
695
- * Exported so tests / hosts can lock the dispatch shape independently of
696
- * `maestroProvider`'s I/O. The codex match is prefix-based so hosts can ship
697
- * new codex slugs (gpt-5.6, future tiers) without a dispatcher change — only
698
- * the registry alias map needs updating.
699
- */
700
- export function providerForModel(resolvedModel) {
701
- if (isCodexModel(resolvedModel)) {
702
- const codex = CodexResponsesProvider.fromEnv();
703
- // Auto-on DeepSeek fallback when an API key is configured. The fallback
704
- // provider is constructed lazily (only if codex actually fails), so a
705
- // healthy-codex turn pays nothing beyond the wrapper allocation.
706
- if (process.env.DEEPSEEK_API_KEY) {
707
- return new FallbackProvider(codex, () => DeepseekProvider.fromEnv(), MODEL_DEEPSEEK_V4_PRO);
708
- }
709
- return codex;
710
- }
711
- if (resolvedModel.startsWith("deepseek-")) {
712
- return DeepseekProvider.fromEnv();
713
- }
714
- return AnthropicProvider.fromEnv();
676
+ export function providerForModel(_resolvedModel) {
677
+ return DeepseekProvider.fromEnv();
715
678
  }
716
679
  /**
717
- * Heuristic: does this resolved model id belong on the Codex backend?
718
- *
719
- * The codex `/codex/models` endpoint enforces an exact whitelist of slugs
720
- * (`gpt-5.5`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.3-codex`, `gpt-5.2`, ...),
721
- * but we accept any `gpt-5.*` / `gpt-4.*` / `o3` / `o4` here so the dispatcher
722
- * routes correctly even before a new slug lands in the registry. The backend
723
- * itself will 400 on unsupported slugs with an informative `detail` — better
724
- * to surface that than to silently fall through to Anthropic (which would
725
- * also 400, but with a less useful "model not found" message).
680
+ * DeepSeek cannot currently consume Maestro image blocks natively in this
681
+ * adapter, so when a Gemini API key is configured we expose a narrow vision
682
+ * fallback tool only for DeepSeek models. Other providers keep their existing
683
+ * tool menu and avoid unnecessary third-party image upload/cost.
726
684
  */
727
- function isCodexModel(model) {
728
- return (model.startsWith("gpt-5") ||
729
- model.startsWith("gpt-4") ||
730
- model === "o3" ||
731
- model === "o4" ||
732
- model.startsWith("o3-") ||
733
- model.startsWith("o4-"));
685
+ export function shouldRegisterGeminiImageQATool(resolvedModel, env = process.env) {
686
+ const key = env.GEMINI_API_KEY;
687
+ return resolvedModel.startsWith("deepseek-") && typeof key === "string" && key.trim().length > 0;
734
688
  }
735
- /**
736
- * Combine two optional thinking budgets — keyword-derived and effort-derived
737
- * — by picking the higher non-undefined value. Used by `maestroProvider` so
738
- * an explicit keyword in the prompt can escalate past the caller's static
739
- * effort config, but neither path silently downgrades the other.
740
- *
741
- * Truth table:
742
- * keyword=undef, effort=undef → undef (no thinking)
743
- * keyword=4096, effort=undef → 4096 (keyword only)
744
- * keyword=undef, effort=10000 → 10000 (effort only)
745
- * keyword=4096, effort=10000 → 10000 (effort higher)
746
- * keyword=31999, effort=4096 → 31999 (keyword higher — user
747
- * intent in prompt wins)
748
- *
749
- * Kept as a tiny helper rather than inlining so tests can exercise the
750
- * priority rule without spinning up the full maestroProvider pipeline.
751
- */
752
- export function pickHigherBudget(a, b) {
753
- if (a === undefined)
754
- return b;
755
- if (b === undefined)
756
- return a;
757
- return Math.max(a, b);
689
+ export function deepseekImageHandlingPrompt(resolvedModel, geminiImageQaAvailable) {
690
+ if (!resolvedModel.startsWith("deepseek-"))
691
+ return undefined;
692
+ const fallback = geminiImageQaAvailable
693
+ ? "When the user asks about an attached image file path, call `View` with the absolute `image_path` and a focused `question` before answering."
694
+ : "When the user asks about an attached image file path, use available OCR/text-extraction tools or explain that visual inspection requires a vision tool.";
695
+ return [
696
+ "## Image Handling",
697
+ "The active DeepSeek model cannot inspect image pixels, image files, or image content directly from file paths.",
698
+ fallback,
699
+ "Do not claim you inspected an image unless a vision/OCR tool returned evidence.",
700
+ ].join("\n");
758
701
  }
759
702
  /**
760
703
  * Recognize the multiple shapes Node + WHATWG fetch use when a request is
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,12 @@
1
1
  import type { AgentRegistry } from "./agents/contracts.js";
2
2
  /**
3
- * Per-model default `max_tokens` ceiling — the value the SDK ships to the
4
- * provider when the caller doesn't pin `AgentQueryOptions.maxTokens` itself.
3
+ * Per-model default `max_tokens` ceiling.
5
4
  *
6
- * v0.1.21+ replaces the previous flat 4096 fallback (which silently truncated
7
- * any output > 4K see the v0.1.20 ↔ v0.1.21 changelog for the bug it caused
8
- * in long-form report generation). The new defaults are picked per-model
9
- * rather than blanket because the providers diverge sharply:
10
- *
11
- * - **Claude** (Anthropic) caps native output at 64K (sonnet/haiku) or 128K
12
- * (opus 4.7). These are realistic ceilings for actual long-form work, so
13
- * the default IS the native cap — matches `@anthropic-ai/claude-agent-sdk`
14
- * behavior where caller omitting `maxTokens` gets the per-model native
15
- * max from the SDK's model catalog.
16
- *
17
- * - **DeepSeek V4** caps native output at 384K (both pro and flash). That's
18
- * ~290k English words in one shot — far beyond any practical single-turn
19
- * use case. Defaulting to native here would mean a single runaway turn
20
- * could rack up serious cost and 30-minute+ wall time before the loop
21
- * even notices. We pin a smaller default per variant:
22
- * - `deepseek-v4-pro` → 65_536 (matches the Claude Sonnet / Haiku
23
- * 64K reference point so a topic
24
- * switching providers sees the same
25
- * default ceiling)
26
- * - `deepseek-v4-flash` → 32_768 (latency-tier — flash users prefer
27
- * snappier responses; long outputs
28
- * should escalate to pro)
29
- * Callers that genuinely need the full 384K still get it via the
30
- * `AgentQueryOptions.maxTokens` override — the catalog is a default,
31
- * not a hard ceiling.
32
- *
33
- * - **Unknown model ids** fall back to `DEFAULT_MAX_OUTPUT_TOKENS` (32_768)
34
- * via `getNativeMaxOutputTokens`. The fallback is sized to "comfortably
35
- * covers most long-form outputs" — picking 4096 like v0.1.20 reintroduces
36
- * the original silent-truncation bug for any new model the caller hasn't
37
- * registered yet, so we err on the generous side. Callers running an
38
- * unknown model who want to clamp output should set `maxTokens` explicitly.
39
- *
40
- * The catalog is read at exactly one site — `AIAgent`'s constructor in
41
- * `src/core/agent.ts` — via the `getNativeMaxOutputTokens(model)` helper.
42
- * Adding a new model: extend this table and the corresponding alias entry.
5
+ * DeepSeek V4 caps native output at 384K. We pin conservative defaults to
6
+ * avoid runaway cost/wall-time on a single turn:
7
+ * - `deepseek-v4-pro` → 65_536
8
+ * - `deepseek-v4-flash` 32_768
9
+ * Unknown ids fall back to `DEFAULT_MAX_OUTPUT_TOKENS` (32_768).
43
10
  */
44
11
  export declare const MODEL_MAX_OUTPUT_TOKENS: Readonly<Record<string, number>>;
45
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAyDxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmB3D,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,EAAG,KAAe,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,eAAO,MAAM,eAAe,EAAE,aAkF7B,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+BxD;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI3D,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,EAAG,KAAe,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,eAAO,MAAM,eAAe,EAAE,aAkF7B,CAAC"}