@sayknow-cli/ai 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/CHANGELOG.md +2788 -0
  2. package/README.md +1183 -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 +660 -0
  16. package/dist/types/cli.d.ts +2 -0
  17. package/dist/types/index.d.ts +51 -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 +74 -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 +244 -0
  29. package/dist/types/provider-models/special.d.ts +16 -0
  30. package/dist/types/providers/amazon-bedrock.d.ts +60 -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 +198 -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/composer-discipline.d.ts +26 -0
  39. package/dist/types/providers/cursor/gen/agent_pb.d.ts +13022 -0
  40. package/dist/types/providers/cursor.d.ts +44 -0
  41. package/dist/types/providers/error-message.d.ts +27 -0
  42. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  43. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  44. package/dist/types/providers/google-auth.d.ts +24 -0
  45. package/dist/types/providers/google-gemini-cli.d.ts +72 -0
  46. package/dist/types/providers/google-gemini-headers.d.ts +18 -0
  47. package/dist/types/providers/google-shared.d.ts +173 -0
  48. package/dist/types/providers/google-types.d.ts +138 -0
  49. package/dist/types/providers/google-vertex.d.ts +7 -0
  50. package/dist/types/providers/google.d.ts +4 -0
  51. package/dist/types/providers/grammar.d.ts +1 -0
  52. package/dist/types/providers/kimi.d.ts +27 -0
  53. package/dist/types/providers/mock.d.ts +175 -0
  54. package/dist/types/providers/ollama.d.ts +41 -0
  55. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  56. package/dist/types/providers/openai-chat-server-schema.d.ts +815 -0
  57. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  58. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  59. package/dist/types/providers/openai-codex/request-transformer.d.ts +49 -0
  60. package/dist/types/providers/openai-codex/response-handler.d.ts +17 -0
  61. package/dist/types/providers/openai-codex-responses.d.ts +67 -0
  62. package/dist/types/providers/openai-completions-compat.d.ts +27 -0
  63. package/dist/types/providers/openai-completions.d.ts +33 -0
  64. package/dist/types/providers/openai-request-transform.d.ts +4 -0
  65. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  66. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  67. package/dist/types/providers/openai-responses-shared.d.ts +89 -0
  68. package/dist/types/providers/openai-responses.d.ts +32 -0
  69. package/dist/types/providers/pi-native-client.d.ts +13 -0
  70. package/dist/types/providers/pi-native-server.d.ts +68 -0
  71. package/dist/types/providers/register-builtins.d.ts +31 -0
  72. package/dist/types/providers/synthetic.d.ts +26 -0
  73. package/dist/types/providers/transform-messages.d.ts +14 -0
  74. package/dist/types/providers/vision-guard.d.ts +8 -0
  75. package/dist/types/rate-limit-utils.d.ts +19 -0
  76. package/dist/types/stream.d.ts +43 -0
  77. package/dist/types/types.d.ts +811 -0
  78. package/dist/types/usage/claude.d.ts +3 -0
  79. package/dist/types/usage/gemini.d.ts +2 -0
  80. package/dist/types/usage/github-copilot.d.ts +7 -0
  81. package/dist/types/usage/google-antigravity.d.ts +2 -0
  82. package/dist/types/usage/grok-cli.d.ts +10 -0
  83. package/dist/types/usage/kimi.d.ts +2 -0
  84. package/dist/types/usage/minimax-code.d.ts +2 -0
  85. package/dist/types/usage/openai-codex.d.ts +3 -0
  86. package/dist/types/usage/shared.d.ts +1 -0
  87. package/dist/types/usage/zai.d.ts +2 -0
  88. package/dist/types/usage.d.ts +258 -0
  89. package/dist/types/utils/abort.d.ts +19 -0
  90. package/dist/types/utils/anthropic-auth.d.ts +31 -0
  91. package/dist/types/utils/discovery/antigravity.d.ts +61 -0
  92. package/dist/types/utils/discovery/codex.d.ts +38 -0
  93. package/dist/types/utils/discovery/cursor.d.ts +23 -0
  94. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  95. package/dist/types/utils/discovery/index.d.ts +4 -0
  96. package/dist/types/utils/discovery/openai-compatible.d.ts +74 -0
  97. package/dist/types/utils/event-stream.d.ts +33 -0
  98. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  99. package/dist/types/utils/foundry.d.ts +1 -0
  100. package/dist/types/utils/h2-fetch.d.ts +22 -0
  101. package/dist/types/utils/http-inspector.d.ts +35 -0
  102. package/dist/types/utils/idle-iterator.d.ts +67 -0
  103. package/dist/types/utils/json-parse.d.ts +10 -0
  104. package/dist/types/utils/oauth/alibaba-coding-plan.d.ts +18 -0
  105. package/dist/types/utils/oauth/anthropic.d.ts +22 -0
  106. package/dist/types/utils/oauth/api-key-login.d.ts +35 -0
  107. package/dist/types/utils/oauth/api-key-validation.d.ts +27 -0
  108. package/dist/types/utils/oauth/callback-server.d.ts +60 -0
  109. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  110. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  111. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  112. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  113. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  114. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  115. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  116. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  117. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  118. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  119. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  120. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  121. package/dist/types/utils/oauth/index.d.ts +38 -0
  122. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  123. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  124. package/dist/types/utils/oauth/kimi.d.ts +21 -0
  125. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  126. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  127. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  128. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  129. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  130. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  131. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  132. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  133. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  134. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  135. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  136. package/dist/types/utils/oauth/perplexity.d.ts +9 -0
  137. package/dist/types/utils/oauth/pkce.d.ts +8 -0
  138. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  139. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  140. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  141. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  142. package/dist/types/utils/oauth/together.d.ts +1 -0
  143. package/dist/types/utils/oauth/types.d.ts +45 -0
  144. package/dist/types/utils/oauth/venice.d.ts +18 -0
  145. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  146. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  147. package/dist/types/utils/oauth/xai.d.ts +30 -0
  148. package/dist/types/utils/oauth/xiaomi.d.ts +25 -0
  149. package/dist/types/utils/oauth/zai.d.ts +18 -0
  150. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  151. package/dist/types/utils/overflow.d.ts +54 -0
  152. package/dist/types/utils/parse-bind.d.ts +23 -0
  153. package/dist/types/utils/provider-response.d.ts +3 -0
  154. package/dist/types/utils/retry-after.d.ts +3 -0
  155. package/dist/types/utils/retry-budget.d.ts +1 -0
  156. package/dist/types/utils/retry.d.ts +26 -0
  157. package/dist/types/utils/schema/adapt.d.ts +24 -0
  158. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  159. package/dist/types/utils/schema/dereference.d.ts +11 -0
  160. package/dist/types/utils/schema/draft.d.ts +10 -0
  161. package/dist/types/utils/schema/equality.d.ts +4 -0
  162. package/dist/types/utils/schema/fields.d.ts +49 -0
  163. package/dist/types/utils/schema/index.d.ts +13 -0
  164. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  165. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  166. package/dist/types/utils/schema/normalize.d.ts +93 -0
  167. package/dist/types/utils/schema/spill.d.ts +8 -0
  168. package/dist/types/utils/schema/stamps.d.ts +25 -0
  169. package/dist/types/utils/schema/types.d.ts +4 -0
  170. package/dist/types/utils/schema/wire.d.ts +54 -0
  171. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  172. package/dist/types/utils/sse-debug.d.ts +10 -0
  173. package/dist/types/utils/tool-call-healing.d.ts +71 -0
  174. package/dist/types/utils/tool-choice-capability.d.ts +41 -0
  175. package/dist/types/utils/tool-choice.d.ts +50 -0
  176. package/dist/types/utils/validation.d.ts +17 -0
  177. package/dist/types/utils.d.ts +34 -0
  178. package/package.json +146 -0
  179. package/src/api-registry.ts +96 -0
  180. package/src/auth-broker/client.ts +358 -0
  181. package/src/auth-broker/index.ts +5 -0
  182. package/src/auth-broker/refresher.ts +127 -0
  183. package/src/auth-broker/remote-store.ts +623 -0
  184. package/src/auth-broker/server.ts +644 -0
  185. package/src/auth-broker/types.ts +127 -0
  186. package/src/auth-broker/wire-schemas.ts +200 -0
  187. package/src/auth-gateway/http.ts +194 -0
  188. package/src/auth-gateway/index.ts +3 -0
  189. package/src/auth-gateway/server.ts +717 -0
  190. package/src/auth-gateway/types.ts +134 -0
  191. package/src/auth-storage.ts +4179 -0
  192. package/src/cli.ts +263 -0
  193. package/src/index.ts +56 -0
  194. package/src/model-cache.ts +129 -0
  195. package/src/model-manager.ts +486 -0
  196. package/src/model-thinking.ts +772 -0
  197. package/src/models.json +75437 -0
  198. package/src/models.json.d.ts +9 -0
  199. package/src/models.ts +82 -0
  200. package/src/prompts/turn-aborted-guidance.md +4 -0
  201. package/src/provider-details.ts +90 -0
  202. package/src/provider-models/bundled-references.ts +38 -0
  203. package/src/provider-models/descriptors.ts +327 -0
  204. package/src/provider-models/google.ts +91 -0
  205. package/src/provider-models/index.ts +5 -0
  206. package/src/provider-models/ollama.ts +153 -0
  207. package/src/provider-models/openai-compat.ts +2352 -0
  208. package/src/provider-models/special.ts +67 -0
  209. package/src/providers/amazon-bedrock.ts +937 -0
  210. package/src/providers/anthropic-messages-server-schema.ts +229 -0
  211. package/src/providers/anthropic-messages-server.ts +677 -0
  212. package/src/providers/anthropic.ts +2940 -0
  213. package/src/providers/aws-credentials.ts +501 -0
  214. package/src/providers/aws-eventstream.ts +185 -0
  215. package/src/providers/aws-sigv4.ts +218 -0
  216. package/src/providers/azure-openai-responses.ts +379 -0
  217. package/src/providers/composer-discipline.ts +41 -0
  218. package/src/providers/cursor/gen/agent_pb.ts +15274 -0
  219. package/src/providers/cursor/proto/agent.proto +3526 -0
  220. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  221. package/src/providers/cursor/proto/buf.yaml +17 -0
  222. package/src/providers/cursor.ts +2671 -0
  223. package/src/providers/error-message.ts +21 -0
  224. package/src/providers/github-copilot-headers.ts +140 -0
  225. package/src/providers/gitlab-duo.ts +372 -0
  226. package/src/providers/google-auth.ts +252 -0
  227. package/src/providers/google-gemini-cli.ts +856 -0
  228. package/src/providers/google-gemini-headers.ts +41 -0
  229. package/src/providers/google-shared.ts +951 -0
  230. package/src/providers/google-types.ts +167 -0
  231. package/src/providers/google-vertex.ts +88 -0
  232. package/src/providers/google.ts +41 -0
  233. package/src/providers/grammar.ts +70 -0
  234. package/src/providers/kimi.ts +52 -0
  235. package/src/providers/mock.ts +500 -0
  236. package/src/providers/ollama.ts +603 -0
  237. package/src/providers/openai-anthropic-shim.ts +138 -0
  238. package/src/providers/openai-chat-server-schema.ts +243 -0
  239. package/src/providers/openai-chat-server.ts +635 -0
  240. package/src/providers/openai-codex/constants.ts +43 -0
  241. package/src/providers/openai-codex/request-transformer.ts +161 -0
  242. package/src/providers/openai-codex/response-handler.ts +81 -0
  243. package/src/providers/openai-codex-responses.ts +2774 -0
  244. package/src/providers/openai-completions-compat.ts +289 -0
  245. package/src/providers/openai-completions.ts +1935 -0
  246. package/src/providers/openai-request-transform.ts +136 -0
  247. package/src/providers/openai-responses-server-schema.ts +290 -0
  248. package/src/providers/openai-responses-server.ts +1190 -0
  249. package/src/providers/openai-responses-shared.ts +800 -0
  250. package/src/providers/openai-responses.ts +738 -0
  251. package/src/providers/pi-native-client.ts +227 -0
  252. package/src/providers/pi-native-server.ts +210 -0
  253. package/src/providers/register-builtins.ts +411 -0
  254. package/src/providers/synthetic.ts +50 -0
  255. package/src/providers/transform-messages.ts +319 -0
  256. package/src/providers/vision-guard.ts +31 -0
  257. package/src/rate-limit-utils.ts +93 -0
  258. package/src/stream.ts +960 -0
  259. package/src/types.ts +967 -0
  260. package/src/usage/claude.ts +431 -0
  261. package/src/usage/gemini.ts +250 -0
  262. package/src/usage/github-copilot.ts +421 -0
  263. package/src/usage/google-antigravity.ts +201 -0
  264. package/src/usage/grok-cli.ts +163 -0
  265. package/src/usage/kimi.ts +271 -0
  266. package/src/usage/minimax-code.ts +31 -0
  267. package/src/usage/openai-codex.ts +503 -0
  268. package/src/usage/shared.ts +10 -0
  269. package/src/usage/zai.ts +247 -0
  270. package/src/usage.ts +183 -0
  271. package/src/utils/abort.ts +51 -0
  272. package/src/utils/anthropic-auth.ts +87 -0
  273. package/src/utils/discovery/antigravity.ts +261 -0
  274. package/src/utils/discovery/codex.ts +371 -0
  275. package/src/utils/discovery/cursor.ts +306 -0
  276. package/src/utils/discovery/gemini.ts +248 -0
  277. package/src/utils/discovery/index.ts +4 -0
  278. package/src/utils/discovery/openai-compatible.ts +230 -0
  279. package/src/utils/event-stream.ts +172 -0
  280. package/src/utils/fireworks-model-id.ts +30 -0
  281. package/src/utils/foundry.ts +8 -0
  282. package/src/utils/h2-fetch.ts +60 -0
  283. package/src/utils/http-inspector.ts +255 -0
  284. package/src/utils/idle-iterator.ts +257 -0
  285. package/src/utils/json-parse.ts +148 -0
  286. package/src/utils/oauth/alibaba-coding-plan.ts +59 -0
  287. package/src/utils/oauth/anthropic.ts +200 -0
  288. package/src/utils/oauth/api-key-login.ts +87 -0
  289. package/src/utils/oauth/api-key-validation.ts +92 -0
  290. package/src/utils/oauth/callback-server.ts +281 -0
  291. package/src/utils/oauth/cerebras.ts +16 -0
  292. package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
  293. package/src/utils/oauth/cursor.ts +157 -0
  294. package/src/utils/oauth/deepseek.ts +53 -0
  295. package/src/utils/oauth/firepass.ts +24 -0
  296. package/src/utils/oauth/fireworks.ts +15 -0
  297. package/src/utils/oauth/github-copilot.ts +362 -0
  298. package/src/utils/oauth/gitlab-duo.ts +123 -0
  299. package/src/utils/oauth/google-antigravity.ts +200 -0
  300. package/src/utils/oauth/google-gemini-cli.ts +256 -0
  301. package/src/utils/oauth/google-oauth-shared.ts +110 -0
  302. package/src/utils/oauth/huggingface.ts +62 -0
  303. package/src/utils/oauth/index.ts +469 -0
  304. package/src/utils/oauth/kagi.ts +47 -0
  305. package/src/utils/oauth/kilo.ts +87 -0
  306. package/src/utils/oauth/kimi.ts +254 -0
  307. package/src/utils/oauth/litellm.ts +47 -0
  308. package/src/utils/oauth/lm-studio.ts +38 -0
  309. package/src/utils/oauth/minimax-code.ts +78 -0
  310. package/src/utils/oauth/moonshot.ts +16 -0
  311. package/src/utils/oauth/nanogpt.ts +15 -0
  312. package/src/utils/oauth/nvidia.ts +70 -0
  313. package/src/utils/oauth/oauth.html +199 -0
  314. package/src/utils/oauth/ollama-cloud.ts +28 -0
  315. package/src/utils/oauth/ollama.ts +47 -0
  316. package/src/utils/oauth/openai-codex.ts +299 -0
  317. package/src/utils/oauth/opencode.ts +49 -0
  318. package/src/utils/oauth/parallel.ts +46 -0
  319. package/src/utils/oauth/perplexity.ts +206 -0
  320. package/src/utils/oauth/pkce.ts +18 -0
  321. package/src/utils/oauth/qianfan.ts +58 -0
  322. package/src/utils/oauth/qwen-portal.ts +60 -0
  323. package/src/utils/oauth/synthetic.ts +16 -0
  324. package/src/utils/oauth/tavily.ts +46 -0
  325. package/src/utils/oauth/together.ts +16 -0
  326. package/src/utils/oauth/types.ts +99 -0
  327. package/src/utils/oauth/venice.ts +59 -0
  328. package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
  329. package/src/utils/oauth/vllm.ts +40 -0
  330. package/src/utils/oauth/xai.ts +246 -0
  331. package/src/utils/oauth/xiaomi.ts +199 -0
  332. package/src/utils/oauth/zai.ts +60 -0
  333. package/src/utils/oauth/zenmux.ts +15 -0
  334. package/src/utils/overflow.ts +137 -0
  335. package/src/utils/parse-bind.ts +54 -0
  336. package/src/utils/provider-response.ts +30 -0
  337. package/src/utils/retry-after.ts +110 -0
  338. package/src/utils/retry-budget.ts +4 -0
  339. package/src/utils/retry.ts +54 -0
  340. package/src/utils/schema/CONSTRAINTS.md +164 -0
  341. package/src/utils/schema/adapt.ts +36 -0
  342. package/src/utils/schema/compatibility.ts +435 -0
  343. package/src/utils/schema/dereference.ts +98 -0
  344. package/src/utils/schema/draft.ts +341 -0
  345. package/src/utils/schema/equality.ts +97 -0
  346. package/src/utils/schema/fields.ts +190 -0
  347. package/src/utils/schema/index.ts +13 -0
  348. package/src/utils/schema/json-schema-validator.ts +577 -0
  349. package/src/utils/schema/meta-validator.ts +167 -0
  350. package/src/utils/schema/normalize.ts +1588 -0
  351. package/src/utils/schema/spill.ts +43 -0
  352. package/src/utils/schema/stamps.ts +97 -0
  353. package/src/utils/schema/types.ts +11 -0
  354. package/src/utils/schema/wire.ts +213 -0
  355. package/src/utils/schema/zod-decontaminate.ts +331 -0
  356. package/src/utils/sse-debug.ts +289 -0
  357. package/src/utils/tool-call-healing.ts +271 -0
  358. package/src/utils/tool-choice-capability.ts +220 -0
  359. package/src/utils/tool-choice.ts +99 -0
  360. package/src/utils/validation.ts +1019 -0
  361. package/src/utils.ts +178 -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 → skc Context. Outbound:
