@mupt-ai/dari-router 0.1.0 → 0.2.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.
Files changed (118) hide show
  1. package/README.md +89 -60
  2. package/dist/anonymous_actions.js +32 -10
  3. package/dist/anonymous_actions.js.map +1 -1
  4. package/dist/auto_router.d.ts +4 -1
  5. package/dist/auto_router.js +3 -3
  6. package/dist/auto_router.js.map +1 -1
  7. package/dist/cache_behavior.d.ts +8 -6
  8. package/dist/cache_behavior.js +56 -30
  9. package/dist/cache_behavior.js.map +1 -1
  10. package/dist/cache_scope.d.ts +2 -2
  11. package/dist/cache_scope.js +23 -18
  12. package/dist/cache_scope.js.map +1 -1
  13. package/dist/cost.d.ts +3 -2
  14. package/dist/cost.js +32 -23
  15. package/dist/cost.js.map +1 -1
  16. package/dist/dari_policy.d.ts +8 -2
  17. package/dist/dari_policy.js +39 -1
  18. package/dist/dari_policy.js.map +1 -1
  19. package/dist/eval_score_imputation.d.ts +26 -0
  20. package/dist/eval_score_imputation.js +83 -0
  21. package/dist/eval_score_imputation.js.map +1 -0
  22. package/dist/framework_lifecycle.d.ts +1 -1
  23. package/dist/framework_lifecycle.js +4 -1
  24. package/dist/framework_lifecycle.js.map +1 -1
  25. package/dist/framework_models.js +6 -0
  26. package/dist/framework_models.js.map +1 -1
  27. package/dist/framework_router.js +22 -11
  28. package/dist/framework_router.js.map +1 -1
  29. package/dist/framework_types.d.ts +9 -5
  30. package/dist/index.d.ts +9 -35
  31. package/dist/index.js +6 -37
  32. package/dist/index.js.map +1 -1
  33. package/dist/model_ids.js +4 -0
  34. package/dist/model_ids.js.map +1 -1
  35. package/dist/pi_runtime.js +19 -11
  36. package/dist/pi_runtime.js.map +1 -1
  37. package/dist/pi_types.d.ts +2 -2
  38. package/{src/index.ts → dist/policy-engine.d.ts} +2 -14
  39. package/dist/policy-engine.js +25 -0
  40. package/dist/policy-engine.js.map +1 -0
  41. package/dist/prompts.d.ts +1 -1
  42. package/dist/prompts.js +3 -3
  43. package/dist/prompts.js.map +1 -1
  44. package/dist/protocols.d.ts +5 -0
  45. package/dist/protocols.js +6 -0
  46. package/dist/protocols.js.map +1 -0
  47. package/dist/route.d.ts +3 -4
  48. package/dist/route.js +17 -10
  49. package/dist/route.js.map +1 -1
  50. package/dist/selector_input.d.ts +1 -0
  51. package/dist/selector_input.js +66 -78
  52. package/dist/selector_input.js.map +1 -1
  53. package/dist/selector_parse.d.ts +1 -0
  54. package/dist/selector_parse.js +2 -1
  55. package/dist/selector_parse.js.map +1 -1
  56. package/dist/selector_request.d.ts +1 -0
  57. package/dist/selector_request.js +1 -0
  58. package/dist/selector_request.js.map +1 -1
  59. package/dist/types.d.ts +1 -1
  60. package/examples/auto_router.ts +40 -0
  61. package/examples/basic_route.ts +130 -0
  62. package/examples/create_router.ts +114 -0
  63. package/examples/dari_policy.ts +86 -0
  64. package/examples/lease_stores.ts +159 -0
  65. package/examples/managed/README.md +50 -0
  66. package/examples/managed/byok-router/README.md +13 -0
  67. package/examples/managed/byok-router/router.yml +13 -0
  68. package/examples/managed/custom-rules-router/README.md +12 -0
  69. package/examples/managed/custom-rules-router/router.yml +24 -0
  70. package/examples/managed/eval-router/README.md +18 -0
  71. package/examples/managed/eval-router/router.yml +11 -0
  72. package/examples/managed/slm-router/README.md +12 -0
  73. package/examples/managed/slm-router/router.yml +8 -0
  74. package/examples/pi_runtime.ts +55 -0
  75. package/package.json +26 -7
  76. package/src/anonymous_actions.ts +0 -434
  77. package/src/auto_router.ts +0 -95
  78. package/src/cache_behavior.ts +0 -130
  79. package/src/cache_scope.ts +0 -58
  80. package/src/cache_switch_decision.ts +0 -53
  81. package/src/candidate_pruning.ts +0 -257
  82. package/src/candidate_resolution.ts +0 -208
  83. package/src/compatibility.ts +0 -162
  84. package/src/continuation_state.ts +0 -368
  85. package/src/cost.ts +0 -455
  86. package/src/dari_policy.ts +0 -360
  87. package/src/errors.ts +0 -27
  88. package/src/fingerprint.ts +0 -148
  89. package/src/fixed_turn_cost_config.ts +0 -24
  90. package/src/framework_error.ts +0 -38
  91. package/src/framework_lifecycle.ts +0 -74
  92. package/src/framework_models.ts +0 -186
  93. package/src/framework_router.ts +0 -490
  94. package/src/framework_streaming.ts +0 -613
  95. package/src/framework_types.ts +0 -372
  96. package/src/framework_validation.ts +0 -235
  97. package/src/json.ts +0 -43
  98. package/src/model_ids.ts +0 -29
  99. package/src/pi_context.ts +0 -251
  100. package/src/pi_options.ts +0 -295
  101. package/src/pi_output.ts +0 -387
  102. package/src/pi_reasoning_signature.ts +0 -41
  103. package/src/pi_runtime.ts +0 -238
  104. package/src/pi_types.ts +0 -71
  105. package/src/portable_reasoning_state.ts +0 -129
  106. package/src/previous_decision.ts +0 -109
  107. package/src/prompts.ts +0 -69
  108. package/src/protocol_anthropic.ts +0 -571
  109. package/src/protocol_openai_chat.ts +0 -645
  110. package/src/protocol_validation.ts +0 -202
  111. package/src/route.ts +0 -490
  112. package/src/routing_history.ts +0 -157
  113. package/src/selector_input.ts +0 -246
  114. package/src/selector_parse.ts +0 -138
  115. package/src/selector_request.ts +0 -130
  116. package/src/selector_truncation.ts +0 -48
  117. package/src/selector_wire.ts +0 -167
  118. package/src/types.ts +0 -231
