@owlmeans/llm 0.1.18-rc.36 → 0.1.18-rc.37

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 (80) hide show
  1. package/README.md +5 -4
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/llm/SKILL.md +78 -21
  4. package/build/consts.d.ts +10 -4
  5. package/build/consts.d.ts.map +1 -1
  6. package/build/consts.js +10 -4
  7. package/build/consts.js.map +1 -1
  8. package/build/execution/service.d.ts.map +1 -1
  9. package/build/execution/service.js +15 -6
  10. package/build/execution/service.js.map +1 -1
  11. package/build/execution/utils.d.ts +7 -1
  12. package/build/execution/utils.d.ts.map +1 -1
  13. package/build/execution/utils.js +12 -0
  14. package/build/execution/utils.js.map +1 -1
  15. package/build/helpers/fallback.d.ts +18 -0
  16. package/build/helpers/fallback.d.ts.map +1 -0
  17. package/build/helpers/fallback.js +34 -0
  18. package/build/helpers/fallback.js.map +1 -0
  19. package/build/helpers/index.d.ts +1 -0
  20. package/build/helpers/index.d.ts.map +1 -1
  21. package/build/helpers/index.js +1 -0
  22. package/build/helpers/index.js.map +1 -1
  23. package/build/index.d.ts +3 -3
  24. package/build/index.d.ts.map +1 -1
  25. package/build/index.js +3 -3
  26. package/build/index.js.map +1 -1
  27. package/build/model.d.ts +4 -3
  28. package/build/model.d.ts.map +1 -1
  29. package/build/model.js +84 -60
  30. package/build/model.js.map +1 -1
  31. package/build/plugins/anthropic.d.ts +15 -1
  32. package/build/plugins/anthropic.d.ts.map +1 -1
  33. package/build/plugins/anthropic.js +62 -4
  34. package/build/plugins/anthropic.js.map +1 -1
  35. package/build/plugins/export.d.ts +1 -1
  36. package/build/plugins/export.d.ts.map +1 -1
  37. package/build/plugins/export.js +1 -1
  38. package/build/plugins/export.js.map +1 -1
  39. package/build/plugins/index.d.ts +4 -1
  40. package/build/plugins/index.d.ts.map +1 -1
  41. package/build/plugins/index.js +2 -0
  42. package/build/plugins/index.js.map +1 -1
  43. package/build/plugins/openai.d.ts +21 -3
  44. package/build/plugins/openai.d.ts.map +1 -1
  45. package/build/plugins/openai.js +52 -6
  46. package/build/plugins/openai.js.map +1 -1
  47. package/build/plugins/types.d.ts +16 -1
  48. package/build/plugins/types.d.ts.map +1 -1
  49. package/build/service.d.ts.map +1 -1
  50. package/build/service.js +29 -24
  51. package/build/service.js.map +1 -1
  52. package/build/types.d.ts +17 -6
  53. package/build/types.d.ts.map +1 -1
  54. package/build/utils/effort.d.ts +24 -0
  55. package/build/utils/effort.d.ts.map +1 -0
  56. package/build/utils/effort.js +30 -0
  57. package/build/utils/effort.js.map +1 -0
  58. package/build/utils/rungs.d.ts +21 -0
  59. package/build/utils/rungs.d.ts.map +1 -0
  60. package/build/utils/rungs.js +24 -0
  61. package/build/utils/rungs.js.map +1 -0
  62. package/package.json +3 -3
  63. package/src/consts.ts +11 -4
  64. package/src/execution/service.ts +16 -7
  65. package/src/execution/utils.ts +15 -1
  66. package/src/helpers/fallback.ts +41 -0
  67. package/src/helpers/index.ts +1 -0
  68. package/src/index.ts +9 -3
  69. package/src/model.ts +105 -65
  70. package/src/plugins/anthropic.ts +88 -6
  71. package/src/plugins/export.ts +3 -1
  72. package/src/plugins/index.ts +7 -1
  73. package/src/plugins/openai.ts +65 -7
  74. package/src/plugins/types.ts +18 -1
  75. package/src/service.ts +34 -29
  76. package/src/types.ts +17 -6
  77. package/src/utils/effort.ts +45 -0
  78. package/src/utils/rungs.ts +41 -0
  79. package/tests/execution.spec.ts +49 -2
  80. package/tests/plugins.spec.ts +179 -4
package/README.md CHANGED
@@ -20,7 +20,7 @@ abstraction that resolves models from an inheritable policy.
20
20
  ## Installation
21
21
 
22
22
  ```bash
23
- bun add @owlmeans/llm@^0.1.18-rc.36 @owlmeans/llm-common@^0.1.18-rc.35
23
+ bun add @owlmeans/llm@^0.1.18-rc.37 @owlmeans/llm-common@^0.1.18-rc.36
24
24
  bun add @langchain/core @langchain/openai @langchain/anthropic # peer dependencies
25
25
  ```
26
26
 
@@ -137,7 +137,8 @@ spectator entry), `filter` (reject a result and force a retry), `useCache` / `ca
137
137
  | Provider accepts the request and never streams | Idle (per-token) deadline aborts and retries — `ModelConfig.streamTimeout` |
138
138
  | Duplicate final SSE chunk corrupts tool-call arguments | Stream breaks at the first non-empty `finish_reason` |
139
139
  | Reasoning eats the whole output budget | Retry doubles `maxTokens` toward `maxTokensCap` **and** shrinks an absolute reasoning cap |
140
- | A weak cheap model keeps failing | Escalates to `ModelConfig.fallback` after `FALLBACK_AFTER_ATTEMPTS`, within one plugin family |
140
+ | A weak cheap model keeps failing | Walks the `ModelConfig.fallback` chain, `FALLBACK_AFTER_ATTEMPTS` attempts per rung; a rung may be another provider, called in its own dialect |
141
+ | The same model keeps giving the same weak answer | Climbs `ModelConfig.effort` one level per attempt of the rung, up to the model's ceiling; a `TemperatureFactory` request climbs it too |
141
142
  | Model stringifies arrays / over-wraps scalars | `coerceToSchema` reconciles the answer with the schema before validation |
142
143
  | Model ignores the tool and answers in prose | `parseJsonContent` salvages JSON from fences and surrounding text |
143
144
  | A blank message poisons the request (Anthropic 400 `text content blocks must contain non-whitespace text`, typically an empty file read pasted into a prompt) | Whitespace-only text blocks are dropped before every call; blank tool results are stubbed to keep their `tool_use` pairing, and an all-blank input becomes one stub user message |
@@ -147,7 +148,7 @@ spectator entry), `filter` (reject a result and force a retry), `useCache` / `ca
147
148
  ### Helpers (usable alongside a model)
