@mupt-ai/dari-router 0.2.1 → 0.2.2

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 (79) hide show
  1. package/README.md +1 -1
  2. package/dist/anonymous_actions.d.ts +31 -2
  3. package/dist/anonymous_actions.js +225 -16
  4. package/dist/anonymous_actions.js.map +1 -1
  5. package/dist/cache_behavior.d.ts +1 -1
  6. package/dist/cache_behavior.js +23 -14
  7. package/dist/cache_behavior.js.map +1 -1
  8. package/dist/cache_scope.js +14 -7
  9. package/dist/cache_scope.js.map +1 -1
  10. package/dist/candidate_resolution.d.ts +2 -1
  11. package/dist/candidate_resolution.js +5 -2
  12. package/dist/candidate_resolution.js.map +1 -1
  13. package/dist/compatibility.d.ts +1 -0
  14. package/dist/compatibility.js +6 -0
  15. package/dist/compatibility.js.map +1 -1
  16. package/dist/continuation_state.d.ts +12 -0
  17. package/dist/continuation_state.js +48 -7
  18. package/dist/continuation_state.js.map +1 -1
  19. package/dist/cost.d.ts +8 -0
  20. package/dist/cost.js +47 -30
  21. package/dist/cost.js.map +1 -1
  22. package/dist/dari_policy.d.ts +1 -1
  23. package/dist/dari_policy.js +4 -2
  24. package/dist/dari_policy.js.map +1 -1
  25. package/dist/eval_score_imputation.d.ts +1 -0
  26. package/dist/eval_score_imputation.js +27 -2
  27. package/dist/eval_score_imputation.js.map +1 -1
  28. package/dist/fingerprint.js +45 -12
  29. package/dist/fingerprint.js.map +1 -1
  30. package/dist/fixed_turn_cost_config.d.ts +2 -0
  31. package/dist/fixed_turn_cost_config.js +7 -0
  32. package/dist/fixed_turn_cost_config.js.map +1 -1
  33. package/dist/index.d.ts +2 -0
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/jev_router.d.ts +5 -0
  37. package/dist/jev_router.js +22 -0
  38. package/dist/jev_router.js.map +1 -0
  39. package/dist/jev_selector.d.ts +77 -0
  40. package/dist/jev_selector.js +418 -0
  41. package/dist/jev_selector.js.map +1 -0
  42. package/dist/model_ids.d.ts +1 -0
  43. package/dist/model_ids.js +26 -0
  44. package/dist/model_ids.js.map +1 -1
  45. package/dist/pi_context.js +37 -6
  46. package/dist/pi_context.js.map +1 -1
  47. package/dist/pi_options.js +6 -3
  48. package/dist/pi_options.js.map +1 -1
  49. package/dist/policy-engine.d.ts +1 -0
  50. package/dist/policy-engine.js +1 -0
  51. package/dist/policy-engine.js.map +1 -1
  52. package/dist/prompts.d.ts +1 -0
  53. package/dist/prompts.js +21 -4
  54. package/dist/prompts.js.map +1 -1
  55. package/dist/route.d.ts +3 -0
  56. package/dist/route.js +64 -5
  57. package/dist/route.js.map +1 -1
  58. package/dist/routing_history.d.ts +1 -0
  59. package/dist/routing_history.js +2 -0
  60. package/dist/routing_history.js.map +1 -1
  61. package/dist/selector_input.d.ts +26 -1
  62. package/dist/selector_input.js +17 -1
  63. package/dist/selector_input.js.map +1 -1
  64. package/dist/selector_request.d.ts +3 -1
  65. package/dist/selector_request.js +52 -12
  66. package/dist/selector_request.js.map +1 -1
  67. package/dist/selector_truncation.d.ts +2 -0
  68. package/dist/selector_truncation.js +42 -0
  69. package/dist/selector_truncation.js.map +1 -1
  70. package/dist/types.d.ts +9 -2
  71. package/examples/basic_route.ts +1 -1
  72. package/examples/jev_router.ts +50 -0
  73. package/examples/managed/README.md +2 -2
  74. package/examples/managed/byok-router/router.yml +1 -1
  75. package/examples/managed/custom-rules-router/router.yml +5 -5
  76. package/examples/managed/{slm-router → dari}/README.md +1 -1
  77. package/examples/managed/{slm-router → dari}/router.yml +2 -2
  78. package/examples/managed/eval-router/router.yml +1 -1
  79. package/package.json +4 -3
