@mupt-ai/dari-router 0.2.3 → 0.2.5

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 (75) hide show
  1. package/README.md +14 -1
  2. package/dist/anonymous_actions.d.ts +18 -8
  3. package/dist/anonymous_actions.js +123 -46
  4. package/dist/anonymous_actions.js.map +1 -1
  5. package/dist/cache_behavior.js +1 -1
  6. package/dist/cache_behavior.js.map +1 -1
  7. package/dist/cache_scope.js +4 -1
  8. package/dist/cache_scope.js.map +1 -1
  9. package/dist/continuation_state.d.ts +1 -0
  10. package/dist/continuation_state.js +6 -1
  11. package/dist/continuation_state.js.map +1 -1
  12. package/dist/cost.d.ts +1 -0
  13. package/dist/cost.js +57 -36
  14. package/dist/cost.js.map +1 -1
  15. package/dist/eval_score_imputation.d.ts +14 -3
  16. package/dist/eval_score_imputation.js +82 -59
  17. package/dist/eval_score_imputation.js.map +1 -1
  18. package/dist/fixed_turn_cost_config.d.ts +2 -0
  19. package/dist/fixed_turn_cost_config.js +8 -0
  20. package/dist/fixed_turn_cost_config.js.map +1 -1
  21. package/dist/index.d.ts +0 -2
  22. package/dist/index.js +0 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/jev_client.d.ts +31 -0
  25. package/dist/jev_client.js +115 -0
  26. package/dist/jev_client.js.map +1 -0
  27. package/dist/jev_eval_relevance.d.ts +49 -0
  28. package/dist/jev_eval_relevance.js +176 -0
  29. package/dist/jev_eval_relevance.js.map +1 -0
  30. package/dist/jev_selector.d.ts +3 -27
  31. package/dist/jev_selector.js +31 -221
  32. package/dist/jev_selector.js.map +1 -1
  33. package/dist/model_ids.js +10 -3
  34. package/dist/model_ids.js.map +1 -1
  35. package/dist/pi_context.js.map +1 -1
  36. package/dist/pi_options.js +83 -26
  37. package/dist/pi_options.js.map +1 -1
  38. package/dist/pi_output.js +2 -2
  39. package/dist/pi_output.js.map +1 -1
  40. package/dist/policy-engine.d.ts +2 -0
  41. package/dist/policy-engine.js +2 -0
  42. package/dist/policy-engine.js.map +1 -1
  43. package/dist/prompts/anonymous_action.md +33 -0
  44. package/dist/prompts/anonymous_rules.md +5 -0
  45. package/dist/prompts/custom_rules.md +10 -0
  46. package/dist/prompts/jev_eval_relevance.json +12 -0
  47. package/dist/prompts/jev_selector.json +22 -0
  48. package/dist/prompts/selector.md +21 -0
  49. package/dist/prompts.d.ts +28 -3
  50. package/dist/prompts.js +58 -80
  51. package/dist/prompts.js.map +1 -1
  52. package/dist/route.d.ts +1 -0
  53. package/dist/route.js +21 -0
  54. package/dist/route.js.map +1 -1
  55. package/dist/routing_history.d.ts +3 -0
  56. package/dist/routing_history.js +90 -55
  57. package/dist/routing_history.js.map +1 -1
  58. package/dist/selector_input.d.ts +0 -2
  59. package/dist/selector_input.js +15 -7
  60. package/dist/selector_input.js.map +1 -1
  61. package/dist/selector_request.d.ts +0 -1
  62. package/dist/selector_request.js +14 -37
  63. package/dist/selector_request.js.map +1 -1
  64. package/dist/selector_truncation.d.ts +0 -1
  65. package/dist/selector_truncation.js +6 -39
  66. package/dist/selector_truncation.js.map +1 -1
  67. package/dist/thinking_level_graph.d.ts +10 -0
  68. package/dist/thinking_level_graph.js +64 -0
  69. package/dist/thinking_level_graph.js.map +1 -0
  70. package/dist/types.d.ts +2 -0
  71. package/package.json +4 -5
  72. package/dist/jev_router.d.ts +0 -5
  73. package/dist/jev_router.js +0 -22
  74. package/dist/jev_router.js.map +0 -1
  75. package/examples/jev_router.ts +0 -50
