@mupt-ai/dari-router 0.2.2 → 0.2.4

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 +17 -8
  3. package/dist/anonymous_actions.js +110 -44
  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 +1 -0
  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 +8 -4
  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 +83 -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 +29 -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 +59 -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 +1 -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
package/dist/cost.d.ts CHANGED
@@ -36,5 +36,6 @@ export declare function estimateCandidateCosts(args: {
36
36
  averageOutputTokensByModel?: Readonly<Record<string, Partial<Record<ReasoningEffort, number>> | null>>;
37
37
  cacheScope?: ReasoningCacheScopeLookup;
38
38
  modelProvider?: ModelProviderLookup;
39
+ promptGrowthTokensPerTurn?: number;
39
40
  }): CandidateCostEstimate[];
40
41
  export declare function turnCostUsdAt(estimate: FixedTurnCostEstimate | null | undefined, turns: number): number | null;
package/dist/cost.js CHANGED
@@ -230,6 +230,7 @@ export function estimateCandidateCosts(args) {
230
230
  reasoningEffort,
231
231
  provider,
232
232
  outputTokens: args.averageOutputTokensByModel?.[model]?.[reasoningEffort],
233
+ promptGrowthTokensPerTurn: args.promptGrowthTokensPerTurn ?? 0,
233
234
  })
234
235
  : null,
235
236
  };
