@earendil-works/pi-ai 0.79.2 → 0.79.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAavF,KAAK,QAAQ,CACZ,SAAS,SAAS,aAAa,EAC/B,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,IAC9C,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAEjH,wBAAgB,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,EAC1G,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACf,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAGtC;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAE9C;AAED,wBAAgB,SAAS,CAAC,SAAS,SAAS,aAAa,EACxD,QAAQ,EAAE,SAAS,GACjB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAGhE;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAO/F;AAID,wBAAgB,0BAA0B,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,EAAE,CASrG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS,GAAG,EAClD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,kBAAkB,GACvB,kBAAkB,CAgBpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS,GAAG,EAC9C,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,EACjC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,GAC/B,OAAO,CAGT","sourcesContent":["import { MODELS } from \"./models.generated.ts\";\nimport type { Api, KnownProvider, Model, ModelThinkingLevel, Usage } from \"./types.ts\";\n\nconst modelRegistry: Map<string, Map<string, Model<Api>>> = new Map();\n\n// Initialize registry from MODELS on module load\nfor (const [provider, models] of Object.entries(MODELS)) {\n\tconst providerModels = new Map<string, Model<Api>>();\n\tfor (const [id, model] of Object.entries(models)) {\n\t\tproviderModels.set(id, model as Model<Api>);\n\t}\n\tmodelRegistry.set(provider, providerModels);\n}\n\ntype ModelApi<\n\tTProvider extends KnownProvider,\n\tTModelId extends keyof (typeof MODELS)[TProvider],\n> = (typeof MODELS)[TProvider][TModelId] extends { api: infer TApi } ? (TApi extends Api ? TApi : never) : never;\n\nexport function getModel<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]>(\n\tprovider: TProvider,\n\tmodelId: TModelId,\n): Model<ModelApi<TProvider, TModelId>> {\n\tconst providerModels = modelRegistry.get(provider);\n\treturn providerModels?.get(modelId as string) as Model<ModelApi<TProvider, TModelId>>;\n}\n\nexport function getProviders(): KnownProvider[] {\n\treturn Array.from(modelRegistry.keys()) as KnownProvider[];\n}\n\nexport function getModels<TProvider extends KnownProvider>(\n\tprovider: TProvider,\n): Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[] {\n\tconst models = modelRegistry.get(provider);\n\treturn models ? (Array.from(models.values()) as Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[]) : [];\n}\n\nexport function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage[\"cost\"] {\n\tusage.cost.input = (model.cost.input / 1000000) * usage.input;\n\tusage.cost.output = (model.cost.output / 1000000) * usage.output;\n\tusage.cost.cacheRead = (model.cost.cacheRead / 1000000) * usage.cacheRead;\n\tusage.cost.cacheWrite = (model.cost.cacheWrite / 1000000) * usage.cacheWrite;\n\tusage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;\n\treturn usage.cost;\n}\n\nconst EXTENDED_THINKING_LEVELS: ModelThinkingLevel[] = [\"off\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"];\n\nexport function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[] {\n\tif (!model.reasoning) return [\"off\"];\n\n\treturn EXTENDED_THINKING_LEVELS.filter((level) => {\n\t\tconst mapped = model.thinkingLevelMap?.[level];\n\t\tif (mapped === null) return false;\n\t\tif (level === \"xhigh\") return mapped !== undefined;\n\t\treturn true;\n\t});\n}\n\nexport function clampThinkingLevel<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tlevel: ModelThinkingLevel,\n): ModelThinkingLevel {\n\tconst availableLevels = getSupportedThinkingLevels(model);\n\tif (availableLevels.includes(level)) return level;\n\n\tconst requestedIndex = EXTENDED_THINKING_LEVELS.indexOf(level);\n\tif (requestedIndex === -1) return availableLevels[0] ?? \"off\";\n\n\tfor (let i = requestedIndex; i < EXTENDED_THINKING_LEVELS.length; i++) {\n\t\tconst candidate = EXTENDED_THINKING_LEVELS[i];\n\t\tif (availableLevels.includes(candidate)) return candidate;\n\t}\n\tfor (let i = requestedIndex - 1; i >= 0; i--) {\n\t\tconst candidate = EXTENDED_THINKING_LEVELS[i];\n\t\tif (availableLevels.includes(candidate)) return candidate;\n\t}\n\treturn availableLevels[0] ?? \"off\";\n}\n\n/**\n * Check if two models are equal by comparing both their id and provider.\n * Returns false if either model is null or undefined.\n */\nexport function modelsAreEqual<TApi extends Api>(\n\ta: Model<TApi> | null | undefined,\n\tb: Model<TApi> | null | undefined,\n): boolean {\n\tif (!a || !b) return false;\n\treturn a.id === b.id && a.provider === b.provider;\n}\n"]}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAavF,KAAK,QAAQ,CACZ,SAAS,SAAS,aAAa,EAC/B,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,IAC9C,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAEjH,wBAAgB,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,EAC1G,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACf,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAGtC;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAE9C;AAED,wBAAgB,SAAS,CAAC,SAAS,SAAS,aAAa,EACxD,QAAQ,EAAE,SAAS,GACjB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAGhE;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAU/F;AAID,wBAAgB,0BAA0B,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,EAAE,CASrG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS,GAAG,EAClD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,kBAAkB,GACvB,kBAAkB,CAgBpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS,GAAG,EAC9C,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,EACjC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,GAC/B,OAAO,CAGT","sourcesContent":["import { MODELS } from \"./models.generated.ts\";\nimport type { Api, KnownProvider, Model, ModelThinkingLevel, Usage } from \"./types.ts\";\n\nconst modelRegistry: Map<string, Map<string, Model<Api>>> = new Map();\n\n// Initialize registry from MODELS on module load\nfor (const [provider, models] of Object.entries(MODELS)) {\n\tconst providerModels = new Map<string, Model<Api>>();\n\tfor (const [id, model] of Object.entries(models)) {\n\t\tproviderModels.set(id, model as Model<Api>);\n\t}\n\tmodelRegistry.set(provider, providerModels);\n}\n\ntype ModelApi<\n\tTProvider extends KnownProvider,\n\tTModelId extends keyof (typeof MODELS)[TProvider],\n> = (typeof MODELS)[TProvider][TModelId] extends { api: infer TApi } ? (TApi extends Api ? TApi : never) : never;\n\nexport function getModel<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]>(\n\tprovider: TProvider,\n\tmodelId: TModelId,\n): Model<ModelApi<TProvider, TModelId>> {\n\tconst providerModels = modelRegistry.get(provider);\n\treturn providerModels?.get(modelId as string) as Model<ModelApi<TProvider, TModelId>>;\n}\n\nexport function getProviders(): KnownProvider[] {\n\treturn Array.from(modelRegistry.keys()) as KnownProvider[];\n}\n\nexport function getModels<TProvider extends KnownProvider>(\n\tprovider: TProvider,\n): Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[] {\n\tconst models = modelRegistry.get(provider);\n\treturn models ? (Array.from(models.values()) as Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[]) : [];\n}\n\nexport function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage[\"cost\"] {\n\t// Anthropic charges 2x base input for 1h cache writes.\n\tconst longWrite = usage.cacheWrite1h ?? 0;\n\tconst shortWrite = usage.cacheWrite - longWrite;\n\tusage.cost.input = (model.cost.input / 1000000) * usage.input;\n\tusage.cost.output = (model.cost.output / 1000000) * usage.output;\n\tusage.cost.cacheRead = (model.cost.cacheRead / 1000000) * usage.cacheRead;\n\tusage.cost.cacheWrite = (model.cost.cacheWrite * shortWrite + model.cost.input * 2 * longWrite) / 1000000;\n\tusage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;\n\treturn usage.cost;\n}\n\nconst EXTENDED_THINKING_LEVELS: ModelThinkingLevel[] = [\"off\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"];\n\nexport function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[] {\n\tif (!model.reasoning) return [\"off\"];\n\n\treturn EXTENDED_THINKING_LEVELS.filter((level) => {\n\t\tconst mapped = model.thinkingLevelMap?.[level];\n\t\tif (mapped === null) return false;\n\t\tif (level === \"xhigh\") return mapped !== undefined;\n\t\treturn true;\n\t});\n}\n\nexport function clampThinkingLevel<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tlevel: ModelThinkingLevel,\n): ModelThinkingLevel {\n\tconst availableLevels = getSupportedThinkingLevels(model);\n\tif (availableLevels.includes(level)) return level;\n\n\tconst requestedIndex = EXTENDED_THINKING_LEVELS.indexOf(level);\n\tif (requestedIndex === -1) return availableLevels[0] ?? \"off\";\n\n\tfor (let i = requestedIndex; i < EXTENDED_THINKING_LEVELS.length; i++) {\n\t\tconst candidate = EXTENDED_THINKING_LEVELS[i];\n\t\tif (availableLevels.includes(candidate)) return candidate;\n\t}\n\tfor (let i = requestedIndex - 1; i >= 0; i--) {\n\t\tconst candidate = EXTENDED_THINKING_LEVELS[i];\n\t\tif (availableLevels.includes(candidate)) return candidate;\n\t}\n\treturn availableLevels[0] ?? \"off\";\n}\n\n/**\n * Check if two models are equal by comparing both their id and provider.\n * Returns false if either model is null or undefined.\n */\nexport function modelsAreEqual<TApi extends Api>(\n\ta: Model<TApi> | null | undefined,\n\tb: Model<TApi> | null | undefined,\n): boolean {\n\tif (!a || !b) return false;\n\treturn a.id === b.id && a.provider === b.provider;\n}\n"]}
@@ -4210,7 +4210,7 @@ export declare const MODELS: {
4210
4210
  contextWindow: number;
4211
4211
  maxTokens: number;
4212
4212
  };
