@x12i/ai-profiles 4.4.2 → 5.0.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 (79) hide show
  1. package/README.md +30 -5
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +11 -8
  4. package/dist/browser.js.map +1 -1
  5. package/dist/buildCatalogFromOpenRouterApi.d.ts +11 -0
  6. package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -1
  7. package/dist/buildCatalogFromOpenRouterApi.js +9 -0
  8. package/dist/buildCatalogFromOpenRouterApi.js.map +1 -1
  9. package/dist/catalogEnrichment.d.ts.map +1 -1
  10. package/dist/catalogEnrichment.js +5 -4
  11. package/dist/catalogEnrichment.js.map +1 -1
  12. package/dist/cost/computeInvokeCost.d.ts.map +1 -1
  13. package/dist/cost/computeInvokeCost.js +2 -1
  14. package/dist/cost/computeInvokeCost.js.map +1 -1
  15. package/dist/data/models-catalog.json +21228 -17393
  16. package/dist/data/models-profiles.json +10855 -10370
  17. package/dist/data/models-registry.json +12438 -11192
  18. package/dist/data/reasoning-coverage.json +499 -0
  19. package/dist/data/reasoning-directives.json +7562 -0
  20. package/dist/errors.d.ts +1 -1
  21. package/dist/errors.d.ts.map +1 -1
  22. package/dist/errors.js.map +1 -1
  23. package/dist/evidence/openRouter.d.ts.map +1 -1
  24. package/dist/evidence/openRouter.js +3 -0
  25. package/dist/evidence/openRouter.js.map +1 -1
  26. package/dist/evidence/scoringConfig.d.ts.map +1 -1
  27. package/dist/evidence/scoringConfig.js +8 -7
  28. package/dist/evidence/scoringConfig.js.map +1 -1
  29. package/dist/finalProfileModelMappingPatch.d.ts.map +1 -1
  30. package/dist/finalProfileModelMappingPatch.js +24 -19
  31. package/dist/finalProfileModelMappingPatch.js.map +1 -1
  32. package/dist/index.d.ts +3 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +2 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/inferModelFamily.d.ts.map +1 -1
  37. package/dist/inferModelFamily.js +2 -0
  38. package/dist/inferModelFamily.js.map +1 -1
  39. package/dist/modelsCatalog.d.ts +2 -0
  40. package/dist/modelsCatalog.d.ts.map +1 -1
  41. package/dist/modelsCatalog.js +12 -6
  42. package/dist/modelsCatalog.js.map +1 -1
  43. package/dist/pricingNormalize.d.ts +13 -0
  44. package/dist/pricingNormalize.d.ts.map +1 -0
  45. package/dist/pricingNormalize.js +58 -0
  46. package/dist/pricingNormalize.js.map +1 -0
  47. package/dist/profileRegistryV2.d.ts.map +1 -1
  48. package/dist/profileRegistryV2.js +5 -4
  49. package/dist/profileRegistryV2.js.map +1 -1
  50. package/dist/profileRegistryV3.d.ts.map +1 -1
  51. package/dist/profileRegistryV3.js +18 -3
  52. package/dist/profileRegistryV3.js.map +1 -1
  53. package/dist/reasoning/catalogReasoning.d.ts +8 -0
  54. package/dist/reasoning/catalogReasoning.d.ts.map +1 -0
  55. package/dist/reasoning/catalogReasoning.js +53 -0
  56. package/dist/reasoning/catalogReasoning.js.map +1 -0
  57. package/dist/reasoning/mergeReasoningBody.d.ts +7 -0
  58. package/dist/reasoning/mergeReasoningBody.d.ts.map +1 -0
  59. package/dist/reasoning/mergeReasoningBody.js +50 -0
  60. package/dist/reasoning/mergeReasoningBody.js.map +1 -0
  61. package/dist/reasoning/resolveReasoningDocument.d.ts +4 -0
  62. package/dist/reasoning/resolveReasoningDocument.d.ts.map +1 -0
  63. package/dist/reasoning/resolveReasoningDocument.js +153 -0
  64. package/dist/reasoning/resolveReasoningDocument.js.map +1 -0
  65. package/dist/reasoning/types.d.ts +88 -0
  66. package/dist/reasoning/types.d.ts.map +1 -0
  67. package/dist/reasoning/types.js +20 -0
  68. package/dist/reasoning/types.js.map +1 -0
  69. package/dist/reasoning/validateReasoningDirectives.d.ts +9 -0
  70. package/dist/reasoning/validateReasoningDirectives.d.ts.map +1 -0
  71. package/dist/reasoning/validateReasoningDirectives.js +324 -0
  72. package/dist/reasoning/validateReasoningDirectives.js.map +1 -0
  73. package/dist/resolveReasoning.d.ts +9 -0
  74. package/dist/resolveReasoning.d.ts.map +1 -0
  75. package/dist/resolveReasoning.js +13 -0
  76. package/dist/resolveReasoning.js.map +1 -0
  77. package/dist/types.d.ts +17 -0
  78. package/dist/types.d.ts.map +1 -1
  79. package/package.json +2 -1
