@linxiraos/pi-ai 1.0.0

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 (639) hide show
  1. package/CHANGELOG.md +5066 -0
  2. package/README.md +1195 -0
  3. package/dist/types/api-registry.d.ts +30 -0
  4. package/dist/types/auth/sqlite-credential-store.d.ts +117 -0
  5. package/dist/types/auth-broker/client.d.ts +93 -0
  6. package/dist/types/auth-broker/discover.d.ts +39 -0
  7. package/dist/types/auth-broker/index.d.ts +7 -0
  8. package/dist/types/auth-broker/refresher.d.ts +25 -0
  9. package/dist/types/auth-broker/remote-store.d.ts +136 -0
  10. package/dist/types/auth-broker/server.d.ts +48 -0
  11. package/dist/types/auth-broker/snapshot-cache.d.ts +17 -0
  12. package/dist/types/auth-broker/types.d.ts +152 -0
  13. package/dist/types/auth-broker/wire-schema-resource.d.ts +53 -0
  14. package/dist/types/auth-broker/wire-schemas.d.ts +5 -0
  15. package/dist/types/auth-gateway/http.d.ts +56 -0
  16. package/dist/types/auth-gateway/index.d.ts +3 -0
  17. package/dist/types/auth-gateway/server.d.ts +36 -0
  18. package/dist/types/auth-gateway/types.d.ts +127 -0
  19. package/dist/types/auth-retry.d.ts +150 -0
  20. package/dist/types/auth-storage.d.ts +1258 -0
  21. package/dist/types/dialect/anthropic.d.ts +15 -0
  22. package/dist/types/dialect/catalog.d.ts +3 -0
  23. package/dist/types/dialect/coercion.d.ts +23 -0
  24. package/dist/types/dialect/deepseek.d.ts +14 -0
  25. package/dist/types/dialect/demotion.d.ts +30 -0
  26. package/dist/types/dialect/examples.d.ts +18 -0
  27. package/dist/types/dialect/factory.d.ts +3 -0
  28. package/dist/types/dialect/fenced-thinking.d.ts +53 -0
  29. package/dist/types/dialect/gemini.d.ts +17 -0
  30. package/dist/types/dialect/gemma.d.ts +15 -0
  31. package/dist/types/dialect/glm.d.ts +9 -0
  32. package/dist/types/dialect/harmony.d.ts +8 -0
  33. package/dist/types/dialect/hermes.d.ts +9 -0
  34. package/dist/types/dialect/history.d.ts +3 -0
  35. package/dist/types/dialect/index.d.ts +11 -0
  36. package/dist/types/dialect/inventory.d.ts +9 -0
  37. package/dist/types/dialect/kimi.d.ts +14 -0
  38. package/dist/types/dialect/minimax.d.ts +3 -0
  39. package/dist/types/dialect/owned-stream.d.ts +4 -0
  40. package/dist/types/dialect/qwen3.d.ts +9 -0
  41. package/dist/types/dialect/rendering.d.ts +54 -0
  42. package/dist/types/dialect/thinking.d.ts +6 -0
  43. package/dist/types/dialect/types.d.ts +68 -0
  44. package/dist/types/dialect/xml.d.ts +9 -0
  45. package/dist/types/error/abort.d.ts +14 -0
  46. package/dist/types/error/auth-classify.d.ts +20 -0
  47. package/dist/types/error/auth.d.ts +27 -0
  48. package/dist/types/error/aws.d.ts +27 -0
  49. package/dist/types/error/classes.d.ts +106 -0
  50. package/dist/types/error/finalize.d.ts +39 -0
  51. package/dist/types/error/flags.d.ts +94 -0
  52. package/dist/types/error/format.d.ts +20 -0
  53. package/dist/types/error/gateway.d.ts +20 -0
  54. package/dist/types/error/index.d.ts +14 -0
  55. package/dist/types/error/oauth.d.ts +43 -0
  56. package/dist/types/error/provider.d.ts +42 -0
  57. package/dist/types/error/rate-limit.d.ts +80 -0
  58. package/dist/types/error/retryable.d.ts +27 -0
  59. package/dist/types/error/validation.d.ts +32 -0
  60. package/dist/types/index.d.ts +51 -0
  61. package/dist/types/provider-details.d.ts +24 -0
  62. package/dist/types/providers/amazon-bedrock.d.ts +39 -0
  63. package/dist/types/providers/anthropic-client.d.ts +106 -0
  64. package/dist/types/providers/anthropic-messages-server-schema.d.ts +937 -0
  65. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  66. package/dist/types/providers/anthropic-wire.d.ts +345 -0
  67. package/dist/types/providers/anthropic.d.ts +261 -0
  68. package/dist/types/providers/aws-credentials.d.ts +48 -0
  69. package/dist/types/providers/aws-eventstream.d.ts +39 -0
  70. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  71. package/dist/types/providers/azure-openai-responses.d.ts +16 -0
  72. package/dist/types/providers/bedrock-mantle.d.ts +13 -0
  73. package/dist/types/providers/claude-code-fingerprint.d.ts +19 -0
  74. package/dist/types/providers/cowork-fetch.d.ts +3 -0
  75. package/dist/types/providers/cursor/exec-modern.d.ts +98 -0
  76. package/dist/types/providers/cursor-pi-args.d.ts +105 -0
  77. package/dist/types/providers/cursor.d.ts +221 -0
  78. package/dist/types/providers/devin.d.ts +12 -0
  79. package/dist/types/providers/error-message.d.ts +25 -0
  80. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  81. package/dist/types/providers/gitlab-duo-workflow.d.ts +254 -0
  82. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  83. package/dist/types/providers/google-auth.d.ts +24 -0
  84. package/dist/types/providers/google-gemini-cli.d.ts +120 -0
  85. package/dist/types/providers/google-shared.d.ts +203 -0
  86. package/dist/types/providers/google-types.d.ts +155 -0
  87. package/dist/types/providers/google-vertex.d.ts +7 -0
  88. package/dist/types/providers/google.d.ts +4 -0
  89. package/dist/types/providers/grammar.d.ts +1 -0
  90. package/dist/types/providers/kimi.d.ts +27 -0
  91. package/dist/types/providers/mock.d.ts +179 -0
  92. package/dist/types/providers/ollama.d.ts +8 -0
  93. package/dist/types/providers/openai-anthropic-shim.d.ts +35 -0
  94. package/dist/types/providers/openai-chat-server-schema.d.ts +1311 -0
  95. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  96. package/dist/types/providers/openai-chat-wire.d.ts +669 -0
  97. package/dist/types/providers/openai-codex/request-transformer.d.ts +109 -0
  98. package/dist/types/providers/openai-codex/response-handler.d.ts +26 -0
  99. package/dist/types/providers/openai-codex-responses.d.ts +238 -0
  100. package/dist/types/providers/openai-completions.d.ts +48 -0
  101. package/dist/types/providers/openai-reasoning-fallback.d.ts +25 -0
  102. package/dist/types/providers/openai-responses-server-schema.d.ts +1314 -0
  103. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  104. package/dist/types/providers/openai-responses-wire.d.ts +6099 -0
  105. package/dist/types/providers/openai-responses.d.ts +131 -0
  106. package/dist/types/providers/openai-shared.d.ts +624 -0
  107. package/dist/types/providers/pi-native-client.d.ts +13 -0
  108. package/dist/types/providers/pi-native-server.d.ts +69 -0
  109. package/dist/types/providers/register-builtins.d.ts +37 -0
  110. package/dist/types/providers/synthetic.d.ts +26 -0
  111. package/dist/types/providers/transform-messages.d.ts +32 -0
  112. package/dist/types/providers/vision-guard.d.ts +20 -0
  113. package/dist/types/registry/aiand.d.ts +7 -0
  114. package/dist/types/registry/aimlapi.d.ts +4 -0
  115. package/dist/types/registry/alibaba-coding-plan.d.ts +8 -0
  116. package/dist/types/registry/alibaba-token-plan.d.ts +18 -0
  117. package/dist/types/registry/amazon-bedrock.d.ts +5 -0
  118. package/dist/types/registry/anthropic.d.ts +10 -0
  119. package/dist/types/registry/api-key-login.d.ts +42 -0
  120. package/dist/types/registry/api-key-validation.d.ts +43 -0
  121. package/dist/types/registry/aws.d.ts +13 -0
  122. package/dist/types/registry/azure.d.ts +4 -0
  123. package/dist/types/registry/baseten.d.ts +7 -0
  124. package/dist/types/registry/bedrock-mantle.d.ts +22 -0
  125. package/dist/types/registry/cerebras.d.ts +7 -0
  126. package/dist/types/registry/cloudflare-ai-gateway.d.ts +13 -0
  127. package/dist/types/registry/coreweave.d.ts +7 -0
  128. package/dist/types/registry/cursor.d.ts +7 -0
  129. package/dist/types/registry/deepseek.d.ts +8 -0
  130. package/dist/types/registry/derived.d.ts +5 -0
  131. package/dist/types/registry/devin.d.ts +8 -0
  132. package/dist/types/registry/exa.d.ts +8 -0
  133. package/dist/types/registry/firepass.d.ts +16 -0
  134. package/dist/types/registry/fireworks.d.ts +7 -0
  135. package/dist/types/registry/github-copilot.d.ts +7 -0
  136. package/dist/types/registry/gitlab-duo-workflow.d.ts +10 -0
  137. package/dist/types/registry/gitlab-duo.d.ts +9 -0
  138. package/dist/types/registry/gmi-cloud.d.ts +7 -0
  139. package/dist/types/registry/google-antigravity.d.ts +9 -0
  140. package/dist/types/registry/google-gemini-cli.d.ts +9 -0
  141. package/dist/types/registry/google-vertex.d.ts +5 -0
  142. package/dist/types/registry/google.d.ts +4 -0
  143. package/dist/types/registry/groq.d.ts +4 -0
  144. package/dist/types/registry/huggingface.d.ts +7 -0
  145. package/dist/types/registry/index.d.ts +4 -0
  146. package/dist/types/registry/kagi.d.ts +14 -0
  147. package/dist/types/registry/kilo.d.ts +7 -0
  148. package/dist/types/registry/kimi-code.d.ts +7 -0
  149. package/dist/types/registry/litellm.d.ts +13 -0
  150. package/dist/types/registry/llama-cpp.d.ts +8 -0
  151. package/dist/types/registry/lm-studio.d.ts +8 -0
  152. package/dist/types/registry/meta.d.ts +7 -0
  153. package/dist/types/registry/minimax-code-cn.d.ts +6 -0
  154. package/dist/types/registry/minimax-code.d.ts +6 -0
  155. package/dist/types/registry/minimax.d.ts +4 -0
  156. package/dist/types/registry/mistral.d.ts +4 -0
  157. package/dist/types/registry/moonshot.d.ts +7 -0
  158. package/dist/types/registry/nanogpt.d.ts +7 -0
  159. package/dist/types/registry/novita.d.ts +6 -0
  160. package/dist/types/registry/nvidia.d.ts +7 -0
  161. package/dist/types/registry/oauth/anthropic-constants.d.ts +12 -0
  162. package/dist/types/registry/oauth/anthropic.d.ts +24 -0
  163. package/dist/types/registry/oauth/callback-server.d.ts +74 -0
  164. package/dist/types/registry/oauth/cursor.d.ts +16 -0
  165. package/dist/types/registry/oauth/device-code.d.ts +25 -0
  166. package/dist/types/registry/oauth/devin.d.ts +5 -0
  167. package/dist/types/registry/oauth/github-copilot.d.ts +30 -0
  168. package/dist/types/registry/oauth/gitlab-duo-workflow.d.ts +6 -0
  169. package/dist/types/registry/oauth/gitlab-duo.d.ts +3 -0
  170. package/dist/types/registry/oauth/google-antigravity.d.ts +11 -0
  171. package/dist/types/registry/oauth/google-gemini-cli.d.ts +22 -0
  172. package/dist/types/registry/oauth/google-oauth-shared.d.ts +56 -0
  173. package/dist/types/registry/oauth/index.d.ts +45 -0
  174. package/dist/types/registry/oauth/kimi.d.ts +21 -0
  175. package/dist/types/registry/oauth/minimax-code.d.ts +27 -0
  176. package/dist/types/registry/oauth/openai-codex.d.ts +33 -0
  177. package/dist/types/registry/oauth/opencode.d.ts +18 -0
  178. package/dist/types/registry/oauth/perplexity.d.ts +9 -0
  179. package/dist/types/registry/oauth/pkce.d.ts +8 -0
  180. package/dist/types/registry/oauth/types.d.ts +87 -0
  181. package/dist/types/registry/oauth/wafer.d.ts +1 -0
  182. package/dist/types/registry/oauth/xai-oauth.d.ts +46 -0
  183. package/dist/types/registry/oauth/xiaomi.d.ts +25 -0
  184. package/dist/types/registry/oauth/zai.d.ts +25 -0
  185. package/dist/types/registry/ollama-cloud.d.ts +7 -0
  186. package/dist/types/registry/ollama.d.ts +12 -0
  187. package/dist/types/registry/openai-codex-device.d.ts +8 -0
  188. package/dist/types/registry/openai-codex.d.ts +9 -0
  189. package/dist/types/registry/openai.d.ts +4 -0
  190. package/dist/types/registry/opencode-go.d.ts +6 -0
  191. package/dist/types/registry/opencode-zen.d.ts +6 -0
  192. package/dist/types/registry/openrouter.d.ts +13 -0
  193. package/dist/types/registry/parallel.d.ts +14 -0
  194. package/dist/types/registry/perplexity.d.ts +7 -0
  195. package/dist/types/registry/qianfan.d.ts +7 -0
  196. package/dist/types/registry/qwen-portal.d.ts +7 -0
  197. package/dist/types/registry/registry.d.ts +367 -0
  198. package/dist/types/registry/sakana.d.ts +7 -0
  199. package/dist/types/registry/siliconflow-cn.d.ts +7 -0
  200. package/dist/types/registry/siliconflow.d.ts +7 -0
  201. package/dist/types/registry/synthetic.d.ts +6 -0
  202. package/dist/types/registry/tavily.d.ts +14 -0
  203. package/dist/types/registry/together.d.ts +6 -0
  204. package/dist/types/registry/types.d.ts +75 -0
  205. package/dist/types/registry/umans.d.ts +7 -0
  206. package/dist/types/registry/venice.d.ts +13 -0
  207. package/dist/types/registry/vercel-ai-gateway.d.ts +7 -0
  208. package/dist/types/registry/vllm.d.ts +7 -0
  209. package/dist/types/registry/wafer-serverless.d.ts +6 -0
  210. package/dist/types/registry/xai-oauth.d.ts +7 -0
  211. package/dist/types/registry/xai.d.ts +7 -0
  212. package/dist/types/registry/xiaomi-token-plan-ams.d.ts +6 -0
  213. package/dist/types/registry/xiaomi-token-plan-cn.d.ts +6 -0
  214. package/dist/types/registry/xiaomi-token-plan-sgp.d.ts +6 -0
  215. package/dist/types/registry/xiaomi.d.ts +6 -0
  216. package/dist/types/registry/zai.d.ts +15 -0
  217. package/dist/types/registry/zenmux.d.ts +7 -0
  218. package/dist/types/registry/zhipu-coding-plan.d.ts +7 -0
  219. package/dist/types/stream.d.ts +46 -0
  220. package/dist/types/types.d.ts +1064 -0
  221. package/dist/types/usage/alibaba-token-plan.d.ts +3 -0
  222. package/dist/types/usage/claude.d.ts +4 -0
  223. package/dist/types/usage/cursor.d.ts +4 -0
  224. package/dist/types/usage/gemini.d.ts +2 -0
  225. package/dist/types/usage/github-copilot.d.ts +7 -0
  226. package/dist/types/usage/google-antigravity.d.ts +15 -0
  227. package/dist/types/usage/kimi.d.ts +2 -0
  228. package/dist/types/usage/minimax-code.d.ts +3 -0
  229. package/dist/types/usage/ollama.d.ts +5 -0
  230. package/dist/types/usage/openai-codex-base-url.d.ts +18 -0
  231. package/dist/types/usage/openai-codex-reset.d.ts +88 -0
  232. package/dist/types/usage/openai-codex.d.ts +10 -0
  233. package/dist/types/usage/opencode-go.d.ts +2 -0
  234. package/dist/types/usage/shared.d.ts +1 -0
  235. package/dist/types/usage/synthetic.d.ts +2 -0
  236. package/dist/types/usage/umans.d.ts +2 -0
  237. package/dist/types/usage/xai-oauth.d.ts +12 -0
  238. package/dist/types/usage/zai.d.ts +3 -0
  239. package/dist/types/usage.d.ts +527 -0
  240. package/dist/types/utils/abort.d.ts +25 -0
  241. package/dist/types/utils/anthropic-auth.d.ts +35 -0
  242. package/dist/types/utils/aws-profile.d.ts +17 -0
  243. package/dist/types/utils/block-symbols.d.ts +62 -0
  244. package/dist/types/utils/deterministic-id.d.ts +16 -0
  245. package/dist/types/utils/empty-completion-retry.d.ts +21 -0
  246. package/dist/types/utils/event-stream.d.ts +39 -0
  247. package/dist/types/utils/foundry.d.ts +1 -0
  248. package/dist/types/utils/google-validation.d.ts +2 -0
  249. package/dist/types/utils/harmony-leak.d.ts +135 -0
  250. package/dist/types/utils/http-inspector.d.ts +49 -0
  251. package/dist/types/utils/idle-iterator.d.ts +149 -0
  252. package/dist/types/utils/leaked-thinking-stream.d.ts +33 -0
  253. package/dist/types/utils/openai-http.d.ts +48 -0
  254. package/dist/types/utils/openrouter-headers.d.ts +1 -0
  255. package/dist/types/utils/parse-bind.d.ts +23 -0
  256. package/dist/types/utils/provider-response.d.ts +3 -0
  257. package/dist/types/utils/proxy.d.ts +39 -0
  258. package/dist/types/utils/request-debug.d.ts +29 -0
  259. package/dist/types/utils/retry-after.d.ts +4 -0
  260. package/dist/types/utils/retry.d.ts +14 -0
  261. package/dist/types/utils/schema/adapt.d.ts +24 -0
  262. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  263. package/dist/types/utils/schema/dereference.d.ts +11 -0
  264. package/dist/types/utils/schema/draft.d.ts +10 -0
  265. package/dist/types/utils/schema/equality.d.ts +4 -0
  266. package/dist/types/utils/schema/fields.d.ts +54 -0
  267. package/dist/types/utils/schema/index.d.ts +14 -0
  268. package/dist/types/utils/schema/json-schema-validator.d.ts +20 -0
  269. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  270. package/dist/types/utils/schema/normalize.d.ts +153 -0
  271. package/dist/types/utils/schema/spill.d.ts +8 -0
  272. package/dist/types/utils/schema/stamps.d.ts +17 -0
  273. package/dist/types/utils/schema/strict-tool-validation.d.ts +16 -0
  274. package/dist/types/utils/schema/types.d.ts +4 -0
  275. package/dist/types/utils/schema/typescript.d.ts +24 -0
  276. package/dist/types/utils/schema/wire.d.ts +52 -0
  277. package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
  278. package/dist/types/utils/sse-debug.d.ts +5 -0
  279. package/dist/types/utils/stream-markup-healing.d.ts +87 -0
  280. package/dist/types/utils/thinking-loop.d.ts +102 -0
  281. package/dist/types/utils/tool-call-loop-guard.d.ts +26 -0
  282. package/dist/types/utils/tool-choice.d.ts +52 -0
  283. package/dist/types/utils/validation.d.ts +28 -0
  284. package/dist/types/utils.d.ts +57 -0
  285. package/package.json +138 -0
  286. package/src/api-registry.ts +109 -0
  287. package/src/auth/sqlite-credential-store.ts +2066 -0
  288. package/src/auth-broker/client.ts +471 -0
  289. package/src/auth-broker/discover.ts +310 -0
  290. package/src/auth-broker/index.ts +7 -0
  291. package/src/auth-broker/refresher.ts +117 -0
  292. package/src/auth-broker/remote-store.ts +1332 -0
  293. package/src/auth-broker/server.ts +898 -0
  294. package/src/auth-broker/snapshot-cache.ts +200 -0
  295. package/src/auth-broker/types.ts +193 -0
  296. package/src/auth-broker/wire-schema-resource.ts +487 -0
  297. package/src/auth-broker/wire-schemas.ts +43 -0
  298. package/src/auth-gateway/http.ts +227 -0
  299. package/src/auth-gateway/index.ts +3 -0
  300. package/src/auth-gateway/server.ts +836 -0
  301. package/src/auth-gateway/types.ts +153 -0
  302. package/src/auth-retry.ts +401 -0
  303. package/src/auth-storage.ts +6540 -0
  304. package/src/dialect/anthropic.md +31 -0
  305. package/src/dialect/anthropic.ts +608 -0
  306. package/src/dialect/catalog.ts +29 -0
  307. package/src/dialect/coercion.ts +136 -0
  308. package/src/dialect/deepseek.md +24 -0
  309. package/src/dialect/deepseek.ts +609 -0
  310. package/src/dialect/demotion.ts +40 -0
  311. package/src/dialect/examples.ts +71 -0
  312. package/src/dialect/factory.ts +34 -0
  313. package/src/dialect/fenced-thinking.ts +184 -0
  314. package/src/dialect/gemini.md +44 -0
  315. package/src/dialect/gemini.ts +583 -0
  316. package/src/dialect/gemma.md +33 -0
  317. package/src/dialect/gemma.ts +387 -0
  318. package/src/dialect/glm.md +32 -0
  319. package/src/dialect/glm.ts +579 -0
  320. package/src/dialect/harmony.md +31 -0
  321. package/src/dialect/harmony.ts +345 -0
  322. package/src/dialect/hermes.md +25 -0
  323. package/src/dialect/hermes.ts +206 -0
  324. package/src/dialect/history.ts +81 -0
  325. package/src/dialect/index.ts +15 -0
  326. package/src/dialect/inventory.ts +30 -0
  327. package/src/dialect/kimi.md +24 -0
  328. package/src/dialect/kimi.ts +340 -0
  329. package/src/dialect/minimax.md +31 -0
  330. package/src/dialect/minimax.ts +95 -0
  331. package/src/dialect/owned-stream.ts +481 -0
  332. package/src/dialect/prompt-template.md +12 -0
  333. package/src/dialect/qwen3.md +28 -0
  334. package/src/dialect/qwen3.ts +240 -0
  335. package/src/dialect/rendering.ts +304 -0
  336. package/src/dialect/thinking.ts +292 -0
  337. package/src/dialect/types.ts +56 -0
  338. package/src/dialect/xml.md +22 -0
  339. package/src/dialect/xml.ts +90 -0
  340. package/src/error/abort.ts +18 -0
  341. package/src/error/auth-classify.ts +47 -0
  342. package/src/error/auth.ts +48 -0
  343. package/src/error/aws.ts +35 -0
  344. package/src/error/classes.ts +281 -0
  345. package/src/error/finalize.ts +69 -0
  346. package/src/error/flags.ts +602 -0
  347. package/src/error/format.ts +45 -0
  348. package/src/error/gateway.ts +96 -0
  349. package/src/error/index.ts +14 -0
  350. package/src/error/oauth.ts +58 -0
  351. package/src/error/provider.ts +63 -0
  352. package/src/error/rate-limit.ts +303 -0
  353. package/src/error/retryable.ts +70 -0
  354. package/src/error/validation.ts +44 -0
  355. package/src/index.ts +51 -0
  356. package/src/provider-details.ts +90 -0
  357. package/src/providers/amazon-bedrock.ts +1064 -0
  358. package/src/providers/anthropic-client.ts +317 -0
  359. package/src/providers/anthropic-messages-server-schema.ts +252 -0
  360. package/src/providers/anthropic-messages-server.ts +818 -0
  361. package/src/providers/anthropic-wire.ts +359 -0
  362. package/src/providers/anthropic.ts +4539 -0
  363. package/src/providers/aws-credentials.ts +772 -0
  364. package/src/providers/aws-eventstream.ts +181 -0
  365. package/src/providers/aws-sigv4.ts +218 -0
  366. package/src/providers/azure-openai-responses.ts +438 -0
  367. package/src/providers/bedrock-mantle.ts +110 -0
  368. package/src/providers/claude-code-fingerprint.ts +20 -0
  369. package/src/providers/cowork-fetch.ts +201 -0
  370. package/src/providers/cursor/exec-modern.ts +496 -0
  371. package/src/providers/cursor/proto/agent.proto +4533 -0
  372. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  373. package/src/providers/cursor/proto/buf.yaml +17 -0
  374. package/src/providers/cursor-pi-args.ts +165 -0
  375. package/src/providers/cursor.ts +4689 -0
  376. package/src/providers/devin/proto/buf/validate/validate.proto +468 -0
  377. package/src/providers/devin/proto/buf.gen.yaml +33 -0
  378. package/src/providers/devin/proto/buf.yaml +17 -0
  379. package/src/providers/devin/proto/cel/expr/checked.proto +103 -0
  380. package/src/providers/devin/proto/cel/expr/eval.proto +38 -0
  381. package/src/providers/devin/proto/cel/expr/explain.proto +15 -0
  382. package/src/providers/devin/proto/cel/expr/syntax.proto +113 -0
  383. package/src/providers/devin/proto/cel/expr/value.proto +41 -0
  384. package/src/providers/devin/proto/connectext/grpc/status/v1/status.proto +11 -0
  385. package/src/providers/devin/proto/errorspb/errors.proto +56 -0
  386. package/src/providers/devin/proto/errorspb/hintdetail.proto +7 -0
  387. package/src/providers/devin/proto/errorspb/markers.proto +10 -0
  388. package/src/providers/devin/proto/errorspb/tags.proto +12 -0
  389. package/src/providers/devin/proto/errorspb/testing.proto +6 -0
  390. package/src/providers/devin/proto/exa/analytics_pb/analytics.proto +188 -0
  391. package/src/providers/devin/proto/exa/api_server_pb/api_server.proto +2461 -0
  392. package/src/providers/devin/proto/exa/auth_pb/auth.proto +19 -0
  393. package/src/providers/devin/proto/exa/auto_cascade_common_pb/auto_cascade_common.proto +79 -0
  394. package/src/providers/devin/proto/exa/browser_preview_pb/browser_preview.proto +32 -0
  395. package/src/providers/devin/proto/exa/bug_checker_pb/bug_checker.proto +22 -0
  396. package/src/providers/devin/proto/exa/cascade_plugins_pb/cascade_plugins.proto +262 -0
  397. package/src/providers/devin/proto/exa/chat_client_server_pb/chat_client_server.proto +57 -0
  398. package/src/providers/devin/proto/exa/chat_pb/chat.proto +449 -0
  399. package/src/providers/devin/proto/exa/code_edit/code_edit_pb/code_edit.proto +186 -0
  400. package/src/providers/devin/proto/exa/codeium_common_pb/codeium_common.proto +4157 -0
  401. package/src/providers/devin/proto/exa/context_module_pb/context_module.proto +175 -0
  402. package/src/providers/devin/proto/exa/cortex_pb/cortex.proto +3268 -0
  403. package/src/providers/devin/proto/exa/dev_pb/dev.proto +26 -0
  404. package/src/providers/devin/proto/exa/diff_action_pb/diff_action.proto +75 -0
  405. package/src/providers/devin/proto/exa/eval/pr_eval/datasets_pb/datasets.proto +103 -0
  406. package/src/providers/devin/proto/exa/eval_pb/eval.proto +1315 -0
  407. package/src/providers/devin/proto/exa/extension_server_pb/extension_server.proto +556 -0
  408. package/src/providers/devin/proto/exa/file_system_provider_pb/file_system_provider.proto +75 -0
  409. package/src/providers/devin/proto/exa/index_pb/index.proto +461 -0
  410. package/src/providers/devin/proto/exa/knowledge_base_pb/knowledge_base.proto +144 -0
  411. package/src/providers/devin/proto/exa/language_server_pb/language_server.proto +2385 -0
  412. package/src/providers/devin/proto/exa/model_management_pb/model_management.proto +186 -0
  413. package/src/providers/devin/proto/exa/opensearch_clients_pb/opensearch_clients.proto +503 -0
  414. package/src/providers/devin/proto/exa/product_analytics_pb/product_analytics.proto +37 -0
  415. package/src/providers/devin/proto/exa/prompt_pb/prompt.proto +92 -0
  416. package/src/providers/devin/proto/exa/reactive_component_pb/reactive_component.proto +96 -0
  417. package/src/providers/devin/proto/exa/seat_management_pb/seat_management.proto +2680 -0
  418. package/src/providers/devin/proto/exa/tokenizer_pb/tokenizer.proto +37 -0
  419. package/src/providers/devin/proto/exa/trainer_pb/config.proto +647 -0
  420. package/src/providers/devin/proto/exa/tree_sitter/language_data_pb/language_data.proto +14 -0
  421. package/src/providers/devin/proto/exa/trust_pb/trust.proto +157 -0
  422. package/src/providers/devin/proto/exa/user_analytics_pb/user_analytics.proto +519 -0
  423. package/src/providers/devin/proto/google.golang.org/appengine/internal/base/api_base.proto +28 -0
  424. package/src/providers/devin/proto/google.golang.org/appengine/internal/datastore/datastore_v3.proto +484 -0
  425. package/src/providers/devin/proto/google.golang.org/appengine/internal/log/log_service.proto +136 -0
  426. package/src/providers/devin/proto/google.golang.org/appengine/internal/remote_api/remote_api.proto +42 -0
  427. package/src/providers/devin/proto/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +61 -0
  428. package/src/providers/devin/proto/grpc/binlog/v1/binarylog.proto +84 -0
  429. package/src/providers/devin/proto/io/prometheus/client/metrics.proto +98 -0
  430. package/src/providers/devin.ts +679 -0
  431. package/src/providers/error-message.ts +23 -0
  432. package/src/providers/github-copilot-headers.ts +141 -0
  433. package/src/providers/gitlab-duo-workflow-chatml-note.md +1 -0
  434. package/src/providers/gitlab-duo-workflow.ts +3135 -0
  435. package/src/providers/gitlab-duo.ts +399 -0
  436. package/src/providers/google-auth.ts +330 -0
  437. package/src/providers/google-gemini-cli.ts +1370 -0
  438. package/src/providers/google-shared.ts +1122 -0
  439. package/src/providers/google-types.ts +180 -0
  440. package/src/providers/google-vertex.ts +135 -0
  441. package/src/providers/google.ts +47 -0
  442. package/src/providers/grammar.ts +70 -0
  443. package/src/providers/kimi.ts +51 -0
  444. package/src/providers/mock.ts +514 -0
  445. package/src/providers/ollama.ts +776 -0
  446. package/src/providers/openai-anthropic-shim.ts +166 -0
  447. package/src/providers/openai-chat-server-schema.ts +243 -0
  448. package/src/providers/openai-chat-server.ts +752 -0
  449. package/src/providers/openai-chat-wire.ts +859 -0
  450. package/src/providers/openai-codex/request-transformer.ts +491 -0
  451. package/src/providers/openai-codex/response-handler.ts +102 -0
  452. package/src/providers/openai-codex-responses.ts +4716 -0
  453. package/src/providers/openai-completions.ts +2389 -0
  454. package/src/providers/openai-reasoning-fallback.ts +269 -0
  455. package/src/providers/openai-responses-server-schema.ts +397 -0
  456. package/src/providers/openai-responses-server.ts +1466 -0
  457. package/src/providers/openai-responses-wire.ts +6416 -0
  458. package/src/providers/openai-responses.ts +1393 -0
  459. package/src/providers/openai-shared.ts +3500 -0
  460. package/src/providers/pi-native-client.ts +275 -0
  461. package/src/providers/pi-native-server.ts +245 -0
  462. package/src/providers/register-builtins.ts +503 -0
  463. package/src/providers/synthetic.ts +50 -0
  464. package/src/providers/transform-messages.ts +1083 -0
  465. package/src/providers/vision-guard.ts +54 -0
  466. package/src/registry/aiand.ts +22 -0
  467. package/src/registry/aimlapi.ts +6 -0
  468. package/src/registry/alibaba-coding-plan.ts +104 -0
  469. package/src/registry/alibaba-token-plan.ts +125 -0
  470. package/src/registry/amazon-bedrock.ts +22 -0
  471. package/src/registry/anthropic.ts +26 -0
  472. package/src/registry/api-key-login.ts +115 -0
  473. package/src/registry/api-key-validation.ts +145 -0
  474. package/src/registry/aws.ts +57 -0
  475. package/src/registry/azure.ts +6 -0
  476. package/src/registry/baseten.ts +22 -0
  477. package/src/registry/bedrock-mantle.ts +34 -0
  478. package/src/registry/cerebras.ts +23 -0
  479. package/src/registry/cloudflare-ai-gateway.ts +45 -0
  480. package/src/registry/coreweave.ts +40 -0
  481. package/src/registry/cursor.ts +20 -0
  482. package/src/registry/deepseek.ts +46 -0
  483. package/src/registry/derived.ts +9 -0
  484. package/src/registry/devin.ts +15 -0
  485. package/src/registry/exa.ts +19 -0
  486. package/src/registry/firepass.ts +32 -0
  487. package/src/registry/fireworks.ts +28 -0
  488. package/src/registry/github-copilot.ts +22 -0
  489. package/src/registry/gitlab-duo-workflow.ts +20 -0
  490. package/src/registry/gitlab-duo.ts +19 -0
  491. package/src/registry/gmi-cloud.ts +22 -0
  492. package/src/registry/google-antigravity.ts +22 -0
  493. package/src/registry/google-gemini-cli.ts +22 -0
  494. package/src/registry/google-vertex.ts +38 -0
  495. package/src/registry/google.ts +6 -0
  496. package/src/registry/groq.ts +6 -0
  497. package/src/registry/huggingface.ts +29 -0
  498. package/src/registry/index.ts +4 -0
  499. package/src/registry/kagi.ts +46 -0
  500. package/src/registry/kilo.ts +114 -0
  501. package/src/registry/kimi-code.ts +17 -0
  502. package/src/registry/litellm.ts +45 -0
  503. package/src/registry/llama-cpp.ts +35 -0
  504. package/src/registry/lm-studio.ts +31 -0
  505. package/src/registry/meta.ts +22 -0
  506. package/src/registry/minimax-code-cn.ts +12 -0
  507. package/src/registry/minimax-code.ts +12 -0
  508. package/src/registry/minimax.ts +6 -0
  509. package/src/registry/mistral.ts +6 -0
  510. package/src/registry/moonshot.ts +28 -0
  511. package/src/registry/nanogpt.ts +22 -0
  512. package/src/registry/novita.ts +25 -0
  513. package/src/registry/nvidia.ts +61 -0
  514. package/src/registry/oauth/anthropic-constants.ts +12 -0
  515. package/src/registry/oauth/anthropic.ts +346 -0
  516. package/src/registry/oauth/callback-server.ts +438 -0
  517. package/src/registry/oauth/cursor.ts +187 -0
  518. package/src/registry/oauth/device-code.ts +92 -0
  519. package/src/registry/oauth/devin.ts +124 -0
  520. package/src/registry/oauth/github-copilot.ts +369 -0
  521. package/src/registry/oauth/gitlab-duo-workflow.ts +146 -0
  522. package/src/registry/oauth/gitlab-duo.ts +222 -0
  523. package/src/registry/oauth/google-antigravity.ts +225 -0
  524. package/src/registry/oauth/google-gemini-cli.ts +297 -0
  525. package/src/registry/oauth/google-oauth-shared.ts +211 -0
  526. package/src/registry/oauth/index.ts +187 -0
  527. package/src/registry/oauth/kimi.ts +297 -0
  528. package/src/registry/oauth/minimax-code.ts +53 -0
  529. package/src/registry/oauth/oauth.html +317 -0
  530. package/src/registry/oauth/openai-codex.ts +384 -0
  531. package/src/registry/oauth/opencode.ts +50 -0
  532. package/src/registry/oauth/perplexity.ts +228 -0
  533. package/src/registry/oauth/pkce.ts +18 -0
  534. package/src/registry/oauth/types.ts +96 -0
  535. package/src/registry/oauth/wafer.ts +24 -0
  536. package/src/registry/oauth/xai-oauth.ts +559 -0
  537. package/src/registry/oauth/xiaomi.ts +211 -0
  538. package/src/registry/oauth/zai.ts +285 -0
  539. package/src/registry/ollama-cloud.ts +36 -0
  540. package/src/registry/ollama.ts +43 -0
  541. package/src/registry/openai-codex-device.ts +18 -0
  542. package/src/registry/openai-codex.ts +19 -0
  543. package/src/registry/openai.ts +6 -0
  544. package/src/registry/opencode-go.ts +12 -0
  545. package/src/registry/opencode-zen.ts +12 -0
  546. package/src/registry/openrouter.ts +28 -0
  547. package/src/registry/parallel.ts +45 -0
  548. package/src/registry/perplexity.ts +13 -0
  549. package/src/registry/qianfan.ts +27 -0
  550. package/src/registry/qwen-portal.ts +50 -0
  551. package/src/registry/registry.ts +182 -0
  552. package/src/registry/sakana.ts +22 -0
  553. package/src/registry/siliconflow-cn.ts +22 -0
  554. package/src/registry/siliconflow.ts +22 -0
  555. package/src/registry/synthetic.ts +21 -0
  556. package/src/registry/tavily.ts +45 -0
  557. package/src/registry/together.ts +22 -0
  558. package/src/registry/types.ts +86 -0
  559. package/src/registry/umans.ts +23 -0
  560. package/src/registry/venice.ts +33 -0
  561. package/src/registry/vercel-ai-gateway.ts +38 -0
  562. package/src/registry/vllm.ts +34 -0
  563. package/src/registry/wafer-serverless.ts +12 -0
  564. package/src/registry/xai-oauth.ts +17 -0
  565. package/src/registry/xai.ts +22 -0
  566. package/src/registry/xiaomi-token-plan-ams.ts +12 -0
  567. package/src/registry/xiaomi-token-plan-cn.ts +12 -0
  568. package/src/registry/xiaomi-token-plan-sgp.ts +12 -0
  569. package/src/registry/xiaomi.ts +12 -0
  570. package/src/registry/zai.ts +41 -0
  571. package/src/registry/zenmux.ts +22 -0
  572. package/src/registry/zhipu-coding-plan.ts +27 -0
  573. package/src/stream.ts +1944 -0
  574. package/src/types.ts +1243 -0
  575. package/src/usage/alibaba-token-plan.ts +230 -0
  576. package/src/usage/claude.ts +830 -0
  577. package/src/usage/cursor.ts +335 -0
  578. package/src/usage/gemini.ts +258 -0
  579. package/src/usage/github-copilot.ts +424 -0
  580. package/src/usage/google-antigravity.ts +497 -0
  581. package/src/usage/kimi.ts +277 -0
  582. package/src/usage/minimax-code.ts +291 -0
  583. package/src/usage/ollama.ts +41 -0
  584. package/src/usage/openai-codex-base-url.ts +35 -0
  585. package/src/usage/openai-codex-reset.ts +205 -0
  586. package/src/usage/openai-codex.ts +627 -0
  587. package/src/usage/opencode-go.ts +89 -0
  588. package/src/usage/shared.ts +10 -0
  589. package/src/usage/synthetic.ts +180 -0
  590. package/src/usage/umans.ts +192 -0
  591. package/src/usage/xai-oauth.ts +414 -0
  592. package/src/usage/zai.ts +370 -0
  593. package/src/usage.ts +411 -0
  594. package/src/utils/abort.ts +67 -0
  595. package/src/utils/anthropic-auth.ts +93 -0
  596. package/src/utils/aws-profile.ts +88 -0
  597. package/src/utils/block-symbols.ts +78 -0
  598. package/src/utils/deterministic-id.ts +20 -0
  599. package/src/utils/empty-completion-retry.ts +161 -0
  600. package/src/utils/event-stream.ts +202 -0
  601. package/src/utils/foundry.ts +8 -0
  602. package/src/utils/google-validation.ts +25 -0
  603. package/src/utils/harmony-leak.ts +500 -0
  604. package/src/utils/http-inspector.ts +196 -0
  605. package/src/utils/idle-iterator.ts +531 -0
  606. package/src/utils/leaked-thinking-stream.ts +483 -0
  607. package/src/utils/openai-http.ts +119 -0
  608. package/src/utils/openrouter-headers.ts +12 -0
  609. package/src/utils/parse-bind.ts +56 -0
  610. package/src/utils/provider-response.ts +30 -0
  611. package/src/utils/proxy.ts +314 -0
  612. package/src/utils/request-debug.ts +351 -0
  613. package/src/utils/retry-after.ts +121 -0
  614. package/src/utils/retry.ts +77 -0
  615. package/src/utils/schema/CONSTRAINTS.md +168 -0
  616. package/src/utils/schema/adapt.ts +36 -0
  617. package/src/utils/schema/compatibility.ts +435 -0
  618. package/src/utils/schema/dereference.ts +98 -0
  619. package/src/utils/schema/draft.ts +341 -0
  620. package/src/utils/schema/equality.ts +97 -0
  621. package/src/utils/schema/fields.ts +210 -0
  622. package/src/utils/schema/index.ts +14 -0
  623. package/src/utils/schema/json-schema-validator.ts +595 -0
  624. package/src/utils/schema/meta-validator.ts +167 -0
  625. package/src/utils/schema/normalize.ts +2314 -0
  626. package/src/utils/schema/spill.ts +43 -0
  627. package/src/utils/schema/stamps.ts +109 -0
  628. package/src/utils/schema/strict-tool-validation.ts +117 -0
  629. package/src/utils/schema/types.ts +10 -0
  630. package/src/utils/schema/typescript.ts +212 -0
  631. package/src/utils/schema/wire.ts +662 -0
  632. package/src/utils/sdk-stream-timeout.ts +43 -0
  633. package/src/utils/sse-debug.ts +18 -0
  634. package/src/utils/stream-markup-healing.ts +247 -0
  635. package/src/utils/thinking-loop.ts +552 -0
  636. package/src/utils/tool-call-loop-guard.ts +107 -0
  637. package/src/utils/tool-choice.ts +101 -0
  638. package/src/utils/validation.ts +1932 -0
  639. package/src/utils.ts +492 -0
