@stll/ai-catalog 0.8.1 → 0.9.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.
package/README.md CHANGED
@@ -39,8 +39,10 @@ one refresh pull request for both snapshots.
39
39
  `gen:capabilities --refresh` rejects before fetching or writing: rates owns the
40
40
  shared upstream refresh, and capabilities reads those refreshed inputs.
41
41
  The snapshot covers text input/output, cache reads/writes, and context tiers.
42
- Audio pricing is deliberately excluded because Stella does not route audio
43
- model input; an unknown models.dev cost field fails generation.
42
+ The text-model snapshot excludes audio rates; an unknown models.dev cost field
43
+ fails generation. `@stll/ai-catalog/transcription` owns the separately curated
44
+ transcription catalog, with dated public sources, rational duration rates, and
45
+ explicit capability and regional-availability evidence.
44
46
 
45
47
  ## Install
46
48
 
@@ -1,4 +1,4 @@
1
- import { D as ReasoningEffort, a as BYOKProvider } from "./index-Ci4rdcxe.js";
1
+ import { D as ReasoningEffort, a as BYOKProvider } from "./index-COmyIxMN.js";
2
2
  //#region src/benchmark-frontier.d.ts
3
3
  export type ModelBenchmarkMeasurement = {
4
4
  sourceModelId: string;
@@ -1,5 +1,5 @@
1
- import { w as OfferedBYOKModelId } from "./index-Ci4rdcxe.js";
2
1
  import { ModelBenchmarkMeasurement } from "./benchmark-frontier.js";
2
+ import { w as OfferedBYOKModelId } from "./index-COmyIxMN.js";
3
3
  //#region src/benchmark-sources.d.ts
4
4
  export declare const MODEL_BENCHMARK_NAME = "Text Arena";
5
5
  export declare const MODEL_BENCHMARK_LICENCE = "CC BY 4.0";
@@ -255,7 +255,15 @@ export declare const MODEL_BENCHMARK_SOURCES: {
255
255
  readonly "mistral-medium-latest": readonly [];
256
256
  readonly "mistral-small-latest": readonly [];
257
257
  };
258
- export declare const MODEL_UNRATED_REASONS: readonly ["too_new", "preview_only", "named_default_effort", "floating_alias"];
258
+ export declare const MODEL_UNRATED_REASONS: readonly [
259
+ /** Released after the snapshot; Arena has not ranked it yet. */
260
+ "too_new",
261
+ /** Arena ranks only a preview snapshot, which may differ from the release. */
262
+ "preview_only",
263
+ /** Only a suffix-less row exists and this route's default is a named effort. */
264
+ "named_default_effort",
265
+ /** A `-latest` alias that moves between the pinned releases Arena ranks. */
266
+ "floating_alias"];
259
267
  type ModelUnratedReason = (typeof MODEL_UNRATED_REASONS)[number];
260
268
  /**
261
269
  * A reviewed reason for every offered model without an exact Text Arena row.
@@ -1,4 +1,4 @@
1
- import { E as getModelRate, G as MODEL_RATE_UNITS_PER_USD, K as getStandardModelRate } from "./src-CC7RZ0HV.js";
1
+ import { E as getModelRate, G as MODEL_RATE_UNITS_PER_USD, K as getStandardModelRate } from "./src-DvSnw4Iz.js";
2
2
  //#region src/benchmark-sources.ts
3
3
  const MODEL_BENCHMARK_NAME = "Text Arena";
4
4
  const MODEL_BENCHMARK_LICENCE = "CC BY 4.0";
@@ -1755,9 +1755,9 @@ declare const MODEL_RATES: {
1755
1755
  };
1756
1756
  readonly "mistral-large-4": {
1757
1757
  readonly kind: "flat";
1758
- readonly inputPerMTok: 68000;
1759
- readonly outputPerMTok: 209000;
1760
- readonly cachedInputPerMTok: 7000;
1758
+ readonly inputPerMTok: 136000;
1759
+ readonly outputPerMTok: 418000;
1760
+ readonly cachedInputPerMTok: 14000;
1761
1761
  };
1762
1762
  readonly "mistral-large-latest": {
1763
1763
  readonly kind: "flat";
@@ -3085,127 +3085,127 @@ declare const BYOK_DEFAULT_MODELS: {
3085
3085
  readonly fast: {
3086
3086
  kind: "default";
3087
3087
  modelId: "gemini-3.8-flash";
3088
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3088
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3089
3089
  };
3090
3090
  readonly chat: {
3091
3091
  kind: "default";
3092
3092
  modelId: "gemini-3.8-flash";
3093
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3093
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3094
3094
  };
3095
3095
  readonly reasoning: {
3096
3096
  kind: "default";
3097
3097
  modelId: "gemini-3.8-flash";
3098
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3098
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3099
3099
  };
3100
3100
  readonly pdf: {
3101
3101
  kind: "default";
3102
3102
  modelId: "gemini-3.8-flash";
3103
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3103
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3104
3104
  };
3105
3105
  };
3106
3106
  readonly openrouter: {
3107
3107
  readonly fast: {
3108
3108
  kind: "default";
3109
3109
  modelId: "anthropic/claude-haiku-5.5";
3110
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3110
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3111
3111
  };
3112
3112
  readonly chat: {
3113
3113
  kind: "default";
3114
3114
  modelId: "openai/gpt-6-sol";
3115
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3115
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3116
3116
  };
3117
3117
  readonly reasoning: {
3118
3118
  kind: "default";
3119
3119
  modelId: "openai/gpt-6-sol";
3120
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3120
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3121
3121
  };
3122
3122
  readonly pdf: {
3123
3123
  kind: "default";
3124
3124
  modelId: "openai/gpt-6-sol";
3125
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3125
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3126
3126
  };
3127
3127
  };
3128
3128
  readonly openai: {
3129
3129
  readonly fast: {
3130
3130
  kind: "default";
3131
3131
  modelId: "gpt-6-luna";
3132
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3132
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3133
3133
  };
3134
3134
  readonly chat: {
3135
3135
  kind: "default";
3136
3136
  modelId: "gpt-6-sol";
3137
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3137
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3138
3138
  };
3139
3139
  readonly reasoning: {
3140
3140
  kind: "default";
3141
3141
  modelId: "gpt-6-sol";
3142
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3142
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3143
3143
  };
3144
3144
  readonly pdf: {
3145
3145
  kind: "default";
3146
3146
  modelId: "gpt-6-sol";
3147
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3147
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3148
3148
  };
3149
3149
  };
3150
3150
  readonly anthropic: {
3151
3151
  readonly fast: {
3152
3152
  kind: "default";
3153
3153
  modelId: "claude-haiku-5-5";
3154
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3154
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3155
3155
  };
3156
3156
  readonly chat: {
3157
3157
  kind: "default";
3158
3158
  modelId: "claude-opus-5-5";
3159
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3159
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3160
3160
  };
3161
3161
  readonly reasoning: {
3162
3162
  kind: "default";
3163
3163
  modelId: "claude-opus-5-5";
3164
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3164
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3165
3165
  };
3166
3166
  readonly pdf: {
3167
3167
  kind: "default";
3168
3168
  modelId: "claude-opus-5-5";
3169
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3169
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3170
3170
  };
3171
3171
  };
3172
3172
  readonly bedrock: {
3173
3173
  readonly fast: {
3174
3174
  kind: "default";
3175
3175
  modelId: "us.anthropic.claude-haiku-5-5";
3176
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3176
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3177
3177
  };
3178
3178
  readonly chat: {
3179
3179
  kind: "default";
3180
3180
  modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0";
3181
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3181
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3182
3182
  };
3183
3183
  readonly reasoning: {
3184
3184
  kind: "default";
3185
3185
  modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0";
3186
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3186
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3187
3187
  };
3188
3188
  readonly pdf: {
3189
3189
  kind: "default";
3190
3190
  modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0";
3191
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3191
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3192
3192
  };
3193
3193
  };
3194
3194
  readonly mistral: {
3195
3195
  readonly fast: {
3196
3196
  kind: "default";
3197
3197
  modelId: "mistral-small-latest";
3198
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3198
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3199
3199
  };
3200
3200
  readonly chat: {
3201
3201
  kind: "default";
3202
3202
  modelId: "mistral-medium-latest";
3203
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3203
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3204
3204
  };
3205
3205
  readonly reasoning: {
3206
3206
  kind: "default";
3207
3207
  modelId: "mistral-medium-latest";
3208
- rationaleKey: "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.reasoning" | "organization.aiConfig.defaultRationale.pdf";
3208
+ rationaleKey: "organization.aiConfig.defaultRationale.chat" | "organization.aiConfig.defaultRationale.fast" | "organization.aiConfig.defaultRationale.pdf" | "organization.aiConfig.defaultRationale.reasoning";
3209
3209
  };
3210
3210
  readonly pdf: {
3211
3211
  readonly kind: "unsupported";
@@ -3225,8 +3225,8 @@ declare const BYOK_DEFAULT_MODELS: {
3225
3225
  declare const BYOK_MODEL_OPTIONS: {
3226
3226
  readonly google: readonly ["gemini-4-argon", "gemini-3.8-flash", "gemini-3.7-flash", "gemini-3.6-flash", "gemini-3.5-flash-lite", "gemini-3.1-pro-preview", "gemini-3.5-flash", "gemini-3.1-flash-lite"];
3227
3227
  readonly anthropic: readonly ["claude-sonnet-5-5", "claude-sonnet-5", "claude-fable-5-1", "claude-fable-5", "claude-opus-5-5", "claude-opus-5", "claude-opus-4-8", "claude-opus-4-7", "claude-sonnet-4-6", "claude-opus-4-6", "claude-haiku-5-5", "claude-haiku-4-5-20251001"];
3228
- readonly openai: readonly [...("gpt-6.1-sol" | "gpt-6-astra" | "gpt-6-sol" | "gpt-6-luna" | "gpt-5.6" | "gpt-5.6-terra" | "gpt-5.6-luna")[], "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.2"];
3229
- readonly openrouter: readonly [...("openai/gpt-6.1-sol" | "openai/gpt-6-astra" | "openai/gpt-6-sol" | "openai/gpt-6-luna" | "openai/gpt-5.6-sol" | "openai/gpt-5.6-terra" | "openai/gpt-5.6-luna")[], "google/gemini-4-argon", "google/gemini-3.8-flash", "google/gemini-3.7-flash", "google/gemini-3.6-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.1-pro-preview", "google/gemini-3.5-flash", "google/gemini-3.1-flash-lite", "anthropic/claude-haiku-5.5", "anthropic/claude-sonnet-5.5", "anthropic/claude-sonnet-5", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
3228
+ readonly openai: readonly [...("gpt-5.6" | "gpt-5.6-luna" | "gpt-5.6-terra" | "gpt-6-astra" | "gpt-6-luna" | "gpt-6-sol" | "gpt-6.1-sol")[], "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.2"];
3229
+ readonly openrouter: readonly [...("openai/gpt-5.6-luna" | "openai/gpt-5.6-sol" | "openai/gpt-5.6-terra" | "openai/gpt-6-astra" | "openai/gpt-6-luna" | "openai/gpt-6-sol" | "openai/gpt-6.1-sol")[], "google/gemini-4-argon", "google/gemini-3.8-flash", "google/gemini-3.7-flash", "google/gemini-3.6-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.1-pro-preview", "google/gemini-3.5-flash", "google/gemini-3.1-flash-lite", "anthropic/claude-haiku-5.5", "anthropic/claude-sonnet-5.5", "anthropic/claude-sonnet-5", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
3230
3230
  readonly bedrock: readonly ["us.anthropic.claude-sonnet-4-5-20250929-v1:0", "us.anthropic.claude-haiku-5-5", "us.anthropic.claude-haiku-4-5-20251001-v1:0", "us.amazon.nova-pro-v1:0", "us.amazon.nova-lite-v1:0", "us.amazon.nova-micro-v1:0", "openai.gpt-oss-120b-1:0", "openai.gpt-oss-20b-1:0"];
3231
3231
  readonly mistral: readonly ["mistral-large-4", "mistral-large-latest", "mistral-medium-latest", "mistral-small-latest"];
3232
3232
  };
@@ -3599,12 +3599,12 @@ declare const isBYOKModelRoleSupported: ({ provider, modelId, role }: {
3599
3599
  * invariant: every pdf-role document model also accepts a PDF chat attachment.
3600
3600
  */
3601
3601
  declare const CHAT_PDF_ATTACHMENT_MODEL_OPTIONS: {
3602
- readonly mistral: readonly ["mistral-medium-latest", "mistral-small-latest"];
3603
3602
  readonly google: readonly ["gemini-4-argon", "gemini-3.8-flash", "gemini-3.7-flash", "gemini-3.6-flash", "gemini-3.5-flash-lite", "gemini-3.1-pro-preview", "gemini-3.5-flash", "gemini-3.1-flash-lite"];
3604
3603
  readonly openrouter: readonly ["openai/gpt-6.1-sol", "openai/gpt-6-astra", "openai/gpt-6-sol", "openai/gpt-6-luna", "openai/gpt-5.6-sol", "openai/gpt-5.6-terra", "openai/gpt-5.6-luna", "google/gemini-4-argon", "google/gemini-3.8-flash", "google/gemini-3.7-flash", "google/gemini-3.6-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.1-pro-preview", "google/gemini-3.5-flash", "google/gemini-3.1-flash-lite", "anthropic/claude-haiku-5.5", "anthropic/claude-sonnet-5.5", "anthropic/claude-sonnet-5", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
3605
3604
  readonly openai: readonly ["gpt-6.1-sol", "gpt-6-astra", "gpt-6-sol", "gpt-6-luna", "gpt-5.6", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.2"];
3606
3605
  readonly anthropic: readonly ["claude-sonnet-5-5", "claude-sonnet-5", "claude-fable-5-1", "claude-fable-5", "claude-opus-5-5", "claude-opus-5", "claude-opus-4-8", "claude-opus-4-7", "claude-sonnet-4-6", "claude-opus-4-6", "claude-haiku-5-5", "claude-haiku-4-5-20251001"];
3607
3606
  readonly bedrock: readonly ["us.anthropic.claude-sonnet-4-5-20250929-v1:0", "us.anthropic.claude-haiku-5-5", "us.anthropic.claude-haiku-4-5-20251001-v1:0", "us.amazon.nova-pro-v1:0", "us.amazon.nova-lite-v1:0"];
3607
+ readonly mistral: readonly ["mistral-medium-latest", "mistral-small-latest"];
3608
3608
  };
3609
3609
  declare const isChatPdfAttachmentModelSupported: ({ provider, modelId }: {
3610
3610
  provider: BYOKProvider;
@@ -3617,7 +3617,7 @@ declare const resolveWorkingBYOKModelForTask: ({ provider, modelId, task }: {
3617
3617
  task: ModelTask;
3618
3618
  }) => string | null;
3619
3619
  /** Native Anthropic adaptive-thinking models, derived from replay capabilities. */
3620
- declare const ANTHROPIC_ADAPTIVE_THINKING_MODELS: ("claude-sonnet-5-5" | "claude-sonnet-5" | "claude-fable-5-1" | "claude-fable-5" | "claude-opus-5-5" | "claude-opus-5" | "claude-opus-4-8" | "claude-opus-4-7" | "claude-sonnet-4-6" | "claude-opus-4-6" | "claude-haiku-5-5" | "claude-haiku-4-5-20251001")[];
3620
+ declare const ANTHROPIC_ADAPTIVE_THINKING_MODELS: ("claude-fable-5" | "claude-fable-5-1" | "claude-haiku-4-5-20251001" | "claude-haiku-5-5" | "claude-opus-4-6" | "claude-opus-4-7" | "claude-opus-4-8" | "claude-opus-5" | "claude-opus-5-5" | "claude-sonnet-4-6" | "claude-sonnet-5" | "claude-sonnet-5-5")[];
3621
3621
  /**
3622
3622
  * Canonical reasoning-effort ladder, ordered weakest to strongest.
3623
3623
  * Union of every effort keyword the offered providers accept; no
@@ -3626,7 +3626,7 @@ declare const ANTHROPIC_ADAPTIVE_THINKING_MODELS: ("claude-sonnet-5-5" | "claude
3626
3626
  */
3627
3627
  declare const REASONING_EFFORTS: readonly ["none", "minimal", "low", "medium", "high", "xhigh", "max"];
3628
3628
  type ReasoningEffort = (typeof REASONING_EFFORTS)[number];
3629
- declare const resolvedReasoningEffortSchema: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["none", "minimal", "low", "medium", "high", "xhigh", "max"], undefined>, v.BrandAction<"none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "ResolvedReasoningEffort">]>;
3629
+ declare const resolvedReasoningEffortSchema: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["none", "minimal", "low", "medium", "high", "xhigh", "max"], undefined>, v.BrandAction<"high" | "low" | "max" | "medium" | "minimal" | "none" | "xhigh", "ResolvedReasoningEffort">]>;
3630
3630
  /**
3631
3631
  * A reasoning effort proven to be accepted by the model it targets.
3632
3632
  * Only `resolveReasoningEffort` can produce this type, so option
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as MODEL_IMAGE_INPUT_CAPABILITIES, A as STREAMING_TOOL_USE_SUPPORTS, At as MODEL_TASK_OVERRIDE_GROUP, B as getModelRate, Bt as resolveDefaultModel, C as ModelDisplayMetadata, Ct as ModelRateAmounts, D as ReasoningEffort, Dt as MODEL_OVERRIDE_GROUPS, E as RECOMMENDED_CHAT_MODELS, F as TemperaturePolicy, G as isBYOKProviderRoleSupported, H as getModelReasoningEfforts, I as getContextWindowTokens, J as resolveReasoningEffort, K as isChatPdfAttachmentModelSupported, L as getModelDefaultReasoningEffort, Lt as ModelOverrideGroup, M as TANSTACK_AI_PROVIDERS, N as TEMPERATURE_POLICIES, O as ResolveReasoningEffortOptions, Ot as MODEL_OVERRIDE_GROUP_TASK, P as TanStackAIProvider, Q as MODEL_DEFAULT_REASONING_EFFORTS, R as getModelDisplayMetadata, Rt as ModelTask, S as MODEL_STREAMING_TOOL_USE, St as ModelRate, T as REASONING_EFFORTS, Tt as resolveModelRate, U as getOutputTokenLimit, V as getModelReasoningCapabilities, Vt as resolveDefaultOverrideModels, W as isBYOKModelRoleSupported, X as shouldEmitTemperature, Y as resolveWorkingBYOKModelForTask, Z as supportsStreamingToolUse, _ as IMAGE_INPUT_CAPABILITIES, _t as REASONING_REPLAY_FORMATS, a as BYOKProvider, at as CAPABILITY_OVERRIDES, b as MODEL_CATALOG_PROVIDER_KIND, bt as MODEL_RATES, c as BYOK_MODEL_OPTIONS, ct as ImageInputOverride, d as DECISION_MODEL_CATALOG, dt as MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, et as MODEL_OUTPUT_TOKEN_LIMITS, f as DECISION_MODEL_PROVIDERS, ft as MODELS_DEV_RATE_SOURCE_ALIASES, g as FirstPartyModelProvider, gt as ModelReasoningCapabilities, h as FIRST_PARTY_MODEL_PROVIDERS, ht as MODEL_REASONING_CAPABILITIES, i as BYOKModelIdByProvider, it as DocumentInputOverride, j as StreamingToolUseSupport, k as ResolvedReasoningEffort, kt as MODEL_TASKS, l as CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, lt as ImageInputOverrides, m as DecisionModelProvider, mt as RETAINED_MODELS_DEV_RATE_ENTRIES, n as AI_PROVIDERS, nt as MODEL_TEMPERATURE_POLICIES, o as BYOK_DEFAULT_MODELS, ot as CapabilityOverride, p as DEFAULT_CONTEXT_WINDOW_TOKENS, pt as ModelsDevRateProvider, q as normalizeModelCatalogId, r as ANTHROPIC_ADAPTIVE_THINKING_MODELS, rt as DOCUMENT_INPUT_OVERRIDES, s as BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, st as IMAGE_INPUT_OVERRIDES, t as AIProvider, tt as MODEL_REASONING_EFFORTS, u as CONTEXT_WINDOW_TOKENS, ut as MODELS_DEV_RATE_CORRECTIONS, v as ImageInputCapability, vt as ReasoningProvenance, w as OfferedBYOKModelId, wt as getStandardModelRate, x as MODEL_DISPLAY_METADATA, xt as MODEL_RATE_UNITS_PER_USD, y as MODEL_CATALOG_ID_ALIASES, yt as ReasoningReplayFormat, z as getModelImageInputCapability } from "./index-Ci4rdcxe.js";
1
+ import { $ as MODEL_IMAGE_INPUT_CAPABILITIES, A as STREAMING_TOOL_USE_SUPPORTS, At as MODEL_TASK_OVERRIDE_GROUP, B as getModelRate, Bt as resolveDefaultModel, C as ModelDisplayMetadata, Ct as ModelRateAmounts, D as ReasoningEffort, Dt as MODEL_OVERRIDE_GROUPS, E as RECOMMENDED_CHAT_MODELS, F as TemperaturePolicy, G as isBYOKProviderRoleSupported, H as getModelReasoningEfforts, I as getContextWindowTokens, J as resolveReasoningEffort, K as isChatPdfAttachmentModelSupported, L as getModelDefaultReasoningEffort, Lt as ModelOverrideGroup, M as TANSTACK_AI_PROVIDERS, N as TEMPERATURE_POLICIES, O as ResolveReasoningEffortOptions, Ot as MODEL_OVERRIDE_GROUP_TASK, P as TanStackAIProvider, Q as MODEL_DEFAULT_REASONING_EFFORTS, R as getModelDisplayMetadata, Rt as ModelTask, S as MODEL_STREAMING_TOOL_USE, St as ModelRate, T as REASONING_EFFORTS, Tt as resolveModelRate, U as getOutputTokenLimit, V as getModelReasoningCapabilities, Vt as resolveDefaultOverrideModels, W as isBYOKModelRoleSupported, X as shouldEmitTemperature, Y as resolveWorkingBYOKModelForTask, Z as supportsStreamingToolUse, _ as IMAGE_INPUT_CAPABILITIES, _t as REASONING_REPLAY_FORMATS, a as BYOKProvider, at as CAPABILITY_OVERRIDES, b as MODEL_CATALOG_PROVIDER_KIND, bt as MODEL_RATES, c as BYOK_MODEL_OPTIONS, ct as ImageInputOverride, d as DECISION_MODEL_CATALOG, dt as MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, et as MODEL_OUTPUT_TOKEN_LIMITS, f as DECISION_MODEL_PROVIDERS, ft as MODELS_DEV_RATE_SOURCE_ALIASES, g as FirstPartyModelProvider, gt as ModelReasoningCapabilities, h as FIRST_PARTY_MODEL_PROVIDERS, ht as MODEL_REASONING_CAPABILITIES, i as BYOKModelIdByProvider, it as DocumentInputOverride, j as StreamingToolUseSupport, k as ResolvedReasoningEffort, kt as MODEL_TASKS, l as CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, lt as ImageInputOverrides, m as DecisionModelProvider, mt as RETAINED_MODELS_DEV_RATE_ENTRIES, n as AI_PROVIDERS, nt as MODEL_TEMPERATURE_POLICIES, o as BYOK_DEFAULT_MODELS, ot as CapabilityOverride, p as DEFAULT_CONTEXT_WINDOW_TOKENS, pt as ModelsDevRateProvider, q as normalizeModelCatalogId, r as ANTHROPIC_ADAPTIVE_THINKING_MODELS, rt as DOCUMENT_INPUT_OVERRIDES, s as BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, st as IMAGE_INPUT_OVERRIDES, t as AIProvider, tt as MODEL_REASONING_EFFORTS, u as CONTEXT_WINDOW_TOKENS, ut as MODELS_DEV_RATE_CORRECTIONS, v as ImageInputCapability, vt as ReasoningProvenance, w as OfferedBYOKModelId, wt as getStandardModelRate, x as MODEL_DISPLAY_METADATA, xt as MODEL_RATE_UNITS_PER_USD, y as MODEL_CATALOG_ID_ALIASES, yt as ReasoningReplayFormat, z as getModelImageInputCapability } from "./index-COmyIxMN.js";
2
2
  export { AIProvider, AI_PROVIDERS, ANTHROPIC_ADAPTIVE_THINKING_MODELS, BYOKModelIdByProvider, BYOKProvider, BYOK_DEFAULT_MODELS, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, BYOK_MODEL_OPTIONS, CAPABILITY_OVERRIDES, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, CONTEXT_WINDOW_TOKENS, type CapabilityOverride, DECISION_MODEL_CATALOG, DECISION_MODEL_PROVIDERS, DEFAULT_CONTEXT_WINDOW_TOKENS, DOCUMENT_INPUT_OVERRIDES, DecisionModelProvider, type DocumentInputOverride, FIRST_PARTY_MODEL_PROVIDERS, FirstPartyModelProvider, IMAGE_INPUT_CAPABILITIES, IMAGE_INPUT_OVERRIDES, ImageInputCapability, type ImageInputOverride, type ImageInputOverrides, MODELS_DEV_RATE_CORRECTIONS, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, MODELS_DEV_RATE_SOURCE_ALIASES, MODEL_CATALOG_ID_ALIASES, MODEL_CATALOG_PROVIDER_KIND, MODEL_DEFAULT_REASONING_EFFORTS, MODEL_DISPLAY_METADATA, MODEL_IMAGE_INPUT_CAPABILITIES, MODEL_OUTPUT_TOKEN_LIMITS, MODEL_OVERRIDE_GROUPS, MODEL_OVERRIDE_GROUP_TASK, MODEL_RATES, MODEL_RATE_UNITS_PER_USD, MODEL_REASONING_CAPABILITIES, MODEL_REASONING_EFFORTS, MODEL_STREAMING_TOOL_USE, MODEL_TASKS, MODEL_TASK_OVERRIDE_GROUP, MODEL_TEMPERATURE_POLICIES, ModelDisplayMetadata, type ModelOverrideGroup, type ModelRate, type ModelRateAmounts, type ModelReasoningCapabilities, type ModelTask, type ModelsDevRateProvider, OfferedBYOKModelId, REASONING_EFFORTS, REASONING_REPLAY_FORMATS, RECOMMENDED_CHAT_MODELS, RETAINED_MODELS_DEV_RATE_ENTRIES, ReasoningEffort, type ReasoningProvenance, type ReasoningReplayFormat, ResolveReasoningEffortOptions, ResolvedReasoningEffort, STREAMING_TOOL_USE_SUPPORTS, StreamingToolUseSupport, TANSTACK_AI_PROVIDERS, TEMPERATURE_POLICIES, TanStackAIProvider, TemperaturePolicy, getContextWindowTokens, getModelDefaultReasoningEffort, getModelDisplayMetadata, getModelImageInputCapability, getModelRate, getModelReasoningCapabilities, getModelReasoningEfforts, getOutputTokenLimit, getStandardModelRate, isBYOKModelRoleSupported, isBYOKProviderRoleSupported, isChatPdfAttachmentModelSupported, normalizeModelCatalogId, resolveDefaultModel, resolveDefaultOverrideModels, resolveModelRate, resolveReasoningEffort, resolveWorkingBYOKModelForTask, shouldEmitTemperature, supportsStreamingToolUse };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as MODEL_OUTPUT_TOKEN_LIMITS, A as isBYOKModelRoleSupported, B as IMAGE_INPUT_OVERRIDES, C as getModelDefaultReasoningEffort, D as getModelReasoningCapabilities, E as getModelRate, F as resolveWorkingBYOKModelForTask, G as MODEL_RATE_UNITS_PER_USD, H as MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, I as shouldEmitTemperature, J as MODEL_REASONING_CAPABILITIES, K as getStandardModelRate, L as supportsStreamingToolUse, M as isChatPdfAttachmentModelSupported, N as normalizeModelCatalogId, O as getModelReasoningEfforts, P as resolveReasoningEffort, Q as MODEL_IMAGE_INPUT_CAPABILITIES, R as DOCUMENT_INPUT_OVERRIDES, S as getContextWindowTokens, T as getModelImageInputCapability, U as MODELS_DEV_RATE_SOURCE_ALIASES, V as MODELS_DEV_RATE_CORRECTIONS, W as RETAINED_MODELS_DEV_RATE_ENTRIES, X as MODEL_RATES, Y as REASONING_REPLAY_FORMATS, Z as MODEL_DEFAULT_REASONING_EFFORTS, _ as REASONING_EFFORTS, a as BYOK_MODEL_OPTIONS, b as TANSTACK_AI_PROVIDERS, c as DECISION_MODEL_CATALOG, d as FIRST_PARTY_MODEL_PROVIDERS, et as MODEL_REASONING_EFFORTS, f as IMAGE_INPUT_CAPABILITIES, g as MODEL_STREAMING_TOOL_USE, h as MODEL_DISPLAY_METADATA, i as BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, j as isBYOKProviderRoleSupported, k as getOutputTokenLimit, l as DECISION_MODEL_PROVIDERS, m as MODEL_CATALOG_PROVIDER_KIND, n as ANTHROPIC_ADAPTIVE_THINKING_MODELS, o as CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, p as MODEL_CATALOG_ID_ALIASES, q as resolveModelRate, r as BYOK_DEFAULT_MODELS, s as CONTEXT_WINDOW_TOKENS, t as AI_PROVIDERS, tt as MODEL_TEMPERATURE_POLICIES, u as DEFAULT_CONTEXT_WINDOW_TOKENS, v as RECOMMENDED_CHAT_MODELS, w as getModelDisplayMetadata, x as TEMPERATURE_POLICIES, y as STREAMING_TOOL_USE_SUPPORTS, z as CAPABILITY_OVERRIDES } from "./src-CC7RZ0HV.js";
1
+ import { $ as MODEL_OUTPUT_TOKEN_LIMITS, A as isBYOKModelRoleSupported, B as IMAGE_INPUT_OVERRIDES, C as getModelDefaultReasoningEffort, D as getModelReasoningCapabilities, E as getModelRate, F as resolveWorkingBYOKModelForTask, G as MODEL_RATE_UNITS_PER_USD, H as MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, I as shouldEmitTemperature, J as MODEL_REASONING_CAPABILITIES, K as getStandardModelRate, L as supportsStreamingToolUse, M as isChatPdfAttachmentModelSupported, N as normalizeModelCatalogId, O as getModelReasoningEfforts, P as resolveReasoningEffort, Q as MODEL_IMAGE_INPUT_CAPABILITIES, R as DOCUMENT_INPUT_OVERRIDES, S as getContextWindowTokens, T as getModelImageInputCapability, U as MODELS_DEV_RATE_SOURCE_ALIASES, V as MODELS_DEV_RATE_CORRECTIONS, W as RETAINED_MODELS_DEV_RATE_ENTRIES, X as MODEL_RATES, Y as REASONING_REPLAY_FORMATS, Z as MODEL_DEFAULT_REASONING_EFFORTS, _ as REASONING_EFFORTS, a as BYOK_MODEL_OPTIONS, b as TANSTACK_AI_PROVIDERS, c as DECISION_MODEL_CATALOG, d as FIRST_PARTY_MODEL_PROVIDERS, et as MODEL_REASONING_EFFORTS, f as IMAGE_INPUT_CAPABILITIES, g as MODEL_STREAMING_TOOL_USE, h as MODEL_DISPLAY_METADATA, i as BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, j as isBYOKProviderRoleSupported, k as getOutputTokenLimit, l as DECISION_MODEL_PROVIDERS, m as MODEL_CATALOG_PROVIDER_KIND, n as ANTHROPIC_ADAPTIVE_THINKING_MODELS, o as CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, p as MODEL_CATALOG_ID_ALIASES, q as resolveModelRate, r as BYOK_DEFAULT_MODELS, s as CONTEXT_WINDOW_TOKENS, t as AI_PROVIDERS, tt as MODEL_TEMPERATURE_POLICIES, u as DEFAULT_CONTEXT_WINDOW_TOKENS, v as RECOMMENDED_CHAT_MODELS, w as getModelDisplayMetadata, x as TEMPERATURE_POLICIES, y as STREAMING_TOOL_USE_SUPPORTS, z as CAPABILITY_OVERRIDES } from "./src-DvSnw4Iz.js";
2
2
  import { MODEL_OVERRIDE_GROUPS, MODEL_OVERRIDE_GROUP_TASK, MODEL_TASKS, MODEL_TASK_OVERRIDE_GROUP, resolveDefaultModel, resolveDefaultOverrideModels } from "./model-defaults-ledger.js";
3
3
  export { AI_PROVIDERS, ANTHROPIC_ADAPTIVE_THINKING_MODELS, BYOK_DEFAULT_MODELS, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, BYOK_MODEL_OPTIONS, CAPABILITY_OVERRIDES, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, CONTEXT_WINDOW_TOKENS, DECISION_MODEL_CATALOG, DECISION_MODEL_PROVIDERS, DEFAULT_CONTEXT_WINDOW_TOKENS, DOCUMENT_INPUT_OVERRIDES, FIRST_PARTY_MODEL_PROVIDERS, IMAGE_INPUT_CAPABILITIES, IMAGE_INPUT_OVERRIDES, MODELS_DEV_RATE_CORRECTIONS, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, MODELS_DEV_RATE_SOURCE_ALIASES, MODEL_CATALOG_ID_ALIASES, MODEL_CATALOG_PROVIDER_KIND, MODEL_DEFAULT_REASONING_EFFORTS, MODEL_DISPLAY_METADATA, MODEL_IMAGE_INPUT_CAPABILITIES, MODEL_OUTPUT_TOKEN_LIMITS, MODEL_OVERRIDE_GROUPS, MODEL_OVERRIDE_GROUP_TASK, MODEL_RATES, MODEL_RATE_UNITS_PER_USD, MODEL_REASONING_CAPABILITIES, MODEL_REASONING_EFFORTS, MODEL_STREAMING_TOOL_USE, MODEL_TASKS, MODEL_TASK_OVERRIDE_GROUP, MODEL_TEMPERATURE_POLICIES, REASONING_EFFORTS, REASONING_REPLAY_FORMATS, RECOMMENDED_CHAT_MODELS, RETAINED_MODELS_DEV_RATE_ENTRIES, STREAMING_TOOL_USE_SUPPORTS, TANSTACK_AI_PROVIDERS, TEMPERATURE_POLICIES, getContextWindowTokens, getModelDefaultReasoningEffort, getModelDisplayMetadata, getModelImageInputCapability, getModelRate, getModelReasoningCapabilities, getModelReasoningEfforts, getOutputTokenLimit, getStandardModelRate, isBYOKModelRoleSupported, isBYOKProviderRoleSupported, isChatPdfAttachmentModelSupported, normalizeModelCatalogId, resolveDefaultModel, resolveDefaultOverrideModels, resolveModelRate, resolveReasoningEffort, resolveWorkingBYOKModelForTask, shouldEmitTemperature, supportsStreamingToolUse };
@@ -1,2 +1,2 @@
1
- import { At as MODEL_TASK_OVERRIDE_GROUP, Bt as resolveDefaultModel, Dt as MODEL_OVERRIDE_GROUPS, Et as MODEL_DEFAULTS_LEDGER, Ft as ModelDefaultsLedger, It as ModelMode, Lt as ModelOverrideGroup, Mt as ModelDefaultEntry, Nt as ModelDefaultQuality, Ot as MODEL_OVERRIDE_GROUP_TASK, Pt as ModelDefaultRationale, Rt as ModelTask, Vt as resolveDefaultOverrideModels, jt as ModelDefaultCandidate, kt as MODEL_TASKS, zt as ResolvedDefaultModel } from "./index-Ci4rdcxe.js";
1
+ import { At as MODEL_TASK_OVERRIDE_GROUP, Bt as resolveDefaultModel, Dt as MODEL_OVERRIDE_GROUPS, Et as MODEL_DEFAULTS_LEDGER, Ft as ModelDefaultsLedger, It as ModelMode, Lt as ModelOverrideGroup, Mt as ModelDefaultEntry, Nt as ModelDefaultQuality, Ot as MODEL_OVERRIDE_GROUP_TASK, Pt as ModelDefaultRationale, Rt as ModelTask, Vt as resolveDefaultOverrideModels, jt as ModelDefaultCandidate, kt as MODEL_TASKS, zt as ResolvedDefaultModel } from "./index-COmyIxMN.js";
2
2
  export { MODEL_DEFAULTS_LEDGER, MODEL_OVERRIDE_GROUPS, MODEL_OVERRIDE_GROUP_TASK, MODEL_TASKS, MODEL_TASK_OVERRIDE_GROUP, ModelDefaultCandidate, ModelDefaultEntry, ModelDefaultQuality, ModelDefaultRationale, ModelDefaultsLedger, ModelMode, ModelOverrideGroup, ModelTask, ResolvedDefaultModel, resolveDefaultModel, resolveDefaultOverrideModels };
@@ -1160,9 +1160,9 @@ const MODEL_RATES = {
1160
1160
  },
1161
1161
  "mistral-large-4": {
1162
1162
  kind: "flat",
1163
- inputPerMTok: 68e3,
1164
- outputPerMTok: 209e3,
1165
- cachedInputPerMTok: 7e3
1163
+ inputPerMTok: 136e3,
1164
+ outputPerMTok: 418e3,
1165
+ cachedInputPerMTok: 14e3
1166
1166
  },
1167
1167
  "mistral-large-latest": {
1168
1168
  kind: "flat",
@@ -2026,6 +2026,22 @@ const IMAGE_INPUT_OVERRIDES = {};
2026
2026
  * override once upstream agrees, so sourced data takes ownership automatically.
2027
2027
  */
2028
2028
  const DOCUMENT_INPUT_OVERRIDES = {
2029
+ "mistral-large-4": {
2030
+ supported: false,
2031
+ reason: "2026-10-23: the TanStack Mistral adapter does not support PDF content parts; models.dev currently reports the pdf modality"
2032
+ },
2033
+ "mistral-large-latest": {
2034
+ supported: false,
2035
+ reason: "2026-10-23: the TanStack Mistral adapter does not support PDF content parts; models.dev currently reports the pdf modality"
2036
+ },
2037
+ "mistral-medium-latest": {
2038
+ supported: false,
2039
+ reason: "2026-10-23: the TanStack Mistral adapter does not support PDF content parts; models.dev currently reports the pdf modality"
2040
+ },
2041
+ "mistral-small-latest": {
2042
+ supported: false,
2043
+ reason: "2026-10-23: the TanStack Mistral adapter does not support PDF content parts; models.dev currently reports the pdf modality"
2044
+ },
2029
2045
  "gpt-5.4-mini": {
2030
2046
  supported: true,
2031
2047
  reason: "2026-08-20: OpenAI Responses accepts input_file PDF content for this vision-capable model; models.dev currently omits the pdf modality"
@@ -0,0 +1,374 @@
1
+ //#region src/transcription.d.ts
2
+ type TranscriptionDurationPrice = {
3
+ kind: "audio-second";
4
+ usdNumerator: number;
5
+ secondsDenominator: number;
6
+ };
7
+ type TranscriptionRegionalAvailability = {
8
+ status: "available";
9
+ price: TranscriptionDurationPrice;
10
+ } | {
11
+ status: "unavailable" | "unknown";
12
+ };
13
+ type TranscriptionModelMetadata = {
14
+ displayName: string;
15
+ price: TranscriptionDurationPrice;
16
+ languageClaim: string;
17
+ /** Granularities supported by the cited evidence; word includes segments. */
18
+ timestamps: "none" | "segment" | "word";
19
+ vocabularyMechanism: "none" | "groq-prompt" | "azure-phrase-list" | "context-hint";
20
+ diarization: "supported" | "unconfirmed";
21
+ residency: Record<"eu" | "us", TranscriptionRegionalAvailability>;
22
+ source: {
23
+ url: string;
24
+ checkedAt: string;
25
+ };
26
+ };
27
+ export declare const TRANSCRIPTION_MODELS: {
28
+ readonly "openai/whisper-large-v3-turbo": {
29
+ readonly displayName: "Whisper Large V3 Turbo";
30
+ readonly price: {
31
+ readonly kind: "audio-second";
32
+ readonly usdNumerator: 3;
33
+ readonly secondsDenominator: 1000000;
34
+ };
35
+ readonly languageClaim: "99+ languages";
36
+ readonly timestamps: "none";
37
+ readonly vocabularyMechanism: "groq-prompt";
38
+ readonly diarization: "unconfirmed";
39
+ readonly residency: {
40
+ readonly eu: {
41
+ readonly status: "unavailable";
42
+ };
43
+ readonly us: {
44
+ readonly status: "unknown";
45
+ };
46
+ };
47
+ readonly source: {
48
+ readonly url: "https://openrouter.ai/openai/whisper-large-v3-turbo";
49
+ readonly checkedAt: "2026-10-29";
50
+ };
51
+ };
52
+ readonly "openai/whisper-large-v3": {
53
+ readonly displayName: "Whisper Large V3";
54
+ readonly price: {
55
+ readonly kind: "audio-second";
56
+ readonly usdNumerator: 8;
57
+ readonly secondsDenominator: 1000000;
58
+ };
59
+ readonly languageClaim: "99+ languages";
60
+ readonly timestamps: "word";
61
+ readonly vocabularyMechanism: "groq-prompt";
62
+ readonly diarization: "unconfirmed";
63
+ readonly residency: {
64
+ readonly eu: {
65
+ readonly status: "unavailable";
66
+ };
67
+ readonly us: {
68
+ readonly status: "unknown";
69
+ };
70
+ };
71
+ readonly source: {
72
+ readonly url: "https://openrouter.ai/openai/whisper-large-v3";
73
+ readonly checkedAt: "2026-10-29";
74
+ };
75
+ };
76
+ readonly "nvidia/parakeet-tdt-0.6b-v3": {
77
+ readonly displayName: "Parakeet TDT 0.6B v3";
78
+ readonly price: {
79
+ readonly kind: "audio-second";
80
+ readonly usdNumerator: 25;
81
+ readonly secondsDenominator: 1000000;
82
+ };
83
+ readonly languageClaim: "All official EU languages";
84
+ readonly timestamps: "segment";
85
+ readonly vocabularyMechanism: "none";
86
+ readonly diarization: "unconfirmed";
87
+ readonly residency: {
88
+ readonly eu: {
89
+ readonly status: "unavailable";
90
+ };
91
+ readonly us: {
92
+ readonly status: "unknown";
93
+ };
94
+ };
95
+ readonly source: {
96
+ readonly url: "https://openrouter.ai/nvidia/parakeet-tdt-0.6b-v3";
97
+ readonly checkedAt: "2026-10-29";
98
+ };
99
+ };
100
+ readonly "microsoft/mai-transcribe-2": {
101
+ readonly displayName: "MAI-Transcribe 2";
102
+ readonly price: {
103
+ readonly kind: "audio-second";
104
+ readonly usdNumerator: 1;
105
+ readonly secondsDenominator: 36000;
106
+ };
107
+ readonly languageClaim: "60 languages";
108
+ readonly timestamps: "word";
109
+ readonly vocabularyMechanism: "azure-phrase-list";
110
+ readonly diarization: "supported";
111
+ readonly residency: {
112
+ readonly eu: {
113
+ readonly status: "unavailable";
114
+ };
115
+ readonly us: {
116
+ readonly status: "unknown";
117
+ };
118
+ };
119
+ readonly source: {
120
+ readonly url: "https://openrouter.ai/microsoft/mai-transcribe-2";
121
+ readonly checkedAt: "2026-10-29";
122
+ };
123
+ };
124
+ readonly "elevenlabs/scribe-v2": {
125
+ readonly displayName: "Scribe v2";
126
+ readonly price: {
127
+ readonly kind: "audio-second";
128
+ readonly usdNumerator: 61;
129
+ readonly secondsDenominator: 1000000;
130
+ };
131
+ readonly languageClaim: "90+ languages";
132
+ readonly timestamps: "word";
133
+ readonly vocabularyMechanism: "none";
134
+ readonly diarization: "supported";
135
+ readonly residency: {
136
+ readonly eu: {
137
+ readonly status: "unavailable";
138
+ };
139
+ readonly us: {
140
+ readonly status: "unknown";
141
+ };
142
+ };
143
+ readonly source: {
144
+ readonly url: "https://openrouter.ai/elevenlabs/scribe-v2";
145
+ readonly checkedAt: "2026-10-29";
146
+ };
147
+ };
148
+ readonly "mistralai/voxtral-mini-transcribe": {
149
+ readonly displayName: "Voxtral Mini Transcribe";
150
+ readonly price: {
151
+ readonly kind: "audio-second";
152
+ readonly usdNumerator: 50;
153
+ readonly secondsDenominator: 1000000;
154
+ };
155
+ readonly languageClaim: "Not specified";
156
+ readonly timestamps: "none";
157
+ readonly vocabularyMechanism: "none";
158
+ readonly diarization: "unconfirmed";
159
+ readonly residency: {
160
+ readonly eu: {
161
+ readonly status: "available";
162
+ readonly price: {
163
+ readonly kind: "audio-second";
164
+ readonly usdNumerator: 55;
165
+ readonly secondsDenominator: 1000000;
166
+ };
167
+ };
168
+ readonly us: {
169
+ readonly status: "unknown";
170
+ };
171
+ };
172
+ readonly source: {
173
+ readonly url: "https://openrouter.ai/mistralai/voxtral-mini-transcribe";
174
+ readonly checkedAt: "2026-10-29";
175
+ };
176
+ };
177
+ readonly "openai/gpt-transcribe": {
178
+ readonly displayName: "GPT Transcribe";
179
+ readonly price: {
180
+ readonly kind: "audio-second";
181
+ readonly usdNumerator: 75;
182
+ readonly secondsDenominator: 1000000;
183
+ };
184
+ readonly languageClaim: "Multilingual; language count not specified";
185
+ readonly timestamps: "none";
186
+ readonly vocabularyMechanism: "context-hint";
187
+ readonly diarization: "unconfirmed";
188
+ readonly residency: {
189
+ readonly eu: {
190
+ readonly status: "unavailable";
191
+ };
192
+ readonly us: {
193
+ readonly status: "unknown";
194
+ };
195
+ };
196
+ readonly source: {
197
+ readonly url: "https://openrouter.ai/openai/gpt-transcribe";
198
+ readonly checkedAt: "2026-10-29";
199
+ };
200
+ };
201
+ };
202
+ export type TranscriptionModelId = keyof typeof TRANSCRIPTION_MODELS;
203
+ export type TranscriptionModel = (typeof TRANSCRIPTION_MODELS)[TranscriptionModelId];
204
+ export type TranscriptionVocabularyMechanism = TranscriptionModelMetadata["vocabularyMechanism"];
205
+ export declare const isTranscriptionModelId: (modelId: string) => modelId is TranscriptionModelId;
206
+ export declare const getTranscriptionModel: (modelId: string) => {
207
+ readonly displayName: "Whisper Large V3 Turbo";
208
+ readonly price: {
209
+ readonly kind: "audio-second";
210
+ readonly usdNumerator: 3;
211
+ readonly secondsDenominator: 1000000;
212
+ };
213
+ readonly languageClaim: "99+ languages";
214
+ readonly timestamps: "none";
215
+ readonly vocabularyMechanism: "groq-prompt";
216
+ readonly diarization: "unconfirmed";
217
+ readonly residency: {
218
+ readonly eu: {
219
+ readonly status: "unavailable";
220
+ };
221
+ readonly us: {
222
+ readonly status: "unknown";
223
+ };
224
+ };
225
+ readonly source: {
226
+ readonly url: "https://openrouter.ai/openai/whisper-large-v3-turbo";
227
+ readonly checkedAt: "2026-10-29";
228
+ };
229
+ } | {
230
+ readonly displayName: "Whisper Large V3";
231
+ readonly price: {
232
+ readonly kind: "audio-second";
233
+ readonly usdNumerator: 8;
234
+ readonly secondsDenominator: 1000000;
235
+ };
236
+ readonly languageClaim: "99+ languages";
237
+ readonly timestamps: "word";
238
+ readonly vocabularyMechanism: "groq-prompt";
239
+ readonly diarization: "unconfirmed";
240
+ readonly residency: {
241
+ readonly eu: {
242
+ readonly status: "unavailable";
243
+ };
244
+ readonly us: {
245
+ readonly status: "unknown";
246
+ };
247
+ };
248
+ readonly source: {
249
+ readonly url: "https://openrouter.ai/openai/whisper-large-v3";
250
+ readonly checkedAt: "2026-10-29";
251
+ };
252
+ } | {
253
+ readonly displayName: "Parakeet TDT 0.6B v3";
254
+ readonly price: {
255
+ readonly kind: "audio-second";
256
+ readonly usdNumerator: 25;
257
+ readonly secondsDenominator: 1000000;
258
+ };
259
+ readonly languageClaim: "All official EU languages";
260
+ readonly timestamps: "segment";
261
+ readonly vocabularyMechanism: "none";
262
+ readonly diarization: "unconfirmed";
263
+ readonly residency: {
264
+ readonly eu: {
265
+ readonly status: "unavailable";
266
+ };
267
+ readonly us: {
268
+ readonly status: "unknown";
269
+ };
270
+ };
271
+ readonly source: {
272
+ readonly url: "https://openrouter.ai/nvidia/parakeet-tdt-0.6b-v3";
273
+ readonly checkedAt: "2026-10-29";
274
+ };
275
+ } | {
276
+ readonly displayName: "MAI-Transcribe 2";
277
+ readonly price: {
278
+ readonly kind: "audio-second";
279
+ readonly usdNumerator: 1;
280
+ readonly secondsDenominator: 36000;
281
+ };
282
+ readonly languageClaim: "60 languages";
283
+ readonly timestamps: "word";
284
+ readonly vocabularyMechanism: "azure-phrase-list";
285
+ readonly diarization: "supported";
286
+ readonly residency: {
287
+ readonly eu: {
288
+ readonly status: "unavailable";
289
+ };
290
+ readonly us: {
291
+ readonly status: "unknown";
292
+ };
293
+ };
294
+ readonly source: {
295
+ readonly url: "https://openrouter.ai/microsoft/mai-transcribe-2";
296
+ readonly checkedAt: "2026-10-29";
297
+ };
298
+ } | {
299
+ readonly displayName: "Scribe v2";
300
+ readonly price: {
301
+ readonly kind: "audio-second";
302
+ readonly usdNumerator: 61;
303
+ readonly secondsDenominator: 1000000;
304
+ };
305
+ readonly languageClaim: "90+ languages";
306
+ readonly timestamps: "word";
307
+ readonly vocabularyMechanism: "none";
308
+ readonly diarization: "supported";
309
+ readonly residency: {
310
+ readonly eu: {
311
+ readonly status: "unavailable";
312
+ };
313
+ readonly us: {
314
+ readonly status: "unknown";
315
+ };
316
+ };
317
+ readonly source: {
318
+ readonly url: "https://openrouter.ai/elevenlabs/scribe-v2";
319
+ readonly checkedAt: "2026-10-29";
320
+ };
321
+ } | {
322
+ readonly displayName: "Voxtral Mini Transcribe";
323
+ readonly price: {
324
+ readonly kind: "audio-second";
325
+ readonly usdNumerator: 50;
326
+ readonly secondsDenominator: 1000000;
327
+ };
328
+ readonly languageClaim: "Not specified";
329
+ readonly timestamps: "none";
330
+ readonly vocabularyMechanism: "none";
331
+ readonly diarization: "unconfirmed";
332
+ readonly residency: {
333
+ readonly eu: {
334
+ readonly status: "available";
335
+ readonly price: {
336
+ readonly kind: "audio-second";
337
+ readonly usdNumerator: 55;
338
+ readonly secondsDenominator: 1000000;
339
+ };
340
+ };
341
+ readonly us: {
342
+ readonly status: "unknown";
343
+ };
344
+ };
345
+ readonly source: {
346
+ readonly url: "https://openrouter.ai/mistralai/voxtral-mini-transcribe";
347
+ readonly checkedAt: "2026-10-29";
348
+ };
349
+ } | {
350
+ readonly displayName: "GPT Transcribe";
351
+ readonly price: {
352
+ readonly kind: "audio-second";
353
+ readonly usdNumerator: 75;
354
+ readonly secondsDenominator: 1000000;
355
+ };
356
+ readonly languageClaim: "Multilingual; language count not specified";
357
+ readonly timestamps: "none";
358
+ readonly vocabularyMechanism: "context-hint";
359
+ readonly diarization: "unconfirmed";
360
+ readonly residency: {
361
+ readonly eu: {
362
+ readonly status: "unavailable";
363
+ };
364
+ readonly us: {
365
+ readonly status: "unknown";
366
+ };
367
+ };
368
+ readonly source: {
369
+ readonly url: "https://openrouter.ai/openai/gpt-transcribe";
370
+ readonly checkedAt: "2026-10-29";
371
+ };
372
+ } | undefined;
373
+ //#endregion
374
+ export {};
@@ -0,0 +1,154 @@
1
+ //#region src/transcription.ts
2
+ const TRANSCRIPTION_MODELS = {
3
+ "openai/whisper-large-v3-turbo": {
4
+ displayName: "Whisper Large V3 Turbo",
5
+ price: {
6
+ kind: "audio-second",
7
+ usdNumerator: 3,
8
+ secondsDenominator: 1e6
9
+ },
10
+ languageClaim: "99+ languages",
11
+ timestamps: "none",
12
+ vocabularyMechanism: "groq-prompt",
13
+ diarization: "unconfirmed",
14
+ residency: {
15
+ eu: { status: "unavailable" },
16
+ us: { status: "unknown" }
17
+ },
18
+ source: {
19
+ url: "https://openrouter.ai/openai/whisper-large-v3-turbo",
20
+ checkedAt: "2026-10-29"
21
+ }
22
+ },
23
+ "openai/whisper-large-v3": {
24
+ displayName: "Whisper Large V3",
25
+ price: {
26
+ kind: "audio-second",
27
+ usdNumerator: 8,
28
+ secondsDenominator: 1e6
29
+ },
30
+ languageClaim: "99+ languages",
31
+ timestamps: "word",
32
+ vocabularyMechanism: "groq-prompt",
33
+ diarization: "unconfirmed",
34
+ residency: {
35
+ eu: { status: "unavailable" },
36
+ us: { status: "unknown" }
37
+ },
38
+ source: {
39
+ url: "https://openrouter.ai/openai/whisper-large-v3",
40
+ checkedAt: "2026-10-29"
41
+ }
42
+ },
43
+ "nvidia/parakeet-tdt-0.6b-v3": {
44
+ displayName: "Parakeet TDT 0.6B v3",
45
+ price: {
46
+ kind: "audio-second",
47
+ usdNumerator: 25,
48
+ secondsDenominator: 1e6
49
+ },
50
+ languageClaim: "All official EU languages",
51
+ timestamps: "segment",
52
+ vocabularyMechanism: "none",
53
+ diarization: "unconfirmed",
54
+ residency: {
55
+ eu: { status: "unavailable" },
56
+ us: { status: "unknown" }
57
+ },
58
+ source: {
59
+ url: "https://openrouter.ai/nvidia/parakeet-tdt-0.6b-v3",
60
+ checkedAt: "2026-10-29"
61
+ }
62
+ },
63
+ "microsoft/mai-transcribe-2": {
64
+ displayName: "MAI-Transcribe 2",
65
+ price: {
66
+ kind: "audio-second",
67
+ usdNumerator: 1,
68
+ secondsDenominator: 36e3
69
+ },
70
+ languageClaim: "60 languages",
71
+ timestamps: "word",
72
+ vocabularyMechanism: "azure-phrase-list",
73
+ diarization: "supported",
74
+ residency: {
75
+ eu: { status: "unavailable" },
76
+ us: { status: "unknown" }
77
+ },
78
+ source: {
79
+ url: "https://openrouter.ai/microsoft/mai-transcribe-2",
80
+ checkedAt: "2026-10-29"
81
+ }
82
+ },
83
+ "elevenlabs/scribe-v2": {
84
+ displayName: "Scribe v2",
85
+ price: {
86
+ kind: "audio-second",
87
+ usdNumerator: 61,
88
+ secondsDenominator: 1e6
89
+ },
90
+ languageClaim: "90+ languages",
91
+ timestamps: "word",
92
+ vocabularyMechanism: "none",
93
+ diarization: "supported",
94
+ residency: {
95
+ eu: { status: "unavailable" },
96
+ us: { status: "unknown" }
97
+ },
98
+ source: {
99
+ url: "https://openrouter.ai/elevenlabs/scribe-v2",
100
+ checkedAt: "2026-10-29"
101
+ }
102
+ },
103
+ "mistralai/voxtral-mini-transcribe": {
104
+ displayName: "Voxtral Mini Transcribe",
105
+ price: {
106
+ kind: "audio-second",
107
+ usdNumerator: 50,
108
+ secondsDenominator: 1e6
109
+ },
110
+ languageClaim: "Not specified",
111
+ timestamps: "none",
112
+ vocabularyMechanism: "none",
113
+ diarization: "unconfirmed",
114
+ residency: {
115
+ eu: {
116
+ status: "available",
117
+ price: {
118
+ kind: "audio-second",
119
+ usdNumerator: 55,
120
+ secondsDenominator: 1e6
121
+ }
122
+ },
123
+ us: { status: "unknown" }
124
+ },
125
+ source: {
126
+ url: "https://openrouter.ai/mistralai/voxtral-mini-transcribe",
127
+ checkedAt: "2026-10-29"
128
+ }
129
+ },
130
+ "openai/gpt-transcribe": {
131
+ displayName: "GPT Transcribe",
132
+ price: {
133
+ kind: "audio-second",
134
+ usdNumerator: 75,
135
+ secondsDenominator: 1e6
136
+ },
137
+ languageClaim: "Multilingual; language count not specified",
138
+ timestamps: "none",
139
+ vocabularyMechanism: "context-hint",
140
+ diarization: "unconfirmed",
141
+ residency: {
142
+ eu: { status: "unavailable" },
143
+ us: { status: "unknown" }
144
+ },
145
+ source: {
146
+ url: "https://openrouter.ai/openai/gpt-transcribe",
147
+ checkedAt: "2026-10-29"
148
+ }
149
+ }
150
+ };
151
+ const isTranscriptionModelId = (modelId) => Object.hasOwn(TRANSCRIPTION_MODELS, modelId);
152
+ const getTranscriptionModel = (modelId) => Object.hasOwn(TRANSCRIPTION_MODELS, modelId) && isTranscriptionModelId(modelId) ? TRANSCRIPTION_MODELS[modelId] : void 0;
153
+ //#endregion
154
+ export { TRANSCRIPTION_MODELS, getTranscriptionModel, isTranscriptionModelId };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stll/ai-catalog",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "Provider-neutral AI model roles, capabilities, and curated model metadata.",
5
5
  "keywords": [
6
6
  "ai",
@@ -40,6 +40,10 @@
40
40
  "./model-defaults-ledger": {
41
41
  "types": "./dist/model-defaults-ledger.d.ts",
42
42
  "import": "./dist/model-defaults-ledger.js"
43
+ },
44
+ "./transcription": {
45
+ "types": "./dist/transcription.d.ts",
46
+ "import": "./dist/transcription.js"
43
47
  }
44
48
  },
45
49
  "publishConfig": {
@@ -60,7 +64,6 @@
60
64
  "typecheck": "bun check --no-pretty --all --project=tsconfig.json",
61
65
  "lint": "cd ../.. && bun --bun oxlint -c oxlint.config.ts --report-unused-disable-directives-severity=error --type-aware --type-check packages/ai-catalog",
62
66
  "lint:fix": "cd ../.. && bun --bun oxlint -c oxlint.config.ts --type-aware --fix packages/ai-catalog",
63
- "format": "bun ../../scripts/run-oxfmt.ts .",
64
67
  "prepack": "bun run build"
65
68
  },
66
69
  "dependencies": {
@@ -74,9 +77,10 @@
74
77
  "@tanstack/ai-gemini": "0.36.0",
75
78
  "@tanstack/ai-mistral": "0.6.14",
76
79
  "@tanstack/ai-openrouter": "0.21.1",
77
- "bun-types": "1.4.3",
80
+ "bun-types": "1.4.4",
78
81
  "fast-check": "^4.10.2",
79
- "tsdown": "0.23.0"
82
+ "tsdown": "0.23.1",
83
+ "tsrs": "0.18.0-ts7.1.0-dev.20260929"
80
84
  },
81
85
  "main": "./dist/index.js",
82
86
  "types": "./dist/index.d.ts"