package/README.md CHANGED
@@ -1,7 +1,9 @@
1
- > Part of the **ai-catalog** monorepo. Root docs: [../../README.md](../../README.md) · [../../docs/MONOREPO.md](../../docs/MONOREPO.md)
2
-
3
- > **v4.4.1** adds `@x12i/ai-profiles/browser` for Vite/UI. Explore via `npm run ui` (AI Profiles tab).
4
-
1
+ > Part of the **ai-catalog** monorepo. Root docs: [../../README.md](../../README.md) · [../../docs/MONOREPO.md](../../docs/MONOREPO.md)
2
+
3
+ > **v4.4.1** adds `@x12i/ai-profiles/browser` for Vite/UI. Explore via `npm run ui` (AI Profiles tab).
4
+
5
+ > **v5.0** replaces `resolveReasoning` with a target-specific directive (`applied`, `degraded`, `ignored`). `openai` means the Responses API. Pin **`"@x12i/ai-profiles": "^5.0.0"`**. See [CHANGELOG.md](CHANGELOG.md).
6
+
5
7
  # @x12i/ai-profiles
6
8
 
7
9
  Resolve AI profile names into concrete model choices. The package ships JSON in `src/data/` as the offline fallback. By default, registry data is fetched from public assets, validated, and cached in memory.
@@ -291,6 +293,8 @@ npm install @x12i/ai-profiles
291
293
  | `resolveBundledCatalogModelDetails(slug, options?)` | Yes | Same as above but throws `UNKNOWN_MODEL` on miss |
292
294
  | `resolveCatalogModelDetails(slug, options?)` | No (async) | Rich catalog snapshot with optional remote catalog refresh |
293
295
  | `isReasoningModel(input, options?)` | Yes | `true`/`false` for supported inputs (throws `UNKNOWN_MODEL` on unknown concrete models) |
296
+ | `resolveReasoning({ target, model, effort })` | Yes | Bundled directive for `openrouter`, `bedrock`, or `openai` (Responses). `outcome` is `applied`, `degraded`, or `ignored`. Throws `AIProfilesError` for unknown models and incomplete mappings |
297
+ | `mergeReasoningBody(targetBody, directiveBody)` | Yes | Deep-merge a directive body. Objects merge, arrays and scalars replace, inputs are not mutated |
294
298
  | `resolveAIProfile(input, options?)` | No (async) | Resolve an explicit `profile/choice` key → model, pricing, runtime. Pass `includeSecondary: true` to attach `secondary`; `includeCatalog: true` to attach full `catalogModel`. |
295
299
  | `resolveSecondaryModel(input, options?)` | No (async) | Resolve primary choice + optional companion `secondary` from profile `secondary` refs |
296
300
  | `getSecondaryForResolvedProfile(resolved, registry, catalog?)` | Yes | Secondary for an already-resolved primary (no extra I/O when catalog is passed) |
