@mariozechner/pi-ai 0.50.1 → 0.50.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.
- package/README.md +13 -0
- package/dist/env-api-keys.d.ts.map +1 -1
- package/dist/env-api-keys.js +1 -0
- package/dist/env-api-keys.js.map +1 -1
- package/dist/models.generated.d.ts +439 -17
- package/dist/models.generated.d.ts.map +1 -1
- package/dist/models.generated.js +414 -23
- package/dist/models.generated.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +38 -9
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/openai-completions.d.ts.map +1 -1
- package/dist/providers/openai-completions.js +12 -0
- package/dist/providers/openai-completions.js.map +1 -1
- package/dist/providers/openai-responses-shared.d.ts.map +1 -1
- package/dist/providers/openai-responses-shared.js +5 -2
- package/dist/providers/openai-responses-shared.js.map +1 -1
- package/dist/providers/openai-responses.d.ts.map +1 -1
- package/dist/providers/openai-responses.js +14 -0
- package/dist/providers/openai-responses.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/overflow.d.ts +2 -2
- package/dist/utils/overflow.d.ts.map +1 -1
- package/dist/utils/overflow.js +7 -7
- package/dist/utils/overflow.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -909,6 +909,19 @@ const response = await complete(model, context, {
|
|
|
909
909
|
});
|
|
910
910
|
```
|
|
911
911
|
|
|
912
|
+
#### Cache Retention
|
|
913
|
+
|
|
914
|
+
Set `PI_CACHE_RETENTION=long` to extend prompt cache retention:
|
|
915
|
+
|
|
916
|
+
| Provider | Default | With `PI_CACHE_RETENTION=long` |
|
|
917
|
+
|----------|---------|-------------------------------|
|
|
918
|
+
| Anthropic | 5 minutes | 1 hour |
|
|
919
|
+
| OpenAI | in-memory | 24 hours |
|
|
920
|
+
|
|
921
|
+
This only affects direct API calls to `api.anthropic.com` and `api.openai.com`. Proxies and other providers are unaffected.
|
|
922
|
+
|
|
923
|
+
> **Note**: Extended cache retention may increase costs for Anthropic (cache writes are charged at a higher rate). OpenAI's 24h retention has no additional cost.
|
|
924
|
+
|
|
912
925
|
### Checking Environment Variables
|
|
913
926
|
|
|
914
927
|
```typescript
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-api-keys.d.ts","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA0BhD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAC1E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC","sourcesContent":["// NEVER convert to top-level imports - breaks browser/Vite builds (web-ui)\nlet _existsSync: typeof import(\"node:fs\").existsSync | null = null;\nlet _homedir: typeof import(\"node:os\").homedir | null = null;\nlet _join: typeof import(\"node:path\").join | null = null;\n\n// Eagerly load in Node.js/Bun environment only\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n\timport(\"node:fs\").then((m) => {\n\t\t_existsSync = m.existsSync;\n\t});\n\timport(\"node:os\").then((m) => {\n\t\t_homedir = m.homedir;\n\t});\n\timport(\"node:path\").then((m) => {\n\t\t_join = m.join;\n\t});\n}\n\nimport type { KnownProvider } from \"./types.js\";\n\nlet cachedVertexAdcCredentialsExists: boolean | null = null;\n\nfunction hasVertexAdcCredentials(): boolean {\n\tif (cachedVertexAdcCredentialsExists === null) {\n\t\t// In browser or if node modules not loaded yet, return false\n\t\tif (!_existsSync || !_homedir || !_join) {\n\t\t\tcachedVertexAdcCredentialsExists = false;\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check GOOGLE_APPLICATION_CREDENTIALS env var first (standard way)\n\t\tconst gacPath = process.env.GOOGLE_APPLICATION_CREDENTIALS;\n\t\tif (gacPath) {\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(gacPath);\n\t\t} else {\n\t\t\t// Fall back to default ADC path (lazy evaluation)\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(\n\t\t\t\t_join(_homedir(), \".config\", \"gcloud\", \"application_default_credentials.json\"),\n\t\t\t);\n\t\t}\n\t}\n\treturn cachedVertexAdcCredentialsExists;\n}\n\n/**\n * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.\n *\n * Will not return API keys for providers that require OAuth tokens.\n */\nexport function getEnvApiKey(provider: KnownProvider): string | undefined;\nexport function getEnvApiKey(provider: string): string | undefined;\nexport function getEnvApiKey(provider: any): string | undefined {\n\t// Fall back to environment variables\n\tif (provider === \"github-copilot\") {\n\t\treturn process.env.COPILOT_GITHUB_TOKEN || process.env.GH_TOKEN || process.env.GITHUB_TOKEN;\n\t}\n\n\t// ANTHROPIC_OAUTH_TOKEN takes precedence over ANTHROPIC_API_KEY\n\tif (provider === \"anthropic\") {\n\t\treturn process.env.ANTHROPIC_OAUTH_TOKEN || process.env.ANTHROPIC_API_KEY;\n\t}\n\n\t// Vertex AI uses Application Default Credentials, not API keys.\n\t// Auth is configured via `gcloud auth application-default login`.\n\tif (provider === \"google-vertex\") {\n\t\tconst hasCredentials = hasVertexAdcCredentials();\n\t\tconst hasProject = !!(process.env.GOOGLE_CLOUD_PROJECT || process.env.GCLOUD_PROJECT);\n\t\tconst hasLocation = !!process.env.GOOGLE_CLOUD_LOCATION;\n\n\t\tif (hasCredentials && hasProject && hasLocation) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tif (provider === \"amazon-bedrock\") {\n\t\t// Amazon Bedrock supports multiple credential sources:\n\t\t// 1. AWS_PROFILE - named profile from ~/.aws/credentials\n\t\t// 2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY - standard IAM keys\n\t\t// 3. AWS_BEARER_TOKEN_BEDROCK - Bedrock API keys (bearer token)\n\t\t// 4. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - ECS task roles\n\t\t// 5. AWS_CONTAINER_CREDENTIALS_FULL_URI - ECS task roles (full URI)\n\t\t// 6. AWS_WEB_IDENTITY_TOKEN_FILE - IRSA (IAM Roles for Service Accounts)\n\t\tif (\n\t\t\tprocess.env.AWS_PROFILE ||\n\t\t\t(process.env.AWS_ACCESS_KEY_ID && process.env.AWS_SECRET_ACCESS_KEY) ||\n\t\t\tprocess.env.AWS_BEARER_TOKEN_BEDROCK ||\n\t\t\tprocess.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ||\n\t\t\tprocess.env.AWS_CONTAINER_CREDENTIALS_FULL_URI ||\n\t\t\tprocess.env.AWS_WEB_IDENTITY_TOKEN_FILE\n\t\t) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tconst envMap: Record<string, string> = {\n\t\topenai: \"OPENAI_API_KEY\",\n\t\t\"azure-openai-responses\": \"AZURE_OPENAI_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t\t\"vercel-ai-gateway\": \"AI_GATEWAY_API_KEY\",\n\t\tzai: \"ZAI_API_KEY\",\n\t\tmistral: \"MISTRAL_API_KEY\",\n\t\tminimax: \"MINIMAX_API_KEY\",\n\t\t\"minimax-cn\": \"MINIMAX_CN_API_KEY\",\n\t\topencode: \"OPENCODE_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? process.env[envVar] : undefined;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"env-api-keys.d.ts","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA0BhD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAC1E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC","sourcesContent":["// NEVER convert to top-level imports - breaks browser/Vite builds (web-ui)\nlet _existsSync: typeof import(\"node:fs\").existsSync | null = null;\nlet _homedir: typeof import(\"node:os\").homedir | null = null;\nlet _join: typeof import(\"node:path\").join | null = null;\n\n// Eagerly load in Node.js/Bun environment only\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n\timport(\"node:fs\").then((m) => {\n\t\t_existsSync = m.existsSync;\n\t});\n\timport(\"node:os\").then((m) => {\n\t\t_homedir = m.homedir;\n\t});\n\timport(\"node:path\").then((m) => {\n\t\t_join = m.join;\n\t});\n}\n\nimport type { KnownProvider } from \"./types.js\";\n\nlet cachedVertexAdcCredentialsExists: boolean | null = null;\n\nfunction hasVertexAdcCredentials(): boolean {\n\tif (cachedVertexAdcCredentialsExists === null) {\n\t\t// In browser or if node modules not loaded yet, return false\n\t\tif (!_existsSync || !_homedir || !_join) {\n\t\t\tcachedVertexAdcCredentialsExists = false;\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check GOOGLE_APPLICATION_CREDENTIALS env var first (standard way)\n\t\tconst gacPath = process.env.GOOGLE_APPLICATION_CREDENTIALS;\n\t\tif (gacPath) {\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(gacPath);\n\t\t} else {\n\t\t\t// Fall back to default ADC path (lazy evaluation)\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(\n\t\t\t\t_join(_homedir(), \".config\", \"gcloud\", \"application_default_credentials.json\"),\n\t\t\t);\n\t\t}\n\t}\n\treturn cachedVertexAdcCredentialsExists;\n}\n\n/**\n * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.\n *\n * Will not return API keys for providers that require OAuth tokens.\n */\nexport function getEnvApiKey(provider: KnownProvider): string | undefined;\nexport function getEnvApiKey(provider: string): string | undefined;\nexport function getEnvApiKey(provider: any): string | undefined {\n\t// Fall back to environment variables\n\tif (provider === \"github-copilot\") {\n\t\treturn process.env.COPILOT_GITHUB_TOKEN || process.env.GH_TOKEN || process.env.GITHUB_TOKEN;\n\t}\n\n\t// ANTHROPIC_OAUTH_TOKEN takes precedence over ANTHROPIC_API_KEY\n\tif (provider === \"anthropic\") {\n\t\treturn process.env.ANTHROPIC_OAUTH_TOKEN || process.env.ANTHROPIC_API_KEY;\n\t}\n\n\t// Vertex AI uses Application Default Credentials, not API keys.\n\t// Auth is configured via `gcloud auth application-default login`.\n\tif (provider === \"google-vertex\") {\n\t\tconst hasCredentials = hasVertexAdcCredentials();\n\t\tconst hasProject = !!(process.env.GOOGLE_CLOUD_PROJECT || process.env.GCLOUD_PROJECT);\n\t\tconst hasLocation = !!process.env.GOOGLE_CLOUD_LOCATION;\n\n\t\tif (hasCredentials && hasProject && hasLocation) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tif (provider === \"amazon-bedrock\") {\n\t\t// Amazon Bedrock supports multiple credential sources:\n\t\t// 1. AWS_PROFILE - named profile from ~/.aws/credentials\n\t\t// 2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY - standard IAM keys\n\t\t// 3. AWS_BEARER_TOKEN_BEDROCK - Bedrock API keys (bearer token)\n\t\t// 4. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - ECS task roles\n\t\t// 5. AWS_CONTAINER_CREDENTIALS_FULL_URI - ECS task roles (full URI)\n\t\t// 6. AWS_WEB_IDENTITY_TOKEN_FILE - IRSA (IAM Roles for Service Accounts)\n\t\tif (\n\t\t\tprocess.env.AWS_PROFILE ||\n\t\t\t(process.env.AWS_ACCESS_KEY_ID && process.env.AWS_SECRET_ACCESS_KEY) ||\n\t\t\tprocess.env.AWS_BEARER_TOKEN_BEDROCK ||\n\t\t\tprocess.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ||\n\t\t\tprocess.env.AWS_CONTAINER_CREDENTIALS_FULL_URI ||\n\t\t\tprocess.env.AWS_WEB_IDENTITY_TOKEN_FILE\n\t\t) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tconst envMap: Record<string, string> = {\n\t\topenai: \"OPENAI_API_KEY\",\n\t\t\"azure-openai-responses\": \"AZURE_OPENAI_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t\t\"vercel-ai-gateway\": \"AI_GATEWAY_API_KEY\",\n\t\tzai: \"ZAI_API_KEY\",\n\t\tmistral: \"MISTRAL_API_KEY\",\n\t\tminimax: \"MINIMAX_API_KEY\",\n\t\t\"minimax-cn\": \"MINIMAX_CN_API_KEY\",\n\t\thuggingface: \"HF_TOKEN\",\n\t\topencode: \"OPENCODE_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? process.env[envVar] : undefined;\n}\n"]}
|
package/dist/env-api-keys.js
CHANGED
package/dist/env-api-keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-api-keys.js","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":"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","sourcesContent":["// NEVER convert to top-level imports - breaks browser/Vite builds (web-ui)\nlet _existsSync: typeof import(\"node:fs\").existsSync | null = null;\nlet _homedir: typeof import(\"node:os\").homedir | null = null;\nlet _join: typeof import(\"node:path\").join | null = null;\n\n// Eagerly load in Node.js/Bun environment only\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n\timport(\"node:fs\").then((m) => {\n\t\t_existsSync = m.existsSync;\n\t});\n\timport(\"node:os\").then((m) => {\n\t\t_homedir = m.homedir;\n\t});\n\timport(\"node:path\").then((m) => {\n\t\t_join = m.join;\n\t});\n}\n\nimport type { KnownProvider } from \"./types.js\";\n\nlet cachedVertexAdcCredentialsExists: boolean | null = null;\n\nfunction hasVertexAdcCredentials(): boolean {\n\tif (cachedVertexAdcCredentialsExists === null) {\n\t\t// In browser or if node modules not loaded yet, return false\n\t\tif (!_existsSync || !_homedir || !_join) {\n\t\t\tcachedVertexAdcCredentialsExists = false;\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check GOOGLE_APPLICATION_CREDENTIALS env var first (standard way)\n\t\tconst gacPath = process.env.GOOGLE_APPLICATION_CREDENTIALS;\n\t\tif (gacPath) {\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(gacPath);\n\t\t} else {\n\t\t\t// Fall back to default ADC path (lazy evaluation)\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(\n\t\t\t\t_join(_homedir(), \".config\", \"gcloud\", \"application_default_credentials.json\"),\n\t\t\t);\n\t\t}\n\t}\n\treturn cachedVertexAdcCredentialsExists;\n}\n\n/**\n * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.\n *\n * Will not return API keys for providers that require OAuth tokens.\n */\nexport function getEnvApiKey(provider: KnownProvider): string | undefined;\nexport function getEnvApiKey(provider: string): string | undefined;\nexport function getEnvApiKey(provider: any): string | undefined {\n\t// Fall back to environment variables\n\tif (provider === \"github-copilot\") {\n\t\treturn process.env.COPILOT_GITHUB_TOKEN || process.env.GH_TOKEN || process.env.GITHUB_TOKEN;\n\t}\n\n\t// ANTHROPIC_OAUTH_TOKEN takes precedence over ANTHROPIC_API_KEY\n\tif (provider === \"anthropic\") {\n\t\treturn process.env.ANTHROPIC_OAUTH_TOKEN || process.env.ANTHROPIC_API_KEY;\n\t}\n\n\t// Vertex AI uses Application Default Credentials, not API keys.\n\t// Auth is configured via `gcloud auth application-default login`.\n\tif (provider === \"google-vertex\") {\n\t\tconst hasCredentials = hasVertexAdcCredentials();\n\t\tconst hasProject = !!(process.env.GOOGLE_CLOUD_PROJECT || process.env.GCLOUD_PROJECT);\n\t\tconst hasLocation = !!process.env.GOOGLE_CLOUD_LOCATION;\n\n\t\tif (hasCredentials && hasProject && hasLocation) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tif (provider === \"amazon-bedrock\") {\n\t\t// Amazon Bedrock supports multiple credential sources:\n\t\t// 1. AWS_PROFILE - named profile from ~/.aws/credentials\n\t\t// 2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY - standard IAM keys\n\t\t// 3. AWS_BEARER_TOKEN_BEDROCK - Bedrock API keys (bearer token)\n\t\t// 4. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - ECS task roles\n\t\t// 5. AWS_CONTAINER_CREDENTIALS_FULL_URI - ECS task roles (full URI)\n\t\t// 6. AWS_WEB_IDENTITY_TOKEN_FILE - IRSA (IAM Roles for Service Accounts)\n\t\tif (\n\t\t\tprocess.env.AWS_PROFILE ||\n\t\t\t(process.env.AWS_ACCESS_KEY_ID && process.env.AWS_SECRET_ACCESS_KEY) ||\n\t\t\tprocess.env.AWS_BEARER_TOKEN_BEDROCK ||\n\t\t\tprocess.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ||\n\t\t\tprocess.env.AWS_CONTAINER_CREDENTIALS_FULL_URI ||\n\t\t\tprocess.env.AWS_WEB_IDENTITY_TOKEN_FILE\n\t\t) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tconst envMap: Record<string, string> = {\n\t\topenai: \"OPENAI_API_KEY\",\n\t\t\"azure-openai-responses\": \"AZURE_OPENAI_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t\t\"vercel-ai-gateway\": \"AI_GATEWAY_API_KEY\",\n\t\tzai: \"ZAI_API_KEY\",\n\t\tmistral: \"MISTRAL_API_KEY\",\n\t\tminimax: \"MINIMAX_API_KEY\",\n\t\t\"minimax-cn\": \"MINIMAX_CN_API_KEY\",\n\t\topencode: \"OPENCODE_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? process.env[envVar] : undefined;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"env-api-keys.js","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":"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","sourcesContent":["// NEVER convert to top-level imports - breaks browser/Vite builds (web-ui)\nlet _existsSync: typeof import(\"node:fs\").existsSync | null = null;\nlet _homedir: typeof import(\"node:os\").homedir | null = null;\nlet _join: typeof import(\"node:path\").join | null = null;\n\n// Eagerly load in Node.js/Bun environment only\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n\timport(\"node:fs\").then((m) => {\n\t\t_existsSync = m.existsSync;\n\t});\n\timport(\"node:os\").then((m) => {\n\t\t_homedir = m.homedir;\n\t});\n\timport(\"node:path\").then((m) => {\n\t\t_join = m.join;\n\t});\n}\n\nimport type { KnownProvider } from \"./types.js\";\n\nlet cachedVertexAdcCredentialsExists: boolean | null = null;\n\nfunction hasVertexAdcCredentials(): boolean {\n\tif (cachedVertexAdcCredentialsExists === null) {\n\t\t// In browser or if node modules not loaded yet, return false\n\t\tif (!_existsSync || !_homedir || !_join) {\n\t\t\tcachedVertexAdcCredentialsExists = false;\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check GOOGLE_APPLICATION_CREDENTIALS env var first (standard way)\n\t\tconst gacPath = process.env.GOOGLE_APPLICATION_CREDENTIALS;\n\t\tif (gacPath) {\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(gacPath);\n\t\t} else {\n\t\t\t// Fall back to default ADC path (lazy evaluation)\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(\n\t\t\t\t_join(_homedir(), \".config\", \"gcloud\", \"application_default_credentials.json\"),\n\t\t\t);\n\t\t}\n\t}\n\treturn cachedVertexAdcCredentialsExists;\n}\n\n/**\n * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.\n *\n * Will not return API keys for providers that require OAuth tokens.\n */\nexport function getEnvApiKey(provider: KnownProvider): string | undefined;\nexport function getEnvApiKey(provider: string): string | undefined;\nexport function getEnvApiKey(provider: any): string | undefined {\n\t// Fall back to environment variables\n\tif (provider === \"github-copilot\") {\n\t\treturn process.env.COPILOT_GITHUB_TOKEN || process.env.GH_TOKEN || process.env.GITHUB_TOKEN;\n\t}\n\n\t// ANTHROPIC_OAUTH_TOKEN takes precedence over ANTHROPIC_API_KEY\n\tif (provider === \"anthropic\") {\n\t\treturn process.env.ANTHROPIC_OAUTH_TOKEN || process.env.ANTHROPIC_API_KEY;\n\t}\n\n\t// Vertex AI uses Application Default Credentials, not API keys.\n\t// Auth is configured via `gcloud auth application-default login`.\n\tif (provider === \"google-vertex\") {\n\t\tconst hasCredentials = hasVertexAdcCredentials();\n\t\tconst hasProject = !!(process.env.GOOGLE_CLOUD_PROJECT || process.env.GCLOUD_PROJECT);\n\t\tconst hasLocation = !!process.env.GOOGLE_CLOUD_LOCATION;\n\n\t\tif (hasCredentials && hasProject && hasLocation) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tif (provider === \"amazon-bedrock\") {\n\t\t// Amazon Bedrock supports multiple credential sources:\n\t\t// 1. AWS_PROFILE - named profile from ~/.aws/credentials\n\t\t// 2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY - standard IAM keys\n\t\t// 3. AWS_BEARER_TOKEN_BEDROCK - Bedrock API keys (bearer token)\n\t\t// 4. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - ECS task roles\n\t\t// 5. AWS_CONTAINER_CREDENTIALS_FULL_URI - ECS task roles (full URI)\n\t\t// 6. AWS_WEB_IDENTITY_TOKEN_FILE - IRSA (IAM Roles for Service Accounts)\n\t\tif (\n\t\t\tprocess.env.AWS_PROFILE ||\n\t\t\t(process.env.AWS_ACCESS_KEY_ID && process.env.AWS_SECRET_ACCESS_KEY) ||\n\t\t\tprocess.env.AWS_BEARER_TOKEN_BEDROCK ||\n\t\t\tprocess.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ||\n\t\t\tprocess.env.AWS_CONTAINER_CREDENTIALS_FULL_URI ||\n\t\t\tprocess.env.AWS_WEB_IDENTITY_TOKEN_FILE\n\t\t) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tconst envMap: Record<string, string> = {\n\t\topenai: \"OPENAI_API_KEY\",\n\t\t\"azure-openai-responses\": \"AZURE_OPENAI_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t\t\"vercel-ai-gateway\": \"AI_GATEWAY_API_KEY\",\n\t\tzai: \"ZAI_API_KEY\",\n\t\tmistral: \"MISTRAL_API_KEY\",\n\t\tminimax: \"MINIMAX_API_KEY\",\n\t\t\"minimax-cn\": \"MINIMAX_CN_API_KEY\",\n\t\thuggingface: \"HF_TOKEN\",\n\t\topencode: \"OPENCODE_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? process.env[envVar] : undefined;\n}\n"]}
|
|
@@ -3407,6 +3407,288 @@ export declare const MODELS: {
|
|
|
3407
3407
|
maxTokens: number;
|
|
3408
3408
|
};
|
|
3409
3409
|
};
|
|
3410
|
+
readonly huggingface: {
|
|
3411
|
+
readonly "MiniMaxAI/MiniMax-M2.1": {
|
|
3412
|
+
id: string;
|
|
3413
|
+
name: string;
|
|
3414
|
+
api: "openai-completions";
|
|
3415
|
+
provider: string;
|
|
3416
|
+
baseUrl: string;
|
|
3417
|
+
compat: {
|
|
3418
|
+
supportsDeveloperRole: false;
|
|
3419
|
+
};
|
|
3420
|
+
reasoning: true;
|
|
3421
|
+
input: "text"[];
|
|
3422
|
+
cost: {
|
|
3423
|
+
input: number;
|
|
3424
|
+
output: number;
|
|
3425
|
+
cacheRead: number;
|
|
3426
|
+
cacheWrite: number;
|
|
3427
|
+
};
|
|
3428
|
+
contextWindow: number;
|
|
3429
|
+
maxTokens: number;
|
|
3430
|
+
};
|
|
3431
|
+
readonly "Qwen/Qwen3-235B-A22B-Thinking-2507": {
|
|
3432
|
+
id: string;
|
|
3433
|
+
name: string;
|
|
3434
|
+
api: "openai-completions";
|
|
3435
|
+
provider: string;
|
|
3436
|
+
baseUrl: string;
|
|
3437
|
+
compat: {
|
|
3438
|
+
supportsDeveloperRole: false;
|
|
3439
|
+
};
|
|
3440
|
+
reasoning: true;
|
|
3441
|
+
input: "text"[];
|
|
3442
|
+
cost: {
|
|
3443
|
+
input: number;
|
|
3444
|
+
output: number;
|
|
3445
|
+
cacheRead: number;
|
|
3446
|
+
cacheWrite: number;
|
|
3447
|
+
};
|
|
3448
|
+
contextWindow: number;
|
|
3449
|
+
maxTokens: number;
|
|
3450
|
+
};
|
|
3451
|
+
readonly "Qwen/Qwen3-Coder-480B-A35B-Instruct": {
|
|
3452
|
+
id: string;
|
|
3453
|
+
name: string;
|
|
3454
|
+
api: "openai-completions";
|
|
3455
|
+
provider: string;
|
|
3456
|
+
baseUrl: string;
|
|
3457
|
+
compat: {
|
|
3458
|
+
supportsDeveloperRole: false;
|
|
3459
|
+
};
|
|
3460
|
+
reasoning: false;
|
|
3461
|
+
input: "text"[];
|
|
3462
|
+
cost: {
|
|
3463
|
+
input: number;
|
|
3464
|
+
output: number;
|
|
3465
|
+
cacheRead: number;
|
|
3466
|
+
cacheWrite: number;
|
|
3467
|
+
};
|
|
3468
|
+
contextWindow: number;
|
|
3469
|
+
maxTokens: number;
|
|
3470
|
+
};
|
|
3471
|
+
readonly "Qwen/Qwen3-Next-80B-A3B-Instruct": {
|
|
3472
|
+
id: string;
|
|
3473
|
+
name: string;
|
|
3474
|
+
api: "openai-completions";
|
|
3475
|
+
provider: string;
|
|
3476
|
+
baseUrl: string;
|
|
3477
|
+
compat: {
|
|
3478
|
+
supportsDeveloperRole: false;
|
|
3479
|
+
};
|
|
3480
|
+
reasoning: false;
|
|
3481
|
+
input: "text"[];
|
|
3482
|
+
cost: {
|
|
3483
|
+
input: number;
|
|
3484
|
+
output: number;
|
|
3485
|
+
cacheRead: number;
|
|
3486
|
+
cacheWrite: number;
|
|
3487
|
+
};
|
|
3488
|
+
contextWindow: number;
|
|
3489
|
+
maxTokens: number;
|
|
3490
|
+
};
|
|
3491
|
+
readonly "Qwen/Qwen3-Next-80B-A3B-Thinking": {
|
|
3492
|
+
id: string;
|
|
3493
|
+
name: string;
|
|
3494
|
+
api: "openai-completions";
|
|
3495
|
+
provider: string;
|
|
3496
|
+
baseUrl: string;
|
|
3497
|
+
compat: {
|
|
3498
|
+
supportsDeveloperRole: false;
|
|
3499
|
+
};
|
|
3500
|
+
reasoning: false;
|
|
3501
|
+
input: "text"[];
|
|
3502
|
+
cost: {
|
|
3503
|
+
input: number;
|
|
3504
|
+
output: number;
|
|
3505
|
+
cacheRead: number;
|
|
3506
|
+
cacheWrite: number;
|
|
3507
|
+
};
|
|
3508
|
+
contextWindow: number;
|
|
3509
|
+
maxTokens: number;
|
|
3510
|
+
};
|
|
3511
|
+
readonly "XiaomiMiMo/MiMo-V2-Flash": {
|
|
3512
|
+
id: string;
|
|
3513
|
+
name: string;
|
|
3514
|
+
api: "openai-completions";
|
|
3515
|
+
provider: string;
|
|
3516
|
+
baseUrl: string;
|
|
3517
|
+
compat: {
|
|
3518
|
+
supportsDeveloperRole: false;
|
|
3519
|
+
};
|
|
3520
|
+
reasoning: true;
|
|
3521
|
+
input: "text"[];
|
|
3522
|
+
cost: {
|
|
3523
|
+
input: number;
|
|
3524
|
+
output: number;
|
|
3525
|
+
cacheRead: number;
|
|
3526
|
+
cacheWrite: number;
|
|
3527
|
+
};
|
|
3528
|
+
contextWindow: number;
|
|
3529
|
+
maxTokens: number;
|
|
3530
|
+
};
|
|
3531
|
+
readonly "deepseek-ai/DeepSeek-R1-0528": {
|
|
3532
|
+
id: string;
|
|
3533
|
+
name: string;
|
|
3534
|
+
api: "openai-completions";
|
|
3535
|
+
provider: string;
|
|
3536
|
+
baseUrl: string;
|
|
3537
|
+
compat: {
|
|
3538
|
+
supportsDeveloperRole: false;
|
|
3539
|
+
};
|
|
3540
|
+
reasoning: true;
|
|
3541
|
+
input: "text"[];
|
|
3542
|
+
cost: {
|
|
3543
|
+
input: number;
|
|
3544
|
+
output: number;
|
|
3545
|
+
cacheRead: number;
|
|
3546
|
+
cacheWrite: number;
|
|
3547
|
+
};
|
|
3548
|
+
contextWindow: number;
|
|
3549
|
+
maxTokens: number;
|
|
3550
|
+
};
|
|
3551
|
+
readonly "deepseek-ai/DeepSeek-V3.2": {
|
|
3552
|
+
id: string;
|
|
3553
|
+
name: string;
|
|
3554
|
+
api: "openai-completions";
|
|
3555
|
+
provider: string;
|
|
3556
|
+
baseUrl: string;
|
|
3557
|
+
compat: {
|
|
3558
|
+
supportsDeveloperRole: false;
|
|
3559
|
+
};
|
|
3560
|
+
reasoning: true;
|
|
3561
|
+
input: "text"[];
|
|
3562
|
+
cost: {
|
|
3563
|
+
input: number;
|
|
3564
|
+
output: number;
|
|
3565
|
+
cacheRead: number;
|
|
3566
|
+
cacheWrite: number;
|
|
3567
|
+
};
|
|
3568
|
+
contextWindow: number;
|
|
3569
|
+
maxTokens: number;
|
|
3570
|
+
};
|
|
3571
|
+
readonly "moonshotai/Kimi-K2-Instruct": {
|
|
3572
|
+
id: string;
|
|
3573
|
+
name: string;
|
|
3574
|
+
api: "openai-completions";
|
|
3575
|
+
provider: string;
|
|
3576
|
+
baseUrl: string;
|
|
3577
|
+
compat: {
|
|
3578
|
+
supportsDeveloperRole: false;
|
|
3579
|
+
};
|
|
3580
|
+
reasoning: false;
|
|
3581
|
+
input: "text"[];
|
|
3582
|
+
cost: {
|
|
3583
|
+
input: number;
|
|
3584
|
+
output: number;
|
|
3585
|
+
cacheRead: number;
|
|
3586
|
+
cacheWrite: number;
|
|
3587
|
+
};
|
|
3588
|
+
contextWindow: number;
|
|
3589
|
+
maxTokens: number;
|
|
3590
|
+
};
|
|
3591
|
+
readonly "moonshotai/Kimi-K2-Instruct-0905": {
|
|
3592
|
+
id: string;
|
|
3593
|
+
name: string;
|
|
3594
|
+
api: "openai-completions";
|
|
3595
|
+
provider: string;
|
|
3596
|
+
baseUrl: string;
|
|
3597
|
+
compat: {
|
|
3598
|
+
supportsDeveloperRole: false;
|
|
3599
|
+
};
|
|
3600
|
+
reasoning: false;
|
|
3601
|
+
input: "text"[];
|
|
3602
|
+
cost: {
|
|
3603
|
+
input: number;
|
|
3604
|
+
output: number;
|
|
3605
|
+
cacheRead: number;
|
|
3606
|
+
cacheWrite: number;
|
|
3607
|
+
};
|
|
3608
|
+
contextWindow: number;
|
|
3609
|
+
maxTokens: number;
|
|
3610
|
+
};
|
|
3611
|
+
readonly "moonshotai/Kimi-K2-Thinking": {
|
|
3612
|
+
id: string;
|
|
3613
|
+
name: string;
|
|
3614
|
+
api: "openai-completions";
|
|
3615
|
+
provider: string;
|
|
3616
|
+
baseUrl: string;
|
|
3617
|
+
compat: {
|
|
3618
|
+
supportsDeveloperRole: false;
|
|
3619
|
+
};
|
|
3620
|
+
reasoning: true;
|
|
3621
|
+
input: "text"[];
|
|
3622
|
+
cost: {
|
|
3623
|
+
input: number;
|
|
3624
|
+
output: number;
|
|
3625
|
+
cacheRead: number;
|
|
3626
|
+
cacheWrite: number;
|
|
3627
|
+
};
|
|
3628
|
+
contextWindow: number;
|
|
3629
|
+
maxTokens: number;
|
|
3630
|
+
};
|
|
3631
|
+
readonly "moonshotai/Kimi-K2.5": {
|
|
3632
|
+
id: string;
|
|
3633
|
+
name: string;
|
|
3634
|
+
api: "openai-completions";
|
|
3635
|
+
provider: string;
|
|
3636
|
+
baseUrl: string;
|
|
3637
|
+
compat: {
|
|
3638
|
+
supportsDeveloperRole: false;
|
|
3639
|
+
};
|
|
3640
|
+
reasoning: true;
|
|
3641
|
+
input: ("image" | "text")[];
|
|
3642
|
+
cost: {
|
|
3643
|
+
input: number;
|
|
3644
|
+
output: number;
|
|
3645
|
+
cacheRead: number;
|
|
3646
|
+
cacheWrite: number;
|
|
3647
|
+
};
|
|
3648
|
+
contextWindow: number;
|
|
3649
|
+
maxTokens: number;
|
|
3650
|
+
};
|
|
3651
|
+
readonly "zai-org/GLM-4.7": {
|
|
3652
|
+
id: string;
|
|
3653
|
+
name: string;
|
|
3654
|
+
api: "openai-completions";
|
|
3655
|
+
provider: string;
|
|
3656
|
+
baseUrl: string;
|
|
3657
|
+
compat: {
|
|
3658
|
+
supportsDeveloperRole: false;
|
|
3659
|
+
};
|
|
3660
|
+
reasoning: true;
|
|
3661
|
+
input: "text"[];
|
|
3662
|
+
cost: {
|
|
3663
|
+
input: number;
|
|
3664
|
+
output: number;
|
|
3665
|
+
cacheRead: number;
|
|
3666
|
+
cacheWrite: number;
|
|
3667
|
+
};
|
|
3668
|
+
contextWindow: number;
|
|
3669
|
+
maxTokens: number;
|
|
3670
|
+
};
|
|
3671
|
+
readonly "zai-org/GLM-4.7-Flash": {
|
|
3672
|
+
id: string;
|
|
3673
|
+
name: string;
|
|
3674
|
+
api: "openai-completions";
|
|
3675
|
+
provider: string;
|
|
3676
|
+
baseUrl: string;
|
|
3677
|
+
compat: {
|
|
3678
|
+
supportsDeveloperRole: false;
|
|
3679
|
+
};
|
|
3680
|
+
reasoning: true;
|
|
3681
|
+
input: "text"[];
|
|
3682
|
+
cost: {
|
|
3683
|
+
input: number;
|
|
3684
|
+
output: number;
|
|
3685
|
+
cacheRead: number;
|
|
3686
|
+
cacheWrite: number;
|
|
3687
|
+
};
|
|
3688
|
+
contextWindow: number;
|
|
3689
|
+
maxTokens: number;
|
|
3690
|
+
};
|
|
3691
|
+
};
|
|
3410
3692
|
readonly minimax: {
|
|
3411
3693
|
readonly "MiniMax-M2": {
|
|
3412
3694
|
id: string;
|
|
@@ -4948,6 +5230,40 @@ export declare const MODELS: {
|
|
|
4948
5230
|
contextWindow: number;
|
|
4949
5231
|
maxTokens: number;
|
|
4950
5232
|
};
|
|
5233
|
+
readonly "kimi-k2.5": {
|
|
5234
|
+
id: string;
|
|
5235
|
+
name: string;
|
|
5236
|
+
api: "openai-completions";
|
|
5237
|
+
provider: string;
|
|
5238
|
+
baseUrl: string;
|
|
5239
|
+
reasoning: true;
|
|
5240
|
+
input: ("image" | "text")[];
|
|
5241
|
+
cost: {
|
|
5242
|
+
input: number;
|
|
5243
|
+
output: number;
|
|
5244
|
+
cacheRead: number;
|
|
5245
|
+
cacheWrite: number;
|
|
5246
|
+
};
|
|
5247
|
+
contextWindow: number;
|
|
5248
|
+
maxTokens: number;
|
|
5249
|
+
};
|
|
5250
|
+
readonly "minimax-m2.1": {
|
|
5251
|
+
id: string;
|
|
5252
|
+
name: string;
|
|
5253
|
+
api: "openai-completions";
|
|
5254
|
+
provider: string;
|
|
5255
|
+
baseUrl: string;
|
|
5256
|
+
reasoning: true;
|
|
5257
|
+
input: "text"[];
|
|
5258
|
+
cost: {
|
|
5259
|
+
input: number;
|
|
5260
|
+
output: number;
|
|
5261
|
+
cacheRead: number;
|
|
5262
|
+
cacheWrite: number;
|
|
5263
|
+
};
|
|
5264
|
+
contextWindow: number;
|
|
5265
|
+
maxTokens: number;
|
|
5266
|
+
};
|
|
4951
5267
|
readonly "qwen3-coder": {
|
|
4952
5268
|
id: string;
|
|
4953
5269
|
name: string;
|
|
@@ -5307,6 +5623,23 @@ export declare const MODELS: {
|
|
|
5307
5623
|
contextWindow: number;
|
|
5308
5624
|
maxTokens: number;
|
|
5309
5625
|
};
|
|
5626
|
+
readonly "arcee-ai/trinity-large-preview:free": {
|
|
5627
|
+
id: string;
|
|
5628
|
+
name: string;
|
|
5629
|
+
api: "openai-completions";
|
|
5630
|
+
provider: string;
|
|
5631
|
+
baseUrl: string;
|
|
5632
|
+
reasoning: false;
|
|
5633
|
+
input: "text"[];
|
|
5634
|
+
cost: {
|
|
5635
|
+
input: number;
|
|
5636
|
+
output: number;
|
|
5637
|
+
cacheRead: number;
|
|
5638
|
+
cacheWrite: number;
|
|
5639
|
+
};
|
|
5640
|
+
contextWindow: number;
|
|
5641
|
+
maxTokens: number;
|
|
5642
|
+
};
|
|
5310
5643
|
readonly "arcee-ai/trinity-mini": {
|
|
5311
5644
|
id: string;
|
|
5312
5645
|
name: string;
|
|
@@ -6191,23 +6524,6 @@ export declare const MODELS: {
|
|
|
6191
6524
|
contextWindow: number;
|
|
6192
6525
|
maxTokens: number;
|
|
6193
6526
|
};
|
|
6194
|
-
readonly "mistralai/devstral-2512:free": {
|
|
6195
|
-
id: string;
|
|
6196
|
-
name: string;
|
|
6197
|
-
api: "openai-completions";
|
|
6198
|
-
provider: string;
|
|
6199
|
-
baseUrl: string;
|
|
6200
|
-
reasoning: false;
|
|
6201
|
-
input: "text"[];
|
|
6202
|
-
cost: {
|
|
6203
|
-
input: number;
|
|
6204
|
-
output: number;
|
|
6205
|
-
cacheRead: number;
|
|
6206
|
-
cacheWrite: number;
|
|
6207
|
-
};
|
|
6208
|
-
contextWindow: number;
|
|
6209
|
-
maxTokens: number;
|
|
6210
|
-
};
|
|
6211
6527
|
readonly "mistralai/devstral-medium": {
|
|
6212
6528
|
id: string;
|
|
6213
6529
|
name: string;
|
|
@@ -6718,6 +7034,23 @@ export declare const MODELS: {
|
|
|
6718
7034
|
contextWindow: number;
|
|
6719
7035
|
maxTokens: number;
|
|
6720
7036
|
};
|
|
7037
|
+
readonly "moonshotai/kimi-k2.5": {
|
|
7038
|
+
id: string;
|
|
7039
|
+
name: string;
|
|
7040
|
+
api: "openai-completions";
|
|
7041
|
+
provider: string;
|
|
7042
|
+
baseUrl: string;
|
|
7043
|
+
reasoning: true;
|
|
7044
|
+
input: ("image" | "text")[];
|
|
7045
|
+
cost: {
|
|
7046
|
+
input: number;
|
|
7047
|
+
output: number;
|
|
7048
|
+
cacheRead: number;
|
|
7049
|
+
cacheWrite: number;
|
|
7050
|
+
};
|
|
7051
|
+
contextWindow: number;
|
|
7052
|
+
maxTokens: number;
|
|
7053
|
+
};
|
|
6721
7054
|
readonly "nex-agi/deepseek-v3.1-nex-n1": {
|
|
6722
7055
|
id: string;
|
|
6723
7056
|
name: string;
|
|
@@ -8520,6 +8853,23 @@ export declare const MODELS: {
|
|
|
8520
8853
|
contextWindow: number;
|
|
8521
8854
|
maxTokens: number;
|
|
8522
8855
|
};
|
|
8856
|
+
readonly "upstage/solar-pro-3:free": {
|
|
8857
|
+
id: string;
|
|
8858
|
+
name: string;
|
|
8859
|
+
api: "openai-completions";
|
|
8860
|
+
provider: string;
|
|
8861
|
+
baseUrl: string;
|
|
8862
|
+
reasoning: true;
|
|
8863
|
+
input: "text"[];
|
|
8864
|
+
cost: {
|
|
8865
|
+
input: number;
|
|
8866
|
+
output: number;
|
|
8867
|
+
cacheRead: number;
|
|
8868
|
+
cacheWrite: number;
|
|
8869
|
+
};
|
|
8870
|
+
contextWindow: number;
|
|
8871
|
+
maxTokens: number;
|
|
8872
|
+
};
|
|
8523
8873
|
readonly "x-ai/grok-3": {
|
|
8524
8874
|
id: string;
|
|
8525
8875
|
name: string;
|
|
@@ -9015,6 +9365,23 @@ export declare const MODELS: {
|
|
|
9015
9365
|
contextWindow: number;
|
|
9016
9366
|
maxTokens: number;
|
|
9017
9367
|
};
|
|
9368
|
+
readonly "alibaba/qwen3-max-thinking": {
|
|
9369
|
+
id: string;
|
|
9370
|
+
name: string;
|
|
9371
|
+
api: "anthropic-messages";
|
|
9372
|
+
provider: string;
|
|
9373
|
+
baseUrl: string;
|
|
9374
|
+
reasoning: true;
|
|
9375
|
+
input: "text"[];
|
|
9376
|
+
cost: {
|
|
9377
|
+
input: number;
|
|
9378
|
+
output: number;
|
|
9379
|
+
cacheRead: number;
|
|
9380
|
+
cacheWrite: number;
|
|
9381
|
+
};
|
|
9382
|
+
contextWindow: number;
|
|
9383
|
+
maxTokens: number;
|
|
9384
|
+
};
|
|
9018
9385
|
readonly "anthropic/claude-3-haiku": {
|
|
9019
9386
|
id: string;
|
|
9020
9387
|
name: string;
|
|
@@ -9202,6 +9569,23 @@ export declare const MODELS: {
|
|
|
9202
9569
|
contextWindow: number;
|
|
9203
9570
|
maxTokens: number;
|
|
9204
9571
|
};
|
|
9572
|
+
readonly "arcee-ai/trinity-large-preview": {
|
|
9573
|
+
id: string;
|
|
9574
|
+
name: string;
|
|
9575
|
+
api: "anthropic-messages";
|
|
9576
|
+
provider: string;
|
|
9577
|
+
baseUrl: string;
|
|
9578
|
+
reasoning: false;
|
|
9579
|
+
input: "text"[];
|
|
9580
|
+
cost: {
|
|
9581
|
+
input: number;
|
|
9582
|
+
output: number;
|
|
9583
|
+
cacheRead: number;
|
|
9584
|
+
cacheWrite: number;
|
|
9585
|
+
};
|
|
9586
|
+
contextWindow: number;
|
|
9587
|
+
maxTokens: number;
|
|
9588
|
+
};
|
|
9205
9589
|
readonly "bytedance/seed-1.6": {
|
|
9206
9590
|
id: string;
|
|
9207
9591
|
name: string;
|
|
@@ -9899,6 +10283,23 @@ export declare const MODELS: {
|
|
|
9899
10283
|
contextWindow: number;
|
|
9900
10284
|
maxTokens: number;
|
|
9901
10285
|
};
|
|
10286
|
+
readonly "moonshotai/kimi-k2.5": {
|
|
10287
|
+
id: string;
|
|
10288
|
+
name: string;
|
|
10289
|
+
api: "anthropic-messages";
|
|
10290
|
+
provider: string;
|
|
10291
|
+
baseUrl: string;
|
|
10292
|
+
reasoning: true;
|
|
10293
|
+
input: ("image" | "text")[];
|
|
10294
|
+
cost: {
|
|
10295
|
+
input: number;
|
|
10296
|
+
output: number;
|
|
10297
|
+
cacheRead: number;
|
|
10298
|
+
cacheWrite: number;
|
|
10299
|
+
};
|
|
10300
|
+
contextWindow: number;
|
|
10301
|
+
maxTokens: number;
|
|
10302
|
+
};
|
|
9902
10303
|
readonly "nvidia/nemotron-nano-12b-v2-vl": {
|
|
9903
10304
|
id: string;
|
|
9904
10305
|
name: string;
|
|
@@ -11444,6 +11845,27 @@ export declare const MODELS: {
|
|
|
11444
11845
|
contextWindow: number;
|
|
11445
11846
|
maxTokens: number;
|
|
11446
11847
|
};
|
|
11848
|
+
readonly "glm-4.7-flash": {
|
|
11849
|
+
id: string;
|
|
11850
|
+
name: string;
|
|
11851
|
+
api: "openai-completions";
|
|
11852
|
+
provider: string;
|
|
11853
|
+
baseUrl: string;
|
|
11854
|
+
compat: {
|
|
11855
|
+
supportsDeveloperRole: false;
|
|
11856
|
+
thinkingFormat: "zai";
|
|
11857
|
+
};
|
|
11858
|
+
reasoning: true;
|
|
11859
|
+
input: "text"[];
|
|
11860
|
+
cost: {
|
|
11861
|
+
input: number;
|
|
11862
|
+
output: number;
|
|
11863
|
+
cacheRead: number;
|
|
11864
|
+
cacheWrite: number;
|
|
11865
|
+
};
|
|
11866
|
+
contextWindow: number;
|
|
11867
|
+
maxTokens: number;
|
|
11868
|
+
};
|
|
11447
11869
|
};
|
|
11448
11870
|
};
|
|
11449
11871
|
//# sourceMappingURL=models.generated.d.ts.map
|