@hyperspaceng/neural-ai 0.67.3 → 0.67.7

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 (58) hide show
  1. package/dist/index.d.ts +2 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/models.d.ts +1 -1
  5. package/dist/models.d.ts.map +1 -1
  6. package/dist/models.generated.d.ts +230 -37
  7. package/dist/models.generated.d.ts.map +1 -1
  8. package/dist/models.generated.js +267 -79
  9. package/dist/models.generated.js.map +1 -1
  10. package/dist/models.js +5 -2
  11. package/dist/models.js.map +1 -1
  12. package/dist/providers/amazon-bedrock.d.ts +18 -0
  13. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  14. package/dist/providers/amazon-bedrock.js +55 -3
  15. package/dist/providers/amazon-bedrock.js.map +1 -1
  16. package/dist/providers/anthropic.d.ts +16 -2
  17. package/dist/providers/anthropic.d.ts.map +1 -1
  18. package/dist/providers/anthropic.js +36 -15
  19. package/dist/providers/anthropic.js.map +1 -1
  20. package/dist/providers/azure-openai-responses.d.ts.map +1 -1
  21. package/dist/providers/azure-openai-responses.js +5 -1
  22. package/dist/providers/azure-openai-responses.js.map +1 -1
  23. package/dist/providers/faux.d.ts.map +1 -1
  24. package/dist/providers/faux.js +1 -0
  25. package/dist/providers/faux.js.map +1 -1
  26. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  27. package/dist/providers/google-gemini-cli.js +3 -0
  28. package/dist/providers/google-gemini-cli.js.map +1 -1
  29. package/dist/providers/google-vertex.d.ts.map +1 -1
  30. package/dist/providers/google-vertex.js +2 -1
  31. package/dist/providers/google-vertex.js.map +1 -1
  32. package/dist/providers/openai-codex-responses.d.ts.map +1 -1
  33. package/dist/providers/openai-codex-responses.js +10 -7
  34. package/dist/providers/openai-codex-responses.js.map +1 -1
  35. package/dist/providers/openai-completions.d.ts.map +1 -1
  36. package/dist/providers/openai-completions.js +5 -1
  37. package/dist/providers/openai-completions.js.map +1 -1
  38. package/dist/providers/openai-responses-shared.d.ts +1 -0
  39. package/dist/providers/openai-responses-shared.d.ts.map +1 -1
  40. package/dist/providers/openai-responses-shared.js +3 -1
  41. package/dist/providers/openai-responses-shared.js.map +1 -1
  42. package/dist/providers/openai-responses.d.ts.map +1 -1
  43. package/dist/providers/openai-responses.js +6 -2
  44. package/dist/providers/openai-responses.js.map +1 -1
  45. package/dist/providers/simple-options.d.ts.map +1 -1
  46. package/dist/providers/simple-options.js +1 -0
  47. package/dist/providers/simple-options.js.map +1 -1
  48. package/dist/providers/transform-messages.d.ts.map +1 -1
  49. package/dist/providers/transform-messages.js +20 -32
  50. package/dist/providers/transform-messages.js.map +1 -1
  51. package/dist/types.d.ts +9 -0
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/dist/utils/headers.d.ts +2 -0
  55. package/dist/utils/headers.d.ts.map +1 -0
  56. package/dist/utils/headers.js +8 -0
  57. package/dist/utils/headers.js.map +1 -0
  58. package/package.json +3 -3
package/dist/index.d.ts CHANGED
@@ -3,8 +3,8 @@ export { Type } from "@sinclair/typebox";
3
3
  export * from "./api-registry.js";
4
4
  export * from "./env-api-keys.js";
5
5
  export * from "./models.js";
6
- export type { BedrockOptions } from "./providers/amazon-bedrock.js";
7
- export type { AnthropicOptions } from "./providers/anthropic.js";
6
+ export type { BedrockOptions, BedrockThinkingDisplay } from "./providers/amazon-bedrock.js";
7
+ export type { AnthropicEffort, AnthropicOptions, AnthropicThinkingDisplay } from "./providers/anthropic.js";
8
8
  export type { AzureOpenAIResponsesOptions } from "./providers/azure-openai-responses.js";
