@gajae-code/ai 0.1.1

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 (349) hide show
  1. package/CHANGELOG.md +2644 -0
  2. package/README.md +1181 -0
  3. package/dist/types/api-registry.d.ts +30 -0
  4. package/dist/types/auth-broker/client.d.ts +66 -0
  5. package/dist/types/auth-broker/index.d.ts +5 -0
  6. package/dist/types/auth-broker/refresher.d.ts +25 -0
  7. package/dist/types/auth-broker/remote-store.d.ts +96 -0
  8. package/dist/types/auth-broker/server.d.ts +32 -0
  9. package/dist/types/auth-broker/types.d.ts +105 -0
  10. package/dist/types/auth-broker/wire-schemas.d.ts +412 -0
  11. package/dist/types/auth-gateway/http.d.ts +39 -0
  12. package/dist/types/auth-gateway/index.d.ts +3 -0
  13. package/dist/types/auth-gateway/server.d.ts +17 -0
  14. package/dist/types/auth-gateway/types.d.ts +115 -0
  15. package/dist/types/auth-storage.d.ts +641 -0
  16. package/dist/types/cli.d.ts +2 -0
  17. package/dist/types/index.d.ts +49 -0
  18. package/dist/types/model-cache.d.ts +17 -0
  19. package/dist/types/model-manager.d.ts +62 -0
  20. package/dist/types/model-thinking.d.ts +71 -0
  21. package/dist/types/models.d.ts +12 -0
  22. package/dist/types/provider-details.d.ts +24 -0
  23. package/dist/types/provider-models/bundled-references.d.ts +4 -0
  24. package/dist/types/provider-models/descriptors.d.ts +48 -0
  25. package/dist/types/provider-models/google.d.ts +20 -0
  26. package/dist/types/provider-models/index.d.ts +5 -0
  27. package/dist/types/provider-models/ollama.d.ts +7 -0
  28. package/dist/types/provider-models/openai-compat.d.ts +237 -0
  29. package/dist/types/provider-models/special.d.ts +16 -0
  30. package/dist/types/providers/amazon-bedrock.d.ts +36 -0
  31. package/dist/types/providers/anthropic-messages-server-schema.d.ts +450 -0
  32. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  33. package/dist/types/providers/anthropic.d.ts +188 -0
  34. package/dist/types/providers/aws-credentials.d.ts +43 -0
  35. package/dist/types/providers/aws-eventstream.d.ts +38 -0
  36. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  37. package/dist/types/providers/azure-openai-responses.d.ts +15 -0
  38. package/dist/types/providers/cursor/gen/agent_pb.d.ts +13022 -0
  39. package/dist/types/providers/cursor.d.ts +42 -0
  40. package/dist/types/providers/error-message.d.ts +27 -0
  41. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  42. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  43. package/dist/types/providers/google-auth.d.ts +24 -0
  44. package/dist/types/providers/google-gemini-cli.d.ts +72 -0
  45. package/dist/types/providers/google-gemini-headers.d.ts +18 -0
  46. package/dist/types/providers/google-shared.d.ts +163 -0
  47. package/dist/types/providers/google-types.d.ts +138 -0
  48. package/dist/types/providers/google-vertex.d.ts +7 -0
  49. package/dist/types/providers/google.d.ts +4 -0
  50. package/dist/types/providers/grammar.d.ts +1 -0
  51. package/dist/types/providers/kimi.d.ts +27 -0
  52. package/dist/types/providers/mock.d.ts +175 -0
  53. package/dist/types/providers/ollama.d.ts +6 -0
  54. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  55. package/dist/types/providers/openai-chat-server-schema.d.ts +814 -0
  56. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  57. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  58. package/dist/types/providers/openai-codex/request-transformer.d.ts +49 -0
  59. package/dist/types/providers/openai-codex/response-handler.d.ts +17 -0
  60. package/dist/types/providers/openai-codex-responses.d.ts +67 -0
  61. package/dist/types/providers/openai-completions-compat.d.ts +25 -0
  62. package/dist/types/providers/openai-completions.d.ts +33 -0
  63. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  64. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  65. package/dist/types/providers/openai-responses-shared.d.ts +89 -0
  66. package/dist/types/providers/openai-responses.d.ts +32 -0
  67. package/dist/types/providers/pi-native-client.d.ts +13 -0
  68. package/dist/types/providers/pi-native-server.d.ts +68 -0
  69. package/dist/types/providers/register-builtins.d.ts +31 -0
  70. package/dist/types/providers/synthetic.d.ts +26 -0
  71. package/dist/types/providers/transform-messages.d.ts +12 -0
  72. package/dist/types/providers/vision-guard.d.ts +8 -0
  73. package/dist/types/rate-limit-utils.d.ts +19 -0
  74. package/dist/types/stream.d.ts +24 -0
  75. package/dist/types/types.d.ts +746 -0
  76. package/dist/types/usage/claude.d.ts +3 -0
  77. package/dist/types/usage/gemini.d.ts +2 -0
  78. package/dist/types/usage/github-copilot.d.ts +7 -0
  79. package/dist/types/usage/google-antigravity.d.ts +2 -0
  80. package/dist/types/usage/kimi.d.ts +2 -0
  81. package/dist/types/usage/minimax-code.d.ts +2 -0
  82. package/dist/types/usage/openai-codex.d.ts +3 -0
  83. package/dist/types/usage/shared.d.ts +1 -0
  84. package/dist/types/usage/zai.d.ts +2 -0
  85. package/dist/types/usage.d.ts +258 -0
  86. package/dist/types/utils/abort.d.ts +19 -0
  87. package/dist/types/utils/anthropic-auth.d.ts +31 -0
  88. package/dist/types/utils/discovery/antigravity.d.ts +61 -0
  89. package/dist/types/utils/discovery/codex.d.ts +38 -0
  90. package/dist/types/utils/discovery/cursor.d.ts +23 -0
  91. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  92. package/dist/types/utils/discovery/index.d.ts +4 -0
  93. package/dist/types/utils/discovery/openai-compatible.d.ts +72 -0
  94. package/dist/types/utils/event-stream.d.ts +28 -0
  95. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  96. package/dist/types/utils/foundry.d.ts +1 -0
  97. package/dist/types/utils/h2-fetch.d.ts +22 -0
  98. package/dist/types/utils/http-inspector.d.ts +31 -0
  99. package/dist/types/utils/idle-iterator.d.ts +67 -0
  100. package/dist/types/utils/json-parse.d.ts +10 -0
  101. package/dist/types/utils/oauth/alibaba-coding-plan.d.ts +18 -0
  102. package/dist/types/utils/oauth/anthropic.d.ts +22 -0
  103. package/dist/types/utils/oauth/api-key-login.d.ts +35 -0
  104. package/dist/types/utils/oauth/api-key-validation.d.ts +27 -0
  105. package/dist/types/utils/oauth/callback-server.d.ts +57 -0
  106. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  107. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  108. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  109. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  110. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  111. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  112. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  113. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  114. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  115. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  116. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  117. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  118. package/dist/types/utils/oauth/index.d.ts +38 -0
  119. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  120. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  121. package/dist/types/utils/oauth/kimi.d.ts +21 -0
  122. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  123. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  124. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  125. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  126. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  127. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  128. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  129. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  130. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  131. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  132. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  133. package/dist/types/utils/oauth/perplexity.d.ts +9 -0
  134. package/dist/types/utils/oauth/pkce.d.ts +8 -0
  135. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  136. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  137. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  138. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  139. package/dist/types/utils/oauth/together.d.ts +1 -0
  140. package/dist/types/utils/oauth/types.d.ts +44 -0
  141. package/dist/types/utils/oauth/venice.d.ts +18 -0
  142. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  143. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  144. package/dist/types/utils/oauth/xiaomi.d.ts +19 -0
  145. package/dist/types/utils/oauth/zai.d.ts +18 -0
  146. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  147. package/dist/types/utils/overflow.d.ts +54 -0
  148. package/dist/types/utils/parse-bind.d.ts +23 -0
  149. package/dist/types/utils/provider-response.d.ts +3 -0
  150. package/dist/types/utils/retry-after.d.ts +3 -0
  151. package/dist/types/utils/retry.d.ts +26 -0
  152. package/dist/types/utils/schema/adapt.d.ts +24 -0
  153. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  154. package/dist/types/utils/schema/dereference.d.ts +11 -0
  155. package/dist/types/utils/schema/draft.d.ts +10 -0
  156. package/dist/types/utils/schema/equality.d.ts +4 -0
  157. package/dist/types/utils/schema/fields.d.ts +49 -0
  158. package/dist/types/utils/schema/index.d.ts +13 -0
  159. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  160. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  161. package/dist/types/utils/schema/normalize.d.ts +93 -0
  162. package/dist/types/utils/schema/spill.d.ts +8 -0
  163. package/dist/types/utils/schema/stamps.d.ts +25 -0
  164. package/dist/types/utils/schema/types.d.ts +4 -0
  165. package/dist/types/utils/schema/wire.d.ts +54 -0
  166. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  167. package/dist/types/utils/sse-debug.d.ts +10 -0
  168. package/dist/types/utils/tool-call-healing.d.ts +71 -0
  169. package/dist/types/utils/tool-choice.d.ts +50 -0
  170. package/dist/types/utils/validation.d.ts +17 -0
  171. package/dist/types/utils.d.ts +28 -0
  172. package/package.json +146 -0
  173. package/src/api-registry.ts +96 -0
  174. package/src/auth-broker/client.ts +358 -0
  175. package/src/auth-broker/index.ts +5 -0
  176. package/src/auth-broker/refresher.ts +127 -0
  177. package/src/auth-broker/remote-store.ts +623 -0
  178. package/src/auth-broker/server.ts +644 -0
  179. package/src/auth-broker/types.ts +127 -0
  180. package/src/auth-broker/wire-schemas.ts +200 -0
  181. package/src/auth-gateway/http.ts +194 -0
  182. package/src/auth-gateway/index.ts +3 -0
  183. package/src/auth-gateway/server.ts +717 -0
  184. package/src/auth-gateway/types.ts +134 -0
  185. package/src/auth-storage.ts +4104 -0
  186. package/src/cli.ts +262 -0
  187. package/src/index.ts +54 -0
  188. package/src/model-cache.ts +129 -0
  189. package/src/model-manager.ts +450 -0
  190. package/src/model-thinking.ts +691 -0
  191. package/src/models.json +73853 -0
  192. package/src/models.json.d.ts +9 -0
  193. package/src/models.ts +56 -0
  194. package/src/prompts/turn-aborted-guidance.md +4 -0
  195. package/src/provider-details.ts +90 -0
  196. package/src/provider-models/bundled-references.ts +38 -0
  197. package/src/provider-models/descriptors.ts +308 -0
  198. package/src/provider-models/google.ts +91 -0
  199. package/src/provider-models/index.ts +5 -0
  200. package/src/provider-models/ollama.ts +153 -0
  201. package/src/provider-models/openai-compat.ts +2275 -0
  202. package/src/provider-models/special.ts +67 -0
  203. package/src/providers/amazon-bedrock.ts +849 -0
  204. package/src/providers/anthropic-messages-server-schema.ts +229 -0
  205. package/src/providers/anthropic-messages-server.ts +677 -0
  206. package/src/providers/anthropic.ts +2696 -0
  207. package/src/providers/aws-credentials.ts +501 -0
  208. package/src/providers/aws-eventstream.ts +185 -0
  209. package/src/providers/aws-sigv4.ts +218 -0
  210. package/src/providers/azure-openai-responses.ts +337 -0
  211. package/src/providers/cursor/gen/agent_pb.ts +15274 -0
  212. package/src/providers/cursor/proto/agent.proto +3526 -0
  213. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  214. package/src/providers/cursor/proto/buf.yaml +17 -0
  215. package/src/providers/cursor.ts +2561 -0
  216. package/src/providers/error-message.ts +21 -0
  217. package/src/providers/github-copilot-headers.ts +140 -0
  218. package/src/providers/gitlab-duo.ts +372 -0
  219. package/src/providers/google-auth.ts +252 -0
  220. package/src/providers/google-gemini-cli.ts +795 -0
  221. package/src/providers/google-gemini-headers.ts +41 -0
  222. package/src/providers/google-shared.ts +902 -0
  223. package/src/providers/google-types.ts +167 -0
  224. package/src/providers/google-vertex.ts +88 -0
  225. package/src/providers/google.ts +41 -0
  226. package/src/providers/grammar.ts +70 -0
  227. package/src/providers/kimi.ts +52 -0
  228. package/src/providers/mock.ts +500 -0
  229. package/src/providers/ollama.ts +544 -0
  230. package/src/providers/openai-anthropic-shim.ts +138 -0
  231. package/src/providers/openai-chat-server-schema.ts +243 -0
  232. package/src/providers/openai-chat-server.ts +628 -0
  233. package/src/providers/openai-codex/constants.ts +43 -0
  234. package/src/providers/openai-codex/request-transformer.ts +161 -0
  235. package/src/providers/openai-codex/response-handler.ts +81 -0
  236. package/src/providers/openai-codex-responses.ts +2598 -0
  237. package/src/providers/openai-completions-compat.ts +279 -0
  238. package/src/providers/openai-completions.ts +1853 -0
  239. package/src/providers/openai-responses-server-schema.ts +290 -0
  240. package/src/providers/openai-responses-server.ts +1183 -0
  241. package/src/providers/openai-responses-shared.ts +800 -0
  242. package/src/providers/openai-responses.ts +621 -0
  243. package/src/providers/pi-native-client.ts +228 -0
  244. package/src/providers/pi-native-server.ts +210 -0
  245. package/src/providers/register-builtins.ts +412 -0
  246. package/src/providers/synthetic.ts +50 -0
  247. package/src/providers/transform-messages.ts +309 -0
  248. package/src/providers/vision-guard.ts +31 -0
  249. package/src/rate-limit-utils.ts +84 -0
  250. package/src/stream.ts +895 -0
  251. package/src/types.ts +884 -0
  252. package/src/usage/claude.ts +431 -0
  253. package/src/usage/gemini.ts +250 -0
  254. package/src/usage/github-copilot.ts +421 -0
  255. package/src/usage/google-antigravity.ts +201 -0
  256. package/src/usage/kimi.ts +271 -0
  257. package/src/usage/minimax-code.ts +31 -0
  258. package/src/usage/openai-codex.ts +503 -0
  259. package/src/usage/shared.ts +10 -0
  260. package/src/usage/zai.ts +247 -0
  261. package/src/usage.ts +183 -0
  262. package/src/utils/abort.ts +51 -0
  263. package/src/utils/anthropic-auth.ts +87 -0
  264. package/src/utils/discovery/antigravity.ts +261 -0
  265. package/src/utils/discovery/codex.ts +371 -0
  266. package/src/utils/discovery/cursor.ts +306 -0
  267. package/src/utils/discovery/gemini.ts +248 -0
  268. package/src/utils/discovery/index.ts +4 -0
  269. package/src/utils/discovery/openai-compatible.ts +224 -0
  270. package/src/utils/event-stream.ts +142 -0
  271. package/src/utils/fireworks-model-id.ts +30 -0
  272. package/src/utils/foundry.ts +8 -0
  273. package/src/utils/h2-fetch.ts +60 -0
  274. package/src/utils/http-inspector.ts +176 -0
  275. package/src/utils/idle-iterator.ts +250 -0
  276. package/src/utils/json-parse.ts +148 -0
  277. package/src/utils/oauth/alibaba-coding-plan.ts +59 -0
  278. package/src/utils/oauth/anthropic.ts +200 -0
  279. package/src/utils/oauth/api-key-login.ts +87 -0
  280. package/src/utils/oauth/api-key-validation.ts +92 -0
  281. package/src/utils/oauth/callback-server.ts +276 -0
  282. package/src/utils/oauth/cerebras.ts +16 -0
  283. package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
  284. package/src/utils/oauth/cursor.ts +157 -0
  285. package/src/utils/oauth/deepseek.ts +53 -0
  286. package/src/utils/oauth/firepass.ts +24 -0
  287. package/src/utils/oauth/fireworks.ts +15 -0
  288. package/src/utils/oauth/github-copilot.ts +362 -0
  289. package/src/utils/oauth/gitlab-duo.ts +123 -0
  290. package/src/utils/oauth/google-antigravity.ts +200 -0
  291. package/src/utils/oauth/google-gemini-cli.ts +256 -0
  292. package/src/utils/oauth/google-oauth-shared.ts +110 -0
  293. package/src/utils/oauth/huggingface.ts +62 -0
  294. package/src/utils/oauth/index.ts +444 -0
  295. package/src/utils/oauth/kagi.ts +47 -0
  296. package/src/utils/oauth/kilo.ts +87 -0
  297. package/src/utils/oauth/kimi.ts +254 -0
  298. package/src/utils/oauth/litellm.ts +47 -0
  299. package/src/utils/oauth/lm-studio.ts +38 -0
  300. package/src/utils/oauth/minimax-code.ts +78 -0
  301. package/src/utils/oauth/moonshot.ts +16 -0
  302. package/src/utils/oauth/nanogpt.ts +15 -0
  303. package/src/utils/oauth/nvidia.ts +70 -0
  304. package/src/utils/oauth/oauth.html +199 -0
  305. package/src/utils/oauth/ollama-cloud.ts +28 -0
  306. package/src/utils/oauth/ollama.ts +47 -0
  307. package/src/utils/oauth/openai-codex.ts +299 -0
  308. package/src/utils/oauth/opencode.ts +49 -0
  309. package/src/utils/oauth/parallel.ts +46 -0
  310. package/src/utils/oauth/perplexity.ts +206 -0
  311. package/src/utils/oauth/pkce.ts +18 -0
  312. package/src/utils/oauth/qianfan.ts +58 -0
  313. package/src/utils/oauth/qwen-portal.ts +60 -0
  314. package/src/utils/oauth/synthetic.ts +16 -0
  315. package/src/utils/oauth/tavily.ts +46 -0
  316. package/src/utils/oauth/together.ts +16 -0
  317. package/src/utils/oauth/types.ts +94 -0
  318. package/src/utils/oauth/venice.ts +59 -0
  319. package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
  320. package/src/utils/oauth/vllm.ts +40 -0
  321. package/src/utils/oauth/xiaomi.ts +137 -0
  322. package/src/utils/oauth/zai.ts +60 -0
  323. package/src/utils/oauth/zenmux.ts +15 -0
  324. package/src/utils/overflow.ts +137 -0
  325. package/src/utils/parse-bind.ts +54 -0
  326. package/src/utils/provider-response.ts +30 -0
  327. package/src/utils/retry-after.ts +110 -0
  328. package/src/utils/retry.ts +54 -0
  329. package/src/utils/schema/CONSTRAINTS.md +164 -0
  330. package/src/utils/schema/adapt.ts +36 -0
  331. package/src/utils/schema/compatibility.ts +435 -0
  332. package/src/utils/schema/dereference.ts +98 -0
  333. package/src/utils/schema/draft.ts +341 -0
  334. package/src/utils/schema/equality.ts +97 -0
  335. package/src/utils/schema/fields.ts +190 -0
  336. package/src/utils/schema/index.ts +13 -0
  337. package/src/utils/schema/json-schema-validator.ts +577 -0
  338. package/src/utils/schema/meta-validator.ts +167 -0
  339. package/src/utils/schema/normalize.ts +1588 -0
  340. package/src/utils/schema/spill.ts +43 -0
  341. package/src/utils/schema/stamps.ts +97 -0
  342. package/src/utils/schema/types.ts +11 -0
  343. package/src/utils/schema/wire.ts +213 -0
  344. package/src/utils/schema/zod-decontaminate.ts +331 -0
  345. package/src/utils/sse-debug.ts +289 -0
  346. package/src/utils/tool-call-healing.ts +271 -0
  347. package/src/utils/tool-choice.ts +99 -0
  348. package/src/utils/validation.ts +1019 -0
  349. package/src/utils.ts +166 -0