5
+ * skc 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,198 @@
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 function isAnthropicThinkingBlockMutationError(error: unknown): boolean;
30
+ export declare const claudeCodeVersion = "2.1.63";
31
+ export declare const claudeToolPrefix: string;
32
+ export declare const claudeCodeSystemInstruction = "You are a Claude agent, built on Anthropic's Claude Agent SDK.";
33
+ export declare function mapStainlessOs(platform: string): "MacOS" | "Windows" | "Linux" | "FreeBSD" | `Other::${string}`;
34
+ export declare function mapStainlessArch(arch: string): "x64" | "arm64" | "x86" | `other::${string}`;
35
+ export declare const claudeCodeHeaders: {
36
+ readonly "X-Stainless-Retry-Count": "0";
37
+ readonly "X-Stainless-Runtime-Version": "v24.3.0";
38
+ readonly "X-Stainless-Package-Version": "0.74.0";
39
+ readonly "X-Stainless-Runtime": "node";
40
+ readonly "X-Stainless-Lang": "js";
41
+ readonly "X-Stainless-Arch": "arm64" | "x64" | "x86" | `other::${string}`;
42
+ readonly "X-Stainless-Os": "FreeBSD" | "Linux" | "MacOS" | "Windows" | `Other::${string}`;
43
+ readonly "X-Stainless-Timeout": "600";
44
+ };
45
+ export declare function isClaudeCloakingUserId(userId: string): boolean;
46
+ export declare function generateClaudeCloakingUserId(): string;
47
+ export declare const applyClaudeToolPrefix: (name: string, prefixOverride?: string) => string;
48
+ export declare const stripClaudeToolPrefix: (name: string, prefixOverride?: string) => string;
49
+ export type AnthropicEffort = "low" | "medium" | "high" | "xhigh" | "max";
50
+ export type AnthropicThinkingDisplay = "summarized" | "omitted";
51
+ export interface AnthropicOptions extends StreamOptions {
52
+ /**
53
+ * Enable extended thinking.
54
+ * For Opus 4.6+: uses adaptive thinking (Anthropic model decides when/how much to think).
55
+ * For older models: uses budget-based thinking with thinkingBudgetTokens.
56
+ */
57
+ thinkingEnabled?: boolean;
58
+ /**
59
+ * Token budget for extended thinking (older models only).
60
+ * Ignored for Opus 4.6+ which uses adaptive thinking.
61
+ */
62
+ thinkingBudgetTokens?: number;
63
+ /**
64
+ * Effort level for adaptive thinking (Opus 4.6+ only).
65
+ * Controls how much thinking Anthropic model allocates:
66
+ * - "max": Always thinks with no constraints
67
+ * - "high": Always thinks, deep reasoning (default)
68
+ * - "medium": Moderate thinking, may skip for simple queries
69
+ * - "low": Minimal thinking, skips for simple tasks
70
+ * Ignored for older models.
71
+ */
72
+ effort?: AnthropicEffort;
73
+ /**
74
+ * Optional reasoning level fallback for direct Anthropic provider usage.
75
+ * Converted to adaptive effort when effort is not explicitly provided.
76
+ */
77
+ reasoning?: SimpleStreamOptions["reasoning"];
78
+ /**
79
+ * Controls how Anthropic returns thinking content when the selected thinking
80
+ * transport supports a display option. Defaults to "summarized" where the
81
+ * API accepts it.
82
+ */
83
+ thinkingDisplay?: AnthropicThinkingDisplay;
84
+ interleavedThinking?: boolean;
85
+ toolChoice?: "auto" | "any" | "none" | {
86
+ type: "tool";
87
+ name: string;
88
+ };
89
+ betas?: string[] | string;
90
+ /**
91
+ * Realization of `serviceTier: "priority"` on Anthropic models. When
92
+ * `"priority"`, sets `speed: "fast"` on the request and appends the
93
+ * `fast-mode-2026-02-01` beta header. Anthropic rejects unsupported models
94
+ * with `invalid_request_error`, which triggers an in-provider one-shot
95
+ * fallback (see `fastModeDisabled` provider state).
96
+ *
97
+ * Other `ServiceTier` values are currently ignored on this provider.
98
+ */
99
+ serviceTier?: ServiceTier;
100
+ /** Force OAuth bearer auth mode for proxy tokens that don't match Anthropic token prefixes. */
101
+ isOAuth?: boolean;
102
+ /**
103
+ * Pre-built Anthropic client instance. When provided, skips internal client
104
+ * construction entirely. Use this to inject alternative SDK clients such as
105
+ * `AnthropicVertex` that shares the same messaging API.
106
+ */
107
+ client?: Anthropic;
108
+ }
109
+ export type AnthropicClientOptionsArgs = {
110
+ model: Model<"anthropic-messages">;
111
+ apiKey: string;
112
+ extraBetas?: string[];
113
+ stream?: boolean;
114
+ interleavedThinking?: boolean;
115
+ headers?: Record<string, string>;
116
+ dynamicHeaders?: Record<string, string>;
117
+ isOAuth?: boolean;
118
+ hasTools?: boolean;
119
+ onSseEvent?: AnthropicOptions["onSseEvent"];
120
+ fetch?: FetchImpl;
121
+ requestMaxRetries?: number;
122
+ };
123
+ export type AnthropicClientOptionsResult = {
124
+ isOAuthToken: boolean;
125
+ apiKey: string | null;
126
+ authToken?: string | null;
127
+ baseURL?: string;
128
+ maxRetries: number;
129
+ dangerouslyAllowBrowser: boolean;
130
+ defaultHeaders: Record<string, string>;
131
+ logLevel: AnthropicSdkClientOptions["logLevel"];
132
+ fetch?: AnthropicSdkClientOptions["fetch"];
133
+ fetchOptions?: AnthropicSdkClientOptions["fetchOptions"];
134
+ };
135
+ export declare function isProviderRetryableError(error: unknown, provider?: string): boolean;
136
+ export type AnthropicUsageLike = {
137
+ cache_creation?: {
138
+ ephemeral_5m_input_tokens?: number | null;
139
+ ephemeral_1h_input_tokens?: number | null;
140
+ } | null;
141
+ server_tool_use?: {
142
+ web_search_requests?: number | null;
143
+ web_fetch_requests?: number | null;
144
+ } | null;
145
+ };
146
+ /**
147
+ * Capture Anthropic's optional cache-creation TTL breakdown and server-tool-use
148
+ * counters into the harness Usage shape. Only sets fields that were reported, so
149
+ * a `message_delta` that omits `cache_creation` does not clobber the breakdown
150
+ * established at `message_start`.
151
+ */
152
+ export declare function applyAnthropicUsageExtras(usage: Usage, source: AnthropicUsageLike): void;
153
+ export declare const streamAnthropic: StreamFunction<"anthropic-messages">;
154
+ export type AnthropicSystemBlock = {
155
+ type: "text";
156
+ text: string;
157
+ cache_control?: AnthropicCacheControl;
158
+ };
159
+ type SystemBlockOptions = {
160
+ includeClaudeCodeInstruction?: boolean;
161
+ extraInstructions?: string[];
162
+ billingPayload?: unknown;
163
+ cacheControl?: AnthropicCacheControl;
164
+ };
165
+ export declare function buildAnthropicSystemBlocks(systemPrompt: readonly string[] | undefined, options?: SystemBlockOptions): AnthropicSystemBlock[] | undefined;
166
+ export declare function normalizeExtraBetas(betas?: string[] | string): string[];
167
+ export declare function buildAnthropicClientOptions(args: AnthropicClientOptionsArgs): AnthropicClientOptionsResult;
168
+ export declare function convertAnthropicMessages(messages: Message[], model: Model<"anthropic-messages">, isOAuthToken: boolean, options?: {
169
+ repairLatestAssistantThinking?: boolean;
170
+ }): MessageParam[];
171
+ /**
172
+ * Normalize a JSON Schema node for Anthropic tool `input_schema`.
173
+ *
174
+ * Applies the full whitelist semantics from the Anthropic Python SDK's
175
+ * `lib/_parse/_transform.py::transform_schema`:
176
+ *
177
+ * 1. Universal keys (`$ref`, `$defs`, `type`, `anyOf`/`oneOf`/`allOf`, `enum`, `const`,
178
+ * `description`, `title`, `default`, `nullable`) are preserved on every node.
179
+ * 2. Per-type keys are kept additively (object → `properties`/`required`/`additionalProperties`,
180
+ * array → `items`/`prefixItems` plus `minItems` only when 0 or 1, string → `format`
181
+ * only when in the supported value set).
182
+ * 3. Everything else is demoted into the node's `description` as `\n\n{key: value, ...}`
183
+ * so the model still sees the constraint as a natural-language hint.
184
+ *
185
+ * Object nodes default to `additionalProperties: false`, but explicit open-map
186
+ * declarations (`additionalProperties: true` or a schema literal — Zod's
187
+ * `z.record(z.string(), z.unknown())` produces `{}`) are preserved. The strict-mode
188
+ * pass downstream demotes those shapes to non-strict instead of fabricating a closed
189
+ * object, so callers like the resolve tool keep working open-map semantics.
190
+ */
191
+ export declare function normalizeAnthropicToolSchema(schema: unknown): unknown;
192
+ /**
193
+ * Anthropic rejects tool `input_schema` roots containing top-level oneOf/anyOf/allOf.
194
+ * Keep the generic normalizer schema-preserving, then flatten only provider-emitted
195
+ * tool roots into one object while leaving nested combinators untouched.
196
+ */
197
+ export declare function normalizeAnthropicToolRootInputSchema(schema: Record<string, unknown>): Record<string, unknown>;
198
+ export {};