9
9
  export * from "./providers/faux.js";
10
10
  export type { GoogleOptions } from "./providers/google.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACpG,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,YAAY,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAClF,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,YAAY,EACX,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,wBAAwB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC","sourcesContent":["export type { Static, TSchema } from \"@sinclair/typebox\";\nexport { Type } from \"@sinclair/typebox\";\n\nexport * from \"./api-registry.js\";\nexport * from \"./env-api-keys.js\";\nexport * from \"./models.js\";\nexport type { BedrockOptions } from \"./providers/amazon-bedrock.js\";\nexport type { AnthropicOptions } from \"./providers/anthropic.js\";\nexport type { AzureOpenAIResponsesOptions } from \"./providers/azure-openai-responses.js\";\nexport * from \"./providers/faux.js\";\nexport type { GoogleOptions } from \"./providers/google.js\";\nexport type { GoogleGeminiCliOptions, GoogleThinkingLevel } from \"./providers/google-gemini-cli.js\";\nexport type { GoogleVertexOptions } from \"./providers/google-vertex.js\";\nexport type { MistralOptions } from \"./providers/mistral.js\";\nexport type { OpenAICodexResponsesOptions } from \"./providers/openai-codex-responses.js\";\nexport type { OpenAICompletionsOptions } from \"./providers/openai-completions.js\";\nexport type { OpenAIResponsesOptions } from \"./providers/openai-responses.js\";\nexport * from \"./providers/register-builtins.js\";\nexport * from \"./stream.js\";\nexport * from \"./types.js\";\nexport * from \"./utils/event-stream.js\";\nexport * from \"./utils/json-parse.js\";\nexport type {\n\tOAuthAuthInfo,\n\tOAuthCredentials,\n\tOAuthLoginCallbacks,\n\tOAuthPrompt,\n\tOAuthProvider,\n\tOAuthProviderId,\n\tOAuthProviderInfo,\n\tOAuthProviderInterface,\n} from \"./utils/oauth/types.js\";\nexport * from \"./utils/overflow.js\";\nexport * from \"./utils/typebox-helpers.js\";\nexport * from \"./utils/validation.js\";\n"]}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC5G,YAAY,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACpG,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,YAAY,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAClF,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,YAAY,EACX,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,wBAAwB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC","sourcesContent":["export type { Static, TSchema } from \"@sinclair/typebox\";\nexport { Type } from \"@sinclair/typebox\";\n\nexport * from \"./api-registry.js\";\nexport * from \"./env-api-keys.js\";\nexport * from \"./models.js\";\nexport type { BedrockOptions, BedrockThinkingDisplay } from \"./providers/amazon-bedrock.js\";\nexport type { AnthropicEffort, AnthropicOptions, AnthropicThinkingDisplay } from \"./providers/anthropic.js\";\nexport type { AzureOpenAIResponsesOptions } from \"./providers/azure-openai-responses.js\";\nexport * from \"./providers/faux.js\";\nexport type { GoogleOptions } from \"./providers/google.js\";\nexport type { GoogleGeminiCliOptions, GoogleThinkingLevel } from \"./providers/google-gemini-cli.js\";\nexport type { GoogleVertexOptions } from \"./providers/google-vertex.js\";\nexport type { MistralOptions } from \"./providers/mistral.js\";\nexport type { OpenAICodexResponsesOptions } from \"./providers/openai-codex-responses.js\";\nexport type { OpenAICompletionsOptions } from \"./providers/openai-completions.js\";\nexport type { OpenAIResponsesOptions } from \"./providers/openai-responses.js\";\nexport * from \"./providers/register-builtins.js\";\nexport * from \"./stream.js\";\nexport * from \"./types.js\";\nexport * from \"./utils/event-stream.js\";\nexport * from \"./utils/json-parse.js\";\nexport type {\n\tOAuthAuthInfo,\n\tOAuthCredentials,\n\tOAuthLoginCallbacks,\n\tOAuthPrompt,\n\tOAuthProvider,\n\tOAuthProviderId,\n\tOAuthProviderInfo,\n\tOAuthProviderInterface,\n} from \"./utils/oauth/types.js\";\nexport * from \"./utils/overflow.js\";\nexport * from \"./utils/typebox-helpers.js\";\nexport * from \"./utils/validation.js\";\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAI5B,cAAc,qBAAqB,CAAC;AAQpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AAWtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC","sourcesContent":["export type { Static, TSchema } from \"@sinclair/typebox\";\nexport { Type } from \"@sinclair/typebox\";\n\nexport * from \"./api-registry.js\";\nexport * from \"./env-api-keys.js\";\nexport * from \"./models.js\";\nexport type { BedrockOptions } from \"./providers/amazon-bedrock.js\";\nexport type { AnthropicOptions } from \"./providers/anthropic.js\";\nexport type { AzureOpenAIResponsesOptions } from \"./providers/azure-openai-responses.js\";\nexport * from \"./providers/faux.js\";\nexport type { GoogleOptions } from \"./providers/google.js\";\nexport type { GoogleGeminiCliOptions, GoogleThinkingLevel } from \"./providers/google-gemini-cli.js\";\nexport type { GoogleVertexOptions } from \"./providers/google-vertex.js\";\nexport type { MistralOptions } from \"./providers/mistral.js\";\nexport type { OpenAICodexResponsesOptions } from \"./providers/openai-codex-responses.js\";\nexport type { OpenAICompletionsOptions } from \"./providers/openai-completions.js\";\nexport type { OpenAIResponsesOptions } from \"./providers/openai-responses.js\";\nexport * from \"./providers/register-builtins.js\";\nexport * from \"./stream.js\";\nexport * from \"./types.js\";\nexport * from \"./utils/event-stream.js\";\nexport * from \"./utils/json-parse.js\";\nexport type {\n\tOAuthAuthInfo,\n\tOAuthCredentials,\n\tOAuthLoginCallbacks,\n\tOAuthPrompt,\n\tOAuthProvider,\n\tOAuthProviderId,\n\tOAuthProviderInfo,\n\tOAuthProviderInterface,\n} from \"./utils/oauth/types.js\";\nexport * from \"./utils/overflow.js\";\nexport * from \"./utils/typebox-helpers.js\";\nexport * from \"./utils/validation.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAI5B,cAAc,qBAAqB,CAAC;AAQpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AAWtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC","sourcesContent":["export type { Static, TSchema } from \"@sinclair/typebox\";\nexport { Type } from \"@sinclair/typebox\";\n\nexport * from \"./api-registry.js\";\nexport * from \"./env-api-keys.js\";\nexport * from \"./models.js\";\nexport type { BedrockOptions, BedrockThinkingDisplay } from \"./providers/amazon-bedrock.js\";\nexport type { AnthropicEffort, AnthropicOptions, AnthropicThinkingDisplay } from \"./providers/anthropic.js\";\nexport type { AzureOpenAIResponsesOptions } from \"./providers/azure-openai-responses.js\";\nexport * from \"./providers/faux.js\";\nexport type { GoogleOptions } from \"./providers/google.js\";\nexport type { GoogleGeminiCliOptions, GoogleThinkingLevel } from \"./providers/google-gemini-cli.js\";\nexport type { GoogleVertexOptions } from \"./providers/google-vertex.js\";\nexport type { MistralOptions } from \"./providers/mistral.js\";\nexport type { OpenAICodexResponsesOptions } from \"./providers/openai-codex-responses.js\";\nexport type { OpenAICompletionsOptions } from \"./providers/openai-completions.js\";\nexport type { OpenAIResponsesOptions } from \"./providers/openai-responses.js\";\nexport * from \"./providers/register-builtins.js\";\nexport * from \"./stream.js\";\nexport * from \"./types.js\";\nexport * from \"./utils/event-stream.js\";\nexport * from \"./utils/json-parse.js\";\nexport type {\n\tOAuthAuthInfo,\n\tOAuthCredentials,\n\tOAuthLoginCallbacks,\n\tOAuthPrompt,\n\tOAuthProvider,\n\tOAuthProviderId,\n\tOAuthProviderInfo,\n\tOAuthProviderInterface,\n} from \"./utils/oauth/types.js\";\nexport * from \"./utils/overflow.js\";\nexport * from \"./utils/typebox-helpers.js\";\nexport * from \"./utils/validation.js\";\n"]}
