@code-yeongyu/senpi-ai 2026.8.12 → 2026.8.13

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 (228) hide show
  1. package/README.md +26 -8
  2. package/dist/api/anthropic-messages.js.map +1 -1
  3. package/dist/api/azure-openai-responses.js +5 -1
  4. package/dist/api/azure-openai-responses.js.map +1 -1
  5. package/dist/api/bedrock-converse-stream.js.map +1 -1
  6. package/dist/api/bedrock-converse-stream.lazy.js.map +1 -1
  7. package/dist/api/google-generative-ai.d.ts.map +1 -1
  8. package/dist/api/google-generative-ai.js +2 -2
  9. package/dist/api/google-generative-ai.js.map +1 -1
  10. package/dist/api/google-shared.d.ts +15 -1
  11. package/dist/api/google-shared.d.ts.map +1 -1
  12. package/dist/api/google-shared.js +103 -4
  13. package/dist/api/google-shared.js.map +1 -1
  14. package/dist/api/google-vertex.d.ts.map +1 -1
  15. package/dist/api/google-vertex.js +2 -2
  16. package/dist/api/google-vertex.js.map +1 -1
  17. package/dist/api/lazy.d.ts +5 -1
  18. package/dist/api/lazy.d.ts.map +1 -1
  19. package/dist/api/lazy.js +19 -7
  20. package/dist/api/lazy.js.map +1 -1
  21. package/dist/api/openai-codex-responses.js.map +1 -1
  22. package/dist/api/openai-completions.d.ts +3 -1
  23. package/dist/api/openai-completions.d.ts.map +1 -1
  24. package/dist/api/openai-completions.js +47 -7
  25. package/dist/api/openai-completions.js.map +1 -1
  26. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  27. package/dist/api/openai-responses-shared.js +22 -9
  28. package/dist/api/openai-responses-shared.js.map +1 -1
  29. package/dist/api/openai-responses.js +5 -1
  30. package/dist/api/openai-responses.js.map +1 -1
  31. package/dist/api/pi-messages.d.ts.map +1 -1
  32. package/dist/api/pi-messages.js.map +1 -1
  33. package/dist/api/simple-options.d.ts +2 -0
  34. package/dist/api/simple-options.d.ts.map +1 -1
  35. package/dist/api/simple-options.js +8 -2
  36. package/dist/api/simple-options.js.map +1 -1
  37. package/dist/api/transform-messages.js.map +1 -1
  38. package/dist/api/warm-prompt-cache.js.map +1 -1
  39. package/dist/auth/credential-store.d.ts +6 -6
  40. package/dist/auth/credential-store.d.ts.map +1 -1
  41. package/dist/auth/credential-store.js +22 -11
  42. package/dist/auth/credential-store.js.map +1 -1
  43. package/dist/auth/helpers.d.ts +1 -0
  44. package/dist/auth/helpers.d.ts.map +1 -1
  45. package/dist/auth/helpers.js +7 -2
  46. package/dist/auth/helpers.js.map +1 -1
  47. package/dist/auth/oauth/anthropic.d.ts.map +1 -1
  48. package/dist/auth/oauth/anthropic.js +14 -8
  49. package/dist/auth/oauth/anthropic.js.map +1 -1
  50. package/dist/auth/oauth/device-code.d.ts +1 -1
  51. package/dist/auth/oauth/device-code.d.ts.map +1 -1
  52. package/dist/auth/oauth/device-code.js +4 -4
  53. package/dist/auth/oauth/device-code.js.map +1 -1
  54. package/dist/auth/oauth/github-copilot.d.ts.map +1 -1
  55. package/dist/auth/oauth/github-copilot.js +43 -30
  56. package/dist/auth/oauth/github-copilot.js.map +1 -1
  57. package/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
  58. package/dist/auth/oauth/kimi-coding.js +17 -5
  59. package/dist/auth/oauth/kimi-coding.js.map +1 -1
  60. package/dist/auth/oauth/load.d.ts.map +1 -1
  61. package/dist/auth/oauth/load.js.map +1 -1
  62. package/dist/auth/oauth/openai-codex.d.ts.map +1 -1
  63. package/dist/auth/oauth/openai-codex.js +12 -5
  64. package/dist/auth/oauth/openai-codex.js.map +1 -1
  65. package/dist/auth/oauth/openrouter.d.ts.map +1 -1
  66. package/dist/auth/oauth/openrouter.js +10 -10
  67. package/dist/auth/oauth/openrouter.js.map +1 -1
  68. package/dist/auth/oauth/radius.d.ts.map +1 -1
  69. package/dist/auth/oauth/radius.js +8 -7
  70. package/dist/auth/oauth/radius.js.map +1 -1
  71. package/dist/auth/oauth/xai.d.ts.map +1 -1
  72. package/dist/auth/oauth/xai.js +3 -2
  73. package/dist/auth/oauth/xai.js.map +1 -1
  74. package/dist/auth/resolve.d.ts +1 -0
  75. package/dist/auth/resolve.d.ts.map +1 -1
  76. package/dist/auth/resolve.js +24 -13
  77. package/dist/auth/resolve.js.map +1 -1
  78. package/dist/auth/types.d.ts +21 -8
  79. package/dist/auth/types.d.ts.map +1 -1
  80. package/dist/auth/types.js.map +1 -1
  81. package/dist/cli.js +1 -0
  82. package/dist/cli.js.map +1 -1
  83. package/dist/compat.js.map +1 -1
  84. package/dist/env-api-keys.d.ts.map +1 -1
  85. package/dist/env-api-keys.js +3 -0
  86. package/dist/env-api-keys.js.map +1 -1
  87. package/dist/image-models.generated.d.ts +69 -54
  88. package/dist/image-models.generated.d.ts.map +1 -1
  89. package/dist/image-models.generated.js +15 -0
  90. package/dist/image-models.generated.js.map +1 -1
  91. package/dist/images-models.d.ts.map +1 -1
  92. package/dist/images-models.js +1 -0
  93. package/dist/images-models.js.map +1 -1
  94. package/dist/model.d.ts +2 -0
  95. package/dist/model.d.ts.map +1 -1
  96. package/dist/model.js.map +1 -1
  97. package/dist/models-store.d.ts +9 -12
  98. package/dist/models-store.d.ts.map +1 -1
  99. package/dist/models-store.js +6 -3
  100. package/dist/models-store.js.map +1 -1
  101. package/dist/models.d.ts +40 -18
  102. package/dist/models.d.ts.map +1 -1
  103. package/dist/models.generated.d.ts +6 -0
  104. package/dist/models.generated.d.ts.map +1 -1
  105. package/dist/models.generated.js +6 -0
  106. package/dist/models.generated.js.map +1 -1
  107. package/dist/models.js +247 -91
  108. package/dist/models.js.map +1 -1
  109. package/dist/node/provider-scope.d.ts.map +1 -1
  110. package/dist/providers/all.d.ts.map +1 -1
  111. package/dist/providers/all.js +6 -0
  112. package/dist/providers/all.js.map +1 -1
  113. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  114. package/dist/providers/amazon-bedrock.js +15 -7
  115. package/dist/providers/amazon-bedrock.js.map +1 -1
  116. package/dist/providers/anthropic.d.ts.map +1 -1
  117. package/dist/providers/anthropic.js +15 -6
  118. package/dist/providers/anthropic.js.map +1 -1
  119. package/dist/providers/baseten.d.ts +3 -0
  120. package/dist/providers/baseten.d.ts.map +1 -0
  121. package/dist/providers/baseten.js +15 -0
  122. package/dist/providers/baseten.js.map +1 -0
  123. package/dist/providers/baseten.models.d.ts +4 -0
  124. package/dist/providers/baseten.models.d.ts.map +1 -0
  125. package/dist/providers/baseten.models.js +6 -0
  126. package/dist/providers/baseten.models.js.map +1 -0
  127. package/dist/providers/cloudflare-auth.d.ts.map +1 -1
  128. package/dist/providers/cloudflare-auth.js +15 -10
  129. package/dist/providers/cloudflare-auth.js.map +1 -1
  130. package/dist/providers/data/.manifest.json +1 -1
  131. package/dist/providers/data/baseten.json +1 -0
  132. package/dist/providers/data/fireworks.json +1 -1
  133. package/dist/providers/data/github-copilot.json +1 -1
  134. package/dist/providers/data/opencode-go.json +1 -1
  135. package/dist/providers/data/opencode.json +1 -1
  136. package/dist/providers/data/opengateway.json +1 -0
  137. package/dist/providers/data/openrouter.json +1 -1
  138. package/dist/providers/data/qwen-token-plan-cn.json +1 -1
  139. package/dist/providers/data/qwen-token-plan-individual.json +1 -0
  140. package/dist/providers/data/qwen-token-plan.json +1 -1
  141. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  142. package/dist/providers/data/xai.json +1 -1
  143. package/dist/providers/faux.d.ts +18 -13
  144. package/dist/providers/faux.d.ts.map +1 -1
  145. package/dist/providers/faux.js +95 -5
  146. package/dist/providers/faux.js.map +1 -1
  147. package/dist/providers/github-copilot.js +1 -1
  148. package/dist/providers/github-copilot.js.map +1 -1
  149. package/dist/providers/google-vertex.d.ts.map +1 -1
  150. package/dist/providers/google-vertex.js +15 -7
  151. package/dist/providers/google-vertex.js.map +1 -1
  152. package/dist/providers/kimi-coding.d.ts.map +1 -1
  153. package/dist/providers/kimi-coding.js +1 -0
  154. package/dist/providers/kimi-coding.js.map +1 -1
  155. package/dist/providers/ollama.d.ts.map +1 -1
  156. package/dist/providers/ollama.js +1 -2
  157. package/dist/providers/ollama.js.map +1 -1
  158. package/dist/providers/openai-codex.d.ts.map +1 -1
  159. package/dist/providers/openai-codex.js +5 -1
  160. package/dist/providers/openai-codex.js.map +1 -1
  161. package/dist/providers/opengateway.d.ts +3 -0
  162. package/dist/providers/opengateway.d.ts.map +1 -0
  163. package/dist/providers/opengateway.js +15 -0
  164. package/dist/providers/opengateway.js.map +1 -0
  165. package/dist/providers/opengateway.models.d.ts +4 -0
  166. package/dist/providers/opengateway.models.d.ts.map +1 -0
  167. package/dist/providers/opengateway.models.js +6 -0
  168. package/dist/providers/opengateway.models.js.map +1 -0
  169. package/dist/providers/qwen-token-plan-individual.d.ts +3 -0
  170. package/dist/providers/qwen-token-plan-individual.d.ts.map +1 -0
  171. package/dist/providers/qwen-token-plan-individual.js +15 -0
  172. package/dist/providers/qwen-token-plan-individual.js.map +1 -0
  173. package/dist/providers/qwen-token-plan-individual.models.d.ts +4 -0
  174. package/dist/providers/qwen-token-plan-individual.models.d.ts.map +1 -0
  175. package/dist/providers/qwen-token-plan-individual.models.js +6 -0
  176. package/dist/providers/qwen-token-plan-individual.models.js.map +1 -0
  177. package/dist/providers/radius.d.ts.map +1 -1
  178. package/dist/providers/radius.js +36 -26
  179. package/dist/providers/radius.js.map +1 -1
  180. package/dist/providers/xai.d.ts.map +1 -1
  181. package/dist/providers/xai.js +1 -0
  182. package/dist/providers/xai.js.map +1 -1
  183. package/dist/tool-call-middleware/context-transformer.js.map +1 -1
  184. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.d.ts.map +1 -1
  185. package/dist/tool-call-middleware/protocols/kimi-xtml/parse.js.map +1 -1
  186. package/dist/tool-call-middleware/recovery-content-lifecycle.d.ts.map +1 -1
  187. package/dist/tool-call-middleware/recovery-event-stream.d.ts.map +1 -1
  188. package/dist/tool-call-middleware/recovery-native-projection.d.ts.map +1 -1
  189. package/dist/tool-call-middleware/recovery-native-projection.js.map +1 -1
  190. package/dist/tool-call-middleware/recovery-stream-terminal.d.ts.map +1 -1
  191. package/dist/tool-call-middleware/recovery-stream-wrapper.d.ts.map +1 -1
  192. package/dist/tool-call-middleware/recovery-stream-wrapper.js +5 -0
  193. package/dist/tool-call-middleware/recovery-stream-wrapper.js.map +1 -1
  194. package/dist/tool-call-middleware/recovery-text-projection.d.ts.map +1 -1
  195. package/dist/tool-call-middleware/recovery-text-projection.js.map +1 -1
  196. package/dist/tool-call-middleware/stream-thinking-projection.d.ts.map +1 -1
  197. package/dist/tool-call-middleware/stream-wrapper-shared.d.ts.map +1 -1
  198. package/dist/tool-call-middleware/stream-wrapper-shared.js.map +1 -1
  199. package/dist/tool-call-middleware/stream-wrapper.js.map +1 -1
  200. package/dist/types.d.ts +94 -87
  201. package/dist/types.d.ts.map +1 -1
  202. package/dist/types.js.map +1 -1
  203. package/dist/utils/abort.d.ts +8 -0
  204. package/dist/utils/abort.d.ts.map +1 -0
  205. package/dist/utils/abort.js +49 -0
  206. package/dist/utils/abort.js.map +1 -0
  207. package/dist/utils/deferred-tools.js.map +1 -1
  208. package/dist/utils/event-stream.d.ts.map +1 -1
  209. package/dist/utils/overflow.d.ts +14 -1
  210. package/dist/utils/overflow.d.ts.map +1 -1
  211. package/dist/utils/overflow.js +18 -1
  212. package/dist/utils/overflow.js.map +1 -1
  213. package/dist/utils/prompt-cache-ttl.d.ts +3 -1
  214. package/dist/utils/prompt-cache-ttl.d.ts.map +1 -1
  215. package/dist/utils/prompt-cache-ttl.js +2 -0
  216. package/dist/utils/prompt-cache-ttl.js.map +1 -1
  217. package/dist/utils/provider-retry.js.map +1 -1
  218. package/dist/utils/retry.d.ts +25 -0
  219. package/dist/utils/retry.d.ts.map +1 -1
  220. package/dist/utils/retry.js +64 -0
  221. package/dist/utils/retry.js.map +1 -1
  222. package/dist/utils/tool-schema-compat.d.ts.map +1 -1
  223. package/dist/utils/tool-schema-compat.js +1 -0
  224. package/dist/utils/tool-schema-compat.js.map +1 -1
  225. package/dist/utils/validation.d.ts.map +1 -1
  226. package/dist/utils/validation.js +6 -0
  227. package/dist/utils/validation.js.map +1 -1
  228. package/package.json +2 -1
