@caupulican/pi-ai 0.81.26 → 0.81.29

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 (60) hide show
  1. package/dist/models.d.ts.map +1 -1
  2. package/dist/models.generated.d.ts +489 -51
  3. package/dist/models.generated.d.ts.map +1 -1
  4. package/dist/models.generated.js +409 -84
  5. package/dist/models.generated.js.map +1 -1
  6. package/dist/models.js +18 -2
  7. package/dist/models.js.map +1 -1
  8. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  9. package/dist/providers/amazon-bedrock.js +7 -3
  10. package/dist/providers/amazon-bedrock.js.map +1 -1
  11. package/dist/providers/anthropic.d.ts.map +1 -1
  12. package/dist/providers/anthropic.js +1 -1
  13. package/dist/providers/anthropic.js.map +1 -1
  14. package/dist/providers/azure-openai-responses.d.ts +1 -1
  15. package/dist/providers/azure-openai-responses.d.ts.map +1 -1
  16. package/dist/providers/azure-openai-responses.js +3 -3
  17. package/dist/providers/azure-openai-responses.js.map +1 -1
  18. package/dist/providers/faux.d.ts +4 -2
  19. package/dist/providers/faux.d.ts.map +1 -1
  20. package/dist/providers/faux.js +2 -0
  21. package/dist/providers/faux.js.map +1 -1
  22. package/dist/providers/google-vertex.d.ts.map +1 -1
  23. package/dist/providers/google-vertex.js +8 -2
  24. package/dist/providers/google-vertex.js.map +1 -1
  25. package/dist/providers/google.d.ts.map +1 -1
  26. package/dist/providers/google.js +5 -2
  27. package/dist/providers/google.js.map +1 -1
  28. package/dist/providers/openai-codex-responses.d.ts +1 -1
  29. package/dist/providers/openai-codex-responses.d.ts.map +1 -1
  30. package/dist/providers/openai-codex-responses.js +145 -81
  31. package/dist/providers/openai-codex-responses.js.map +1 -1
  32. package/dist/providers/openai-completions.d.ts +1 -1
  33. package/dist/providers/openai-completions.d.ts.map +1 -1
  34. package/dist/providers/openai-completions.js +1 -1
  35. package/dist/providers/openai-completions.js.map +1 -1
  36. package/dist/providers/openai-responses-shared.d.ts +5 -1
  37. package/dist/providers/openai-responses-shared.d.ts.map +1 -1
  38. package/dist/providers/openai-responses-shared.js +19 -13
  39. package/dist/providers/openai-responses-shared.js.map +1 -1
  40. package/dist/providers/openai-responses.d.ts +1 -1
  41. package/dist/providers/openai-responses.d.ts.map +1 -1
  42. package/dist/providers/openai-responses.js +26 -7
  43. package/dist/providers/openai-responses.js.map +1 -1
  44. package/dist/providers/simple-options.d.ts +1 -1
  45. package/dist/providers/simple-options.d.ts.map +1 -1
  46. package/dist/providers/simple-options.js +4 -1
  47. package/dist/providers/simple-options.js.map +1 -1
  48. package/dist/stream.d.ts.map +1 -1
  49. package/dist/stream.js +6 -10
  50. package/dist/stream.js.map +1 -1
  51. package/dist/types.d.ts +33 -2
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/dist/utils/tool-repair/repairer.d.ts.map +1 -1
  55. package/dist/utils/tool-repair/repairer.js +76 -49
  56. package/dist/utils/tool-repair/repairer.js.map +1 -1
  57. package/dist/utils/tool-repair/text-protocol.d.ts.map +1 -1
  58. package/dist/utils/tool-repair/text-protocol.js +11 -12
  59. package/dist/utils/tool-repair/text-protocol.js.map +1 -1
  60. package/package.json +3 -3