package/dist/models.d.ts CHANGED
@@ -12,7 +12,7 @@ export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usag
12
12
  *
13
13
  * Supported today:
14
14
  * - GPT-5.2 / GPT-5.3 / GPT-5.4 model families
15
- * - Opus 4.6 models (xhigh maps to adaptive effort "max" on Anthropic-compatible providers)
15
+ * - Opus 4.6+ models (xhigh maps to adaptive effort "max" on Anthropic-compatible providers)
16
16
  */
17
17
  export declare function supportsXhigh<TApi extends Api>(model: Model<TApi>): boolean;
18
18
  /**
@@ -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,KAAK,EAAE,MAAM,YAAY,CAAC;AAanE,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;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAU3E;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.js\";\nimport type { Api, KnownProvider, Model, Usage } from \"./types.js\";\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\n/**\n * Check if a model supports xhigh thinking level.\n *\n * Supported today:\n * - GPT-5.2 / GPT-5.3 / GPT-5.4 model families\n * - Opus 4.6 models (xhigh maps to adaptive effort \"max\" on Anthropic-compatible providers)\n */\nexport function supportsXhigh<TApi extends Api>(model: Model<TApi>): boolean {\n\tif (model.id.includes(\"gpt-5.2\") || model.id.includes(\"gpt-5.3\") || model.id.includes(\"gpt-5.4\")) {\n\t\treturn true;\n\t}\n\n\tif (model.id.includes(\"opus-4-6\") || model.id.includes(\"opus-4.6\")) {\n\t\treturn true;\n\t}\n\n\treturn false;\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,KAAK,EAAE,MAAM,YAAY,CAAC;AAanE,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;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAe3E;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.js\";\nimport type { Api, KnownProvider, Model, Usage } from \"./types.js\";\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\n/**\n * Check if a model supports xhigh thinking level.\n *\n * Supported today:\n * - GPT-5.2 / GPT-5.3 / GPT-5.4 model families\n * - Opus 4.6+ models (xhigh maps to adaptive effort \"max\" on Anthropic-compatible providers)\n */\nexport function supportsXhigh<TApi extends Api>(model: Model<TApi>): boolean {\n\tif (model.id.includes(\"gpt-5.2\") || model.id.includes(\"gpt-5.3\") || model.id.includes(\"gpt-5.4\")) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tmodel.id.includes(\"opus-4-6\") ||\n\t\tmodel.id.includes(\"opus-4.6\") ||\n\t\tmodel.id.includes(\"opus-4-7\") ||\n\t\tmodel.id.includes(\"opus-4.7\")\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\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"]}
@@ -255,6 +255,23 @@ export declare const MODELS: {
255
255
  contextWindow: number;
256
256
  maxTokens: number;
257
257
  };
258
+ readonly "anthropic.claude-opus-4-7": {
259
+ id: string;
260
+ name: string;
261
+ api: "bedrock-converse-stream";
262
+ provider: string;
263
+ baseUrl: string;
264
+ reasoning: true;
265
+ input: ("image" | "text")[];
266
+ cost: {
267
+ input: number;
268
+ output: number;
269
+ cacheRead: number;
270
+ cacheWrite: number;
271
+ };
272
+ contextWindow: number;
273
+ maxTokens: number;
274
+ };
258
275
  readonly "anthropic.claude-sonnet-4-20250514-v1:0": {
259
276
  id: string;
260
277
  name: string;
@@ -408,6 +425,23 @@ export declare const MODELS: {
408
425
  contextWindow: number;
409
426
  maxTokens: number;
410
427
  };
428
+ readonly "eu.anthropic.claude-opus-4-7": {
429
+ id: string;
430
+ name: string;
431
+ api: "bedrock-converse-stream";
432
+ provider: string;
433
+ baseUrl: string;
434
+ reasoning: true;
435
+ input: ("image" | "text")[];
436
+ cost: {
437
+ input: number;
438
+ output: number;
439
+ cacheRead: number;
440
+ cacheWrite: number;
441
+ };
442
+ contextWindow: number;
443
+ maxTokens: number;
444
+ };
411
445
  readonly "eu.anthropic.claude-sonnet-4-20250514-v1:0": {
412
446
  id: string;
413
447
  name: string;
@@ -510,6 +544,23 @@ export declare const MODELS: {
510
544
  contextWindow: number;
511
545
  maxTokens: number;
512
546
  };
547
+ readonly "global.anthropic.claude-opus-4-7": {
548
+ id: string;
549
+ name: string;
550
+ api: "bedrock-converse-stream";
551
+ provider: string;
552
+ baseUrl: string;
553
+ reasoning: true;
554
+ input: ("image" | "text")[];
555
+ cost: {
556
+ input: number;
557
+ output: number;
558
+ cacheRead: number;
559
+ cacheWrite: number;
560
+ };
561
+ contextWindow: number;
562
+ maxTokens: number;
563
+ };
513
564
  readonly "global.anthropic.claude-sonnet-4-20250514-v1:0": {
514
565
  id: string;
515
566
  name: string;
@@ -1343,6 +1394,23 @@ export declare const MODELS: {
1343
1394
  contextWindow: number;
1344
1395
  maxTokens: number;
1345
1396
  };
1397
+ readonly "us.anthropic.claude-opus-4-7": {
1398
+ id: string;
1399
+ name: string;
1400
+ api: "bedrock-converse-stream";
1401
+ provider: string;
1402
+ baseUrl: string;
1403
+ reasoning: true;
1404
+ input: ("image" | "text")[];
1405
+ cost: {
1406
+ input: number;
1407
+ output: number;
1408
+ cacheRead: number;
1409
+ cacheWrite: number;
1410
+ };
1411
+ contextWindow: number;
1412
+ maxTokens: number;
1413
+ };
1346
1414
  readonly "us.anthropic.claude-sonnet-4-20250514-v1:0": {
1347
1415
  id: string;
1348
1416
  name: string;
@@ -1770,7 +1838,7 @@ export declare const MODELS: {
1770
1838
  contextWindow: number;
1771
1839
  maxTokens: number;
1772
1840
  };
1773
- readonly "claude-sonnet-4-0": {
1841
+ readonly "claude-opus-4-7": {
1774
1842
  id: string;
1775
1843
  name: string;
1776
1844
  api: "anthropic-messages";
@@ -1787,7 +1855,7 @@ export declare const MODELS: {
1787
1855
  contextWindow: number;
1788
1856
  maxTokens: number;
1789
1857
  };
1790
- readonly "claude-sonnet-4-20250514": {
1858
+ readonly "claude-sonnet-4-0": {
1791
1859
  id: string;
1792
1860
  name: string;
1793
1861
  api: "anthropic-messages";
@@ -1804,7 +1872,7 @@ export declare const MODELS: {
1804
1872
  contextWindow: number;
1805
1873
  maxTokens: number;
1806
1874
  };
1807
- readonly "claude-sonnet-4-5": {
1875
+ readonly "claude-sonnet-4-20250514": {
1808
1876
  id: string;
1809
1877
  name: string;
1810
1878
  api: "anthropic-messages";
@@ -1821,7 +1889,7 @@ export declare const MODELS: {
1821
1889
  contextWindow: number;
1822
1890
  maxTokens: number;
1823
1891
  };
1824
- readonly "claude-sonnet-4-5-20250929": {
1892
+ readonly "claude-sonnet-4-5": {
1825
1893
  id: string;
1826
1894
  name: string;
1827
1895
  api: "anthropic-messages";
@@ -1838,7 +1906,7 @@ export declare const MODELS: {
1838
1906
  contextWindow: number;
1839
1907
  maxTokens: number;
1840
1908
  };
1841
- readonly "claude-sonnet-4-6": {
1909
+ readonly "claude-sonnet-4-5-20250929": {
1842
1910
  id: string;
1843
1911
  name: string;
1844
1912
  api: "anthropic-messages";
@@ -1855,16 +1923,14 @@ export declare const MODELS: {
1855
1923
  contextWindow: number;
1856
1924
  maxTokens: number;
1857
1925
  };
1858
- };
1859
- readonly "azure-openai-responses": {
1860
- readonly "codex-mini-latest": {
1926
+ readonly "claude-sonnet-4-6": {
1861
1927
  id: string;
1862
1928
  name: string;
1863
- api: "azure-openai-responses";
1929
+ api: "anthropic-messages";
1864
1930
  provider: string;
1865
1931
  baseUrl: string;
1866
1932
  reasoning: true;
1867
- input: "text"[];
1933
+ input: ("image" | "text")[];
1868
1934
  cost: {
1869
1935
  input: number;
1870
1936
  output: number;
@@ -1874,6 +1940,8 @@ export declare const MODELS: {
1874
1940
  contextWindow: number;
1875
1941
  maxTokens: number;
1876
1942
  };
1943
+ };
1944
+ readonly "azure-openai-responses": {
1877
1945
  readonly "gpt-4": {
1878
1946
  id: string;
1879
1947
  name: string;
@@ -2695,6 +2763,29 @@ export declare const MODELS: {
2695
2763
  contextWindow: number;
2696
2764
  maxTokens: number;
2697
2765
  };
2766
+ readonly "claude-opus-4.7": {
2767
+ id: string;
2768
+ name: string;
2769
+ api: "anthropic-messages";
2770
+ provider: string;
2771
+ baseUrl: string;
2772
+ headers: {
2773
+ "User-Agent": string;
2774
+ "Editor-Version": string;
2775
+ "Editor-Plugin-Version": string;
2776
+ "Copilot-Integration-Id": string;
2777
+ };
2778
+ reasoning: true;
2779
+ input: ("image" | "text")[];
2780
+ cost: {
2781
+ input: number;
2782
+ output: number;
2783
+ cacheRead: number;
2784
+ cacheWrite: number;
2785
+ };
2786
+ contextWindow: number;
2787
+ maxTokens: number;
2788
+ };
2698
2789
  readonly "claude-sonnet-4": {
2699
2790
  id: string;
2700
2791
  name: string;
@@ -4868,7 +4959,7 @@ export declare const MODELS: {
4868
4959
  };
4869
4960
  };
4870
4961
  readonly "kimi-coding": {
4871
- readonly k2p5: {
4962
+ readonly "kimi-for-coding": {
4872
4963
  id: string;
4873
4964
  name: string;
4874
4965
  api: "anthropic-messages";
@@ -5420,23 +5511,6 @@ export declare const MODELS: {
5420
5511
  };
5421
5512
  };
5422
5513
  readonly openai: {
5423
- readonly "codex-mini-latest": {
5424
- id: string;
5425
- name: string;
5426
- api: "openai-responses";
5427
- provider: string;
5428
- baseUrl: string;
5429
- reasoning: true;
5430
- input: "text"[];
5431
- cost: {
5432
- input: number;
5433
- output: number;
5434
- cacheRead: number;
5435
- cacheWrite: number;
5436
- };
5437
- contextWindow: number;
5438
- maxTokens: number;
5439
- };
5440
5514
  readonly "gpt-4": {
5441
5515
  id: string;
5442
5516
  name: string;
@@ -6376,6 +6450,23 @@ export declare const MODELS: {
6376
6450
  contextWindow: number;
6377
6451
  maxTokens: number;
6378
6452
  };
6453
+ readonly "claude-opus-4-7": {
6454
+ id: string;
6455
+ name: string;
6456
+ api: "anthropic-messages";
6457
+ provider: string;
6458
+ baseUrl: string;
6459
+ reasoning: true;
6460
+ input: ("image" | "text")[];
6461
+ cost: {
6462
+ input: number;
6463
+ output: number;
6464
+ cacheRead: number;
6465
+ cacheWrite: number;
6466
+ };
6467
+ contextWindow: number;
6468
+ maxTokens: number;
6469
+ };
6379
6470
  readonly "claude-sonnet-4": {
6380
6471
  id: string;
6381
6472
  name: string;
@@ -6801,6 +6892,40 @@ export declare const MODELS: {
6801
6892
  contextWindow: number;
6802
6893
  maxTokens: number;
6803
6894
  };
6895
+ readonly "qwen3.5-plus": {
6896
+ id: string;
6897
+ name: string;
6898
+ api: "openai-completions";
6899
+ provider: string;
6900
+ baseUrl: string;
6901
+ reasoning: true;
6902
+ input: ("image" | "text")[];
6903
+ cost: {
6904
+ input: number;
6905
+ output: number;
6906
+ cacheRead: number;
6907
+ cacheWrite: number;
6908
+ };
6909
+ contextWindow: number;
6910
+ maxTokens: number;
6911
+ };
6912
+ readonly "qwen3.6-plus": {
6913
+ id: string;
6914
+ name: string;
6915
+ api: "openai-completions";
6916
+ provider: string;
6917
+ baseUrl: string;
6918
+ reasoning: true;
6919
+ input: ("image" | "text")[];
6920
+ cost: {
6921
+ input: number;
6922
+ output: number;
6923
+ cacheRead: number;
6924
+ cacheWrite: number;
6925
+ };
6926
+ contextWindow: number;
6927
+ maxTokens: number;
6928
+ };
6804
6929
  };
6805
6930
  readonly "opencode-go": {
6806
6931
  readonly "glm-5": {
@@ -6891,7 +7016,7 @@ export declare const MODELS: {
6891
7016
  readonly "minimax-m2.5": {
6892
7017
  id: string;
6893
7018
  name: string;
6894
- api: "anthropic-messages";
7019
+ api: "openai-completions";
6895
7020
  provider: string;
6896
7021
  baseUrl: string;
6897
7022
  reasoning: true;
@@ -6922,6 +7047,40 @@ export declare const MODELS: {
6922
7047
  contextWindow: number;
6923
7048
  maxTokens: number;
6924
7049
  };
7050
+ readonly "qwen3.5-plus": {
7051
+ id: string;
7052
+ name: string;
7053
+ api: "openai-completions";
7054
+ provider: string;
7055
+ baseUrl: string;
7056
+ reasoning: true;
7057
+ input: ("image" | "text")[];
7058
+ cost: {
7059
+ input: number;
7060
+ output: number;
7061
+ cacheRead: number;
7062
+ cacheWrite: number;
7063
+ };
7064
+ contextWindow: number;
7065
+ maxTokens: number;
7066
+ };
7067
+ readonly "qwen3.6-plus": {
7068
+ id: string;
7069
+ name: string;
7070
+ api: "openai-completions";
7071
+ provider: string;
7072
+ baseUrl: string;
7073
+ reasoning: true;
7074
+ input: ("image" | "text")[];
7075
+ cost: {
7076
+ input: number;
7077
+ output: number;
7078
+ cacheRead: number;
7079
+ cacheWrite: number;
7080
+ };
7081
+ contextWindow: number;
7082
+ maxTokens: number;
7083
+ };
6925
7084
  };
6926
7085
  readonly openrouter: {
6927
7086
  readonly "ai21/jamba-large-1.7": {
@@ -7230,6 +7389,23 @@ export declare const MODELS: {
7230
7389
  contextWindow: number;
7231
7390
  maxTokens: number;
7232
7391
  };
7392
+ readonly "anthropic/claude-opus-4.7": {
7393
+ id: string;
7394
+ name: string;
7395
+ api: "openai-completions";
7396
+ provider: string;
7397
+ baseUrl: string;
7398
+ reasoning: true;
7399
+ input: ("image" | "text")[];
7400
+ cost: {
7401
+ input: number;
7402
+ output: number;
7403
+ cacheRead: number;
7404
+ cacheWrite: number;
7405
+ };
7406
+ contextWindow: number;
7407
+ maxTokens: number;
7408
+ };
7233
7409
  readonly "anthropic/claude-sonnet-4": {
7234
7410
  id: string;
7235
7411
  name: string;
@@ -7525,7 +7701,7 @@ export declare const MODELS: {
7525
7701
  api: "openai-completions";
7526
7702
  provider: string;
7527
7703
  baseUrl: string;
7528
- reasoning: true;
7704
+ reasoning: false;
7529
7705
  input: "text"[];
7530
7706
  cost: {
7531
7707
  input: number;
@@ -11567,6 +11743,23 @@ export declare const MODELS: {
11567
11743
  contextWindow: number;
11568
11744
  maxTokens: number;
11569
11745
  };
11746
+ readonly "anthropic/claude-opus-4.7": {
11747
+ id: string;
11748
+ name: string;
11749
+ api: "anthropic-messages";
11750
+ provider: string;
11751
+ baseUrl: string;
11752
+ reasoning: true;
11753
+ input: ("image" | "text")[];
11754
+ cost: {
11755
+ input: number;
11756
+ output: number;
11757
+ cacheRead: number;
11758
+ cacheWrite: number;
11759
+ };
11760
+ contextWindow: number;
11761
+ maxTokens: number;
11762
+ };
11570
11763
  readonly "anthropic/claude-sonnet-4": {
11571
11764
  id: string;
11572
11765
  name: string;
@@ -13325,7 +13518,7 @@ export declare const MODELS: {
13325
13518
  provider: string;
13326
13519
  baseUrl: string;
13327
13520
  reasoning: false;
13328
- input: "text"[];
13521
+ input: ("image" | "text")[];
13329
13522
  cost: {
13330
13523
  input: number;
13331
13524
  output: number;
@@ -13342,7 +13535,7 @@ export declare const MODELS: {
13342
13535
  provider: string;
13343
13536
  baseUrl: string;
13344
13537
  reasoning: true;
13345
- input: "text"[];
13538
+ input: ("image" | "text")[];
13346
13539
  cost: {
13347
13540
  input: number;
13348
13541
  output: number;
@@ -13359,7 +13552,7 @@ export declare const MODELS: {
13359
13552
  provider: string;
13360
13553
  baseUrl: string;
13361
13554
  reasoning: false;
13362
- input: "text"[];
13555
+ input: ("image" | "text")[];
13363
13556
  cost: {
13364
13557
  input: number;
13365
13558
  output: number;
@@ -13376,7 +13569,7 @@ export declare const MODELS: {
13376
13569
  provider: string;
13377
13570
  baseUrl: string;
13378
13571
  reasoning: true;
13379
- input: "text"[];
13572
+ input: ("image" | "text")[];
13380
13573
  cost: {
13381
13574
  input: number;
13382
13575
  output: number;
@@ -13393,7 +13586,7 @@ export declare const MODELS: {
13393
13586
  provider: string;
13394
13587
  baseUrl: string;
13395
13588
  reasoning: true;
13396
- input: "text"[];
13589
+ input: ("image" | "text")[];
13397
13590
  cost: {
13398
13591
  input: number;
13399
13592
  output: number;
@@ -13410,7 +13603,7 @@ export declare const MODELS: {
13410
13603
  provider: string;
13411
13604
  baseUrl: string;
13412
13605
  reasoning: true;
13413
- input: "text"[];
13606
+ input: ("image" | "text")[];
13414
13607
  cost: {
13415
13608
  input: number;
13416
13609
  output: number;
@@ -13733,7 +13926,7 @@ export declare const MODELS: {
13733
13926
  provider: string;
13734
13927
  baseUrl: string;
13735
13928
  reasoning: true;
13736
- input: "text"[];
13929
+ input: ("image" | "text")[];
13737
13930
  cost: {
13738
13931
  input: number;
13739
13932
  output: number;