@dexto/core 1.8.0 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/agent/DextoAgent.cjs +10 -16
  2. package/dist/agent/DextoAgent.d.ts +2 -2
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +8 -5
  5. package/dist/agent/types.d.ts +1 -1
  6. package/dist/agent/types.d.ts.map +1 -1
  7. package/dist/context/compaction/overflow.d.ts +1 -1
  8. package/dist/context/compaction/overflow.d.ts.map +1 -1
  9. package/dist/context/manager.cjs +8 -8
  10. package/dist/context/manager.d.ts +1 -1
  11. package/dist/context/manager.d.ts.map +1 -1
  12. package/dist/context/manager.js +1 -1
  13. package/dist/context/types.d.ts +1 -1
  14. package/dist/context/types.d.ts.map +1 -1
  15. package/dist/context/utils.cjs +3 -3
  16. package/dist/context/utils.d.ts +1 -1
  17. package/dist/context/utils.d.ts.map +1 -1
  18. package/dist/context/utils.js +1 -1
  19. package/dist/events/index.d.ts +2 -2
  20. package/dist/events/index.d.ts.map +1 -1
  21. package/dist/index.browser.cjs +9 -9
  22. package/dist/index.browser.d.ts +4 -4
  23. package/dist/index.browser.d.ts.map +1 -1
  24. package/dist/index.browser.js +1 -1
  25. package/dist/llm/auth/index.cjs +16 -0
  26. package/dist/llm/auth/index.d.ts +2 -0
  27. package/dist/llm/auth/index.d.ts.map +1 -0
  28. package/dist/llm/auth/index.js +0 -0
  29. package/dist/llm/auth/types.cjs +16 -0
  30. package/dist/llm/auth/types.d.ts +25 -0
  31. package/dist/llm/auth/types.d.ts.map +1 -0
  32. package/dist/llm/auth/types.js +0 -0
  33. package/dist/llm/curation-config.cjs +3 -3
  34. package/dist/llm/curation-config.d.ts +1 -1
  35. package/dist/llm/curation-config.js +3 -3
  36. package/dist/llm/curation.cjs +2 -2
  37. package/dist/llm/curation.d.ts +2 -2
  38. package/dist/llm/curation.d.ts.map +1 -1
  39. package/dist/llm/curation.js +1 -1
  40. package/dist/llm/errors.cjs +3 -3
  41. package/dist/llm/errors.d.ts +1 -1
  42. package/dist/llm/errors.d.ts.map +1 -1
  43. package/dist/llm/errors.js +1 -1
  44. package/dist/llm/executor/provider-options.cjs +22 -25
  45. package/dist/llm/executor/provider-options.d.ts +1 -1
  46. package/dist/llm/executor/provider-options.d.ts.map +1 -1
  47. package/dist/llm/executor/provider-options.js +17 -16
  48. package/dist/llm/executor/stream-processor.d.ts +1 -1
  49. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  50. package/dist/llm/executor/turn-executor.d.ts +1 -1
  51. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  52. package/dist/llm/executor/types.d.ts +1 -1
  53. package/dist/llm/executor/types.d.ts.map +1 -1
  54. package/dist/llm/formatters/vercel.cjs +2 -2
  55. package/dist/llm/formatters/vercel.d.ts +1 -1
  56. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  57. package/dist/llm/index.cjs +0 -4
  58. package/dist/llm/index.d.ts +1 -2
  59. package/dist/llm/index.d.ts.map +1 -1
  60. package/dist/llm/index.js +0 -2
  61. package/dist/llm/registry/auto-update.cjs +5 -5
  62. package/dist/llm/registry/auto-update.d.ts.map +1 -1
  63. package/dist/llm/registry/auto-update.js +2 -2
  64. package/dist/llm/registry/index.cjs +96 -789
  65. package/dist/llm/registry/index.d.ts +4 -323
  66. package/dist/llm/registry/index.d.ts.map +1 -1
  67. package/dist/llm/registry/index.js +99 -762
  68. package/dist/llm/registry/sync.d.ts +2 -2
  69. package/dist/llm/registry/sync.d.ts.map +1 -1
  70. package/dist/llm/resolver.cjs +7 -6
  71. package/dist/llm/resolver.d.ts +1 -1
  72. package/dist/llm/resolver.js +4 -4
  73. package/dist/llm/schemas.cjs +14 -14
  74. package/dist/llm/schemas.d.ts +1 -1
  75. package/dist/llm/schemas.d.ts.map +1 -1
  76. package/dist/llm/schemas.js +5 -4
  77. package/dist/llm/services/factory.cjs +124 -33
  78. package/dist/llm/services/factory.d.ts.map +1 -1
  79. package/dist/llm/services/factory.js +128 -35
  80. package/dist/llm/services/types.d.ts +8 -1
  81. package/dist/llm/services/types.d.ts.map +1 -1
  82. package/dist/llm/usage-metadata.cjs +3 -3
  83. package/dist/llm/usage-metadata.d.ts +2 -2
  84. package/dist/llm/usage-metadata.d.ts.map +1 -1
  85. package/dist/llm/usage-metadata.js +1 -4
  86. package/dist/llm/usage-summary.d.ts +1 -1
  87. package/dist/llm/validation.cjs +4 -4
  88. package/dist/llm/validation.d.ts +1 -1
  89. package/dist/llm/validation.js +1 -1
  90. package/dist/session/chat-session.cjs +2 -12
  91. package/dist/session/chat-session.d.ts +2 -0
  92. package/dist/session/chat-session.d.ts.map +1 -1
  93. package/dist/session/chat-session.js +2 -13
  94. package/dist/session/session-manager.cjs +4 -1
  95. package/dist/session/session-manager.d.ts +5 -1
  96. package/dist/session/session-manager.d.ts.map +1 -1
  97. package/dist/session/session-manager.js +4 -1
  98. package/dist/utils/api-key-resolver.d.ts +1 -1
  99. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  100. package/dist/utils/result.cjs +1 -1
  101. package/dist/utils/result.js +1 -1
  102. package/dist/utils/service-initializer.cjs +3 -0
  103. package/dist/utils/service-initializer.d.ts +2 -0
  104. package/dist/utils/service-initializer.d.ts.map +1 -1
  105. package/dist/utils/service-initializer.js +3 -0
  106. package/package.json +3 -2
  107. package/dist/llm/reasoning/anthropic-betas.cjs +0 -31
  108. package/dist/llm/reasoning/anthropic-betas.d.ts +0 -3
  109. package/dist/llm/reasoning/anthropic-betas.d.ts.map +0 -1
  110. package/dist/llm/reasoning/anthropic-betas.js +0 -7
  111. package/dist/llm/reasoning/anthropic-thinking.cjs +0 -79
  112. package/dist/llm/reasoning/anthropic-thinking.d.ts +0 -15
  113. package/dist/llm/reasoning/anthropic-thinking.d.ts.map +0 -1
  114. package/dist/llm/reasoning/anthropic-thinking.js +0 -52
  115. package/dist/llm/reasoning/openai-reasoning-effort.cjs +0 -86
  116. package/dist/llm/reasoning/openai-reasoning-effort.d.ts +0 -5
  117. package/dist/llm/reasoning/openai-reasoning-effort.d.ts.map +0 -1
  118. package/dist/llm/reasoning/openai-reasoning-effort.js +0 -61
  119. package/dist/llm/reasoning/profile.cjs +0 -113
  120. package/dist/llm/reasoning/profile.d.ts +0 -13
  121. package/dist/llm/reasoning/profile.d.ts.map +0 -1
  122. package/dist/llm/reasoning/profile.js +0 -92
  123. package/dist/llm/reasoning/profiles/anthropic.cjs +0 -61
  124. package/dist/llm/reasoning/profiles/anthropic.d.ts +0 -8
  125. package/dist/llm/reasoning/profiles/anthropic.d.ts.map +0 -1
  126. package/dist/llm/reasoning/profiles/anthropic.js +0 -45
  127. package/dist/llm/reasoning/profiles/bedrock.cjs +0 -54
  128. package/dist/llm/reasoning/profiles/bedrock.d.ts +0 -3
  129. package/dist/llm/reasoning/profiles/bedrock.d.ts.map +0 -1
  130. package/dist/llm/reasoning/profiles/bedrock.js +0 -36
  131. package/dist/llm/reasoning/profiles/google.cjs +0 -45
  132. package/dist/llm/reasoning/profiles/google.d.ts +0 -9
  133. package/dist/llm/reasoning/profiles/google.d.ts.map +0 -1
  134. package/dist/llm/reasoning/profiles/google.js +0 -21
  135. package/dist/llm/reasoning/profiles/openai-compatible.cjs +0 -39
  136. package/dist/llm/reasoning/profiles/openai-compatible.d.ts +0 -3
  137. package/dist/llm/reasoning/profiles/openai-compatible.d.ts.map +0 -1
  138. package/dist/llm/reasoning/profiles/openai-compatible.js +0 -16
  139. package/dist/llm/reasoning/profiles/openai.cjs +0 -41
  140. package/dist/llm/reasoning/profiles/openai.d.ts +0 -3
  141. package/dist/llm/reasoning/profiles/openai.d.ts.map +0 -1
  142. package/dist/llm/reasoning/profiles/openai.js +0 -18
  143. package/dist/llm/reasoning/profiles/openrouter.cjs +0 -83
  144. package/dist/llm/reasoning/profiles/openrouter.d.ts +0 -10
  145. package/dist/llm/reasoning/profiles/openrouter.d.ts.map +0 -1
  146. package/dist/llm/reasoning/profiles/openrouter.js +0 -59
  147. package/dist/llm/reasoning/profiles/shared.cjs +0 -80
  148. package/dist/llm/reasoning/profiles/shared.d.ts +0 -25
  149. package/dist/llm/reasoning/profiles/shared.d.ts.map +0 -1
  150. package/dist/llm/reasoning/profiles/shared.js +0 -53
  151. package/dist/llm/reasoning/profiles/vertex.cjs +0 -46
  152. package/dist/llm/reasoning/profiles/vertex.d.ts +0 -3
  153. package/dist/llm/reasoning/profiles/vertex.d.ts.map +0 -1
  154. package/dist/llm/reasoning/profiles/vertex.js +0 -23
  155. package/dist/llm/registry/models.generated.cjs +0 -10741
  156. package/dist/llm/registry/models.generated.d.ts +0 -2945
  157. package/dist/llm/registry/models.generated.d.ts.map +0 -1
  158. package/dist/llm/registry/models.generated.js +0 -10717
  159. package/dist/llm/registry/models.manual.cjs +0 -44
  160. package/dist/llm/registry/models.manual.d.ts +0 -22
  161. package/dist/llm/registry/models.manual.d.ts.map +0 -1
  162. package/dist/llm/registry/models.manual.js +0 -21
  163. package/dist/llm/types.cjs +0 -55
  164. package/dist/llm/types.d.ts +0 -39
  165. package/dist/llm/types.d.ts.map +0 -1
  166. package/dist/llm/types.js +0 -30