@@ -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,EAC7C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/C,KAAK,CAAC,MAAM,CAAC,CASf;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>(\n\tmodel: Model<TApi>,\n\tusage: Usage,\n\toptions: { providerSuppliedTotal?: boolean } = {},\n): 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\tif (!options.providerSuppliedTotal) {\n\t\tusage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;\n\t}\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,EAC7C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/C,KAAK,CAAC,MAAM,CAAC,CAgBf;AAaD,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>(\n\tmodel: Model<TApi>,\n\tusage: Usage,\n\toptions: { providerSuppliedTotal?: boolean } = {},\n): 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\tconst longContextPricing = model.longContextPricing;\n\tif (longContextPricing && usage.input + usage.cacheRead + usage.cacheWrite > longContextPricing.thresholdTokens) {\n\t\tusage.cost.input *= longContextPricing.inputMultiplier;\n\t\tusage.cost.cacheRead *= longContextPricing.inputMultiplier;\n\t\tusage.cost.cacheWrite *= longContextPricing.inputMultiplier;\n\t\tusage.cost.output *= longContextPricing.outputMultiplier;\n\t}\n\tif (!options.providerSuppliedTotal) {\n\t\tusage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;\n\t}\n\treturn usage.cost;\n}\n\nconst EXTENDED_THINKING_LEVELS: ModelThinkingLevel[] = [\n\t\"off\",\n\t\"minimal\",\n\t\"low\",\n\t\"medium\",\n\t\"high\",\n\t\"xhigh\",\n\t\"max\",\n\t\"ultra\",\n];\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\" || level === \"max\" || level === \"ultra\") 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"]}
@@ -5140,6 +5140,93 @@ export declare const MODELS: {
5140
5140
  contextWindow: number;
5141
5141
  maxTokens: number;
5142
5142
  };