148
149
 
149
150
  `withRetry` · `registerFatalError` · `spectate` · `normalizeInput` · `parseJsonContent` ·
150
- `coerceToSchema`. Also exported from `@owlmeans/llm/helpers`.
151
+ `coerceToSchema` · `resolveFallbacks`. Also exported from `@owlmeans/llm/helpers`.
151
152
 
152
153
  Everything under `src/utils/` is library-private and deliberately not exported.
153
154
 
@@ -184,7 +185,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
184
185
  your project's skill store (`.agents/skills/`):
185
186
 
186
187
  ```sh
187
- npx @owlmeans/agent-skills@^0.1.18-rc.36
188
+ npx @owlmeans/agent-skills@^0.1.18-rc.38
188
189
  ```
189
190
 
190
191
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/llm",
4
- "version": "0.1.18-rc.36",
5
- "generatedAt": "2026-09-22T22:24:39.563Z",
4
+ "version": "0.1.18-rc.37",
5
+ "generatedAt": "2026-09-23T19:57:40.680Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ user-invocable: false
8
8
  # @owlmeans/llm
9
9
 
10
10
  **Layer:** Core
11
- **Install:** `"@owlmeans/llm": "^0.1.18-rc.36"` in `dependencies` (plus the `@langchain/*` peers)
11
+ **Install:** `"@owlmeans/llm": "^0.1.18-rc.37"` in `dependencies` (plus the `@langchain/*` peers)
12
12
 
13
13
  The inference runtime. Everything provider-specific is a **plugin**; the model itself only owns the
14
14
  provider-independent parts (streaming discipline, retries, validation, observability). Serializable
@@ -31,10 +31,11 @@ symbol "because a test needs it".
31
31
  | `plugins`, `registerLlmPlugin`, `resolvePlugin`, `pluginOf`, `pluginFor` | The provider-plugin registry. Also at `@owlmeans/llm/plugins`. |
32
32
  | `anthropicPlugin`, `openAiPlugin`, `compatiblePlugin`, `openAiFamily` | Built-in providers; `openAiFamily` is the shared OpenAI-client behaviour to spread into a new plugin. |
33
33
  | `NO_SAMPLING_PREFIXES` / `rejectsSampling(model)` · `RESPONSES_API_PREFIXES` / `usesResponsesApi(model)` | Which families reject which sampling parameters — see the table below. Consumers pin presets against them. |
34
- | `withRetry`, `registerFatalError`, `isFatalError`, `spectate`, `normalizeInput`, `parseJsonContent`, `coerceToSchema` | Helpers usable alongside a model. Also at `@owlmeans/llm/helpers`. |
34
+ | `effortSupportOf(config)` · `OPENAI_EFFORT_SUPPORT`, `ANTHROPIC_EFFORT_SUPPORT` · `REASONING_MIN_MAX_TOKENS` | Which `ModelConfig.effort` levels a model accepts — see "Fallback chains and provider effort". |
35
+ | `withRetry`, `registerFatalError`, `isFatalError`, `spectate`, `normalizeInput`, `parseJsonContent`, `coerceToSchema`, `resolveFallbacks`, `PROVIDER_NEUTRAL_FIELDS` | Helpers usable alongside a model. Also at `@owlmeans/llm/helpers`. |
35
36
  | `LlmError`, `LlmModelError`, `LlmMissconfiguredError`, `LlmPluginError`, `LlmRetryExceededError` | `ResilientError` family. `LlmModelError` is the RETRYABLE one. |
36
37
  | `mergePrompt`, `mergePolicy`, `resolveRole`, `effortPatch` | Execution merge helpers; `mergePrompt` unions skills and takes the deepest role. |
37
- | `DEFAULT_MODEL_RETRIES`, `MODEL_STREAM_TIMEOUT_MS` (3 min idle), `FALLBACK_AFTER_ATTEMPTS`, `DEFAULT_EFFORT`, `EFFORT_TABLE`, `MAX_CACHE_BREAKPOINTS`, `MAX_SYSTEM_BREAKPOINTS`, `MIN_CACHEABLE_TOKENS`, `LLM_SERVICE`, `EXECUTION_SERVICE`, `PROMPT_SERVICE` | Tuning + aliases. |
38
+ | `DEFAULT_MODEL_RETRIES`, `MODEL_STREAM_TIMEOUT_MS` (3 min idle), `FALLBACK_AFTER_ATTEMPTS`, `TEMPERATURE_PER_EFFORT_STEP`, `DEFAULT_EFFORT`, `EFFORT_TABLE`, `MAX_CACHE_BREAKPOINTS`, `MAX_SYSTEM_BREAKPOINTS`, `MIN_CACHEABLE_TOKENS`, `LLM_SERVICE`, `EXECUTION_SERVICE`, `PROMPT_SERVICE` | Tuning + aliases. |
38
39
 
39
40
  ## Provider differences are plugins, never `if`s
40
41
 
@@ -43,8 +44,9 @@ symbol "because a test needs it".
43
44
  | Plugin member | Replaces |
44
45
  |---|---|
45
46
  | `build` | the provider switch in the model factory |
46
- | `owns` / `family` | `instanceof` checks; `family` gates cross-provider fallback |
47
- | `refine` | the per-provider retry rebuild (budget doubling, reasoning shrink) |
47
+ | `owns` / `family` | `instanceof` checks; a `family` change between rungs re-renders the prompt |
48
+ | `refine` | the per-provider retry rebuild (budget doubling, reasoning shrink, effort climb) |
49
+ | `effort` | which `ModelConfig.effort` levels a model accepts (`effortSupportOf(config)`) |
48
50
  | `structuredMode` | native `response_format` vs the forced-tool-call hack |