@@ -355,6 +359,8 @@ import {
355
359
  ensureConcreteModel,
356
360
  isKnownProfileInput,
357
361
  isReasoningModel,
362
+ mergeReasoningBody,
363
+ resolveReasoning,
358
364
  resolveBundledInput,
359
365
  resolveBundledAIProfile,
360
366
  applyModelRouting,
@@ -390,6 +396,21 @@ isReasoningModel("deep/default"); // true
390
396
  isReasoningModel("cheap/default"); // true (catalog marks gemini-2.5-flash-lite reasoning-capable)
391
397
  isReasoningModel("google/gemini-2.5-flash-lite"); // false
392
398
 
399
+ const resolved = resolveBundledAIProfile("deep/default", { catalogLane: "text" });
400
+ let prompt = "Classify this ticket.";
401
+ let body: Record<string, unknown> = { messages: [{ role: "user", content: prompt }] };
402
+ const directive = resolveReasoning({
403
+ target: "openrouter",
404
+ model: resolved.invocation.openrouter.modelId,
405
+ effort: resolved.runtime.reasoningEffort ?? "medium",
406
+ });
407
+ // Skip this block when the caller already set reasoning. Explicit config wins.
408
+ if (directive.outcome !== "ignored") {
409
+ if (directive.model) body.model = directive.model;
410
+ if (directive.promptPrefix) prompt = directive.promptPrefix + prompt;
411
+ body = mergeReasoningBody(body, directive.body);
412
+ }
413
+
393
414
  const caps = lookupBundledCatalogCaps({
394
415
  provider: "openrouter",
395
416
  modelId: "google/gemini-2.5-flash-lite",
@@ -403,6 +424,10 @@ const routed = applyModelRouting(
403
424
  );
404
425
  ```
405
426
 
427
+ `reasoningTextPaths` and `usage.reasoningTokenPaths` are JSON Pointers. `*` means every array element. Both lists are ordered alternatives: use the first path that yields a value, and do not sum usage paths. `streamReasoningKeys` are exact keys on a flat delta (`choices[*].delta` for OpenRouter). `streamReasoningPaths` are pointers into one stream event (Bedrock `contentBlockDelta`, or an OpenAI `response.reasoning_summary_text.delta` event). A directive fills only one of those stream fields. `stripFromHistoryPaths` lists fields that are safe to delete from a replayed message. OpenRouter `reasoning_details`, Bedrock `reasoningContent` signatures, and Responses reasoning items stay. `stripThinkTags` separates a whole `<think>...</think>` section from answer text, including tags split across chunks; an unclosed section at end of stream stays out of the answer. It is false unless a mapping says the model puts thoughts in answer text.
428
+
429
+ `"openai"` is `POST https://api.openai.com/v1/responses`. Do not send Chat Completions `reasoning_effort`. The resolver cannot see `max_output_tokens`, Bedrock `maxTokens`, or sampling parameters. Those constraints are on the mapping provenance in `reasoning-directives.json` and in [CHANGELOG.md](CHANGELOG.md). Coverage for 5.0.0 is that changelog, not every model on a provider.
430
+
406
431
  For the same profile-first order with optional remote registry/catalog (`source: "auto"` / `"remote"` / `"bundled"`), use **`resolveInput`**:
407
432
 
408
433
  ```ts
@@ -729,7 +754,7 @@ model.modelSignals.isReasoningModel; // true
729
754
  model.modelSignals.maxOutputTokens; // same as maxCompletionTokens
730
755
  model.catalogCapabilities?.toolCalling; // true
731
756
  model.invocation.openrouter?.modelId; // "google/gemini-2.5-flash-lite"
732
- model.capabilities?.supportsOpenRouterReasoningParam; // gateway reasoning.effort
757
+ model.capabilities?.supportsOpenRouterReasoningParam; // legacy hint; use resolveReasoning for the wire body
733
758
  ```
734
759
 
735
760
  ### Invoke cost (Activix / FuncX)
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB;AAMD,yEAAyE;AACzE,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IACtD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,mBAAmB,EAAE,CAMxB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9E;AA2BD,mFAAmF;AACnF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,iBAAiB,GAAG,IAAI,CA4B1B;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMvE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CA0BjF;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAK5F"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB;AAMD,yEAAyE;AACzE,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IACtD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,mBAAmB,EAAE,CAMxB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9E;AA2BD,mFAAmF;AACnF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,iBAAiB,GAAG,IAAI,CA4B1B;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAOvE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CA0BjF;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAM5F"}
package/dist/browser.js CHANGED
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import modelsProfiles from "./data/models-profiles.json" with { type: "json" };
6
6
  import modelsCatalog from "./data/models-catalog.json" with { type: "json" };
7
+ import { coerceOptionalUsdPer1M } from "./pricingNormalize.js";
7
8
  function normalize(value) {
8
9
  return value.trim().toLowerCase();
9
10
  }
@@ -64,8 +65,8 @@ export function lookupCatalogPrice(provider, modelId) {
64
65
  const mods = entry.openrouter?.modalities ?? entry.modalities;
65
66
  const caps = entry.openrouter?.capabilities;
66
67
  return {
67
- input: pricing?.input ?? null,
68
- output: pricing?.output ?? null,
68
+ input: coerceOptionalUsdPer1M(pricing?.input) ?? null,
69
+ output: coerceOptionalUsdPer1M(pricing?.output) ?? null,
69
70
  currency: "USD",
70
71
  unit: "1M_tokens",
71
72
  openRouterModelId: entry.openrouter?.modelId ?? null,
@@ -80,7 +81,8 @@ export function lookupCatalogPrice(provider, modelId) {
80
81
  export function formatUsdPer1M(value) {
81
82
  if (value == null || Number.isNaN(value))
82
83
  return "—";
83
- if (value === 0)
84
+ // Negative sentinels (e.g. OpenRouter -1e6) are free / unset → show $0.
85
+ if (!Number.isFinite(value) || value <= 0)
84
86
  return "$0";
85
87
  if (value < 0.01)
86
88
  return `$${value.toFixed(4)}`;
@@ -92,8 +94,8 @@ export function choiceCostQuote(choice) {
92
94
  const fromChoice = choice.pricing;
93
95
  if (fromChoice && typeof fromChoice === "object") {
94
96
  const v2 = fromChoice;
95
- const input = v2.standard?.input ?? v2.input ?? null;
96
- const output = v2.standard?.output ?? v2.output ?? null;
97
+ const input = coerceOptionalUsdPer1M(v2.standard?.input ?? v2.input) ?? null;
98
+ const output = coerceOptionalUsdPer1M(v2.standard?.output ?? v2.output) ?? null;
97
99
  if (input != null || output != null) {
98
100
  return {
99
101
  input,
@@ -113,11 +115,12 @@ export function choiceCostQuote(choice) {
113
115
  }
114
116
  /** Bucket for cost filters: floor = cheap input, mid, high. */
115
117
  export function costTierFromInput(input) {
116
- if (input == null)
118
+ if (input == null || !Number.isFinite(input))
117
119
  return "unknown";
118
- if (input <= 0.5)
120
+ const rate = input < 0 ? 0 : input;
121
+ if (rate <= 0.5)
119
122
  return "cheap";
120
- if (input <= 5)
123
+ if (rate <= 5)
121
124
  return "mid";
122
125
  return "high";
123
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,17 @@ export type OpenRouterApiModel = {
16
16
  max_completion_tokens?: number;
17
17
  };
18
18
  supported_parameters?: string[];
19
+ /**
20
+ * Per-model reasoning control. Omitted for non-reasoning models.
21
+ * `supported_efforts: null` accepts every gateway effort.
22
+ */
23
+ reasoning?: {
24
+ supported_efforts?: Array<string | null> | null;
25
+ default_effort?: string | null;
26
+ default_enabled?: boolean;
27
+ mandatory?: boolean;
28
+ supports_max_tokens?: boolean;
29
+ };
19
30
  knowledge_cutoff?: string | null;
20
31
  expiration_date?: string | null;
21
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"buildCatalogFromOpenRouterApi.d.ts","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAiC,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE;QACb,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAmB5E;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,EAAE,CAYtB;AA0GD,mGAAmG;AACnG,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,sBAA2B,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzB;AAED,2EAA2E;AAC3E,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,sBAA2B,GACnC,iBAAiB,CAqBnB;AAED,0EAA0E;AAC1E,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,2BAA2B,GACpC,iBAAiB,CAEnB"}
1
+ {"version":3,"file":"buildCatalogFromOpenRouterApi.d.ts","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAiC,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE;QACb,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE;QACV,iBAAiB,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAChD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAmB5E;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,EAAE,CAgBtB;AA+GD,mGAAmG;AACnG,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,sBAA2B,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzB;AAED,2EAA2E;AAC3E,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,sBAA2B,GACnC,iBAAiB,CAqBnB;AAED,0EAA0E;AAC1E,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,2BAA2B,GACpC,iBAAiB,CAEnB"}
@@ -31,6 +31,10 @@ export function filterTextOnlyOpenRouterModels(models, options = {}) {
31
31
  if (!includeFree && model.id.includes(":free")) {
32
32
  return false;
33
33
  }
34
+ // OpenRouter billing variants share a canonical slug with the base SKU.
35
+ if (/:batch$/i.test(model.id)) {
36
+ return false;
37
+ }
34
38
  return isTextOnlyOpenRouterModel(model);
35
39
  });
36
40
  }
@@ -42,6 +46,10 @@ function perTokenToPerMillion(tokenPrice) {
42
46
  if (!Number.isFinite(perToken)) {
43
47
  return undefined;
44
48
  }
49
+ // OpenRouter marks free / dynamic rates as negative per-token prices.
50
+ if (perToken < 0) {
51
+ return 0;
52
+ }
45
53
  return roundCatalogPricingUsd(perToken * 1_000_000);
46
54
  }
47
55
  function inferFamily(modelId) {
@@ -112,6 +120,7 @@ function mapLegacyEntry(model) {
112
120
  webSearchPerRequest: perTokenToPerMillion(pricing.web_search),
113
121
  },
114
122
  capabilities: inferCapabilities(model.supported_parameters),
123
+ reasoning: model.reasoning,
115
124
  };
116
125
  }
117
126
  /** Build the legacy OpenRouter-only catalog document (fed into {@link normalizeModelsCatalog}). */
@@ -1 +1 @@
1
- {"version":3,"file":"buildCatalogFromOpenRouterApi.js","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildCatalogFromOpenRouterApi.js","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"catalogEnrichment.d.ts","sourceRoot":"","sources":["../src/catalogEnrichment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,EAGjB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAwCpB,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,GACvB,cAAc,GAAG,SAAS,CAiB5B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,GACvB,mBAAmB,CAMrB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,iBAAiB,EACxB,eAAe,CAAC,EAAE,OAAO,YAAY,EAAE,eAAe,GACrD,yBAAyB,CAwB3B;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE;IACN,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,GACA,iBAAiB,GAAG,SAAS,CA+B/B;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE;IAAE,QAAQ,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAClD,eAAe,CAAC,EAAE,OAAO,YAAY,EAAE,eAAe,GACrD;IACD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC,CAiBA"}
1
+ {"version":3,"file":"catalogEnrichment.d.ts","sourceRoot":"","sources":["../src/catalogEnrichment.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,EAGjB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAwCpB,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,GACvB,cAAc,GAAG,SAAS,CAkB5B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,GACvB,mBAAmB,CAMrB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,iBAAiB,EACxB,eAAe,CAAC,EAAE,OAAO,YAAY,EAAE,eAAe,GACrD,yBAAyB,CAwB3B;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE;IACN,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,GACA,iBAAiB,GAAG,SAAS,CA+B/B;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE;IAAE,QAAQ,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAClD,eAAe,CAAC,EAAE,OAAO,YAAY,EAAE,eAAe,GACrD;IACD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC,CAiBA"}
@@ -1,5 +1,6 @@
1
1
  import { openRouterReasoningWireFromCatalog } from "./cost/reasoningWire.js";
2
2
  import { buildModelsCatalogIndex } from "./modelsCatalog.js";
3
+ import { coerceAIModelPricing, coerceUsdPer1M } from "./pricingNormalize.js";
3
4
  import { fixVendorModelId } from "./vendorModelId.js";
4
5
  import { normalizeModalityContract } from "./modalityPolicy.js";
5
6
  import { getChoiceOpenRouterModelId, getChoiceVendorModelId } from "./profileRegistryV2.js";
@@ -34,17 +35,17 @@ export function pricingFromCatalogEntry(entry) {
34
35
  if (!pricing) {
35
36
  return undefined;
36
37
  }
37
- return {
38
+ return coerceAIModelPricing({
38
39
  input: pricing.input,
39
40
  output: pricing.output,
40
41
  cachedInput: pricing.cachedInput,
41
42
  batchInput: pricing.batchInput,
42
43
  batchOutput: pricing.batchOutput,
43
44
  cacheWrite5m: pricing.cacheWrite,
44
- notes: pricing.webSearchPerRequest
45
- ? `Web search per request: $${pricing.webSearchPerRequest}`
45
+ notes: pricing.webSearchPerRequest != null
46
+ ? `Web search per request: $${coerceUsdPer1M(pricing.webSearchPerRequest)}`
46
47
  : undefined,
47
- };
48
+ });
48
49
  }
49
50
  export function limitsFromCatalogEntry(entry) {
50
51
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"catalogEnrichment.js","sourceRoot":"","sources":["../src/catalogEnrichment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalogEnrichment.js","sourceRoot":"","sources":["../src/catalogEnrichment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"computeInvokeCost.d.ts","sourceRoot":"","sources":["../../src/cost/computeInvokeCost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAO5E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAoCD,wBAAgB,cAAc,CAC5B,OAAO,CAAC,EAAE,cAAc,EACxB,cAAc,CAAC,EAAE,wBAAwB,GACxC,OAAO,CAgBT;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,mBAAmB,CAAA;CAAE,CA2EvD"}
1
+ {"version":3,"file":"computeInvokeCost.d.ts","sourceRoot":"","sources":["../../src/cost/computeInvokeCost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAQ5E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAoCD,wBAAgB,cAAc,CAC5B,OAAO,CAAC,EAAE,cAAc,EACxB,cAAc,CAAC,EAAE,wBAAwB,GACxC,OAAO,CAgBT;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,mBAAmB,CAAA;CAAE,CA2EvD"}
@@ -1,6 +1,7 @@
1
+ import { coerceUsdPer1M } from "../pricingNormalize.js";
1
2
  import { DEFAULT_OPENROUTER_MARKUP_RATE, PROFILE_TIERED_CONTEXT_THRESHOLD, TOKENS_PER_MILLION, } from "./constants.js";
2
3
  function usdPerToken(perMillion) {
3
- return (perMillion ?? 0) / TOKENS_PER_MILLION;
4
+ return coerceUsdPer1M(perMillion ?? 0) / TOKENS_PER_MILLION;
4
5
  }
5
6
  function pickInputRatePerMillion(pricing, promptTokens) {
6
7
  if (pricing.inputBelow200k !== undefined &&
@@ -1 +1 @@
1
- {"version":3,"file":"computeInvokeCost.js","sourceRoot":"","sources":["../../src/cost/computeInvokeCost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computeInvokeCost.js","sourceRoot":"","sources":["../../src/cost/computeInvokeCost.ts"],"names":[],"mappings":"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"}