package/README.md CHANGED
@@ -1,86 +1,121 @@
1
- # Dari Router Core
2
-
3
- `@mupt-ai/dari-router` puts multiple LLMs behind one endpoint. Declare models, provide a routing policy, and expose one web-standard handler for OpenAI Chat Completions and Anthropic Messages requests.
4
-
5
- ```text
6
- OpenAI or Anthropic request
7
- │
8
- ▼
9
- Normalize and filter models
10
- │
11
- ▼
12
- Your policy chooses
13
- │
14
- ▼
15
- Pi AI or a custom executor
16
- │
17
- ▼
18
- Response in the input protocol
19
- ```
1
+ # Dari Router Framework
2
+
3
+ `@mupt-ai/dari-router` is a pre-1.0 TypeScript framework for serving OpenAI Chat Completions and Anthropic Messages through one endpoint while choosing among multiple models.
4
+
5
+ It gives you three replaceable pieces:
20
6
 
21
- Pi AI is the bundled provider-client runtime. Custom executors replace it per-model when you need another SDK or transport. `createRouter` also ships pluggable lease storage, lifecycle hooks (`onSelection`, `onCompletion`, `onStreamClose`, `onError`), and opt-in cross-model fallback. [Dari's managed platform](https://docs.dari.dev/router/overview) provides a hosted endpoint with credentials, telemetry, billing, retries, and speculative routing.
7
+ - **Models** describe candidates and capabilities.
8
+ - **Policies** choose an eligible model.
9
+ - **Executors** call the chosen model.
10
+
11
+ The root package also includes a Pi AI executor and a hosted Auto Router policy.
22
12
 
23
13
  ## Install
24
14
 
25
15
  ```bash
26
- bun add @mupt-ai/dari-router
27
- # or
28
16
  npm install @mupt-ai/dari-router
29
17
  ```
30
18
 
31
- Requires Node.js 22.19+ or Bun. Source lives at [mupt-ai/dari-router-core](https://github.com/mupt-ai/dari-router-core), mirrored from the Dari monorepo.
19
+ The package is ESM and requires Node.js 22.19 or later, or Bun. Pi AI is an
20
+ optional peer dependency: install `@mupt-ai/pi-ai` when using
21
+ `createPiRuntime`; deterministic subpaths do not install its provider SDKs.
32
22
 
33
- ## Quick Start
23
+ ## Minimal router
34
24
 
35
- From a checkout of this repository:
25
+ ```ts
26
+ import { createRouter, type RouterExecutor } from "@mupt-ai/dari-router";
36
27
 
37
- ```bash
38
- bun install --frozen-lockfile
39
- bun run example # credential-free, in-memory executor
40
- OPENAI_API_KEY=... bun run example:pi # real OpenAI call through Pi
28
+ const executor: RouterExecutor = {
29
+ execute({ model }) {
30
+ return {
31
+ type: "complete",
32
+ output: {
33
+ content: [{ type: "text", text: `Served by ${model.id}` }],
34
+ finishReason: "stop",
35
+ },
36
+ };
37
+ },
38
+ };
39
+
40
+ const router = createRouter({
41
+ models: [{ id: "demo/model", executor: "demo" }],
42
+ executors: { demo: executor },
43
+ policy: ({ candidates }) => ({
44
+ model: candidates[0]!.id,
45
+ reason: "Use the only eligible candidate.",
46
+ }),
47
+ });
48
+
49
+ Bun.serve({ port: 3000, fetch: router.fetch });
41
50
  ```
42
51
 
43
- ## Minimal Router
52
+ Send `POST /v1/chat/completions` or `POST /v1/messages`. The response uses the request's protocol and reports the selected model in routing metadata.
53
+
54
+ ## Pi execution
55
+
56
+ Use the built-in runtime when your models are in Pi's catalog:
44
57
 
45
58
  ```ts
46
59
  import { createPiRuntime, createRouter } from "@mupt-ai/dari-router";
47
60
 
48
61
  const pi = await createPiRuntime({ apiKey: process.env.OPENAI_API_KEY! });
49
62
  const router = createRouter({
50
- runtime: pi,
63
+ executor: pi,
51
64
  models: [pi.model("openai/gpt-5.4-mini"), pi.model("openai/gpt-5.4")],
52
- policy: ({ request, candidates }) => {
53
- const long = JSON.stringify(request.items).length > 500;
54
- return {
55
- model: candidates.find((c) => c.id === (long ? "openai/gpt-5.4" : "openai/gpt-5.4-mini"))?.id ?? candidates[0]!.id,
56
- reason: long ? "Longer requests use the larger model." : "Short requests use the fast model.",
57
- };
65
+ policy: ({ candidates }) => ({ model: candidates[0]!.id }),
66
+ });
67
+ ```
68
+
69
+ Credentials are supplied by your application; the runtime does not read environment variables itself. A canonical model ID identifies the model independently of where it runs. If that ID names the model owner rather than the execution provider, set `provider` to the service that will execute it and `providerModelId` to that service's Pi catalog ID:
70
+
71
+ ```ts
72
+ const fireworksModel = pi.model("deepseek-ai/DeepSeek-V4-Pro-0813", {
73
+ provider: "fireworks",
74
+ providerModelId: "accounts/fireworks/models/deepseek-v4-pro-0813",
75
+ });
76
+ ```
77
+
78
+ For multiple providers, supply a credential callback. It receives the selected provider, model, API, and whether the call is for execution or selection:
79
+
80
+ ```ts
81
+ const pi = await createPiRuntime({
82
+ apiKey: ({ provider }) => {
83
+ const key = provider === "fireworks"
84
+ ? process.env.FIREWORKS_API_KEY
85
+ : process.env.OPENAI_API_KEY;
86
+ if (!key) throw new Error(`Missing API key for ${provider}`);
87
+ return key;
58
88
  },
59
89
  });
90
+ ```
60
91
 
61
- Bun.serve({ port: 3000, fetch: router.fetch });
92
+ Explicit provider metadata always wins; provider-prefixed IDs keep legacy prefix inference. See the [framework documentation](https://docs.dari.dev/framework/overview). Managed-router YAML manifests for use with the Dari CLI are in [`examples/managed/`](examples/managed/).
93
+
94
+ ## Explicit advanced boundaries
95
+
96
+ The root API is the end-to-end framework. Deterministic preparation, cache-aware evidence, selector parsing, and anonymous actions are under `/policy-engine`:
97
+
98
+ ```ts
99
+ import { prepareRoute, finalizeRoute } from "@mupt-ai/dari-router/policy-engine";
62
100
  ```
63
101
 
64
- ```bash
65
- curl http://localhost:3000/v1/chat/completions \
66
- -H 'Content-Type: application/json' \
67
- -d '{"model": "my-router", "messages": [{"role": "user", "content": "Explain cache locality."}]}'
102
+ Pure OpenAI/Anthropic adapters and continuation-state helpers are under `/protocols`:
103
+
104
+ ```ts
105
+ import { openAIChatRequest, anthropicRequest } from "@mupt-ai/dari-router/protocols";
68
106
  ```
69
107
 
70
- The response includes `dari_routing` (`requested_model`, `selected_model`, `reasoning_effort`, `reason` — the same shape the managed Dari platform emits) and `X-Router-Selected-Model`. The incoming `model` is a caller-facing name — it doesn't force the policy's choice. The same handler also accepts `/v1/messages` for Anthropic.
108
+ Browser-safe benchmark score imputation is available without Pi AI or provider
109
+ SDKs:
71
110
 
72
- ## Documentation
111
+ ```ts
112
+ import {
113
+ createThinkingLevelRatios,
114
+ resolveRouterEvalScore,
115
+ } from "@mupt-ai/dari-router/eval-score-imputation";
116
+ ```
73
117
 
74
- - [Overview](https://docs.dari.dev/framework/overview)
75
- - [Quickstart](https://docs.dari.dev/framework/quickstart)
76
- - [Models](https://docs.dari.dev/framework/models)
77
- - [Policies](https://docs.dari.dev/framework/policies)
78
- - [Pi Runtime](https://docs.dari.dev/framework/pi-runtime)
79
- - [Custom Executors](https://docs.dari.dev/framework/custom-executors)
80
- - [Protocols And Streaming](https://docs.dari.dev/framework/protocols-and-streaming)
81
- - [Auto Router](https://docs.dari.dev/framework/auto-router)
82
- - [Speculative Routing](https://docs.dari.dev/framework/speculative-routing)
83
- - [Decision Pipeline](https://docs.dari.dev/framework/decision-pipeline)
118
+ Most applications should use `createRouter`. Use `router.evaluatePolicy()` for stateless previews and `router.select()` when you need the same lease-aware selection used by `router.fetch()`.
84
119
 
85
120
  ## Development
86
121
 
@@ -89,12 +124,6 @@ bun install --frozen-lockfile
89
124
  bun run typecheck
90
125
  bun test
91
126
  bun run build
92
- bun run example:dari-policy
93
- bun run example:decision-pipeline
94
127
  ```
95
128
 
96
- ESM package. Uses web-standard `Request`, `Response`, streams, and `AbortSignal`. Bun serves `router.fetch` directly; Node.js 22.19+ needs a Request/Response adapter.
97
-
98
- ## License
99
-
100
129
  Apache-2.0. See [LICENSE](LICENSE).
@@ -67,6 +67,7 @@ export function buildAnonymousPolicyPrompt(anonymousSelectorInput, slots) {
67
67
  // section that grows turn over turn, so keeping it at the end preserves the
68
68
  // shared prefix.
69
69
  export function formatAnonymousPolicyInput(input) {
70
+ assertValidBenchmarkStandings(input.imported_evals);
70
71
  const sections = [
71
72
  ...(input.imported_evals.length > 0
72
73
  ? [section("benchmarks", input.imported_evals.map(glossaryLine).join("\n"))]
@@ -114,6 +115,22 @@ function usd(value) {
114
115
  function glossaryLine(card) {
115
116
  return card.description === null ? `- ${card.name}` : `- ${card.name}: ${card.description}`;
116
117
  }
118
+ function assertValidBenchmarkStandings(cards) {
119
+ for (const [cardIndex, card] of cards.entries()) {
120
+ const resolvedCount = card.scores.length;
121
+ for (const [scoreIndex, score] of card.scores.entries()) {
122
+ assertValidBenchmarkStanding(score.rank, score.rank_total, resolvedCount, `anonymous eval[${cardIndex}].scores[${scoreIndex}]`);
123
+ }
124
+ }
125
+ }
126
+ function assertValidBenchmarkStanding(rank, rankTotal, resolvedCount, label) {
127
+ if (!Number.isInteger(rank) || rank < 1 || rank > rankTotal) {
128
+ throw new Error(`${label}.rank must be an integer between 1 and rank_total`);
129
+ }
130
+ if (!Number.isInteger(rankTotal) || rankTotal !== resolvedCount) {
131
+ throw new Error(`${label}.rank_total must equal the resolved score count ${resolvedCount}`);
132
+ }
133
+ }
117
134
  function previousAction(value) {
118
135
  if (value === null || value === undefined)
119
136
  return null;
@@ -194,20 +211,25 @@ function anonymizeEvals(value, byCandidate) {
194
211
  if (!Array.isArray(scores)) {
195
212
  throw new Error(`selector eval[${evalIndex}].scores must be an array`);
196
213
  }
214
+ const resolvedCount = scores.length;
215
+ const anonymousScores = scores.map((entryScore, scoreIndex) => {
216
+ const label = `selector eval[${evalIndex}].scores[${scoreIndex}]`;
217
+ const score = jsonRecord(entryScore, label);
218
+ const rank = requiredNumber(score["rank"], `${label}.rank`);
219
+ const rankTotal = requiredNumber(score["rank_total"], `${label}.rank_total`);
220
+ assertValidBenchmarkStanding(rank, rankTotal, resolvedCount, label);
221
+ return {
222
+ action: actionForCandidate(byCandidate, requiredString(score["model_id"], `${label}.model_id`), requiredString(score["thinking_level"], `${label}.thinking_level`)),
223
+ rank,
224
+ rank_total: rankTotal,
225
+ z_score: requiredNumber(score["z_score"], `${label}.z_score`),
226
+ };
227
+ });
197
228
  return {
198
229
  name: requiredString(card["name"], `selector eval[${evalIndex}].name`),
199
230
  description: typeof card["description"] === "string" ? card["description"] : null,
200
231
  // Explicit allowlist: notes and any future field can name the model.
201
- scores: scores.map((entryScore, scoreIndex) => {
202
- const label = `selector eval[${evalIndex}].scores[${scoreIndex}]`;
203
- const score = jsonRecord(entryScore, label);
204
- return {
205
- action: actionForCandidate(byCandidate, requiredString(score["model_id"], `${label}.model_id`), requiredString(score["thinking_level"], `${label}.thinking_level`)),
206
- rank: requiredNumber(score["rank"], `${label}.rank`),
207
- rank_total: requiredNumber(score["rank_total"], `${label}.rank_total`),
208
- z_score: requiredNumber(score["z_score"], `${label}.z_score`),
209
- };
210
- }),
232
+ scores: anonymousScores,
211
233
  };
212
234
  });
213
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"anonymous_actions.js","sourceRoot":"","sources":["../src/anonymous_actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anonymous_actions.js","sourceRoot":"","sources":["../src/anonymous_actions.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,8 @@ export declare const DEFAULT_AUTO_ROUTER_CONTEXT_WINDOW_CHARS = 32000;
6
6
  export type CreateAutoRouterOptions<Metadata = unknown> = {
7
7
  apiKey: string;
8
8
  endpoint?: string;
9
- } & Omit<DariRoutingPolicyOptions<Metadata>, "selector" | "runtime" | "selectorModel" | "selectorContextWindowChars" | "strategy" | "customConfig">;
9
+ } & Omit<DariRoutingPolicyOptions<Metadata>, "selector" | "runtime" | "selectorModel" | "selectorContextWindowChars" | "strategy" | "customConfig" | "pricing" | "averageOutputTokensByModel"> & {
10
+ pricing?: DariRoutingPolicyOptions<Metadata>["pricing"];
11
+ averageOutputTokensByModel?: DariRoutingPolicyOptions<Metadata>["averageOutputTokensByModel"];
12
+ };
10
13
  export declare function createAutoRouter<Metadata = unknown>(options: CreateAutoRouterOptions<Metadata>): RoutingPolicy<Metadata>;
@@ -1,7 +1,7 @@
1
1
  // Dari Auto Router — a hosted routing policy for self-hosted createRouter
2
2
  // users. Dari bills the calling org per selection call.
3
3
  import { RouterFrameworkError } from "./framework_error.js";
4
- import { createDariRoutingPolicy } from "./dari_policy.js";
4
+ import { createDariRoutingPolicyInternal, } from "./dari_policy.js";
5
5
  export const DEFAULT_AUTO_ROUTER_ENDPOINT = "https://routing.dari.dev/v1/auto-router";
6
6
  export const DEFAULT_AUTO_ROUTER_MODEL = "dari/auto-router";
7
7
  export const DEFAULT_AUTO_ROUTER_CONTEXT_WINDOW_CHARS = 32_000;
@@ -23,7 +23,7 @@ export function createAutoRouter(options) {
23
23
  .replace(/\/+$/, "")
24
24
  .replace(/\/select$/, "");
25
25
  const { apiKey, endpoint: _endpoint, ...policyOptions } = options;
26
- return createDariRoutingPolicy({
26
+ return createDariRoutingPolicyInternal({
27
27
  ...policyOptions,
28
28
  selectorModel: DEFAULT_AUTO_ROUTER_MODEL,
29
29
  selectorContextWindowChars: DEFAULT_AUTO_ROUTER_CONTEXT_WINDOW_CHARS,
@@ -51,6 +51,6 @@ export function createAutoRouter(options) {
51
51
  }
52
52
  return await response.text();
53
53
  },
54
- });
54
+ }, false);
55
55
  }
56
56
  //# sourceMappingURL=auto_router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto_router.js","sourceRoot":"","sources":["../src/auto_router.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,wDAAwD;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAiC,MAAM,kBAAkB,CAAC;AAG1F,MAAM,CAAC,MAAM,4BAA4B,GAAG,yCAAyC,CAAC;AACtF,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAC5D,MAAM,CAAC,MAAM,wCAAwC,GAAG,MAAM,CAAC;AAe/D,MAAM,UAAU,gBAAgB,CAC9B,OAA0C;IAE1C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,oBAAoB,CAC5B,eAAe,EACf,sCAAsC,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,WAAW,GAAG,OAAyD,CAAC;IAC9E,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACjF,MAAM,IAAI,oBAAoB,CAC5B,eAAe,EACf,kFAAkF;YAChF,kEAAkE;YAClE,0EAA0E;YAC1E,8BAA8B,EAChC,sCAAsC,CACvC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,4BAA4B,CAAC;SAChE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5B,MAAM,EACJ,MAAM,EACN,QAAQ,EAAE,SAAS,EACnB,GAAG,aAAa,EACjB,GAAG,OAAO,CAAC;IAEZ,OAAO,uBAAuB,CAAW;QACvC,GAAG,aAAa;QAChB,aAAa,EAAE,yBAAyB;QACxC,0BAA0B,EAAE,wCAAwC;QACpE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,QAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,SAAS,EAAE;oBAC3C,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,MAAM,EAAE;wBACjC,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC7B,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;oBAAE,MAAM,KAAK,CAAC;gBACvE,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC5F,4BAA4B,EAC5B,SAAS,EACT,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,kCAAkC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,EAC5D,wBAAwB,CACzB,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"auto_router.js","sourceRoot":"","sources":["../src/auto_router.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,wDAAwD;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,+BAA+B,GAEhC,MAAM,kBAAkB,CAAC;AAG1B,MAAM,CAAC,MAAM,4BAA4B,GAAG,yCAAyC,CAAC;AACtF,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAC5D,MAAM,CAAC,MAAM,wCAAwC,GAAG,MAAM,CAAC;AAoB/D,MAAM,UAAU,gBAAgB,CAC9B,OAA0C;IAE1C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,oBAAoB,CAC5B,eAAe,EACf,sCAAsC,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,WAAW,GAAG,OAAyD,CAAC;IAC9E,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACjF,MAAM,IAAI,oBAAoB,CAC5B,eAAe,EACf,kFAAkF;YAChF,kEAAkE;YAClE,0EAA0E;YAC1E,8BAA8B,EAChC,sCAAsC,CACvC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,4BAA4B,CAAC;SAChE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5B,MAAM,EACJ,MAAM,EACN,QAAQ,EAAE,SAAS,EACnB,GAAG,aAAa,EACjB,GAAG,OAAO,CAAC;IAEZ,OAAO,+BAA+B,CAAW;QAC/C,GAAG,aAAa;QAChB,aAAa,EAAE,yBAAyB;QACxC,0BAA0B,EAAE,wCAAwC;QACpE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,QAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,SAAS,EAAE;oBAC3C,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,MAAM,EAAE;wBACjC,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC7B,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;oBAAE,MAAM,KAAK,CAAC;gBACvE,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC5F,4BAA4B,EAC5B,SAAS,EACT,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,kCAAkC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,EAC5D,wBAAwB,CACzB,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;KACF,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC"}
@@ -3,12 +3,14 @@ export declare const PREFIX_WARMTH_WINDOW_MS: number;
3
3
  export declare const ANTHROPIC_LOOKBACK_BLOCKS = 19;
4
4
  export declare const CROSS_TOKENIZER_RATIO = 1.1;
5
5
  export type PromptCacheProvider = "openai" | "anthropic" | "fireworks" | "meta";
6
- export declare function isAnthropicFamily(model: string): boolean;
7
- export declare function isOpenAiFamily(model: string): boolean;
8
- export declare function promptCacheProviderForModel(model: string): PromptCacheProvider | null;
6
+ export type ModelProviderLookup = (model: string) => string;
7
+ export declare function isAnthropicFamily(model: string, provider?: string): boolean;
8
+ export declare function isOpenAiFamily(model: string, provider?: string): boolean;
9
+ export declare function promptCacheProviderForModel(model: string, provider?: string): PromptCacheProvider | null;
9
10
  export declare function openAiCachedPrefixTokens(promptTokens: number): number;
10
- export declare function anthropicMinCacheTokens(model: string): number;
11
- export declare function tokenizerFamily(model: string): string;
12
- export declare function providerMinCacheTokens(model: string): number;
11
+ export declare function anthropicMinCacheTokens(model: string, provider?: string): number;
12
+ export declare function tokenizerFamily(model: string, providerOverride?: string): string;
13
+ export declare function prefixHitMatchesProvider(hit: RouterPrefixHit, currentProvider: string | undefined): boolean;
14
+ export declare function providerMinCacheTokens(model: string, provider?: string): number;
13
15
  export declare function warmPrefixHits(hits: readonly RouterPrefixHit[] | undefined, nowMs: number): RouterPrefixHit[];
14
16
  export declare function providerCacheableTokens(model: string, provider: PromptCacheProvider, prefixTokens: number): number;
@@ -1,4 +1,4 @@
1
- import { nativeModelId, providerForModel } from "./model_ids.js";
1
+ import { canonicalModelId, nativeModelId, providerForModel } from "./model_ids.js";
2
2
  // Provider prompt caches stop serving a prefix roughly five minutes after it
3
3
  // was last written. Stored prefix entries outlive that: a host's lookback
4
4
  // keeps them long enough to still name the conversation and the decision it
@@ -12,33 +12,32 @@ export const ANTHROPIC_LOOKBACK_BLOCKS = 19;
12
12
  export const CROSS_TOKENIZER_RATIO = 1.1;
13
13
  const OPENAI_MIN_CACHE_TOKENS = 1024;
14
14
  const OPENAI_CACHE_INCREMENT_TOKENS = 128;
15
- // providerForModel() lowercases the provider prefix, so family checks must
16
- // compare case-insensitively too. Unlike providerForModel this never throws;
17
- // malformed ids classify as no family.
18
- function providerPrefix(model) {
19
- const slash = model.indexOf("/");
20
- return slash <= 0 ? "" : model.slice(0, slash).toLowerCase();
15
+ // Callers that know the serving provider pass it; otherwise the model id's
16
+ // prefix decides, and an id with no parseable prefix is an error, not a
17
+ // silently generic model.
18
+ function modelProvider(model, provider) {
19
+ return (provider ?? providerForModel(model)).toLowerCase();
21
20
  }
22
- export function isAnthropicFamily(model) {
23
- return providerPrefix(model) === "anthropic";
21
+ export function isAnthropicFamily(model, provider) {
22
+ return modelProvider(model, provider) === "anthropic";
24
23
  }
25
- export function isOpenAiFamily(model) {
26
- return providerPrefix(model) === "openai";
24
+ export function isOpenAiFamily(model, provider) {
25
+ return modelProvider(model, provider) === "openai";
27
26
  }
28
- function isFireworksFamily(model) {
29
- return providerPrefix(model) === "fireworks";
27
+ function isFireworksFamily(model, provider) {
28
+ return modelProvider(model, provider) === "fireworks";
30
29
  }
31
- function isMetaFamily(model) {
32
- return providerPrefix(model) === "meta";
30
+ function isMetaFamily(model, provider) {
31
+ return modelProvider(model, provider) === "meta";
33
32
  }
34
- export function promptCacheProviderForModel(model) {
35
- if (isOpenAiFamily(model))
33
+ export function promptCacheProviderForModel(model, provider) {
34
+ if (isOpenAiFamily(model, provider))
36
35
  return "openai";
37
- if (isAnthropicFamily(model))
36
+ if (isAnthropicFamily(model, provider))
38
37
  return "anthropic";
39
- if (isFireworksFamily(model))
38
+ if (isFireworksFamily(model, provider))
40
39
  return "fireworks";
41
- if (isMetaFamily(model))
40
+ if (isMetaFamily(model, provider))
42
41
  return "meta";
43
42
  return null;
44
43
  }
@@ -52,8 +51,8 @@ export function openAiCachedPrefixTokens(promptTokens) {
52
51
  // Anthropic cache minimums vary by model family. Keep this routing-side
53
52
  // estimate conservative for known higher-minimum models; unknown future
54
53
  // direct Anthropic models fall back to the common 1024-token threshold.
55
- export function anthropicMinCacheTokens(model) {
56
- if (!isAnthropicFamily(model))
54
+ export function anthropicMinCacheTokens(model, provider) {
55
+ if (!isAnthropicFamily(model, provider))
57
56
  return OPENAI_MIN_CACHE_TOKENS;
58
57
  const native = nativeModelId(model)
59
58
  .toLowerCase()
@@ -68,10 +67,12 @@ export function anthropicMinCacheTokens(model) {
68
67
  }
69
68
  return OPENAI_MIN_CACHE_TOKENS;
70
69
  }
71
- export function tokenizerFamily(model) {
72
- const provider = providerForModel(model);
70
+ export function tokenizerFamily(model, providerOverride) {
71
+ const provider = modelProvider(model, providerOverride);
73
72
  if (provider === "fireworks") {
74
- const native = nativeModelId(model).toLowerCase();
73
+ const canonical = canonicalModelId(model).toLowerCase();
74
+ const providerPrefixed = canonical.startsWith(`${provider}/`);
75
+ const native = providerPrefixed ? nativeModelId(canonical) : canonical;
75
76
  const accountPrefix = "accounts/fireworks/models/";
76
77
  const modelFamily = native.startsWith(accountPrefix)
77
78
  ? native.slice(accountPrefix.length)
@@ -81,10 +82,35 @@ export function tokenizerFamily(model) {
81
82
  }
82
83
  return provider;
83
84
  }
84
- export function providerMinCacheTokens(model) {
85
- if (isAnthropicFamily(model))
86
- return anthropicMinCacheTokens(model);
87
- if (isFireworksFamily(model) || isMetaFamily(model))
85
+ // A hit whose model id has no parseable prefix cannot prove provenance, so it
86
+ // reads as cold rather than erroring the legacy path.
87
+ function prefixProviderMatches(model, expected) {
88
+ try {
89
+ return providerForModel(model) === expected;
90
+ }
91
+ catch {
92
+ return false;
93
+ }
94
+ }
95
+ export function prefixHitMatchesProvider(hit, currentProvider) {
96
+ const storedProvider = hit.provider?.trim().toLowerCase();
97
+ if (!currentProvider) {
98
+ // Legacy callers that do not declare an execution provider keep the old
99
+ // prefix-inferred behavior. A stored provider proves provenance only when
100
+ // it agrees with the model id's prefix; otherwise treat the hit as cold.
101
+ if (!storedProvider)
102
+ return true;
103
+ return prefixProviderMatches(hit.model, storedProvider);
104
+ }
105
+ const current = currentProvider.toLowerCase();
106
+ if (storedProvider)
107
+ return storedProvider === current;
108
+ return prefixProviderMatches(hit.model, current);
109
+ }
110
+ export function providerMinCacheTokens(model, provider) {
111
+ if (isAnthropicFamily(model, provider))
112
+ return anthropicMinCacheTokens(model, provider);
113
+ if (isFireworksFamily(model, provider) || isMetaFamily(model, provider))
88
114
  return 0;
89
115
  return OPENAI_MIN_CACHE_TOKENS;
90
116
  }
@@ -105,7 +131,7 @@ export function providerCacheableTokens(model, provider, prefixTokens) {
105
131
  if (provider === "openai")
106
132
  return openAiCachedPrefixTokens(prefixTokens);
107
133
  if (provider === "anthropic") {
108
- return prefixTokens >= anthropicMinCacheTokens(model) ? Math.floor(prefixTokens) : 0;
134
+ return prefixTokens >= anthropicMinCacheTokens(model, provider) ? Math.floor(prefixTokens) : 0;
109
135
  }
110
136
  return Math.floor(prefixTokens);
111
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache_behavior.js","sourceRoot":"","sources":["../src/cache_behavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache_behavior.js","sourceRoot":"","sources":["../src/cache_behavior.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export type ReasoningCacheScope = "effort_keyed" | "shared";
2
2
  export declare const DEFAULT_REASONING_CACHE_SCOPES: Readonly<Record<string, ReasoningCacheScope>>;
3
3
  export type ReasoningCacheScopeLookup = (modelId: string) => ReasoningCacheScope;
4
- export declare function reasoningCacheScope(modelId: string): ReasoningCacheScope;
5
- export declare function cachePartitionKey(modelId: string, reasoningBucket: string | null | undefined, cacheScope?: ReasoningCacheScopeLookup): string;
4
+ export declare function reasoningCacheScope(modelId: string, provider?: string): ReasoningCacheScope;
5
+ export declare function cachePartitionKey(modelId: string, reasoningBucket: string | null | undefined, cacheScope?: ReasoningCacheScopeLookup, provider?: string): string;
@@ -15,21 +15,24 @@ import { canonicalModelId } from "./model_ids.js";
15
15
  // Unlisted models default to effort_keyed: the safe direction is to
16
16
  // under-claim warmth, never to price a cold prefix as a cache read.
17
17
  export const DEFAULT_REASONING_CACHE_SCOPES = {
18
- "openai/gpt-5.6-sol": "effort_keyed",
19
- "openai/gpt-5.6-terra": "effort_keyed",
20
- "openai/gpt-5.6-luna": "effort_keyed",
21
- "openai/gpt-5.5": "effort_keyed",
22
- "openai/gpt-4.1-mini": "shared", // single reasoning mode; nothing to key on
23
- "anthropic/claude-opus-4-8": "effort_keyed",
24
- "anthropic/claude-sonnet-4-6": "effort_keyed",
25
- "anthropic/claude-haiku-4-5": "effort_keyed", // via pi-ai message-block cache_control; see note above
26
- "fireworks/deepseek-ai/DeepSeek-V4-Pro": "shared",
27
- "fireworks/deepseek-ai/DeepSeek-V4-Flash": "shared",
28
- "fireworks/deepseek-ai/DeepSeek-V4-Flash-0731": "shared",
29
- "fireworks/zai-org/GLM-5.2": "shared",
18
+ "openai:openai/gpt-5.6-sol": "effort_keyed",
19
+ "openai:openai/gpt-5.6-terra": "effort_keyed",
20
+ "openai:openai/gpt-5.6-luna": "effort_keyed",
21
+ "anthropic:anthropic/claude-opus-4-8": "effort_keyed",
22
+ "anthropic:anthropic/claude-haiku-4-5": "effort_keyed", // via pi-ai message-block cache_control; see note above
23
+ "fireworks:deepseek-ai/DeepSeek-V4-Pro-0813": "shared",
24
+ "fireworks:deepseek-ai/DeepSeek-V4-Flash-0731": "shared",
25
+ "fireworks:zai-org/GLM-5.2": "shared",
30
26
  };
31
- export function reasoningCacheScope(modelId) {
32
- return DEFAULT_REASONING_CACHE_SCOPES[canonicalModelId(modelId)] ?? "effort_keyed";
27
+ export function reasoningCacheScope(modelId, provider) {
28
+ const canonical = canonicalModelId(modelId);
29
+ const normalizedProvider = (provider ?? canonical.split("/", 1)[0]).toLowerCase();
30
+ const legacyPrefix = `${normalizedProvider}/`;
31
+ const providerNeutral = normalizedProvider === "fireworks" && canonical.startsWith(legacyPrefix)
32
+ ? canonical.slice(legacyPrefix.length)
33
+ : canonical;
34
+ return DEFAULT_REASONING_CACHE_SCOPES[`${normalizedProvider}:${providerNeutral}`]
35
+ ?? "effort_keyed";
33
36
  }
34
37
  // The provider cache partition a prefix entry belongs to. An effort-keyed
35
38
  // provider warms one partition per effective reasoning effort, so the pair
@@ -41,9 +44,11 @@ export function reasoningCacheScope(modelId) {
41
44
  // differ only in spelling stay separate rather than cross-contaminating. The
42
45
  // separator cannot appear in a model id or a bucket, so the pair is injective
43
46
  // and can never collide with a shared-scope key.
44
- export function cachePartitionKey(modelId, reasoningBucket, cacheScope = reasoningCacheScope) {
45
- if (cacheScope(modelId) === "shared")
46
- return modelId;
47
- return `${modelId}\u0000${reasoningBucket ?? ""}`;
47
+ export function cachePartitionKey(modelId, reasoningBucket, cacheScope, provider) {
48
+ const scope = cacheScope ?? ((model) => reasoningCacheScope(model, provider));
49
+ const executionIdentity = provider ? `${provider.toLowerCase()}\u0000${modelId}` : modelId;
50
+ if (scope(modelId) === "shared")
51
+ return executionIdentity;
52
+ return `${executionIdentity}\u0000${reasoningBucket ?? ""}`;
48
53
  }
49
54
  //# sourceMappingURL=cache_scope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache_scope.js","sourceRoot":"","sources":["../src/cache_scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,yEAAyE;AACzE,uEAAuE;AACvE,0BAA0B;AAC1B,uEAAuE;AACvE,+EAA+E;AAC/E,8DAA8D;AAC9D,uEAAuE;AACvE,yEAAyE;AACzE,+EAA+E;AAC/E,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAC9E,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,MAAM,CAAC,MAAM,8BAA8B,GAAkD;IAC3F,oBAAoB,EAAE,cAAc;IACpC,sBAAsB,EAAE,cAAc;IACtC,qBAAqB,EAAE,cAAc;IACrC,gBAAgB,EAAE,cAAc;IAChC,qBAAqB,EAAE,QAAQ,EAAE,2CAA2C;IAC5E,2BAA2B,EAAE,cAAc;IAC3C,6BAA6B,EAAE,cAAc;IAC7C,4BAA4B,EAAE,cAAc,EAAE,wDAAwD;IACtG,uCAAuC,EAAE,QAAQ;IACjD,yCAAyC,EAAE,QAAQ;IACnD,8CAA8C,EAAE,QAAQ;IACxD,2BAA2B,EAAE,QAAQ;CACtC,CAAC;AAIF,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,8BAA8B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,cAAc,CAAC;AACrF,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,iDAAiD;AACjD,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,eAA0C,EAC1C,aAAwC,mBAAmB;IAE3D,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IACrD,OAAO,GAAG,OAAO,SAAS,eAAe,IAAI,EAAE,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"cache_scope.js","sourceRoot":"","sources":["../src/cache_scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,yEAAyE;AACzE,uEAAuE;AACvE,0BAA0B;AAC1B,uEAAuE;AACvE,+EAA+E;AAC/E,8DAA8D;AAC9D,uEAAuE;AACvE,yEAAyE;AACzE,+EAA+E;AAC/E,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAC9E,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,MAAM,CAAC,MAAM,8BAA8B,GAAkD;IAC3F,2BAA2B,EAAE,cAAc;IAC3C,6BAA6B,EAAE,cAAc;IAC7C,4BAA4B,EAAE,cAAc;IAC5C,qCAAqC,EAAE,cAAc;IACrD,sCAAsC,EAAE,cAAc,EAAE,wDAAwD;IAChH,4CAA4C,EAAE,QAAQ;IACtD,8CAA8C,EAAE,QAAQ;IACxD,2BAA2B,EAAE,QAAQ;CACtC,CAAC;AAIF,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,QAAiB;IAEjB,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,kBAAkB,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAClF,MAAM,YAAY,GAAG,GAAG,kBAAkB,GAAG,CAAC;IAC9C,MAAM,eAAe,GAAG,kBAAkB,KAAK,WAAW,IAAI,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;QAC9F,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,8BAA8B,CAAC,GAAG,kBAAkB,IAAI,eAAe,EAAE,CAAC;WAC5E,cAAc,CAAC;AACtB,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,iDAAiD;AACjD,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,eAA0C,EAC1C,UAAsC,EACtC,QAAiB;IAEjB,MAAM,KAAK,GAAG,UAAU,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC;IAC1D,OAAO,GAAG,iBAAiB,SAAS,eAAe,IAAI,EAAE,EAAE,CAAC;AAC9D,CAAC"}