@zhihaohong52/sonata 0.8.2 → 0.9.0
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.
- package/README.md +4 -0
- package/dist/adapters/claude.js +21 -3
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex.js +11 -1
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/opencode.js +19 -1
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/adapters/pi.js +14 -1
- package/dist/adapters/pi.js.map +1 -1
- package/dist/adapters/reasonix.js +10 -1
- package/dist/adapters/reasonix.js.map +1 -1
- package/dist/catalog.js +252 -33
- package/dist/catalog.js.map +1 -1
- package/dist/cli.js +127 -9
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.js +258 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/catalog.js +74 -11
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/dispatch.js +27 -10
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/doctor.js +82 -5
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/reset.js +340 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/route.js +139 -16
- package/dist/commands/route.js.map +1 -1
- package/dist/commands/run.js +6 -0
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/tail.js +30 -2
- package/dist/commands/tail.js.map +1 -1
- package/dist/commands/usage.js +19 -0
- package/dist/commands/usage.js.map +1 -1
- package/dist/commands/verify.js +16 -3
- package/dist/commands/verify.js.map +1 -1
- package/dist/config.js +25 -4
- package/dist/config.js.map +1 -1
- package/dist/detect.js +14 -4
- package/dist/detect.js.map +1 -1
- package/dist/effort.js +68 -0
- package/dist/effort.js.map +1 -0
- package/dist/extended-context.js +3 -2
- package/dist/extended-context.js.map +1 -1
- package/dist/init/guidance.js +117 -36
- package/dist/init/guidance.js.map +1 -1
- package/dist/init/helpers.js +4 -1
- package/dist/init/helpers.js.map +1 -1
- package/dist/init/interactive-state.js +25 -0
- package/dist/init/interactive-state.js.map +1 -1
- package/dist/init/plan.js +48 -7
- package/dist/init/plan.js.map +1 -1
- package/dist/init/toml.js +154 -2
- package/dist/init/toml.js.map +1 -1
- package/dist/ledger.js.map +1 -1
- package/dist/modelsdev.js +113 -0
- package/dist/modelsdev.js.map +1 -1
- package/dist/native/router.js +285 -6
- package/dist/native/router.js.map +1 -1
- package/dist/native/tenants.js +12 -1
- package/dist/native/tenants.js.map +1 -1
- package/dist/pricing.js +129 -1
- package/dist/pricing.js.map +1 -1
- package/dist/settings.js +28 -0
- package/dist/settings.js.map +1 -1
- package/dist/tui-ink/agents-app.js +67 -0
- package/dist/tui-ink/agents-app.js.map +1 -0
- package/dist/tui-ink/agents-run.js +23 -0
- package/dist/tui-ink/agents-run.js.map +1 -0
- package/dist/tui-ink/app-state.js +106 -2
- package/dist/tui-ink/app-state.js.map +1 -1
- package/dist/tui-ink/app.js +107 -16
- package/dist/tui-ink/app.js.map +1 -1
- package/dist/tui-ink/components/models-step.js +17 -4
- package/dist/tui-ink/components/models-step.js.map +1 -1
- package/package.json +1 -1
package/dist/native/router.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
1
2
|
import { createServer } from 'node:http';
|
|
2
3
|
import { budgetRefusal } from '../budget.js';
|
|
3
4
|
import { SONATA_PROJECT_HEADER, TenantError } from './tenants.js';
|
|
4
5
|
import { SONATA_TOKEN_HEADER, projectHintAuthorised } from './router-token.js';
|
|
6
|
+
import { joinCandidate, splitCandidate } from '../effort.js';
|
|
5
7
|
import { createUsageCollector, usageFromJsonBody } from './usage.js';
|
|
6
8
|
export const DEFAULT_TENANT = { id: 'default' };
|
|
7
9
|
/** The model name LiteLLM knows a tenant's key by. */
|
|
@@ -99,6 +101,9 @@ function withUsageRecording(response, ctx, deps) {
|
|
|
99
101
|
role: ctx.role,
|
|
100
102
|
tier: ctx.tier,
|
|
101
103
|
key: ctx.key,
|
|
104
|
+
// Only when a level was sent: an absent field means "no level was
|
|
105
|
+
// asked for", which is a different fact from `effort: undefined`.
|
|
106
|
+
...(ctx.effort === undefined ? {} : { effort: ctx.effort }),
|
|
102
107
|
gateway: ctx.gateway,
|
|
103
108
|
upstream: ctx.upstream,
|
|
104
109
|
litellmModel: response.headers['x-litellm-model-name'],
|
|
@@ -161,6 +166,51 @@ export function withModel(body, model) {
|
|
|
161
166
|
}
|
|
162
167
|
return Buffer.from(JSON.stringify({ ...payload, model }));
|
|
163
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Pins a request to a reasoning-effort level, for a tier candidate that
|
|
171
|
+
* carries one (`luna@xhigh`).
|
|
172
|
+
*
|
|
173
|
+
* Sets top-level `reasoning_effort` — LiteLLM's Anthropic-messages passthrough
|
|
174
|
+
* reads it and maps it per provider (Responses `reasoning.effort`, Gemini
|
|
175
|
+
* thinking level, xAI `reasoning_effort`) — and DELETES `thinking` and
|
|
176
|
+
* `output_config.effort`. That deletion is the load-bearing part: LiteLLM
|
|
177
|
+
* translates Claude Code's `thinking: {type: "adaptive"}` into
|
|
178
|
+
* `reasoning_effort: medium` when it is present, so leaving both in is how an
|
|
179
|
+
* explicit `xhigh` gets silently overwritten by the adaptive default. The
|
|
180
|
+
* ranking scored this model at the stated level; a request that runs it at
|
|
181
|
+
* another describes a different model.
|
|
182
|
+
*
|
|
183
|
+
* Applied on both transports. On `direct` the body is otherwise passed
|
|
184
|
+
* through byte-identical because assistant blocks carry opaque vendor state;
|
|
185
|
+
* one top-level key leaves those blocks untouched, and an Anthropic-wire
|
|
186
|
+
* upstream ignores a key it does not know (measured 2026-09-14 against
|
|
187
|
+
* DeepSeek's `/anthropic/v1/messages`: 200 with `reasoning_effort: "bogus"`).
|
|
188
|
+
*
|
|
189
|
+
* A bare candidate (no effort) returns the identical buffer — exactly the
|
|
190
|
+
* request that shipped before levels existed. What the router cannot tell is
|
|
191
|
+
* whether the upstream HONOURED the level: `drop_params: true` means a
|
|
192
|
+
* provider with no effort control drops the field silently. Same class as
|
|
193
|
+
* unpriced volume — recorded on the ledger row, never assumed applied.
|
|
194
|
+
*/
|
|
195
|
+
export function withEffort(body, effort) {
|
|
196
|
+
if (effort === undefined)
|
|
197
|
+
return body;
|
|
198
|
+
let payload;
|
|
199
|
+
try {
|
|
200
|
+
payload = JSON.parse(body.toString());
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
return body;
|
|
204
|
+
}
|
|
205
|
+
const { thinking: _thinking, output_config: outputConfig, ...rest } = payload;
|
|
206
|
+
const out = { ...rest, reasoning_effort: effort };
|
|
207
|
+
if (typeof outputConfig === 'object' && outputConfig !== null && !Array.isArray(outputConfig)) {
|
|
208
|
+
const { effort: _effort, ...keptConfig } = outputConfig;
|
|
209
|
+
if (Object.keys(keptConfig).length > 0)
|
|
210
|
+
out.output_config = keptConfig;
|
|
211
|
+
}
|
|
212
|
+
return Buffer.from(JSON.stringify(out));
|
|
213
|
+
}
|
|
164
214
|
export const TIER_COOLDOWN_MS = 60_000;
|
|
165
215
|
/**
|
|
166
216
|
* How many identical capability 400s from one candidate earn it a cooldown.
|
|
@@ -213,9 +263,170 @@ const cooldowns = new Map();
|
|
|
213
263
|
* failures add up to a cooldown neither one earned.
|
|
214
264
|
*/
|
|
215
265
|
const capability400Counts = new Map();
|
|
266
|
+
/**
|
|
267
|
+
* How long a conversation stays pinned to the candidate that served it.
|
|
268
|
+
*
|
|
269
|
+
* Long enough to cover a subagent's whole run — the agents this protects are
|
|
270
|
+
* the long multi-turn ones — and short enough that an idle entry ages out
|
|
271
|
+
* rather than pinning a conversation to a model the ranking has since moved
|
|
272
|
+
* on from.
|
|
273
|
+
*/
|
|
274
|
+
export const STICKY_TTL_MS = 2 * 60 * 60 * 1000;
|
|
275
|
+
/**
|
|
276
|
+
* Cap on remembered conversations, so a long-lived router cannot grow this
|
|
277
|
+
* without bound. Eviction is oldest-touched-first (Map preserves insertion
|
|
278
|
+
* order and `stickySet` re-inserts), which is the right victim: a conversation
|
|
279
|
+
* nobody has spoken to in a thousand others' time is over.
|
|
280
|
+
*/
|
|
281
|
+
export const STICKY_MAX_CONVERSATIONS = 1000;
|
|
282
|
+
/**
|
|
283
|
+
* Which candidate last served a given conversation.
|
|
284
|
+
*
|
|
285
|
+
* Ranked fallback picks a candidate *per request*, which is correct for a
|
|
286
|
+
* single request and wrong for a conversation: a transcript carrying one
|
|
287
|
+
* model's extended-thinking blocks handed to a different model is rejected
|
|
288
|
+
* outright — `The content[].thinking in the thinking mode must be passed back
|
|
289
|
+
* to the API`, a 400 that kills the agent mid-task and reads as a defect in
|
|
290
|
+
* its own work. Remembering who served a conversation lets the router prefer
|
|
291
|
+
* that candidate, and lets it know when it is about to switch.
|
|
292
|
+
*/
|
|
293
|
+
const stickyCandidates = new Map();
|
|
294
|
+
function stickyGet(conversation, at) {
|
|
295
|
+
const hit = stickyCandidates.get(conversation);
|
|
296
|
+
if (hit === undefined)
|
|
297
|
+
return undefined;
|
|
298
|
+
if (at - hit.at > STICKY_TTL_MS) {
|
|
299
|
+
stickyCandidates.delete(conversation);
|
|
300
|
+
return undefined;
|
|
301
|
+
}
|
|
302
|
+
return hit;
|
|
303
|
+
}
|
|
304
|
+
function stickySet(conversation, key, at) {
|
|
305
|
+
// Delete-then-set moves the entry to the end of the insertion order, so a
|
|
306
|
+
// conversation still in use is never the eviction victim.
|
|
307
|
+
stickyCandidates.delete(conversation);
|
|
308
|
+
stickyCandidates.set(conversation, { key, at, prefer: true });
|
|
309
|
+
if (stickyCandidates.size > STICKY_MAX_CONVERSATIONS) {
|
|
310
|
+
const oldest = stickyCandidates.keys().next();
|
|
311
|
+
if (!oldest.done)
|
|
312
|
+
stickyCandidates.delete(oldest.value);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Stop *preferring* a candidate that just 400d, without forgetting that it
|
|
317
|
+
* served this conversation.
|
|
318
|
+
*
|
|
319
|
+
* The two are different facts and the entry has to keep both. Dropping the
|
|
320
|
+
* record outright — the obvious fix — reopens the hole this whole mechanism
|
|
321
|
+
* exists to close: the next request would find no entry, so `foreign` would be
|
|
322
|
+
* false, so the transcript would reach a different model with the 400ing
|
|
323
|
+
* model's thinking blocks still in it. Preference is what must lapse; the
|
|
324
|
+
* memory of whose reasoning is in the history must not.
|
|
325
|
+
*
|
|
326
|
+
* Only the candidate that actually holds the pin may drop it, so an older
|
|
327
|
+
* concurrent request cannot clear a pin a newer one has since set.
|
|
328
|
+
*/
|
|
329
|
+
function stickyDemote(conversation, key) {
|
|
330
|
+
const hit = stickyCandidates.get(conversation);
|
|
331
|
+
if (hit === undefined || hit.key !== key)
|
|
332
|
+
return;
|
|
333
|
+
hit.prefer = false;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* A stable identity for the conversation this request belongs to.
|
|
337
|
+
*
|
|
338
|
+
* The first message is the one part of a transcript that does not change as
|
|
339
|
+
* turns are appended, so hashing it gives the same answer on turn 1 and turn
|
|
340
|
+
* 40. The alias and tenant join it because two roles are two conversations
|
|
341
|
+
* even when their opening message is identical, and two projects are never the
|
|
342
|
+
* same conversation.
|
|
343
|
+
*
|
|
344
|
+
* A collision — two agents genuinely opened with the same text — costs nothing
|
|
345
|
+
* beyond a shared preference, since this only reorders candidates that were
|
|
346
|
+
* all eligible anyway. `undefined` (an unparseable or empty body) simply means
|
|
347
|
+
* no stickiness, which is the behaviour that shipped before this existed.
|
|
348
|
+
*/
|
|
349
|
+
export function conversationKey(body, tenant, alias) {
|
|
350
|
+
try {
|
|
351
|
+
const messages = JSON.parse(body.toString()).messages;
|
|
352
|
+
if (!Array.isArray(messages) || messages.length === 0)
|
|
353
|
+
return undefined;
|
|
354
|
+
return createHash('sha256')
|
|
355
|
+
.update(`${tenant}\u0000${alias}\u0000${JSON.stringify(messages[0])}`)
|
|
356
|
+
.digest('hex')
|
|
357
|
+
.slice(0, 16);
|
|
358
|
+
}
|
|
359
|
+
catch {
|
|
360
|
+
return undefined;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
function isThinkingBlock(block) {
|
|
364
|
+
if (typeof block !== 'object' || block === null)
|
|
365
|
+
return false;
|
|
366
|
+
const type = block.type;
|
|
367
|
+
return type === 'thinking' || type === 'redacted_thinking';
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Drop extended-thinking blocks a *different* model produced.
|
|
371
|
+
*
|
|
372
|
+
* Called only when the candidate about to serve is not the one that served
|
|
373
|
+
* this conversation before. Those blocks are that other model's internal
|
|
374
|
+
* reasoning: the new model cannot read them, and several upstreams reject the
|
|
375
|
+
* whole request rather than ignore them. `redacted_thinking` carries opaque
|
|
376
|
+
* vendor state the producing upstream requires echoed back exactly — which is
|
|
377
|
+
* precisely why it cannot travel to a different vendor.
|
|
378
|
+
*
|
|
379
|
+
* Assistant *text* and tool_use blocks are untouched, so the conversation's
|
|
380
|
+
* actual content survives; what is lost is reasoning the new model was never
|
|
381
|
+
* going to be able to use. The alternative is not a richer transcript, it is a
|
|
382
|
+
* 400.
|
|
383
|
+
*
|
|
384
|
+
* An assistant turn left with no content at all is dropped rather than sent
|
|
385
|
+
* empty: an empty content array is itself a 400, and a turn that was nothing
|
|
386
|
+
* but thinking carried nothing the next model can act on.
|
|
387
|
+
*/
|
|
388
|
+
export function stripForeignThinking(body) {
|
|
389
|
+
let payload;
|
|
390
|
+
try {
|
|
391
|
+
payload = JSON.parse(body.toString());
|
|
392
|
+
}
|
|
393
|
+
catch {
|
|
394
|
+
return body;
|
|
395
|
+
}
|
|
396
|
+
const messages = payload.messages;
|
|
397
|
+
if (!Array.isArray(messages))
|
|
398
|
+
return body;
|
|
399
|
+
let changed = false;
|
|
400
|
+
const out = [];
|
|
401
|
+
for (const message of messages) {
|
|
402
|
+
const record = typeof message === 'object' && message !== null ? message : undefined;
|
|
403
|
+
if (record === undefined || record.role !== 'assistant' || !Array.isArray(record.content)) {
|
|
404
|
+
out.push(message);
|
|
405
|
+
continue;
|
|
406
|
+
}
|
|
407
|
+
const kept = record.content.filter((block) => !isThinkingBlock(block));
|
|
408
|
+
if (kept.length === record.content.length) {
|
|
409
|
+
out.push(message);
|
|
410
|
+
continue;
|
|
411
|
+
}
|
|
412
|
+
changed = true;
|
|
413
|
+
if (kept.length > 0)
|
|
414
|
+
out.push({ ...record, content: kept });
|
|
415
|
+
}
|
|
416
|
+
if (!changed)
|
|
417
|
+
return body;
|
|
418
|
+
return Buffer.from(JSON.stringify({ ...payload, messages: out }));
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Test seam: every scrap of per-candidate and per-conversation memory the
|
|
422
|
+
* router accumulates. Sticky pins are cleared alongside the cooldowns because
|
|
423
|
+
* a conversation pinned by one test would otherwise steer the next one's
|
|
424
|
+
* candidate ordering.
|
|
425
|
+
*/
|
|
216
426
|
export function clearCooldowns() {
|
|
217
427
|
cooldowns.clear();
|
|
218
428
|
capability400Counts.clear();
|
|
429
|
+
stickyCandidates.clear();
|
|
219
430
|
}
|
|
220
431
|
/** Which capability failure this 400 body is, or undefined if it is not one. */
|
|
221
432
|
function capability400Fingerprint(body) {
|
|
@@ -558,9 +769,27 @@ async function routeTierRequest(req, deps, alias, startedAt, session, tenant, un
|
|
|
558
769
|
const now = deps.now ?? Date.now;
|
|
559
770
|
const headers = litellmHeaders(requestHeaders(req.headers), deps.litellmKey);
|
|
560
771
|
const flattened = litellmBody(req.body);
|
|
561
|
-
const
|
|
772
|
+
const ranked = resolved.routes.filter((route) => route.native !== undefined);
|
|
562
773
|
const attempts = [];
|
|
563
774
|
let skippedUnavailableLitellm = false;
|
|
775
|
+
// Which candidate already served this conversation, if any. Preferring it
|
|
776
|
+
// keeps a multi-turn agent on one model, which is what stops its transcript
|
|
777
|
+
// growing extended-thinking blocks the next candidate would reject.
|
|
778
|
+
const conversation = conversationKey(req.body, tenant.id, alias);
|
|
779
|
+
const pinned = conversation === undefined ? undefined : stickyGet(conversation, now());
|
|
780
|
+
// Two different questions, deliberately read from two fields. `lastServed`
|
|
781
|
+
// is whose extended-thinking blocks the transcript carries, and stays true
|
|
782
|
+
// until another candidate actually serves. `sticky` is who to TRY first, and
|
|
783
|
+
// lapses the moment that candidate hands back a 400.
|
|
784
|
+
const lastServed = pinned?.key;
|
|
785
|
+
const sticky = pinned?.prefer === true ? pinned.key : undefined;
|
|
786
|
+
// Preference, not a pin: the sticky candidate moves to the front and every
|
|
787
|
+
// other keeps its rank behind it. Its cooldown still applies, so a candidate
|
|
788
|
+
// that has genuinely failed is still skipped — the fallback's whole point —
|
|
789
|
+
// and the strip below is what makes that switch survivable.
|
|
790
|
+
const candidates = sticky === undefined
|
|
791
|
+
? ranked
|
|
792
|
+
: [...ranked.filter((route) => route.key === sticky), ...ranked.filter((route) => route.key !== sticky)];
|
|
564
793
|
for (const route of candidates) {
|
|
565
794
|
const cool = litellmModelName(tenant, route.key);
|
|
566
795
|
const direct = route.native?.transport === 'direct';
|
|
@@ -575,7 +804,23 @@ async function routeTierRequest(req, deps, alias, startedAt, session, tenant, un
|
|
|
575
804
|
// Only the litellm path needs the string-flattened system form and the
|
|
576
805
|
// sonata alias key rewritten in — a direct gateway has never heard of
|
|
577
806
|
// that key and understands block arrays fine.
|
|
578
|
-
|
|
807
|
+
//
|
|
808
|
+
// A conversation changing hands is the one case where the body must be
|
|
809
|
+
// edited on BOTH transports: the thinking blocks in it were produced by
|
|
810
|
+
// the candidate that is no longer serving, and the direct path's usual
|
|
811
|
+
// byte-identical contract exists to echo vendor state back to the vendor
|
|
812
|
+
// that issued it — which is exactly what has stopped being true here.
|
|
813
|
+
const foreign = lastServed !== undefined && lastServed !== route.key;
|
|
814
|
+
if (foreign) {
|
|
815
|
+
deps.log?.(`router: ${alias} conversation moving ${lastServed} -> ${route.key}, ` +
|
|
816
|
+
"dropping the previous model's thinking blocks");
|
|
817
|
+
}
|
|
818
|
+
const outbound = direct ? req.body : flattened;
|
|
819
|
+
const prepared = foreign ? stripForeignThinking(outbound) : outbound;
|
|
820
|
+
// Effort is applied last, after the strip: both touch thinking-adjacent
|
|
821
|
+
// fields for different reasons, and the strip must see the original.
|
|
822
|
+
const body = withEffort(withModel(prepared, direct ? route.native.id : cool), route.effort);
|
|
823
|
+
const variant = joinCandidate(route.key, route.effort);
|
|
579
824
|
const response = direct
|
|
580
825
|
? await forwardDirect(body, { baseUrl: route.native.baseUrl ?? '', key: deps.gatewayKeys?.(tenant)[route.native.gateway] ?? '' }, req, deps)
|
|
581
826
|
: await forwardToLitellm(body, headers, { ...req, body }, deps);
|
|
@@ -631,6 +876,14 @@ async function routeTierRequest(req, deps, alias, startedAt, session, tenant, un
|
|
|
631
876
|
capability400Counts.delete(key);
|
|
632
877
|
}
|
|
633
878
|
}
|
|
879
|
+
// The candidate handed back a 400, so it stops being the one to try
|
|
880
|
+
// first — otherwise a pinned candidate that 400s is preferred again on
|
|
881
|
+
// every retry until the 2h TTL, and an UNRECOGNISED 400 never earns the
|
|
882
|
+
// capability cooldown that would otherwise break the loop. Preference
|
|
883
|
+
// lapses; the record of whose thinking blocks are in the transcript does
|
|
884
|
+
// not, so the next candidate still gets them stripped.
|
|
885
|
+
if (conversation !== undefined)
|
|
886
|
+
stickyDemote(conversation, route.key);
|
|
634
887
|
return withUsageRecording({
|
|
635
888
|
status: response.status,
|
|
636
889
|
headers: response.headers,
|
|
@@ -644,6 +897,7 @@ async function routeTierRequest(req, deps, alias, startedAt, session, tenant, un
|
|
|
644
897
|
role: resolved.role,
|
|
645
898
|
tier: resolved.tier,
|
|
646
899
|
key: route.key,
|
|
900
|
+
effort: route.effort,
|
|
647
901
|
gateway: route.native.gateway,
|
|
648
902
|
upstream: direct ? 'direct' : 'litellm',
|
|
649
903
|
attempts,
|
|
@@ -654,7 +908,12 @@ async function routeTierRequest(req, deps, alias, startedAt, session, tenant, un
|
|
|
654
908
|
if (key.startsWith(`${cool}`))
|
|
655
909
|
capability400Counts.delete(key);
|
|
656
910
|
}
|
|
657
|
-
|
|
911
|
+
// Pin only on a response the client actually receives. A 400 handed back
|
|
912
|
+
// above is a request this candidate could not serve, and pinning to it
|
|
913
|
+
// would make the next turn prefer the model that just refused.
|
|
914
|
+
if (conversation !== undefined)
|
|
915
|
+
stickySet(conversation, route.key, now());
|
|
916
|
+
deps.log?.(`${req.method} ${req.url} model=${alias} -> ${variant} -> ${direct ? 'direct' : 'litellm'}`);
|
|
658
917
|
return withUsageRecording(response, {
|
|
659
918
|
startedAt,
|
|
660
919
|
session,
|
|
@@ -664,6 +923,7 @@ async function routeTierRequest(req, deps, alias, startedAt, session, tenant, un
|
|
|
664
923
|
role: resolved.role,
|
|
665
924
|
tier: resolved.tier,
|
|
666
925
|
key: route.key,
|
|
926
|
+
effort: route.effort,
|
|
667
927
|
gateway: route.native.gateway,
|
|
668
928
|
upstream: direct ? 'direct' : 'litellm',
|
|
669
929
|
attempts,
|
|
@@ -702,8 +962,26 @@ async function routeTierRequest(req, deps, alias, startedAt, session, tenant, un
|
|
|
702
962
|
}, deps);
|
|
703
963
|
}
|
|
704
964
|
export async function routeRequest(req, deps) {
|
|
705
|
-
const
|
|
965
|
+
const requested = requestedModel(req.body);
|
|
706
966
|
const session = req.headers['x-claude-code-session-id'];
|
|
967
|
+
// A bare model name may carry a level (`flash@low`) in the same grammar a
|
|
968
|
+
// tier candidate uses. This is how the claude harness adapter — whose
|
|
969
|
+
// `--model` names a sonata key straight to the router — honours a
|
|
970
|
+
// `sonata dispatch --model <key>@<effort>`. A tier alias never contains
|
|
971
|
+
// `@`, and a `claude-` model is Anthropic's own and passes through
|
|
972
|
+
// untouched, so neither is split.
|
|
973
|
+
let alias = requested;
|
|
974
|
+
let bareEffort;
|
|
975
|
+
if (requested !== undefined && requested.includes('@') && !requested.startsWith('sonata-') && !isClaudeRequest(req.body)) {
|
|
976
|
+
try {
|
|
977
|
+
({ key: alias, effort: bareEffort } = splitCandidate(requested));
|
|
978
|
+
}
|
|
979
|
+
catch (error) {
|
|
980
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
981
|
+
deps.log?.(`router: refused model=${requested} — ${message}`);
|
|
982
|
+
return { status: 400, headers: { 'content-type': 'application/json' }, body: anthropicErrorBody('invalid_request_error', message) };
|
|
983
|
+
}
|
|
984
|
+
}
|
|
707
985
|
// A hint is honoured only from a caller that proves it is the user: naming a
|
|
708
986
|
// project chooses that project's gateways, endpoints and stored credentials,
|
|
709
987
|
// and the router authenticates nobody on loopback. Unauthorised, the hint is
|
|
@@ -767,8 +1045,8 @@ export async function routeRequest(req, deps) {
|
|
|
767
1045
|
? req.body
|
|
768
1046
|
: alias === undefined
|
|
769
1047
|
? litellmBody(req.body)
|
|
770
|
-
: withModel(litellmBody(req.body), litellmModelName(tenant, alias));
|
|
771
|
-
deps.log?.(`${req.method} ${req.url} model=${
|
|
1048
|
+
: withEffort(withModel(litellmBody(req.body), litellmModelName(tenant, alias)), bareEffort);
|
|
1049
|
+
deps.log?.(`${req.method} ${req.url} model=${requested ?? '?'} -> ${upstream}`);
|
|
772
1050
|
if (!anthropic) {
|
|
773
1051
|
if (unavailable !== undefined) {
|
|
774
1052
|
return { status: 502, headers: { 'content-type': 'application/json' }, body: anthropicErrorBody('router_error', unavailable) };
|
|
@@ -791,6 +1069,7 @@ export async function routeRequest(req, deps) {
|
|
|
791
1069
|
// `RecordContext` fields are handled elsewhere — never an own property
|
|
792
1070
|
// with value `undefined`.
|
|
793
1071
|
...(alias !== undefined ? { key: alias, gateway: deps.resolveGateway?.(alias, tenant) } : {}),
|
|
1072
|
+
effort: bareEffort,
|
|
794
1073
|
upstream: 'litellm',
|
|
795
1074
|
attempts: [],
|
|
796
1075
|
}, deps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/native/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/native/router.ts"],"names":[],"mappings":"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"}
|
package/dist/native/tenants.js
CHANGED
|
@@ -20,6 +20,9 @@ export class TenantError extends Error {
|
|
|
20
20
|
import { existsSync, readFileSync, realpathSync } from 'node:fs';
|
|
21
21
|
import { join } from 'node:path';
|
|
22
22
|
import { GLOBAL_CONFIG_RELATIVE, configPath as resolveConfigPath, parseConfig } from '../config.js';
|
|
23
|
+
import { assertEffortsPinned, loadAaCatalog } from '../catalog.js';
|
|
24
|
+
import { loadModelsDev } from '../modelsdev.js';
|
|
25
|
+
import { configUpstreamFor } from '../pricing.js';
|
|
23
26
|
import { loadSessions } from '../sessions.js';
|
|
24
27
|
/**
|
|
25
28
|
* The canonical spelling of a config path, which is what a tenant is identified
|
|
@@ -93,7 +96,15 @@ export class TenantRegistry {
|
|
|
93
96
|
this.noted.add(cwd);
|
|
94
97
|
}
|
|
95
98
|
load(path) {
|
|
96
|
-
|
|
99
|
+
const config = parseConfig(readFileSync(path, 'utf8'));
|
|
100
|
+
// A config with no [tiers] has no candidate to pin, so it can never be
|
|
101
|
+
// refused — and this runs per request, and again per known tenant. Only
|
|
102
|
+
// the catalog read is skipped; parsing happens either way.
|
|
103
|
+
if (config.tiers === undefined)
|
|
104
|
+
return config;
|
|
105
|
+
// Router requests bypass loadConfig, so validate against this registry's cache here.
|
|
106
|
+
assertEffortsPinned(config, loadAaCatalog(this.home), configUpstreamFor(config, loadModelsDev(this.home)));
|
|
107
|
+
return config;
|
|
97
108
|
}
|
|
98
109
|
resolve(hint) {
|
|
99
110
|
const cwd = hint.project ?? (hint.session === undefined ? undefined : loadSessions(this.home)[hint.session]?.cwd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenants.js","sourceRoot":"","sources":["../../src/native/tenants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAExD,kEAAkE;AAClE,MAAM,UAAU,QAAQ,CAAC,UAAkB;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,4FAA4F;AAC5F,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,UAAU,IAAI,iBAAiB,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAC;AACvH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAStC,uGAAuG;AACvG,SAAS,cAAc,CAAC,GAAiB;IACvC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;AACzG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,cAAc;IAKN;IACA;IALF,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1B,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEpD,YACmB,IAAY,EACZ,OAAyC,EAAE;QAD3C,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAuC;IAC3D,CAAC;IAEI,WAAW;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QACrD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,GAAW;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAEO,IAAI,CAAC,IAAY;QACvB,
|
|
1
|
+
{"version":3,"file":"tenants.js","sourceRoot":"","sources":["../../src/native/tenants.ts"],"names":[],"mappings":"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"}
|