@mupt-ai/dari-router 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -60
- package/dist/anonymous_actions.js +32 -10
- package/dist/anonymous_actions.js.map +1 -1
- package/dist/auto_router.d.ts +4 -1
- package/dist/auto_router.js +3 -3
- package/dist/auto_router.js.map +1 -1
- package/dist/cache_behavior.d.ts +8 -6
- package/dist/cache_behavior.js +60 -30
- package/dist/cache_behavior.js.map +1 -1
- package/dist/cache_scope.d.ts +2 -2
- package/dist/cache_scope.js +23 -18
- package/dist/cache_scope.js.map +1 -1
- package/dist/cost.d.ts +3 -2
- package/dist/cost.js +32 -23
- package/dist/cost.js.map +1 -1
- package/dist/dari_policy.d.ts +8 -2
- package/dist/dari_policy.js +39 -1
- package/dist/dari_policy.js.map +1 -1
- package/dist/eval_score_imputation.d.ts +26 -0
- package/dist/eval_score_imputation.js +121 -0
- package/dist/eval_score_imputation.js.map +1 -0
- package/dist/framework_lifecycle.d.ts +1 -1
- package/dist/framework_lifecycle.js +4 -1
- package/dist/framework_lifecycle.js.map +1 -1
- package/dist/framework_models.js +6 -0
- package/dist/framework_models.js.map +1 -1
- package/dist/framework_router.js +22 -11
- package/dist/framework_router.js.map +1 -1
- package/dist/framework_types.d.ts +9 -5
- package/dist/index.d.ts +9 -35
- package/dist/index.js +6 -37
- package/dist/index.js.map +1 -1
- package/dist/model_ids.js +4 -0
- package/dist/model_ids.js.map +1 -1
- package/dist/pi_runtime.js +19 -11
- package/dist/pi_runtime.js.map +1 -1
- package/dist/pi_types.d.ts +2 -2
- package/{src/index.ts → dist/policy-engine.d.ts} +2 -14
- package/dist/policy-engine.js +25 -0
- package/dist/policy-engine.js.map +1 -0
- package/dist/prompts.d.ts +1 -1
- package/dist/prompts.js +3 -3
- package/dist/prompts.js.map +1 -1
- package/dist/protocols.d.ts +5 -0
- package/dist/protocols.js +6 -0
- package/dist/protocols.js.map +1 -0
- package/dist/route.d.ts +3 -4
- package/dist/route.js +17 -10
- package/dist/route.js.map +1 -1
- package/dist/selector_input.d.ts +1 -0
- package/dist/selector_input.js +66 -78
- package/dist/selector_input.js.map +1 -1
- package/dist/selector_parse.d.ts +1 -0
- package/dist/selector_parse.js +2 -1
- package/dist/selector_parse.js.map +1 -1
- package/dist/selector_request.d.ts +1 -0
- package/dist/selector_request.js +1 -0
- package/dist/selector_request.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/examples/auto_router.ts +40 -0
- package/examples/basic_route.ts +130 -0
- package/examples/create_router.ts +114 -0
- package/examples/dari_policy.ts +86 -0
- package/examples/lease_stores.ts +159 -0
- package/examples/managed/README.md +50 -0
- package/examples/managed/byok-router/README.md +13 -0
- package/examples/managed/byok-router/router.yml +13 -0
- package/examples/managed/custom-rules-router/README.md +12 -0
- package/examples/managed/custom-rules-router/router.yml +24 -0
- package/examples/managed/eval-router/README.md +18 -0
- package/examples/managed/eval-router/router.yml +11 -0
- package/examples/managed/slm-router/README.md +12 -0
- package/examples/managed/slm-router/router.yml +8 -0
- package/examples/pi_runtime.ts +55 -0
- package/package.json +26 -7
- package/src/anonymous_actions.ts +0 -434
- package/src/auto_router.ts +0 -95
- package/src/cache_behavior.ts +0 -130
- package/src/cache_scope.ts +0 -58
- package/src/cache_switch_decision.ts +0 -53
- package/src/candidate_pruning.ts +0 -257
- package/src/candidate_resolution.ts +0 -208
- package/src/compatibility.ts +0 -162
- package/src/continuation_state.ts +0 -368
- package/src/cost.ts +0 -455
- package/src/dari_policy.ts +0 -360
- package/src/errors.ts +0 -27
- package/src/fingerprint.ts +0 -148
- package/src/fixed_turn_cost_config.ts +0 -24
- package/src/framework_error.ts +0 -38
- package/src/framework_lifecycle.ts +0 -74
- package/src/framework_models.ts +0 -186
- package/src/framework_router.ts +0 -490
- package/src/framework_streaming.ts +0 -613
- package/src/framework_types.ts +0 -372
- package/src/framework_validation.ts +0 -235
- package/src/json.ts +0 -43
- package/src/model_ids.ts +0 -29
- package/src/pi_context.ts +0 -251
- package/src/pi_options.ts +0 -295
- package/src/pi_output.ts +0 -387
- package/src/pi_reasoning_signature.ts +0 -41
- package/src/pi_runtime.ts +0 -238
- package/src/pi_types.ts +0 -71
- package/src/portable_reasoning_state.ts +0 -129
- package/src/previous_decision.ts +0 -109
- package/src/prompts.ts +0 -69
- package/src/protocol_anthropic.ts +0 -571
- package/src/protocol_openai_chat.ts +0 -645
- package/src/protocol_validation.ts +0 -202
- package/src/route.ts +0 -490
- package/src/routing_history.ts +0 -157
- package/src/selector_input.ts +0 -246
- package/src/selector_parse.ts +0 -138
- package/src/selector_request.ts +0 -130
- package/src/selector_truncation.ts +0 -48
- package/src/selector_wire.ts +0 -167
- package/src/types.ts +0 -231
package/README.md
CHANGED
|
@@ -1,86 +1,121 @@
|
|
|
1
|
-
# Dari Router
|
|
2
|
-
|
|
3
|
-
`@mupt-ai/dari-router`
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
23
|
+
## Minimal router
|
|
34
24
|
|
|
35
|
-
|
|
25
|
+
```ts
|
|
26
|
+
import { createRouter, type RouterExecutor } from "@mupt-ai/dari-router";
|
|
36
27
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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
|
-
|
|
63
|
+
executor: pi,
|
|
51
64
|
models: [pi.model("openai/gpt-5.4-mini"), pi.model("openai/gpt-5.4")],
|
|
52
|
-
policy: ({
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
108
|
+
Browser-safe benchmark score imputation is available without Pi AI or provider
|
|
109
|
+
SDKs:
|
|
71
110
|
|
|
72
|
-
|
|
111
|
+
```ts
|
|
112
|
+
import {
|
|
113
|
+
createThinkingLevelRatios,
|
|
114
|
+
resolveRouterEvalScore,
|
|
115
|
+
} from "@mupt-ai/dari-router/eval-score-imputation";
|
|
116
|
+
```
|
|
73
117
|
|
|
74
|
-
|
|
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:
|
|
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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"}
|
package/dist/auto_router.d.ts
CHANGED
|
@@ -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>;
|
package/dist/auto_router.js
CHANGED
|
@@ -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 {
|
|
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
|
|
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
|
package/dist/auto_router.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/cache_behavior.d.ts
CHANGED
|
@@ -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
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
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
|
|
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;
|
package/dist/cache_behavior.js
CHANGED
|
@@ -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,36 @@ 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
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
function
|
|
19
|
-
const
|
|
20
|
-
|
|
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
|
+
const resolved = (provider ?? providerForModel(model)).toLowerCase();
|
|
20
|
+
// Personal ChatGPT subscriptions execute through the openai-codex adapter,
|
|
21
|
+
// but retain OpenAI's tokenizer and automatic prompt-cache behavior. Keep
|
|
22
|
+
// the execution-provider alias out of cache-family and cost classification.
|
|
23
|
+
return resolved === "openai-codex" ? "openai" : resolved;
|
|
21
24
|
}
|
|
22
|
-
export function isAnthropicFamily(model) {
|
|
23
|
-
return
|
|
25
|
+
export function isAnthropicFamily(model, provider) {
|
|
26
|
+
return modelProvider(model, provider) === "anthropic";
|
|
24
27
|
}
|
|
25
|
-
export function isOpenAiFamily(model) {
|
|
26
|
-
return
|
|
28
|
+
export function isOpenAiFamily(model, provider) {
|
|
29
|
+
return modelProvider(model, provider) === "openai";
|
|
27
30
|
}
|
|
28
|
-
function isFireworksFamily(model) {
|
|
29
|
-
return
|
|
31
|
+
function isFireworksFamily(model, provider) {
|
|
32
|
+
return modelProvider(model, provider) === "fireworks";
|
|
30
33
|
}
|
|
31
|
-
function isMetaFamily(model) {
|
|
32
|
-
return
|
|
34
|
+
function isMetaFamily(model, provider) {
|
|
35
|
+
return modelProvider(model, provider) === "meta";
|
|
33
36
|
}
|
|
34
|
-
export function promptCacheProviderForModel(model) {
|
|
35
|
-
if (isOpenAiFamily(model))
|
|
37
|
+
export function promptCacheProviderForModel(model, provider) {
|
|
38
|
+
if (isOpenAiFamily(model, provider))
|
|
36
39
|
return "openai";
|
|
37
|
-
if (isAnthropicFamily(model))
|
|
40
|
+
if (isAnthropicFamily(model, provider))
|
|
38
41
|
return "anthropic";
|
|
39
|
-
if (isFireworksFamily(model))
|
|
42
|
+
if (isFireworksFamily(model, provider))
|
|
40
43
|
return "fireworks";
|
|
41
|
-
if (isMetaFamily(model))
|
|
44
|
+
if (isMetaFamily(model, provider))
|
|
42
45
|
return "meta";
|
|
43
46
|
return null;
|
|
44
47
|
}
|
|
@@ -52,8 +55,8 @@ export function openAiCachedPrefixTokens(promptTokens) {
|
|
|
52
55
|
// Anthropic cache minimums vary by model family. Keep this routing-side
|
|
53
56
|
// estimate conservative for known higher-minimum models; unknown future
|
|
54
57
|
// direct Anthropic models fall back to the common 1024-token threshold.
|
|
55
|
-
export function anthropicMinCacheTokens(model) {
|
|
56
|
-
if (!isAnthropicFamily(model))
|
|
58
|
+
export function anthropicMinCacheTokens(model, provider) {
|
|
59
|
+
if (!isAnthropicFamily(model, provider))
|
|
57
60
|
return OPENAI_MIN_CACHE_TOKENS;
|
|
58
61
|
const native = nativeModelId(model)
|
|
59
62
|
.toLowerCase()
|
|
@@ -68,10 +71,12 @@ export function anthropicMinCacheTokens(model) {
|
|
|
68
71
|
}
|
|
69
72
|
return OPENAI_MIN_CACHE_TOKENS;
|
|
70
73
|
}
|
|
71
|
-
export function tokenizerFamily(model) {
|
|
72
|
-
const provider =
|
|
74
|
+
export function tokenizerFamily(model, providerOverride) {
|
|
75
|
+
const provider = modelProvider(model, providerOverride);
|
|
73
76
|
if (provider === "fireworks") {
|
|
74
|
-
const
|
|
77
|
+
const canonical = canonicalModelId(model).toLowerCase();
|
|
78
|
+
const providerPrefixed = canonical.startsWith(`${provider}/`);
|
|
79
|
+
const native = providerPrefixed ? nativeModelId(canonical) : canonical;
|
|
75
80
|
const accountPrefix = "accounts/fireworks/models/";
|
|
76
81
|
const modelFamily = native.startsWith(accountPrefix)
|
|
77
82
|
? native.slice(accountPrefix.length)
|
|
@@ -81,10 +86,35 @@ export function tokenizerFamily(model) {
|
|
|
81
86
|
}
|
|
82
87
|
return provider;
|
|
83
88
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
// A hit whose model id has no parseable prefix cannot prove provenance, so it
|
|
90
|
+
// reads as cold rather than erroring the legacy path.
|
|
91
|
+
function prefixProviderMatches(model, expected) {
|
|
92
|
+
try {
|
|
93
|
+
return providerForModel(model) === expected;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export function prefixHitMatchesProvider(hit, currentProvider) {
|
|
100
|
+
const storedProvider = hit.provider?.trim().toLowerCase();
|
|
101
|
+
if (!currentProvider) {
|
|
102
|
+
// Legacy callers that do not declare an execution provider keep the old
|
|
103
|
+
// prefix-inferred behavior. A stored provider proves provenance only when
|
|
104
|
+
// it agrees with the model id's prefix; otherwise treat the hit as cold.
|
|
105
|
+
if (!storedProvider)
|
|
106
|
+
return true;
|
|
107
|
+
return prefixProviderMatches(hit.model, storedProvider);
|
|
108
|
+
}
|
|
109
|
+
const current = currentProvider.toLowerCase();
|
|
110
|
+
if (storedProvider)
|
|
111
|
+
return storedProvider === current;
|
|
112
|
+
return prefixProviderMatches(hit.model, current);
|
|
113
|
+
}
|
|
114
|
+
export function providerMinCacheTokens(model, provider) {
|
|
115
|
+
if (isAnthropicFamily(model, provider))
|
|
116
|
+
return anthropicMinCacheTokens(model, provider);
|
|
117
|
+
if (isFireworksFamily(model, provider) || isMetaFamily(model, provider))
|
|
88
118
|
return 0;
|
|
89
119
|
return OPENAI_MIN_CACHE_TOKENS;
|
|
90
120
|
}
|
|
@@ -105,7 +135,7 @@ export function providerCacheableTokens(model, provider, prefixTokens) {
|
|
|
105
135
|
if (provider === "openai")
|
|
106
136
|
return openAiCachedPrefixTokens(prefixTokens);
|
|
107
137
|
if (provider === "anthropic") {
|
|
108
|
-
return prefixTokens >= anthropicMinCacheTokens(model) ? Math.floor(prefixTokens) : 0;
|
|
138
|
+
return prefixTokens >= anthropicMinCacheTokens(model, provider) ? Math.floor(prefixTokens) : 0;
|
|
109
139
|
}
|
|
110
140
|
return Math.floor(prefixTokens);
|
|
111
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache_behavior.js","sourceRoot":"","sources":["../src/cache_behavior.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cache_behavior.js","sourceRoot":"","sources":["../src/cache_behavior.ts"],"names":[],"mappings":"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"}
|
package/dist/cache_scope.d.ts
CHANGED
|
@@ -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;
|
package/dist/cache_scope.js
CHANGED
|
@@ -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
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
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
|
-
|
|
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
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
package/dist/cache_scope.js.map
CHANGED
|
@@ -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,
|
|
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"}
|