@@ -1,4 +1,4 @@
1
- import { canonicalModelId } from "./model_ids.js";
1
+ import { canonicalModelId, modelFamilyProvider } from "./model_ids.js";
2
2
  // How a model's provider prompt cache behaves when the reasoning payload
3
3
  // changes between otherwise identical requests, from live-provider and
4
4
  // router-path validation:
@@ -6,8 +6,10 @@ import { canonicalModelId } from "./model_ids.js";
6
6
  // partition; switching effort misses/rewrites, switching back
7
7
  // reuses that effort's still-warm partition.
8
8
  // shared - one cache partition regardless of reasoning effort.
9
- // OpenAI reasoning models are effort_keyed (a first-ever effort missed a
10
- // steady-warm prefix on every model tested). Anthropic models are effort_keyed
9
+ // OpenAI reasoning models through GPT-5.6 are effort_keyed (a first-ever
10
+ // effort missed a steady-warm prefix on every model tested). GPT-6 Sol and
11
+ // Luna explicitly preserve prompt-cache identity across effort changes, so
12
+ // their first-party OpenAI partitions are shared. Anthropic models are effort_keyed
11
13
  // because pi-ai places cache_control on message blocks, which Anthropic
12
14
  // invalidates on thinking changes; budget-thinking Haiku would share under a
13
15
  // system-block breakpoint, so revalidate its entry if pi-ai's Anthropic cache
@@ -15,6 +17,8 @@ import { canonicalModelId } from "./model_ids.js";
15
17
  // Unlisted models default to effort_keyed: the safe direction is to
16
18
  // under-claim warmth, never to price a cold prefix as a cache read.
17
19
  export const DEFAULT_REASONING_CACHE_SCOPES = {
20
+ "openai:openai/gpt-6-sol": "shared",
21
+ "openai:openai/gpt-6-luna": "shared",
18
22
  "openai:openai/gpt-5.6-sol": "effort_keyed",
19
23
  "openai:openai/gpt-5.6-terra": "effort_keyed",
20
24
  "openai:openai/gpt-5.6-luna": "effort_keyed",
@@ -23,15 +27,18 @@ export const DEFAULT_REASONING_CACHE_SCOPES = {
23
27
  "fireworks:deepseek-ai/DeepSeek-V4-Pro-0813": "shared",
24
28
  "fireworks:deepseek-ai/DeepSeek-V4-Flash-0731": "shared",
25
29
  "fireworks:zai-org/GLM-5.2": "shared",
30
+ "fireworks:zai-org/GLM-5.3-Flash": "shared",
26
31
  };
27
32
  export function reasoningCacheScope(modelId, provider) {
28
33
  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)
34
+ // Scope keys name the canonical family provider, so a serving alias reads
35
+ // the owner's row instead of defaulting to effort_keyed.
36
+ const familyProvider = modelFamilyProvider(canonical, provider).toLowerCase();
37
+ const legacyPrefix = `${familyProvider}/`;
38
+ const providerNeutral = familyProvider === "fireworks" && canonical.startsWith(legacyPrefix)
32
39
  ? canonical.slice(legacyPrefix.length)
33
40
  : canonical;
34
- return DEFAULT_REASONING_CACHE_SCOPES[`${normalizedProvider}:${providerNeutral}`]
41
+ return DEFAULT_REASONING_CACHE_SCOPES[`${familyProvider}:${providerNeutral}`]
35
42
  ?? "effort_keyed";
36
43
  }
37
44
  // The provider cache partition a prefix entry belongs to. An effort-keyed