@@ -0,0 +1,17 @@
1
+ import type { AssistantMessage, AssistantMessageEventStream } from "../types.js";
2
+ /**
3
+ * Anthropic Messages API (https://docs.anthropic.com/en/api/messages) ↔ pi-ai
4
+ * gateway translation. Inbound: foreign HTTP body → omp Context. Outbound:
5
+ * omp AssistantMessage[Stream] → Anthropic-shaped JSON / SSE.
6
+ */
7
+ import type { AuthGatewayStreamControl, AuthGatewayParsedRequest as ParsedRequest } from "../auth-gateway/types.js";
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, _options?: ParsedRequest["options"], control?: AuthGatewayStreamControl): 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,345 @@
1
+ /**
2
+ * Anthropic Messages API wire types.
3
+ *
4
+ * Hand-maintained against https://docs.anthropic.com/en/api/messages so pi-ai
5
+ * does not depend on `@anthropic-ai/sdk` for type information. Only the shapes
6
+ * this package actually reads or writes are modeled; fields we never touch are
7
+ * intentionally omitted. Names mirror the SDK so call sites read the same.
8
+ *
9
+ * Unlike the SDK, beta fields pi-ai uses (`speed`, `context_management`,
10
+ * `output_config.effort`/`task_budget`, `thinking.display`, cache-control
11
+ * `scope`, tool `strict`/`eager_input_streaming`, mid-conversation `system`
12
+ * role) are first-class here instead of being patched in via casts.
13
+ */
14
+ import type { TokenTaskBudget } from "../types.js";
15
+ /** Ephemeral prefix-cache breakpoint marker. */
16
+ export type CacheControlEphemeral = {
17
+ type: "ephemeral";
18
+ ttl?: "1h" | "5m";
19
+ /** Claude Code prompt-caching-scope beta: shares the breakpoint across sessions. */
20
+ scope?: "global";
21
+ };
22
+ export type Base64ImageSource = {
23
+ type: "base64";
24
+ media_type: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
25
+ data: string;
26
+ };
27
+ export type URLImageSource = {
28
+ type: "url";
29
+ url: string;
30
+ };
31
+ export type FileImageSource = {
32
+ type: "file";
33
+ file_id: string;
34
+ };
35
+ export type ImageSource = Base64ImageSource | URLImageSource | FileImageSource;
36
+ export type TextBlockParam = {
37
+ type: "text";
38
+ text: string;
39
+ cache_control?: CacheControlEphemeral | null;
40
+ };
41
+ export type ImageBlockParam = {
42
+ type: "image";
43
+ source: ImageSource;
44
+ cache_control?: CacheControlEphemeral | null;
45
+ };
46
+ export type ToolUseBlockParam = {
47
+ type: "tool_use";
48
+ id: string;
49
+ name: string;
50
+ input: unknown;
51
+ cache_control?: CacheControlEphemeral | null;
52
+ };
53
+ export type ToolResultBlockParam = {
54
+ type: "tool_result";
55
+ tool_use_id: string;
56
+ content?: string | Array<TextBlockParam | ImageBlockParam>;
57
+ is_error?: boolean;
58
+ cache_control?: CacheControlEphemeral | null;
59
+ };
60
+ /** Anthropic-executed server tool call replayed inside an assistant turn. */
61
+ export type ServerToolUseBlockParam = {
62
+ type: "server_tool_use";
63
+ id: string;
64
+ name: string;
65
+ input?: Record<string, unknown> | null;
66
+ [key: string]: unknown;
67
+ };
68
+ /** Web-search server-tool call whose matching result is replayable by omp. */
69
+ export type WebSearchServerToolUseBlockParam = ServerToolUseBlockParam & {
70
+ name: "web_search";
71
+ };
72
+ /** Native web-search result replayed inside an assistant turn. */
73
+ export type WebSearchToolResultBlockParam = {
74
+ type: "web_search_tool_result";
75
+ tool_use_id: string;
76
+ content: unknown;
77
+ [key: string]: unknown;
78
+ };
79
+ /** True for the complete native web-search history variants omp can replay. */
80
+ export declare function isAnthropicWebSearchHistoryBlock(block: {
81
+ type: string;
82
+ name?: unknown;
83
+ id?: unknown;
84
+ tool_use_id?: unknown;
85
+ content?: unknown;
86
+ }): block is WebSearchServerToolUseBlockParam | WebSearchToolResultBlockParam;
87
+ export type ThinkingBlockParam = {
88
+ type: "thinking";
89
+ thinking: string;
90
+ signature: string;
91
+ };
92
+ export type RedactedThinkingBlockParam = {
93
+ type: "redacted_thinking";
94
+ data: string;
95
+ };
96
+ /**
97
+ * Server-side fallback beta boundary marker (server-side-fallback-2026-06-01).
98
+ * Emitted by the API mid-stream when a classifier block on the requested
99
+ * model is retried on a fallback model. Only the official Anthropic
100
+ * endpoint accepts this block on replay — cross-provider hops MUST strip it.
101
+ */
102
+ export type FallbackBlockParam = {
103
+ type: "fallback";
104
+ from: {
105
+ model: string;
106
+ };
107
+ to: {
108
+ model: string;
109
+ };
110
+ };
111
+ export type ContentBlockParam = TextBlockParam | ImageBlockParam | ToolUseBlockParam | ToolResultBlockParam | ServerToolUseBlockParam | WebSearchToolResultBlockParam | ThinkingBlockParam | RedactedThinkingBlockParam | FallbackBlockParam;
112
+ /**
113
+ * A single conversation turn.
114
+ *
115
+ * `system` is the Opus 4.8+ mid-conversation system role
116
+ * (`mid-conversation-system-2026-04-07` beta); the public API otherwise only
117
+ * accepts `user` / `assistant`.
118
+ */
119
+ export type MessageParam = {
120
+ role: "user" | "assistant" | "system";
121
+ content: string | ContentBlockParam[];
122
+ };
123
+ export type ToolInputSchema = {
124
+ type: "object";
125
+ properties?: unknown | null;
126
+ required?: string[] | null;
127
+ [k: string]: unknown;
128
+ };
129
+ export type Tool = {
130
+ name: string;
131
+ description?: string;
132
+ input_schema: ToolInputSchema;
133
+ cache_control?: CacheControlEphemeral | null;
134
+ /** Structured-outputs beta: enforce the schema as a strict grammar. */
135
+ strict?: boolean;
136
+ /** Fine-grained tool streaming beta: stream tool input as it is generated. */
137
+ eager_input_streaming?: boolean;
138
+ };
139
+ export type ToolChoiceAuto = {
140
+ type: "auto";
141
+ disable_parallel_tool_use?: boolean;
142
+ };
143
+ export type ToolChoiceAny = {
144
+ type: "any";
145
+ disable_parallel_tool_use?: boolean;
146
+ };
147
+ export type ToolChoiceTool = {
148
+ type: "tool";
149
+ name: string;
150
+ disable_parallel_tool_use?: boolean;
151
+ };
152
+ export type ToolChoiceNone = {
153
+ type: "none";
154
+ };
155
+ export type ToolChoice = ToolChoiceAuto | ToolChoiceAny | ToolChoiceTool | ToolChoiceNone;
156
+ export type Metadata = {
157
+ user_id?: string | null;
158
+ };
159
+ export type ThinkingConfigEnabled = {
160
+ type: "enabled";
161
+ budget_tokens: number;
162
+ /** Opus 4.7+ reasoning display mode. */
163
+ display?: "summarized" | "omitted";
164
+ };
165
+ export type ThinkingConfigDisabled = {
166
+ type: "disabled";
167
+ };
168
+ export type ThinkingConfigAdaptive = {
169
+ type: "adaptive";
170
+ /** Opus 4.7+ reasoning display mode. */
171
+ display?: "summarized" | "omitted";
172
+ };
173
+ export type ThinkingConfigParam = ThinkingConfigEnabled | ThinkingConfigDisabled | ThinkingConfigAdaptive;
174
+ export type OutputConfig = {
175
+ /** Adaptive-thinking effort level (effort beta). */
176
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | null;
177
+ /** Task-budgets beta. */
178
+ task_budget?: TokenTaskBudget | null;
179
+ };
180
+ /**
181
+ * Per-attempt override entry in `MessageCreateParams.fallbacks`
182
+ * (server-side-fallback-2026-06-01 beta). Every field except `model`
183
+ * mirrors a top-level control the beta allows re-specifying per attempt.
184
+ */
185
+ export type FallbackParam = {
186
+ model: string;
187
+ max_tokens?: number;
188
+ thinking?: ThinkingConfigParam;
189
+ output_config?: OutputConfig;
190
+ speed?: "fast";
191
+ };
192
+ /** Claude Code context-management beta payload. */
193
+ export type ContextManagement = {
194
+ edits: Array<{
195
+ type: "clear_thinking_20251015";
196
+ keep: "all";
197
+ }>;
198
+ };
199
+ export type MessageCreateParams = {
200
+ model: string;
201
+ messages: MessageParam[];
202
+ max_tokens: number;
203
+ system?: string | TextBlockParam[];
204
+ temperature?: number;
205
+ top_p?: number;
206
+ top_k?: number;
207
+ stop_sequences?: string[];
208
+ stream?: boolean;
209
+ tools?: Tool[];
210
+ tool_choice?: ToolChoice;
211
+ metadata?: Metadata;
212
+ thinking?: ThinkingConfigParam;
213
+ output_config?: OutputConfig;
214
+ /** Fast-mode beta: realization of priority service tier. */
215
+ speed?: "fast";
216
+ /** Claude Code context-management beta. */
217
+ context_management?: ContextManagement;
218
+ /**
219
+ * Server-side fallback beta chain — up to three fallback models the API
220
+ * retries when a classifier blocks the primary. Required companion beta
221
+ * header: `server-side-fallback-2026-06-01`.
222
+ */
223
+ fallbacks?: FallbackParam[];
224
+ };
225
+ export type MessageCreateParamsStreaming = MessageCreateParams & {
226
+ stream: true;
227
+ };
228
+ export type StopReason = "end_turn" | "max_tokens" | "stop_sequence" | "tool_use" | "pause_turn" | "refusal" | "sensitive" | "model_context_window_exceeded";
229
+ export type CacheCreation = {
230
+ ephemeral_5m_input_tokens?: number | null;
231
+ ephemeral_1h_input_tokens?: number | null;
232
+ };
233
+ export type ServerToolUsage = {
234
+ web_search_requests?: number | null;
235
+ web_fetch_requests?: number | null;
236
+ };
237
+ /**
238
+ * Per-attempt token accounting inside a multi-run turn
239
+ * (server-side-fallback-2026-06-01). Populated whenever a fallback chain
240
+ * ran, including sticky-served turns with no `fallback` content block.
241
+ * A `fallback_message` entry is the definitive "served by fallback" signal.
242
+ */
243
+ export type UsageIteration = {
244
+ type?: "message" | "fallback_message" | string;
245
+ model?: string | null;
246
+ input_tokens?: number | null;
247
+ output_tokens?: number | null;
248
+ cache_read_input_tokens?: number | null;
249
+ cache_creation_input_tokens?: number | null;
250
+ };
251
+ export type Usage = {
252
+ input_tokens?: number | null;
253
+ output_tokens?: number | null;
254
+ cache_read_input_tokens?: number | null;
255
+ cache_creation_input_tokens?: number | null;
256
+ cache_creation?: CacheCreation | null;
257
+ server_tool_use?: ServerToolUsage | null;
258
+ iterations?: UsageIteration[] | null;
259
+ };
260
+ /** The `message` envelope carried by `message_start`. */
261
+ export type ResponseMessage = {
262
+ id: string;
263
+ type?: "message";
264
+ role?: "assistant";
265
+ model?: string;
266
+ content?: unknown[];
267
+ stop_reason?: StopReason | null;
268
+ stop_sequence?: string | null;
269
+ usage: Usage;
270
+ };
271
+ /** `content_block` payload carried by `content_block_start`. */
272
+ export type ResponseContentBlock = {
273
+ type: "text";
274
+ text: string;
275
+ } | {
276
+ type: "thinking";
277
+ thinking: string;
278
+ signature?: string;
279
+ } | {
280
+ type: "redacted_thinking";
281
+ data: string;
282
+ } | {
283
+ type: "tool_use";
284
+ id: string;
285
+ name: string;
286
+ input?: Record<string, unknown> | null;
287
+ } | ServerToolUseBlockParam | WebSearchToolResultBlockParam | {
288
+ type: "fallback";
289
+ from: {
290
+ model: string;
291
+ };
292
+ to: {
293
+ model: string;
294
+ };
295
+ };
296
+ export type ContentBlockDelta = {
297
+ type: "text_delta";
298
+ text: string;
299
+ } | {
300
+ type: "input_json_delta";
301
+ partial_json: string;
302
+ } | {
303
+ type: "thinking_delta";
304
+ thinking: string;
305
+ } | {
306
+ type: "signature_delta";
307
+ signature: string;
308
+ };
309
+ export type StopDetails = {
310
+ type: string;
311
+ category?: string | null;
312
+ explanation?: string | null;
313
+ };
314
+ export type MessageDelta = {
315
+ stop_reason?: StopReason | null;
316
+ stop_sequence?: string | null;
317
+ stop_details?: StopDetails | null;
318
+ };
319
+ export type RawMessageStartEvent = {
320
+ type: "message_start";
321
+ message: ResponseMessage;
322
+ };
323
+ export type RawContentBlockStartEvent = {
324
+ type: "content_block_start";
325
+ index: number;
326
+ content_block: ResponseContentBlock;
327
+ };
328
+ export type RawContentBlockDeltaEvent = {
329
+ type: "content_block_delta";
330
+ index: number;
331
+ delta: ContentBlockDelta;
332
+ };
333
+ export type RawContentBlockStopEvent = {
334
+ type: "content_block_stop";
335
+ index: number;
336
+ };
337
+ export type RawMessageDeltaEvent = {
338
+ type: "message_delta";
339
+ delta: MessageDelta;
340
+ usage: Usage;
341
+ };
342
+ export type RawMessageStopEvent = {
343
+ type: "message_stop";
344
+ };
345
+ export type RawMessageStreamEvent = RawMessageStartEvent | RawContentBlockStartEvent | RawContentBlockDeltaEvent | RawContentBlockStopEvent | RawMessageDeltaEvent | RawMessageStopEvent;
@@ -0,0 +1,261 @@
1
+ import type { Api, FetchImpl, Message, Model, ProviderSessionState, ServiceTier, SimpleStreamOptions, StreamFunction, StreamOptions, Usage } from "../types.js";
2
+ import { type AnthropicFetchOptions, type AnthropicMessagesClientLike } from "./anthropic-client.js";
3
+ import { type FallbackParam, type MessageParam, type TextBlockParam } from "./anthropic-wire.js";
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
+ claudeCodeSessionId?: string;
13
+ coworkBetas?: readonly string[];
14
+ /** Allow explicit fingerprint headers to replace OAuth defaults on non-official endpoints. */
15
+ allowAnthropicHeaderOverrides?: boolean;
16
+ };
17
+ export declare function normalizeAnthropicBaseUrl(baseUrl?: string): string | undefined;
18
+ export declare function buildBetaHeader(baseBetas: readonly string[], extraBetas: readonly string[]): string;
19
+ export declare function buildAnthropicHeaders(options: AnthropicHeaderOptions): Record<string, string>;
20
+ type AnthropicCacheControl = NonNullable<TextBlockParam["cache_control"]>;
21
+ /**
22
+ * Clears the in-session "server rejected fast mode" sticky flag. Call when the
23
+ * caller is explicitly re-arming `serviceTier: "priority"` (e.g. user toggled
24
+ * `/fast on` after a previous turn auto-disabled it) so the next request
25
+ * actually carries `speed: "fast"` again. No-op when the map or state entry
26
+ * hasn't been materialized yet.
27
+ */
28
+ export declare function clearAnthropicFastModeFallback(providerSessionState: Map<string, ProviderSessionState> | undefined): void;
29
+ /**
30
+ * Whether the direct Anthropic model's endpoint-scoped fast-mode fallback is
31
+ * currently active. Reading the map directly is intentional: inspection must
32
+ * not materialize a state entry for a model that has never streamed.
33
+ */
34
+ export declare function isAnthropicFastModeFallbackDisabled(providerSessionState: Map<string, ProviderSessionState> | undefined, model: Model<Api>): boolean;
35
+ export * from "./claude-code-fingerprint.js";
36
+ export declare function mapStainlessArch(arch: string): "x64" | "arm64" | "x86" | `other::${string}`;
37
+ /** Static headers emitted by Cowork's Linux Claude runtime. */
38
+ export declare const coworkHeaders: {
39
+ "X-Stainless-Arch": "arm64" | "x64" | "x86" | `other::${string}`;
40
+ "X-Stainless-Lang": string;
41
+ "X-Stainless-OS": string;
42
+ "X-Stainless-Package-Version": string;
43
+ "X-Stainless-Retry-Count": string;
44
+ "X-Stainless-Runtime": string;
45
+ "X-Stainless-Runtime-Version": string;
46
+ "X-Stainless-Timeout": string;
47
+ };
48
+ /**
49
+ * Wraps a fetch implementation to patch the Claude Code billing-header `cch`
50
+ * attestation into outgoing request bodies. Bodies without the placeholder
51
+ * pass through untouched, so installing it on every OAuth flow is safe.
52
+ */
53
+ export declare function wrapFetchForCch(base: FetchImpl): FetchImpl;
54
+ export declare function isClaudeCloakingUserId(userId: string): boolean;
55
+ export declare function generateClaudeCloakingUserId(): string;
56
+ export declare function deriveClaudeDeviceId(installId: string, accountId?: string): string;
57
+ /**
58
+ * Resolve the `metadata.user_id` field for an Anthropic Messages request.
59
+ *
60
+ * For API-key tokens, an explicit caller-supplied `userId` is forwarded
61
+ * verbatim and `undefined` yields no metadata. For OAuth tokens the value
62
+ * must match the Claude Code attribution shape (`isClaudeCloakingUserId` or
63
+ * the `{session_id, account_uuid?, device_id?}` JSON envelope) — anything
64
+ * else is dropped and a fresh Claude-Code-style JSON id is generated from
65
+ * `sessionId`/`accountId` so attribution stays consistent across the main
66
+ * streaming path and provider-specific request builders (e.g. web search).
67
+ */
68
+ export declare function resolveAnthropicMetadataUserId(userId: unknown, isOAuthToken: boolean, sessionId?: string, accountId?: string): string | undefined;
69
+ export declare const applyClaudeToolPrefix: (name: string) => string;
70
+ export declare const stripClaudeToolPrefix: (name: string) => string;
71
+ export type AnthropicOutputEffort = "low" | "medium" | "high" | "xhigh" | "max";
72
+ export type AnthropicEffort = AnthropicOutputEffort | "adaptive";
73
+ export type AnthropicThinkingDisplay = "summarized" | "omitted";
74
+ export interface AnthropicOptions extends StreamOptions {
75
+ /**
76
+ * Enable extended thinking.
77
+ * For adaptive-capable models (Opus 4.6+, Sonnet 4.6+, Fable/Mythos 5):
78
+ * uses adaptive thinking (Claude decides when/how much to think). For older
79
+ * models: uses budget-based thinking with thinkingBudgetTokens.
80
+ */
81
+ thinkingEnabled?: boolean;
82
+ /**
83
+ * Token budget for extended thinking (older models only).
84
+ * Ignored for adaptive-capable models.
85
+ */
86
+ thinkingBudgetTokens?: number;
87
+ /**
88
+ * Upstream wire model id override for collapsed effort-tier variants.
89
+ * Serialized as `requestModelId ?? model.requestModelId ?? model.id`.
90
+ */
91
+ requestModelId?: string;
92
+ /**
93
+ * Effort level for adaptive thinking.
94
+ * Controls how much Claude allocates, or uses "adaptive" for MiniMax's
95
+ * binary adaptive-thinking tag:
96
+ * - "max": Always thinks with no constraints
97
+ * - "high": Always thinks, deep reasoning (default)
98
+ * - "medium": Moderate thinking, may skip for simple queries
99
+ * - "low": Minimal thinking, skips for simple tasks
100
+ * - "adaptive": Sends `thinking.type: "adaptive"` without `output_config.effort`
101
+ * Ignored for older models.
102
+ */
103
+ effort?: AnthropicEffort;
104
+ /**
105
+ * Optional reasoning level fallback for direct Anthropic provider usage.
106
+ * Converted to adaptive effort when effort is not explicitly provided.
107
+ */
108
+ reasoning?: SimpleStreamOptions["reasoning"];
109
+ /**
110
+ * Controls how Anthropic returns thinking content when the selected thinking
111
+ * transport supports a display option. Defaults to "summarized" where the
112
+ * API accepts it.
113
+ */
114
+ thinkingDisplay?: AnthropicThinkingDisplay;
115
+ interleavedThinking?: boolean;
116
+ toolChoice?: "auto" | "any" | "none" | {
117
+ type: "tool";
118
+ name: string;
119
+ };
120
+ betas?: string[] | string;
121
+ /**
122
+ * Realization of `serviceTier: "priority"` on Anthropic models. When
123
+ * `"priority"`, sets `speed: "fast"` on the request and appends the
124
+ * `fast-mode-2026-02-01` beta header. Anthropic rejects unsupported models
125
+ * with `invalid_request_error`, which triggers an in-provider one-shot
126
+ * fallback (see `fastModeDisabled` provider state).
127
+ *
128
+ * Other `ServiceTier` values are currently ignored on this provider.
129
+ */
130
+ serviceTier?: ServiceTier;
131
+ /** Force OAuth bearer auth mode for proxy tokens that don't match Anthropic token prefixes. */
132
+ isOAuth?: boolean;
133
+ /**
134
+ * Pre-built Anthropic Messages client. When provided, skips internal client
135
+ * construction entirely. Accepts any structurally compatible client,
136
+ * including SDK clients such as `AnthropicVertex`.
137
+ */
138
+ client?: AnthropicMessagesClientLike;
139
+ /**
140
+ * Server-side fallback beta chain (`server-side-fallback-2026-06-01`).
141
+ * When set, `fallbacks` is forwarded on the request body and the beta
142
+ * header is auto-attached; the response parser then honors mid-stream
143
+ * `fallback` content blocks and `usage.iterations` for served-model
144
+ * promotion and per-attempt pricing. Opt-in ONLY — leaving this
145
+ * undefined preserves the pre-fallback behavior on every code path.
146
+ */
147
+ fallbacks?: FallbackParam[];
148
+ }
149
+ export type AnthropicClientOptionsArgs = {
150
+ model: Model<"anthropic-messages">;
151
+ apiKey: string;
152
+ extraBetas?: string[];
153
+ stream?: boolean;
154
+ interleavedThinking?: boolean;
155
+ headers?: Record<string, string>;
156
+ dynamicHeaders?: Record<string, string>;
157
+ isOAuth?: boolean;
158
+ hasTools?: boolean;
159
+ thinkingEnabled?: boolean;
160
+ thinkingDisplay?: AnthropicThinkingDisplay;
161
+ disableStrictTools?: boolean;
162
+ fetch?: FetchImpl;
163
+ maxRetryDelayMs?: number;
164
+ claudeCodeSessionId?: string;
165
+ };
166
+ export type AnthropicClientOptionsResult = {
167
+ isOAuthToken: boolean;
168
+ apiKey: string | null;
169
+ authToken?: string | null;
170
+ baseURL?: string;
171
+ maxRetries: number;
172
+ maxRetryDelayMs?: number;
173
+ defaultHeaders: Record<string, string>;
174
+ fetch?: FetchImpl;
175
+ fetchOptions?: AnthropicFetchOptions;
176
+ };
177
+ /**
178
+ * Returns env-supplied custom headers (`ANTHROPIC_CUSTOM_HEADERS`) when they
179
+ * should be forwarded to the upstream endpoint.
180
+ *
181
+ * Foundry mode forwards them unconditionally. Outside Foundry, they're applied
182
+ * only when the configured base URL is a non-Anthropic host — i.e. an
183
+ * enterprise/corporate gateway that may require its own proprietary auth
184
+ * header. Stock `api.anthropic.com` would reject unknown headers, so they're
185
+ * omitted there.
186
+ */
187
+ export declare function resolveAnthropicCustomHeadersForBaseUrl(baseUrl: string | undefined): Record<string, string> | undefined;
188
+ /**
189
+ * Whether an Anthropic (or Copilot-over-Anthropic) stream error should be
190
+ * retried. The classification lives in {@link AIError.isProviderRetryableError};
191
+ * this wrapper injects the Copilot-specific model-availability transient check,
192
+ * which the error module must not import directly.
193
+ */
194
+ export declare function isProviderRetryableError(error: unknown, provider?: string): boolean;
195
+ export type AnthropicUsageLike = {
196
+ cache_creation?: {
197
+ ephemeral_5m_input_tokens?: number | null;
198
+ ephemeral_1h_input_tokens?: number | null;
199
+ } | null;
200
+ server_tool_use?: {
201
+ web_search_requests?: number | null;
202
+ web_fetch_requests?: number | null;
203
+ } | null;
204
+ };
205
+ /**
206
+ * Capture Anthropic's optional cache-creation TTL breakdown and server-tool-use
207
+ * counters into the harness Usage shape. Omitted/null fields are no-ops; explicit
208
+ * zero-valued objects clear prior extras from earlier stream usage snapshots.
209
+ */
210
+ export declare function applyAnthropicUsageExtras(usage: Usage, source: AnthropicUsageLike): void;
211
+ export declare function isInvalidThinkingSignatureError(message: string): boolean;
212
+ /**
213
+ * Prepend a pointed remediation to Anthropic's `Invalid signature in thinking
214
+ * block` 400 when the model looks like an unmarked custom signing proxy
215
+ * (opaque baseUrl, `spec.reasoning: true`, no explicit
216
+ * `compat.replayUnsignedThinking` override). The default is native replay for
217
+ * the 3p reasoning majority (#2005); this hint turns the misconfigured-proxy
218
+ * case into a one-line fix instead of a silent retry loop (#4297).
219
+ */
220
+ export declare function maybeAddReplayUnsignedThinkingHint(model: Model<"anthropic-messages">, message: string): string;
221
+ /**
222
+ * Public entry: wrap the single-attempt streamer with bounded empty-completion
223
+ * retries (a benign terminal stop carrying no content/usage would otherwise
224
+ * stall the agent loop). The inner attempt keeps its own provider-failure retry
225
+ * loop; this layer only re-issues a fresh request on an empty success. Shared
226
+ * with the OpenAI-completions provider via `withEmptyCompletionRetry`.
227
+ */
228
+ export declare const streamAnthropic: StreamFunction<"anthropic-messages">;
229
+ export type AnthropicSystemBlock = {
230
+ type: "text";
231
+ text: string;
232
+ cache_control?: AnthropicCacheControl;
233
+ };
234
+ type SystemBlockOptions = {
235
+ includeClaudeCodeInstruction?: boolean;
236
+ extraInstructions?: string[];
237
+ /** Text of the first user message — used as fingerprint seed for the billing header. */
238
+ firstUserMessageText?: string;
239
+ cacheControl?: AnthropicCacheControl;
240
+ };
241
+ export declare function buildAnthropicSystemBlocks(systemPrompt: readonly string[] | undefined, options?: SystemBlockOptions): AnthropicSystemBlock[] | undefined;
242
+ export declare function normalizeExtraBetas(betas?: string[] | string): string[];
243
+ export declare function buildAnthropicClientOptions(args: AnthropicClientOptionsArgs): AnthropicClientOptionsResult;
244
+ /**
245
+ * A single Anthropic conversation turn, including the mid-conversation
246
+ * `system` role (Opus 4.8+ and Fable/Mythos 5).
247
+ */
248
+ export type AnthropicMessageParam = MessageParam;
249
+ /**
250
+ * Serialize omp {@link Message}s to Anthropic wire messages.
251
+ *
252
+ * `opts.serverSideFallbackEnabled` — when the CURRENT request itself
253
+ * opts into the server-side-fallback beta chain. Only then may a persisted
254
+ * `fallback` content block from a prior turn be replayed on the wire;
255
+ * otherwise the block is dropped to avoid a 400 on non-fallback requests
256
+ * that don't send the beta.
257
+ */
258
+ export declare function convertAnthropicMessages(messages: Message[], model: Model<"anthropic-messages">, isOAuthToken: boolean, opts?: {
259
+ serverSideFallbackEnabled?: boolean;
260
+ }): AnthropicMessageParam[];
261
+ export declare function normalizeAnthropicToolSchema(schema: unknown): unknown;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * AWS credential resolution for the Bedrock provider.
3
+ *
4
+ * Chain (first hit wins):
5
+ * 1. Static credentials from the environment
6
+ * (`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` [+ `AWS_SESSION_TOKEN`]).
7
+ * 2. Web identity (`AWS_WEB_IDENTITY_TOKEN_FILE` + `AWS_ROLE_ARN`).
8
+ * 3. Profile in `~/.aws/credentials` (and `~/.aws/config` for SSO):
9
+ * - static keys, SSO, or `credential_process`.
10
+ * 4. ECS/container credentials from `AWS_CONTAINER_CREDENTIALS_*`.
11
+ * 5. EC2 IMDSv2 when metadata is enabled.
12
+ *
13
+ * Resolved credentials are cached process-wide per profile and refreshed
14
+ * 60 s before `Expiration` to absorb clock skew.
15
+ */
16
+ import type { FetchImpl } from "../types.js";
17
+ import type { AwsCredentials } from "./aws-sigv4.js";
18
+ export interface ResolvedCredentials extends AwsCredentials {
19
+ /** Absolute expiration timestamp in ms. `undefined` for non-expiring static creds. */
20
+ expiresAt?: number;
21
+ }
22
+ export interface CredentialResolveOptions {
23
+ /** Named profile from `~/.aws/credentials` / `~/.aws/config`. */
24
+ profile?: string;
25
+ /** Falls back to env (`AWS_REGION` / `AWS_DEFAULT_REGION`) and finally `us-east-1`. */
26
+ region?: string;
27
+ signal?: AbortSignal;
28
+ fetch?: FetchImpl;
29
+ }
30
+ export declare function resolveAwsCredentials(opts?: CredentialResolveOptions): Promise<ResolvedCredentials>;
31
+ /** POSIX-shell-style tokenizer used by the AWS CLI for `credential_process`.
32
+ *
33
+ * Outside quotes a backslash escapes the next character. Inside single quotes
34
+ * everything is literal (no escapes, cannot contain `'`). Inside double quotes
35
+ * a backslash only escapes `$`, `` ` ``, `"`, and `\` — every other backslash
36
+ * is preserved verbatim, which is what makes Windows paths like
37
+ * `"C:\Program Files\tool\auth.exe"` survive tokenization. */
38
+ export declare function tokenizeCredentialProcessCommand(cmd: string): string[];
39
+ /** Test/diagnostic helper — drops cached credentials. */
40
+ export declare function clearAwsCredentialCache(): void;
41
+ /**
42
+ * Drop the cache entry for one profile/region. Called by the Bedrock provider on
43
+ * 401/403 responses so stale credentials are re-resolved instead of served until restart.
44
+ */
45
+ export declare function invalidateAwsCredentialCache(opts?: {
46
+ profile?: string;
47
+ region?: string;
48
+ }): void;