@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
@@ -13,11 +13,22 @@ export function createRouter(options) {
13
13
  if (options.generateId !== undefined && typeof options.generateId !== "function") {
14
14
  throw new RouterFrameworkError("configuration", "generateId must be a function.", "id_generator_invalid");
15
15
  }
16
+ const defaultExecutorName = "default";
17
+ if (options.executors && Object.hasOwn(options.executors, defaultExecutorName)) {
18
+ throw new RouterFrameworkError("configuration", `executors cannot use the reserved name '${defaultExecutorName}'.`, "executor_name_reserved");
19
+ }
16
20
  const executors = {
17
- ...(options.runtime === undefined ? {} : { pi: options.runtime }),
21
+ ...(options.executor === undefined ? {} : { [defaultExecutorName]: options.executor }),
18
22
  ...(options.executors ?? {}),
19
23
  };
20
- const modelDeclarations = options.models.map((model) => model.executor === undefined ? { ...model, executor: "pi" } : model);
24
+ const modelDeclarations = options.models.map((model) => {
25
+ if (model.executor !== undefined)
26
+ return model;
27
+ if (options.executor === undefined) {
28
+ throw new RouterFrameworkError("configuration", `Model '${model.id}' does not name an executor and no default executor was supplied.`, "executor_missing");
29
+ }
30
+ return { ...model, executor: defaultExecutorName };
31
+ });
21
32
  const models = Object.freeze(normalizeRouterModels(modelDeclarations, executors));
22
33
  // In-memory lease commitments keyed by request cacheKey. When a policy
23
34
  // returns leaseTurnsRemaining > 0, the router serves the same model for
@@ -67,11 +78,9 @@ export function createRouter(options) {
67
78
  throwIfAborted(signal);
68
79
  return validatePolicyDecision(chosen, candidates);
69
80
  };
70
- // Real serving path: consumes and commits leases keyed by cacheKey. The
71
- // public select() above never mutates lease state, so callers can inspect
72
- // decisions (e.g. auto-router thinking traces) without burning selection
73
- // turns or skipping committed leases.
74
- const selectWithLeases = async (request, signal) => {
81
+ // Authoritative serving selection: consumes and commits leases keyed by
82
+ // cacheKey. Stateless inspection uses evaluatePolicy/selectWithoutLeases.
83
+ const select = async (request, signal = new AbortController().signal) => {
75
84
  throwIfAborted(signal);
76
85
  const candidates = eligibleRouterModels(request, models);
77
86
  // Lease short-circuit: if a prior decision committed turns to a model that
@@ -98,7 +107,7 @@ export function createRouter(options) {
98
107
  expiresAt: now + LEASE_TTL_MS,
99
108
  }));
100
109
  }
101
- return {
110
+ const selection = {
102
111
  decision: {
103
112
  selectedModel: candidate.id,
104
113
  reasoningEffort: lease.reasoningEffort,
@@ -107,6 +116,8 @@ export function createRouter(options) {
107
116
  },
108
117
  candidates,
109
118
  };
119
+ safeHook(() => hooks.onSelection?.(selection, request));
120
+ return selection;
110
121
  }
111
122
  await tryLeaseStore(() => leaseStore.delete(leaseKey));
112
123
  }
@@ -124,6 +135,7 @@ export function createRouter(options) {
124
135
  expiresAt: Date.now() + LEASE_TTL_MS,
125
136
  }));
126
137
  }
138
+ safeHook(() => hooks.onSelection?.(selection, request));
127
139
  return selection;
128
140
  };
129
141
  const fetch = async (request) => {
@@ -158,9 +170,8 @@ export function createRouter(options) {
158
170
  const normalized = protocol === "openai_chat_completions"
159
171
  ? openAIChatRequest(payload)
160
172
  : anthropicRequest(payload);
161
- const selection = await selectWithLeases(normalized, controller.signal);
173
+ const selection = await select(normalized, controller.signal);
162
174
  effectiveSelection = selection;
163
- safeHook(() => hooks.onSelection?.(selection, normalized));
164
175
  const model = selection.candidates.find((candidate) => candidate.id === selection.decision.selectedModel);
165
176
  // eligibleRouterModels guarantees each candidate's default effort is in
166
177
  // its (filtered) reasoningEfforts.
@@ -300,7 +311,7 @@ export function createRouter(options) {
300
311
  request.signal.removeEventListener("abort", abort);
301
312
  }
302
313
  };
303
- return { models, select: selectWithoutLeases, fetch };
314
+ return { models, select, evaluatePolicy: selectWithoutLeases, fetch };
304
315
  }