49
51
  | `toolChoice` / `responseFormat` | the provider-specific call shapes |
50
52
  | `patchSystem` | how the composed system blocks are rendered and where their cache breakpoints go |
@@ -65,12 +67,15 @@ hooks, through a predicate the package root exports:
65
67
  | Family | Rejects | Predicate |
66
68
  |---|---|---|
67
69
  | Claude 4.7+ and the 5 family | `temperature`, `top_p`, `top_k` | `NO_SAMPLING_PREFIXES` / `rejectsSampling(model)` |
68
- | OpenAI Responses API (`gpt-5*`, `codex-*`) | `temperature`, `top_p` | `RESPONSES_API_PREFIXES` / `usesResponsesApi(model)` |
69
-
70
- Models below those lines keep the deterministic `temperature: 0` default. Each `refine` re-derives
71
- the family from the ACTIVE base instance it is handed — Anthropic from `modelName ?? model`, OpenAI
72
- from `model ?? lc_kwargs.model` plus a `useResponsesApi` already on `lc_kwargs` — so a same-family
73
- `fallback` rung is judged on its own id, not the primary's. Keep the predicate exported: consumers
70
+ | OpenAI Responses API (`gpt-6*`, `gpt-5*`, `codex-*`) | `temperature`, `top_p` | `RESPONSES_API_PREFIXES` / `usesResponsesApi(model)` |
71
+
72
+ A new OpenAI family goes into `RESPONSES_API_PREFIXES` the day it is pinned: outside it the model
73
+ goes through chat completions with `temperature` (a 400), and chat completions allows tools on
74
+ `gpt-6*` only at `reasoning_effort: none`. Models below those lines keep the deterministic
75
+ `temperature: 0` default. Each `refine` re-derives the family from the ACTIVE base instance it is
76
+ handed — Anthropic from `modelName ?? model`, OpenAI from `model ?? lc_kwargs.model` plus a
77
+ `useResponsesApi` already on `lc_kwargs` — so a `fallback` rung is judged on its own id, not the
78
+ primary's. Keep the predicate exported: consumers
74
79
  pin presets against it (viable-agent's `tests/presets.test.ts` asserts no preset entry declares a
75
80
  parameter its model rejects), and a second hand-written copy drifts when a family is added.
76
81
 
@@ -190,10 +195,9 @@ inner loop at attempt 0, so the escalator's two rungs never move: same model, sa
190
195
  same deterministic answer, N times. Pass `escalation: <outer attempt>` in `LlmCallOptions` and the
191
196
  per-call escalator starts that far up its ladder instead — `maxTokens` doubling and the
192
197
  `FALLBACK_AFTER_ATTEMPTS` switch to `ModelConfig.fallback` both advance. It is clamped to
193
- `retries - 1`, moves the STARTING rung only, and never changes how many attempts the call makes. Two
194
- things it depends on, both preset data rather than code: the role must declare a `fallback`, and that
195
- fallback must be in the same plugin `family` (a cross-family one is skipped with a warning, because
196
- switching provider mid-call flips the structured-output shape). `LlmCallOptions.fatal` is the lever
198
+ `retries - 1`, moves the STARTING rung only, and never changes how many attempts the call makes. The
199
+ model switch depends on preset data rather than code: the role must declare a `fallback`.
200
+ `LlmCallOptions.fatal` is the lever
197
201
  in the other direction — a per-call resolver consulted before the global ones and the plugin's
198
202
  `isFatal`, for an error the caller knows no retry can fix.
199
203
 
@@ -225,9 +229,60 @@ also clamps `maxTokens` to `maxOutput` and warns about a cap above it. For an ag
225
229
  can do elsewhere. `combinedWindow: true` marks a model whose window is shared between input and
226
230
  output (MiniMax M2.x, gpt-oss) — nothing enforces it at runtime; it keeps presets honest about
227
231
  leaving room for the prompt. **A `fallback` that changes `model` must restate