4213
- readonly "accounts/fireworks/models/kimi-k2p5": {
4213
+ readonly "accounts/fireworks/models/kimi-k2p6": {
4214
4214
  id: string;
4215
4215
  name: string;
4216
4216
  api: "anthropic-messages";
@@ -4233,7 +4233,7 @@ export declare const MODELS: {
4233
4233
  contextWindow: number;
4234
4234
  maxTokens: number;
4235
4235
  };
4236
- readonly "accounts/fireworks/models/kimi-k2p6": {
4236
+ readonly "accounts/fireworks/models/kimi-k2p7-code": {
4237
4237
  id: string;
4238
4238
  name: string;
4239
4239
  api: "anthropic-messages";
@@ -4256,7 +4256,7 @@ export declare const MODELS: {
4256
4256
  contextWindow: number;
4257
4257
  maxTokens: number;
4258
4258
  };
4259
- readonly "accounts/fireworks/models/minimax-m2p5": {
4259
+ readonly "accounts/fireworks/models/minimax-m2p7": {
4260
4260
  id: string;
4261
4261
  name: string;
4262
4262
  api: "anthropic-messages";
@@ -4279,7 +4279,7 @@ export declare const MODELS: {
4279
4279
  contextWindow: number;
4280
4280
  maxTokens: number;
4281
4281
  };
4282
- readonly "accounts/fireworks/models/minimax-m2p7": {
4282
+ readonly "accounts/fireworks/models/minimax-m3": {
4283
4283
  id: string;
4284
4284
  name: string;
4285
4285
  api: "anthropic-messages";
@@ -4302,7 +4302,7 @@ export declare const MODELS: {
4302
4302
  contextWindow: number;
4303
4303
  maxTokens: number;
4304
4304
  };
4305
- readonly "accounts/fireworks/models/qwen3p6-plus": {
4305
+ readonly "accounts/fireworks/models/qwen3p7-plus": {
4306
4306
  id: string;
4307
4307
  name: string;
4308
4308
  api: "anthropic-messages";
@@ -4394,6 +4394,29 @@ export declare const MODELS: {
4394
4394
  contextWindow: number;
4395
4395
  maxTokens: number;
4396
4396
  };
4397
+ readonly "accounts/fireworks/routers/kimi-k2p7-code-fast": {
4398
+ id: string;
4399
+ name: string;
4400
+ api: "anthropic-messages";
4401
+ provider: string;
4402
+ baseUrl: string;
4403
+ compat: {
4404
+ sendSessionAffinityHeaders: true;
4405
+ supportsEagerToolInputStreaming: false;
4406
+ supportsCacheControlOnTools: false;
4407
+ supportsLongCacheRetention: false;
4408
+ };
4409
+ reasoning: true;
4410
+ input: ("image" | "text")[];
4411
+ cost: {
4412
+ input: number;
4413
+ output: number;
4414
+ cacheRead: number;
4415
+ cacheWrite: number;
4416
+ };
4417
+ contextWindow: number;
4418
+ maxTokens: number;
4419
+ };
4397
4420
  };
4398
4421
  readonly "github-copilot": {
4399
4422
  readonly "claude-fable-5": {
@@ -4521,6 +4544,7 @@ export declare const MODELS: {
4521
4544
  reasoning: true;
4522
4545
  thinkingLevelMap: {
4523
4546
  xhigh: string;
4547
+ minimal: string;
4524
4548
  };
4525
4549
  input: ("image" | "text")[];
4526
4550
  cost: {
@@ -4551,6 +4575,7 @@ export declare const MODELS: {
4551
4575
  reasoning: true;
4552
4576
  thinkingLevelMap: {
4553
4577
  xhigh: string;
4578
+ minimal: string;
4554
4579
  };
4555
4580
  input: ("image" | "text")[];
4556
4581
  cost: {
@@ -4630,6 +4655,10 @@ export declare const MODELS: {
4630
4655
  forceAdaptiveThinking: true;
4631
4656
  };
4632
4657
  reasoning: true;
4658
+ thinkingLevelMap: {
4659
+ minimal: string;
4660
+ xhigh: string;
4661
+ };
4633
4662
  input: ("image" | "text")[];
4634
4663
  cost: {
4635
4664
  input: number;
@@ -5352,6 +5381,54 @@ export declare const MODELS: {
5352
5381
  contextWindow: number;
5353
5382
  maxTokens: number;
5354
5383
  };
5384
+ readonly "gemma-4-E2B-it": {
5385
+ id: string;
5386
+ name: string;
5387
+ api: "google-generative-ai";
5388
+ provider: string;
5389
+ baseUrl: string;
5390
+ reasoning: true;
5391
+ thinkingLevelMap: {
5392
+ off: null;
5393
+ minimal: string;
5394
+ low: null;
5395
+ medium: null;
5396
+ high: string;
5397
+ };
5398
+ input: ("image" | "text")[];
5399
+ cost: {
5400
+ input: number;
5401
+ output: number;
5402
+ cacheRead: number;
5403
+ cacheWrite: number;
5404
+ };
5405
+ contextWindow: number;
5406
+ maxTokens: number;
5407
+ };
5408
+ readonly "gemma-4-E4B-it": {
5409
+ id: string;
5410
+ name: string;
5411
+ api: "google-generative-ai";
5412
+ provider: string;
5413
+ baseUrl: string;
5414
+ reasoning: true;
5415
+ thinkingLevelMap: {
5416
+ off: null;
5417
+ minimal: string;
5418
+ low: null;
5419
+ medium: null;
5420
+ high: string;
5421
+ };
5422
+ input: ("image" | "text")[];
5423
+ cost: {
5424
+ input: number;
5425
+ output: number;
5426
+ cacheRead: number;
5427
+ cacheWrite: number;
5428
+ };
5429
+ contextWindow: number;
5430
+ maxTokens: number;
5431
+ };
5355
5432
  };
5356
5433
  readonly "google-vertex": {
5357
5434
  readonly "gemini-1.5-flash": {
@@ -8673,30 +8750,6 @@ export declare const MODELS: {
8673
8750
  contextWindow: number;
8674
8751
  maxTokens: number;
8675
8752
  };
8676
- readonly "claude-fable-5": {
8677
- id: string;
8678
- name: string;
8679
- api: "anthropic-messages";
8680
- provider: string;
8681
- baseUrl: string;
8682
- compat: {
8683
- forceAdaptiveThinking: true;
8684
- };
8685
- reasoning: true;
8686
- thinkingLevelMap: {
8687
- off: null;
8688
- xhigh: string;
8689
- };
8690
- input: ("image" | "text")[];
8691
- cost: {
8692
- input: number;
8693
- output: number;
8694
- cacheRead: number;
8695
- cacheWrite: number;
8696
- };
8697
- contextWindow: number;
8698
- maxTokens: number;
8699
- };
8700
8753
  readonly "claude-haiku-4-5": {
8701
8754
  id: string;
8702
8755
  name: string;
@@ -8881,6 +8934,7 @@ export declare const MODELS: {
8881
8934
  baseUrl: string;
8882
8935
  compat: {
8883
8936
  maxTokensField: "max_tokens";
8937
+ supportsLongCacheRetention: false;
8884
8938
  requiresReasoningContentOnAssistantMessages: true;
8885
8939
  thinkingFormat: "deepseek";
8886
8940
  };
@@ -8939,6 +8993,7 @@ export declare const MODELS: {
8939
8993
  baseUrl: string;
8940
8994
  compat: {
8941
8995
  maxTokensField: "max_tokens";
8996
+ supportsLongCacheRetention: false;
8942
8997
  requiresReasoningContentOnAssistantMessages: true;
8943
8998
  thinkingFormat: "deepseek";
8944
8999
  };
@@ -9430,6 +9485,7 @@ export declare const MODELS: {
9430
9485
  baseUrl: string;
9431
9486
  compat: {
9432
9487
  maxTokensField: "max_tokens";
9488
+ supportsLongCacheRetention: false;
9433
9489
  };
9434
9490
  reasoning: true;
9435
9491
  input: ("image" | "text")[];
@@ -9452,6 +9508,7 @@ export declare const MODELS: {
9452
9508
  thinkingFormat: "deepseek";
9453
9509
  supportsReasoningEffort: false;
9454
9510
  maxTokensField: "max_tokens";
9511
+ supportsLongCacheRetention: false;
9455
9512
  };
9456
9513
  reasoning: true;
9457
9514
  input: ("image" | "text")[];
@@ -9512,6 +9569,7 @@ export declare const MODELS: {
9512
9569
  baseUrl: string;
9513
9570
  compat: {
9514
9571
  maxTokensField: "max_tokens";
9572
+ supportsLongCacheRetention: false;
9515
9573
  };
9516
9574
  reasoning: true;
9517
9575
  input: "text"[];
@@ -9708,6 +9766,7 @@ export declare const MODELS: {
9708
9766
  thinkingFormat: "deepseek";
9709
9767
  supportsReasoningEffort: false;
9710
9768
  maxTokensField: "max_tokens";
9769
+ supportsLongCacheRetention: false;
9711
9770
  };
9712
9771
  reasoning: true;
9713
9772
  thinkingLevelMap: {
@@ -14297,6 +14356,37 @@ export declare const MODELS: {
14297
14356
  contextWindow: number;
14298
14357
  maxTokens: number;
14299
14358
  };
14359
+ readonly "MiniMaxAI/MiniMax-M3": {
14360
+ id: string;
14361
+ name: string;
14362
+ api: "openai-completions";
14363
+ provider: string;
14364
+ baseUrl: string;
14365
+ compat: {
14366
+ supportsStore: false;
14367
+ supportsDeveloperRole: false;
14368
+ supportsReasoningEffort: false;
14369
+ maxTokensField: "max_tokens";
14370
+ supportsStrictMode: false;
14371
+ supportsLongCacheRetention: false;
14372
+ thinkingFormat: "together";
14373
+ };
14374
+ reasoning: true;
14375
+ thinkingLevelMap: {
14376
+ minimal: null;
14377
+ low: null;
14378
+ medium: null;
14379
+ };
14380
+ input: ("image" | "text")[];
14381
+ cost: {
14382
+ input: number;
14383
+ output: number;
14384
+ cacheRead: number;
14385
+ cacheWrite: number;
14386
+ };
14387
+ contextWindow: number;
14388
+ maxTokens: number;
14389
+ };
14300
14390
  readonly "Qwen/Qwen2.5-7B-Instruct-Turbo": {
14301
14391
  id: string;
14302
14392
  name: string;
@@ -14610,6 +14700,37 @@ export declare const MODELS: {
14610
14700
  contextWindow: number;
14611
14701
  maxTokens: number;
14612
14702
  };
14703
+ readonly "moonshotai/Kimi-K2.7-Code": {
14704
+ id: string;
14705
+ name: string;
14706
+ api: "openai-completions";
14707
+ provider: string;
14708
+ baseUrl: string;
14709
+ compat: {
14710
+ supportsStore: false;
14711
+ supportsDeveloperRole: false;
14712
+ supportsReasoningEffort: false;
14713
+ maxTokensField: "max_tokens";
14714
+ supportsStrictMode: false;
14715
+ supportsLongCacheRetention: false;
14716
+ thinkingFormat: "together";
14717
+ };
14718
+ reasoning: true;
14719
+ thinkingLevelMap: {
14720
+ minimal: null;
14721
+ low: null;
14722
+ medium: null;
14723
+ };
14724
+ input: "text"[];
14725
+ cost: {
14726
+ input: number;
14727
+ output: number;
14728
+ cacheRead: number;
14729
+ cacheWrite: number;
14730
+ };
14731
+ contextWindow: number;
14732
+ maxTokens: number;
14733
+ };
14613
14734
  readonly "nvidia/nemotron-3-ultra-550b-a55b": {
14614
14735
  id: string;
14615
14736
  name: string;
@@ -15173,30 +15294,6 @@ export declare const MODELS: {
15173
15294
  contextWindow: number;
15174
15295
  maxTokens: number;
15175
15296
  };
15176
- readonly "anthropic/claude-fable-5": {
15177
- id: string;
15178
- name: string;
15179
- api: "anthropic-messages";
15180
- provider: string;
15181
- baseUrl: string;
15182
- compat: {
15183
- forceAdaptiveThinking: true;
15184
- };
15185
- reasoning: true;
15186
- thinkingLevelMap: {
15187
- off: null;
15188
- xhigh: string;
15189
- };
15190
- input: ("image" | "text")[];
15191
- cost: {
15192
- input: number;
15193
- output: number;
15194
- cacheRead: number;
15195
- cacheWrite: number;
15196
- };
15197
- contextWindow: number;
15198
- maxTokens: number;
15199
- };
15200
15297
  readonly "anthropic/claude-haiku-4.5": {
15201
15298
  id: string;
15202
15299
  name: string;
@@ -18332,6 +18429,28 @@ export declare const MODELS: {
18332
18429
  contextWindow: number;
18333
18430
  maxTokens: number;
18334
18431
  };
18432
+ readonly "glm-5.2": {
18433
+ id: string;
18434
+ name: string;
18435
+ api: "openai-completions";
18436
+ provider: string;
18437
+ baseUrl: string;
18438
+ compat: {
18439
+ supportsDeveloperRole: false;
18440
+ thinkingFormat: "zai";
18441
+ zaiToolStream: true;
18442
+ };
18443
+ reasoning: true;
18444
+ input: "text"[];
18445
+ cost: {
18446
+ input: number;
18447
+ output: number;
18448
+ cacheRead: number;
18449
+ cacheWrite: number;
18450
+ };
18451
+ contextWindow: number;
18452
+ maxTokens: number;
18453
+ };
18335
18454
  readonly "glm-5v-turbo": {
18336
18455
  id: string;
18337
18456
  name: string;
@@ -18443,6 +18562,28 @@ export declare const MODELS: {
18443
18562
  contextWindow: number;
18444
18563
  maxTokens: number;
18445
18564
  };
18565
+ readonly "glm-5.2": {
18566
+ id: string;
18567
+ name: string;
18568
+ api: "openai-completions";
18569
+ provider: string;
18570
+ baseUrl: string;
18571
+ compat: {
18572
+ supportsDeveloperRole: false;
18573
+ thinkingFormat: "zai";
18574
+ zaiToolStream: true;
18575
+ };
18576
+ reasoning: true;
18577
+ input: "text"[];
18578
+ cost: {
18579
+ input: number;
18580
+ output: number;
18581
+ cacheRead: number;
18582
+ cacheWrite: number;
18583
+ };
18584
+ contextWindow: number;
18585
+ maxTokens: number;
18586
+ };
18446
18587
  readonly "glm-5v-turbo": {
18447
18588
  id: string;
18448
18589
  name: string;