@@ -1,74 +1,25 @@
1
- // TypeSafe Jev selector over the anonymous-action protocol. Jev
2
- // (docs.typesafe.ai) is a System One model: it answers typed questions about
3
- // a state instead of generating text, so the routing decision is two Choice
4
- // questions over the same state — which anonymous candidate action serves
5
- // the next turns, and how long a lease to commit to — and the answer comes
6
- // back as calibrated probabilities rather than parsed JSON.
1
+ // TypeSafe Jev as a routing selector over the anonymous-action protocol.
2
+ // Jev answers two Choice questions about the de-identified selector input —
3
+ // which anonymous candidate action serves the next turns, and how long a
4
+ // lease to commit to — and the answers come back as calibrated
5
+ // probabilities rather than parsed JSON. The hosted router uses it as the
6
+ // fallback when Dari's policy endpoint is unavailable.
7
7
  //
8
- // This is an alternative to Dari's trained routing policy. Candidates are
9
- // de-identified through the same anonymous-action protocol Dari uses
10
- // (anonymous_actions.ts), so Jev decides on benchmark and cost evidence and
11
- // never sees a model identity; comparisons Jev is weak at (cost ordering,
12
- // benchmark standing) are computed here and passed as text.
13
- import { anonymizeSelectorInput, assignAnonymousActions, sessionRng, } from "./anonymous_actions.js";
14
- import { RouterCoreError } from "./errors.js";
15
- import { RouterFrameworkError } from "./framework_error.js";
16
- import { FIXED_TURN_COST_COMPARISON_TURNS, SELECTOR_LEASE_TURNS } from "./fixed_turn_cost_config.js";
17
- import { isRecord, } from "./types.js";
18
- export const DEFAULT_JEV_ENDPOINT = "https://api.typesafe.ai/v1";
19
- export const DEFAULT_JEV_MODEL = "jev-latest";
20
- const DEFAULT_JEV_TIMEOUT_MS = 30_000;
8
+ // Candidates are de-identified through the same anonymous-action protocol
9
+ // Dari uses (anonymous_actions.ts), so Jev decides on benchmark and cost
10
+ // evidence and never sees a model identity; comparisons Jev is weak at (cost
11
+ // ordering, benchmark standing) are computed here and passed as text.
12
+ import { anonymizeSelectorInput, } from "./anonymous_actions.js";
13
+ import { FIXED_TURN_COST_COMPARISON_TURNS } from "./fixed_turn_cost_config.js";
14
+ import { invalidJevResponse, JevOutputError, postSystemOne, } from "./jev_client.js";
15
+ import { fillPrompt, JEV_SELECTOR_PROMPT } from "./prompts.js";
16
+ import { isRecord } from "./types.js";
21
17
  // Jev evaluates up to 32k tokens of state plus the longest question, and
22
18
  // JSON-shaped conversation state tokenizes at roughly 2.7 characters per
23
19
  // token. The selector request is sized on its JSON-escaped messages, which
24
20
  // overstate the state Jev receives, so this budget leaves room for the
25
21
  // questions and the action descriptions.
26
22
  export const JEV_SELECTOR_CONTEXT_WINDOW_CHARS = 64_000;