228
- `contextWindow`/`maxOutput`** (and reset `combinedWindow`): the fallback config is
229
- `{...primaryConfig, ...fallback}`, so every field the patch does not name is inherited from a
230
- different model.
232
+ `contextWindow`/`maxOutput`** (and reset `combinedWindow`): on the same provider the fallback config
233
+ is `{...rungAbove, ...fallback}`, so every field the patch does not name is inherited from a
234
+ different model. `createModel` clamps `maxTokens` per rung, against that rung's own `maxOutput`.
235
+
236
+ ## Fallback chains and provider effort
237
+
238
+ **A `fallback` may carry its own `fallback`; the chain is the escalation ladder.** `resolveFallbacks`
239
+ (`helpers/fallback.ts`, exported) is the ONE merge: the service builds from it and hangs each rung
240
+ off the one above as `__fallbackModel`; a consumer walking a preset (tests, a price list) calls it
241
+ rather than re-spreading. Each rung gets `FALLBACK_AFTER_ATTEMPTS` attempts, the last keeps the rest
242
+ (`utils/rungs.ts` — 8 retries over three rungs = 3 / 3 / 2).
243
+
244
+ **A rung may name another `provider`.** It then inherits only `PROVIDER_NEUTRAL_FIELDS` (`maxTokens`,
245
+ `maxTokensCap`, `streamTimeout`, `cacheKey`), so it must bring its own `secret`, `model`, capability,
246
+ `disableThinking` and `effort`; a missing `secret` is `LlmMissconfiguredError` at `getModel`, not a
247
+ 401 mid-run. `makeLlmModel` takes EVERYTHING provider-shaped from the active rung — `refine`,
248
+ `structuredMode`/`toolChoice`/`responseFormat`, the idle deadline — and re-runs `prepare` whenever
249
+ the rung's `family` differs from the last one prepared (system blocks, cache markers and the
250
+ thinking switch are provider dialect; the markers live on the caller's messages, so each rendering
251
+ clears the last one's). Keying anything on the PRIMARY's plugin reintroduces the old single-family
252
+ bug: another provider's rung asked in the primary's `tool_choice` spelling is a fatal 400.
253
+
254
+ **`ModelConfig.effort` (`ModelEffort`, `@owlmeans/llm-common`) is the provider's own knob** —
255
+ OpenAI `reasoning.effort`, Anthropic `output_config.effort` — and not `ExecutionEffort`, which is
256
+ this package's token-budget tier. Plugin tables are the authority (`OPENAI_EFFORT_SUPPORT`,
257
+ `ANTHROPIC_EFFORT_SUPPORT`, verified 2026-09-23 against developers.openai.com/api/docs/models/* and
258
+ platform.claude.com/docs/en/build-with-claude/effort):
259
+
260
+ | Model | Levels | Default |
261
+ |---|---|---|
262
+ | `gpt-6-sol`, `gpt-6-luna` | none, low, medium, high, xhigh, max | medium |
263
+ | `gpt-6-astra` | low … max (`none` is a 400) | medium |
264
+ | `gpt-5*` and older OpenAI | not sent — accepted sets vary per snapshot | — |
265
+ | Claude Opus 5.5 | low … max | medium |
266
+ | Claude Opus 5, Fable 5, Mythos 5, Opus 4.8/4.7, Sonnet 5 | low … max | high |
267
+ | Claude Mythos Preview, Opus 4.6, Sonnet 4.6 | low, medium, high, max (no xhigh) | high |
268
+ | Claude Opus 4.5 | low, medium, high | high |
269
+ | Claude Haiku 4.5, Sonnet 4.5 and older | field rejected — never sent | — |
270
+
271
+ A declared level the model lacks is clamped DOWN to the nearest accepted one (never a 400); an
272
+ undeclared effort is not sent at all (omitting it is how the default is asked for). Opus 5 accepts
273
+ `thinking: disabled` only at `high` or below, so under `disableThinking` its levels stop there
274
+ (`thinkingOffCeiling`); Sonnet 5 takes `disabled` at every level, and effort still governs every
275
+ output token with thinking off.
276
+
277
+ **Effort climbs on retries, one level per attempt of the rung** (`LlmRefineParams.rungAttempt`), from
278
+ the rung's declared level — or its model's default once it has retried — to the model's ceiling. So
279
+ each fallback starts from its OWN level. A `TemperatureFactory` request climbs it too
280
+ (`temperatureSteps`: one level per `TEMPERATURE_PER_EFFORT_STEP` = 0.3, at least one), because the
281
+ models that take effort have mostly taken sampling away and "hotter" alone changes nothing on the
282
+ wire. Effort is part of Anthropic's cached prefix, so a climbed retry writes a new cache entry.
283
+ At `high` and above the OpenAI plugin floors the output budget at `REASONING_MIN_MAX_TOKENS` (25k,
284
+ OpenAI's reasoning-guide reservation for reasoning + answer), clamped to the cap, like
285
+ `ADAPTIVE_MIN_MAX_TOKENS` below.
231
286
 
232
287
  ### Reasoning is off unless a preset asks for it — and it is billed against the same budget
233
288
 
@@ -248,8 +303,9 @@ models with no request-level control (Qwen3). The Anthropic plugin answers `true
248
303
  `build`, which `refine` carries through `lc_kwargs` on every attempt. Below that line
249
304
  (`claude-haiku-4-5`, `claude-sonnet-4-6`) and under any plugin declaring no hook the flag injects
250
305
  prompt text instead, so set it where the wire honours it. **A preset must set the flag on every
251
- adaptive Anthropic role**; it reaches the `fallback` rung only by inheritance from the entry
252
- (viable-agent's `presets.test.ts` pins this). Turning reasoning ON is a per-role decision.
306
+ adaptive Anthropic rung**: a same-provider `fallback` inherits it from the rung above, a rung that
307
+ switches TO Anthropic inherits nothing and must name it (viable-agent's `presets.test.ts` walks every
308
+ rung). Turning reasoning ON is a per-role decision.
253
309
 
254
310
  `ADAPTIVE_MIN_MAX_TOKENS` (32k) is the output floor the Anthropic plugin's `build` applies to every
255
311
  `rejectsSampling(model)` config — `disableThinking` is not consulted, so a role with reasoning turned
@@ -284,7 +340,8 @@ meant to carry a model must name one.
284
340
  ## Resilience already handled — do not reimplement
285
341
 
286
342
  Idle stream deadline · duplicate-final-chunk dedup · output-budget escalation · reasoning-cap shrink ·
287
- adaptive-thinking budget floor · same-family fallback model · caller-seeded ladder position
343
+ adaptive-thinking budget floor · fallback chain across providers · effort climb per rung ·
344
+ reasoning budget floor · caller-seeded ladder position
288
345
  (`escalation`) · schema coercion · JSON salvage from prose · `NullCapture` diagnostics · fatal-error
289
346
  short-circuit · blank-content sanitization (whitespace-only text blocks are dropped before every call
290
347
  — a blank block, e.g. an empty file read pasted into a prompt, is otherwise a fatal Anthropic 400;
package/build/consts.d.ts CHANGED
@@ -25,12 +25,18 @@ export declare const DEFAULT_MODEL_RETRIES = 8;
25
25
  */
26
26
  export declare const MODEL_STREAM_TIMEOUT_MS: number;
27
27
  /**
28
- * Number of failed attempts after which the retry escalator switches from a role's
29
- * cheap primary model to its configured `fallback` (stronger) model. With
30
- * {@link DEFAULT_MODEL_RETRIES} = 8 the primary runs attempts 0..2 and the fallback
31
- * runs attempts 3..7.
28
+ * Attempts each rung of a role's fallback chain gets before the retry escalator moves to the
29
+ * next one; the last rung keeps whatever attempts remain. With {@link DEFAULT_MODEL_RETRIES} =
30
+ * 8 and two fallbacks, the primary runs attempts 0..2, the first fallback 3..5 and the second
31
+ * 6..7.
32
32
  */