@@ -1,334 +1,15 @@
1
- /**
2
- * LLM Model Registry
3
- *
4
- * TODO: maxOutputTokens - Currently we rely on @ai-sdk/anthropic (and other provider SDKs)
5
- * to set appropriate maxOutputTokens defaults per model. As of v2.0.56, @ai-sdk/anthropic
6
- * has getModelCapabilities() which sets correct limits (e.g., 64000 for claude-haiku-4-5).
7
- *
8
- * If we need finer control or want to support models before the SDK does, we could:
9
- * 1. Add maxOutputTokens to ModelInfo interface
10
- * 2. Create getMaxOutputTokensForModel() / getEffectiveMaxOutputTokens() helpers
11
- * 3. Pass explicit maxOutputTokens in TurnExecutor when config doesn't specify one
12
- *
13
- * For now, keeping SDK dependency is simpler and auto-updates with SDK releases.
14
- */
1
+ import { type ModelInfo } from '@dexto/llm';
15
2
  import type { ValidatedLLMConfig } from '../schemas.js';
16
- import { type LLMProvider, type SupportedFileType, type TokenUsage } from '../types.js';
17
3
  import type { Logger } from '../../logger/v2/types.js';
18
- /**
19
- * Pricing metadata for a model (USD per 1M tokens).
20
- * Optional; when omitted, pricing is unknown.
21
- */
22
- export interface ModelPricing {
23
- inputPerM: number;
24
- outputPerM: number;
25
- cacheReadPerM?: number;
26
- cacheWritePerM?: number;
27
- reasoningPerM?: number;
28
- inputAudioPerM?: number;
29
- outputAudioPerM?: number;
30
- contextOver200kPerM?: {
31
- inputPerM: number;
32
- outputPerM: number;
33
- };
34
- currency?: 'USD';
35
- unit?: 'per_million_tokens';
36
- }
37
- export interface TokenUsageCostBreakdown {
38
- inputUsd: number;
39
- outputUsd: number;
40
- reasoningUsd: number;
41
- cacheReadUsd: number;
42
- cacheWriteUsd: number;
43
- totalUsd: number;
44
- }
45
- export type ModelModality = 'text' | 'audio' | 'image' | 'video' | 'pdf';
46
- export interface ModelModalities {
47
- input: ModelModality[];
48
- output: ModelModality[];
49
- }
50
- export interface ModelProviderMetadata {
51
- npm?: string;
52
- api?: string;
53
- }
54
- export interface ModelInterleavedMetadata {
55
- field?: string;
56
- [key: string]: unknown;
57
- }
58
- export interface ModelInfo {
59
- name: string;
60
- maxInputTokens: number;
61
- default?: boolean;
62
- supportedFileTypes: SupportedFileType[];
63
- displayName?: string;
64
- /**
65
- * models.dev capability hints (optional).
66
- * - reasoning: model is marketed/flagged as a "reasoning" model / supports explicit reasoning mode.
67
- * - supportsTemperature: model supports a temperature parameter (some reasoning models don't).
68
- * - supportsInterleaved: model supports interleaved reasoning/content streaming paradigms.
69
- */
70
- reasoning?: boolean;
71
- supportsTemperature?: boolean;
72
- supportsInterleaved?: boolean;
73
- releaseDate?: string;
74
- supportsToolCall?: boolean;
75
- status?: string;
76
- modalities?: ModelModalities;
77
- providerMetadata?: ModelProviderMetadata;
78
- interleaved?: true | ModelInterleavedMetadata;
79
- pricing?: ModelPricing;
80
- }
81
- export interface ModelsDevProviderMetadata {
82
- env: string[];
83
- npm?: string;
84
- api?: string;
85
- doc?: string;
86
- }
87
- export declare const MIME_TYPE_TO_FILE_TYPE: Record<string, SupportedFileType>;
88
- export declare function getAllowedMimeTypes(): string[];
89
- export interface ProviderInfo {
90
- models: ModelInfo[];
91
- baseURLSupport: 'none' | 'optional' | 'required';
92
- supportedFileTypes: SupportedFileType[];
93
- supportsCustomModels?: boolean;
94
- modelsDev?: ModelsDevProviderMetadata;
95
- /**
96
- * When true, this provider can access all models from all other providers in the registry.
97
- * Used for gateway providers like 'dexto-nova' that route to multiple upstream providers.
98
- * Model names are transformed to the gateway's format (e.g., 'gpt-5-mini' → 'openai/gpt-5-mini').
99
- */
100
- supportsAllRegistryModels?: boolean;
101
- }
102
- /** Fallback when we cannot determine the model's input-token limit */
103
- export declare const DEFAULT_MAX_INPUT_TOKENS = 128000;
4
+ import type { LLMProvider, SupportedFileType } from '@dexto/llm';
104
5
  type EffectiveMaxInputTokensConfig = Pick<ValidatedLLMConfig, 'provider' | 'model' | 'baseURL' | 'maxInputTokens'>;