@@ -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\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\ntype DynamicImport = (specifier: string) => Promise<unknown>;\n\nconst dynamicImport: DynamicImport = (specifier) => import(specifier);\nconst NODE_FS_SPECIFIER = \"node:\" + \"fs\";\nconst NODE_OS_SPECIFIER = \"node:\" + \"os\";\nconst NODE_PATH_SPECIFIER = \"node:\" + \"path\";\n\n// Eagerly load in Node.js/Bun environment only\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n\tdynamicImport(NODE_FS_SPECIFIER).then((m) => {\n\t\t_existsSync = (m as typeof import(\"node:fs\")).existsSync;\n\t});\n\tdynamicImport(NODE_OS_SPECIFIER).then((m) => {\n\t\t_homedir = (m as typeof import(\"node:os\")).homedir;\n\t});\n\tdynamicImport(NODE_PATH_SPECIFIER).then((m) => {\n\t\t_join = (m as typeof import(\"node:path\")).join;\n\t});\n}\n\nimport type { KnownProvider, ProviderEnv } from \"./types.ts\";\nimport { getProviderEnvValue } from \"./utils/provider-env.ts\";\n\nexport const ANTHROPIC_AUTH_TOKEN_ENV = \"ANTHROPIC_AUTH_TOKEN\";\nexport const ANTHROPIC_OAUTH_TOKEN_ENV = \"ANTHROPIC_OAUTH_TOKEN\";\nexport const ANTHROPIC_API_KEY_ENV = \"ANTHROPIC_API_KEY\";\n\nlet cachedVertexAdcCredentialsExists: boolean | null = null;\n\nfunction hasVertexAdcCredentials(env?: ProviderEnv): boolean {\n\tconst explicitCredentialsPath = env?.GOOGLE_APPLICATION_CREDENTIALS;\n\tif (explicitCredentialsPath) {\n\t\treturn _existsSync ? _existsSync(explicitCredentialsPath) : false;\n\t}\n\n\tif (cachedVertexAdcCredentialsExists === null) {\n\t\t// If node modules haven't loaded yet (async import race at startup),\n\t\t// return false WITHOUT caching so the next call retries once they're ready.\n\t\t// Only cache false permanently in a browser environment where fs is never available.\n\t\tif (!_existsSync || !_homedir || !_join) {\n\t\t\tconst isNode = typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun);\n\t\t\tif (!isNode) {\n\t\t\t\t// Definitively in a browser — safe to cache false permanently\n\t\t\t\tcachedVertexAdcCredentialsExists = false;\n\t\t\t}\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 = getProviderEnvValue(\"GOOGLE_APPLICATION_CREDENTIALS\", env);\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\nfunction getApiKeyEnvVars(provider: string): readonly string[] | undefined {\n\tif (provider === \"github-copilot\") {\n\t\treturn [\"COPILOT_GITHUB_TOKEN\"];\n\t}\n\n\t// ANTHROPIC_AUTH_TOKEN participates in env discovery/status, but\n\t// getEnvApiKey() skips it because requests must pass it as Authorization: Bearer.\n\tif (provider === \"anthropic\") {\n\t\treturn [ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV];\n\t}\n\n\tconst envMap: Record<string, string> = {\n\t\t\"alibaba-token-plan\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n\t\t\"ant-ling\": \"ANT_LING_API_KEY\",\n\t\t\"qwen-token-plan\": \"QWEN_TOKEN_PLAN_API_KEY\",\n\t\t\"qwen-token-plan-cn\": \"QWEN_TOKEN_PLAN_CN_API_KEY\",\n\t\topenai: \"OPENAI_API_KEY\",\n\t\tollama: \"OLLAMA_API_KEY\",\n\t\t\"azure-openai-responses\": \"AZURE_OPENAI_API_KEY\",\n\t\tnvidia: \"NVIDIA_API_KEY\",\n\t\tdeepseek: \"DEEPSEEK_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\t\"google-vertex\": \"GOOGLE_CLOUD_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\tradius: \"RADIUS_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\t\"zai-coding-cn\": \"ZAI_CODING_CN_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\tmoonshotai: \"MOONSHOT_API_KEY\",\n\t\t\"moonshotai-cn\": \"MOONSHOT_API_KEY\",\n\t\thuggingface: \"HF_TOKEN\",\n\t\tfireworks: \"FIREWORKS_API_KEY\",\n\t\ttogether: \"TOGETHER_API_KEY\",\n\t\topencode: \"OPENCODE_API_KEY\",\n\t\t\"opencode-go\": \"OPENCODE_API_KEY\",\n\t\t\"kimi-coding\": \"KIMI_API_KEY\",\n\t\t\"cloudflare-workers-ai\": \"CLOUDFLARE_API_KEY\",\n\t\t\"cloudflare-ai-gateway\": \"CLOUDFLARE_API_KEY\",\n\t\txiaomi: \"XIAOMI_API_KEY\",\n\t\t\"xiaomi-token-plan-cn\": \"XIAOMI_TOKEN_PLAN_CN_API_KEY\",\n\t\t\"xiaomi-token-plan-ams\": \"XIAOMI_TOKEN_PLAN_AMS_API_KEY\",\n\t\t\"xiaomi-token-plan-sgp\": \"XIAOMI_TOKEN_PLAN_SGP_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? [envVar] : undefined;\n}\n\n/**\n * Find configured environment variables that can provide an API key for a provider.\n *\n * This only reports actual API key variables. It intentionally excludes ambient\n * credential sources such as AWS profiles, AWS IAM credentials, and Google\n * Application Default Credentials.\n */\nexport function findEnvKeys(provider: KnownProvider, env?: ProviderEnv): string[] | undefined;\nexport function findEnvKeys(provider: string, env?: ProviderEnv): string[] | undefined;\nexport function findEnvKeys(provider: string, env?: ProviderEnv): string[] | undefined {\n\tconst envVars = getApiKeyEnvVars(provider);\n\tif (!envVars) return undefined;\n\n\tconst found = envVars.filter((envVar) => !!getProviderEnvValue(envVar, env));\n\treturn found.length > 0 ? found : undefined;\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, env?: ProviderEnv): string | undefined;\nexport function getEnvApiKey(provider: string, env?: ProviderEnv): string | undefined;\nexport function getEnvApiKey(provider: string, env?: ProviderEnv): string | undefined {\n\tconst envKeys = findEnvKeys(provider, env);\n\tif (envKeys?.[0]) {\n\t\tconst apiKeyEnv = provider === \"anthropic\" ? envKeys.find((key) => key !== ANTHROPIC_AUTH_TOKEN_ENV) : envKeys[0];\n\t\tif (apiKeyEnv) return getProviderEnvValue(apiKeyEnv, env);\n\t}\n\n\t// Vertex AI supports either an explicit API key or Application Default Credentials.\n\t// Auth is configured via `gcloud auth application-default login`.\n\tif (provider === \"google-vertex\") {\n\t\tconst hasCredentials = hasVertexAdcCredentials(env);\n\t\tconst hasProject = !!(\n\t\t\tgetProviderEnvValue(\"GOOGLE_CLOUD_PROJECT\", env) || getProviderEnvValue(\"GCLOUD_PROJECT\", env)\n\t\t);\n\t\tconst hasLocation = !!getProviderEnvValue(\"GOOGLE_CLOUD_LOCATION\", env);\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 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\tgetProviderEnvValue(\"AWS_PROFILE\", env) ||\n\t\t\t(getProviderEnvValue(\"AWS_ACCESS_KEY_ID\", env) && getProviderEnvValue(\"AWS_SECRET_ACCESS_KEY\", env)) ||\n\t\t\tgetProviderEnvValue(\"AWS_BEARER_TOKEN_BEDROCK\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_CONTAINER_CREDENTIALS_FULL_URI\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_WEB_IDENTITY_TOKEN_FILE\", env)\n\t\t) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\treturn undefined;\n}\n"]}
1
+ {"version":3,"file":"env-api-keys.js","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":";;;;;;;;AAAA,kEAAkE;AAClE,IAAI,WAAW,GAA+C,IAAI,CAAC;AACnE,IAAI,QAAQ,GAA4C,IAAI,CAAC;AAC7D,IAAI,KAAK,GAA2C,IAAI,CAAC;AAIzD,MAAM,aAAa,GAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,kCAAC,SAAS,EAAC,CAAC;AACtE,MAAM,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC;AACzC,MAAM,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC;AACzC,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,+CAA+C;AAC/C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;IACzF,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,WAAW,GAAI,CAA8B,CAAC,UAAU,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,QAAQ,GAAI,CAA8B,CAAC,OAAO,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7C,KAAK,GAAI,CAAgC,CAAC,IAAI,CAAC;IAChD,CAAC,CAAC,CAAC;AACJ,CAAC;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAEzD,IAAI,gCAAgC,GAAmB,IAAI,CAAC;AAE5D,SAAS,uBAAuB,CAAC,GAAiB;IACjD,MAAM,uBAAuB,GAAG,GAAG,EAAE,8BAA8B,CAAC;IACpE,IAAI,uBAAuB,EAAE,CAAC;QAC7B,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,CAAC;IAED,IAAI,gCAAgC,KAAK,IAAI,EAAE,CAAC;QAC/C,qEAAqE;QACrE,4EAA4E;QAC5E,qFAAqF;QACrF,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACnG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,8DAA8D;gBAC9D,gCAAgC,GAAG,KAAK,CAAC;YAC1C,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QAED,oEAAoE;QACpE,MAAM,OAAO,GAAG,mBAAmB,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QAC3E,IAAI,OAAO,EAAE,CAAC;YACb,gCAAgC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACP,kDAAkD;YAClD,gCAAgC,GAAG,WAAW,CAC7C,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,sCAAsC,CAAC,CAC9E,CAAC;QACH,CAAC;IACF,CAAC;IACD,OAAO,gCAAgC,CAAC;AACzC,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACzC,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACnC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjC,CAAC;IAED,iEAAiE;IACjE,kFAAkF;IAClF,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO,CAAC,wBAAwB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,MAAM,GAA2B;QACtC,oBAAoB,EAAE,4BAA4B;QAClD,UAAU,EAAE,kBAAkB;QAC9B,iBAAiB,EAAE,yBAAyB;QAC5C,oBAAoB,EAAE,4BAA4B;QAClD,4BAA4B,EAAE,yBAAyB;QACvD,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,gBAAgB;QACxB,wBAAwB,EAAE,sBAAsB;QAChD,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,kBAAkB;QAC5B,MAAM,EAAE,gBAAgB;QACxB,eAAe,EAAE,sBAAsB;QACvC,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,GAAG,EAAE,aAAa;QAClB,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,oBAAoB;QAChC,mBAAmB,EAAE,oBAAoB;QACzC,WAAW,EAAE,qBAAqB;QAClC,GAAG,EAAE,aAAa;QAClB,eAAe,EAAE,uBAAuB;QACxC,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,oBAAoB;QAClC,UAAU,EAAE,kBAAkB;QAC9B,eAAe,EAAE,kBAAkB;QACnC,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,QAAQ,EAAE,kBAAkB;QAC5B,aAAa,EAAE,kBAAkB;QACjC,aAAa,EAAE,cAAc;QAC7B,uBAAuB,EAAE,oBAAoB;QAC7C,uBAAuB,EAAE,oBAAoB;QAC7C,MAAM,EAAE,gBAAgB;QACxB,sBAAsB,EAAE,8BAA8B;QACtD,uBAAuB,EAAE,+BAA+B;QACxD,uBAAuB,EAAE,+BAA+B;KACxD,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAWD,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAiB;IAC9D,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AASD,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,GAAiB;IAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,wBAAwB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClH,IAAI,SAAS;YAAE,OAAO,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,oFAAoF;IACpF,kEAAkE;IAClE,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,CAAC,CAAC,CACpB,mBAAmB,CAAC,sBAAsB,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAC9F,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAExE,IAAI,cAAc,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;YACjD,OAAO,iBAAiB,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACnC,uDAAuD;QACvD,yDAAyD;QACzD,mEAAmE;QACnE,qDAAqD;QACrD,6DAA6D;QAC7D,oEAAoE;QACpE,yEAAyE;QACzE,IACC,mBAAmB,CAAC,aAAa,EAAE,GAAG,CAAC;YACvC,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;YACpG,mBAAmB,CAAC,0BAA0B,EAAE,GAAG,CAAC;YACpD,mBAAmB,CAAC,wCAAwC,EAAE,GAAG,CAAC;YAClE,mBAAmB,CAAC,oCAAoC,EAAE,GAAG,CAAC;YAC9D,mBAAmB,CAAC,6BAA6B,EAAE,GAAG,CAAC,EACtD,CAAC;YACF,OAAO,iBAAiB,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC","sourcesContent":["// NEVER convert to top-level imports - breaks browser/Vite builds\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\ntype DynamicImport = (specifier: string) => Promise<unknown>;\n\nconst dynamicImport: DynamicImport = (specifier) => import(specifier);\nconst NODE_FS_SPECIFIER = \"node:\" + \"fs\";\nconst NODE_OS_SPECIFIER = \"node:\" + \"os\";\nconst NODE_PATH_SPECIFIER = \"node:\" + \"path\";\n\n// Eagerly load in Node.js/Bun environment only\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n\tdynamicImport(NODE_FS_SPECIFIER).then((m) => {\n\t\t_existsSync = (m as typeof import(\"node:fs\")).existsSync;\n\t});\n\tdynamicImport(NODE_OS_SPECIFIER).then((m) => {\n\t\t_homedir = (m as typeof import(\"node:os\")).homedir;\n\t});\n\tdynamicImport(NODE_PATH_SPECIFIER).then((m) => {\n\t\t_join = (m as typeof import(\"node:path\")).join;\n\t});\n}\n\nimport type { KnownProvider, ProviderEnv } from \"./types.ts\";\nimport { getProviderEnvValue } from \"./utils/provider-env.ts\";\n\nexport const ANTHROPIC_AUTH_TOKEN_ENV = \"ANTHROPIC_AUTH_TOKEN\";\nexport const ANTHROPIC_OAUTH_TOKEN_ENV = \"ANTHROPIC_OAUTH_TOKEN\";\nexport const ANTHROPIC_API_KEY_ENV = \"ANTHROPIC_API_KEY\";\n\nlet cachedVertexAdcCredentialsExists: boolean | null = null;\n\nfunction hasVertexAdcCredentials(env?: ProviderEnv): boolean {\n\tconst explicitCredentialsPath = env?.GOOGLE_APPLICATION_CREDENTIALS;\n\tif (explicitCredentialsPath) {\n\t\treturn _existsSync ? _existsSync(explicitCredentialsPath) : false;\n\t}\n\n\tif (cachedVertexAdcCredentialsExists === null) {\n\t\t// If node modules haven't loaded yet (async import race at startup),\n\t\t// return false WITHOUT caching so the next call retries once they're ready.\n\t\t// Only cache false permanently in a browser environment where fs is never available.\n\t\tif (!_existsSync || !_homedir || !_join) {\n\t\t\tconst isNode = typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun);\n\t\t\tif (!isNode) {\n\t\t\t\t// Definitively in a browser — safe to cache false permanently\n\t\t\t\tcachedVertexAdcCredentialsExists = false;\n\t\t\t}\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 = getProviderEnvValue(\"GOOGLE_APPLICATION_CREDENTIALS\", env);\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\nfunction getApiKeyEnvVars(provider: string): readonly string[] | undefined {\n\tif (provider === \"github-copilot\") {\n\t\treturn [\"COPILOT_GITHUB_TOKEN\"];\n\t}\n\n\t// ANTHROPIC_AUTH_TOKEN participates in env discovery/status, but\n\t// getEnvApiKey() skips it because requests must pass it as Authorization: Bearer.\n\tif (provider === \"anthropic\") {\n\t\treturn [ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV];\n\t}\n\n\tconst envMap: Record<string, string> = {\n\t\t\"alibaba-token-plan\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n\t\t\"ant-ling\": \"ANT_LING_API_KEY\",\n\t\t\"qwen-token-plan\": \"QWEN_TOKEN_PLAN_API_KEY\",\n\t\t\"qwen-token-plan-cn\": \"QWEN_TOKEN_PLAN_CN_API_KEY\",\n\t\t\"qwen-token-plan-individual\": \"QWEN_TOKEN_PLAN_API_KEY\",\n\t\topenai: \"OPENAI_API_KEY\",\n\t\tollama: \"OLLAMA_API_KEY\",\n\t\t\"azure-openai-responses\": \"AZURE_OPENAI_API_KEY\",\n\t\tnvidia: \"NVIDIA_API_KEY\",\n\t\tdeepseek: \"DEEPSEEK_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\t\"google-vertex\": \"GOOGLE_CLOUD_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\tradius: \"RADIUS_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t\t\"vercel-ai-gateway\": \"AI_GATEWAY_API_KEY\",\n\t\topengateway: \"OPENGATEWAY_API_KEY\",\n\t\tzai: \"ZAI_API_KEY\",\n\t\t\"zai-coding-cn\": \"ZAI_CODING_CN_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\tmoonshotai: \"MOONSHOT_API_KEY\",\n\t\t\"moonshotai-cn\": \"MOONSHOT_API_KEY\",\n\t\thuggingface: \"HF_TOKEN\",\n\t\tfireworks: \"FIREWORKS_API_KEY\",\n\t\ttogether: \"TOGETHER_API_KEY\",\n\t\tbaseten: \"BASETEN_API_KEY\",\n\t\topencode: \"OPENCODE_API_KEY\",\n\t\t\"opencode-go\": \"OPENCODE_API_KEY\",\n\t\t\"kimi-coding\": \"KIMI_API_KEY\",\n\t\t\"cloudflare-workers-ai\": \"CLOUDFLARE_API_KEY\",\n\t\t\"cloudflare-ai-gateway\": \"CLOUDFLARE_API_KEY\",\n\t\txiaomi: \"XIAOMI_API_KEY\",\n\t\t\"xiaomi-token-plan-cn\": \"XIAOMI_TOKEN_PLAN_CN_API_KEY\",\n\t\t\"xiaomi-token-plan-ams\": \"XIAOMI_TOKEN_PLAN_AMS_API_KEY\",\n\t\t\"xiaomi-token-plan-sgp\": \"XIAOMI_TOKEN_PLAN_SGP_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? [envVar] : undefined;\n}\n\n/**\n * Find configured environment variables that can provide an API key for a provider.\n *\n * This only reports actual API key variables. It intentionally excludes ambient\n * credential sources such as AWS profiles, AWS IAM credentials, and Google\n * Application Default Credentials.\n */\nexport function findEnvKeys(provider: KnownProvider, env?: ProviderEnv): string[] | undefined;\nexport function findEnvKeys(provider: string, env?: ProviderEnv): string[] | undefined;\nexport function findEnvKeys(provider: string, env?: ProviderEnv): string[] | undefined {\n\tconst envVars = getApiKeyEnvVars(provider);\n\tif (!envVars) return undefined;\n\n\tconst found = envVars.filter((envVar) => !!getProviderEnvValue(envVar, env));\n\treturn found.length > 0 ? found : undefined;\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, env?: ProviderEnv): string | undefined;\nexport function getEnvApiKey(provider: string, env?: ProviderEnv): string | undefined;\nexport function getEnvApiKey(provider: string, env?: ProviderEnv): string | undefined {\n\tconst envKeys = findEnvKeys(provider, env);\n\tif (envKeys?.[0]) {\n\t\tconst apiKeyEnv = provider === \"anthropic\" ? envKeys.find((key) => key !== ANTHROPIC_AUTH_TOKEN_ENV) : envKeys[0];\n\t\tif (apiKeyEnv) return getProviderEnvValue(apiKeyEnv, env);\n\t}\n\n\t// Vertex AI supports either an explicit API key or Application Default Credentials.\n\t// Auth is configured via `gcloud auth application-default login`.\n\tif (provider === \"google-vertex\") {\n\t\tconst hasCredentials = hasVertexAdcCredentials(env);\n\t\tconst hasProject = !!(\n\t\t\tgetProviderEnvValue(\"GOOGLE_CLOUD_PROJECT\", env) || getProviderEnvValue(\"GCLOUD_PROJECT\", env)\n\t\t);\n\t\tconst hasLocation = !!getProviderEnvValue(\"GOOGLE_CLOUD_LOCATION\", env);\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 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\tgetProviderEnvValue(\"AWS_PROFILE\", env) ||\n\t\t\t(getProviderEnvValue(\"AWS_ACCESS_KEY_ID\", env) && getProviderEnvValue(\"AWS_SECRET_ACCESS_KEY\", env)) ||\n\t\t\tgetProviderEnvValue(\"AWS_BEARER_TOKEN_BEDROCK\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_CONTAINER_CREDENTIALS_FULL_URI\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_WEB_IDENTITY_TOKEN_FILE\", env)\n\t\t) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\treturn undefined;\n}\n"]}
@@ -38,7 +38,7 @@ export declare const IMAGE_MODELS: {
38
38
  api: "openrouter-images";
39
39
  provider: string;
40
40
  baseUrl: string;
41
- input: ("image" | "text")[];
41
+ input: ("text" | "image")[];
42
42
  output: "image"[];
43
43
  cost: {
44
44
  input: number;
@@ -53,7 +53,7 @@ export declare const IMAGE_MODELS: {
53
53
  api: "openrouter-images";
54
54
  provider: string;
55
55
  baseUrl: string;
56
- input: ("image" | "text")[];
56
+ input: ("text" | "image")[];
57
57
  output: "image"[];
58
58
  cost: {
59
59
  input: number;
@@ -68,7 +68,7 @@ export declare const IMAGE_MODELS: {
68
68
  api: "openrouter-images";
69
69
  provider: string;
70
70
  baseUrl: string;
71
- input: ("image" | "text")[];
71
+ input: ("text" | "image")[];
72
72
  output: "image"[];
73
73
  cost: {
74
74
  input: number;
@@ -83,7 +83,7 @@ export declare const IMAGE_MODELS: {
83
83
  api: "openrouter-images";
84
84
  provider: string;
85
85
  baseUrl: string;
86
- input: ("image" | "text")[];
86
+ input: ("text" | "image")[];
87
87
  output: "image"[];
88
88
  cost: {
89
89
  input: number;
@@ -98,7 +98,22 @@ export declare const IMAGE_MODELS: {
98
98
  api: "openrouter-images";
99
99
  provider: string;
100
100
  baseUrl: string;
101
- input: ("image" | "text")[];
101
+ input: ("text" | "image")[];
102
+ output: "image"[];
103
+ cost: {
104
+ input: number;
105
+ output: number;
106
+ cacheRead: number;
107
+ cacheWrite: number;
108
+ };
109
+ };
110
+ readonly "bytedance-seed/seedream-5-0-pro": {
111
+ id: string;
112
+ name: string;
113
+ api: "openrouter-images";
114
+ provider: string;
115
+ baseUrl: string;
116
+ input: ("text" | "image")[];
102
117
  output: "image"[];
103
118
  cost: {
104
119
  input: number;
@@ -113,8 +128,8 @@ export declare const IMAGE_MODELS: {
113
128
  api: "openrouter-images";
114
129
  provider: string;
115
130
  baseUrl: string;
116
- input: ("image" | "text")[];
117
- output: ("image" | "text")[];
131
+ input: ("text" | "image")[];
132
+ output: ("text" | "image")[];
118
133
  cost: {
119
134
  input: number;
120
135
  output: number;
@@ -128,8 +143,8 @@ export declare const IMAGE_MODELS: {
128
143
  api: "openrouter-images";
129
144
  provider: string;
130
145
  baseUrl: string;
131
- input: ("image" | "text")[];
132
- output: ("image" | "text")[];
146
+ input: ("text" | "image")[];
147
+ output: ("text" | "image")[];
133
148
  cost: {
134
149
  input: number;
135
150
  output: number;
@@ -143,8 +158,8 @@ export declare const IMAGE_MODELS: {
143
158
  api: "openrouter-images";
144
159
  provider: string;
145
160
  baseUrl: string;
146
- input: ("image" | "text")[];
147
- output: ("image" | "text")[];
161
+ input: ("text" | "image")[];
162
+ output: ("text" | "image")[];
148
163
  cost: {
149
164
  input: number;
150
165
  output: number;
@@ -158,8 +173,8 @@ export declare const IMAGE_MODELS: {
158
173
  api: "openrouter-images";
159
174
  provider: string;
160
175
  baseUrl: string;
161
- input: ("image" | "text")[];
162
- output: ("image" | "text")[];
176
+ input: ("text" | "image")[];
177
+ output: ("text" | "image")[];
163
178
  cost: {
164
179
  input: number;
165
180
  output: number;
@@ -173,8 +188,8 @@ export declare const IMAGE_MODELS: {
173
188
  api: "openrouter-images";
174
189
  provider: string;
175
190
  baseUrl: string;
176
- input: ("image" | "text")[];
177
- output: ("image" | "text")[];
191
+ input: ("text" | "image")[];
192
+ output: ("text" | "image")[];
178
193
  cost: {
179
194
  input: number;
180
195
  output: number;
@@ -188,8 +203,8 @@ export declare const IMAGE_MODELS: {
188
203
  api: "openrouter-images";
189
204
  provider: string;
190
205
  baseUrl: string;
191
- input: ("image" | "text")[];
192
- output: ("image" | "text")[];
206
+ input: ("text" | "image")[];
207
+ output: ("text" | "image")[];
193
208
  cost: {
194
209
  input: number;
195
210
  output: number;
@@ -203,7 +218,7 @@ export declare const IMAGE_MODELS: {
203
218
  api: "openrouter-images";
204
219
  provider: string;
205
220
  baseUrl: string;
206
- input: ("image" | "text")[];
221
+ input: ("text" | "image")[];
207
222
  output: "image"[];
208
223
  cost: {
209
224
  input: number;
@@ -218,7 +233,7 @@ export declare const IMAGE_MODELS: {
218
233
  api: "openrouter-images";
219
234
  provider: string;
220
235
  baseUrl: string;
221
- input: ("image" | "text")[];
236
+ input: ("text" | "image")[];
222
237
  output: "image"[];
223
238
  cost: {
224
239
  input: number;
@@ -233,7 +248,7 @@ export declare const IMAGE_MODELS: {
233
248
  api: "openrouter-images";
234
249
  provider: string;
235
250
  baseUrl: string;
236
- input: ("image" | "text")[];
251
+ input: ("text" | "image")[];
237
252
  output: "image"[];
238
253
  cost: {
239
254
  input: number;
@@ -248,7 +263,7 @@ export declare const IMAGE_MODELS: {
248
263
  api: "openrouter-images";
249
264
  provider: string;
250
265
  baseUrl: string;
251
- input: ("image" | "text")[];
266
+ input: ("text" | "image")[];
252
267
  output: "image"[];
253
268
  cost: {
254
269
  input: number;
@@ -263,7 +278,7 @@ export declare const IMAGE_MODELS: {
263
278
  api: "openrouter-images";
264
279
  provider: string;
265
280
  baseUrl: string;
266
- input: ("image" | "text")[];
281
+ input: ("text" | "image")[];
267
282
  output: "image"[];
268
283
  cost: {
269
284
  input: number;
@@ -278,8 +293,8 @@ export declare const IMAGE_MODELS: {
278
293
  api: "openrouter-images";
279
294
  provider: string;
280
295
  baseUrl: string;
281
- input: ("image" | "text")[];
282
- output: ("image" | "text")[];
296
+ input: ("text" | "image")[];
297
+ output: ("text" | "image")[];
283
298
  cost: {
284
299
  input: number;
285
300
  output: number;
@@ -293,8 +308,8 @@ export declare const IMAGE_MODELS: {
293
308
  api: "openrouter-images";
294
309
  provider: string;
295
310
  baseUrl: string;
296
- input: ("image" | "text")[];
297
- output: ("image" | "text")[];
311
+ input: ("text" | "image")[];
312
+ output: ("text" | "image")[];
298
313
  cost: {
299
314
  input: number;
300
315
  output: number;
@@ -308,8 +323,8 @@ export declare const IMAGE_MODELS: {
308
323
  api: "openrouter-images";
309
324
  provider: string;
310
325
  baseUrl: string;
311
- input: ("image" | "text")[];
312
- output: ("image" | "text")[];
326
+ input: ("text" | "image")[];
327
+ output: ("text" | "image")[];
313
328
  cost: {
314
329
  input: number;
315
330
  output: number;
@@ -323,7 +338,7 @@ export declare const IMAGE_MODELS: {
323
338
  api: "openrouter-images";
324
339
  provider: string;
325
340
  baseUrl: string;
326
- input: ("image" | "text")[];
341
+ input: ("text" | "image")[];
327
342
  output: "image"[];
328
343
  cost: {
329
344
  input: number;
@@ -338,7 +353,7 @@ export declare const IMAGE_MODELS: {
338
353
  api: "openrouter-images";
339
354
  provider: string;
340
355
  baseUrl: string;
341
- input: ("image" | "text")[];
356
+ input: ("text" | "image")[];
342
357
  output: "image"[];
343
358
  cost: {
344
359
  input: number;
@@ -353,7 +368,7 @@ export declare const IMAGE_MODELS: {
353
368
  api: "openrouter-images";
354
369
  provider: string;
355
370
  baseUrl: string;
356
- input: ("image" | "text")[];
371
+ input: ("text" | "image")[];
357
372
  output: "image"[];
358
373
  cost: {
359
374
  input: number;
@@ -368,8 +383,8 @@ export declare const IMAGE_MODELS: {
368
383
  api: "openrouter-images";
369
384
  provider: string;
370
385
  baseUrl: string;
371
- input: ("image" | "text")[];
372
- output: ("image" | "text")[];
386
+ input: ("text" | "image")[];
387
+ output: ("text" | "image")[];
373
388
  cost: {
374
389
  input: number;
375
390
  output: number;
@@ -383,8 +398,8 @@ export declare const IMAGE_MODELS: {
383
398
  api: "openrouter-images";
384
399
  provider: string;
385
400
  baseUrl: string;
386
- input: ("image" | "text")[];
387
- output: ("image" | "text")[];
401
+ input: ("text" | "image")[];
402
+ output: ("text" | "image")[];
388
403
  cost: {
389
404
  input: number;
390
405
  output: number;
@@ -398,7 +413,7 @@ export declare const IMAGE_MODELS: {
398
413
  api: "openrouter-images";
399
414
  provider: string;
400
415
  baseUrl: string;
401
- input: ("image" | "text")[];
416
+ input: ("text" | "image")[];
402
417
  output: "image"[];
403
418
  cost: {
404
419
  input: number;
@@ -413,7 +428,7 @@ export declare const IMAGE_MODELS: {
413
428
  api: "openrouter-images";
414
429
  provider: string;
415
430
  baseUrl: string;
416
- input: ("image" | "text")[];
431
+ input: ("text" | "image")[];
417
432
  output: "image"[];
418
433
  cost: {
419
434
  input: number;
@@ -428,7 +443,7 @@ export declare const IMAGE_MODELS: {
428
443
  api: "openrouter-images";
429
444
  provider: string;
430
445
  baseUrl: string;
431
- input: ("image" | "text")[];
446
+ input: ("text" | "image")[];
432
447
  output: "image"[];
433
448
  cost: {
434
449
  input: number;
@@ -443,7 +458,7 @@ export declare const IMAGE_MODELS: {
443
458
  api: "openrouter-images";
444
459
  provider: string;
445
460
  baseUrl: string;
446
- input: ("image" | "text")[];
461
+ input: ("text" | "image")[];
447
462
  output: "image"[];
448
463
  cost: {
449
464
  input: number;
@@ -458,7 +473,7 @@ export declare const IMAGE_MODELS: {
458
473
  api: "openrouter-images";
459
474
  provider: string;
460
475
  baseUrl: string;
461
- input: ("image" | "text")[];
476
+ input: ("text" | "image")[];
462
477
  output: "image"[];
463
478
  cost: {
464
479
  input: number;
@@ -473,7 +488,7 @@ export declare const IMAGE_MODELS: {
473
488
  api: "openrouter-images";
474
489
  provider: string;
475
490
  baseUrl: string;
476
- input: ("image" | "text")[];
491
+ input: ("text" | "image")[];
477
492
  output: "image"[];
478
493
  cost: {
479
494
  input: number;
@@ -488,7 +503,7 @@ export declare const IMAGE_MODELS: {
488
503
  api: "openrouter-images";
489
504
  provider: string;
490
505
  baseUrl: string;
491
- input: ("image" | "text")[];
506
+ input: ("text" | "image")[];
492
507
  output: "image"[];
493
508
  cost: {
494
509
  input: number;
@@ -503,7 +518,7 @@ export declare const IMAGE_MODELS: {
503
518
  api: "openrouter-images";
504
519
  provider: string;
505
520
  baseUrl: string;
506
- input: ("image" | "text")[];
521
+ input: ("text" | "image")[];
507
522
  output: "image"[];
508
523
  cost: {
509
524
  input: number;
@@ -518,7 +533,7 @@ export declare const IMAGE_MODELS: {
518
533
  api: "openrouter-images";
519
534
  provider: string;
520
535
  baseUrl: string;
521
- input: ("image" | "text")[];
536
+ input: ("text" | "image")[];
522
537
  output: "image"[];
523
538
  cost: {
524
539
  input: number;
@@ -533,7 +548,7 @@ export declare const IMAGE_MODELS: {
533
548
  api: "openrouter-images";
534
549
  provider: string;
535
550
  baseUrl: string;
536
- input: ("image" | "text")[];
551
+ input: ("text" | "image")[];
537
552
  output: "image"[];
538
553
  cost: {
539
554
  input: number;
@@ -548,7 +563,7 @@ export declare const IMAGE_MODELS: {
548
563
  api: "openrouter-images";
549
564
  provider: string;
550
565
  baseUrl: string;
551
- input: ("image" | "text")[];
566
+ input: ("text" | "image")[];
552
567
  output: "image"[];
553
568
  cost: {
554
569
  input: number;
@@ -563,7 +578,7 @@ export declare const IMAGE_MODELS: {
563
578
  api: "openrouter-images";
564
579
  provider: string;
565
580
  baseUrl: string;
566
- input: ("image" | "text")[];
581
+ input: ("text" | "image")[];
567
582
  output: "image"[];
568
583
  cost: {
569
584
  input: number;
@@ -578,7 +593,7 @@ export declare const IMAGE_MODELS: {
578
593
  api: "openrouter-images";
579
594
  provider: string;
580
595
  baseUrl: string;
581
- input: ("image" | "text")[];
596
+ input: ("text" | "image")[];
582
597
  output: "image"[];
583
598
  cost: {
584
599
  input: number;
@@ -593,7 +608,7 @@ export declare const IMAGE_MODELS: {
593
608
  api: "openrouter-images";
594
609
  provider: string;
595
610
  baseUrl: string;
596
- input: ("image" | "text")[];
611
+ input: ("text" | "image")[];
597
612
  output: "image"[];
598
613
  cost: {
599
614
  input: number;
@@ -608,7 +623,7 @@ export declare const IMAGE_MODELS: {
608
623
  api: "openrouter-images";
609
624
  provider: string;
610
625
  baseUrl: string;
611
- input: ("image" | "text")[];
626
+ input: ("text" | "image")[];
612
627
  output: "image"[];
613
628
  cost: {
614
629
  input: number;
@@ -623,7 +638,7 @@ export declare const IMAGE_MODELS: {
623
638
  api: "openrouter-images";
624
639
  provider: string;
625
640
  baseUrl: string;
626
- input: ("image" | "text")[];
641
+ input: ("text" | "image")[];
627
642
  output: "image"[];
628
643
  cost: {
629
644
  input: number;
@@ -638,7 +653,7 @@ export declare const IMAGE_MODELS: {
638
653
  api: "openrouter-images";
639
654
  provider: string;
640
655
  baseUrl: string;
641
- input: ("image" | "text")[];
656
+ input: ("text" | "image")[];
642
657
  output: "image"[];
643
658
  cost: {
644
659
  input: number;
@@ -653,7 +668,7 @@ export declare const IMAGE_MODELS: {
653
668
  api: "openrouter-images";
654
669
  provider: string;
655
670
  baseUrl: string;
656
- input: ("image" | "text")[];
671
+ input: ("text" | "image")[];
657
672
  output: "image"[];
658
673
  cost: {
659
674
  input: number;
@@ -668,7 +683,7 @@ export declare const IMAGE_MODELS: {
668
683
  api: "openrouter-images";
669
684
  provider: string;
670
685
  baseUrl: string;
671
- input: ("image" | "text")[];
686
+ input: ("text" | "image")[];
672
687
  output: "image"[];
673
688
  cost: {
674
689
  input: number;
@@ -1 +1 @@
1
- {"version":3,"file":"image-models.generated.d.ts","sourceRoot":"","sources":["../src/image-models.generated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-models.generated.d.ts","sourceRoot":"","sources":["../src/image-models.generated.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAurBkD,CAAC"}
@@ -109,6 +109,21 @@ export const IMAGE_MODELS = {
109
109
  cacheWrite: 0,
110
110
  },
111
111
  },
112
+ "bytedance-seed/seedream-5-0-pro": {
113
+ id: "bytedance-seed/seedream-5-0-pro",
114
+ name: "ByteDance Seed: Seedream 5.0 Pro",
115
+ api: "openrouter-images",
116
+ provider: "openrouter",
117
+ baseUrl: "https://openrouter.ai/api/v1",
118
+ input: ["text", "image"],
119
+ output: ["image"],
120
+ cost: {
121
+ input: 0,
122
+ output: 0,
123
+ cacheRead: 0,
124
+ cacheWrite: 0,
125
+ },
126
+ },
112
127
  "google/gemini-2.5-flash-image": {
113
128
  id: "google/gemini-2.5-flash-image",
114
129
  name: "Google: Nano Banana (Gemini 2.5 Flash Image)",