33
33
  export declare const FALLBACK_AFTER_ATTEMPTS = 3;
34
+ /**
35
+ * Temperature a `TemperatureFactory` caller asks for, per `ModelConfig.effort` level it is
36
+ * turned into. 0.3 is the step of the consumers' own "try something different" ladders, so
37
+ * each rung of those climbs one effort level on a model that accepts effort.
38
+ */
39
+ export declare const TEMPERATURE_PER_EFFORT_STEP = 0.3;
34
40
  /**
35
41
  * Output-token ceiling used by the retry escalator when a model config declares no
36
42
  * `maxTokensCap`. Deliberately high (192K) — it exceeds many real per-request output
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,mFAAmF;AACnF,eAAO,MAAM,WAAW,yBAAyB,CAAA;AAEjD,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,mCAAmC,CAAA;AAEjE,0FAA0F;AAC1F,eAAO,MAAM,cAAc,gCAAgC,CAAA;AAE3D,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAEtC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,QAAgB,CAAA;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAE/C,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,EAAE,QAAe,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAExC;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAGkD,CAAA;AAE/E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAE7C,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,YAAY,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAA;AAE3C,8DAA8D;AAC9D,eAAO,MAAM,cAAc,2BAA2B,CAAA;AAEtD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAKlE,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAErC,CAAA"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,mFAAmF;AACnF,eAAO,MAAM,WAAW,yBAAyB,CAAA;AAEjD,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,mCAAmC,CAAA;AAEjE,0FAA0F;AAC1F,eAAO,MAAM,cAAc,gCAAgC,CAAA;AAE3D,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAEtC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,QAAgB,CAAA;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAE/C,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,EAAE,QAAe,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAExC;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAGkD,CAAA;AAE/E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAE7C,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,YAAY,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAA;AAE3C,8DAA8D;AAC9D,eAAO,MAAM,cAAc,2BAA2B,CAAA;AAEtD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAKlE,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAErC,CAAA"}
package/build/consts.js CHANGED
@@ -24,12 +24,18 @@ export const DEFAULT_MODEL_RETRIES = 8;
24
24
  */
25
25
  export const MODEL_STREAM_TIMEOUT_MS = 3 * 60 * 1000;
26
26
  /**
27
- * Number of failed attempts after which the retry escalator switches from a role's
28
- * cheap primary model to its configured `fallback` (stronger) model. With
29
- * {@link DEFAULT_MODEL_RETRIES} = 8 the primary runs attempts 0..2 and the fallback
30
- * runs attempts 3..7.
27
+ * Attempts each rung of a role's fallback chain gets before the retry escalator moves to the
28
+ * next one; the last rung keeps whatever attempts remain. With {@link DEFAULT_MODEL_RETRIES} =
29
+ * 8 and two fallbacks, the primary runs attempts 0..2, the first fallback 3..5 and the second
30
+ * 6..7.
31
31
  */
32
32
  export const FALLBACK_AFTER_ATTEMPTS = 3;
