@stll/ai-catalog 0.8.2 → 0.10.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 +4 -2
- package/dist/benchmark-frontier.d.ts +1 -1
- package/dist/benchmarks.d.ts +1 -1
- package/dist/benchmarks.js +1 -1
- package/dist/{index-COmyIxMN.d.ts → index-Cez3kbD9.d.ts} +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/model-defaults-ledger.d.ts +1 -1
- package/dist/{src-DvSnw4Iz.js → src-d-7yksBq.js} +8 -4
- package/dist/transcription.d.ts +381 -0
- package/dist/transcription.js +173 -0
- package/package.json +7 -2
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
|
-
|
|
43
|
-
|
|
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
|
|
package/dist/benchmarks.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { w as OfferedBYOKModelId } from "./index-COmyIxMN.js";
|
|
2
1
|
import { ModelBenchmarkMeasurement } from "./benchmark-frontier.js";
|
|
2
|
+
import { w as OfferedBYOKModelId } from "./index-Cez3kbD9.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";
|
package/dist/benchmarks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as getModelRate, G as MODEL_RATE_UNITS_PER_USD, K as getStandardModelRate } from "./src-
|
|
1
|
+
import { E as getModelRate, G as MODEL_RATE_UNITS_PER_USD, K as getStandardModelRate } from "./src-d-7yksBq.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:
|
|
1759
|
-
readonly outputPerMTok:
|
|
1760
|
-
readonly cachedInputPerMTok:
|
|
1758
|
+
readonly inputPerMTok: 70000;
|
|
1759
|
+
readonly outputPerMTok: 210000;
|
|
1760
|
+
readonly cachedInputPerMTok: 7000;
|
|
1761
1761
|
};
|
|
1762
1762
|
readonly "mistral-large-latest": {
|
|
1763
1763
|
readonly kind: "flat";
|
|
@@ -2812,7 +2812,7 @@ declare const MODEL_REASONING_EFFORTS: {
|
|
|
2812
2812
|
readonly "us.amazon.nova-micro-v1:0": null;
|
|
2813
2813
|
readonly "openai.gpt-oss-120b-1:0": readonly ["low", "medium", "high"];
|
|
2814
2814
|
readonly "openai.gpt-oss-20b-1:0": readonly ["low", "medium", "high"];
|
|
2815
|
-
readonly "mistral-large-4": readonly ["
|
|
2815
|
+
readonly "mistral-large-4": readonly ["low", "medium", "high"];
|
|
2816
2816
|
readonly "mistral-large-latest": null;
|
|
2817
2817
|
readonly "mistral-medium-latest": readonly ["none", "high"];
|
|
2818
2818
|
readonly "mistral-small-latest": readonly ["none", "high"];
|
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-
|
|
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-Cez3kbD9.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-
|
|
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-d-7yksBq.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-
|
|
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-Cez3kbD9.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 };
|
|
@@ -560,7 +560,11 @@ const MODEL_REASONING_EFFORTS = {
|
|
|
560
560
|
"medium",
|
|
561
561
|
"high"
|
|
562
562
|
],
|
|
563
|
-
"mistral-large-4": [
|
|
563
|
+
"mistral-large-4": [
|
|
564
|
+
"low",
|
|
565
|
+
"medium",
|
|
566
|
+
"high"
|
|
567
|
+
],
|
|
564
568
|
"mistral-large-latest": null,
|
|
565
569
|
"mistral-medium-latest": ["none", "high"],
|
|
566
570
|
"mistral-small-latest": ["none", "high"]
|
|
@@ -1160,9 +1164,9 @@ const MODEL_RATES = {
|
|
|
1160
1164
|
},
|
|
1161
1165
|
"mistral-large-4": {
|
|
1162
1166
|
kind: "flat",
|
|
1163
|
-
inputPerMTok:
|
|
1164
|
-
outputPerMTok:
|
|
1165
|
-
cachedInputPerMTok:
|
|
1167
|
+
inputPerMTok: 7e4,
|
|
1168
|
+
outputPerMTok: 21e4,
|
|
1169
|
+
cachedInputPerMTok: 7e3
|
|
1166
1170
|
},
|
|
1167
1171
|
"mistral-large-latest": {
|
|
1168
1172
|
kind: "flat",
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
//#region src/transcription.d.ts
|
|
2
|
+
type TranscriptionDurationPrice = {
|
|
3
|
+
kind: "audio-second";
|
|
4
|
+
usdNumerator: number;
|
|
5
|
+
secondsDenominator: number;
|
|
6
|
+
};
|
|
7
|
+
type TranscriptionResidency = "eu" | "us";
|
|
8
|
+
type TranscriptionRegionalAvailability = {
|
|
9
|
+
status: "available";
|
|
10
|
+
price: TranscriptionDurationPrice;
|
|
11
|
+
} | {
|
|
12
|
+
status: "unavailable" | "unknown";
|
|
13
|
+
};
|
|
14
|
+
type TranscriptionModelMetadata = {
|
|
15
|
+
displayName: string;
|
|
16
|
+
price: TranscriptionDurationPrice;
|
|
17
|
+
languageClaim: string;
|
|
18
|
+
/** Granularities supported by the cited evidence; word includes segments. */
|
|
19
|
+
timestamps: "none" | "segment" | "word";
|
|
20
|
+
vocabularyMechanism: "none" | "groq-prompt" | "azure-phrase-list" | "context-hint";
|
|
21
|
+
diarization: "supported" | "unconfirmed";
|
|
22
|
+
residency: Record<TranscriptionResidency, TranscriptionRegionalAvailability>;
|
|
23
|
+
source: {
|
|
24
|
+
url: string;
|
|
25
|
+
checkedAt: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export declare const TRANSCRIPTION_MODELS: {
|
|
29
|
+
readonly "openai/whisper-large-v3-turbo": {
|
|
30
|
+
readonly displayName: "Whisper Large V3 Turbo";
|
|
31
|
+
readonly price: {
|
|
32
|
+
readonly kind: "audio-second";
|
|
33
|
+
readonly usdNumerator: 3;
|
|
34
|
+
readonly secondsDenominator: 1000000;
|
|
35
|
+
};
|
|
36
|
+
readonly languageClaim: "99+ languages";
|
|
37
|
+
readonly timestamps: "none";
|
|
38
|
+
readonly vocabularyMechanism: "groq-prompt";
|
|
39
|
+
readonly diarization: "unconfirmed";
|
|
40
|
+
readonly residency: {
|
|
41
|
+
readonly eu: {
|
|
42
|
+
readonly status: "unavailable";
|
|
43
|
+
};
|
|
44
|
+
readonly us: {
|
|
45
|
+
readonly status: "unknown";
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
readonly source: {
|
|
49
|
+
readonly url: "https://openrouter.ai/openai/whisper-large-v3-turbo";
|
|
50
|
+
readonly checkedAt: "2026-10-29";
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
readonly "openai/whisper-large-v3": {
|
|
54
|
+
readonly displayName: "Whisper Large V3";
|
|
55
|
+
readonly price: {
|
|
56
|
+
readonly kind: "audio-second";
|
|
57
|
+
readonly usdNumerator: 8;
|
|
58
|
+
readonly secondsDenominator: 1000000;
|
|
59
|
+
};
|
|
60
|
+
readonly languageClaim: "99+ languages";
|
|
61
|
+
readonly timestamps: "word";
|
|
62
|
+
readonly vocabularyMechanism: "groq-prompt";
|
|
63
|
+
readonly diarization: "unconfirmed";
|
|
64
|
+
readonly residency: {
|
|
65
|
+
readonly eu: {
|
|
66
|
+
readonly status: "unavailable";
|
|
67
|
+
};
|
|
68
|
+
readonly us: {
|
|
69
|
+
readonly status: "unknown";
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
readonly source: {
|
|
73
|
+
readonly url: "https://openrouter.ai/openai/whisper-large-v3";
|
|
74
|
+
readonly checkedAt: "2026-10-29";
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
readonly "nvidia/parakeet-tdt-0.6b-v3": {
|
|
78
|
+
readonly displayName: "Parakeet TDT 0.6B v3";
|
|
79
|
+
readonly price: {
|
|
80
|
+
readonly kind: "audio-second";
|
|
81
|
+
readonly usdNumerator: 25;
|
|
82
|
+
readonly secondsDenominator: 1000000;
|
|
83
|
+
};
|
|
84
|
+
readonly languageClaim: "All official EU languages";
|
|
85
|
+
readonly timestamps: "segment";
|
|
86
|
+
readonly vocabularyMechanism: "none";
|
|
87
|
+
readonly diarization: "unconfirmed";
|
|
88
|
+
readonly residency: {
|
|
89
|
+
readonly eu: {
|
|
90
|
+
readonly status: "unavailable";
|
|
91
|
+
};
|
|
92
|
+
readonly us: {
|
|
93
|
+
readonly status: "unknown";
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
readonly source: {
|
|
97
|
+
readonly url: "https://openrouter.ai/nvidia/parakeet-tdt-0.6b-v3";
|
|
98
|
+
readonly checkedAt: "2026-10-29";
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
readonly "microsoft/mai-transcribe-2": {
|
|
102
|
+
readonly displayName: "MAI-Transcribe 2";
|
|
103
|
+
readonly price: {
|
|
104
|
+
readonly kind: "audio-second";
|
|
105
|
+
readonly usdNumerator: 1;
|
|
106
|
+
readonly secondsDenominator: 36000;
|
|
107
|
+
};
|
|
108
|
+
readonly languageClaim: "60 languages";
|
|
109
|
+
readonly timestamps: "word";
|
|
110
|
+
readonly vocabularyMechanism: "azure-phrase-list";
|
|
111
|
+
readonly diarization: "supported";
|
|
112
|
+
readonly residency: {
|
|
113
|
+
readonly eu: {
|
|
114
|
+
readonly status: "unavailable";
|
|
115
|
+
};
|
|
116
|
+
readonly us: {
|
|
117
|
+
readonly status: "unknown";
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
readonly source: {
|
|
121
|
+
readonly url: "https://openrouter.ai/microsoft/mai-transcribe-2";
|
|
122
|
+
readonly checkedAt: "2026-10-29";
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
readonly "elevenlabs/scribe-v2": {
|
|
126
|
+
readonly displayName: "Scribe v2";
|
|
127
|
+
readonly price: {
|
|
128
|
+
readonly kind: "audio-second";
|
|
129
|
+
readonly usdNumerator: 61;
|
|
130
|
+
readonly secondsDenominator: 1000000;
|
|
131
|
+
};
|
|
132
|
+
readonly languageClaim: "90+ languages";
|
|
133
|
+
readonly timestamps: "word";
|
|
134
|
+
readonly vocabularyMechanism: "none";
|
|
135
|
+
readonly diarization: "supported";
|
|
136
|
+
readonly residency: {
|
|
137
|
+
readonly eu: {
|
|
138
|
+
readonly status: "unavailable";
|
|
139
|
+
};
|
|
140
|
+
readonly us: {
|
|
141
|
+
readonly status: "unknown";
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
readonly source: {
|
|
145
|
+
readonly url: "https://openrouter.ai/elevenlabs/scribe-v2";
|
|
146
|
+
readonly checkedAt: "2026-10-29";
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
readonly "mistralai/voxtral-mini-transcribe": {
|
|
150
|
+
readonly displayName: "Voxtral Mini Transcribe";
|
|
151
|
+
readonly price: {
|
|
152
|
+
readonly kind: "audio-second";
|
|
153
|
+
readonly usdNumerator: 50;
|
|
154
|
+
readonly secondsDenominator: 1000000;
|
|
155
|
+
};
|
|
156
|
+
readonly languageClaim: "Not specified";
|
|
157
|
+
readonly timestamps: "none";
|
|
158
|
+
readonly vocabularyMechanism: "none";
|
|
159
|
+
readonly diarization: "unconfirmed";
|
|
160
|
+
readonly residency: {
|
|
161
|
+
readonly eu: {
|
|
162
|
+
readonly status: "available";
|
|
163
|
+
readonly price: {
|
|
164
|
+
readonly kind: "audio-second";
|
|
165
|
+
readonly usdNumerator: 55;
|
|
166
|
+
readonly secondsDenominator: 1000000;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
readonly us: {
|
|
170
|
+
readonly status: "unknown";
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
readonly source: {
|
|
174
|
+
readonly url: "https://openrouter.ai/mistralai/voxtral-mini-transcribe";
|
|
175
|
+
readonly checkedAt: "2026-10-29";
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
readonly "openai/gpt-transcribe": {
|
|
179
|
+
readonly displayName: "GPT Transcribe";
|
|
180
|
+
readonly price: {
|
|
181
|
+
readonly kind: "audio-second";
|
|
182
|
+
readonly usdNumerator: 75;
|
|
183
|
+
readonly secondsDenominator: 1000000;
|
|
184
|
+
};
|
|
185
|
+
readonly languageClaim: "Multilingual; language count not specified";
|
|
186
|
+
readonly timestamps: "none";
|
|
187
|
+
readonly vocabularyMechanism: "context-hint";
|
|
188
|
+
readonly diarization: "unconfirmed";
|
|
189
|
+
readonly residency: {
|
|
190
|
+
readonly eu: {
|
|
191
|
+
readonly status: "unavailable";
|
|
192
|
+
};
|
|
193
|
+
readonly us: {
|
|
194
|
+
readonly status: "unknown";
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
readonly source: {
|
|
198
|
+
readonly url: "https://openrouter.ai/openai/gpt-transcribe";
|
|
199
|
+
readonly checkedAt: "2026-10-29";
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
export type TranscriptionModelId = keyof typeof TRANSCRIPTION_MODELS;
|
|
204
|
+
export type TranscriptionModel = (typeof TRANSCRIPTION_MODELS)[TranscriptionModelId];
|
|
205
|
+
export type TranscriptionVocabularyMechanism = TranscriptionModelMetadata["vocabularyMechanism"];
|
|
206
|
+
export declare const isTranscriptionModelId: (modelId: string) => modelId is TranscriptionModelId;
|
|
207
|
+
/**
|
|
208
|
+
* The model a caller gets when it names none: the cheapest one offered in
|
|
209
|
+
* the organization's region at that region's price, or `undefined` when the
|
|
210
|
+
* region offers none. Ties keep catalog order.
|
|
211
|
+
*/
|
|
212
|
+
export declare const defaultTranscriptionModelId: (residency: TranscriptionResidency) => TranscriptionModelId | undefined;
|
|
213
|
+
export declare const getTranscriptionModel: (modelId: string) => {
|
|
214
|
+
readonly displayName: "Whisper Large V3 Turbo";
|
|
215
|
+
readonly price: {
|
|
216
|
+
readonly kind: "audio-second";
|
|
217
|
+
readonly usdNumerator: 3;
|
|
218
|
+
readonly secondsDenominator: 1000000;
|
|
219
|
+
};
|
|
220
|
+
readonly languageClaim: "99+ languages";
|
|
221
|
+
readonly timestamps: "none";
|
|
222
|
+
readonly vocabularyMechanism: "groq-prompt";
|
|
223
|
+
readonly diarization: "unconfirmed";
|
|
224
|
+
readonly residency: {
|
|
225
|
+
readonly eu: {
|
|
226
|
+
readonly status: "unavailable";
|
|
227
|
+
};
|
|
228
|
+
readonly us: {
|
|
229
|
+
readonly status: "unknown";
|
|
230
|
+
};
|
|
231
|
+
};
|
|
232
|
+
readonly source: {
|
|
233
|
+
readonly url: "https://openrouter.ai/openai/whisper-large-v3-turbo";
|
|
234
|
+
readonly checkedAt: "2026-10-29";
|
|
235
|
+
};
|
|
236
|
+
} | {
|
|
237
|
+
readonly displayName: "Whisper Large V3";
|
|
238
|
+
readonly price: {
|
|
239
|
+
readonly kind: "audio-second";
|
|
240
|
+
readonly usdNumerator: 8;
|
|
241
|
+
readonly secondsDenominator: 1000000;
|
|
242
|
+
};
|
|
243
|
+
readonly languageClaim: "99+ languages";
|
|
244
|
+
readonly timestamps: "word";
|
|
245
|
+
readonly vocabularyMechanism: "groq-prompt";
|
|
246
|
+
readonly diarization: "unconfirmed";
|
|
247
|
+
readonly residency: {
|
|
248
|
+
readonly eu: {
|
|
249
|
+
readonly status: "unavailable";
|
|
250
|
+
};
|
|
251
|
+
readonly us: {
|
|
252
|
+
readonly status: "unknown";
|
|
253
|
+
};
|
|
254
|
+
};
|
|
255
|
+
readonly source: {
|
|
256
|
+
readonly url: "https://openrouter.ai/openai/whisper-large-v3";
|
|
257
|
+
readonly checkedAt: "2026-10-29";
|
|
258
|
+
};
|
|
259
|
+
} | {
|
|
260
|
+
readonly displayName: "Parakeet TDT 0.6B v3";
|
|
261
|
+
readonly price: {
|
|
262
|
+
readonly kind: "audio-second";
|
|
263
|
+
readonly usdNumerator: 25;
|
|
264
|
+
readonly secondsDenominator: 1000000;
|
|
265
|
+
};
|
|
266
|
+
readonly languageClaim: "All official EU languages";
|
|
267
|
+
readonly timestamps: "segment";
|
|
268
|
+
readonly vocabularyMechanism: "none";
|
|
269
|
+
readonly diarization: "unconfirmed";
|
|
270
|
+
readonly residency: {
|
|
271
|
+
readonly eu: {
|
|
272
|
+
readonly status: "unavailable";
|
|
273
|
+
};
|
|
274
|
+
readonly us: {
|
|
275
|
+
readonly status: "unknown";
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
readonly source: {
|
|
279
|
+
readonly url: "https://openrouter.ai/nvidia/parakeet-tdt-0.6b-v3";
|
|
280
|
+
readonly checkedAt: "2026-10-29";
|
|
281
|
+
};
|
|
282
|
+
} | {
|
|
283
|
+
readonly displayName: "MAI-Transcribe 2";
|
|
284
|
+
readonly price: {
|
|
285
|
+
readonly kind: "audio-second";
|
|
286
|
+
readonly usdNumerator: 1;
|
|
287
|
+
readonly secondsDenominator: 36000;
|
|
288
|
+
};
|
|
289
|
+
readonly languageClaim: "60 languages";
|
|
290
|
+
readonly timestamps: "word";
|
|
291
|
+
readonly vocabularyMechanism: "azure-phrase-list";
|
|
292
|
+
readonly diarization: "supported";
|
|
293
|
+
readonly residency: {
|
|
294
|
+
readonly eu: {
|
|
295
|
+
readonly status: "unavailable";
|
|
296
|
+
};
|
|
297
|
+
readonly us: {
|
|
298
|
+
readonly status: "unknown";
|
|
299
|
+
};
|
|
300
|
+
};
|
|
301
|
+
readonly source: {
|
|
302
|
+
readonly url: "https://openrouter.ai/microsoft/mai-transcribe-2";
|
|
303
|
+
readonly checkedAt: "2026-10-29";
|
|
304
|
+
};
|
|
305
|
+
} | {
|
|
306
|
+
readonly displayName: "Scribe v2";
|
|
307
|
+
readonly price: {
|
|
308
|
+
readonly kind: "audio-second";
|
|
309
|
+
readonly usdNumerator: 61;
|
|
310
|
+
readonly secondsDenominator: 1000000;
|
|
311
|
+
};
|
|
312
|
+
readonly languageClaim: "90+ languages";
|
|
313
|
+
readonly timestamps: "word";
|
|
314
|
+
readonly vocabularyMechanism: "none";
|
|
315
|
+
readonly diarization: "supported";
|
|
316
|
+
readonly residency: {
|
|
317
|
+
readonly eu: {
|
|
318
|
+
readonly status: "unavailable";
|
|
319
|
+
};
|
|
320
|
+
readonly us: {
|
|
321
|
+
readonly status: "unknown";
|
|
322
|
+
};
|
|
323
|
+
};
|
|
324
|
+
readonly source: {
|
|
325
|
+
readonly url: "https://openrouter.ai/elevenlabs/scribe-v2";
|
|
326
|
+
readonly checkedAt: "2026-10-29";
|
|
327
|
+
};
|
|
328
|
+
} | {
|
|
329
|
+
readonly displayName: "Voxtral Mini Transcribe";
|
|
330
|
+
readonly price: {
|
|
331
|
+
readonly kind: "audio-second";
|
|
332
|
+
readonly usdNumerator: 50;
|
|
333
|
+
readonly secondsDenominator: 1000000;
|
|
334
|
+
};
|
|
335
|
+
readonly languageClaim: "Not specified";
|
|
336
|
+
readonly timestamps: "none";
|
|
337
|
+
readonly vocabularyMechanism: "none";
|
|
338
|
+
readonly diarization: "unconfirmed";
|
|
339
|
+
readonly residency: {
|
|
340
|
+
readonly eu: {
|
|
341
|
+
readonly status: "available";
|
|
342
|
+
readonly price: {
|
|
343
|
+
readonly kind: "audio-second";
|
|
344
|
+
readonly usdNumerator: 55;
|
|
345
|
+
readonly secondsDenominator: 1000000;
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
readonly us: {
|
|
349
|
+
readonly status: "unknown";
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
readonly source: {
|
|
353
|
+
readonly url: "https://openrouter.ai/mistralai/voxtral-mini-transcribe";
|
|
354
|
+
readonly checkedAt: "2026-10-29";
|
|
355
|
+
};
|
|
356
|
+
} | {
|
|
357
|
+
readonly displayName: "GPT Transcribe";
|
|
358
|
+
readonly price: {
|
|
359
|
+
readonly kind: "audio-second";
|
|
360
|
+
readonly usdNumerator: 75;
|
|
361
|
+
readonly secondsDenominator: 1000000;
|
|
362
|
+
};
|
|
363
|
+
readonly languageClaim: "Multilingual; language count not specified";
|
|
364
|
+
readonly timestamps: "none";
|
|
365
|
+
readonly vocabularyMechanism: "context-hint";
|
|
366
|
+
readonly diarization: "unconfirmed";
|
|
367
|
+
readonly residency: {
|
|
368
|
+
readonly eu: {
|
|
369
|
+
readonly status: "unavailable";
|
|
370
|
+
};
|
|
371
|
+
readonly us: {
|
|
372
|
+
readonly status: "unknown";
|
|
373
|
+
};
|
|
374
|
+
};
|
|
375
|
+
readonly source: {
|
|
376
|
+
readonly url: "https://openrouter.ai/openai/gpt-transcribe";
|
|
377
|
+
readonly checkedAt: "2026-10-29";
|
|
378
|
+
};
|
|
379
|
+
} | undefined;
|
|
380
|
+
//#endregion
|
|
381
|
+
export {};
|
|
@@ -0,0 +1,173 @@
|
|
|
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
|
+
/**
|
|
153
|
+
* The model a caller gets when it names none: the cheapest one offered in
|
|
154
|
+
* the organization's region at that region's price, or `undefined` when the
|
|
155
|
+
* region offers none. Ties keep catalog order.
|
|
156
|
+
*/
|
|
157
|
+
const defaultTranscriptionModelId = (residency) => {
|
|
158
|
+
let cheapest;
|
|
159
|
+
for (const modelId of Object.keys(TRANSCRIPTION_MODELS)) {
|
|
160
|
+
if (!isTranscriptionModelId(modelId)) continue;
|
|
161
|
+
const regional = TRANSCRIPTION_MODELS[modelId].residency[residency];
|
|
162
|
+
if (regional.status !== "available") continue;
|
|
163
|
+
const { price } = regional;
|
|
164
|
+
if (cheapest === void 0 || price.usdNumerator * cheapest.price.secondsDenominator < cheapest.price.usdNumerator * price.secondsDenominator) cheapest = {
|
|
165
|
+
modelId,
|
|
166
|
+
price
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return cheapest?.modelId;
|
|
170
|
+
};
|
|
171
|
+
const getTranscriptionModel = (modelId) => Object.hasOwn(TRANSCRIPTION_MODELS, modelId) && isTranscriptionModelId(modelId) ? TRANSCRIPTION_MODELS[modelId] : void 0;
|
|
172
|
+
//#endregion
|
|
173
|
+
export { TRANSCRIPTION_MODELS, defaultTranscriptionModelId, getTranscriptionModel, isTranscriptionModelId };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stll/ai-catalog",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.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": {
|
|
@@ -75,7 +79,8 @@
|
|
|
75
79
|
"@tanstack/ai-openrouter": "0.21.1",
|
|
76
80
|
"bun-types": "1.4.4",
|
|
77
81
|
"fast-check": "^4.10.2",
|
|
78
|
-
"tsdown": "0.23.
|
|
82
|
+
"tsdown": "0.23.1",
|
|
83
|
+
"tsrs": "0.18.0-ts7.1.0-dev.20260929"
|
|
79
84
|
},
|
|
80
85
|
"main": "./dist/index.js",
|
|
81
86
|
"types": "./dist/index.d.ts"
|