105
- /**
106
- * LLM Model Registry - Single Source of Truth for Supported models and their capabilities
107
- *
108
- * IMPORTANT: supportedFileTypes is the SINGLE SOURCE OF TRUTH for file upload capabilities:
109
- * - Empty array [] = Model does NOT support file uploads (UI will hide all attach buttons)
110
- * - Specific types ['image', 'pdf'] = Model supports ONLY those file types
111
- * - DO NOT use empty arrays as "unknown" - research the model's actual capabilities
112
- * - The web UI directly reflects these capabilities without fallback logic
113
- */
114
- export declare const LLM_REGISTRY: Record<LLMProvider, ProviderInfo>;
115
- /**
116
- * Strips Bedrock cross-region inference profile prefix (eu., us., global.) from model ID.
117
- * This allows registry lookups to work regardless of whether the user specified a prefix.
118
- * @param model The model ID, potentially with a region prefix
119
- * @returns The model ID without the region prefix
120
- */
121
- export declare function stripBedrockRegionPrefix(model: string): string;
122
- /**
123
- * Gets the default model for a given provider from the registry.
124
- * @param provider The name of the provider.
125
- * @returns The default model for the provider, or null if no default model is found.
126
- */
127
- export declare function getDefaultModelForProvider(provider: LLMProvider): string | null;
128
- /**
129
- * Gets the list of supported providers.
130
- * @returns An array of supported provider names.
131
- */
132
- export declare function getSupportedProviders(): LLMProvider[];
133
- /**
134
- * Gets the list of supported models for a given provider.
135
- * @param provider The name of the provider.
136
- * @returns An array of supported model names for the provider.
137
- */
138
- export declare function getSupportedModels(provider: LLMProvider): string[];
139
- /**
140
- * Retrieves the maximum input token limit for a given provider and model from the registry.
141
- * For gateway providers with supportsAllRegistryModels, looks up the model in its original provider.
142
- * @param provider The name of the provider (e.g., 'openai', 'anthropic', 'google').
143
- * @param model The specific model name.
144
- * @param logger Optional logger instance for logging. Optional because it's used in zod schema
145
- * @returns The maximum input token limit for the model.
146
- * @throws {LLMError} If the model is not found in the registry.
147
- */
148
- export declare function getMaxInputTokensForModel(provider: LLMProvider, model: string, logger?: Logger): number;
149
- /**
150
- * Validates if a provider and model combination is supported.
151
- * Both parameters are required - structural validation (missing values) is handled by Zod schemas.
152
- * @param provider The provider name.
153
- * @param model The model name.
154
- * @returns True if the combination is valid, false otherwise.
155
- */
156
- export declare function isValidProviderModel(provider: LLMProvider, model: string): boolean;
157
- /**
158
- * Infers the LLM provider from the model name by searching the registry.
159
- * Matches the model name (case-insensitive) against all registered models.
160
- *
161
- * @param model The model name (e.g., 'gpt-5-mini', 'claude-sonnet-4-5-20250929')
162
- * @returns The inferred provider name ('openai', 'anthropic', etc.)
163
- * @throws {DextoRuntimeError} If no matching provider can be inferred, or if the model is an OpenRouter-format ID.
164
- */
165
- export declare function getProviderFromModel(model: string): LLMProvider;
166
- /**
167
- * Returns a flat array of all supported model names from all providers.
168
- */
169
- export declare function getAllSupportedModels(): string[];
170
- /**
171
- * Checks if a provider supports custom baseURL.
172
- * @param provider The name of the provider.
173
- * @returns True if the provider supports custom baseURL, false otherwise.
174
- */
175
- export declare function supportsBaseURL(provider: LLMProvider): boolean;
176
- /**
177
- * Checks if a provider requires a custom baseURL.
178
- * @param provider The name of the provider.
179
- * @returns True if the provider requires a custom baseURL, false otherwise.
180
- */
181
- export declare function requiresBaseURL(provider: LLMProvider): boolean;
182
- /**
183
- * Checks if a provider accepts any model name (i.e., has empty models list).
184
- * @param provider The name of the provider.
185
- * @returns True if the provider accepts any model name, false otherwise.
186
- */
187
- export declare function acceptsAnyModel(provider: LLMProvider): boolean;
188
- /**
189
- * Checks if a provider supports custom model IDs beyond its fixed model list.
190
- * This is set explicitly on providers that allow users to add arbitrary model IDs.
191
- * @param provider The name of the provider.
192
- * @returns True if the provider supports custom models, false otherwise.
193
- */
194
- export declare function supportsCustomModels(provider: LLMProvider): boolean;
195
- /**
196
- * Checks if a provider supports all registry models from all other providers.
197
- * @param provider The name of the provider.
198
- * @returns True if the provider supports all registry models, false otherwise.
199
- */
200
- export declare function hasAllRegistryModelsSupport(provider: LLMProvider): boolean;
201
- export declare function getOpenRouterCandidateModelIds(model: string, originalProvider: LLMProvider): string[];
202
- /**
203
- * Gets all models available for a provider, including inherited models
204
- * when supportsAllRegistryModels is true.
205
- * @param provider The name of the provider.
206
- * @returns Array of ModelInfo with additional originalProvider field for inherited models.
207
- */
208
6
  export declare function getAllModelsForProvider(provider: LLMProvider): Array<ModelInfo & {
209
7
  originalProvider?: LLMProvider;
210
8
  }>;