33
+ /**
34
+ * Temperature a `TemperatureFactory` caller asks for, per `ModelConfig.effort` level it is
35
+ * turned into. 0.3 is the step of the consumers' own "try something different" ladders, so
36
+ * each rung of those climbs one effort level on a model that accepts effort.
37
+ */
38
+ export const TEMPERATURE_PER_EFFORT_STEP = 0.3;
33
39
  /**
34
40
  * Output-token ceiling used by the retry escalator when a model config declares no
35
41
  * `maxTokensCap`. Deliberately high (192K) — it exceeds many real per-request output
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAA;AAEjD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,gCAAgC,CAAA;AAEjE,0FAA0F;AAC1F,MAAM,CAAC,MAAM,cAAc,GAAG,6BAA6B,CAAA;AAE3D,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAEtC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,KAAK,CAAA;AAE/C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEvC,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAa,IAAI,CAAA;AAE/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,6DAA6D;MACzF,gHAAgH;MAChH,iGAAiG;MACjG,2EAA2E,CAAA;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAA;AAE7C,uFAAuF;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAE3C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAA8C;IACrE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;IAClD,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC9B,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;IACjE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;CACjE,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS;CACrF,CAAA"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAA;AAEjD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,gCAAgC,CAAA;AAEjE,0FAA0F;AAC1F,MAAM,CAAC,MAAM,cAAc,GAAG,6BAA6B,CAAA;AAE3D,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAEtC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,KAAK,CAAA;AAE/C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEvC,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAa,IAAI,CAAA;AAE/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,6DAA6D;MACzF,gHAAgH;MAChH,iGAAiG;MACjG,2EAA2E,CAAA;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAA;AAE7C,uFAAuF;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAE3C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAA8C;IACrE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;IAClD,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC9B,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;IACjE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;CACjE,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS;CACrF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/execution/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AASlE,OAAO,KAAK,EACkB,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EACrD,oBAAoB,EACrD,MAAM,YAAY,CAAA;AAMnB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,WAClE,uBAAuB,QAC1B,MAAM,gBAAgB,CAAC,CAAC,CAAC,KAC9B,gBAAgB,CAAC,CAAC,CAiLpB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,UACrE,MAAM,YACJ,uBAAuB,KAC/B,gBAAgB,CAAC,CAAC,CAMpB,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,cAAc,GAAG,cAAc,OAEtF,CAAC,UACC,MAAM,YACJ,uBAAuB,KAC/B,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAQ5B,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/execution/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AASlE,OAAO,KAAK,EACkB,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EACrD,oBAAoB,EACrD,MAAM,YAAY,CAAA;AAOnB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,WAClE,uBAAuB,QAC1B,MAAM,gBAAgB,CAAC,CAAC,CAAC,KAC9B,gBAAgB,CAAC,CAAC,CAyLpB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,UACrE,MAAM,YACJ,uBAAuB,KAC/B,gBAAgB,CAAC,CAAC,CAMpB,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,cAAc,GAAG,cAAc,OAEtF,CAAC,UACC,MAAM,YACJ,uBAAuB,KAC/B,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAQ5B,CAAA"}
@@ -3,7 +3,8 @@ import { capAnswer, defaultAnswerFor, ExecutionEffort, ExecutionLevel, InquiryPo
3
3
  import { COLLABORATOR_KEYS, EXECUTION_SERVICE } from '../consts.js';
4
4
  import { InquiryDeclined } from '../inquiry/errors.js';
5
5
  import { inquiryTransportFor } from '../inquiry/transport.js';
6
- import { composeExecState, composeTaskState, effortPatch, freeze, mergeOverride, mergePolicy, mergePrompt, resolveRole, } from './utils.js';
6
+ import { temperatureSteps } from '../utils/effort.js';
7
+ import { composeExecState, composeTaskState, effortPatch, freeze, mergeOverride, mergePolicy, mergePrompt, raisedEffort, resolveRole, } from './utils.js';
7
8
  /**
8
9
  * Build the execution service implementation WITHOUT registering it as a context
9
10
  * service, so a consumer can publish extra methods alongside it (observability
@@ -110,13 +111,21 @@ export const executionServiceApi = (options, self) => {
110
111
  };
111
112
  return self().model(scoped, exec.policy.utilityRole ?? UTILITY_ROLE, override);
112
113
  },
113
- temperatureFactory: (exec, role, baseOverride) => temperature => self().model(exec, role, {
114
+ temperatureFactory: (exec, role, baseOverride) => temperature => {
114
115
  // A budget the helper was built with survives a temperature refinement — the
115
116
  // work is the same size whether or not it is being retried creatively.
116
- ...(typeof baseOverride === 'object' ? baseOverride : {}),
117
- ...(temperature != null ? { temperature } : {}),
118
- ...(temperature != null && temperature > 0.2 ? { topP: 0.8 } : {}),
119
- }),
117
+ const sizing = typeof baseOverride === 'object' ? baseOverride : {};
118
+ // Most models that take effort have taken sampling away, so "hotter" alone would
119
+ // change nothing on the wire. The same request climbs effort alongside it.
120
+ const steps = temperatureSteps(temperature);
121
+ const effort = steps > 0 ? raisedEffort(self().model(exec, role, sizing), steps) : undefined;
122
+ return self().model(exec, role, {
123
+ ...sizing,
124
+ ...(temperature != null ? { temperature } : {}),
125
+ ...(temperature != null && temperature > 0.2 ? { topP: 0.8 } : {}),
126
+ ...(effort != null ? { effort } : {}),
127
+ });
128
+ },
120
129
  use: plugin => {
121
130
  // Seated by alias when it has one: mixins compose, and a layer wired twice would otherwise
122
131
  // answer twice — silently, since the first usable answer wins.
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/execution/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/execution/service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { ExecutionEffort, ExecutionState, ModelConfigOverride, ModelConfigPatch, ModelPolicy, ModelRole, PromptPolicy, TaskExecutionState } from '@owlmeans/llm-common';
1
+ import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
2
+ import type { ExecutionEffort, ExecutionState, ModelConfigOverride, ModelConfigPatch, ModelEffort, ModelPolicy, ModelRole, PromptPolicy, TaskExecutionState } from '@owlmeans/llm-common';
2
3
  import type { Execution, TaskExecution } from './types.js';
3
4
  export declare const freeze: <T extends object>(o: T) => Readonly<T>;
4
5
  /** Overlay a partial policy onto a base one. Override maps are merged, not replaced. */