27
- // Rate-limit and overload responses get one backoff retry; anything else is
28
- // the caller's failure to surface.
29
- const JEV_RETRY_STATUSES = new Set([429, 529]);
30
- const JEV_ATTEMPTS = 2;
31
- const JEV_RETRY_DELAY_MS = 500;
32
- const JEV_RETRY_MAX_DELAY_MS = 5_000;
33
- // selector_output after TypeSafe returned 200. Token counts are on the body
34
- // even when the action or lease answer is rejected, so hosts can still bill
35
- // the selector call.
36
- export class JevSelectorOutputError extends RouterCoreError {
37
- usage;
38
- constructor(message, code, usage = null) {
39
- super("selector_output", message, code);
40
- this.name = "JevSelectorOutputError";
41
- this.usage = usage;
42
- }
43
- }
44
- export function resolveJevSelectorConfig(input) {
45
- const apiKey = input.apiKey?.trim() ?? "";
46
- if (!apiKey)
47
- throw configurationError("Jev selector requires an apiKey.", "apiKey");
48
- const endpoint = (input.endpoint ?? DEFAULT_JEV_ENDPOINT).trim().replace(/\/+$/, "");
49
- let url;
50
- try {
51
- url = new URL(endpoint);
52
- }
53
- catch {
54
- throw configurationError("Jev selector endpoint must be a valid URL.", "endpoint");
55
- }
56
- if ((url.protocol !== "https:" && url.protocol !== "http:") || url.username || url.password) {
57
- throw configurationError("Jev selector endpoint must be an HTTP(S) URL without embedded credentials.", "endpoint");
58
- }
59
- const model = (input.model ?? DEFAULT_JEV_MODEL).trim();
60
- if (!model)
61
- throw configurationError("Jev selector model must not be empty.", "model");
62
- const leaseTurns = input.leaseTurns ?? SELECTOR_LEASE_TURNS;
63
- if (leaseTurns.some((turns, index) => !Number.isSafeInteger(turns) || turns <= 0 || (index > 0 && turns <= leaseTurns[index - 1]))) {
64
- throw configurationError("Jev selector leaseTurns must be ascending positive integers.", "leaseTurns");
65
- }
66
- const timeoutMs = input.timeoutMs ?? DEFAULT_JEV_TIMEOUT_MS;
67
- if (!Number.isSafeInteger(timeoutMs) || timeoutMs <= 0) {
68
- throw configurationError("Jev selector timeoutMs must be a positive integer.", "timeoutMs");
69
- }
70
- return { apiKey, endpoint, model, leaseTurns, timeoutMs };
71
- }
72
23
  // Renders the de-identified selector input as a Jev request. Every candidate
73
24
  // identity has already been replaced by its action letter; the only evidence
74
25
  // an action carries is its projected cost and its benchmark standing.
@@ -95,7 +46,6 @@ export function buildJevSelectorRequest(anonymousInput, options) {
95
46
  };
96
47
  }