211
- /**
212
- * Transforms a model name to the format required by a gateway provider (dexto-nova/openrouter).
213
- * This is primarily used for internal wiring (e.g. sub-agent LLM resolution).
214
- *
215
- * Note: user-facing configs should prefer OpenRouter-format IDs directly when using gateway providers.
216
- *
217
- * Transformation is needed when:
218
- * - Target is a gateway (dexto-nova/openrouter)
219
- * - Original provider is a "native" provider (anthropic, openai, google, etc.)
220
- *
221
- * No transformation needed when:
222
- * - Target is not a gateway
223
- * - Original provider is already a gateway (dexto-nova/openrouter) - model is already in correct format
224
- * - Model already contains a slash (already in OpenRouter format)
225
- * - Provider models have vendor prefixes (groq's meta-llama/)
226
- *
227
- * @param model The model name to transform.
228
- * @param originalProvider The provider the model originally belongs to.
229
- * @param targetProvider The provider to transform the model name for.
230
- * @returns The transformed model name.
231
- */
232
- export declare function transformModelNameForProvider(model: string, originalProvider: LLMProvider, targetProvider: LLMProvider): string;
233
- /**
234
- * Checks if a model is valid for a provider, considering supportsAllRegistryModels.
235
- * @param provider The provider to check.
236
- * @param model The model name to validate.
237
- * @returns True if the model is valid for the provider.
238
- */
239
- export declare function isModelValidForProvider(provider: LLMProvider, model: string): boolean;
240
- /**
241
- * Checks if a provider requires an API key.
242
- * Returns false for:
243
- * - Local providers (openai-compatible for Ollama, vLLM, LocalAI)
244
- * - Self-hosted proxies (litellm)
245
- * - Cloud auth providers (vertex, bedrock)
246
- *
247
- * @param provider The name of the provider.
248
- * @returns True if the provider requires an API key, false otherwise.
249
- */
250
- export declare function requiresApiKey(provider: LLMProvider): boolean;
251
- /**
252
- * Gets the supported file types for a specific model.
253
- * For gateway providers with supportsAllRegistryModels, looks up the model in its original provider.
254
- * @param provider The name of the provider.
255
- * @param model The name of the model.
256
- * @returns Array of supported file types for the model.
257
- * @throws {Error} If the model is not found in the registry.
258
- */
9
+ export declare function getProviderFromModel(model: string): LLMProvider;
259
10
  export declare function getSupportedFileTypesForModel(provider: LLMProvider, model: string): SupportedFileType[];