@@ -0,0 +1,450 @@
1
+ /**
2
+ * Zod schemas for the Anthropic Messages API request shape we accept on the
3
+ * gateway. Mirrors https://docs.anthropic.com/en/api/messages — only the
4
+ * shapes the gateway actually understands; unsupported fields are caught with
5
+ * `.refine(...)` so the error mentions them explicitly.
6
+ *
7
+ * Used by `anthropic-messages.ts:parseRequest` to validate the inbound JSON
8
+ * before walking it into pi-ai's canonical `Context`.
9
+ */
10
+ import type { ContentBlockParam, ImageBlockParam, MessageCreateParams, MessageParam, TextBlockParam, Tool, ToolChoice } from "@anthropic-ai/sdk/resources/messages";
11
+ import * as z from "zod/v4";
12
+ export declare const cacheControlSchema: z.ZodObject<{
13
+ type: z.ZodLiteral<"ephemeral">;
14
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
15
+ }, z.core.$loose>;
16
+ export declare const base64ImageSourceSchema: z.ZodObject<{
17
+ type: z.ZodLiteral<"base64">;
18
+ data: z.ZodString;
19
+ media_type: z.ZodString;
20
+ }, z.core.$strip>;
21
+ export declare const urlImageSourceSchema: z.ZodObject<{
22
+ type: z.ZodLiteral<"url">;
23
+ url: z.ZodURL;
24
+ }, z.core.$strip>;
25
+ export declare const fileImageSourceSchema: z.ZodObject<{
26
+ type: z.ZodLiteral<"file">;
27
+ file_id: z.ZodString;
28
+ }, z.core.$strip>;
29
+ export declare const imageSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
30
+ type: z.ZodLiteral<"base64">;
31
+ data: z.ZodString;
32
+ media_type: z.ZodString;
33
+ }, z.core.$strip>, z.ZodObject<{
34
+ type: z.ZodLiteral<"url">;
35
+ url: z.ZodURL;
36
+ }, z.core.$strip>, z.ZodObject<{
37
+ type: z.ZodLiteral<"file">;
38
+ file_id: z.ZodString;
39
+ }, z.core.$strip>], "type">;
40
+ export declare const systemSchema: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodObject<{
41
+ type: z.ZodLiteral<"text">;
42
+ text: z.ZodString;
43
+ cache_control: z.ZodOptional<z.ZodObject<{
44
+ type: z.ZodLiteral<"ephemeral">;
45
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
46
+ }, z.core.$loose>>;
47
+ }, z.core.$strip>>]>>;
48
+ export declare const userMessageSchema: z.ZodObject<{
49
+ role: z.ZodLiteral<"user">;
50
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
51
+ type: z.ZodLiteral<"text">;
52
+ text: z.ZodString;
53
+ cache_control: z.ZodOptional<z.ZodObject<{
54
+ type: z.ZodLiteral<"ephemeral">;
55
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
56
+ }, z.core.$loose>>;
57
+ }, z.core.$strip>, z.ZodObject<{
58
+ type: z.ZodLiteral<"image">;
59
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
60
+ type: z.ZodLiteral<"base64">;
61
+ data: z.ZodString;
62
+ media_type: z.ZodString;
63
+ }, z.core.$strip>, z.ZodObject<{
64
+ type: z.ZodLiteral<"url">;
65
+ url: z.ZodURL;
66
+ }, z.core.$strip>, z.ZodObject<{
67
+ type: z.ZodLiteral<"file">;
68
+ file_id: z.ZodString;
69
+ }, z.core.$strip>], "type">;
70
+ cache_control: z.ZodOptional<z.ZodObject<{
71
+ type: z.ZodLiteral<"ephemeral">;
72
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
73
+ }, z.core.$loose>>;
74
+ }, z.core.$strip>, z.ZodObject<{
75
+ type: z.ZodLiteral<"tool_result">;
76
+ tool_use_id: z.ZodString;
77
+ content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
78
+ type: z.ZodLiteral<"text">;
79
+ text: z.ZodString;
80
+ cache_control: z.ZodOptional<z.ZodObject<{
81
+ type: z.ZodLiteral<"ephemeral">;
82
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
83
+ }, z.core.$loose>>;
84
+ }, z.core.$strip>, z.ZodObject<{
85
+ type: z.ZodLiteral<"image">;
86
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
87
+ type: z.ZodLiteral<"base64">;
88
+ data: z.ZodString;
89
+ media_type: z.ZodString;
90
+ }, z.core.$strip>, z.ZodObject<{
91
+ type: z.ZodLiteral<"url">;
92
+ url: z.ZodURL;
93
+ }, z.core.$strip>, z.ZodObject<{
94
+ type: z.ZodLiteral<"file">;
95
+ file_id: z.ZodString;
96
+ }, z.core.$strip>], "type">;
97
+ cache_control: z.ZodOptional<z.ZodObject<{
98
+ type: z.ZodLiteral<"ephemeral">;
99
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
100
+ }, z.core.$loose>>;
101
+ }, z.core.$strip>], "type">>]>>;
102
+ is_error: z.ZodOptional<z.ZodBoolean>;
103
+ cache_control: z.ZodOptional<z.ZodObject<{
104
+ type: z.ZodLiteral<"ephemeral">;
105
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
106
+ }, z.core.$loose>>;
107
+ }, z.core.$strip>], "type">, z.ZodObject<{
108
+ type: z.ZodString;
109
+ }, z.core.$loose>]>>]>;
110
+ }, z.core.$strip>;
111
+ export declare const assistantMessageSchema: z.ZodObject<{
112
+ role: z.ZodLiteral<"assistant">;
113
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
114
+ type: z.ZodLiteral<"text">;
115
+ text: z.ZodString;
116
+ cache_control: z.ZodOptional<z.ZodObject<{
117
+ type: z.ZodLiteral<"ephemeral">;
118
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
119
+ }, z.core.$loose>>;
120
+ }, z.core.$strip>, z.ZodObject<{
121
+ type: z.ZodLiteral<"thinking">;
122
+ thinking: z.ZodString;
123
+ signature: z.ZodOptional<z.ZodString>;
124
+ cache_control: z.ZodOptional<z.ZodObject<{
125
+ type: z.ZodLiteral<"ephemeral">;
126
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
127
+ }, z.core.$loose>>;
128
+ }, z.core.$strip>, z.ZodObject<{
129
+ type: z.ZodLiteral<"redacted_thinking">;
130
+ data: z.ZodString;
131
+ cache_control: z.ZodOptional<z.ZodObject<{
132
+ type: z.ZodLiteral<"ephemeral">;
133
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
134
+ }, z.core.$loose>>;
135
+ }, z.core.$strip>, z.ZodObject<{
136
+ type: z.ZodLiteral<"tool_use">;
137
+ id: z.ZodString;
138
+ name: z.ZodString;
139
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
140
+ cache_control: z.ZodOptional<z.ZodObject<{
141
+ type: z.ZodLiteral<"ephemeral">;
142
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
143
+ }, z.core.$loose>>;
144
+ }, z.core.$strip>], "type">, z.ZodObject<{
145
+ type: z.ZodString;
146
+ }, z.core.$loose>]>>]>;
147
+ }, z.core.$strip>;
148
+ export declare const messageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
149
+ role: z.ZodLiteral<"user">;
150
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
151
+ type: z.ZodLiteral<"text">;
152
+ text: z.ZodString;
153
+ cache_control: z.ZodOptional<z.ZodObject<{
154
+ type: z.ZodLiteral<"ephemeral">;
155
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
156
+ }, z.core.$loose>>;
157
+ }, z.core.$strip>, z.ZodObject<{
158
+ type: z.ZodLiteral<"image">;
159
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
160
+ type: z.ZodLiteral<"base64">;
161
+ data: z.ZodString;
162
+ media_type: z.ZodString;
163
+ }, z.core.$strip>, z.ZodObject<{
164
+ type: z.ZodLiteral<"url">;
165
+ url: z.ZodURL;
166
+ }, z.core.$strip>, z.ZodObject<{
167
+ type: z.ZodLiteral<"file">;
168
+ file_id: z.ZodString;
169
+ }, z.core.$strip>], "type">;
170
+ cache_control: z.ZodOptional<z.ZodObject<{
171
+ type: z.ZodLiteral<"ephemeral">;
172
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
173
+ }, z.core.$loose>>;
174
+ }, z.core.$strip>, z.ZodObject<{
175
+ type: z.ZodLiteral<"tool_result">;
176
+ tool_use_id: z.ZodString;
177
+ content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
178
+ type: z.ZodLiteral<"text">;
179
+ text: z.ZodString;
180
+ cache_control: z.ZodOptional<z.ZodObject<{
181
+ type: z.ZodLiteral<"ephemeral">;
182
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
183
+ }, z.core.$loose>>;
184
+ }, z.core.$strip>, z.ZodObject<{
185
+ type: z.ZodLiteral<"image">;
186
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
187
+ type: z.ZodLiteral<"base64">;
188
+ data: z.ZodString;
189
+ media_type: z.ZodString;
190
+ }, z.core.$strip>, z.ZodObject<{
191
+ type: z.ZodLiteral<"url">;
192
+ url: z.ZodURL;
193
+ }, z.core.$strip>, z.ZodObject<{
194
+ type: z.ZodLiteral<"file">;
195
+ file_id: z.ZodString;
196
+ }, z.core.$strip>], "type">;
197
+ cache_control: z.ZodOptional<z.ZodObject<{
198
+ type: z.ZodLiteral<"ephemeral">;
199
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
200
+ }, z.core.$loose>>;
201
+ }, z.core.$strip>], "type">>]>>;
202
+ is_error: z.ZodOptional<z.ZodBoolean>;
203
+ cache_control: z.ZodOptional<z.ZodObject<{
204
+ type: z.ZodLiteral<"ephemeral">;
205
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
206
+ }, z.core.$loose>>;
207
+ }, z.core.$strip>], "type">, z.ZodObject<{
208
+ type: z.ZodString;
209
+ }, z.core.$loose>]>>]>;
210
+ }, z.core.$strip>, z.ZodObject<{
211
+ role: z.ZodLiteral<"assistant">;
212
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
213
+ type: z.ZodLiteral<"text">;
214
+ text: z.ZodString;
215
+ cache_control: z.ZodOptional<z.ZodObject<{
216
+ type: z.ZodLiteral<"ephemeral">;
217
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
218
+ }, z.core.$loose>>;
219
+ }, z.core.$strip>, z.ZodObject<{
220
+ type: z.ZodLiteral<"thinking">;
221
+ thinking: z.ZodString;
222
+ signature: z.ZodOptional<z.ZodString>;
223
+ cache_control: z.ZodOptional<z.ZodObject<{
224
+ type: z.ZodLiteral<"ephemeral">;
225
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
226
+ }, z.core.$loose>>;
227
+ }, z.core.$strip>, z.ZodObject<{
228
+ type: z.ZodLiteral<"redacted_thinking">;
229
+ data: z.ZodString;
230
+ cache_control: z.ZodOptional<z.ZodObject<{
231
+ type: z.ZodLiteral<"ephemeral">;
232
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
233
+ }, z.core.$loose>>;
234
+ }, z.core.$strip>, z.ZodObject<{
235
+ type: z.ZodLiteral<"tool_use">;
236
+ id: z.ZodString;
237
+ name: z.ZodString;
238
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
239
+ cache_control: z.ZodOptional<z.ZodObject<{
240
+ type: z.ZodLiteral<"ephemeral">;
241
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
242
+ }, z.core.$loose>>;
243
+ }, z.core.$strip>], "type">, z.ZodObject<{
244
+ type: z.ZodString;
245
+ }, z.core.$loose>]>>]>;
246
+ }, z.core.$strip>], "role">;
247
+ export declare const toolSchema: z.ZodObject<{
248
+ name: z.ZodString;
249
+ description: z.ZodOptional<z.ZodString>;
250
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
251
+ cache_control: z.ZodOptional<z.ZodObject<{
252
+ type: z.ZodLiteral<"ephemeral">;
253
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
254
+ }, z.core.$loose>>;
255
+ }, z.core.$strip>;
256
+ export declare const toolChoiceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
257
+ type: z.ZodLiteral<"auto">;
258
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
259
+ }, z.core.$strip>, z.ZodObject<{
260
+ type: z.ZodLiteral<"any">;
261
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
262
+ }, z.core.$strip>, z.ZodObject<{
263
+ type: z.ZodLiteral<"none">;
264
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
265
+ }, z.core.$strip>, z.ZodObject<{
266
+ type: z.ZodLiteral<"tool">;
267
+ name: z.ZodString;
268
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
269
+ }, z.core.$strip>], "type">;
270
+ export declare const thinkingConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
271
+ type: z.ZodLiteral<"enabled">;
272
+ budget_tokens: z.ZodNumber;
273
+ display: z.ZodOptional<z.ZodUnknown>;
274
+ }, z.core.$strip>, z.ZodObject<{
275
+ type: z.ZodLiteral<"disabled">;
276
+ display: z.ZodOptional<z.ZodUnknown>;
277
+ }, z.core.$strip>, z.ZodObject<{
278
+ type: z.ZodLiteral<"adaptive">;
279
+ budget_tokens: z.ZodOptional<z.ZodNumber>;
280
+ display: z.ZodOptional<z.ZodUnknown>;
281
+ }, z.core.$strip>], "type">;
282
+ export declare const anthropicMessagesRequestSchema: z.ZodObject<{
283
+ model: z.ZodString;
284
+ messages: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
285
+ role: z.ZodLiteral<"user">;
286
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
287
+ type: z.ZodLiteral<"text">;
288
+ text: z.ZodString;
289
+ cache_control: z.ZodOptional<z.ZodObject<{
290
+ type: z.ZodLiteral<"ephemeral">;
291
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
292
+ }, z.core.$loose>>;
293
+ }, z.core.$strip>, z.ZodObject<{
294
+ type: z.ZodLiteral<"image">;
295
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
296
+ type: z.ZodLiteral<"base64">;
297
+ data: z.ZodString;
298
+ media_type: z.ZodString;
299
+ }, z.core.$strip>, z.ZodObject<{
300
+ type: z.ZodLiteral<"url">;
301
+ url: z.ZodURL;
302
+ }, z.core.$strip>, z.ZodObject<{
303
+ type: z.ZodLiteral<"file">;
304
+ file_id: z.ZodString;
305
+ }, z.core.$strip>], "type">;
306
+ cache_control: z.ZodOptional<z.ZodObject<{
307
+ type: z.ZodLiteral<"ephemeral">;
308
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
309
+ }, z.core.$loose>>;
310
+ }, z.core.$strip>, z.ZodObject<{
311
+ type: z.ZodLiteral<"tool_result">;
312
+ tool_use_id: z.ZodString;
313
+ content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
314
+ type: z.ZodLiteral<"text">;
315
+ text: z.ZodString;
316
+ cache_control: z.ZodOptional<z.ZodObject<{
317
+ type: z.ZodLiteral<"ephemeral">;
318
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
319
+ }, z.core.$loose>>;
320
+ }, z.core.$strip>, z.ZodObject<{
321
+ type: z.ZodLiteral<"image">;
322
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
323
+ type: z.ZodLiteral<"base64">;
324
+ data: z.ZodString;
325
+ media_type: z.ZodString;
326
+ }, z.core.$strip>, z.ZodObject<{
327
+ type: z.ZodLiteral<"url">;
328
+ url: z.ZodURL;
329
+ }, z.core.$strip>, z.ZodObject<{
330
+ type: z.ZodLiteral<"file">;
331
+ file_id: z.ZodString;
332
+ }, z.core.$strip>], "type">;
333
+ cache_control: z.ZodOptional<z.ZodObject<{
334
+ type: z.ZodLiteral<"ephemeral">;
335
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
336
+ }, z.core.$loose>>;
337
+ }, z.core.$strip>], "type">>]>>;
338
+ is_error: z.ZodOptional<z.ZodBoolean>;
339
+ cache_control: z.ZodOptional<z.ZodObject<{
340
+ type: z.ZodLiteral<"ephemeral">;
341
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
342
+ }, z.core.$loose>>;
343
+ }, z.core.$strip>], "type">, z.ZodObject<{
344
+ type: z.ZodString;
345
+ }, z.core.$loose>]>>]>;
346
+ }, z.core.$strip>, z.ZodObject<{
347
+ role: z.ZodLiteral<"assistant">;
348
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
349
+ type: z.ZodLiteral<"text">;
350
+ text: z.ZodString;
351
+ cache_control: z.ZodOptional<z.ZodObject<{
352
+ type: z.ZodLiteral<"ephemeral">;
353
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
354
+ }, z.core.$loose>>;
355
+ }, z.core.$strip>, z.ZodObject<{
356
+ type: z.ZodLiteral<"thinking">;
357
+ thinking: z.ZodString;
358
+ signature: z.ZodOptional<z.ZodString>;
359
+ cache_control: z.ZodOptional<z.ZodObject<{
360
+ type: z.ZodLiteral<"ephemeral">;
361
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
362
+ }, z.core.$loose>>;
363
+ }, z.core.$strip>, z.ZodObject<{
364
+ type: z.ZodLiteral<"redacted_thinking">;
365
+ data: z.ZodString;
366
+ cache_control: z.ZodOptional<z.ZodObject<{
367
+ type: z.ZodLiteral<"ephemeral">;
368
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
369
+ }, z.core.$loose>>;
370
+ }, z.core.$strip>, z.ZodObject<{
371
+ type: z.ZodLiteral<"tool_use">;
372
+ id: z.ZodString;
373
+ name: z.ZodString;
374
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
375
+ cache_control: z.ZodOptional<z.ZodObject<{
376
+ type: z.ZodLiteral<"ephemeral">;
377
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
378
+ }, z.core.$loose>>;
379
+ }, z.core.$strip>], "type">, z.ZodObject<{
380
+ type: z.ZodString;
381
+ }, z.core.$loose>]>>]>;
382
+ }, z.core.$strip>], "role">>;
383
+ max_tokens: z.ZodNumber;
384
+ system: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodObject<{
385
+ type: z.ZodLiteral<"text">;
386
+ text: z.ZodString;
387
+ cache_control: z.ZodOptional<z.ZodObject<{
388
+ type: z.ZodLiteral<"ephemeral">;
389
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
390
+ }, z.core.$loose>>;
391
+ }, z.core.$strip>>]>>;
392
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
393
+ name: z.ZodString;
394
+ description: z.ZodOptional<z.ZodString>;
395
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
396
+ cache_control: z.ZodOptional<z.ZodObject<{
397
+ type: z.ZodLiteral<"ephemeral">;
398
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
399
+ }, z.core.$loose>>;
400
+ }, z.core.$strip>>>;
401
+ tool_choice: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
402
+ type: z.ZodLiteral<"auto">;
403
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
404
+ }, z.core.$strip>, z.ZodObject<{
405
+ type: z.ZodLiteral<"any">;
406
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
407
+ }, z.core.$strip>, z.ZodObject<{
408
+ type: z.ZodLiteral<"none">;
409
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
410
+ }, z.core.$strip>, z.ZodObject<{
411
+ type: z.ZodLiteral<"tool">;
412
+ name: z.ZodString;
413
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
414
+ }, z.core.$strip>], "type">>;
415
+ temperature: z.ZodOptional<z.ZodNumber>;
416
+ top_p: z.ZodOptional<z.ZodNumber>;
417
+ top_k: z.ZodOptional<z.ZodNumber>;
418
+ stop_sequences: z.ZodOptional<z.ZodArray<z.ZodString>>;
419
+ stream: z.ZodOptional<z.ZodBoolean>;
420
+ thinking: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
421
+ type: z.ZodLiteral<"enabled">;
422
+ budget_tokens: z.ZodNumber;
423
+ display: z.ZodOptional<z.ZodUnknown>;
424
+ }, z.core.$strip>, z.ZodObject<{
425
+ type: z.ZodLiteral<"disabled">;
426
+ display: z.ZodOptional<z.ZodUnknown>;
427
+ }, z.core.$strip>, z.ZodObject<{
428
+ type: z.ZodLiteral<"adaptive">;
429
+ budget_tokens: z.ZodOptional<z.ZodNumber>;
430
+ display: z.ZodOptional<z.ZodUnknown>;
431
+ }, z.core.$strip>], "type">>;
432
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
433
+ container: z.ZodOptional<z.ZodUnknown>;
434
+ context_management: z.ZodOptional<z.ZodUnknown>;
435
+ mcp_servers: z.ZodOptional<z.ZodUnknown>;
436
+ service_tier: z.ZodOptional<z.ZodUnknown>;
437
+ }, z.core.$strip>;
438
+ /**
439
+ * Public types are sourced from the upstream Anthropic SDK so the gateway
440
+ * stays in lock-step with the canonical API surface; the schemas above are
441
+ * runtime validators for the subset we actually accept.
442
+ */
443
+ export type AnthropicMessagesRequest = MessageCreateParams;
444
+ export type AnthropicSystem = MessageCreateParams["system"];
445
+ export type AnthropicMessage = MessageParam;
446
+ export type AnthropicUserContentBlock = ContentBlockParam;
447
+ export type AnthropicAssistantContentBlock = ContentBlockParam;
448
+ export type AnthropicTool = Tool;
449
+ export type AnthropicToolChoice = ToolChoice;
450
+ export type AnthropicToolResultContent = TextBlockParam | ImageBlockParam;
@@ -0,0 +1,17 @@
1
+ import type { AssistantMessage, AssistantMessageEventStream } from "../types";
2
+ /**
3
+ * Anthropic Messages API (https://docs.anthropic.com/en/api/messages) ↔ pi-ai
4
+ * gateway translation. Inbound: foreign HTTP body → gjc Context. Outbound:
5
+ * gjc AssistantMessage[Stream] → Anthropic-shaped JSON / SSE.
6
+ */
7
+ import type { AuthGatewayParsedRequest as ParsedRequest } from "../auth-gateway/types";
8
+ export type { ParsedRequest };
9
+ export declare function parseRequest(body: unknown, headers?: Headers): ParsedRequest;
10
+ export declare function encodeResponse(message: AssistantMessage, requestedModelId: string): Record<string, unknown>;
11
+ export declare function encodeStream(events: AssistantMessageEventStream, requestedModelId: string): ReadableStream<Uint8Array>;
12
+ /**
13
+ * Anthropic error envelope: `{ type: "error", error: { type, message } }`.
14
+ * See https://docs.anthropic.com/en/api/errors. Returned as a `Response` so
15
+ * the gateway can hand it straight back to the client without extra wrapping.
16
+ */
17
+ export declare function formatError(status: number, type: string, message: string): Response;
@@ -0,0 +1,188 @@
1
+ import Anthropic, { type ClientOptions as AnthropicSdkClientOptions } from "@anthropic-ai/sdk";
2
+ import type { MessageParam } from "@anthropic-ai/sdk/resources/messages";
3
+ import type { FetchImpl, Message, Model, ProviderSessionState, ServiceTier, SimpleStreamOptions, StreamFunction, StreamOptions, Usage } from "../types";
4
+ export type AnthropicHeaderOptions = {
5
+ apiKey: string;
6
+ baseUrl?: string;
7
+ isOAuth?: boolean;
8
+ extraBetas?: string[];
9
+ stream?: boolean;
10
+ modelHeaders?: Record<string, string>;
11
+ isCloudflareAiGateway?: boolean;
12
+ };
13
+ export declare function normalizeAnthropicBaseUrl(baseUrl?: string): string | undefined;
14
+ export declare function buildBetaHeader(baseBetas: string[], extraBetas: string[]): string;
15
+ export declare function buildAnthropicHeaders(options: AnthropicHeaderOptions): Record<string, string>;
16
+ type AnthropicCacheControl = {
17
+ type: "ephemeral";
18
+ ttl?: "1h" | "5m";
19
+ };
20
+ /**
21
+ * Clears the in-session "server rejected fast mode" sticky flag. Call when the
22
+ * caller is explicitly re-arming `serviceTier: "priority"` (e.g. user toggled
23
+ * `/fast on` after a previous turn auto-disabled it) so the next request
24
+ * actually carries `speed: "fast"` again. No-op when the map or state entry
25
+ * hasn't been materialized yet.
26
+ */
27
+ export declare function clearAnthropicFastModeFallback(providerSessionState: Map<string, ProviderSessionState> | undefined): void;
28
+ export declare function isAnthropicFastModeUnsupportedError(error: unknown): boolean;
29
+ export declare const claudeCodeVersion = "2.1.63";
30
+ export declare const claudeToolPrefix: string;
31
+ export declare const claudeCodeSystemInstruction = "You are a Claude agent, built on Anthropic's Claude Agent SDK.";
32
+ export declare function mapStainlessOs(platform: string): "MacOS" | "Windows" | "Linux" | "FreeBSD" | `Other::${string}`;
33
+ export declare function mapStainlessArch(arch: string): "x64" | "arm64" | "x86" | `other::${string}`;
34
+ export declare const claudeCodeHeaders: {
35
+ readonly "X-Stainless-Retry-Count": "0";
36
+ readonly "X-Stainless-Runtime-Version": "v24.3.0";
37
+ readonly "X-Stainless-Package-Version": "0.74.0";
38
+ readonly "X-Stainless-Runtime": "node";
39
+ readonly "X-Stainless-Lang": "js";
40
+ readonly "X-Stainless-Arch": "arm64" | "x64" | "x86" | `other::${string}`;
41
+ readonly "X-Stainless-Os": "FreeBSD" | "Linux" | "MacOS" | "Windows" | `Other::${string}`;
42
+ readonly "X-Stainless-Timeout": "600";
43
+ };
44
+ export declare function isClaudeCloakingUserId(userId: string): boolean;
45
+ export declare function generateClaudeCloakingUserId(): string;
46
+ export declare const applyClaudeToolPrefix: (name: string, prefixOverride?: string) => string;
47
+ export declare const stripClaudeToolPrefix: (name: string, prefixOverride?: string) => string;
48
+ export type AnthropicEffort = "low" | "medium" | "high" | "xhigh" | "max";
49
+ export type AnthropicThinkingDisplay = "summarized" | "omitted";
50
+ export interface AnthropicOptions extends StreamOptions {
51
+ /**
52
+ * Enable extended thinking.
53
+ * For Opus 4.6+: uses adaptive thinking (Anthropic model decides when/how much to think).
54
+ * For older models: uses budget-based thinking with thinkingBudgetTokens.
55
+ */
56
+ thinkingEnabled?: boolean;
57
+ /**
58
+ * Token budget for extended thinking (older models only).
59
+ * Ignored for Opus 4.6+ which uses adaptive thinking.
60
+ */
61
+ thinkingBudgetTokens?: number;
62
+ /**
63
+ * Effort level for adaptive thinking (Opus 4.6+ only).
64
+ * Controls how much thinking Anthropic model allocates:
65
+ * - "max": Always thinks with no constraints
66
+ * - "high": Always thinks, deep reasoning (default)
67
+ * - "medium": Moderate thinking, may skip for simple queries
68
+ * - "low": Minimal thinking, skips for simple tasks
69
+ * Ignored for older models.
70
+ */
71
+ effort?: AnthropicEffort;
72
+ /**
73
+ * Optional reasoning level fallback for direct Anthropic provider usage.
74
+ * Converted to adaptive effort when effort is not explicitly provided.
75
+ */
76
+ reasoning?: SimpleStreamOptions["reasoning"];
77
+ /**
78
+ * Controls how Anthropic returns thinking content when the selected thinking
79
+ * transport supports a display option. Defaults to "summarized" where the
80
+ * API accepts it.
81
+ */
82
+ thinkingDisplay?: AnthropicThinkingDisplay;
83
+ interleavedThinking?: boolean;
84
+ toolChoice?: "auto" | "any" | "none" | {
85
+ type: "tool";
86
+ name: string;
87
+ };
88
+ betas?: string[] | string;
89
+ /**
90
+ * Realization of `serviceTier: "priority"` on Anthropic models. When
91
+ * `"priority"`, sets `speed: "fast"` on the request and appends the
92
+ * `fast-mode-2026-02-01` beta header. Anthropic rejects unsupported models
93
+ * with `invalid_request_error`, which triggers an in-provider one-shot
94
+ * fallback (see `fastModeDisabled` provider state).
95
+ *
96
+ * Other `ServiceTier` values are currently ignored on this provider.
97
+ */
98
+ serviceTier?: ServiceTier;
99
+ /** Force OAuth bearer auth mode for proxy tokens that don't match Anthropic token prefixes. */
100
+ isOAuth?: boolean;
101
+ /**
102
+ * Pre-built Anthropic client instance. When provided, skips internal client
103
+ * construction entirely. Use this to inject alternative SDK clients such as
104
+ * `AnthropicVertex` that shares the same messaging API.
105
+ */
106
+ client?: Anthropic;
107
+ }
108
+ export type AnthropicClientOptionsArgs = {
109
+ model: Model<"anthropic-messages">;
110
+ apiKey: string;
111
+ extraBetas?: string[];
112
+ stream?: boolean;
113
+ interleavedThinking?: boolean;
114
+ headers?: Record<string, string>;
115
+ dynamicHeaders?: Record<string, string>;
116
+ isOAuth?: boolean;
117
+ hasTools?: boolean;
118
+ onSseEvent?: AnthropicOptions["onSseEvent"];
119
+ fetch?: FetchImpl;
120
+ };
121
+ export type AnthropicClientOptionsResult = {
122
+ isOAuthToken: boolean;
123
+ apiKey: string | null;
124
+ authToken?: string | null;
125
+ baseURL?: string;
126
+ maxRetries: number;
127
+ dangerouslyAllowBrowser: boolean;
128
+ defaultHeaders: Record<string, string>;
129
+ logLevel: AnthropicSdkClientOptions["logLevel"];
130
+ fetch?: AnthropicSdkClientOptions["fetch"];
131
+ fetchOptions?: AnthropicSdkClientOptions["fetchOptions"];
132
+ };
133
+ export declare function isProviderRetryableError(error: unknown, provider?: string): boolean;
134
+ export type AnthropicUsageLike = {
135
+ cache_creation?: {
136
+ ephemeral_5m_input_tokens?: number | null;
137
+ ephemeral_1h_input_tokens?: number | null;
138
+ } | null;
139
+ server_tool_use?: {
140
+ web_search_requests?: number | null;
141
+ web_fetch_requests?: number | null;
142
+ } | null;
143
+ };
144
+ /**
145
+ * Capture Anthropic's optional cache-creation TTL breakdown and server-tool-use
146
+ * counters into the harness Usage shape. Only sets fields that were reported, so
147
+ * a `message_delta` that omits `cache_creation` does not clobber the breakdown
148
+ * established at `message_start`.
149
+ */
150
+ export declare function applyAnthropicUsageExtras(usage: Usage, source: AnthropicUsageLike): void;
151
+ export declare const streamAnthropic: StreamFunction<"anthropic-messages">;
152
+ export type AnthropicSystemBlock = {
153
+ type: "text";
154
+ text: string;
155
+ cache_control?: AnthropicCacheControl;
156
+ };
157
+ type SystemBlockOptions = {
158
+ includeClaudeCodeInstruction?: boolean;
159
+ extraInstructions?: string[];
160
+ billingPayload?: unknown;
161
+ cacheControl?: AnthropicCacheControl;
162
+ };
163
+ export declare function buildAnthropicSystemBlocks(systemPrompt: readonly string[] | undefined, options?: SystemBlockOptions): AnthropicSystemBlock[] | undefined;
164
+ export declare function normalizeExtraBetas(betas?: string[] | string): string[];
165
+ export declare function buildAnthropicClientOptions(args: AnthropicClientOptionsArgs): AnthropicClientOptionsResult;
166
+ export declare function convertAnthropicMessages(messages: Message[], model: Model<"anthropic-messages">, isOAuthToken: boolean): MessageParam[];
167
+ /**
168
+ * Normalize a JSON Schema node for Anthropic tool `input_schema`.
169
+ *
170
+ * Applies the full whitelist semantics from the Anthropic Python SDK's
171
+ * `lib/_parse/_transform.py::transform_schema`:
172
+ *
173
+ * 1. Universal keys (`$ref`, `$defs`, `type`, `anyOf`/`oneOf`/`allOf`, `enum`, `const`,
174
+ * `description`, `title`, `default`, `nullable`) are preserved on every node.
175
+ * 2. Per-type keys are kept additively (object → `properties`/`required`/`additionalProperties`,
176
+ * array → `items`/`prefixItems` plus `minItems` only when 0 or 1, string → `format`
177
+ * only when in the supported value set).
178
+ * 3. Everything else is demoted into the node's `description` as `\n\n{key: value, ...}`
179
+ * so the model still sees the constraint as a natural-language hint.
180
+ *
181
+ * Object nodes default to `additionalProperties: false`, but explicit open-map
182
+ * declarations (`additionalProperties: true` or a schema literal — Zod's
183
+ * `z.record(z.string(), z.unknown())` produces `{}`) are preserved. The strict-mode
184
+ * pass downstream demotes those shapes to non-strict instead of fabricating a closed
185
+ * object, so callers like the resolve tool keep working open-map semantics.
186
+ */
187
+ export declare function normalizeAnthropicToolSchema(schema: unknown): unknown;
188
+ export {};