@@ -254,9 +255,12 @@ function fixedTurnCostEstimate(args) {
254
255
  const longestHorizon = horizons[horizons.length - 1] ?? 0;
255
256
  const projections = [];
256
257
  const outputTokens = args.outputTokens;
258
+ // Each turn's prompt carries the previous reply and the tool results it
259
+ // triggered, so it grows by at least the reply.
260
+ const growthTokens = Math.max(outputTokens, args.promptGrowthTokensPerTurn);
257
261
  let totalCost = 0;
258
262
  for (let turn = 1; turn <= longestHorizon; turn += 1) {
259
- const inputTokens = args.estPromptTokens + (turn - 1) * outputTokens;
263
+ const inputTokens = args.estPromptTokens + (turn - 1) * growthTokens;
260
264
  const price = pricingForPrompt(args.price, inputTokens);
261
265
  // Cache modeling refines a projection; it must not gate its existence.
262
266
  // Without a known cache policy, assume no reads or writes and charge
@@ -279,9 +283,9 @@ function fixedTurnCostEstimate(args) {
279
283
  provider,
280
284
  inputTokens,
281
285
  // Later requests can only read prefixes that appeared in prior
282
- // request inputs. The immediately previous output is fresh on the
283
- // next request.
284
- reusablePrefix: args.estPromptTokens + (turn - 2) * outputTokens,
286
+ // request inputs. The previous turn's reply and tool results are
287
+ // fresh on the next request.
288
+ reusablePrefix: args.estPromptTokens + (turn - 2) * growthTokens,
285
289
  outputTokens,
286
290
  });
287
291
  if (horizons.includes(turn)) {
package/dist/cost.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,GAGhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAkC,MAAM,kBAAkB,CAAC;AACvF,OAAO,EACL,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAYjD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,GAAG,SAAS,CAAC;AAgBvB,MAAM,UAAU,gBAAgB,CAAC,KAAmB,EAAE,WAAmB;IACvE,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,WAAW,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,GAAG,SAAS,EAAE,CAAC;YAC7E,KAAK,GAAG,IAAI,CAAC;YACb,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAWD,qEAAqE;AACrE,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,oBAAoB;AACpB,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAClC,aAA4C,EAC5C,IAAmC;IAEnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACzC,KAAK;QACL,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD,CAAC,CACH,CAAC;IACF,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,6EAA6E;AAC7E,sEAAsE;AACtE,0EAA0E;AAC1E,0EAA0E;AAC1E,8DAA8D;AAC9D,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAChC,aAA4C,EAC5C,UAAyC,EACzC,IAAmC;IAEnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACzC,KAAK;QACL,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD,CAAC,CACH,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,IAAI,OAA8B,CAAC;IACnC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,CAAC;YAAE,SAAS;QAC1B,MAAM,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC;QAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACpD,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC7B,MAAM,IAAI,GACR,CAAC,OAAO;YACR,KAAK,GAAG,OAAO,CAAC,KAAK;YACrB,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;gBACtB,CAAC,MAAM,KAAK,aAAa;oBACvB,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC3B,aAAa,GAAG,MAAM,CAAC;YACvB,kBAAkB,GAAG,WAAW,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAmC,EACnC,QAAwD;IAExD,IAAI,OAA8B,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyC,CAAC;IACzE,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,GAAG,GAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK;YAAE,OAAO,GAAG,GAAG,CAAC;QACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK;YAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAC9C,IAAI,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,iBAAiB,IAAI,KAAK,GAAG,iBAAiB,CAAC,KAAK;YAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAChD,CAAC;AAED,sEAAsE;AACtE,yEAAyE;AACzE,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAC5E,iCAAiC;AACjC,MAAM,UAAU,eAAe,CAC7B,IAAe,EACf,KAAa,EACb,eAAuB,EACvB,aAAwC,mBAAmB;IAE3D,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAe,EACf,KAAa,EACb,eAAuB,EACvB,aAAwC,mBAAmB;IAE3D,2EAA2E;IAC3E,0EAA0E;IAC1E,oCAAoC;IACpC,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAgBtC;IACC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CACxD,mBAAmB,CAAC,SAAS,CAAC,CAC/B,CAAC;QACF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,IAAI,eAAe,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,cAAc,IAAI,wBAAwB,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC;YACvF,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,wBAAwB,GAAG,cAAc,CAAC,wBAAwB,CAAC;QACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,cAAc,CAAC,KAAK,GAAG,eAAe,CACvC,CAAC;QACF,MAAM,kBAAkB,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,MAAM,wBAAwB,GAC5B,kBAAkB,KAAK,SAAS;eAC7B,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;oBAC7B,eAAe,CACjB,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAC9B,IAAI,CAAC,aAAa,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CACrD,CAAC;QACN,gEAAgE;QAChE,sEAAsE;QACtE,0EAA0E;QAC1E,MAAM,SAAS,GAAG,wBAAwB;YACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,qBAAqB,CAAC;YACtD,CAAC,CAAC,gBAAgB,CAAC;QAErB,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,MAAM,IAAI,wBAAwB,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,WAAW;eAClB,CAAC,QAAQ,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC;eAClD,wBAAwB,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC;YACxD,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,GAAG,EAAE,CAAC;YACR,qEAAqE;YACrE,wEAAwE;YACxE,MAAM,iBAAiB,GAAG,cAAc;gBACtC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,YAAY;oBAC9C,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC,gBAAgB;gBACxD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC,gBAAgB,CAAC;YAC3D,MAAM,cAAc,GAClB,CAAC,cAAc;mBACZ,uBAAuB,CAAC;oBACzB,GAAG,EAAE,GAAG,CAAC,KAAK;oBACd,qBAAqB,EAAE,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC;iBACjE,CAAC,CAAC;YACL,oEAAoE;YACpE,uEAAuE;YACvE,yEAAyE;YACzE,MAAM,YAAY,GAChB,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACrE,IAAI,iBAAiB,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC;gBACxD,UAAU,GAAG,aAAa,KAAK,IAAI;oBACjC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa;oBACzB,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QACD,kEAAkE;QAClE,0EAA0E;QAC1E,qDAAqD;QACrD,SAAS,GAAG,IAAI,CAAC,GAAG,CAClB,SAAS,EACT,wBAAwB,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAC/D,CAAC;QACF,qEAAqE;QACrE,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,IACE,UAAU,GAAG,CAAC;eACX,CAAC,wBAAwB;eACzB,SAAS,IAAI,UAAU,EAC1B,CAAC;YACD,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjF,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;YACtD,OAAO;gBACL,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAC9F,SAAS,CAAC;QACd,CAAC;QAED,OAAO;YACL,KAAK;YACL,gBAAgB,EAAE,eAAe;YACjC,WAAW,EAAE,UAAU;YACvB,iBAAiB,EAAE,SAAS;YAC5B,kBAAkB,EAAE,OAAO;YAC3B,oBAAoB,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI;YAC3C,aAAa,EAAE,KAAK,KAAK,IAAI;YAC7B,wBAAwB,EAAE,KAAK;gBAC7B,CAAC,CAAC,qBAAqB,CAAC;oBACpB,KAAK;oBACL,KAAK,EAAE,SAAU;oBACjB,eAAe,EAAE,SAAS;oBAC1B,UAAU;oBACV,eAAe;oBACf,QAAQ;oBACR,YAAY,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC;oBACzE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,IAAI,CAAC;iBAC/D,CAAC;gBACJ,CAAC,CAAC,IAAI;SACuB,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,IAGhC;IACC,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC1D,IAAI,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;IAC/D,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,yBAAyB,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAAC,IAS9B;IACC,MAAM,QAAQ,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEjD,0EAA0E;IAC1E,qEAAqE;IACrE,4EAA4E;IAC5E,MAAM,QAAQ,GAAa,CAAC,GAAG,+BAA+B,CAAC,CAAC,IAAI,CAClE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAC9B,CAAC;IACF,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,wEAAwE;IACxE,gDAAgD;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC5E,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,cAAc,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;QACrE,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACxD,uEAAuE;QACvE,qEAAqE;QACrE,uEAAuE;QACvE,SAAS;YACP,QAAQ,KAAK,IAAI;gBACf,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;gBAClE,CAAC,CAAC,IAAI,KAAK,CAAC;oBACV,CAAC,CAAC,qBAAqB,CAAC;wBACpB,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,KAAK;wBACL,WAAW;wBACX,YAAY,EAAE,IAAI,CAAC,UAAU;wBAC7B,YAAY;wBACZ,QAAQ;qBACT,CAAC;oBACJ,CAAC,CAAC,aAAa,CAAC;wBACZ,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,KAAK;wBACL,QAAQ;wBACR,WAAW;wBACX,+DAA+D;wBAC/D,iEAAiE;wBACjE,6BAA6B;wBAC7B,cAAc,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY;wBAChE,YAAY;qBACb,CAAC,CAAC;QACX,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,OAAO;QACL,sBAAsB,EAAE,YAAY;QACpC,wBAAwB,EAAE,IAAI,CAAC,eAAe;QAC9C,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAOtB;IACC,MAAM,eAAe,GAAG,uBAAuB,CAC7C,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,cAAc,CACpB,CAAC;IACF,MAAM,QAAQ,GAAG,qBAAqB,CAAC;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,IAAI,eAAe,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1C,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACpC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,eAAe;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,OAAO,OAAO,GAAG,cAAc,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;AACpE,CAAC;AAED,6EAA6E;AAC7E,wBAAwB;AACxB,MAAM,UAAU,aAAa,CAC3B,QAAkD,EAClD,KAAa;IAEb,MAAM,UAAU,GAAG,QAAQ,EAAE,WAAW,CAAC,IAAI,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,KAAK,KAAK,CAC3C,CAAC;IACF,OAAO,UAAU,EAAE,cAAc,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,SAAS,cAAc,CACrB,KAAa,EACb,KAAmB,EACnB,YAAoB,EACpB,QAAiB;IAEjB,OAAO,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,YAAY,IAAI,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC;QACpF,CAAC,CAAC,KAAK,CAAC,UAAU;QAClB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAO9B;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;IACzD,OAAO,CACL,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;QACjD,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;QAC9F,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAC/C,CAAC;AACJ,CAAC"}
@@ -1,22 +1,24 @@
1
+ import { type ThinkingLevelRatios } from "./thinking_level_graph.js";
1
2
  import { type ReasoningEffort } from "./types.js";
3
+ export type { ThinkingLevelRatios } from "./thinking_level_graph.js";
2
4
  export type EvalScoreForImputation = {
3
5
  model_id: string;
4
6
  score: number;
5
7
  thinking_level?: ReasoningEffort | null;
8
+ cost_per_task_usd?: number | null;
6
9
  };
7
10
  export type EvalForImputation = {
8
11
  min_score: number;
9
12
  max_score: number;
10
13
  scores: readonly EvalScoreForImputation[];
11
14
  };
12
- export type ThinkingLevelRatios = ReadonlyMap<string, number>;
13
15
  export type ResolvedRouterEvalScore = {
14
16
  score: number;
15
17
  imputed: boolean;
16
18
  sourceModelId?: string;
17
19
  };
18
20
  export declare function createThinkingLevelRatios(evals: readonly EvalForImputation[]): ThinkingLevelRatios;
19
- export declare function resolveRouterEvalScore(args: {
21
+ type ResolveScoreArgs = {
20
22
  scores: readonly EvalScoreForImputation[];
21
23
  modelId: string;
22
24
  thinkingLevel: ReasoningEffort;
@@ -24,4 +26,13 @@ export declare function resolveRouterEvalScore(args: {
24
26
  maxScore: number;
25
27
  impute?: boolean;
26
28
  ratios?: ThinkingLevelRatios;
27
- }): ResolvedRouterEvalScore | null;
29
+ };
30
+ export declare function resolveRouterEvalScore(args: ResolveScoreArgs): ResolvedRouterEvalScore | null;
31
+ export declare function createTaskCostRatios(evals: readonly Pick<EvalForImputation, "scores">[]): ThinkingLevelRatios;
32
+ export declare function resolveRouterEvalTaskCost(args: {
33
+ scores: readonly EvalScoreForImputation[];
34
+ modelId: string;
35
+ thinkingLevel: ReasoningEffort;
36
+ impute?: boolean;
37
+ ratios?: ThinkingLevelRatios;
38
+ }): number | null;
@@ -1,41 +1,62 @@
1
+ import { buildThinkingLevelGraphs, thinkingLevelRatio, } from "./thinking_level_graph.js";
1
2
  import { REASONING_EFFORTS } from "./types.js";
2
3
  // Only named, same-family predecessors may stand in for a new model while
3
4
  // benchmark sources catch up. Never infer a predecessor from a slug.
4
5
  const PREVIOUS_GENERATION = {
6
+ "openai/gpt-6.1-sol": "openai/gpt-6-sol",
5
7
  "openai/gpt-6-sol": "openai/gpt-5.6-sol",
6
8
  "openai/gpt-6-luna": "openai/gpt-5.6-luna",
7
9
  "anthropic/claude-opus-5-5": "anthropic/claude-opus-5",
10
+ "anthropic/claude-sonnet-5-5": "anthropic/claude-sonnet-5",
8
11
  "anthropic/claude-fable-5-1": "anthropic/claude-fable-5",
9
12
  "meta/muse-spark-1.3": "meta/muse-spark-1.2",
10
13
  "zai-org/GLM-5.3": "zai-org/GLM-5.2",
11
14
  "xai/grok-4.7": "xai/grok-4.6",
12
15
  };
13
16
  export function createThinkingLevelRatios(evals) {
14
- const samples = new Map();
17
+ const observations = [];
15
18
  for (const evalCard of evals) {
16
19
  const range = evalCard.max_score - evalCard.min_score;
17
20
  if (!Number.isFinite(range) || range <= 0)
18
21
  continue;
19
22
  const byModel = explicitScoresByModel(evalCard.scores, evalCard.min_score, range);
20
- for (const levels of byModel.values()) {
21
- for (const [targetLevel, targetScore] of levels) {
22
- for (const [anchorLevel, anchorScore] of levels) {
23
- if (targetLevel === anchorLevel || anchorScore <= 0)
24
- continue;
25
- const ratio = targetScore / anchorScore;
26
- if (!Number.isFinite(ratio) || ratio < 0)
27
- continue;
28
- const key = thinkingLevelPairKey(targetLevel, anchorLevel);
29
- const values = samples.get(key) ?? [];
30
- values.push(ratio);
31
- samples.set(key, values);
32
- }
33
- }
23
+ for (const [modelId, levels] of byModel) {
24
+ const provider = modelOwner(modelId);
25
+ if (provider)
26
+ observations.push({ provider, levels });
34
27
  }
35
28
  }
36
- return new Map([...samples].map(([key, values]) => [key, mean(values)]));
29
+ return buildThinkingLevelGraphs(observations);
37
30
  }
38
31
  export function resolveRouterEvalScore(args) {
32
+ const resolved = resolveRawScore(args);
33
+ if (!resolved?.imputed)
34
+ return resolved;
35
+ // Include every effort, not just enabled candidates, so previews and runtime
36
+ // agree. Cap each estimate by future measured data, then take prefix maxima.
37
+ const levels = REASONING_EFFORTS.map((thinkingLevel) => resolveRawScore({ ...args, thinkingLevel }));
38
+ const target = REASONING_EFFORTS.indexOf(args.thinkingLevel);
39
+ let floor = -Infinity;
40
+ for (let index = 0; index <= target; index++) {
41
+ const row = levels[index];
42
+ if (!row)
43
+ continue;
44
+ if (!row.imputed) {
45
+ floor = Math.max(floor, row.score);
46
+ continue;
47
+ }
48
+ const ceiling = Math.min(Infinity, ...levels.slice(index + 1).flatMap((next) => next && !next.imputed ? [next.score] : []));
49
+ // Measured regressions can make a missing interval impossible to fill.
50
+ if (floor > ceiling) {
51
+ if (index === target)
52
+ return null;
53
+ continue;
54
+ }
55
+ floor = Math.max(floor, Math.min(row.score, ceiling));
56
+ }
57
+ return { ...resolved, score: floor };
58
+ }
59
+ function resolveRawScore(args) {
39
60
  const modelScores = args.scores.filter((score) => score.model_id === args.modelId);
40
61
  const exact = modelScores.find((score) => score.thinking_level === args.thinkingLevel);
41
62
  const generic = modelScores.find((score) => score.thinking_level == null);
@@ -45,7 +66,7 @@ export function resolveRouterEvalScore(args) {
45
66
  if (!(args.impute ?? false))
46
67
  return null;
47
68
  const ratios = args.ratios ?? new Map();
48
- const score = pairwiseRatioScore(modelScores, args.thinkingLevel, args.minScore, args.maxScore, ratios);
69
+ const score = pairwiseRatioScore(modelScores, modelOwner(args.modelId), args.thinkingLevel, args.minScore, args.maxScore, ratios);
49
70
  if (score !== null)
50
71
  return { score, imputed: true };
51
72
  // A measured current-generation score or a valid same-model level
@@ -56,12 +77,49 @@ export function resolveRouterEvalScore(args) {
56
77
  const previousScores = args.scores.filter((row) => row.model_id === previous);
57
78
  const predecessor = previousScores.find((row) => row.thinking_level === args.thinkingLevel)
58
79
  ?? previousScores.find((row) => row.thinking_level == null);
59
- const borrowed = predecessor?.score ?? pairwiseRatioScore(previousScores, args.thinkingLevel, args.minScore, args.maxScore, ratios);
80
+ const borrowed = predecessor?.score ?? pairwiseRatioScore(previousScores, modelOwner(previous), args.thinkingLevel, args.minScore, args.maxScore, ratios);
60
81
  return borrowed === null || borrowed === undefined
61
82
  ? null
62
83
  : { score: borrowed, imputed: true, sourceModelId: previous };
63
84
  }
64
- function pairwiseRatioScore(modelScores, targetLevel, minScore, maxScore, ratios) {
85
+ // Cost-per-task ratios between thinking levels, learned like score ratios. A
86
+ // zero floor makes the shared normalization cancel, leaving raw cost ratios.
87
+ export function createTaskCostRatios(evals) {
88
+ return createThinkingLevelRatios(evals.flatMap((evalCard) => {
89
+ const priced = evalCard.scores.flatMap((row) => {
90
+ const cost = row.cost_per_task_usd;
91
+ return typeof cost === "number" && Number.isFinite(cost) && cost > 0
92
+ ? [{ ...row, score: cost }]
93
+ : [];
94
+ });
95
+ if (priced.length === 0)
96
+ return [];
97
+ return [{ min_score: 0, max_score: Math.max(...priced.map((row) => row.score)), scores: priced }];
98
+ }));
99
+ }
100
+ // A measured cost wins; otherwise the same model's priced levels are scaled by
101
+ // cost ratios. Predecessors never lend costs: prices change between
102
+ // generations even when scores carry over.
103
+ export function resolveRouterEvalTaskCost(args) {
104
+ const priced = args.scores.filter((row) => row.model_id === args.modelId &&
105
+ typeof row.cost_per_task_usd === "number" &&
106
+ Number.isFinite(row.cost_per_task_usd) &&
107
+ row.cost_per_task_usd > 0);
108
+ const match = priced.find((row) => row.thinking_level === args.thinkingLevel)
109
+ ?? priced.find((row) => row.thinking_level == null);
110
+ if (match)
111
+ return match.cost_per_task_usd;
112
+ if (!(args.impute ?? false))
113
+ return null;
114
+ const estimates = priced.flatMap((anchor) => {
115
+ if (anchor.thinking_level == null)
116
+ return [];
117
+ const ratio = thinkingLevelRatio(args.ratios ?? new Map(), modelOwner(args.modelId), anchor.thinking_level, args.thinkingLevel);
118
+ return ratio === undefined ? [] : [anchor.cost_per_task_usd * ratio];
119
+ });
120
+ return estimates.length === 0 ? null : mean(estimates);
121
+ }
122
+ function pairwiseRatioScore(modelScores, provider, targetLevel, minScore, maxScore, ratios) {
65
123
  const range = maxScore - minScore;
66
124
  if (!Number.isFinite(range) || range <= 0)
67
125
  return null;
@@ -69,7 +127,7 @@ function pairwiseRatioScore(modelScores, targetLevel, minScore, maxScore, ratios
69
127
  for (const anchor of modelScores) {
70
128
  if (anchor.thinking_level == null || !Number.isFinite(anchor.score))
71
129
  continue;
72
- const ratio = resolveThinkingLevelRatio(ratios, targetLevel, anchor.thinking_level);
130
+ const ratio = thinkingLevelRatio(ratios, provider, anchor.thinking_level, targetLevel);
73
131
  if (ratio === undefined)
74
132
  continue;
75
133
  const normalizedAnchor = (anchor.score - minScore) / range;
@@ -84,43 +142,6 @@ function pairwiseRatioScore(modelScores, targetLevel, minScore, maxScore, ratios
84
142
  return null;
85
143
  return round2(minScore + mean(estimates) * range);
86
144
  }
87
- // Prefer a directly observed relationship. When none exists, compose the
88
- // shortest available chains (for example medium -> max -> xhigh) and average
89
- // their products. This lets sparse calibration cards connect levels without a
90
- // longer chain overriding stronger direct evidence.
91
- function resolveThinkingLevelRatio(ratios, targetLevel, anchorLevel) {
92
- const direct = ratios.get(thinkingLevelPairKey(targetLevel, anchorLevel));
93
- if (direct !== undefined)
94
- return direct;
95
- let frontier = new Map([
96
- [anchorLevel, { sum: 1, count: 1 }],
97
- ]);
98
- const visited = new Set([anchorLevel]);
99
- while (frontier.size > 0) {
100
- const next = new Map();
101
- for (const [currentLevel, paths] of frontier) {
102
- for (const nextLevel of REASONING_EFFORTS) {
103
- if (visited.has(nextLevel))
104
- continue;
105
- const edge = ratios.get(thinkingLevelPairKey(nextLevel, currentLevel));
106
- if (edge === undefined || !Number.isFinite(edge) || edge < 0)
107
- continue;
108
- const existing = next.get(nextLevel) ?? { sum: 0, count: 0 };
109
- existing.sum += paths.sum * edge;
110
- existing.count += paths.count;
111
- next.set(nextLevel, existing);
112
- }
113
- }
114
- const targetPaths = next.get(targetLevel);
115
- if (targetPaths !== undefined) {
116
- return targetPaths.sum / targetPaths.count;
117
- }
118
- for (const level of next.keys())
119
- visited.add(level);
120
- frontier = next;
121
- }
122
- return undefined;
123
- }
124
145
  function explicitScoresByModel(rows, minScore, range) {
125
146
  const result = new Map();
126
147
  for (const row of rows) {
@@ -134,8 +155,11 @@ function explicitScoresByModel(rows, minScore, range) {
134
155
  }
135
156
  return result;
136
157
  }
137
- function thinkingLevelPairKey(target, anchor) {
138
- return `${target}\u0000${anchor}`;
158
+ // Eval model IDs use the canonical owner's namespace, not the serving provider.
159
+ // Unqualified IDs have no owner evidence and cannot calibrate or use a graph.
160
+ function modelOwner(modelId) {
161
+ const slash = modelId.indexOf("/");
162
+ return slash > 0 ? modelId.slice(0, slash).toLowerCase() : "";
139
163
  }
140
164
  function mean(values) {
141
165
  return values.reduce((total, value) => total + value, 0) / values.length;
@@ -1 +1 @@
1
- {"version":3,"file":"eval_score_imputation.js","sourceRoot":"","sources":["../src/eval_score_imputation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval_score_imputation.js","sourceRoot":"","sources":["../src/eval_score_imputation.ts"],"names":[],"mappings":"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"}
@@ -9,3 +9,5 @@ export declare const FIXED_TURN_CACHE_HIT_PROBABILITY: {
9
9
  readonly meta: 0.96;
10
10
  readonly xai: 0.9;
11
11
  };
12
+ export declare const DEFAULT_PROMPT_GROWTH_TOKENS_PER_TURN = 1000;
13
+ export declare const MIN_TURNS_FOR_OBSERVED_PROMPT_GROWTH = 3;
@@ -26,4 +26,12 @@ export const FIXED_TURN_CACHE_HIT_PROBABILITY = {
26
26
  // September 16, 2026 native Grok 4.6 probe (low effort, short intervals).
27
27
  xai: 0.90,
28
28
  };
29
+ // Tokens an agent turn adds to the next prompt (its reply plus the tool
30
+ // results it triggered) before a conversation has enough history to measure
31
+ // its own rate. October 2026 Sentry agent runs grew 600-2,000 tokens per turn,
32
+ // two to five times the reply alone.
33
+ export const DEFAULT_PROMPT_GROWTH_TOKENS_PER_TURN = 1000;
34
+ // Recorded turns a conversation needs before its own prompt growth replaces
35
+ // the default.
36
+ export const MIN_TURNS_FOR_OBSERVED_PROMPT_GROWTH = 3;
29
37
  //# sourceMappingURL=fixed_turn_cost_config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixed_turn_cost_config.js","sourceRoot":"","sources":["../src/fixed_turn_cost_config.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,6EAA6E;AAC7E,iBAAiB;AACjB,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAEpE,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAEzD,4EAA4E;AAC5E,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,2EAA2E;AAC3E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,uEAAuE;IACvE,yEAAyE;IACzE,IAAI,EAAE,IAAI;IACV,0EAA0E;IAC1E,0EAA0E;IAC1E,GAAG,EAAE,IAAI;CACD,CAAC"}
1
+ {"version":3,"file":"fixed_turn_cost_config.js","sourceRoot":"","sources":["../src/fixed_turn_cost_config.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,6EAA6E;AAC7E,iBAAiB;AACjB,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAEpE,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAEzD,4EAA4E;AAC5E,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,2EAA2E;AAC3E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,uEAAuE;IACvE,yEAAyE;IACzE,IAAI,EAAE,IAAI;IACV,0EAA0E;IAC1E,0EAA0E;IAC1E,GAAG,EAAE,IAAI;CACD,CAAC;AAEX,wEAAwE;AACxE,4EAA4E;AAC5E,+EAA+E;AAC/E,qCAAqC;AACrC,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAI,CAAC;AAE1D,4EAA4E;AAC5E,eAAe;AACf,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,9 @@
1
1
  export { createRouter, } from "./framework_router.js";
2
2
  export { createPiRuntime, } from "./pi_runtime.js";
3
3
  export { createAutoRouter, } from "./auto_router.js";
4
- export { createJevRouter, } from "./jev_router.js";
5
4
  export type { RouterProtocol, RouterTextContent, RouterImageContent, RouterContent, RouterMessageItem, RouterToolCallItem, RouterToolResultItem, RouterHostedToolCallStatus, RouterHostedToolCallItem, RouterReasoningItem, RouterInputItem, RouterTool, RouterToolChoice, RouterResponseFormat, RouterRequest, RouterModelCapabilities, RouterModel, RouterCandidate, RoutingPolicyInput, RoutingPolicyDecision, RoutingPolicy, RouterSelection, RouterUsage, RouterFinishReason, RouterOutputText, RouterOutputToolCall, RouterOutputReasoning, RouterOutputHostedToolCall, RouterOutputItem, RouterCompletion, RouterStreamEvent, RouterExecutorResult, RouterExecutorInput, RouterExecutor, CreateRouterOptions, Router, RouterLease, LeaseStore, RouterHookResult, RouterHooks, RouterFallbackConfig, } from "./framework_types.js";
6
5
  export type { CreatePiRuntimeOptions, PiApiKey, PiCredentialInput, PiModelRegistry, PiRouterModelOptions, PiRuntime, } from "./pi_runtime.js";
7
6
  export type { CreateAutoRouterOptions } from "./auto_router.js";
8
- export type { CreateJevRouterOptions } from "./jev_router.js";
9
7
  export type { ReasoningEffort } from "./types.js";
10
8
  export { RouterFrameworkError } from "./framework_error.js";
11
9
  export type { RouterFrameworkErrorKind } from "./framework_error.js";
package/dist/index.js CHANGED
@@ -3,6 +3,5 @@
3
3
  export { createRouter, } from "./framework_router.js";
4
4
  export { createPiRuntime, } from "./pi_runtime.js";
5
5
  export { createAutoRouter, } from "./auto_router.js";
6
- export { createJevRouter, } from "./jev_router.js";
7
6
  export { RouterFrameworkError } from "./framework_error.js";
8
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,OAAO,EACL,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAwDzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,OAAO,EACL,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAuD1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { RouterCoreError } from "./errors.js";
2
+ import type { JsonValue } from "./json.js";
3
+ export declare const DEFAULT_JEV_ENDPOINT = "https://api.typesafe.ai/v1";
4
+ export declare const DEFAULT_JEV_MODEL = "jev-latest";
5
+ export type JevConfig = {
6
+ apiKey: string;
7
+ endpoint?: string;
8
+ model?: string;
9
+ timeoutMs?: number;
10
+ };
11
+ export type ResolvedJevConfig = {
12
+ apiKey: string;
13
+ endpoint: string;
14
+ model: string;
15
+ timeoutMs: number;
16
+ };
17
+ export type JevTokenUsage = {
18
+ input_tokens: number;
19
+ output_tokens: number;
20
+ };
21
+ export declare class JevOutputError extends RouterCoreError {
22
+ readonly usage: JevTokenUsage | null;
23
+ constructor(message: string, code: string, usage?: JevTokenUsage | null);
24
+ }
25
+ export declare function resolveJevConfig(input: JevConfig): ResolvedJevConfig;
26
+ export declare function postSystemOne(request: {
27
+ model: string;
28
+ state: JsonValue;
29
+ questions: Record<string, unknown>;
30
+ }, config: ResolvedJevConfig, signal: AbortSignal | undefined): Promise<unknown>;
31
+ export declare function invalidJevResponse(message: string, usage?: JevTokenUsage | null): JevOutputError;
@@ -0,0 +1,115 @@
1
+ // TypeSafe Jev System One transport. Jev (docs.typesafe.ai) is a System One
2
+ // model: it answers typed questions about a state instead of generating
3
+ // text, and the answers come back as calibrated probabilities. Callers own
4
+ // the questions; this module owns the connection, retries, and errors.
5
+ import { RouterCoreError } from "./errors.js";
6
+ import { RouterFrameworkError } from "./framework_error.js";
7
+ export const DEFAULT_JEV_ENDPOINT = "https://api.typesafe.ai/v1";
8
+ export const DEFAULT_JEV_MODEL = "jev-latest";
9
+ const DEFAULT_JEV_TIMEOUT_MS = 30_000;
10
+ // Rate-limit and overload responses get one backoff retry; anything else is
11
+ // the caller's failure to surface.
12
+ const JEV_RETRY_STATUSES = new Set([429, 529]);
13
+ const JEV_ATTEMPTS = 2;
14
+ const JEV_RETRY_DELAY_MS = 500;
15
+ const JEV_RETRY_MAX_DELAY_MS = 5_000;
16
+ // Jev answered 200 with a body the caller cannot use. Token counts are on
17
+ // the body even then, so hosts can still bill the call.
18
+ export class JevOutputError extends RouterCoreError {
19
+ usage;
20
+ constructor(message, code, usage = null) {
21
+ super("selector_output", message, code);
22
+ this.name = "JevOutputError";
23
+ this.usage = usage;
24
+ }
25
+ }
26
+ export function resolveJevConfig(input) {
27
+ const apiKey = input.apiKey?.trim() ?? "";
28
+ if (!apiKey)
29
+ throw configurationError("Jev requires an apiKey.", "apiKey");
30
+ const endpoint = (input.endpoint ?? DEFAULT_JEV_ENDPOINT).trim().replace(/\/+$/, "");
31
+ let url;
32
+ try {
33
+ url = new URL(endpoint);
34
+ }
35
+ catch {
36
+ throw configurationError("Jev endpoint must be a valid URL.", "endpoint");
37
+ }
38
+ if ((url.protocol !== "https:" && url.protocol !== "http:") || url.username || url.password) {
39
+ throw configurationError("Jev endpoint must be an HTTP(S) URL without embedded credentials.", "endpoint");
40
+ }
41
+ const model = (input.model ?? DEFAULT_JEV_MODEL).trim();
42
+ if (!model)
43
+ throw configurationError("Jev model must not be empty.", "model");
44
+ const timeoutMs = input.timeoutMs ?? DEFAULT_JEV_TIMEOUT_MS;
45
+ if (!Number.isSafeInteger(timeoutMs) || timeoutMs <= 0) {
46
+ throw configurationError("Jev timeoutMs must be a positive integer.", "timeoutMs");
47
+ }
48
+ return { apiKey, endpoint, model, timeoutMs };
49
+ }
50
+ // One System One call: POSTs the request, retries once on rate limits and
51
+ // overload, and returns the parsed body for the caller to interpret.
52
+ export async function postSystemOne(request, config, signal) {
53
+ for (let attempt = 1;; attempt += 1) {
54
+ const response = await fetchSystemOne(request, config, signal);
55
+ if (response.ok) {
56
+ try {
57
+ return await response.json();
58
+ }
59
+ catch {
60
+ throw invalidJevResponse("Jev returned a non-JSON response body.");
61
+ }
62
+ }
63
+ if (attempt < JEV_ATTEMPTS && JEV_RETRY_STATUSES.has(response.status)) {
64
+ await delay(retryDelayMs(response.headers.get("retry-after")), signal);
65
+ continue;
66
+ }
67
+ const body = await response.text().catch(() => "");
68
+ throw new RouterFrameworkError("policy", `Jev returned HTTP ${response.status}: ${body}`, "jev_http_error");
69
+ }
70
+ }
71
+ export function invalidJevResponse(message, usage = null) {
72
+ return new JevOutputError(message, "selector_invalid_response", usage);
73
+ }
74
+ async function fetchSystemOne(request, config, signal) {
75
+ const timeout = AbortSignal.timeout(config.timeoutMs);
76
+ try {
77
+ return await fetch(`${config.endpoint}/systemone`, {
78
+ method: "POST",
79
+ headers: {
80
+ Authorization: `Bearer ${config.apiKey}`,
81
+ "Content-Type": "application/json",
82
+ },
83
+ body: JSON.stringify(request),
84
+ signal: signal === undefined ? timeout : AbortSignal.any([signal, timeout]),
85
+ });
86
+ }
87
+ catch (error) {
88
+ if (signal?.aborted)
89
+ throw error;
90
+ throw new RouterFrameworkError("policy", `Jev request failed: ${error instanceof Error ? error.message : String(error)}`, "jev_request_failed", undefined, { cause: error });
91
+ }
92
+ }
93
+ function retryDelayMs(retryAfter) {
94
+ const seconds = Number(retryAfter);
95
+ if (retryAfter === null || !Number.isFinite(seconds) || seconds <= 0)
96
+ return JEV_RETRY_DELAY_MS;
97
+ return Math.min(seconds * 1000, JEV_RETRY_MAX_DELAY_MS);
98
+ }
99
+ function delay(ms, signal) {
100
+ return new Promise((resolve, reject) => {
101
+ const timer = setTimeout(() => {
102
+ signal?.removeEventListener("abort", onAbort);
103
+ resolve();
104
+ }, ms);
105
+ const onAbort = () => {
106
+ clearTimeout(timer);
107
+ reject(signal?.reason);
108
+ };
109
+ signal?.addEventListener("abort", onAbort, { once: true });
110
+ });
111
+ }
112
+ function configurationError(message, param) {
113
+ return new RouterCoreError("configuration", message, "jev_configuration_invalid", param);
114
+ }
115
+ //# sourceMappingURL=jev_client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jev_client.js","sourceRoot":"","sources":["../src/jev_client.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wEAAwE;AACxE,2EAA2E;AAC3E,uEAAuE;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC9C,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,4EAA4E;AAC5E,mCAAmC;AACnC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/C,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAkBrC,0EAA0E;AAC1E,wDAAwD;AACxD,MAAM,OAAO,cAAe,SAAQ,eAAe;IACxC,KAAK,CAAuB;IAErC,YAAY,OAAe,EAAE,IAAY,EAAE,QAA8B,IAAI;QAC3E,KAAK,CAAC,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,MAAM,kBAAkB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrF,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,kBAAkB,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5F,MAAM,kBAAkB,CACtB,mEAAmE,EACnE,UAAU,CACX,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,MAAM,kBAAkB,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,sBAAsB,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,kBAAkB,CAAC,2CAA2C,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC;AAED,0EAA0E;AAC1E,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAgF,EAChF,MAAyB,EACzB,MAA+B;IAE/B,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,kBAAkB,CAAC,wCAAwC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QACD,IAAI,OAAO,GAAG,YAAY,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtE,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,qBAAqB,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,EAC/C,gBAAgB,CACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,QAA8B,IAAI;IAElC,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAgB,EAChB,MAAyB,EACzB,MAA+B;IAE/B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,YAAY,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;gBACxC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC5E,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,KAAK,CAAC;QACjC,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC/E,oBAAoB,EACpB,SAAS,EACT,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,UAAyB;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAChG,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAA+B;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,KAAa;IACxD,OAAO,IAAI,eAAe,CAAC,eAAe,EAAE,OAAO,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;AAC3F,CAAC"}