260
- /**
261
- * Checks if a specific model supports a specific file type.
262
- * @param provider The name of the provider.
263
- * @param model The name of the model.
264
- * @param fileType The file type to check support for.
265
- * @returns True if the model supports the file type, false otherwise.
266
- */
267
11
  export declare function modelSupportsFileType(provider: LLMProvider, model: string, fileType: SupportedFileType): boolean;
268
- /**
269
- * Validates if file data is supported by a specific model by checking the mimetype
270
- * @param provider The LLM provider name.
271
- * @param model The model name.
272
- * @param mimeType The MIME type of the file to validate.
273
- * @returns Object containing validation result and details.
274
- */
275
- export declare function validateModelFileSupport(provider: LLMProvider, model: string, mimeType: string): {
276
- isSupported: boolean;
277
- fileType?: SupportedFileType;
278
- error?: string;
279
- };
280
- /**
281
- * Determines the effective maximum input token limit based on configuration.
282
- * Priority:
283
- * 1. Explicit `maxInputTokens` in config
284
- * 2. Registry lookup for known provider/model.
285
- *
286
- * @param config The validated LLM configuration.
287
- * @param logger Logger instance for logging.
288
- * @returns The effective maximum input token count for the LLM.
289
- *
290
- * Notes:
291
- * - If `baseURL` is set but `maxInputTokens` is missing, this logs a warning and falls back to
292
- * `DEFAULT_MAX_INPUT_TOKENS`.
293
- * - If `baseURL` is not set and the model isn't found in the registry, this throws.
294
- * TODO: make more readable
295
- */
12
+ export declare function getMaxInputTokensForModel(provider: LLMProvider, model: string, logger?: Logger): number;
296
13
  export declare function getEffectiveMaxInputTokens(config: EffectiveMaxInputTokensConfig, logger: Logger): number;