@@ -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,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"}
1
+ {"version":3,"file":"cache_scope.js","sourceRoot":"","sources":["../src/cache_scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIvE,yEAAyE;AACzE,uEAAuE;AACvE,0BAA0B;AAC1B,uEAAuE;AACvE,+EAA+E;AAC/E,8DAA8D;AAC9D,uEAAuE;AACvE,yEAAyE;AACzE,2EAA2E;AAC3E,2EAA2E;AAC3E,oFAAoF;AACpF,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAC9E,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,MAAM,CAAC,MAAM,8BAA8B,GAAkD;IAC3F,yBAAyB,EAAE,QAAQ;IACnC,0BAA0B,EAAE,QAAQ;IACpC,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;IACrC,iCAAiC,EAAE,QAAQ;CAC5C,CAAC;AAIF,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,QAAiB;IAEjB,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C,0EAA0E;IAC1E,yDAAyD;IACzD,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9E,MAAM,YAAY,GAAG,GAAG,cAAc,GAAG,CAAC;IAC1C,MAAM,eAAe,GAAG,cAAc,KAAK,WAAW,IAAI,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1F,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,8BAA8B,CAAC,GAAG,cAAc,IAAI,eAAe,EAAE,CAAC;WACxE,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"}
@@ -6,6 +6,7 @@ export type CustomDefaultTarget = {
6
6
  };
7
7
  type CandidateSet = {
8
8
  candidates: RoutingCandidate[];
9
+ allCandidates: RoutingCandidate[];
9
10
  costEstimates: CandidateCostEstimate[];
10
11
  };
11
12
  type CustomDetails = {
@@ -18,7 +19,7 @@ type CustomDetails = {
18
19
  };
19
20
  };
20
21
  export type StrategyCandidateResolution = CandidateSet & ({
21
- strategy: "slm";
22
+ strategy: "dari";
22
23
  pruning: CandidatePruningAudit;
23
24
  } | {
24
25
  strategy: "custom";
@@ -1,7 +1,7 @@
1
1
  import { MIN_SWITCH_SAVINGS_RATIO, pruneSwitchCandidates, } from "./candidate_pruning.js";
2
2
  import { routingCandidateKey, } from "./types.js";
3
3
  export function resolveStrategyCandidates(args) {
4
- if (args.strategy === "slm") {
4
+ if (args.strategy === "dari") {
5
5
  const pruned = pruneSwitchCandidates({
6
6
  candidates: args.candidates,
7
7
  costEstimates: args.costEstimates,
@@ -9,8 +9,9 @@ export function resolveStrategyCandidates(args) {
9
9
  minSwitchSavingsRatio: MIN_SWITCH_SAVINGS_RATIO,
10
10
  });
11
11
  return {
12
- strategy: "slm",
12
+ strategy: "dari",
13
13
  candidates: pruned.candidates,
14
+ allCandidates: [...args.candidates],
14
15
  costEstimates: pruned.costEstimates,
15
16
  pruning: pruned.audit,
16
17
  };
@@ -20,6 +21,7 @@ export function resolveStrategyCandidates(args) {
20
21
  return {
21
22
  strategy: "custom",
22
23
  candidates: [],
24
+ allCandidates: [...args.candidates],
23
25
  costEstimates: [],
24
26
  pruning: null,
25
27
  custom: null,
@@ -51,6 +53,7 @@ function resolveCustomCandidates(args, config) {
51
53
  return {
52
54
  strategy: "custom",
53
55
  candidates: pruned.candidates,
56
+ allCandidates: configuredCandidates,
54
57
  costEstimates: pruned.costEstimates,
55
58
  pruning: pruned.audit,
56
59
  custom: {
@@ -1 +1 @@
1
- {"version":3,"file":"candidate_resolution.js","sourceRoot":"","sources":["../src/candidate_resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidate_resolution.js","sourceRoot":"","sources":["../src/candidate_resolution.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export type CandidateModelMetadata = {
4
4
  api: string;
5
5
  supportsImageInput: boolean;
6
6
  supportsHostedWebSearch: boolean;
7
+ supportsReasoningConfigurationUpdate?: boolean;
7
8
  supportsStructuredOutput: boolean;
8
9
  supportedThinkingLevels: string[];
9
10
  };
@@ -26,6 +26,12 @@ export function resolveCompatibleCandidates(args) {
26
26
  throw new RouterCoreError("invalid_request", "Hosted web search requires an enabled OpenAI or Azure Responses model for this router.", "unsupported_tool", "tools");
27
27
  }
28
28
  }
29
+ if (args.requiredCapabilities.includes("reasoning_configuration_update")) {
30
+ candidates = candidates.filter(({ metadata }) => metadata.supportsReasoningConfigurationUpdate);
31
+ if (candidates.length === 0) {
32
+ throw new RouterCoreError("invalid_request", "Reasoning configuration updates require an enabled GPT-6 Responses model for this router.", "unsupported_reasoning_configuration", "input");
33
+ }
34
+ }
29
35
  const requested = args.requestedReasoningEffort;
30
36
  for (const { model, metadata } of candidates) {
31
37
  if (metadata.provider === "meta" &&
@@ -1 +1 @@
1
- {"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,iBAAiB,GAIlB,MAAM,YAAY,CAAC;AA2BpB,MAAM,UAAU,2BAA2B,CAAC,IAc3C;IACC,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,IAAI,2BAA2B,GAAG,KAAK,CAAC;IACxC,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KACrC,CAAC,CAAC,CAAC;IAEJ,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACtD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC9E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,iBAAiB,EACjB,oEAAoE,EACpE,4BAA4B,CAC7B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC5D,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACpF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,iBAAiB,EACjB,0EAA0E,EAC1E,6BAA6B,EAC7B,iBAAiB,CAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACnE,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QACnF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,iBAAiB,EACjB,wFAAwF,EACxF,kBAAkB,EAClB,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;QACzE,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;QAChG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,iBAAiB,EACjB,2FAA2F,EAC3F,qCAAqC,EACrC,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC;IAChD,KAAK,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,UAAU,EAAE,CAAC;QAC7C,IACE,QAAQ,CAAC,QAAQ,KAAK,MAAM;YAC5B,IAAI,CAAC,UAAU,KAAK,SAAS;YAC7B,IAAI,CAAC,UAAU,KAAK,MAAM,EAC1B,CAAC;YACD,sBAAsB,GAAG,IAAI,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,MAAM,eAAe,GAAG,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAC7D,iBAAiB,CAClB,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC;QAC9E,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CACvE,CAAC;QACF,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS;YACpC,CAAC,CAAC,IAAI,CAAC,eAAe;gBACpB,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC;gBAClD,CAAC,CAAC,aAAa;YACjB,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACjC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACb,CAAC,CAAC,EAAE,CAAC;QACT,KAAK,MAAM,eAAe,IAAI,MAAM,EAAE,CAAC;YACrC,IACE,eAAe,KAAK,KAAK;gBACzB,QAAQ,CAAC,GAAG,KAAK,oBAAoB;gBACrC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAC9B,CAAC;gBACD,2BAA2B,GAAG,IAAI,CAAC;gBACnC,SAAS;YACX,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAE7D,IAAI,2BAA2B,EAAE,CAAC;QAChC,MAAM,IAAI,eAAe,CACvB,iBAAiB,EACjB,8FAA8F,EAC9F,yBAAyB,EACzB,aAAa,CACd,CAAC;IACJ,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CACvB,iBAAiB,EACjB,mEAAmE,EACnE,yBAAyB,EACzB,aAAa,CACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,eAAe,CACvB,iBAAiB,EACjB,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,IAAI,CAAC,eAAe;YACpB,CAAC,CAAC,wGAAwG;YAC1G,CAAC,CAAC,uEAAuE;QAC3E,CAAC,CAAC,qBAAqB,SAAS,0DAA0D,EAC5F,8BAA8B,EAC9B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAe;IACpC,OAAO,MAAM,KAAK,UAAU;QAC1B,MAAM,KAAK,KAAK;QAChB,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC;AACpD,CAAC"}
@@ -15,11 +15,22 @@ export type ProviderContinuationState = {
15
15
  source: ProviderIdentity;
16
16
  thinking: string;
17
17
  signature: string;
18
+ effort?: AnthropicEffort;
18
19
  } | {
19
20
  kind: "anthropic_redacted_thinking";
20
21
  source: ProviderIdentity;
21
22
  data: string;
23
+ effort?: AnthropicEffort;
22
24
  };
25
+ /**
26
+ * The effort a managed-effort Claude model generated the block under. Those
27
+ * models bind each thinking block to its request prefix, which included an
28
+ * effort marker right before the turn; replay must restore that marker or the
29
+ * API drops the block and the model loses its reasoning.
30
+ */
31
+ export type AnthropicEffort = (typeof ANTHROPIC_EFFORTS)[number];
32
+ declare const ANTHROPIC_EFFORTS: readonly ["low", "medium", "high", "xhigh", "max"];
33
+ export declare function isAnthropicEffort(value: unknown): value is AnthropicEffort;
23
34
  /** @deprecated Alias kept for the framework-prefixed vocabulary; use {@link ProviderIdentity}. */
24
35
  export type RouterProviderIdentity = ProviderIdentity;
25
36
  /** @deprecated Alias kept for the framework-prefixed vocabulary; use {@link ProviderContinuationState}. */
@@ -34,3 +45,4 @@ export declare function providerIdentityFromModel(model: {
34
45
  api?: unknown;
35
46
  id?: unknown;
36
47
  }): ProviderIdentity;
48
+ export {};
@@ -1,5 +1,9 @@
1
1
  import { RouterFrameworkError } from "./framework_error.js";
2
2
  import { isRecord } from "./types.js";
3
+ const ANTHROPIC_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
4
+ export function isAnthropicEffort(value) {
5
+ return ANTHROPIC_EFFORTS.includes(value);
6
+ }
3
7
  const PREFIX = "dari-pcs-v1.";
4
8
  const FAMILY_PREFIX = "dari-pcs-";
5
9
  const MAX_JSON_BYTES = 4 * 1024 * 1024;
@@ -51,7 +55,13 @@ export function compatibleProviderContinuation(continuation, target) {
51
55
  if (continuation.kind === "openai_reasoning") {
52
56
  return isOpenAIResponsesApi(target.api) ? continuation : null;
53
57
  }
54
- return target.api === "anthropic-messages" ? continuation : null;
58
+ // Anthropic thinking signatures also round-trip through Bedrock's Converse
59
+ // Stream transport (Claude on Bedrock rejects replayed thinking without its
60
+ // signature). sameProviderIdentity above already pins source === target, so
61
+ // this never crosses a Bedrock continuation into the Anthropic API or back.
62
+ return target.api === "anthropic-messages" || target.api === "bedrock-converse-stream"
63
+ ? continuation
64
+ : null;
55
65
  }
56
66
  export function sameProviderIdentity(a, b) {
57
67
  return a.provider === b.provider && a.api === b.api && a.model === b.model;
@@ -85,10 +95,19 @@ function envelopeFor(value) {
85
95
  v: 1,
86
96
  kind: value.kind,
87
97
  source: value.source,
88
- state: { thinking: value.thinking, signature: value.signature },
98
+ state: {
99
+ thinking: value.thinking,
100
+ signature: value.signature,
101
+ ...(value.effort ? { effort: value.effort } : {}),
102
+ },
89
103
  };
90
104
  }
91
- return { v: 1, kind: value.kind, source: value.source, state: { data: value.data } };
105
+ return {
106
+ v: 1,
107
+ kind: value.kind,
108
+ source: value.source,
109
+ state: { data: value.data, ...(value.effort ? { effort: value.effort } : {}) },
110
+ };
92
111
  }
93
112
  function stateFromEnvelope(envelope) {
94
113
  if (envelope.kind === "openai_reasoning") {
@@ -115,9 +134,15 @@ function stateFromEnvelope(envelope) {
115
134
  source: envelope.source,
116
135
  thinking: envelope.state.thinking,
117
136
  signature: envelope.state.signature,
137
+ ...(isAnthropicEffort(envelope.state.effort) ? { effort: envelope.state.effort } : {}),
118
138
  };
119
139
  }
120
- return { kind: envelope.kind, source: envelope.source, data: envelope.state.data };
140
+ return {
141
+ kind: envelope.kind,
142
+ source: envelope.source,
143
+ data: envelope.state.data,
144
+ ...(isAnthropicEffort(envelope.state.effort) ? { effort: envelope.state.effort } : {}),
145
+ };
121
146
  }
122
147
  function validateEnvelope(value, kind) {
123
148
  if (!isRecord(value) || !hasExactKeys(value, ["v", "kind", "source", "state"]) || value.v !== 1) {
@@ -178,7 +203,7 @@ function validateState(continuationKind, value, errorKind) {
178
203
  };
179
204
  }
180
205
  if (continuationKind === "anthropic_thinking") {
181
- if (!hasExactKeys(value, ["thinking", "signature"])) {
206
+ if (!hasKeys(value, ["thinking", "signature"], ["effort"])) {
182
207
  throw invalidState(errorKind, "Anthropic thinking state schema is invalid.");
183
208
  }
184
209
  if (typeof value.thinking !== "string") {
@@ -187,12 +212,16 @@ function validateState(continuationKind, value, errorKind) {
187
212
  return {
188
213
  thinking: value.thinking,
189
214
  signature: nonEmptyString(value.signature, errorKind, "signature"),
215
+ ...anthropicEffortState(value.effort, errorKind),
190
216
  };
191
217
  }
192
- if (!hasExactKeys(value, ["data"])) {
218
+ if (!hasKeys(value, ["data"], ["effort"])) {
193
219
  throw invalidState(errorKind, "Anthropic redacted thinking state schema is invalid.");
194
220
  }
195
- return { data: nonEmptyString(value.data, errorKind, "data") };
221
+ return {
222
+ data: nonEmptyString(value.data, errorKind, "data"),
223
+ ...anthropicEffortState(value.effort, errorKind),
224
+ };
196
225
  }
197
226
  function hostedToolCallIds(value, kind) {
198
227
  let parsed;
@@ -238,6 +267,18 @@ function nonEmptyString(value, kind, field) {
238
267
  }
239
268
  return value;
240
269
  }
270
+ function anthropicEffortState(value, kind) {
271
+ if (value === undefined)
272
+ return {};
273
+ if (!isAnthropicEffort(value))
274
+ throw invalidState(kind, "Anthropic thinking effort is invalid.");
275
+ return { effort: value };
276
+ }
277
+ function hasKeys(value, required, optional) {
278
+ const keys = Object.keys(value);
279
+ return required.every((key) => keys.includes(key))
280
+ && keys.every((key) => required.includes(key) || optional.includes(key));
281
+ }
241
282
  function hasExactKeys(value, expected) {
242
283
  const keys = Object.keys(value).sort();
243
284
  const expectedKeys = [...expected].sort();
@@ -1 +1 @@
1
- {"version":3,"file":"continuation_state.js","sourceRoot":"","sources":["../src/continuation_state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuation_state.js","sourceRoot":"","sources":["../src/continuation_state.ts"],"names":[],"mappings":"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"}
package/dist/cost.d.ts CHANGED
@@ -7,7 +7,15 @@ export type ModelPricing = {
7
7
  output: number;
8
8
  cacheRead: number;
9
9
  cacheWrite: number;
10
+ tiers?: Array<{
11
+ inputTokensAbove: number;
12
+ input: number;
13
+ output: number;
14
+ cacheRead: number;
15
+ cacheWrite: number;
16
+ }>;
10
17
  };
18
+ export declare function pricingForPrompt(price: ModelPricing, inputTokens: number): ModelPricing;
11
19
  export type PricingLookup = (model: string) => ModelPricing | null;
12
20
  export type CandidatePromptEstimate = {
13
21
  chars: number;
package/dist/cost.js CHANGED
@@ -1,10 +1,21 @@
1
1
  // Routing-only cost estimates for comparing candidate models before selection.
2
- import { ANTHROPIC_LOOKBACK_BLOCKS, CROSS_TOKENIZER_RATIO, isAnthropicFamily, isOpenAiFamily, openAiCachedPrefixTokens, prefixHitMatchesProvider, promptCacheProviderForModel, providerCacheableTokens, providerMinCacheTokens, tokenizerFamily, } from "./cache_behavior.js";
2
+ import { ANTHROPIC_LOOKBACK_BLOCKS, CROSS_TOKENIZER_RATIO, isAnthropicFamily, prefixHitMatchesProvider, promptCacheProviderForModel, providerCacheableTokens, providerMinCacheTokens, tokenizerFamily, } from "./cache_behavior.js";
3
3
  import { reasoningCacheScope } from "./cache_scope.js";
4
4
  import { FIXED_TURN_CACHE_HIT_PROBABILITY, FIXED_TURN_COST_PROJECTED_TURNS, } from "./fixed_turn_cost_config.js";
5
5
  import { routingCandidateKey } from "./types.js";
6
6
  export const CHARS_PER_TOKEN = 4;
7
7
  const MTOK = 1_000_000;
8
+ export function pricingForPrompt(price, inputTokens) {
9
+ let rates = price;
10
+ let threshold = -1;
11
+ for (const tier of price.tiers ?? []) {
12
+ if (inputTokens > tier.inputTokensAbove && tier.inputTokensAbove > threshold) {
13
+ rates = tier;
14
+ threshold = tier.inputTokensAbove;
15
+ }
16
+ }
17
+ return rates;
18
+ }
8
19
  // perModel/perModelBuckets key on raw model-id strings deliberately:
9
20
  // entry.model is a verbatim copy of the router's enabled_models entry that
10
21
  // served the turn, and candidate lookups use members of the same list, so
@@ -123,10 +134,9 @@ export function estimateCandidateCosts(args) {
123
134
  const cacheScope = args.cacheScope ?? ((model) => reasoningCacheScope(model, args.modelProvider?.(model)));
124
135
  return args.candidates.map((candidate) => {
125
136
  const { model, reasoningEffort } = candidate;
126
- const price = args.pricing(model);
137
+ const basePrice = args.pricing(model);
127
138
  const provider = args.modelProvider?.(model);
128
139
  const anthropicStyle = isAnthropicFamily(model, provider);
129
- const openAiStyle = isOpenAiFamily(model, provider);
130
140
  const promptEstimate = args.promptEstimatesByCandidate.get(routingCandidateKey(candidate));
131
141
  if (promptEstimate === undefined) {
132
142
  throw new Error(`missing prompt estimate for ${model}/${reasoningEffort}`);
@@ -153,9 +163,9 @@ export function estimateCandidateCosts(args) {
153
163
  estPrompt = knownTokens + newTokens;
154
164
  }
155
165
  const selectedHit = selectPrefixHit(args.hits, model, reasoningEffort, cacheScope);
156
- const knownCacheProvider = promptCacheProviderForModel(model, provider) !== null;
166
+ const cacheProvider = promptCacheProviderForModel(model, provider);
157
167
  const hit = selectedHit
158
- && (provider === undefined || knownCacheProvider)
168
+ && (provider === undefined || cacheProvider !== null)
159
169
  && prefixHitMatchesProvider(selectedHit.entry, provider)
160
170
  ? selectedHit
161
171
  : undefined;
@@ -177,9 +187,9 @@ export function estimateCandidateCosts(args) {
177
187
  // prompt estimate (which may anchor on another provider's deeper entry).
178
188
  const meetsMinimum = hit.entry.prompt_tokens >= providerMinCacheTokens(model, provider);
179
189
  if (fingerprintsMatch && withinLookback && meetsMinimum) {
180
- warmTokens = openAiStyle
181
- ? openAiCachedPrefixTokens(hit.entry.prompt_tokens)
182
- : hit.entry.prompt_tokens;
190
+ warmTokens = cacheProvider === null
191
+ ? hit.entry.prompt_tokens
192
+ : providerCacheableTokens(model, cacheProvider, hit.entry.prompt_tokens);
183
193
  }
184
194
  }
185
195
  // Anchored estimates contain only a fresh suffix; complete-prompt
@@ -196,6 +206,7 @@ export function estimateCandidateCosts(args) {
196
206
  estPrompt = warmTokens + newTokens;
197
207
  }
198
208
  let estCost = null;
209
+ const price = basePrice === null ? null : pricingForPrompt(basePrice, estPrompt);
199
210
  if (price) {
200
211
  const remainder = Math.max(0, estPrompt - warmTokens);
201
212
  estCost =
@@ -213,7 +224,7 @@ export function estimateCandidateCosts(args) {
213
224
  fixed_turn_cost_estimate: price
214
225
  ? fixedTurnCostEstimate({
215
226
  model,
216
- price,
227
+ price: basePrice,
217
228
  estPromptTokens: estPrompt,
218
229
  warmTokens,
219
230
  reasoningEffort,
@@ -234,7 +245,7 @@ function withinAnthropicLookback(args) {
234
245
  }
235
246
  function fixedTurnCostEstimate(args) {
236
247
  const provider = promptCacheProviderForModel(args.model, args.provider);
237
- if (!provider || args.outputTokens === undefined)
248
+ if (args.outputTokens === undefined)
238
249
  return null;
239
250
  // One pass to the longest horizon, snapshotting the running total at each
240
251
  // shorter one: turn N's cost depends on every turn before it, so the
@@ -246,27 +257,33 @@ function fixedTurnCostEstimate(args) {
246
257
  let totalCost = 0;
247
258
  for (let turn = 1; turn <= longestHorizon; turn += 1) {
248
259
  const inputTokens = args.estPromptTokens + (turn - 1) * outputTokens;
260
+ const price = pricingForPrompt(args.price, inputTokens);
261
+ // Cache modeling refines a projection; it must not gate its existence.
262
+ // Without a known cache policy, assume no reads or writes and charge
263
+ // ordinary input/output rates rather than inventing a hit probability.
249
264
  totalCost +=
250
- turn === 1
251
- ? deterministicTurnCost({
252
- model: args.model,
253
- price: args.price,
254
- inputTokens,
255
- cachedTokens: args.warmTokens,
256
- outputTokens,
257
- provider,
258
- })
259
- : laterTurnCost({
260
- model: args.model,
261
- price: args.price,
262
- provider,
263
- inputTokens,
264
- // Later requests can only read prefixes that appeared in prior
265
- // request inputs. The immediately previous output is fresh on the
266
- // next request.
267
- reusablePrefix: args.estPromptTokens + (turn - 2) * outputTokens,
268
- outputTokens,
269
- });
265
+ provider === null
266
+ ? (inputTokens * price.input + outputTokens * price.output) / MTOK
267
+ : turn === 1
268
+ ? deterministicTurnCost({
269
+ model: args.model,
270
+ price,
271
+ inputTokens,
272
+ cachedTokens: args.warmTokens,
273
+ outputTokens,
274
+ provider,
275
+ })
276
+ : laterTurnCost({
277
+ model: args.model,
278
+ price,
279
+ provider,
280
+ inputTokens,
281
+ // Later requests can only read prefixes that appeared in prior
282
+ // request inputs. The immediately previous output is fresh on the
283
+ // next request.
284
+ reusablePrefix: args.estPromptTokens + (turn - 2) * outputTokens,
285
+ outputTokens,
286
+ });
270
287
  if (horizons.includes(turn)) {
271
288
  projections.push({ projected_turns: turn, total_cost_usd: totalCost });
272
289
  }
package/dist/cost.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export type DariRoutingPolicyOptions<Metadata = unknown> = {
23
23
  averageOutputTokensByModel: NonNullable<RouteInput["averageOutputTokensByModel"]>;
24
24
  evals?: RouterEval[] | ((input: RoutingPolicyInput<Metadata>) => RouterEval[] | Promise<RouterEval[]>);
25
25
  state?: (input: RoutingPolicyInput<Metadata>) => DariPolicyState | Promise<DariPolicyState>;
26
- strategy?: "slm" | "custom";
26
+ strategy?: "dari" | "custom";
27
27
  customConfig?: CustomRouterConfig | null;
28
28
  modelPrices?: Record<string, RouterModelPrice>;
29
29
  };
@@ -48,7 +48,7 @@ export function createDariRoutingPolicyInternal(options, requireAccounting) {
48
48
  : { thinkingEnabled: input.request.reasoning.enabled }),
49
49
  ...(chatRequest.tool_choice === undefined ? {} : { toolChoice: chatRequest.tool_choice }),
50
50
  modelThinkingLevels: Object.fromEntries(input.candidates.map((candidate) => [candidate.id, [...candidate.reasoningEfforts]])),
51
- strategy: options.strategy ?? "slm",
51
+ strategy: options.strategy ?? "dari",
52
52
  ...(options.customConfig === undefined ? {} : { customConfig: options.customConfig }),
53
53
  modelPrices: options.modelPrices ?? {},
54
54
  pricing: (model) => pricingByModel.get(model) ?? null,
@@ -109,7 +109,8 @@ function validatedPricing(candidates, pricing) {
109
109
  for (const candidate of candidates) {
110
110
  const price = pricing(candidate.id);
111
111
  if (price === null ||
112
- Object.values(price).some((value) => !Number.isFinite(value) || value < 0)) {
112
+ [price.input, price.output, price.cacheRead, price.cacheWrite].some((value) => !Number.isFinite(value) || value < 0) ||
113
+ price.tiers?.some((tier) => Object.values(tier).some((value) => !Number.isFinite(value) || value < 0))) {
113
114
  throw new RouterFrameworkError("configuration", `Missing or invalid pricing for ${candidate.id}.`, "model_pricing_invalid", `pricing.${candidate.id}`);
114
115
  }
115
116
  resolved.set(candidate.id, price);
@@ -148,6 +149,7 @@ function defaultDariMetadata(candidate) {
148
149
  api: candidate.api,
149
150
  supportsImageInput: candidate.capabilities.imageInput,
150
151
  supportsHostedWebSearch: false,
152
+ supportsReasoningConfigurationUpdate: false,
151
153
  supportsStructuredOutput: candidate.capabilities.structuredOutput,
152
154
  supportedThinkingLevels: [...candidate.reasoningEfforts],
153
155
  };