5143
+ readonly "gpt-5.6-luna": {
5144
+ id: string;
5145
+ name: string;
5146
+ api: "openai-responses";
5147
+ provider: string;
5148
+ baseUrl: string;
5149
+ headers: {
5150
+ "User-Agent": string;
5151
+ "Editor-Version": string;
5152
+ "Editor-Plugin-Version": string;
5153
+ "Copilot-Integration-Id": string;
5154
+ };
5155
+ reasoning: true;
5156
+ thinkingLevelMap: {
5157
+ off: null;
5158
+ minimal: string;
5159
+ xhigh: string;
5160
+ max: string;
5161
+ };
5162
+ input: ("image" | "text")[];
5163
+ cost: {
5164
+ input: number;
5165
+ output: number;
5166
+ cacheRead: number;
5167
+ cacheWrite: number;
5168
+ };
5169
+ contextWindow: number;
5170
+ maxTokens: number;
5171
+ };
5172
+ readonly "gpt-5.6-sol": {
5173
+ id: string;
5174
+ name: string;
5175
+ api: "openai-responses";
5176
+ provider: string;
5177
+ baseUrl: string;
5178
+ headers: {
5179
+ "User-Agent": string;
5180
+ "Editor-Version": string;
5181
+ "Editor-Plugin-Version": string;
5182
+ "Copilot-Integration-Id": string;
5183
+ };
5184
+ reasoning: true;
5185
+ thinkingLevelMap: {
5186
+ off: null;
5187
+ minimal: string;
5188
+ xhigh: string;
5189
+ max: string;
5190
+ };
5191
+ input: ("image" | "text")[];
5192
+ cost: {
5193
+ input: number;
5194
+ output: number;
5195
+ cacheRead: number;
5196
+ cacheWrite: number;
5197
+ };
5198
+ contextWindow: number;
5199
+ maxTokens: number;
5200
+ };
5201
+ readonly "gpt-5.6-terra": {
5202
+ id: string;
5203
+ name: string;
5204
+ api: "openai-responses";
5205
+ provider: string;
5206
+ baseUrl: string;
5207
+ headers: {
5208
+ "User-Agent": string;
5209
+ "Editor-Version": string;
5210
+ "Editor-Plugin-Version": string;
5211
+ "Copilot-Integration-Id": string;
5212
+ };
5213
+ reasoning: true;
5214
+ thinkingLevelMap: {
5215
+ off: null;
5216
+ minimal: string;
5217
+ xhigh: string;
5218
+ max: string;
5219
+ };
5220
+ input: ("image" | "text")[];
5221
+ cost: {
5222
+ input: number;
5223
+ output: number;
5224
+ cacheRead: number;
5225
+ cacheWrite: number;
5226
+ };
5227
+ contextWindow: number;
5228
+ maxTokens: number;
5229
+ };
5143
5230
  readonly "kimi-k2.7-code": {
5144
5231
  id: string;
5145
5232
  name: string;
@@ -8649,6 +8736,125 @@ export declare const MODELS: {
8649
8736
  contextWindow: number;
8650
8737
  maxTokens: number;
8651
8738
  };
8739
+ readonly "gpt-5.6": {
8740
+ id: string;
8741
+ name: string;
8742
+ api: "openai-responses";
8743
+ provider: string;
8744
+ baseUrl: string;
8745
+ reasoning: true;
8746
+ defaultThinkingLevel: "medium";
8747
+ thinkingLevelMap: {
8748
+ off: string;
8749
+ xhigh: string;
8750
+ max: string;
8751
+ ultra: string;
8752
+ minimal: null;
8753
+ };
8754
+ longContextPricing: {
8755
+ thresholdTokens: number;
8756
+ inputMultiplier: number;
8757
+ outputMultiplier: number;
8758
+ };
8759
+ input: ("image" | "text")[];
8760
+ cost: {
8761
+ input: number;
8762
+ output: number;
8763
+ cacheRead: number;
8764
+ cacheWrite: number;
8765
+ };
8766
+ contextWindow: number;
8767
+ maxTokens: number;
8768
+ };
8769
+ readonly "gpt-5.6-luna": {
8770
+ id: string;
8771
+ name: string;
8772
+ api: "openai-responses";
8773
+ provider: string;
8774
+ baseUrl: string;
8775
+ reasoning: true;
8776
+ defaultThinkingLevel: "medium";
8777
+ thinkingLevelMap: {
8778
+ off: string;
8779
+ xhigh: string;
8780
+ max: string;
8781
+ minimal: null;
8782
+ };
8783
+ longContextPricing: {
8784
+ thresholdTokens: number;
8785
+ inputMultiplier: number;
8786
+ outputMultiplier: number;
8787
+ };
8788
+ input: ("image" | "text")[];
8789
+ cost: {
8790
+ input: number;
8791
+ output: number;
8792
+ cacheRead: number;
8793
+ cacheWrite: number;
8794
+ };
8795
+ contextWindow: number;
8796
+ maxTokens: number;
8797
+ };
8798
+ readonly "gpt-5.6-sol": {
8799
+ id: string;
8800
+ name: string;
8801
+ api: "openai-responses";
8802
+ provider: string;
8803
+ baseUrl: string;
8804
+ reasoning: true;
8805
+ defaultThinkingLevel: "medium";
8806
+ thinkingLevelMap: {
8807
+ off: string;
8808
+ xhigh: string;
8809
+ max: string;
8810
+ ultra: string;
8811
+ minimal: null;
8812
+ };
8813
+ longContextPricing: {
8814
+ thresholdTokens: number;
8815
+ inputMultiplier: number;
8816
+ outputMultiplier: number;
8817
+ };
8818
+ input: ("image" | "text")[];
8819
+ cost: {
8820
+ input: number;
8821
+ output: number;
8822
+ cacheRead: number;
8823
+ cacheWrite: number;
8824
+ };
8825
+ contextWindow: number;
8826
+ maxTokens: number;
8827
+ };
8828
+ readonly "gpt-5.6-terra": {
8829
+ id: string;
8830
+ name: string;
8831
+ api: "openai-responses";
8832
+ provider: string;
8833
+ baseUrl: string;
8834
+ reasoning: true;
8835
+ defaultThinkingLevel: "medium";
8836
+ thinkingLevelMap: {
8837
+ off: string;
8838
+ xhigh: string;
8839
+ max: string;
8840
+ ultra: string;
8841
+ minimal: null;
8842
+ };
8843
+ longContextPricing: {
8844
+ thresholdTokens: number;
8845
+ inputMultiplier: number;
8846
+ outputMultiplier: number;
8847
+ };
8848
+ input: ("image" | "text")[];
8849
+ cost: {
8850
+ input: number;
8851
+ output: number;
8852
+ cacheRead: number;
8853
+ cacheWrite: number;
8854
+ };
8855
+ contextWindow: number;
8856
+ maxTokens: number;
8857
+ };
8652
8858
  readonly o1: {
8653
8859
  id: string;
8654
8860
  name: string;
@@ -8913,6 +9119,83 @@ export declare const MODELS: {
8913
9119
  contextWindow: number;
8914
9120
  maxTokens: number;
8915
9121
  };
9122
+ readonly "gpt-5.6-luna": {
9123
+ id: string;
9124
+ name: string;
9125
+ api: "openai-codex-responses";
9126
+ provider: string;
9127
+ baseUrl: string;
9128
+ reasoning: true;
9129
+ defaultThinkingLevel: "medium";
9130
+ thinkingLevelMap: {
9131
+ xhigh: string;
9132
+ max: string;
9133
+ minimal: null;
9134
+ off: null;
9135
+ };
9136
+ openaiResponsesLite: true;
9137
+ input: ("image" | "text")[];
9138
+ cost: {
9139
+ input: number;
9140
+ output: number;
9141
+ cacheRead: number;
9142
+ cacheWrite: number;
9143
+ };
9144
+ contextWindow: number;
9145
+ maxTokens: number;
9146
+ };
9147
+ readonly "gpt-5.6-sol": {
9148
+ id: string;
9149
+ name: string;
9150
+ api: "openai-codex-responses";
9151
+ provider: string;
9152
+ baseUrl: string;
9153
+ reasoning: true;
9154
+ defaultThinkingLevel: "low";
9155
+ thinkingLevelMap: {
9156
+ xhigh: string;
9157
+ max: string;
9158
+ ultra: string;
9159
+ minimal: null;
9160
+ off: null;
9161
+ };
9162
+ openaiResponsesLite: true;
9163
+ input: ("image" | "text")[];
9164
+ cost: {
9165
+ input: number;
9166
+ output: number;
9167
+ cacheRead: number;
9168
+ cacheWrite: number;
9169
+ };
9170
+ contextWindow: number;
9171
+ maxTokens: number;
9172
+ };
9173
+ readonly "gpt-5.6-terra": {
9174
+ id: string;
9175
+ name: string;
9176
+ api: "openai-codex-responses";
9177
+ provider: string;
9178
+ baseUrl: string;
9179
+ reasoning: true;
9180
+ defaultThinkingLevel: "medium";
9181
+ thinkingLevelMap: {
9182
+ xhigh: string;
9183
+ max: string;
9184
+ ultra: string;
9185
+ minimal: null;
9186
+ off: null;
9187
+ };
9188
+ openaiResponsesLite: true;
9189
+ input: ("image" | "text")[];
9190
+ cost: {
9191
+ input: number;
9192
+ output: number;
9193
+ cacheRead: number;
9194
+ cacheWrite: number;
9195
+ };
9196
+ contextWindow: number;
9197
+ maxTokens: number;
9198
+ };
8916
9199
  };
8917
9200
  readonly opencode: {
8918
9201
  readonly "big-pickle": {
@@ -11016,23 +11299,6 @@ export declare const MODELS: {
11016
11299
  contextWindow: number;
11017
11300
  maxTokens: number;
11018
11301
  };
11019
- readonly "google/gemini-2.5-flash-lite-preview-09-2025": {
11020
- id: string;
11021
- name: string;
11022
- api: "openai-completions";
11023
- provider: string;
11024
- baseUrl: string;
11025
- reasoning: true;
11026
- input: ("image" | "text")[];
11027
- cost: {
11028
- input: number;
11029
- output: number;
11030
- cacheRead: number;
11031
- cacheWrite: number;
11032
- };
11033
- contextWindow: number;
11034
- maxTokens: number;
11035
- };
11036
11302
  readonly "google/gemini-2.5-pro": {
11037
11303
  id: string;
11038
11304
  name: string;
@@ -12897,6 +13163,132 @@ export declare const MODELS: {
12897
13163
  contextWindow: number;
12898
13164
  maxTokens: number;
12899
13165
  };
13166
+ readonly "openai/gpt-5.6-luna": {
13167
+ id: string;
13168
+ name: string;
13169
+ api: "openai-completions";
13170
+ provider: string;
13171
+ baseUrl: string;
13172
+ reasoning: true;
13173
+ thinkingLevelMap: {
13174
+ xhigh: string;
13175
+ max: string;
13176
+ };
13177
+ input: ("image" | "text")[];
13178
+ cost: {
13179
+ input: number;
13180
+ output: number;
13181
+ cacheRead: number;
13182
+ cacheWrite: number;
13183
+ };
13184
+ contextWindow: number;
13185
+ maxTokens: number;
13186
+ };
13187
+ readonly "openai/gpt-5.6-luna-pro": {
13188
+ id: string;
13189
+ name: string;
13190
+ api: "openai-completions";
13191
+ provider: string;
13192
+ baseUrl: string;
13193
+ reasoning: true;
13194
+ thinkingLevelMap: {
13195
+ xhigh: string;
13196
+ max: string;
13197
+ };
13198
+ input: ("image" | "text")[];
13199
+ cost: {
13200
+ input: number;
13201
+ output: number;
13202
+ cacheRead: number;
13203
+ cacheWrite: number;
13204
+ };
13205
+ contextWindow: number;
13206
+ maxTokens: number;
13207
+ };
13208
+ readonly "openai/gpt-5.6-sol": {
13209
+ id: string;
13210
+ name: string;
13211
+ api: "openai-completions";
13212
+ provider: string;
13213
+ baseUrl: string;
13214
+ reasoning: true;
13215
+ thinkingLevelMap: {
13216
+ xhigh: string;
13217
+ max: string;
13218
+ };
13219
+ input: ("image" | "text")[];
13220
+ cost: {
13221
+ input: number;
13222
+ output: number;
13223
+ cacheRead: number;
13224
+ cacheWrite: number;
13225
+ };
13226
+ contextWindow: number;
13227
+ maxTokens: number;
13228
+ };
13229
+ readonly "openai/gpt-5.6-sol-pro": {
13230
+ id: string;
13231
+ name: string;
13232
+ api: "openai-completions";
13233
+ provider: string;
13234
+ baseUrl: string;
13235
+ reasoning: true;
13236
+ thinkingLevelMap: {
13237
+ xhigh: string;
13238
+ max: string;
13239
+ };
13240
+ input: ("image" | "text")[];
13241
+ cost: {
13242
+ input: number;
13243
+ output: number;
13244
+ cacheRead: number;
13245
+ cacheWrite: number;
13246
+ };
13247
+ contextWindow: number;
13248
+ maxTokens: number;
13249
+ };
13250
+ readonly "openai/gpt-5.6-terra": {
13251
+ id: string;
13252
+ name: string;
13253
+ api: "openai-completions";
13254
+ provider: string;
13255
+ baseUrl: string;
13256
+ reasoning: true;
13257
+ thinkingLevelMap: {
13258
+ xhigh: string;
13259
+ max: string;
13260
+ };
13261
+ input: ("image" | "text")[];
13262
+ cost: {
13263
+ input: number;
13264
+ output: number;
13265
+ cacheRead: number;
13266
+ cacheWrite: number;
13267
+ };
13268
+ contextWindow: number;
13269
+ maxTokens: number;
13270
+ };
13271
+ readonly "openai/gpt-5.6-terra-pro": {
13272
+ id: string;
13273
+ name: string;
13274
+ api: "openai-completions";
13275
+ provider: string;
13276
+ baseUrl: string;
13277
+ reasoning: true;
13278
+ thinkingLevelMap: {
13279
+ xhigh: string;
13280
+ max: string;
13281
+ };
13282
+ input: ("image" | "text")[];
13283
+ cost: {
13284
+ input: number;
13285
+ output: number;
13286
+ cacheRead: number;
13287
+ cacheWrite: number;
13288
+ };
13289
+ contextWindow: number;
13290
+ maxTokens: number;
13291
+ };
12900
13292
  readonly "openai/gpt-audio": {
12901
13293
  id: string;
12902
13294
  name: string;
@@ -13305,40 +13697,6 @@ export declare const MODELS: {
13305
13697
  contextWindow: number;
13306
13698
  maxTokens: number;
13307
13699
  };
13308
- readonly "poolside/laguna-xs.2": {
13309
- id: string;
13310
- name: string;
13311
- api: "openai-completions";
13312
- provider: string;
13313
- baseUrl: string;
13314
- reasoning: true;
13315
- input: "text"[];
13316
- cost: {
13317
- input: number;
13318
- output: number;
13319
- cacheRead: number;
13320
- cacheWrite: number;
13321
- };
13322
- contextWindow: number;
13323
- maxTokens: number;
13324
- };
13325
- readonly "poolside/laguna-xs.2:free": {
13326
- id: string;
13327
- name: string;
13328
- api: "openai-completions";
13329
- provider: string;
13330
- baseUrl: string;
13331
- reasoning: true;
13332
- input: "text"[];
13333
- cost: {
13334
- input: number;
13335
- output: number;
13336
- cacheRead: number;
13337
- cacheWrite: number;
13338
- };
13339
- contextWindow: number;
13340
- maxTokens: number;
13341
- };
13342
13700
  readonly "qwen/qwen-2.5-72b-instruct": {
13343
13701
  id: string;
13344
13702
  name: string;
@@ -16795,6 +17153,23 @@ export declare const MODELS: {
16795
17153
  contextWindow: number;
16796
17154
  maxTokens: number;
16797
17155
  };
17156
+ readonly "meta/muse-spark-1.1": {
17157
+ id: string;
17158
+ name: string;
17159
+ api: "anthropic-messages";
17160
+ provider: string;
17161
+ baseUrl: string;
17162
+ reasoning: true;
17163
+ input: ("image" | "text")[];
17164
+ cost: {
17165
+ input: number;
17166
+ output: number;
17167
+ cacheRead: number;
17168
+ cacheWrite: number;
17169
+ };
17170
+ contextWindow: number;
17171
+ maxTokens: number;
17172
+ };
16798
17173
  readonly "minimax/minimax-m2": {
16799
17174
  id: string;
16800
17175
  name: string;
@@ -17939,6 +18314,69 @@ export declare const MODELS: {
17939
18314
  contextWindow: number;
17940
18315
  maxTokens: number;
17941
18316
  };
18317
+ readonly "openai/gpt-5.6-luna": {
18318
+ id: string;
18319
+ name: string;
18320
+ api: "anthropic-messages";
18321
+ provider: string;
18322
+ baseUrl: string;
18323
+ reasoning: true;
18324
+ thinkingLevelMap: {
18325
+ xhigh: string;
18326
+ max: string;
18327
+ };
18328
+ input: ("image" | "text")[];
18329
+ cost: {
18330
+ input: number;
18331
+ output: number;
18332
+ cacheRead: number;
18333
+ cacheWrite: number;
18334
+ };
18335
+ contextWindow: number;
18336
+ maxTokens: number;
18337
+ };
18338
+ readonly "openai/gpt-5.6-sol": {
18339
+ id: string;
18340
+ name: string;
18341
+ api: "anthropic-messages";
18342
+ provider: string;
18343
+ baseUrl: string;
18344
+ reasoning: true;
18345
+ thinkingLevelMap: {
18346
+ xhigh: string;
18347
+ max: string;
18348
+ };
18349
+ input: ("image" | "text")[];
18350
+ cost: {
18351
+ input: number;
18352
+ output: number;
18353
+ cacheRead: number;
18354
+ cacheWrite: number;
18355
+ };
18356
+ contextWindow: number;
18357
+ maxTokens: number;
18358
+ };
18359
+ readonly "openai/gpt-5.6-terra": {
18360
+ id: string;
18361
+ name: string;
18362
+ api: "anthropic-messages";
18363
+ provider: string;
18364
+ baseUrl: string;
18365
+ reasoning: true;
18366
+ thinkingLevelMap: {
18367
+ xhigh: string;
18368
+ max: string;
18369
+ };
18370
+ input: ("image" | "text")[];
18371
+ cost: {
18372
+ input: number;
18373
+ output: number;
18374
+ cacheRead: number;
18375
+ cacheWrite: number;
18376
+ };
18377
+ contextWindow: number;
18378
+ maxTokens: number;
18379
+ };
17942
18380
  readonly "openai/gpt-oss-120b": {
17943
18381
  id: string;
17944
18382
  name: string;