297
- /**
298
- * Gets the pricing information for a specific model.
299
- * For gateway providers with supportsAllRegistryModels, looks up the model in its original provider.
300
- *
301
- * Note: This returns the original provider's pricing. Gateway providers may have markup
302
- * that should be applied separately if needed.
303
- *
304
- * @param provider The name of the provider.
305
- * @param model The name of the model.
306
- * @returns The pricing information for the model, or undefined if not available.
307
- */
308
- export declare function getModelPricing(provider: LLMProvider, model: string): ModelPricing | undefined;
309
- /**
310
- * Gets the display name for a model, falling back to the model ID if not found.
311
- */
312
- export declare function getModelDisplayName(model: string, provider?: LLMProvider): string;
313
- /**
314
- * Checks if a model is flagged as "reasoning-capable" by the registry (models.dev).
315
- *
316
- * Note: This is distinct from "supports tunable reasoning knobs". Some providers/models may
317
- * have reasoning but limited/implicit tuning controls.
318
- *
319
- * @param model The model name to check.
320
- * @param provider Optional provider for context (defaults to detecting from model name).
321
- * @returns True if the registry marks this model as reasoning-capable.
322
- */
323
- export declare function isReasoningCapableModel(model: string, provider?: LLMProvider): boolean;
324
- /**
325
- * Calculates the cost for a given token usage based on model pricing.
326
- *
327
- * @param usage Token usage counts.
328
- * @param pricing Model pricing (per million tokens).
329
- * @returns Cost in USD.
330
- */
331
- export declare function calculateCost(usage: TokenUsage, pricing: ModelPricing): number;
332
- export declare function calculateCostBreakdown(usage: TokenUsage, pricing: ModelPricing): TokenUsageCostBreakdown;
333
14
  export {};
334
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/registry/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAYH,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMjE,KAAK,6BAA6B,GAAG,IAAI,CACrC,kBAAkB,EAClB,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,CACtD,CAAC;AA0GF,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,WAAW,GACtB,KAAK,CAAC,SAAS,GAAG;IAAE,gBAAgB,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC,CAgCvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAS/D;AAED,wBAAgB,6BAA6B,CACzC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,GACd,iBAAiB,EAAE,CASrB;AAED,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAET;AAED,wBAAgB,yBAAyB,CACrC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GAChB,MAAM,CAsBR;AAED,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,6BAA6B,EACrC,MAAM,EAAE,MAAM,GACf,MAAM,CA4FR"}