@@ -17,6 +18,11 @@ export declare const mergePrompt: (base: PromptPolicy | undefined, patch: Prompt
17
18
  /** Apply the policy's role→role remap. */
18
19
  export declare const resolveRole: (policy: ModelPolicy, role: ModelRole) => ModelRole;
19
20
  export declare const effortPatch: (effort: ExecutionEffort) => ModelConfigPatch;
21
+ /**
22
+ * The effort `steps` levels above what `model` was built with (its model's default when it
23
+ * declares none), or `undefined` when that model accepts no effort.
24
+ */
25
+ export declare const raisedEffort: (model: BaseChatModel, steps: number) => ModelEffort | undefined;
20
26
  /** Normalize a {@link ModelConfigOverride} (alias or patch) to a patch. */
21
27
  export declare const resolveModelConfig: (override: ModelConfigOverride) => ModelConfigPatch;
22
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/execution/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EACtE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EACzD,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1D,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,KAAK,CAAC,KAAG,QAAQ,CAAC,CAAC,CAAqB,CAAA;AAE/E,wFAAwF;AACxF,eAAO,MAAM,WAAW,SAAU,WAAW,SAAS,OAAO,CAAC,WAAW,CAAC,KAAG,WAe5E,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,SAChB,YAAY,GAAG,SAAS,SACvB,YAAY,GAAG,SAAS,KAC9B,YAAY,GAAG,SAYjB,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,WAAW,WAAY,WAAW,QAAQ,SAAS,KAAG,SACF,CAAA;AAEjE,eAAO,MAAM,WAAW,WAAY,eAAe,KAAG,gBAAwC,CAAA;AAE9F,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,aAAc,mBAAmB,KAAG,gBACH,CAAA;AAEhE;;;GAGG;AACH,eAAO,MAAM,aAAa,eACZ,gBAAgB,kBACZ,mBAAmB,GAAG,SAAS,gBACjC,mBAAmB,GAAG,SAAS,KAC5C,gBAIF,CAAA;AAID;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAU,SAAS,oBAAoB,MAAM,EAAE,KAAG,cAQ9E,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAU,aAAa,oBAAoB,MAAM,EAAE,KAAG,kBAWlF,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAEhF,OAAO,KAAK,EACV,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EACnF,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EACzD,MAAM,sBAAsB,CAAA;AAK7B,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1D,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,KAAK,CAAC,KAAG,QAAQ,CAAC,CAAC,CAAqB,CAAA;AAE/E,wFAAwF;AACxF,eAAO,MAAM,WAAW,SAAU,WAAW,SAAS,OAAO,CAAC,WAAW,CAAC,KAAG,WAe5E,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,SAChB,YAAY,GAAG,SAAS,SACvB,YAAY,GAAG,SAAS,KAC9B,YAAY,GAAG,SAYjB,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,WAAW,WAAY,WAAW,QAAQ,SAAS,KAAG,SACF,CAAA;AAEjE,eAAO,MAAM,WAAW,WAAY,eAAe,KAAG,gBAAwC,CAAA;AAE9F;;;GAGG;AACH,eAAO,MAAM,YAAY,UAAW,aAAa,SAAS,MAAM,KAAG,WAAW,GAAG,SAIhF,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,aAAc,mBAAmB,KAAG,gBACH,CAAA;AAEhE;;;GAGG;AACH,eAAO,MAAM,aAAa,eACZ,gBAAgB,kBACZ,mBAAmB,GAAG,SAAS,gBACjC,mBAAmB,GAAG,SAAS,KAC5C,gBAIF,CAAA;AAID;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAU,SAAS,oBAAoB,MAAM,EAAE,KAAG,cAQ9E,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAU,aAAa,oBAAoB,MAAM,EAAE,KAAG,kBAWlF,CAAA"}
@@ -1,5 +1,8 @@
1
1
  import { ExecutionLevel } from '@owlmeans/llm-common';
2
2
  import { EFFORT_TABLE } from '../consts.js';
3
+ import { effortSupportOf } from '../plugins/index.js';
4
+ import { readConfig } from '../utils/config.js';
5
+ import { raiseEffort } from '../utils/effort.js';
3
6
  export const freeze = (o) => Object.freeze(o);
4
7
  /** Overlay a partial policy onto a base one. Override maps are merged, not replaced. */
5
8
  export const mergePolicy = (base, patch) => {
@@ -42,6 +45,15 @@ export const mergePrompt = (base, patch) => {
42
45
  /** Apply the policy's role→role remap. */
43
46
  export const resolveRole = (policy, role) => policy.roleOverrides?.[role] ?? role;
44
47
  export const effortPatch = (effort) => EFFORT_TABLE[effort];
48
+ /**
49
+ * The effort `steps` levels above what `model` was built with (its model's default when it
50
+ * declares none), or `undefined` when that model accepts no effort.
51
+ */
52
+ export const raisedEffort = (model, steps) => {
53
+ const config = readConfig(model);
54
+ const support = effortSupportOf(config);
55
+ return support != null ? raiseEffort(support, config.effort, steps) : undefined;
56
+ };
45
57
  /** Normalize a {@link ModelConfigOverride} (alias or patch) to a patch. */
46
58
  export const resolveModelConfig = (override) => typeof override === 'string' ? { preset: override } : override;
47
59
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/execution/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/execution/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ModelConfig } from '../types.js';
2
+ /**
3
+ * What a rung naming a DIFFERENT provider still takes from the rung above it: the deployment's
4
+ * budgets. Everything else there — the secret, headers, base URL, thinking and sampling
5
+ * switches, effort — belongs to the other provider and would be wrong, or a 400, on this one.
6
+ */
7
+ export declare const PROVIDER_NEUTRAL_FIELDS: readonly ["maxTokens", "maxTokensCap", "streamTimeout", "cacheKey"];
8
+ /**
9
+ * Every config a role can be escalated through, fully merged, primary first; none keeps a
10
+ * `fallback`. This is exactly what `LlmService.getModel` builds, so a preset check or a price
11
+ * list that walks it sees the same models the escalator will call.
12
+ *
13
+ * Each `fallback` is merged over the rung above it and may carry its own, which chains. A
14
+ * fallback on the same provider inherits every field it does not name; one naming another
15
+ * `provider` inherits only {@link PROVIDER_NEUTRAL_FIELDS}.
16
+ */
17
+ export declare const resolveFallbacks: (config: ModelConfig) => ModelConfig[];
18
+ //# sourceMappingURL=fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../src/helpers/fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,qEAEiB,CAAA;AAOrD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,WAAY,WAAW,KAAG,WAAW,EAejE,CAAA"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * What a rung naming a DIFFERENT provider still takes from the rung above it: the deployment's
3
+ * budgets. Everything else there — the secret, headers, base URL, thinking and sampling
4
+ * switches, effort — belongs to the other provider and would be wrong, or a 400, on this one.
5
+ */
6
+ export const PROVIDER_NEUTRAL_FIELDS = [
7
+ 'maxTokens', 'maxTokensCap', 'streamTimeout', 'cacheKey',
8
+ ];
9
+ const neutral = (config) => Object.fromEntries(PROVIDER_NEUTRAL_FIELDS.filter(key => config[key] !== undefined).map(key => [key, config[key]]));
10
+ /**
11
+ * Every config a role can be escalated through, fully merged, primary first; none keeps a
12
+ * `fallback`. This is exactly what `LlmService.getModel` builds, so a preset check or a price
13
+ * list that walks it sees the same models the escalator will call.
14
+ *
15
+ * Each `fallback` is merged over the rung above it and may carry its own, which chains. A
16
+ * fallback on the same provider inherits every field it does not name; one naming another
17
+ * `provider` inherits only {@link PROVIDER_NEUTRAL_FIELDS}.
18
+ */
19
+ export const resolveFallbacks = (config) => {
20
+ const rungs = [];
21
+ let patch = config;
22
+ while (patch != null) {
23
+ const next = patch.fallback;
24
+ const { fallback: _chained, ...own } = patch;
25
+ const above = rungs[rungs.length - 1];
26
+ const base = above == null
27
+ ? {}
28
+ : own.provider != null && own.provider !== above.provider ? neutral(above) : above;
29
+ rungs.push({ ...base, ...own, alias: config.alias });
30
+ patch = next;
31
+ }
32
+ return rungs;
33
+ };
34
+ //# sourceMappingURL=fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/helpers/fallback.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU;CACL,CAAA;AAErD,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAwB,EAAE,CAC5D,MAAM,CAAC,WAAW,CAChB,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACxE,CAAA;AAE3B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAiB,EAAE;IACrE,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,IAAI,KAAK,GAAqC,MAAM,CAAA;IACpD,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAqC,KAAK,CAAC,QAAQ,CAAA;QAC7D,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAA;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACrC,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI;YACxB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACpF,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAiB,CAAC,CAAA;QACnE,KAAK,GAAG,IAAI,CAAA;IACd,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -3,4 +3,5 @@ export * from './json.js';
3
3
  export * from './messages.js';
4
4
  export * from './spectate.js';
5
5
  export * from './cache.js';
6
+ export * from './fallback.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA"}
@@ -3,4 +3,5 @@ export * from './json.js';
3
3
  export * from './messages.js';
4
4
  export * from './spectate.js';
5
5
  export * from './cache.js';
6
+ export * from './fallback.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA"}
package/build/index.d.ts CHANGED
@@ -8,8 +8,8 @@ export * from './execution/index.js';
8
8
  export * from './inquiry/index.js';
9
9
  export * from './prompt/index.js';
10
10
  export type * from './plugins/types.js';
11
- export { plugins, registerLlmPlugin, pluginOf, pluginFor, resolvePlugin } from './plugins/index.js';
12
- export { anthropicPlugin, ANTHROPIC_FAMILY, NO_SAMPLING_PREFIXES, rejectsSampling } from './plugins/anthropic.js';
11
+ export { plugins, registerLlmPlugin, pluginOf, pluginFor, resolvePlugin, effortSupportOf, } from './plugins/index.js';
12
+ export { anthropicPlugin, ANTHROPIC_FAMILY, ANTHROPIC_EFFORT_SUPPORT, NO_SAMPLING_PREFIXES, rejectsSampling, } from './plugins/anthropic.js';
13
13
  export { compatiblePlugin } from './plugins/compatible.js';
14
- export { openAiPlugin, openAiFamily, OPENAI_FAMILY, RESPONSES_API_PREFIXES, usesResponsesApi, } from './plugins/openai.js';
14
+ export { openAiPlugin, openAiFamily, OPENAI_FAMILY, OPENAI_EFFORT_SUPPORT, REASONING_MIN_MAX_TOKENS, RESPONSES_API_PREFIXES, usesResponsesApi, } from './plugins/openai.js';
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,mBAAmB,YAAY,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,mBAAmB,oBAAoB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,gBAAgB,GACpF,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,mBAAmB,YAAY,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,mBAAmB,oBAAoB,CAAA;AACvC,OAAO,EACL,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,GAChF,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,oBAAoB,EACjF,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,wBAAwB,EAC1F,sBAAsB,EAAE,gBAAgB,GACzC,MAAM,qBAAqB,CAAA"}
package/build/index.js CHANGED
@@ -6,8 +6,8 @@ export * from './helpers/index.js';
6
6
  export * from './execution/index.js';
7
7
  export * from './inquiry/index.js';
8
8
  export * from './prompt/index.js';
9
- export { plugins, registerLlmPlugin, pluginOf, pluginFor, resolvePlugin } from './plugins/index.js';
10
- export { anthropicPlugin, ANTHROPIC_FAMILY, NO_SAMPLING_PREFIXES, rejectsSampling } from './plugins/anthropic.js';
9
+ export { plugins, registerLlmPlugin, pluginOf, pluginFor, resolvePlugin, effortSupportOf, } from './plugins/index.js';
10
+ export { anthropicPlugin, ANTHROPIC_FAMILY, ANTHROPIC_EFFORT_SUPPORT, NO_SAMPLING_PREFIXES, rejectsSampling, } from './plugins/anthropic.js';
11
11
  export { compatiblePlugin } from './plugins/compatible.js';
12
- export { openAiPlugin, openAiFamily, OPENAI_FAMILY, RESPONSES_API_PREFIXES, usesResponsesApi, } from './plugins/openai.js';
12
+ export { openAiPlugin, openAiFamily, OPENAI_FAMILY, OPENAI_EFFORT_SUPPORT, REASONING_MIN_MAX_TOKENS, RESPONSES_API_PREFIXES, usesResponsesApi, } from './plugins/openai.js';
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAE3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,gBAAgB,GACpF,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAE3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AAEjC,OAAO,EACL,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,GAChF,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,oBAAoB,EACjF,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,wBAAwB,EAC1F,sBAAsB,EAAE,gBAAgB,GACzC,MAAM,qBAAqB,CAAA"}
package/build/model.d.ts CHANGED
@@ -4,9 +4,10 @@ import type { LlmModel, LlmModelOptions, LlmSpectator } from './types.js';
4
4
  *
5
5
  * Everything provider-specific — how the client is refined between retries, how
6
6
  * structured output is requested, whether prompt caching exists — is delegated to the
7
- * `LlmPlugin` resolved for this model (see `plugins/`). The model itself only owns the
8
- * provider-independent parts: streaming under an idle deadline, retry/fallback
9
- * escalation, schema validation and coercion, spectator logging, and null diagnostics.
7
+ * `LlmPlugin` of the rung being called (see `plugins/`), so a fallback on another provider is
8
+ * asked in that provider's shape. The model itself only owns the provider-independent parts:
9
+ * streaming under an idle deadline, retry/fallback escalation, schema validation and
10
+ * coercion, spectator logging, and null diagnostics.
10
11
  */
11
12
  export declare const makeLlmModel: ({ model, outputErrors, captureNull, retries, purpose, prompt, prompts, files, utility, }: LlmModelOptions, spectator: LlmSpectator) => LlmModel;
12
13
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACuB,QAAQ,EAAE,eAAe,EAC1D,YAAY,EACb,MAAM,YAAY,CAAA;AA8CnB;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,6FAUtB,eAAe,aAAa,YAAY,KAAG,QAmd7C,CAAA"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACuB,QAAQ,EAAE,eAAe,EAC1D,YAAY,EACb,MAAM,YAAY,CAAA;AAmDnB;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,6FAUtB,eAAe,aAAa,YAAY,KAAG,QAqf7C,CAAA"}