305
316
  function protocolFor(request) {
306
317
  const path = new URL(request.url).pathname.replace(/\/+$/, "");
@@ -1 +1 @@
1
- {"version":3,"file":"framework_router.js","sourceRoot":"","sources":["../src/framework_router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"framework_router.js","sourceRoot":"","sources":["../src/framework_router.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,7 @@ export type RouterModel<Metadata = unknown> = {
105
105
  id: string;
106
106
  executor?: string;
107
107
  provider?: string;
108
+ providerModelId?: string;
108
109
  api?: string;
109
110
  reasoningEfforts?: readonly ReasoningEffort[];
110
111
  defaultReasoningEffort?: ReasoningEffort;
@@ -115,6 +116,7 @@ export type RouterCandidate<Metadata = unknown> = {
115
116
  id: string;
116
117
  executor: string;
117
118
  provider: string;
119
+ providerModelId?: string;
118
120
  api: string;
119
121
  reasoningEfforts: readonly ReasoningEffort[];
120
122
  defaultReasoningEffort: ReasoningEffort;
@@ -236,7 +238,7 @@ export type RouterExecutor<Metadata = unknown> = {
236
238
  export type CreateRouterOptions<Metadata = unknown> = {
237
239
  models: readonly RouterModel<Metadata>[];
238
240
  policy: RoutingPolicy<Metadata>;
239
- runtime?: RouterExecutor<Metadata>;
241
+ executor?: RouterExecutor<Metadata>;
240
242
  executors?: Readonly<Record<string, RouterExecutor<Metadata>>>;
241
243
  generateId?: () => string;
242
244
  leaseStore?: LeaseStore;
@@ -246,6 +248,7 @@ export type CreateRouterOptions<Metadata = unknown> = {
246
248
  export type Router<Metadata = unknown> = {
247
249
  readonly models: readonly RouterCandidate<Metadata>[];
248
250
  select(request: RouterRequest, signal?: AbortSignal): Promise<RouterSelection<Metadata>>;
251
+ evaluatePolicy(request: RouterRequest, signal?: AbortSignal): Promise<RouterSelection<Metadata>>;
249
252
  fetch(request: Request): Promise<Response>;
250
253
  };
251
254
  export type RouterLease = {
@@ -260,11 +263,12 @@ export interface LeaseStore {
260
263
  delete(cacheKey: string): void | Promise<void>;
261
264
  pruneExpired(nowMs: number): void | Promise<void>;
262
265
  }
266
+ export type RouterHookResult = void | Promise<void>;
263
267
  export type RouterHooks<Metadata = unknown> = {
264
- onSelection?(selection: RouterSelection<Metadata>, request: RouterRequest): void;
265
- onCompletion?(completion: RouterCompletion, selection: RouterSelection<Metadata>): void;
266
- onStreamClose?(completion: RouterCompletion | null, selection: RouterSelection<Metadata>, error: RouterFrameworkError | null): void;
267
- onError?(error: RouterFrameworkError, selection: RouterSelection<Metadata>): void;
268
+ onSelection?(selection: RouterSelection<Metadata>, request: RouterRequest): RouterHookResult;
269
+ onCompletion?(completion: RouterCompletion, selection: RouterSelection<Metadata>): RouterHookResult;
270
+ onStreamClose?(completion: RouterCompletion | null, selection: RouterSelection<Metadata>, error: RouterFrameworkError | null): RouterHookResult;
271
+ onError?(error: RouterFrameworkError, selection: RouterSelection<Metadata>): RouterHookResult;
268
272
  };
269
273
  export type RouterFallbackConfig = {
270
274
  enabled?: boolean;
package/dist/index.d.ts CHANGED
@@ -1,35 +1,9 @@
1
- export * from "./types.js";
2
- export * from "./errors.js";
3
- export * from "./json.js";
4
- export * from "./model_ids.js";
5
- export * from "./cache_behavior.js";
6
- export * from "./cache_scope.js";
7
- export * from "./fixed_turn_cost_config.js";
8
- export * from "./cost.js";
9
- export * from "./fingerprint.js";
10
- export * from "./compatibility.js";
11
- export * from "./cache_switch_decision.js";
12
- export * from "./candidate_pruning.js";
13
- export * from "./candidate_resolution.js";
14
- export * from "./previous_decision.js";
15
- export * from "./prompts.js";
16
- export * from "./selector_input.js";
17
- export * from "./selector_truncation.js";
18
- export * from "./routing_history.js";
19
- export * from "./selector_request.js";
20
- export * from "./selector_wire.js";
21
- export * from "./selector_parse.js";
22
- export * from "./anonymous_actions.js";
23
- export * from "./route.js";
24
- export * from "./framework_error.js";
25
- export * from "./framework_types.js";
26
- export * from "./continuation_state.js";
27
- export * from "./portable_reasoning_state.js";
28
- export * from "./framework_models.js";
29
- export * from "./framework_router.js";
30
- export * from "./pi_runtime.js";
31
- export * from "./pi_reasoning_signature.js";
32
- export { openAIChatRequest, openAIChatResponse } from "./protocol_openai_chat.js";
33
- export { anthropicRequest, anthropicResponse } from "./protocol_anthropic.js";
34
- export * from "./dari_policy.js";
35
- export * from "./auto_router.js";
1
+ export { createRouter, } from "./framework_router.js";
2
+ export { createPiRuntime, } from "./pi_runtime.js";
3
+ export { createAutoRouter, } from "./auto_router.js";
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";
5
+ export type { CreatePiRuntimeOptions, PiApiKey, PiCredentialInput, PiModelRegistry, PiRouterModelOptions, PiRuntime, } from "./pi_runtime.js";
6
+ export type { CreateAutoRouterOptions } from "./auto_router.js";
7
+ export type { ReasoningEffort } from "./types.js";
8
+ export { RouterFrameworkError } from "./framework_error.js";
9
+ export type { RouterFrameworkErrorKind } from "./framework_error.js";
package/dist/index.js CHANGED
@@ -1,38 +1,7 @@
1
- export * from "./types.js";
2
- export * from "./errors.js";
3
- export * from "./json.js";
4
- export * from "./model_ids.js";
5
- export * from "./cache_behavior.js";
6
- export * from "./cache_scope.js";
7
- export * from "./fixed_turn_cost_config.js";
8
- export * from "./cost.js";
9
- export * from "./fingerprint.js";
10
- export * from "./compatibility.js";
11
- export * from "./cache_switch_decision.js";
12
- export * from "./candidate_pruning.js";
13
- export * from "./candidate_resolution.js";
14
- export * from "./previous_decision.js";
15
- export * from "./prompts.js";
16
- export * from "./selector_input.js";
17
- export * from "./selector_truncation.js";
18
- export * from "./routing_history.js";
19
- export * from "./selector_request.js";
20
- export * from "./selector_wire.js";
21
- export * from "./selector_parse.js";
22
- export * from "./anonymous_actions.js";
23
- export * from "./route.js";
24
- export * from "./framework_error.js";
25
- export * from "./framework_types.js";
26
- export * from "./continuation_state.js";
27
- export * from "./portable_reasoning_state.js";
28
- export * from "./framework_models.js";
29
- export * from "./framework_router.js";
30
- export * from "./pi_runtime.js";
31
- export * from "./pi_reasoning_signature.js";
32
- // The protocol modules' SSE stream writers are framework_router plumbing, not
33
- // public API; only the request/response codecs are re-exported.
34
- export { openAIChatRequest, openAIChatResponse } from "./protocol_openai_chat.js";
35
- export { anthropicRequest, anthropicResponse } from "./protocol_anthropic.js";
36
- export * from "./dari_policy.js";
37
- export * from "./auto_router.js";
1
+ // Stable framework API. Advanced policy-engine and protocol helpers live in
2
+ // explicit subpath exports so the root remains discoverable and refactorable.
3
+ export { createRouter, } from "./framework_router.js";
4
+ export { createPiRuntime, } from "./pi_runtime.js";
5
+ export { createAutoRouter, } from "./auto_router.js";
6
+ export { RouterFrameworkError } from "./framework_error.js";
38
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,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,8EAA8E;AAC9E,gEAAgE;AAChE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,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"}
package/dist/model_ids.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { RouterCoreError } from "./errors.js";
2
2
  const PROVIDER_PATTERN = /^[a-z][a-z0-9_.-]{0,119}$/;
3
+ // Legacy inference for provider-prefixed model ids. Canonical model ids may
4
+ // instead name their owner; explicit provider metadata must win when present.
3
5
  export function providerForModel(model) {
4
6
  const slash = model.indexOf("/");
5
7
  if (slash <= 0) {
@@ -11,6 +13,8 @@ export function providerForModel(model) {
11
13
  }
12
14
  return provider;
13
15
  }
16
+ // Legacy companion to providerForModel for ids whose first segment is the
17
+ // execution provider. Provider-neutral declarations use providerModelId.
14
18
  export function nativeModelId(model) {
15
19
  return model.slice(`${providerForModel(model)}/`.length);
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model_ids.js","sourceRoot":"","sources":["../src/model_ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAErD,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,kCAAkC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,kCAAkC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"model_ids.js","sourceRoot":"","sources":["../src/model_ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAErD,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,kCAAkC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,kCAAkC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0EAA0E;AAC1E,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC"}
@@ -17,8 +17,9 @@ export async function createPiRuntime(options) {
17
17
  validateRuntimeOptions(options);
18
18
  const dependencies = await piDependencies(options.registry);
19
19
  const model = (id, overrides = {}) => {
20
- const provider = modelProvider(id);
21
- const registered = registeredModel(dependencies.registry, provider, id);
20
+ const provider = overrides.provider ?? modelProvider(id);
21
+ const providerModelId = overrides.providerModelId ?? legacyNativeModelId(id, provider);
22
+ const registered = registeredModel(dependencies.registry, provider, providerModelId, id);
22
23
  const reasoningEfforts = overrides.reasoningEfforts === undefined
23
24
  ? dependencies.supportedThinkingLevels(registered)
24
25
  : [...overrides.reasoningEfforts];
@@ -26,8 +27,8 @@ export async function createPiRuntime(options) {
26
27
  ?? (reasoningEfforts.includes("off") ? "off" : reasoningEfforts[0]);
27
28
  return {
28
29
  id,
29
- executor: "pi",
30
30
  provider,
31
+ providerModelId,
31
32
  api: registered.api,
32
33
  reasoningEfforts,
33
34
  ...(defaultReasoningEffort === undefined ? {} : { defaultReasoningEffort }),
@@ -42,7 +43,7 @@ export async function createPiRuntime(options) {
42
43
  };
43
44
  };
44
45
  const run = async (execution) => {
45
- const registered = registeredModel(dependencies.registry, execution.candidate.provider, execution.candidate.id);
46
+ const registered = registeredModel(dependencies.registry, execution.candidate.provider, execution.candidate.providerModelId, execution.candidate.id);
46
47
  if (registered.api !== execution.candidate.api) {
47
48
  throw new RouterFrameworkError("configuration", `Model '${execution.candidate.id}' declares API '${execution.candidate.api}' but Pi uses '${registered.api}'.`, "pi_model_api_mismatch");
48
49
  }
@@ -84,6 +85,7 @@ export async function createPiRuntime(options) {
84
85
  candidate: {
85
86
  id: candidate.id,
86
87
  provider: candidate.provider,
88
+ providerModelId: candidate.providerModelId,
87
89
  api: candidate.api,
88
90
  },
89
91
  reasoningEffort: normalized.reasoning?.effort ?? candidate.defaultReasoningEffort ?? "off",
@@ -132,13 +134,19 @@ function modelProvider(id) {
132
134
  throw new RouterFrameworkError("configuration", `Pi model '${id}' must include a provider prefix.`, "pi_model_provider_missing", undefined, { cause: error });
133
135
  }
134
136
  }
135
- function registeredModel(registry, provider, id) {
136
- let nativeId;
137
- try {
138
- nativeId = nativeModelId(id);
139
- }
140
- catch {
141
- nativeId = id;
137
+ function legacyNativeModelId(id, provider) {
138
+ const prefix = `${provider.toLowerCase()}/`;
139
+ return id.toLowerCase().startsWith(prefix) ? id.slice(prefix.length) : id;
140
+ }
141
+ function registeredModel(registry, provider, providerModelId, id) {
142
+ let nativeId = providerModelId;
143
+ if (nativeId === undefined) {
144
+ try {
145
+ nativeId = nativeModelId(id);
146
+ }
147
+ catch {
148
+ nativeId = id;
149
+ }
142
150
  }
143
151
  const registered = registry.getModel(provider, nativeId) ?? registry.getModel(provider, id);
144
152
  if (registered === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"pi_runtime.js","sourceRoot":"","sources":["../src/pi_runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi_runtime.js","sourceRoot":"","sources":["../src/pi_runtime.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export type CreatePiRuntimeOptions = {
20
20
  timeoutMs?: number;
21
21
  maxRetries?: number;
22
22
  };
23
- export type PiRouterModelOptions<Metadata = unknown> = Omit<RouterModel<Metadata>, "id" | "executor" | "provider" | "api">;
23
+ export type PiRouterModelOptions<Metadata = unknown> = Omit<RouterModel<Metadata>, "id" | "executor" | "api">;
24
24
  export type PiRuntime = {
25
25
  model<Metadata = unknown>(id: string, options?: Partial<PiRouterModelOptions<Metadata>>): RouterModel<Metadata>;
26
26
  execute<Metadata>(input: RouterExecutorInput<Metadata>): Promise<RouterExecutorResult>;
@@ -28,7 +28,7 @@ export type PiRuntime = {
28
28
  };
29
29
  export type PiExecution = {
30
30
  request: RouterRequest;
31
- candidate: Pick<RouterCandidate, "id" | "provider" | "api">;
31
+ candidate: Pick<RouterCandidate, "id" | "provider" | "providerModelId" | "api">;
32
32
  reasoningEffort: ReasoningEffort;
33
33
  signal: AbortSignal;
34
34
  purpose: PiCredentialInput["purpose"];
@@ -21,17 +21,5 @@ export * from "./selector_wire.js";
21
21
  export * from "./selector_parse.js";
22
22
  export * from "./anonymous_actions.js";
23
23
  export * from "./route.js";
24
- export * from "./framework_error.js";
25
- export * from "./framework_types.js";
26
- export * from "./continuation_state.js";
27
- export * from "./portable_reasoning_state.js";
28
- export * from "./framework_models.js";
29
- export * from "./framework_router.js";
30
- export * from "./pi_runtime.js";
31
- export * from "./pi_reasoning_signature.js";
32
- // The protocol modules' SSE stream writers are framework_router plumbing, not
33
- // public API; only the request/response codecs are re-exported.
34
- export { openAIChatRequest, openAIChatResponse } from "./protocol_openai_chat.js";
35
- export { anthropicRequest, anthropicResponse } from "./protocol_anthropic.js";
36
- export * from "./dari_policy.js";
37
- export * from "./auto_router.js";
24
+ export { createDariRoutingPolicy } from "./dari_policy.js";
25
+ export type { DariPolicyDetails, DariPolicyState, DariRoutingPolicyOptions } from "./dari_policy.js";
@@ -0,0 +1,25 @@
1
+ export * from "./types.js";
2
+ export * from "./errors.js";
3
+ export * from "./json.js";
4
+ export * from "./model_ids.js";
5
+ export * from "./cache_behavior.js";
6
+ export * from "./cache_scope.js";
7
+ export * from "./fixed_turn_cost_config.js";
8
+ export * from "./cost.js";
9
+ export * from "./fingerprint.js";
10
+ export * from "./compatibility.js";
11
+ export * from "./cache_switch_decision.js";
12
+ export * from "./candidate_pruning.js";
13
+ export * from "./candidate_resolution.js";
14
+ export * from "./previous_decision.js";
15
+ export * from "./prompts.js";
16
+ export * from "./selector_input.js";
17
+ export * from "./selector_truncation.js";
18
+ export * from "./routing_history.js";
19
+ export * from "./selector_request.js";
20
+ export * from "./selector_wire.js";
21
+ export * from "./selector_parse.js";
22
+ export * from "./anonymous_actions.js";
23
+ export * from "./route.js";
24
+ export { createDariRoutingPolicy } from "./dari_policy.js";
25
+ //# sourceMappingURL=policy-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../src/policy-engine.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/prompts.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const SELECTOR_SYSTEM_PROMPT = "You are Dari's model router. Pick the best candidate model/thinking-level pair for the user's request.\n\n# Selection procedure\n\n1. Capability first: make sure the selected pair can reasonably handle the task. Consider both model capability and how much thinking the task needs; capability is never traded away for cost.\n2. Use imported eval scorecards as benchmark evidence when relevant.\n3. A missing benchmark score means that candidate pair was not evaluated on that benchmark; do not treat it as zero, failure, or negative evidence.\n4. When several pairs are viable on capability, use cost_estimates as the deciding factor between them.\n5. Prefer the previous_decision pair when the task hasn't changed.\n\n# Cost comparison rules\n\n- fixed_turn_cost_estimate.projections is the primary cost metric whenever it is present. Each entry estimates the whole agent loop from this decision point out to projected_turns requests, using current cache warmth, provider cache rules, cache hit probabilities, and output tokens folded into later requests. Compare candidates at the horizon the task looks likely to need.\n- Candidates with fixed_turn_cost_estimate are the preferred cost-comparison pool when capability is otherwise comparable.\n- Do not rank candidates by output_cost_per_mtok or est_input_cost_usd ahead of fixed_turn_cost_estimate.projections. Do not discard those estimates just because some candidates lack them.\n- For candidates without fixed_turn_cost_estimate, use est_input_cost_usd and output_cost_per_mtok as fallback cost evidence, and select such a candidate only when its capability and fallback pricing make it a better fit than candidates with fixed-turn estimates.\n\n# Output\n\nReturn JSON matching the provided schema. selected_model and reasoning_effort must exactly match one candidate pair.\nThe runtime chooses provider fallbacks separately; return only the primary decision.";
1
+ export declare const SELECTOR_SYSTEM_PROMPT = "You are Dari's model router. Pick the best candidate model/thinking-level pair for the user's request.\n\n# Selection procedure\n\n1. Capability first: make sure the selected pair can reasonably handle the task. Consider both model capability and how much thinking the task needs; capability is never traded away for cost.\n2. Use imported eval scorecards as benchmark evidence when relevant. Rank is each candidate action's standing among the scored candidate actions on that benchmark, and z_score uses that same candidate group.\n3. A missing benchmark score means that candidate pair was not evaluated on that benchmark; do not treat it as zero, failure, or negative evidence.\n4. When several pairs are viable on capability, use cost_estimates as the deciding factor between them.\n5. Prefer the previous_decision pair when the task hasn't changed.\n\n# Cost comparison rules\n\n- fixed_turn_cost_estimate.projections is the primary cost metric whenever it is present. Each entry estimates the whole agent loop from this decision point out to projected_turns requests, using current cache warmth, provider cache rules, cache hit probabilities, and output tokens folded into later requests. Compare candidates at the horizon the task looks likely to need.\n- Candidates with fixed_turn_cost_estimate are the preferred cost-comparison pool when capability is otherwise comparable.\n- Do not rank candidates by output_cost_per_mtok or est_input_cost_usd ahead of fixed_turn_cost_estimate.projections. Do not discard those estimates just because some candidates lack them.\n- For candidates without fixed_turn_cost_estimate, use est_input_cost_usd and output_cost_per_mtok as fallback cost evidence, and select such a candidate only when its capability and fallback pricing make it a better fit than candidates with fixed-turn estimates.\n\n# Output\n\nReturn JSON matching the provided schema. selected_model and reasoning_effort must exactly match one candidate pair.\nThe runtime chooses provider fallbacks separately; return only the primary decision.";
2
2
  export declare const CUSTOM_SELECTOR_SYSTEM_PROMPT: string;
3
3
  export declare const ANONYMOUS_ACTION_SYSTEM_PROMPT: string;
package/dist/prompts.js CHANGED
@@ -10,7 +10,7 @@ export const SELECTOR_SYSTEM_PROMPT = `You are Dari's model router. Pick the bes
10
10
  # Selection procedure
11
11
 
12
12
  1. Capability first: make sure the selected pair can reasonably handle the task. Consider both model capability and how much thinking the task needs; capability is never traded away for cost.
13
- 2. Use imported eval scorecards as benchmark evidence when relevant.
13
+ 2. Use imported eval scorecards as benchmark evidence when relevant. Rank is each candidate action's standing among the scored candidate actions on that benchmark, and z_score uses that same candidate group.
14
14
  3. A missing benchmark score means that candidate pair was not evaluated on that benchmark; do not treat it as zero, failure, or negative evidence.
15
15
  4. When several pairs are viable on capability, use cost_estimates as the deciding factor between them.
16
16
  5. Prefer the previous_decision pair when the task hasn't changed.
@@ -33,7 +33,7 @@ custom_rules is ordered by model price, most expensive first; the order is prese
33
33
  When several rules match, pick the one whose when condition is most specific to the current request.
34
34
  When no rule matches, select default_target if it is set; its null thinking_level also means Auto. Otherwise prefer previous_decision when it is a candidate; otherwise pick the most capable candidate pair.
35
35
  Prefer previous_decision while the matched rule (or task phase) hasn't changed.
36
- Use imported eval scorecards as benchmark evidence when relevant. A missing benchmark score means that candidate pair was not evaluated on that benchmark; do not treat it as zero, failure, or negative evidence.
36
+ Use imported eval scorecards as benchmark evidence when relevant. Rank is each candidate action's standing among the scored candidate actions on that benchmark, and z_score uses that same candidate group. A missing benchmark score means that candidate pair was not evaluated on that benchmark; do not treat it as zero, failure, or negative evidence.
37
37
  Use cost_estimates only to break ties between rule-matched candidates or to choose among an Auto target's viable thinking levels; a rule match is never traded away for cost.
38
38
  When using cost_estimates, fixed_turn_cost_estimate.projections is the primary cost metric whenever present because it includes current cache warmth and projected loop cost at ${PROJECTED_TURNS_PHRASE} turns. For candidates without fixed_turn_cost_estimate, use est_input_cost_usd and output_cost_per_mtok as fallback cost evidence. Do not rank by output_cost_per_mtok ahead of fixed_turn_cost_estimate.projections.
39
39
  Return JSON matching the provided schema.
@@ -47,7 +47,7 @@ export const ANONYMOUS_ACTION_SYSTEM_PROMPT = [
47
47
  "Choose exactly one anonymous candidate action for the agent's next turns, and how many turns to commit to it.",
48
48
  "Your choice is a lease: the chosen action serves that many consecutive turns before you are consulted again. A longer lease amortizes the cold start paid on its first turn across warm cache hits on the turns that follow; the lease ends early only if the task finishes or the provider fails.",
49
49
  "Each action's block lists its benchmark standing and its projected cost at each lease length you may choose.",
50
- "Rank is the action's position among every model scored on that benchmark, 1 being best. Z is how many standard deviations that model sits above or below the mean of those models.",
50
+ "Rank is the action's position among the scored candidate actions on that benchmark, 1 being best. Z is how many standard deviations that action sits above or below the mean of those scored candidate actions.",
51
51
  "Cost is the projected spend for the whole agent loop over exactly the turns of each lease option, from current cache warmth. Compare actions at the lease you intend to pick.",
52
52
  "A missing benchmark score means that action was not evaluated on that benchmark; do not treat it as zero, failure, or negative evidence.",
53
53
  "Prefer a cheaper action only when it is sufficiently likely to complete the task successfully.",
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,yEAAyE;AACzE,uEAAuE;AAEvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,sBAAsB,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;qFAoB+C,CAAC;AAEtF,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;kLASqI,sBAAsB;;;qFAGnH,CAAC;AAEtF,iEAAiE;AACjE,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,iDAAiD;IACjD,+GAA+G;IAC/G,oSAAoS;IACpS,8GAA8G;IAC9G,oLAAoL;IACpL,+KAA+K;IAC/K,0IAA0I;IAC1I,gGAAgG;IAChG,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,iEAAiE;IACjE,gDAAgD;IAChD,0LAA0L;IAC1L,iHAAiH;IACjH,4NAA4N;IAC5N,uFAAuF;IACvF,gDAAgD;CACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,yEAAyE;AACzE,uEAAuE;AAEvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,sBAAsB,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;qFAoB+C,CAAC;AAEtF,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;kLASqI,sBAAsB;;;qFAGnH,CAAC;AAEtF,iEAAiE;AACjE,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,iDAAiD;IACjD,+GAA+G;IAC/G,oSAAoS;IACpS,8GAA8G;IAC9G,iNAAiN;IACjN,+KAA+K;IAC/K,0IAA0I;IAC1I,gGAAgG;IAChG,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,iEAAiE;IACjE,gDAAgD;IAChD,0LAA0L;IAC1L,iHAAiH;IACjH,4NAA4N;IAC5N,uFAAuF;IACvF,gDAAgD;CACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { openAIChatRequest, openAIChatResponse } from "./protocol_openai_chat.js";
2
+ export { anthropicRequest, anthropicResponse } from "./protocol_anthropic.js";
3
+ export * from "./continuation_state.js";
4
+ export * from "./portable_reasoning_state.js";
5
+ export * from "./pi_reasoning_signature.js";
@@ -0,0 +1,6 @@
1
+ export { openAIChatRequest, openAIChatResponse } from "./protocol_openai_chat.js";
2
+ export { anthropicRequest, anthropicResponse } from "./protocol_anthropic.js";
3
+ export * from "./continuation_state.js";
4
+ export * from "./portable_reasoning_state.js";
5
+ export * from "./pi_reasoning_signature.js";
6
+ //# sourceMappingURL=protocols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../src/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC"}
package/dist/route.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type CandidateMetadataLookup } from "./compatibility.js";
2
2
  import { type CandidatePromptEstimate, type PricingLookup } from "./cost.js";
3
- import type { ReasoningCacheScopeLookup } from "./cache_scope.js";
3
+ import { type ReasoningCacheScopeLookup } from "./cache_scope.js";
4
4
  import { type ActiveLease, type PendingLease } from "./previous_decision.js";
5
5
  import { type StrategyCandidateResolution } from "./candidate_resolution.js";
6
6
  import { type BuiltSelectorRequest } from "./selector_request.js";
@@ -15,7 +15,6 @@ export type CandidatePromptAnchor = {
15
15
  };
16
16
  export type CandidatePromptAccounting = {
17
17
  anchorSemantics: "matched_prefix" | "stored_input";
18
- defaultBlockDepth: number;
19
18
  providerBlockDepthFor: (model: string) => number;
20
19
  promptEstimateFor: (model: string, anchor?: CandidatePromptAnchor) => CandidatePromptEstimate;
21
20
  };
@@ -52,7 +51,6 @@ export type CandidatePreparationInput = CandidatePreparationSharedInput & ({
52
51
  tailCharsFor?: LegacyTailCharsFor;
53
52
  });
54
53
  export type CandidatePreparation = {
55
- blockDepth: number;
56
54
  hits: ChainHits;
57
55
  conversationId: string | null;
58
56
  identityMatchDepth: number | null;
@@ -85,6 +83,7 @@ export type RouteInput = CandidatePreparationSharedInput & RouteAccountingInput
85
83
  fallbackRequiresDifferentProvider?: boolean;
86
84
  };
87
85
  export type PreparedRoute = CandidatePreparation & {
86
+ modelProvider: (model: string) => string;
88
87
  fallbackConfig: RouteFallbackConfig;
89
88
  selectorPreparation: BuiltSelectorRequest | null;
90
89
  };
@@ -94,7 +93,7 @@ export type RouteResult = {
94
93
  fallbackDecision?: RoutingDecision;
95
94
  outputText: string;
96
95
  };
97
- export declare function finalizeRoute(prepared: Pick<PreparedRoute, "candidateResolution" | "fallbackConfig">, selectorOutputText: string): RouteResult;
96
+ export declare function finalizeRoute(prepared: Pick<PreparedRoute, "candidateResolution" | "fallbackConfig" | "modelProvider">, selectorOutputText: string): RouteResult;
98
97
  export type Selector = {
99
98
  select(request: ChatCompletionRequest, signal?: AbortSignal): Promise<string>;
100
99
  };