97
48
  const state = {
98
- task: anonymousInput.task,
99
49
  previous_action: anonymousInput.previous_action === null
100
50
  ? null
101
51
  : anonymousInput.previous_action.action,
@@ -113,15 +63,14 @@ export function buildJevSelectorRequest(anonymousInput, options) {
113
63
  action: {
114
64
  type: "choice",
115
65
  instructions: {
116
- question: "Which action should serve the coding agent's next turns?",
117
- rules: [
118
- "Capability first: the action must be able to handle the task; capability is never traded away for cost.",
119
- "Judge the task's difficulty and how much work remains from `task`, `lease_history`, and the latest turns of `conversation`.",
120
- "Use each action's benchmark scores and ranks as evidence of capability. A missing benchmark means the action was not measured on it, not that it scored poorly.",
121
- "When several actions are capable enough, choose the one with the best (lowest-numbered) cost rank.",
122
- "Prefer `previous_action` while the task and its current phase have not changed.",
123
- ],
66
+ question: JEV_SELECTOR_PROMPT.action.question,
67
+ rules: anonymousInput.router_rules === undefined
68
+ ? JEV_SELECTOR_PROMPT.action.rules
69
+ : [...JEV_SELECTOR_PROMPT.action.rules, JEV_SELECTOR_PROMPT.action.router_rules_rule],
124
70
  ...(Object.keys(glossary).length === 0 ? {} : { benchmarks: glossary }),
71
+ ...(anonymousInput.router_rules === undefined
72
+ ? {}
73
+ : { router_rules: anonymousInput.router_rules }),
125
74
  },
126
75
  criteria,
127
76
  },
@@ -130,23 +79,18 @@ export function buildJevSelectorRequest(anonymousInput, options) {
130
79
  return { model: options.model, state, questions };
131
80
  }
132
81
  function leaseQuestion(leaseTurns) {
82
+ const { question, guidance, criteria: templates } = JEV_SELECTOR_PROMPT.lease;
133
83
  const last = leaseTurns.length - 1;
134
84
  const criteria = {};
135
85
  leaseTurns.forEach((turns, index) => {
136
- criteria[String(turns)] = index === 0
137
- ? `${turns} turns: the task is nearly done, or the next step may change what the agent needs.`
86
+ const template = index === 0
87
+ ? templates.shortest
138
88
  : index === last
139
- ? `${turns} turns: a long stretch of similar work remains, such as a large implementation or many edit-and-test cycles.`
140
- : `${turns} turns: a bounded stretch of similar work remains.`;
89
+ ? templates.longest
90
+ : templates.middle;
91
+ criteria[String(turns)] = fillPrompt(template, { turns: String(turns) });
141
92
  });
142
- return {
143
- type: "choice",
144
- instructions: {
145
- question: "How many consecutive turns should the chosen action serve before the router reconsiders?",
146
- guidance: "A longer lease amortizes the cold start paid on its first turn across warm cache hits on the turns that follow. The lease ends early only if the task finishes or the provider fails. Judge from how much similar work remains after the latest turn of `conversation`.",
147
- },
148
- criteria,
149
- };
93
+ return { type: "choice", instructions: { question, guidance }, criteria };
150
94
  }
151
95
  export function parseJevSelectorResponse(body, args) {
152
96
  if (!isRecord(body) || typeof body.model !== "string" || !isRecord(body.answers)) {
@@ -165,7 +109,7 @@ export function parseJevSelectorResponse(body, args) {
165
109
  const action = choiceAnswer(body.answers.action, "action", tokenUsage);
166
110
  const slot = args.slots.find((entry) => entry.action === action.choice);
167
111
  if (slot === undefined) {
168
- throw new JevSelectorOutputError("Jev selected an action outside this router's candidates.", "selector_invalid_candidate", tokenUsage);
112
+ throw new JevOutputError("Jev selected an action outside this router's candidates.", "selector_invalid_candidate", tokenUsage);
169
113
  }
170
114
  let lease;
171
115
  let turns;
@@ -203,9 +147,6 @@ function decisionReason(action, turns, lease) {
203
147
  // Anonymizes the named selector input against the slots, asks Jev, and maps
204
148
  // the answers back onto the slots' candidates.
205
149
  export async function selectWithJev(selectorInput, slots, config, signal) {
206
- if ("custom_rules" in selectorInput || "default_target" in selectorInput) {
207
- throw new RouterCoreError("configuration", "The Jev selector serves only the default routing policy and cannot apply custom routing rules.", "custom_rules_not_supported");
208
- }
209
150
  const anonymousInput = anonymizeSelectorInput(selectorInput, slots);
210
151
  const request = buildJevSelectorRequest(anonymousInput, config);
211
152
  const body = await postSystemOne(request, config, signal);
@@ -221,126 +162,6 @@ export async function selectWithJev(selectorInput, slots, config, signal) {
221
162
  // Letters are assigned per call: the framework path carries no conversation
222
163
  // identity, and every candidate-bearing field is re-lettered together, so
223
164
  // correctness never depends on cross-turn stability.
224
- export function createJevSelector(input) {
225
- const config = resolveJevSelectorConfig(input);
226
- return {
227
- async select(request, signal) {
228
- const selectorInput = selectorInputFromRequest(request);
229
- const single = singleCandidate(selectorInput);
230
- if (single !== undefined) {
231
- return JSON.stringify({
232
- selected_model: single.model,
233
- reasoning_effort: single.reasoningEffort,
234
- reason: "The router has only one compatible model/thinking-level pair.",
235
- });
236
- }
237
- const candidates = selectorInput.candidate_pairs.map((pair) => ({
238
- model: pair.model,
239
- reasoningEffort: pair.thinking_level,
240
- }));
241
- const rng = typeof request.prompt_cache_key === "string" && request.prompt_cache_key !== ""
242
- ? sessionRng(request.prompt_cache_key)
243
- : Math.random;
244
- let selection;
245
- try {
246
- selection = await selectWithJev(selectorInput, assignAnonymousActions(candidates, rng), config, signal);
247
- }
248
- catch (error) {
249
- throw frameworkError(error);
250
- }
251
- const { decision, response } = selection;
252
- return JSON.stringify({
253
- selected_model: decision.selectedModel,
254
- reasoning_effort: decision.reasoningEffort,
255
- reason: decision.reason,
256
- ...(decision.leaseTurnsRemaining === undefined
257
- ? {}
258
- : { lease_turns_remaining: decision.leaseTurnsRemaining }),
259
- jev: response,
260
- });
261
- },
262
- };
263
- }
264
- function singleCandidate(selectorInput) {
265
- if (selectorInput.candidate_pairs.length !== 1)
266
- return undefined;
267
- const pair = selectorInput.candidate_pairs[0];
268
- return { model: pair.model, reasoningEffort: pair.thinking_level };
269
- }
270
- async function postSystemOne(request, config, signal) {
271
- for (let attempt = 1;; attempt += 1) {
272
- const response = await fetchSystemOne(request, config, signal);
273
- if (response.ok) {
274
- try {
275
- return await response.json();
276
- }
277
- catch {
278
- throw invalidResponse("Jev returned a non-JSON response body.");
279
- }
280
- }
281
- if (attempt < JEV_ATTEMPTS && JEV_RETRY_STATUSES.has(response.status)) {
282
- await delay(retryDelayMs(response.headers.get("retry-after")), signal);
283
- continue;
284
- }
285
- const body = await response.text().catch(() => "");
286
- throw new RouterFrameworkError("policy", `Jev returned HTTP ${response.status}: ${body}`, "jev_http_error");
287
- }
288
- }
289
- async function fetchSystemOne(request, config, signal) {
290
- const timeout = AbortSignal.timeout(config.timeoutMs);
291
- try {
292
- return await fetch(`${config.endpoint}/systemone`, {
293
- method: "POST",
294
- headers: {
295
- Authorization: `Bearer ${config.apiKey}`,
296
- "Content-Type": "application/json",
297
- },
298
- body: JSON.stringify(request),
299
- signal: signal === undefined ? timeout : AbortSignal.any([signal, timeout]),
300
- });
301
- }
302
- catch (error) {
303
- if (signal?.aborted)
304
- throw error;
305
- throw new RouterFrameworkError("policy", `Jev request failed: ${error instanceof Error ? error.message : String(error)}`, "jev_request_failed", undefined, { cause: error });
306
- }
307
- }
308
- function retryDelayMs(retryAfter) {
309
- const seconds = Number(retryAfter);
310
- if (retryAfter === null || !Number.isFinite(seconds) || seconds <= 0)
311
- return JEV_RETRY_DELAY_MS;
312
- return Math.min(seconds * 1000, JEV_RETRY_MAX_DELAY_MS);
313
- }
314
- function delay(ms, signal) {
315
- return new Promise((resolve, reject) => {
316
- const timer = setTimeout(() => {
317
- signal?.removeEventListener("abort", onAbort);
318
- resolve();
319
- }, ms);
320
- const onAbort = () => {
321
- clearTimeout(timer);
322
- reject(signal?.reason);
323
- };
324
- signal?.addEventListener("abort", onAbort, { once: true });
325
- });
326
- }
327
- function selectorInputFromRequest(request) {
328
- const user = request.messages?.find((message) => message.role === "user");
329
- if (typeof user?.content !== "string") {
330
- throw new RouterCoreError("invalid_request", "Selector request is missing the JSON user message.", "invalid_request_error");
331
- }
332
- let parsed;
333
- try {
334
- parsed = JSON.parse(user.content);
335
- }
336
- catch {
337
- throw new RouterCoreError("invalid_request", "Selector request user message is not valid JSON.", "invalid_request_error");
338
- }
339
- if (!isRecord(parsed) || !Array.isArray(parsed.candidate_pairs) || !Array.isArray(parsed.messages)) {
340
- throw new RouterCoreError("invalid_request", "Selector input is missing candidate_pairs or messages.", "invalid_request_error");
341
- }
342
- return parsed;
343
- }
344
165
  // Cost per action as text Jev can compare literally: the loop projections at
345
166
  // each lease length, plus a rank across actions on the comparison horizon.
346
167
  function actionCosts(costs) {
@@ -403,16 +224,5 @@ function usd(value) {
403
224
  function percent(value) {
404
225
  return `${Math.round(value * 100)}%`;
405
226
  }
406
- function invalidResponse(message, usage = null) {
407
- return new JevSelectorOutputError(message, "selector_invalid_response", usage);
408
- }
409
- function configurationError(message, param) {
410
- return new RouterCoreError("configuration", message, "jev_configuration_invalid", param);
411
- }
412
- function frameworkError(error) {
413
- if (!(error instanceof RouterCoreError))
414
- return error;
415
- const kind = error.kind === "selector_output" ? "policy" : error.kind;
416
- return new RouterFrameworkError(kind, error.message, error.code, error.param, { cause: error });
417
- }
227
+ const invalidResponse = invalidJevResponse;
418
228
  //# sourceMappingURL=jev_selector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jev_selector.js","sourceRoot":"","sources":["../src/jev_selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jev_selector.js","sourceRoot":"","sources":["../src/jev_selector.ts"],"names":[],"mappings":"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"}
package/dist/model_ids.js CHANGED
@@ -31,17 +31,24 @@ export function canonicalModelId(modelId) {
31
31
  // retain the owner's tokenizer, prompt-cache, and cost family. Warm-prefix
32
32
  // provenance is checked separately against the actual serving provider, so
33
33
  // an alias here never lets one provider claim another's cached prefix.
34
- // Returns null when the serving provider is not an alias.
34
+ // Vercel AI Gateway passes the upstream's prompt cache through: OpenAI and
35
+ // Anthropic models keep their owner's family, and open-weight models get
36
+ // automatic prefix caching with no write fee, the fireworks family (95-98% of
37
+ // prompt tokens read from cache in October 2026 GLM 5.3 and Kimi K3 agent
38
+ // runs). Returns null when the serving provider is not an alias.
35
39
  function aliasFamilyProvider(model, provider) {
36
40
  if (provider === "openai-codex")
37
41
  return "openai";
38
- if (provider !== "amazon-bedrock" && provider !== "azure")
42
+ const gateway = provider === "vercel-ai-gateway";
43
+ if (!gateway && provider !== "amazon-bedrock" && provider !== "azure")
39
44
  return null;
40
45
  const slash = canonicalModelId(model).indexOf("/");
41
46
  if (slash <= 0)
42
47
  return null;
43
48
  const owner = canonicalModelId(model).slice(0, slash).toLowerCase();
44
- return owner === "openai" || owner === "anthropic" ? owner : null;
49
+ if (owner === "openai" || owner === "anthropic")
50
+ return owner;
51
+ return gateway ? "fireworks" : null;
45
52
  }
46
53
  // The provider whose family behavior (tokenizer, prompt cache, cost class)
47
54
  // a model follows: the serving provider itself, or the canonical model owner
@@ -1 +1 @@
1
- {"version":3,"file":"model_ids.js","sourceRoot":"","sources":["../src/model_ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAErD,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,kCAAkC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,kCAAkC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0EAA0E;AAC1E,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,uEAAuE;AACvE,0DAA0D;AAC1D,SAAS,mBAAmB,CAAC,KAAa,EAAE,QAAgB;IAC1D,IAAI,QAAQ,KAAK,cAAc;QAAE,OAAO,QAAQ,CAAC;IACjD,IAAI,QAAQ,KAAK,gBAAgB,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACvE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,uEAAuE;AACvE,4EAA4E;AAC5E,iEAAiE;AACjE,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,QAAiB;IAClE,MAAM,QAAQ,GAAG,CAAC,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrD,OAAO,OAAO,IAAI,QAAQ,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"model_ids.js","sourceRoot":"","sources":["../src/model_ids.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pi_context.js","sourceRoot":"","sources":["../src/pi_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi_context.js","sourceRoot":"","sources":["../src/pi_context.ts"],"names":[],"mappings":"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"}
@@ -29,11 +29,9 @@ export async function piOptions(runtime, execution, model) {
29
29
  ...(request.generation.temperature === undefined
30
30
  ? {}
31
31
  : { temperature: request.generation.temperature }),
32
- ...(request.generation.topP === undefined ? {} : { topP: request.generation.topP }),
33
32
  ...(request.generation.maxOutputTokens === undefined
34
33
  ? {}
35
34
  : { maxTokens: request.generation.maxOutputTokens }),
36
- ...(request.generation.stop === undefined ? {} : { stop: request.generation.stop }),
37
35
  ...(request.cacheKey === undefined ? {} : { sessionId: request.cacheKey }),
38
36
  // Only anthropic-messages reads metadata (and only user_id); no other
39
37
  // fork API consumes metadata fields.
@@ -41,10 +39,6 @@ export async function piOptions(runtime, execution, model) {
41
39
  ? { metadata: { user_id: request.user } }
42
40
  : {}),
43
41
  ...(execution.reasoningEffort === "off" ? {} : { reasoning: execution.reasoningEffort }),
44
- ...(request.responseFormat === undefined
45
- ? {}
46
- : { responseFormat: piResponseFormat(request.responseFormat, model.api) }),
47
- ...(request.toolChoice === undefined ? {} : { toolChoice: piToolChoice(request.toolChoice) }),
48
42
  };
49
43
  const budget = request.reasoning?.budgetTokens;
50
44
  if (budget !== undefined &&
@@ -58,8 +52,7 @@ export async function piOptions(runtime, execution, model) {
58
52
  options.onPayload = patch;
59
53
  return options;
60
54
  }
61
- // The fork hard-throws for these (api, option) pairs inside streamSimple;
62
- // reject them up front as client errors instead of surfacing 502s.
55
+ // Reject controls the provider API cannot represent before starting a request.
63
56
  function rejectUnsupportedOptions(request, model) {
64
57
  if (request.generation.stop !== undefined && isOpenAIResponsesApi(model.api)) {
65
58
  throw unsupportedPiOption("stop sequences", model.api);
@@ -71,6 +64,9 @@ function rejectUnsupportedOptions(request, model) {
71
64
  (model.api === "google-generative-ai" || model.api === "google-vertex")) {
72
65
  throw unsupportedPiOption("forcing a specific tool with tool_choice", model.api);
73
66
  }
67
+ if (request.toolChoice === "none" && model.api === "bedrock-converse-stream") {
68
+ throw unsupportedPiOption("disabling tools with tool_choice", model.api);
69
+ }
74
70
  if (request.responseFormat?.type === "json_object" && model.api === "bedrock-converse-stream") {
75
71
  throw unsupportedPiOption("response_format json_object", model.api);
76
72
  }
@@ -79,32 +75,31 @@ function unsupportedPiOption(option, api) {
79
75
  return new RouterFrameworkError("invalid_request", `Pi API '${api}' does not support ${option}.`, "pi_option_unsupported");
80
76
  }
81
77
  function piResponseFormat(format, api) {
82
- if (format.type === "json_object" && api === "anthropic-messages") {
83
- // Anthropic has no json_object mode; degrade to a permissive object
84
- // schema so the request still produces JSON output.
78
+ if (api === "anthropic-messages") {
79
+ // Anthropic has no json_object mode; use a permissive object schema.
85
80
  return {
86
81
  type: "json_schema",
87
- jsonSchema: { name: "response", schema: { type: "object" } },
82
+ schema: format.type === "json_schema" ? format.schema : { type: "object" },
88
83
  };
89
84
  }
90
85
  if (format.type !== "json_schema")
91
86
  return format;
92
- return {
93
- type: "json_schema",
94
- jsonSchema: {
95
- name: format.name,
96
- schema: format.schema,
97
- ...(format.description === undefined ? {} : { description: format.description }),
98
- ...(format.strict === undefined ? {} : { strict: format.strict }),
99
- },
100
- };
87
+ const { type: _, ...schema } = format;
88
+ return isOpenAIResponsesApi(api)
89
+ ? { type: "json_schema", ...schema }
90
+ : { type: "json_schema", json_schema: schema };
101
91
  }
102
- function piToolChoice(choice) {
103
- if (choice === "required")
104
- return "any";
92
+ function piToolChoice(choice, api) {
93
+ if (api === "anthropic-messages") {
94
+ return typeof choice === "string"
95
+ ? { type: choice === "required" ? "any" : choice }
96
+ : { type: "tool", name: choice.name };
97
+ }
105
98
  if (typeof choice === "string")
106
99
  return choice;
107
- return { type: "function", function: { name: choice.name } };
100
+ return isOpenAIResponsesApi(api)
101
+ ? { type: "function", name: choice.name }
102
+ : { type: "function", function: { name: choice.name } };
108
103
  }
109
104
  function payloadPatch(request, model, execution) {
110
105
  const strictTools = request.tools.some((tool) => tool.strict !== undefined);
@@ -121,7 +116,11 @@ function payloadPatch(request, model, execution) {
121
116
  if (!strictTools &&
122
117
  parallel === undefined &&
123
118
  !thinkingPatch &&
124
- !imageDetailPatch) {
119
+ !imageDetailPatch &&
120
+ request.responseFormat === undefined &&
121
+ request.toolChoice === undefined &&
122
+ request.generation.topP === undefined &&
123
+ request.generation.stop === undefined) {
125
124
  return undefined;
126
125
  }
127
126
  if ((strictTools || parallel !== undefined) && !PAYLOAD_PATCH_APIS.has(model.api)) {
@@ -131,6 +130,58 @@ function payloadPatch(request, model, execution) {
131
130
  if (!isRecord(value))
132
131
  return undefined;
133
132
  let payload = value;
133
+ const api = model.api;
134
+ const google = api === "google-generative-ai" || api === "google-vertex";
135
+ const config = isRecord(payload.config) ? payload.config : {};
136
+ if (request.generation.topP !== undefined || request.generation.stop !== undefined) {
137
+ const stop = request.generation.stop;
138
+ const sequences = typeof stop === "string" ? [stop] : stop;
139
+ const controls = {
140
+ ...(request.generation.topP === undefined ? {} : { [google || api === "bedrock-converse-stream" ? "topP" : "top_p"]: request.generation.topP }),
141
+ ...(stop === undefined ? {} : { [google || api === "bedrock-converse-stream" ? "stopSequences" : api === "anthropic-messages" ? "stop_sequences" : "stop"]: api === "openai-completions" ? stop : sequences }),
142
+ };
143
+ payload = google ? { ...payload, config: { ...config, ...controls } }
144
+ : api === "bedrock-converse-stream" ? { ...payload, inferenceConfig: { ...(isRecord(payload.inferenceConfig) ? payload.inferenceConfig : {}), ...controls } }
145
+ : { ...payload, ...controls };
146
+ }
147
+ if (request.responseFormat !== undefined &&
148
+ (request.responseFormat.type !== "text" || isOpenAIResponsesApi(api) || api === "openai-completions")) {
149
+ const format = piResponseFormat(request.responseFormat, api);
150
+ if (google) {
151
+ payload = { ...payload, config: { ...(isRecord(payload.config) ? payload.config : {}), responseMimeType: "application/json", ...(request.responseFormat.type === "json_schema" ? { responseJsonSchema: request.responseFormat.schema } : {}) } };
152
+ }
153
+ else if (api === "bedrock-converse-stream") {
154
+ const response = request.responseFormat;
155
+ if (response.type === "json_schema")
156
+ payload = { ...payload, outputConfig: { textFormat: { type: "json_schema", structure: { jsonSchema: { name: response.name, schema: JSON.stringify(response.schema), ...(response.description === undefined ? {} : { description: response.description }) } } } } };
157
+ }
158
+ else if (isOpenAIResponsesApi(api)) {
159
+ payload = { ...payload, text: { ...(isRecord(payload.text) ? payload.text : {}), format } };
160
+ }
161
+ else if (api === "anthropic-messages") {
162
+ payload = { ...payload, output_config: { ...(isRecord(payload.output_config) ? payload.output_config : {}), format } };
163
+ }
164
+ else {
165
+ payload = { ...payload, response_format: format };
166
+ }
167
+ }
168
+ if (request.toolChoice !== undefined) {
169
+ const choice = request.toolChoice;
170
+ if (google) {
171
+ const mode = choice === "none" ? "NONE" : choice === "required" ? "ANY" : "AUTO";
172
+ payload = { ...payload, config: { ...(isRecord(payload.config) ? payload.config : {}), toolConfig: { functionCallingConfig: { mode } } } };
173
+ }
174
+ else if (api === "bedrock-converse-stream") {
175
+ payload = { ...payload, toolConfig: { ...(isRecord(payload.toolConfig) ? payload.toolConfig : {}), toolChoice: typeof choice === "string" ? choice === "required" ? { any: {} } : { auto: {} } : { tool: { name: choice.name } } } };
176
+ }
177
+ else if (Array.isArray(payload.tools) && payload.tools.length > 0) {
178
+ payload = { ...payload, tool_choice: piToolChoice(choice, api) };
179
+ }
180
+ else {
181
+ const { tool_choice: _, ...withoutToolChoice } = payload;
182
+ payload = withoutToolChoice;
183
+ }
184
+ }
134
185
  if (strictTools)
135
186
  payload = patchStrictTools(payload, request, model.api);
136
187
  if (parallel !== undefined)
@@ -139,6 +190,12 @@ function payloadPatch(request, model, execution) {
139
190
  payload = patchImageDetails(payload, imageDetails);
140
191
  if (thinkingPatch)
141
192
  payload = patchAnthropicThinking(payload, request);
193
+ if (api !== "bedrock-converse-stream" &&
194
+ !google &&
195
+ (!Array.isArray(payload.tools) || payload.tools.length === 0)) {
196
+ const { tool_choice: _, ...withoutToolChoice } = payload;
197
+ payload = withoutToolChoice;
198
+ }
142
199
  return payload;
143
200
  };
144
201
  }