@daniel156161/prism 0.2.98 → 0.2.101

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 (1188) hide show
  1. package/README.md +2 -2
  2. package/dist/pi/pi-env.d.ts +1 -1
  3. package/dist/pi/pi-env.js +1 -1
  4. package/dist/pi/pi-native.js +2 -1
  5. package/dist/pi/pi-native.js.map +1 -1
  6. package/dist/pi/pi-package-command.d.ts +1 -0
  7. package/dist/pi/pi-package-command.js +6 -0
  8. package/dist/pi/pi-package-command.js.map +1 -0
  9. package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts +3 -2
  10. package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts.map +1 -1
  11. package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.js +13 -3
  12. package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.js.map +1 -1
  13. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.d.ts.map +1 -1
  14. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js +14 -1
  15. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js.map +1 -1
  16. package/node_modules/@earendil-works/pi-agent-core/package.json +4 -4
  17. package/node_modules/@earendil-works/pi-ai/README.md +5 -3
  18. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  19. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +34 -19
  20. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  21. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts +2 -0
  22. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -1
  23. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +9 -2
  24. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
  25. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  26. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +131 -7
  27. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
  28. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts +2 -2
  29. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -1
  30. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +17 -13
  31. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -1
  32. package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts +5 -2
  33. package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts.map +1 -1
  34. package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +16 -0
  35. package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js.map +1 -1
  36. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts +2 -2
  37. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -1
  38. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +15 -11
  39. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
  40. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts.map +1 -1
  41. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +6 -1
  42. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js.map +1 -1
  43. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
  44. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +4 -1
  45. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
  46. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts +3 -2
  47. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  48. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +128 -86
  49. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  50. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -1
  51. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +6 -2
  52. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
  53. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.d.ts.map +1 -1
  54. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +1 -1
  55. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js.map +1 -1
  56. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts +4 -0
  57. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts.map +1 -1
  58. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +17 -10
  59. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js.map +1 -1
  60. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.d.ts +1 -0
  61. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.d.ts.map +1 -1
  62. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.js +1 -1
  63. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.js.map +1 -1
  64. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.d.ts.map +1 -1
  65. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js +98 -34
  66. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js.map +1 -1
  67. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
  68. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.js +1 -14
  69. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.js.map +1 -1
  70. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -1
  71. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
  72. package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
  73. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  74. package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
  75. package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json +1 -1
  76. package/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json +1 -1
  77. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cerebras.json +1 -1
  78. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  79. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json +1 -1
  80. package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
  81. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google-vertex.json +1 -1
  82. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google.json +1 -1
  83. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
  84. package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
  85. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  86. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  87. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  88. package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json +1 -1
  89. package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-individual.json +1 -1
  90. package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -1
  91. package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json +1 -1
  92. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  93. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -1
  94. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
  95. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
  96. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
  97. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi.json +1 -1
  98. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
  99. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
  100. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts +1 -1
  101. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts.map +1 -1
  102. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js +1 -5
  103. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js.map +1 -1
  104. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +29 -4
  105. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  106. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  107. package/node_modules/@earendil-works/pi-ai/dist/utils/sleep.d.ts +2 -0
  108. package/node_modules/@earendil-works/pi-ai/dist/utils/sleep.d.ts.map +1 -0
  109. package/node_modules/@earendil-works/pi-ai/dist/utils/sleep.js +15 -0
  110. package/node_modules/@earendil-works/pi-ai/dist/utils/sleep.js.map +1 -0
  111. package/node_modules/@earendil-works/pi-ai/package.json +3 -4
  112. package/node_modules/@earendil-works/pi-client/CHANGELOG.md +4 -0
  113. package/node_modules/@earendil-works/pi-client/package.json +2 -2
  114. package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +83 -0
  115. package/node_modules/@earendil-works/pi-coding-agent/README.md +8 -4
  116. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/anthropic-messages-JWX2WP65.js +45 -0
  117. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/anthropic.js +75 -0
  118. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/azure-openai-responses-5ENVCQ7U.js +2 -0
  119. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/bedrock-converse-stream.js +74 -0
  120. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-4L3WN2XY.js +2 -0
  121. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
  122. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-6R7UI4IY.js +2 -0
  123. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-AXIIZGTV.js +2 -0
  124. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-DRQDKNXA.js +2 -0
  125. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-E5KXRMZK.js +1547 -0
  126. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-GMWCTUPB.js +2 -0
  127. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-GPPBJGBU.js +50 -0
  128. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-JUUC5AZY.js +2 -0
  129. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
  130. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-MNAIPA3J.js +2 -0
  131. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-NBBFIJUL.js +11 -0
  132. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-NUHFSC37.js +25 -0
  133. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-PGXDEOVV.js +2 -0
  134. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-PJACZCIR.js +2 -0
  135. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-PRRNXB7S.js +2 -0
  136. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
  137. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-TRDNDS6A.js +4 -0
  138. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-UAQELI3K.js +2 -0
  139. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-XDUWOHPL.js +6 -0
  140. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-XNGRGP62.js +2 -0
  141. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/dist-RDWOYWHR.js +13 -0
  142. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/github-copilot.js +2 -0
  143. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/google-generative-ai-XDKMGBCJ.js +2 -0
  144. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/google-vertex-D5FGEO3Y.js +2 -0
  145. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/image-resize-worker.js +2 -0
  146. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/kimi-coding.js +2 -0
  147. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/lib-HGQMNYVT.js +9 -0
  148. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/mistral-conversations-YK73UAOZ.js +5 -0
  149. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
  150. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/openai-codex-responses-GJVBJXLB.js +8 -0
  151. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/openai-codex.js +75 -0
  152. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/openai-completions-JD4WAC3R.js +7 -0
  153. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/openai-responses-BSOJMSEV.js +2 -0
  154. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/openrouter-images-N4XVVFSD.js +2 -0
  155. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/openrouter.js +75 -0
  156. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/pi-messages-TPFH44NP.js +8 -0
  157. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/radius.js +75 -0
  158. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/src-UK77SYZE.js +4 -0
  159. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/xai.js +2 -0
  160. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/cli.js +3 -0
  161. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/client.js +2 -0
  162. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/index.js +2 -0
  163. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/rpc-entry.js +3 -0
  164. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts +1 -0
  165. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
  166. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js +29 -9
  167. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js.map +1 -1
  168. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.d.ts.map +1 -1
  169. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js +2 -1
  170. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js.map +1 -1
  171. package/node_modules/@earendil-works/pi-coding-agent/dist/config.d.ts +4 -3
  172. package/node_modules/@earendil-works/pi-coding-agent/dist/config.d.ts.map +1 -1
  173. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js +22 -14
  174. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js.map +1 -1
  175. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts +26 -7
  176. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  177. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +163 -95
  178. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  179. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  180. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +6 -7
  181. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  182. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  183. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js +3 -0
  184. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -1
  185. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.d.ts +4 -3
  186. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -1
  187. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +41 -32
  188. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -1
  189. package/node_modules/@earendil-works/pi-coding-agent/dist/core/defaults.d.ts +1 -0
  190. package/node_modules/@earendil-works/pi-coding-agent/dist/core/defaults.d.ts.map +1 -1
  191. package/node_modules/@earendil-works/pi-coding-agent/dist/core/defaults.js +9 -0
  192. package/node_modules/@earendil-works/pi-coding-agent/dist/core/defaults.js.map +1 -1
  193. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts +2 -2
  194. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
  195. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.js +1 -1
  196. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
  197. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
  198. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +115 -48
  199. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  200. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts +38 -9
  201. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  202. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.js +3 -0
  203. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  204. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.d.ts +1 -1
  205. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.d.ts.map +1 -1
  206. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.js +1 -1
  207. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.js.map +1 -1
  208. package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.d.ts +20 -19
  209. package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -1
  210. package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.js +26 -5
  211. package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.js.map +1 -1
  212. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.d.ts +5 -0
  213. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.d.ts.map +1 -1
  214. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.js +3 -1
  215. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.js.map +1 -1
  216. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts +1 -0
  217. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  218. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +14 -8
  219. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  220. package/node_modules/@earendil-works/pi-coding-agent/dist/core/models-store.d.ts.map +1 -1
  221. package/node_modules/@earendil-works/pi-coding-agent/dist/core/models-store.js +2 -1
  222. package/node_modules/@earendil-works/pi-coding-agent/dist/core/models-store.js.map +1 -1
  223. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
  224. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +22 -14
  225. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
  226. package/node_modules/@earendil-works/pi-coding-agent/dist/core/pi-manifest.d.ts.map +1 -1
  227. package/node_modules/@earendil-works/pi-coding-agent/dist/core/pi-manifest.js +2 -1
  228. package/node_modules/@earendil-works/pi-coding-agent/dist/core/pi-manifest.js.map +1 -1
  229. package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.d.ts.map +1 -1
  230. package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.js +2 -1
  231. package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.js.map +1 -1
  232. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
  233. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +3 -2
  234. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
  235. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.d.ts +2 -2
  236. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  237. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +10 -3
  238. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js.map +1 -1
  239. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-export.d.ts +4 -0
  240. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-export.d.ts.map +1 -0
  241. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-export.js +32 -0
  242. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-export.js.map +1 -0
  243. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
  244. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +2 -1
  245. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js.map +1 -1
  246. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-diagnostics.d.ts +9 -0
  247. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-diagnostics.d.ts.map +1 -0
  248. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-diagnostics.js +21 -0
  249. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-diagnostics.js.map +1 -0
  250. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts +9 -0
  251. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  252. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +52 -10
  253. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  254. package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
  255. package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.js +51 -33
  256. package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.js.map +1 -1
  257. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
  258. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js +2 -1
  259. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
  260. package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
  261. package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js +11 -2
  262. package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  263. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts +14 -1
  264. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
  265. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +36 -20
  266. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
  267. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.d.ts +0 -5
  268. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.d.ts.map +1 -1
  269. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js +2 -5
  270. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js.map +1 -1
  271. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts.map +1 -1
  272. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +20 -4
  273. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js.map +1 -1
  274. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.d.ts +4 -1
  275. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.d.ts.map +1 -1
  276. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.js +18 -1
  277. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.js.map +1 -1
  278. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/powershell.d.ts +16 -0
  279. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/powershell.d.ts.map +1 -0
  280. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/powershell.js +39 -0
  281. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/powershell.js.map +1 -0
  282. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.d.ts.map +1 -1
  283. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.js +2 -1
  284. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.js.map +1 -1
  285. package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/index.d.ts.map +1 -1
  286. package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/index.js +2 -0
  287. package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/index.js.map +1 -1
  288. package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/provider.d.ts.map +1 -1
  289. package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/provider.js +6 -2
  290. package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/provider.js.map +1 -1
  291. package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts +5 -5
  292. package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts.map +1 -1
  293. package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +4 -4
  294. package/node_modules/@earendil-works/pi-coding-agent/dist/index.js.map +1 -1
  295. package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts +4 -0
  296. package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts.map +1 -1
  297. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +18 -15
  298. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js.map +1 -1
  299. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.d.ts.map +1 -1
  300. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.js +4 -3
  301. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.js.map +1 -1
  302. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts +9 -3
  303. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  304. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.js +56 -12
  305. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.js.map +1 -1
  306. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +7 -2
  307. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  308. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +118 -56
  309. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
  310. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
  311. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  312. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-submenu.js +165 -0
  313. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-submenu.js.map +1 -0
  314. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
  315. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  316. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/thinking-selector.js +74 -17
  317. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  318. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/external-editor.d.ts.map +1 -1
  319. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/external-editor.js +2 -1
  320. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/external-editor.js.map +1 -1
  321. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +11 -0
  322. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  323. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +182 -112
  324. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  325. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/session-share.d.ts +16 -0
  326. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/session-share.d.ts.map +1 -0
  327. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/session-share.js +188 -0
  328. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/session-share.js.map +1 -0
  329. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  330. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js +4 -3
  331. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  332. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/json-event.d.ts +16 -13
  333. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/json-event.d.ts.map +1 -1
  334. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/json-event.js +20 -6
  335. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/json-event.js.map +1 -1
  336. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts +1 -0
  337. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts.map +1 -1
  338. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +186 -2
  339. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js.map +1 -1
  340. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/frontmatter.d.ts.map +1 -1
  341. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/frontmatter.js +2 -1
  342. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/frontmatter.js.map +1 -1
  343. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/management-http.d.ts +5 -3
  344. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/management-http.d.ts.map +1 -1
  345. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/management-http.js +14 -10
  346. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/management-http.js.map +1 -1
  347. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.d.ts +3 -0
  348. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.d.ts.map +1 -1
  349. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.js +17 -5
  350. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.js.map +1 -1
  351. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.d.ts +1 -0
  352. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.d.ts.map +1 -1
  353. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.js +60 -1
  354. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.js.map +1 -1
  355. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/text.d.ts +8 -0
  356. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/text.d.ts.map +1 -0
  357. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/text.js +9 -0
  358. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/text.js.map +1 -0
  359. package/node_modules/@earendil-works/pi-coding-agent/docs/compaction.md +15 -0
  360. package/node_modules/@earendil-works/pi-coding-agent/docs/custom-provider.md +5 -2
  361. package/node_modules/@earendil-works/pi-coding-agent/docs/environment-variables.md +8 -8
  362. package/node_modules/@earendil-works/pi-coding-agent/docs/extensions.md +17 -7
  363. package/node_modules/@earendil-works/pi-coding-agent/docs/json.md +7 -2
  364. package/node_modules/@earendil-works/pi-coding-agent/docs/keybindings.md +8 -8
  365. package/node_modules/@earendil-works/pi-coding-agent/docs/llama-cpp.md +2 -0
  366. package/node_modules/@earendil-works/pi-coding-agent/docs/models.md +8 -2
  367. package/node_modules/@earendil-works/pi-coding-agent/docs/packages.md +2 -2
  368. package/node_modules/@earendil-works/pi-coding-agent/docs/rpc.md +9 -3
  369. package/node_modules/@earendil-works/pi-coding-agent/docs/sdk.md +7 -2
  370. package/node_modules/@earendil-works/pi-coding-agent/docs/settings.md +11 -3
  371. package/node_modules/@earendil-works/pi-coding-agent/docs/skills.md +4 -3
  372. package/node_modules/@earendil-works/pi-coding-agent/docs/terminal-setup.md +11 -9
  373. package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +6 -2
  374. package/node_modules/@earendil-works/pi-coding-agent/docs/windows.md +24 -2
  375. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/border-status-editor.ts +1 -1
  376. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  377. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +1 -1
  378. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  379. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/git-checkpoint.ts +2 -2
  380. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package-lock.json +2 -2
  381. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package.json +1 -1
  382. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/notify.ts +3 -1
  383. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package-lock.json +2 -2
  384. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +1 -1
  385. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/README.md +1 -1
  386. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/index.ts +6 -1
  387. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/titlebar-spinner.ts +1 -1
  388. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package-lock.json +2 -2
  389. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +1 -1
  390. package/node_modules/@earendil-works/pi-coding-agent/examples/rpc-extension-ui.ts +1 -1
  391. package/node_modules/@earendil-works/pi-coding-agent/examples/sdk/06-extensions.ts +1 -1
  392. package/node_modules/@earendil-works/pi-coding-agent/examples/sdk/README.md +1 -1
  393. package/node_modules/@earendil-works/pi-coding-agent/package.json +12 -14
  394. package/node_modules/@earendil-works/pi-protocol/package.json +1 -1
  395. package/node_modules/@earendil-works/pi-telemetry/package.json +2 -2
  396. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
  397. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +9 -4
  398. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
  399. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts +8 -2
  400. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +1 -1
  401. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js +24 -4
  402. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +1 -1
  403. package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts.map +1 -1
  404. package/node_modules/@earendil-works/pi-tui/dist/components/text.js +5 -4
  405. package/node_modules/@earendil-works/pi-tui/dist/components/text.js.map +1 -1
  406. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +2 -2
  407. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +1 -1
  408. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js +2 -2
  409. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
  410. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +1 -1
  411. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +2 -8
  412. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +1 -1
  413. package/node_modules/@earendil-works/pi-tui/dist/native-module-path.d.ts +7 -0
  414. package/node_modules/@earendil-works/pi-tui/dist/native-module-path.d.ts.map +1 -0
  415. package/node_modules/@earendil-works/pi-tui/dist/native-module-path.js +19 -0
  416. package/node_modules/@earendil-works/pi-tui/dist/native-module-path.js.map +1 -0
  417. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  418. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +4 -10
  419. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  420. package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts.map +1 -1
  421. package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js +5 -1
  422. package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js.map +1 -1
  423. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  424. package/node_modules/@types/node/README.md +1 -1
  425. package/node_modules/@types/node/buffer.buffer.d.ts +5 -5
  426. package/node_modules/@types/node/crypto.d.ts +2 -2
  427. package/node_modules/@types/node/http.d.ts +16 -0
  428. package/node_modules/@types/node/http2.d.ts +10 -2
  429. package/node_modules/@types/node/package.json +2 -2
  430. package/node_modules/@types/node/process.d.ts +52 -0
  431. package/node_modules/@types/node/quic.d.ts +210 -28
  432. package/node_modules/@types/node/sqlite.d.ts +6 -2
  433. package/node_modules/@types/node/test.d.ts +36 -0
  434. package/node_modules/brace-expansion/README.md +1 -2
  435. package/node_modules/brace-expansion/dist/commonjs/index.js +30 -4
  436. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  437. package/node_modules/brace-expansion/dist/esm/index.js +30 -4
  438. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  439. package/node_modules/brace-expansion/package.json +1 -1
  440. package/package.json +9 -9
  441. package/dist/prism-extensions/commands/voice-command.d.ts +0 -3
  442. package/dist/prism-extensions/commands/voice-command.js +0 -44
  443. package/dist/prism-extensions/commands/voice-command.js.map +0 -1
  444. package/dist/prism-extensions/core/voice-runtime.d.ts +0 -57
  445. package/dist/prism-extensions/core/voice-runtime.js +0 -313
  446. package/dist/prism-extensions/core/voice-runtime.js.map +0 -1
  447. package/dist/prism-extensions/core/voicebox-client.d.ts +0 -32
  448. package/dist/prism-extensions/core/voicebox-client.js +0 -194
  449. package/dist/prism-extensions/core/voicebox-client.js.map +0 -1
  450. package/dist/prism-extensions/core/voicebox-service.d.ts +0 -19
  451. package/dist/prism-extensions/core/voicebox-service.js +0 -122
  452. package/dist/prism-extensions/core/voicebox-service.js.map +0 -1
  453. package/dist/prism-extensions/integrations/honcho-memory.d.ts +0 -31
  454. package/dist/prism-extensions/integrations/honcho-memory.js +0 -281
  455. package/dist/prism-extensions/integrations/honcho-memory.js.map +0 -1
  456. package/node_modules/@opentelemetry/api/LICENSE +0 -201
  457. package/node_modules/@opentelemetry/api/README.md +0 -116
  458. package/node_modules/@opentelemetry/api/build/esm/api/context.d.ts +0 -41
  459. package/node_modules/@opentelemetry/api/build/esm/api/context.js +0 -110
  460. package/node_modules/@opentelemetry/api/build/esm/api/context.js.map +0 -1
  461. package/node_modules/@opentelemetry/api/build/esm/api/diag.d.ts +0 -30
  462. package/node_modules/@opentelemetry/api/build/esm/api/diag.js +0 -121
  463. package/node_modules/@opentelemetry/api/build/esm/api/diag.js.map +0 -1
  464. package/node_modules/@opentelemetry/api/build/esm/api/metrics.d.ts +0 -28
  465. package/node_modules/@opentelemetry/api/build/esm/api/metrics.js +0 -60
  466. package/node_modules/@opentelemetry/api/build/esm/api/metrics.js.map +0 -1
  467. package/node_modules/@opentelemetry/api/build/esm/api/propagation.d.ts +0 -49
  468. package/node_modules/@opentelemetry/api/build/esm/api/propagation.js +0 -89
  469. package/node_modules/@opentelemetry/api/build/esm/api/propagation.js.map +0 -1
  470. package/node_modules/@opentelemetry/api/build/esm/api/trace.d.ts +0 -40
  471. package/node_modules/@opentelemetry/api/build/esm/api/trace.js +0 -77
  472. package/node_modules/@opentelemetry/api/build/esm/api/trace.js.map +0 -1
  473. package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.d.ts +0 -29
  474. package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js +0 -56
  475. package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js.map +0 -1
  476. package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.d.ts +0 -12
  477. package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js +0 -98
  478. package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js.map +0 -1
  479. package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.d.ts +0 -5
  480. package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js +0 -20
  481. package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js.map +0 -1
  482. package/node_modules/@opentelemetry/api/build/esm/baggage/types.d.ts +0 -60
  483. package/node_modules/@opentelemetry/api/build/esm/baggage/types.js +0 -17
  484. package/node_modules/@opentelemetry/api/build/esm/baggage/types.js.map +0 -1
  485. package/node_modules/@opentelemetry/api/build/esm/baggage/utils.d.ts +0 -15
  486. package/node_modules/@opentelemetry/api/build/esm/baggage/utils.js +0 -47
  487. package/node_modules/@opentelemetry/api/build/esm/baggage/utils.js.map +0 -1
  488. package/node_modules/@opentelemetry/api/build/esm/common/Attributes.d.ts +0 -15
  489. package/node_modules/@opentelemetry/api/build/esm/common/Attributes.js +0 -17
  490. package/node_modules/@opentelemetry/api/build/esm/common/Attributes.js.map +0 -1
  491. package/node_modules/@opentelemetry/api/build/esm/common/Exception.d.ts +0 -26
  492. package/node_modules/@opentelemetry/api/build/esm/common/Exception.js +0 -17
  493. package/node_modules/@opentelemetry/api/build/esm/common/Exception.js.map +0 -1
  494. package/node_modules/@opentelemetry/api/build/esm/common/Time.d.ts +0 -20
  495. package/node_modules/@opentelemetry/api/build/esm/common/Time.js +0 -2
  496. package/node_modules/@opentelemetry/api/build/esm/common/Time.js.map +0 -1
  497. package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.d.ts +0 -9
  498. package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js +0 -67
  499. package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js.map +0 -1
  500. package/node_modules/@opentelemetry/api/build/esm/context/context.d.ts +0 -6
  501. package/node_modules/@opentelemetry/api/build/esm/context/context.js +0 -52
  502. package/node_modules/@opentelemetry/api/build/esm/context/context.js.map +0 -1
  503. package/node_modules/@opentelemetry/api/build/esm/context/types.d.ts +0 -52
  504. package/node_modules/@opentelemetry/api/build/esm/context/types.js +0 -17
  505. package/node_modules/@opentelemetry/api/build/esm/context/types.js.map +0 -1
  506. package/node_modules/@opentelemetry/api/build/esm/context-api.d.ts +0 -4
  507. package/node_modules/@opentelemetry/api/build/esm/context-api.js +0 -21
  508. package/node_modules/@opentelemetry/api/build/esm/context-api.js.map +0 -1
  509. package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.d.ts +0 -20
  510. package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js +0 -102
  511. package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js.map +0 -1
  512. package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.d.ts +0 -38
  513. package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js +0 -59
  514. package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js.map +0 -1
  515. package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.d.ts +0 -3
  516. package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js +0 -41
  517. package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js.map +0 -1
  518. package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.d.ts +0 -8
  519. package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js +0 -31
  520. package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js.map +0 -1
  521. package/node_modules/@opentelemetry/api/build/esm/diag/types.d.ts +0 -100
  522. package/node_modules/@opentelemetry/api/build/esm/diag/types.js +0 -41
  523. package/node_modules/@opentelemetry/api/build/esm/diag/types.js.map +0 -1
  524. package/node_modules/@opentelemetry/api/build/esm/diag-api.d.ts +0 -9
  525. package/node_modules/@opentelemetry/api/build/esm/diag-api.js +0 -26
  526. package/node_modules/@opentelemetry/api/build/esm/diag-api.js.map +0 -1
  527. package/node_modules/@opentelemetry/api/build/esm/experimental/index.d.ts +0 -3
  528. package/node_modules/@opentelemetry/api/build/esm/experimental/index.js +0 -17
  529. package/node_modules/@opentelemetry/api/build/esm/experimental/index.js.map +0 -1
  530. package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.d.ts +0 -13
  531. package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js +0 -17
  532. package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js.map +0 -1
  533. package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.d.ts +0 -64
  534. package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js +0 -92
  535. package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js.map +0 -1
  536. package/node_modules/@opentelemetry/api/build/esm/index.d.ts +0 -54
  537. package/node_modules/@opentelemetry/api/build/esm/index.js +0 -53
  538. package/node_modules/@opentelemetry/api/build/esm/index.js.map +0 -1
  539. package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.d.ts +0 -18
  540. package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js +0 -59
  541. package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js.map +0 -1
  542. package/node_modules/@opentelemetry/api/build/esm/internal/semver.d.ts +0 -34
  543. package/node_modules/@opentelemetry/api/build/esm/internal/semver.js +0 -118
  544. package/node_modules/@opentelemetry/api/build/esm/internal/semver.js.map +0 -1
  545. package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.d.ts +0 -110
  546. package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js +0 -17
  547. package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js.map +0 -1
  548. package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.d.ts +0 -17
  549. package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js +0 -17
  550. package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js.map +0 -1
  551. package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.d.ts +0 -115
  552. package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js +0 -22
  553. package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js.map +0 -1
  554. package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.d.ts +0 -82
  555. package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js +0 -181
  556. package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js.map +0 -1
  557. package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.d.ts +0 -11
  558. package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js +0 -31
  559. package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js.map +0 -1
  560. package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.d.ts +0 -31
  561. package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js +0 -17
  562. package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js.map +0 -1
  563. package/node_modules/@opentelemetry/api/build/esm/metrics-api.d.ts +0 -4
  564. package/node_modules/@opentelemetry/api/build/esm/metrics-api.js +0 -21
  565. package/node_modules/@opentelemetry/api/build/esm/metrics-api.js.map +0 -1
  566. package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.d.ts +0 -10
  567. package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js +0 -35
  568. package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js.map +0 -1
  569. package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.d.ts +0 -2
  570. package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js +0 -17
  571. package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js.map +0 -1
  572. package/node_modules/@opentelemetry/api/build/esm/platform/index.d.ts +0 -2
  573. package/node_modules/@opentelemetry/api/build/esm/platform/index.js +0 -17
  574. package/node_modules/@opentelemetry/api/build/esm/platform/index.js.map +0 -1
  575. package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.d.ts +0 -3
  576. package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js +0 -19
  577. package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js.map +0 -1
  578. package/node_modules/@opentelemetry/api/build/esm/platform/node/index.d.ts +0 -2
  579. package/node_modules/@opentelemetry/api/build/esm/platform/node/index.js +0 -17
  580. package/node_modules/@opentelemetry/api/build/esm/platform/node/index.js.map +0 -1
  581. package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.d.ts +0 -13
  582. package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js +0 -34
  583. package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js.map +0 -1
  584. package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.d.ts +0 -84
  585. package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js +0 -38
  586. package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js.map +0 -1
  587. package/node_modules/@opentelemetry/api/build/esm/propagation-api.d.ts +0 -4
  588. package/node_modules/@opentelemetry/api/build/esm/propagation-api.js +0 -21
  589. package/node_modules/@opentelemetry/api/build/esm/propagation-api.js.map +0 -1
  590. package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.d.ts +0 -28
  591. package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js +0 -68
  592. package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js.map +0 -1
  593. package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.d.ts +0 -14
  594. package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js +0 -76
  595. package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js.map +0 -1
  596. package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.d.ts +0 -13
  597. package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js +0 -32
  598. package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js.map +0 -1
  599. package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.d.ts +0 -27
  600. package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js +0 -53
  601. package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js.map +0 -1
  602. package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.d.ts +0 -25
  603. package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js +0 -54
  604. package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js.map +0 -1
  605. package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.d.ts +0 -31
  606. package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js +0 -17
  607. package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js.map +0 -1
  608. package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.d.ts +0 -49
  609. package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js +0 -39
  610. package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js.map +0 -1
  611. package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.d.ts +0 -23
  612. package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js +0 -17
  613. package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js.map +0 -1
  614. package/node_modules/@opentelemetry/api/build/esm/trace/attributes.d.ts +0 -10
  615. package/node_modules/@opentelemetry/api/build/esm/trace/attributes.js +0 -17
  616. package/node_modules/@opentelemetry/api/build/esm/trace/attributes.js.map +0 -1
  617. package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.d.ts +0 -41
  618. package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js +0 -73
  619. package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js.map +0 -1
  620. package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.d.ts +0 -22
  621. package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js +0 -102
  622. package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js.map +0 -1
  623. package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.d.ts +0 -15
  624. package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js +0 -41
  625. package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js.map +0 -1
  626. package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.d.ts +0 -3
  627. package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js +0 -20
  628. package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js.map +0 -1
  629. package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.d.ts +0 -5
  630. package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js +0 -24
  631. package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js.map +0 -1
  632. package/node_modules/@opentelemetry/api/build/esm/trace/link.d.ts +0 -26
  633. package/node_modules/@opentelemetry/api/build/esm/trace/link.js +0 -17
  634. package/node_modules/@opentelemetry/api/build/esm/trace/link.js.map +0 -1
  635. package/node_modules/@opentelemetry/api/build/esm/trace/span.d.ts +0 -120
  636. package/node_modules/@opentelemetry/api/build/esm/trace/span.js +0 -17
  637. package/node_modules/@opentelemetry/api/build/esm/trace/span.js.map +0 -1
  638. package/node_modules/@opentelemetry/api/build/esm/trace/span_context.d.ts +0 -53
  639. package/node_modules/@opentelemetry/api/build/esm/trace/span_context.js +0 -17
  640. package/node_modules/@opentelemetry/api/build/esm/trace/span_context.js.map +0 -1
  641. package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.d.ts +0 -27
  642. package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js +0 -43
  643. package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js.map +0 -1
  644. package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.d.ts +0 -17
  645. package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js +0 -42
  646. package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js.map +0 -1
  647. package/node_modules/@opentelemetry/api/build/esm/trace/status.d.ts +0 -25
  648. package/node_modules/@opentelemetry/api/build/esm/trace/status.js +0 -20
  649. package/node_modules/@opentelemetry/api/build/esm/trace/status.js.map +0 -1
  650. package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.d.ts +0 -7
  651. package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js +0 -23
  652. package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js.map +0 -1
  653. package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.d.ts +0 -38
  654. package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js +0 -17
  655. package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js.map +0 -1
  656. package/node_modules/@opentelemetry/api/build/esm/trace/tracer.d.ts +0 -71
  657. package/node_modules/@opentelemetry/api/build/esm/trace/tracer.js +0 -17
  658. package/node_modules/@opentelemetry/api/build/esm/trace/tracer.js.map +0 -1
  659. package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.d.ts +0 -10
  660. package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js +0 -17
  661. package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js.map +0 -1
  662. package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.d.ts +0 -21
  663. package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js +0 -17
  664. package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js.map +0 -1
  665. package/node_modules/@opentelemetry/api/build/esm/trace-api.d.ts +0 -4
  666. package/node_modules/@opentelemetry/api/build/esm/trace-api.js +0 -21
  667. package/node_modules/@opentelemetry/api/build/esm/trace-api.js.map +0 -1
  668. package/node_modules/@opentelemetry/api/build/esm/version.d.ts +0 -2
  669. package/node_modules/@opentelemetry/api/build/esm/version.js +0 -18
  670. package/node_modules/@opentelemetry/api/build/esm/version.js.map +0 -1
  671. package/node_modules/@opentelemetry/api/build/esnext/api/context.d.ts +0 -41
  672. package/node_modules/@opentelemetry/api/build/esnext/api/context.js +0 -77
  673. package/node_modules/@opentelemetry/api/build/esnext/api/context.js.map +0 -1
  674. package/node_modules/@opentelemetry/api/build/esnext/api/diag.d.ts +0 -30
  675. package/node_modules/@opentelemetry/api/build/esnext/api/diag.js +0 -89
  676. package/node_modules/@opentelemetry/api/build/esnext/api/diag.js.map +0 -1
  677. package/node_modules/@opentelemetry/api/build/esnext/api/metrics.d.ts +0 -28
  678. package/node_modules/@opentelemetry/api/build/esnext/api/metrics.js +0 -57
  679. package/node_modules/@opentelemetry/api/build/esnext/api/metrics.js.map +0 -1
  680. package/node_modules/@opentelemetry/api/build/esnext/api/propagation.d.ts +0 -49
  681. package/node_modules/@opentelemetry/api/build/esnext/api/propagation.js +0 -85
  682. package/node_modules/@opentelemetry/api/build/esnext/api/propagation.js.map +0 -1
  683. package/node_modules/@opentelemetry/api/build/esnext/api/trace.d.ts +0 -40
  684. package/node_modules/@opentelemetry/api/build/esnext/api/trace.js +0 -75
  685. package/node_modules/@opentelemetry/api/build/esnext/api/trace.js.map +0 -1
  686. package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.d.ts +0 -29
  687. package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js +0 -56
  688. package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js.map +0 -1
  689. package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.d.ts +0 -12
  690. package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js +0 -51
  691. package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js.map +0 -1
  692. package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.d.ts +0 -5
  693. package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js +0 -20
  694. package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js.map +0 -1
  695. package/node_modules/@opentelemetry/api/build/esnext/baggage/types.d.ts +0 -60
  696. package/node_modules/@opentelemetry/api/build/esnext/baggage/types.js +0 -17
  697. package/node_modules/@opentelemetry/api/build/esnext/baggage/types.js.map +0 -1
  698. package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.d.ts +0 -15
  699. package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js +0 -46
  700. package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js.map +0 -1
  701. package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.d.ts +0 -15
  702. package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js +0 -17
  703. package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js.map +0 -1
  704. package/node_modules/@opentelemetry/api/build/esnext/common/Exception.d.ts +0 -26
  705. package/node_modules/@opentelemetry/api/build/esnext/common/Exception.js +0 -17
  706. package/node_modules/@opentelemetry/api/build/esnext/common/Exception.js.map +0 -1
  707. package/node_modules/@opentelemetry/api/build/esnext/common/Time.d.ts +0 -20
  708. package/node_modules/@opentelemetry/api/build/esnext/common/Time.js +0 -2
  709. package/node_modules/@opentelemetry/api/build/esnext/common/Time.js.map +0 -1
  710. package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.d.ts +0 -9
  711. package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js +0 -34
  712. package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js.map +0 -1
  713. package/node_modules/@opentelemetry/api/build/esnext/context/context.d.ts +0 -6
  714. package/node_modules/@opentelemetry/api/build/esnext/context/context.js +0 -51
  715. package/node_modules/@opentelemetry/api/build/esnext/context/context.js.map +0 -1
  716. package/node_modules/@opentelemetry/api/build/esnext/context/types.d.ts +0 -52
  717. package/node_modules/@opentelemetry/api/build/esnext/context/types.js +0 -17
  718. package/node_modules/@opentelemetry/api/build/esnext/context/types.js.map +0 -1
  719. package/node_modules/@opentelemetry/api/build/esnext/context-api.d.ts +0 -4
  720. package/node_modules/@opentelemetry/api/build/esnext/context-api.js +0 -21
  721. package/node_modules/@opentelemetry/api/build/esnext/context-api.js.map +0 -1
  722. package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.d.ts +0 -20
  723. package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js +0 -55
  724. package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js.map +0 -1
  725. package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.d.ts +0 -38
  726. package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js +0 -53
  727. package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js.map +0 -1
  728. package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.d.ts +0 -3
  729. package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js +0 -41
  730. package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js.map +0 -1
  731. package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.d.ts +0 -8
  732. package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js +0 -31
  733. package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js.map +0 -1
  734. package/node_modules/@opentelemetry/api/build/esnext/diag/types.d.ts +0 -100
  735. package/node_modules/@opentelemetry/api/build/esnext/diag/types.js +0 -41
  736. package/node_modules/@opentelemetry/api/build/esnext/diag/types.js.map +0 -1
  737. package/node_modules/@opentelemetry/api/build/esnext/diag-api.d.ts +0 -9
  738. package/node_modules/@opentelemetry/api/build/esnext/diag-api.js +0 -26
  739. package/node_modules/@opentelemetry/api/build/esnext/diag-api.js.map +0 -1
  740. package/node_modules/@opentelemetry/api/build/esnext/experimental/index.d.ts +0 -3
  741. package/node_modules/@opentelemetry/api/build/esnext/experimental/index.js +0 -17
  742. package/node_modules/@opentelemetry/api/build/esnext/experimental/index.js.map +0 -1
  743. package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.d.ts +0 -13
  744. package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js +0 -17
  745. package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js.map +0 -1
  746. package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.d.ts +0 -64
  747. package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js +0 -88
  748. package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js.map +0 -1
  749. package/node_modules/@opentelemetry/api/build/esnext/index.d.ts +0 -54
  750. package/node_modules/@opentelemetry/api/build/esnext/index.js +0 -53
  751. package/node_modules/@opentelemetry/api/build/esnext/index.js.map +0 -1
  752. package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.d.ts +0 -18
  753. package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js +0 -58
  754. package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js.map +0 -1
  755. package/node_modules/@opentelemetry/api/build/esnext/internal/semver.d.ts +0 -34
  756. package/node_modules/@opentelemetry/api/build/esnext/internal/semver.js +0 -118
  757. package/node_modules/@opentelemetry/api/build/esnext/internal/semver.js.map +0 -1
  758. package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.d.ts +0 -110
  759. package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js +0 -17
  760. package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js.map +0 -1
  761. package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.d.ts +0 -17
  762. package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js +0 -17
  763. package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js.map +0 -1
  764. package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.d.ts +0 -115
  765. package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js +0 -22
  766. package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js.map +0 -1
  767. package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.d.ts +0 -82
  768. package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js +0 -113
  769. package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js.map +0 -1
  770. package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.d.ts +0 -11
  771. package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js +0 -27
  772. package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js.map +0 -1
  773. package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.d.ts +0 -31
  774. package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js +0 -17
  775. package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js.map +0 -1
  776. package/node_modules/@opentelemetry/api/build/esnext/metrics-api.d.ts +0 -4
  777. package/node_modules/@opentelemetry/api/build/esnext/metrics-api.js +0 -21
  778. package/node_modules/@opentelemetry/api/build/esnext/metrics-api.js.map +0 -1
  779. package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.d.ts +0 -10
  780. package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js +0 -35
  781. package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js.map +0 -1
  782. package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.d.ts +0 -2
  783. package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js +0 -17
  784. package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js.map +0 -1
  785. package/node_modules/@opentelemetry/api/build/esnext/platform/index.d.ts +0 -2
  786. package/node_modules/@opentelemetry/api/build/esnext/platform/index.js +0 -17
  787. package/node_modules/@opentelemetry/api/build/esnext/platform/index.js.map +0 -1
  788. package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.d.ts +0 -3
  789. package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js +0 -19
  790. package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js.map +0 -1
  791. package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.d.ts +0 -2
  792. package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js +0 -17
  793. package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js.map +0 -1
  794. package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.d.ts +0 -13
  795. package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js +0 -30
  796. package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js.map +0 -1
  797. package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.d.ts +0 -84
  798. package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js +0 -38
  799. package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js.map +0 -1
  800. package/node_modules/@opentelemetry/api/build/esnext/propagation-api.d.ts +0 -4
  801. package/node_modules/@opentelemetry/api/build/esnext/propagation-api.js +0 -21
  802. package/node_modules/@opentelemetry/api/build/esnext/propagation-api.js.map +0 -1
  803. package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.d.ts +0 -28
  804. package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js +0 -65
  805. package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js.map +0 -1
  806. package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.d.ts +0 -14
  807. package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js +0 -71
  808. package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js.map +0 -1
  809. package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.d.ts +0 -13
  810. package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js +0 -28
  811. package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js.map +0 -1
  812. package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.d.ts +0 -27
  813. package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js +0 -51
  814. package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js.map +0 -1
  815. package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.d.ts +0 -25
  816. package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js +0 -50
  817. package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js.map +0 -1
  818. package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.d.ts +0 -31
  819. package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js +0 -17
  820. package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js.map +0 -1
  821. package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.d.ts +0 -49
  822. package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js +0 -39
  823. package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js.map +0 -1
  824. package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.d.ts +0 -23
  825. package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js +0 -17
  826. package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js.map +0 -1
  827. package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.d.ts +0 -10
  828. package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js +0 -17
  829. package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js.map +0 -1
  830. package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.d.ts +0 -41
  831. package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js +0 -73
  832. package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js.map +0 -1
  833. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.d.ts +0 -22
  834. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js +0 -99
  835. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js.map +0 -1
  836. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.d.ts +0 -15
  837. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js +0 -41
  838. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js.map +0 -1
  839. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.d.ts +0 -3
  840. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js +0 -20
  841. package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js.map +0 -1
  842. package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.d.ts +0 -5
  843. package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js +0 -24
  844. package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js.map +0 -1
  845. package/node_modules/@opentelemetry/api/build/esnext/trace/link.d.ts +0 -26
  846. package/node_modules/@opentelemetry/api/build/esnext/trace/link.js +0 -17
  847. package/node_modules/@opentelemetry/api/build/esnext/trace/link.js.map +0 -1
  848. package/node_modules/@opentelemetry/api/build/esnext/trace/span.d.ts +0 -120
  849. package/node_modules/@opentelemetry/api/build/esnext/trace/span.js +0 -17
  850. package/node_modules/@opentelemetry/api/build/esnext/trace/span.js.map +0 -1
  851. package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.d.ts +0 -53
  852. package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js +0 -17
  853. package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js.map +0 -1
  854. package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.d.ts +0 -27
  855. package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js +0 -43
  856. package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js.map +0 -1
  857. package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.d.ts +0 -17
  858. package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js +0 -42
  859. package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js.map +0 -1
  860. package/node_modules/@opentelemetry/api/build/esnext/trace/status.d.ts +0 -25
  861. package/node_modules/@opentelemetry/api/build/esnext/trace/status.js +0 -20
  862. package/node_modules/@opentelemetry/api/build/esnext/trace/status.js.map +0 -1
  863. package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.d.ts +0 -7
  864. package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js +0 -23
  865. package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js.map +0 -1
  866. package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.d.ts +0 -38
  867. package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js +0 -17
  868. package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js.map +0 -1
  869. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.d.ts +0 -71
  870. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js +0 -17
  871. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js.map +0 -1
  872. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.d.ts +0 -10
  873. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js +0 -17
  874. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js.map +0 -1
  875. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.d.ts +0 -21
  876. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js +0 -17
  877. package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js.map +0 -1
  878. package/node_modules/@opentelemetry/api/build/esnext/trace-api.d.ts +0 -4
  879. package/node_modules/@opentelemetry/api/build/esnext/trace-api.js +0 -21
  880. package/node_modules/@opentelemetry/api/build/esnext/trace-api.js.map +0 -1
  881. package/node_modules/@opentelemetry/api/build/esnext/version.d.ts +0 -2
  882. package/node_modules/@opentelemetry/api/build/esnext/version.js +0 -18
  883. package/node_modules/@opentelemetry/api/build/esnext/version.js.map +0 -1
  884. package/node_modules/@opentelemetry/api/build/src/api/context.d.ts +0 -41
  885. package/node_modules/@opentelemetry/api/build/src/api/context.js +0 -81
  886. package/node_modules/@opentelemetry/api/build/src/api/context.js.map +0 -1
  887. package/node_modules/@opentelemetry/api/build/src/api/diag.d.ts +0 -30
  888. package/node_modules/@opentelemetry/api/build/src/api/diag.js +0 -93
  889. package/node_modules/@opentelemetry/api/build/src/api/diag.js.map +0 -1
  890. package/node_modules/@opentelemetry/api/build/src/api/metrics.d.ts +0 -28
  891. package/node_modules/@opentelemetry/api/build/src/api/metrics.js +0 -61
  892. package/node_modules/@opentelemetry/api/build/src/api/metrics.js.map +0 -1
  893. package/node_modules/@opentelemetry/api/build/src/api/propagation.d.ts +0 -49
  894. package/node_modules/@opentelemetry/api/build/src/api/propagation.js +0 -89
  895. package/node_modules/@opentelemetry/api/build/src/api/propagation.js.map +0 -1
  896. package/node_modules/@opentelemetry/api/build/src/api/trace.d.ts +0 -40
  897. package/node_modules/@opentelemetry/api/build/src/api/trace.js +0 -79
  898. package/node_modules/@opentelemetry/api/build/src/api/trace.js.map +0 -1
  899. package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.d.ts +0 -29
  900. package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js +0 -63
  901. package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js.map +0 -1
  902. package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.d.ts +0 -12
  903. package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js +0 -55
  904. package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js.map +0 -1
  905. package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.d.ts +0 -5
  906. package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js +0 -23
  907. package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js.map +0 -1
  908. package/node_modules/@opentelemetry/api/build/src/baggage/types.d.ts +0 -60
  909. package/node_modules/@opentelemetry/api/build/src/baggage/types.js +0 -18
  910. package/node_modules/@opentelemetry/api/build/src/baggage/types.js.map +0 -1
  911. package/node_modules/@opentelemetry/api/build/src/baggage/utils.d.ts +0 -15
  912. package/node_modules/@opentelemetry/api/build/src/baggage/utils.js +0 -51
  913. package/node_modules/@opentelemetry/api/build/src/baggage/utils.js.map +0 -1
  914. package/node_modules/@opentelemetry/api/build/src/common/Attributes.d.ts +0 -15
  915. package/node_modules/@opentelemetry/api/build/src/common/Attributes.js +0 -18
  916. package/node_modules/@opentelemetry/api/build/src/common/Attributes.js.map +0 -1
  917. package/node_modules/@opentelemetry/api/build/src/common/Exception.d.ts +0 -26
  918. package/node_modules/@opentelemetry/api/build/src/common/Exception.js +0 -18
  919. package/node_modules/@opentelemetry/api/build/src/common/Exception.js.map +0 -1
  920. package/node_modules/@opentelemetry/api/build/src/common/Time.d.ts +0 -20
  921. package/node_modules/@opentelemetry/api/build/src/common/Time.js +0 -3
  922. package/node_modules/@opentelemetry/api/build/src/common/Time.js.map +0 -1
  923. package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.d.ts +0 -9
  924. package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js +0 -38
  925. package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js.map +0 -1
  926. package/node_modules/@opentelemetry/api/build/src/context/context.d.ts +0 -6
  927. package/node_modules/@opentelemetry/api/build/src/context/context.js +0 -55
  928. package/node_modules/@opentelemetry/api/build/src/context/context.js.map +0 -1
  929. package/node_modules/@opentelemetry/api/build/src/context/types.d.ts +0 -52
  930. package/node_modules/@opentelemetry/api/build/src/context/types.js +0 -18
  931. package/node_modules/@opentelemetry/api/build/src/context/types.js.map +0 -1
  932. package/node_modules/@opentelemetry/api/build/src/context-api.d.ts +0 -4
  933. package/node_modules/@opentelemetry/api/build/src/context-api.js +0 -24
  934. package/node_modules/@opentelemetry/api/build/src/context-api.js.map +0 -1
  935. package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.d.ts +0 -20
  936. package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js +0 -59
  937. package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js.map +0 -1
  938. package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.d.ts +0 -38
  939. package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js +0 -57
  940. package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js.map +0 -1
  941. package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.d.ts +0 -3
  942. package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js +0 -45
  943. package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js.map +0 -1
  944. package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.d.ts +0 -8
  945. package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js +0 -35
  946. package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js.map +0 -1
  947. package/node_modules/@opentelemetry/api/build/src/diag/types.d.ts +0 -100
  948. package/node_modules/@opentelemetry/api/build/src/diag/types.js +0 -44
  949. package/node_modules/@opentelemetry/api/build/src/diag/types.js.map +0 -1
  950. package/node_modules/@opentelemetry/api/build/src/diag-api.d.ts +0 -9
  951. package/node_modules/@opentelemetry/api/build/src/diag-api.js +0 -29
  952. package/node_modules/@opentelemetry/api/build/src/diag-api.js.map +0 -1
  953. package/node_modules/@opentelemetry/api/build/src/experimental/index.d.ts +0 -3
  954. package/node_modules/@opentelemetry/api/build/src/experimental/index.js +0 -22
  955. package/node_modules/@opentelemetry/api/build/src/experimental/index.js.map +0 -1
  956. package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.d.ts +0 -13
  957. package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js +0 -18
  958. package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js.map +0 -1
  959. package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.d.ts +0 -64
  960. package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js +0 -93
  961. package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js.map +0 -1
  962. package/node_modules/@opentelemetry/api/build/src/index.d.ts +0 -54
  963. package/node_modules/@opentelemetry/api/build/src/index.js +0 -81
  964. package/node_modules/@opentelemetry/api/build/src/index.js.map +0 -1
  965. package/node_modules/@opentelemetry/api/build/src/internal/global-utils.d.ts +0 -18
  966. package/node_modules/@opentelemetry/api/build/src/internal/global-utils.js +0 -64
  967. package/node_modules/@opentelemetry/api/build/src/internal/global-utils.js.map +0 -1
  968. package/node_modules/@opentelemetry/api/build/src/internal/semver.d.ts +0 -34
  969. package/node_modules/@opentelemetry/api/build/src/internal/semver.js +0 -122
  970. package/node_modules/@opentelemetry/api/build/src/internal/semver.js.map +0 -1
  971. package/node_modules/@opentelemetry/api/build/src/metrics/Meter.d.ts +0 -110
  972. package/node_modules/@opentelemetry/api/build/src/metrics/Meter.js +0 -18
  973. package/node_modules/@opentelemetry/api/build/src/metrics/Meter.js.map +0 -1
  974. package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.d.ts +0 -17
  975. package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js +0 -18
  976. package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js.map +0 -1
  977. package/node_modules/@opentelemetry/api/build/src/metrics/Metric.d.ts +0 -115
  978. package/node_modules/@opentelemetry/api/build/src/metrics/Metric.js +0 -25
  979. package/node_modules/@opentelemetry/api/build/src/metrics/Metric.js.map +0 -1
  980. package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.d.ts +0 -82
  981. package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js +0 -127
  982. package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js.map +0 -1
  983. package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.d.ts +0 -11
  984. package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js +0 -31
  985. package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js.map +0 -1
  986. package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.d.ts +0 -31
  987. package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js +0 -18
  988. package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js.map +0 -1
  989. package/node_modules/@opentelemetry/api/build/src/metrics-api.d.ts +0 -4
  990. package/node_modules/@opentelemetry/api/build/src/metrics-api.js +0 -24
  991. package/node_modules/@opentelemetry/api/build/src/metrics-api.js.map +0 -1
  992. package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.d.ts +0 -10
  993. package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js +0 -38
  994. package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js.map +0 -1
  995. package/node_modules/@opentelemetry/api/build/src/platform/browser/index.d.ts +0 -2
  996. package/node_modules/@opentelemetry/api/build/src/platform/browser/index.js +0 -29
  997. package/node_modules/@opentelemetry/api/build/src/platform/browser/index.js.map +0 -1
  998. package/node_modules/@opentelemetry/api/build/src/platform/index.d.ts +0 -2
  999. package/node_modules/@opentelemetry/api/build/src/platform/index.js +0 -29
  1000. package/node_modules/@opentelemetry/api/build/src/platform/index.js.map +0 -1
  1001. package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.d.ts +0 -3
  1002. package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js +0 -22
  1003. package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js.map +0 -1
  1004. package/node_modules/@opentelemetry/api/build/src/platform/node/index.d.ts +0 -2
  1005. package/node_modules/@opentelemetry/api/build/src/platform/node/index.js +0 -29
  1006. package/node_modules/@opentelemetry/api/build/src/platform/node/index.js.map +0 -1
  1007. package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.d.ts +0 -13
  1008. package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js +0 -34
  1009. package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js.map +0 -1
  1010. package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.d.ts +0 -84
  1011. package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js +0 -41
  1012. package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js.map +0 -1
  1013. package/node_modules/@opentelemetry/api/build/src/propagation-api.d.ts +0 -4
  1014. package/node_modules/@opentelemetry/api/build/src/propagation-api.js +0 -24
  1015. package/node_modules/@opentelemetry/api/build/src/propagation-api.js.map +0 -1
  1016. package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.d.ts +0 -28
  1017. package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js +0 -69
  1018. package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js.map +0 -1
  1019. package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.d.ts +0 -14
  1020. package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js +0 -75
  1021. package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js.map +0 -1
  1022. package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.d.ts +0 -13
  1023. package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js +0 -32
  1024. package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js.map +0 -1
  1025. package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.d.ts +0 -27
  1026. package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js +0 -55
  1027. package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js.map +0 -1
  1028. package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.d.ts +0 -25
  1029. package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js +0 -54
  1030. package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js.map +0 -1
  1031. package/node_modules/@opentelemetry/api/build/src/trace/Sampler.d.ts +0 -31
  1032. package/node_modules/@opentelemetry/api/build/src/trace/Sampler.js +0 -18
  1033. package/node_modules/@opentelemetry/api/build/src/trace/Sampler.js.map +0 -1
  1034. package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.d.ts +0 -49
  1035. package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js +0 -42
  1036. package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js.map +0 -1
  1037. package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.d.ts +0 -23
  1038. package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js +0 -18
  1039. package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js.map +0 -1
  1040. package/node_modules/@opentelemetry/api/build/src/trace/attributes.d.ts +0 -10
  1041. package/node_modules/@opentelemetry/api/build/src/trace/attributes.js +0 -18
  1042. package/node_modules/@opentelemetry/api/build/src/trace/attributes.js.map +0 -1
  1043. package/node_modules/@opentelemetry/api/build/src/trace/context-utils.d.ts +0 -41
  1044. package/node_modules/@opentelemetry/api/build/src/trace/context-utils.js +0 -82
  1045. package/node_modules/@opentelemetry/api/build/src/trace/context-utils.js.map +0 -1
  1046. package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.d.ts +0 -22
  1047. package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js +0 -103
  1048. package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js.map +0 -1
  1049. package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.d.ts +0 -15
  1050. package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js +0 -46
  1051. package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js.map +0 -1
  1052. package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.d.ts +0 -3
  1053. package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js +0 -24
  1054. package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js.map +0 -1
  1055. package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.d.ts +0 -5
  1056. package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js +0 -27
  1057. package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js.map +0 -1
  1058. package/node_modules/@opentelemetry/api/build/src/trace/link.d.ts +0 -26
  1059. package/node_modules/@opentelemetry/api/build/src/trace/link.js +0 -18
  1060. package/node_modules/@opentelemetry/api/build/src/trace/link.js.map +0 -1
  1061. package/node_modules/@opentelemetry/api/build/src/trace/span.d.ts +0 -120
  1062. package/node_modules/@opentelemetry/api/build/src/trace/span.js +0 -18
  1063. package/node_modules/@opentelemetry/api/build/src/trace/span.js.map +0 -1
  1064. package/node_modules/@opentelemetry/api/build/src/trace/span_context.d.ts +0 -53
  1065. package/node_modules/@opentelemetry/api/build/src/trace/span_context.js +0 -18
  1066. package/node_modules/@opentelemetry/api/build/src/trace/span_context.js.map +0 -1
  1067. package/node_modules/@opentelemetry/api/build/src/trace/span_kind.d.ts +0 -27
  1068. package/node_modules/@opentelemetry/api/build/src/trace/span_kind.js +0 -46
  1069. package/node_modules/@opentelemetry/api/build/src/trace/span_kind.js.map +0 -1
  1070. package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.d.ts +0 -17
  1071. package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js +0 -49
  1072. package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js.map +0 -1
  1073. package/node_modules/@opentelemetry/api/build/src/trace/status.d.ts +0 -25
  1074. package/node_modules/@opentelemetry/api/build/src/trace/status.js +0 -23
  1075. package/node_modules/@opentelemetry/api/build/src/trace/status.js.map +0 -1
  1076. package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.d.ts +0 -7
  1077. package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js +0 -26
  1078. package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js.map +0 -1
  1079. package/node_modules/@opentelemetry/api/build/src/trace/trace_state.d.ts +0 -38
  1080. package/node_modules/@opentelemetry/api/build/src/trace/trace_state.js +0 -18
  1081. package/node_modules/@opentelemetry/api/build/src/trace/trace_state.js.map +0 -1
  1082. package/node_modules/@opentelemetry/api/build/src/trace/tracer.d.ts +0 -71
  1083. package/node_modules/@opentelemetry/api/build/src/trace/tracer.js +0 -18
  1084. package/node_modules/@opentelemetry/api/build/src/trace/tracer.js.map +0 -1
  1085. package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.d.ts +0 -10
  1086. package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js +0 -18
  1087. package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js.map +0 -1
  1088. package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.d.ts +0 -21
  1089. package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js +0 -18
  1090. package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js.map +0 -1
  1091. package/node_modules/@opentelemetry/api/build/src/trace-api.d.ts +0 -4
  1092. package/node_modules/@opentelemetry/api/build/src/trace-api.js +0 -24
  1093. package/node_modules/@opentelemetry/api/build/src/trace-api.js.map +0 -1
  1094. package/node_modules/@opentelemetry/api/build/src/version.d.ts +0 -2
  1095. package/node_modules/@opentelemetry/api/build/src/version.js +0 -21
  1096. package/node_modules/@opentelemetry/api/build/src/version.js.map +0 -1
  1097. package/node_modules/@opentelemetry/api/package.json +0 -113
  1098. package/node_modules/glob/LICENSE.md +0 -63
  1099. package/node_modules/glob/README.md +0 -1203
  1100. package/node_modules/glob/dist/commonjs/glob.d.ts +0 -396
  1101. package/node_modules/glob/dist/commonjs/glob.d.ts.map +0 -1
  1102. package/node_modules/glob/dist/commonjs/glob.js +0 -248
  1103. package/node_modules/glob/dist/commonjs/glob.js.map +0 -1
  1104. package/node_modules/glob/dist/commonjs/has-magic.d.ts +0 -14
  1105. package/node_modules/glob/dist/commonjs/has-magic.d.ts.map +0 -1
  1106. package/node_modules/glob/dist/commonjs/has-magic.js +0 -27
  1107. package/node_modules/glob/dist/commonjs/has-magic.js.map +0 -1
  1108. package/node_modules/glob/dist/commonjs/ignore.d.ts +0 -24
  1109. package/node_modules/glob/dist/commonjs/ignore.d.ts.map +0 -1
  1110. package/node_modules/glob/dist/commonjs/ignore.js +0 -119
  1111. package/node_modules/glob/dist/commonjs/ignore.js.map +0 -1
  1112. package/node_modules/glob/dist/commonjs/index.d.ts +0 -97
  1113. package/node_modules/glob/dist/commonjs/index.d.ts.map +0 -1
  1114. package/node_modules/glob/dist/commonjs/index.js +0 -68
  1115. package/node_modules/glob/dist/commonjs/index.js.map +0 -1
  1116. package/node_modules/glob/dist/commonjs/index.min.js +0 -4
  1117. package/node_modules/glob/dist/commonjs/index.min.js.map +0 -7
  1118. package/node_modules/glob/dist/commonjs/package.json +0 -3
  1119. package/node_modules/glob/dist/commonjs/pattern.d.ts +0 -79
  1120. package/node_modules/glob/dist/commonjs/pattern.d.ts.map +0 -1
  1121. package/node_modules/glob/dist/commonjs/pattern.js +0 -223
  1122. package/node_modules/glob/dist/commonjs/pattern.js.map +0 -1
  1123. package/node_modules/glob/dist/commonjs/processor.d.ts +0 -59
  1124. package/node_modules/glob/dist/commonjs/processor.d.ts.map +0 -1
  1125. package/node_modules/glob/dist/commonjs/processor.js +0 -301
  1126. package/node_modules/glob/dist/commonjs/processor.js.map +0 -1
  1127. package/node_modules/glob/dist/commonjs/walker.d.ts +0 -97
  1128. package/node_modules/glob/dist/commonjs/walker.d.ts.map +0 -1
  1129. package/node_modules/glob/dist/commonjs/walker.js +0 -387
  1130. package/node_modules/glob/dist/commonjs/walker.js.map +0 -1
  1131. package/node_modules/glob/dist/esm/glob.d.ts +0 -396
  1132. package/node_modules/glob/dist/esm/glob.d.ts.map +0 -1
  1133. package/node_modules/glob/dist/esm/glob.js +0 -244
  1134. package/node_modules/glob/dist/esm/glob.js.map +0 -1
  1135. package/node_modules/glob/dist/esm/has-magic.d.ts +0 -14
  1136. package/node_modules/glob/dist/esm/has-magic.d.ts.map +0 -1
  1137. package/node_modules/glob/dist/esm/has-magic.js +0 -23
  1138. package/node_modules/glob/dist/esm/has-magic.js.map +0 -1
  1139. package/node_modules/glob/dist/esm/ignore.d.ts +0 -24
  1140. package/node_modules/glob/dist/esm/ignore.d.ts.map +0 -1
  1141. package/node_modules/glob/dist/esm/ignore.js +0 -115
  1142. package/node_modules/glob/dist/esm/ignore.js.map +0 -1
  1143. package/node_modules/glob/dist/esm/index.d.ts +0 -97
  1144. package/node_modules/glob/dist/esm/index.d.ts.map +0 -1
  1145. package/node_modules/glob/dist/esm/index.js +0 -55
  1146. package/node_modules/glob/dist/esm/index.js.map +0 -1
  1147. package/node_modules/glob/dist/esm/index.min.js +0 -4
  1148. package/node_modules/glob/dist/esm/index.min.js.map +0 -7
  1149. package/node_modules/glob/dist/esm/package.json +0 -3
  1150. package/node_modules/glob/dist/esm/pattern.d.ts +0 -79
  1151. package/node_modules/glob/dist/esm/pattern.d.ts.map +0 -1
  1152. package/node_modules/glob/dist/esm/pattern.js +0 -219
  1153. package/node_modules/glob/dist/esm/pattern.js.map +0 -1
  1154. package/node_modules/glob/dist/esm/processor.d.ts +0 -59
  1155. package/node_modules/glob/dist/esm/processor.d.ts.map +0 -1
  1156. package/node_modules/glob/dist/esm/processor.js +0 -294
  1157. package/node_modules/glob/dist/esm/processor.js.map +0 -1
  1158. package/node_modules/glob/dist/esm/walker.d.ts +0 -97
  1159. package/node_modules/glob/dist/esm/walker.d.ts.map +0 -1
  1160. package/node_modules/glob/dist/esm/walker.js +0 -381
  1161. package/node_modules/glob/dist/esm/walker.js.map +0 -1
  1162. package/node_modules/glob/package.json +0 -98
  1163. package/node_modules/minipass/LICENSE.md +0 -55
  1164. package/node_modules/minipass/README.md +0 -825
  1165. package/node_modules/minipass/dist/commonjs/index.d.ts +0 -545
  1166. package/node_modules/minipass/dist/commonjs/index.d.ts.map +0 -1
  1167. package/node_modules/minipass/dist/commonjs/index.js +0 -1038
  1168. package/node_modules/minipass/dist/commonjs/index.js.map +0 -1
  1169. package/node_modules/minipass/dist/commonjs/package.json +0 -3
  1170. package/node_modules/minipass/dist/esm/index.d.ts +0 -545
  1171. package/node_modules/minipass/dist/esm/index.d.ts.map +0 -1
  1172. package/node_modules/minipass/dist/esm/index.js +0 -1020
  1173. package/node_modules/minipass/dist/esm/index.js.map +0 -1
  1174. package/node_modules/minipass/dist/esm/package.json +0 -3
  1175. package/node_modules/minipass/package.json +0 -77
  1176. package/node_modules/path-scurry/LICENSE.md +0 -55
  1177. package/node_modules/path-scurry/README.md +0 -636
  1178. package/node_modules/path-scurry/dist/commonjs/index.d.ts +0 -1115
  1179. package/node_modules/path-scurry/dist/commonjs/index.d.ts.map +0 -1
  1180. package/node_modules/path-scurry/dist/commonjs/index.js +0 -2018
  1181. package/node_modules/path-scurry/dist/commonjs/index.js.map +0 -1
  1182. package/node_modules/path-scurry/dist/commonjs/package.json +0 -3
  1183. package/node_modules/path-scurry/dist/esm/index.d.ts +0 -1115
  1184. package/node_modules/path-scurry/dist/esm/index.d.ts.map +0 -1
  1185. package/node_modules/path-scurry/dist/esm/index.js +0 -1983
  1186. package/node_modules/path-scurry/dist/esm/index.js.map +0 -1
  1187. package/node_modules/path-scurry/dist/esm/package.json +0 -3
  1188. package/node_modules/path-scurry/package.json +0 -72
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-messages.js","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"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","sourcesContent":["import Anthropic from \"@anthropic-ai/sdk\";\nimport type {\n\tCacheControlEphemeral,\n\tContentBlockParam,\n\tMessageCreateParamsStreaming,\n\tMessageParam,\n\tRawMessageStreamEvent,\n\tRefusalStopDetails,\n} from \"@anthropic-ai/sdk/resources/messages.js\";\nimport { calculateCost } from \"../models.ts\";\nimport type {\n\tAnthropicMessagesCompat,\n\tApi,\n\tAssistantMessage,\n\tCacheRetention,\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tProviderEnv,\n\tProviderHeaders,\n\tSimpleStreamOptions,\n\tStopReason,\n\tStreamFunction,\n\tStreamOptions,\n\tTextContent,\n\tThinkingContent,\n\tTool,\n\tToolCall,\n\tToolResultMessage,\n} from \"../types.ts\";\nimport { splitDeferredTools } from \"../utils/deferred-tools.ts\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.ts\";\nimport { headersToRecord } from \"../utils/headers.ts\";\nimport { parseJsonWithRepair, parseStreamingJson } from \"../utils/json-parse.ts\";\nimport { getPiUserAgent } from \"../utils/pi-user-agent.ts\";\nimport { getProviderEnvValue } from \"../utils/provider-env.ts\";\nimport { retryProviderRequest } from \"../utils/provider-retry.ts\";\nimport { sanitizeSurrogates } from \"../utils/sanitize-unicode.ts\";\n\nimport { getJsonSchemaToolParameters, resolveJsonSchemaStrictSampling } from \"./constrained-sampling.ts\";\nimport { buildCopilotDynamicHeaders, hasCopilotVisionInput } from \"./github-copilot-headers.ts\";\nimport { adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToContext } from \"./simple-options.ts\";\nimport { transformMessages } from \"./transform-messages.ts\";\n\n/**\n * Resolve cache retention preference.\n * Defaults to \"short\" and uses PI_CACHE_RETENTION for backward compatibility.\n */\nfunction resolveCacheRetention(cacheRetention?: CacheRetention, env?: ProviderEnv): CacheRetention {\n\tif (cacheRetention) {\n\t\treturn cacheRetention;\n\t}\n\tif (getProviderEnvValue(\"PI_CACHE_RETENTION\", env) === \"long\") {\n\t\treturn \"long\";\n\t}\n\treturn \"short\";\n}\n\nfunction getCacheControl(\n\tmodel: Model<\"anthropic-messages\">,\n\tcacheRetention?: CacheRetention,\n\tenv?: ProviderEnv,\n): { retention: CacheRetention; cacheControl?: CacheControlEphemeral } {\n\tconst retention = resolveCacheRetention(cacheRetention, env);\n\tif (retention === \"none\") {\n\t\treturn { retention };\n\t}\n\tconst ttl = retention === \"long\" && getAnthropicCompat(model).supportsLongCacheRetention ? \"1h\" : undefined;\n\treturn {\n\t\tretention,\n\t\tcacheControl: { type: \"ephemeral\", ...(ttl && { ttl }) },\n\t};\n}\n\n// Stealth mode: Mimic Claude Code's tool naming exactly\nconst claudeCodeVersion = \"2.1.75\";\n\n// Claude Code 2.x tool names (canonical casing)\n// Source: https://cchistory.mariozechner.at/data/prompts-2.1.11.md\n// To update: https://github.com/badlogic/cchistory\nconst claudeCodeTools = [\n\t\"Read\",\n\t\"Write\",\n\t\"Edit\",\n\t\"Bash\",\n\t\"Grep\",\n\t\"Glob\",\n\t\"AskUserQuestion\",\n\t\"EnterPlanMode\",\n\t\"ExitPlanMode\",\n\t\"KillShell\",\n\t\"NotebookEdit\",\n\t\"Skill\",\n\t\"Task\",\n\t\"TaskOutput\",\n\t\"TodoWrite\",\n\t\"WebFetch\",\n\t\"WebSearch\",\n];\n\nconst ccToolLookup = new Map(claudeCodeTools.map((t) => [t.toLowerCase(), t]));\n\n// Convert tool name to CC canonical casing if it matches (case-insensitive)\nconst toClaudeCodeName = (name: string) => ccToolLookup.get(name.toLowerCase()) ?? name;\nconst fromClaudeCodeName = (name: string, tools?: Tool[]) => {\n\tif (tools && tools.length > 0) {\n\t\tconst lowerName = name.toLowerCase();\n\t\tconst matchedTool = tools.find((tool) => tool.name.toLowerCase() === lowerName);\n\t\tif (matchedTool) return matchedTool.name;\n\t}\n\treturn name;\n};\n\n/**\n * Convert content blocks to Anthropic API format\n */\nfunction convertContentBlocks(content: (TextContent | ImageContent)[]):\n\t| string\n\t| Array<\n\t\t\t| { type: \"text\"; text: string }\n\t\t\t| {\n\t\t\t\t\ttype: \"image\";\n\t\t\t\t\tsource: {\n\t\t\t\t\t\ttype: \"base64\";\n\t\t\t\t\t\tmedia_type: \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\";\n\t\t\t\t\t\tdata: string;\n\t\t\t\t\t};\n\t\t\t }\n\t > {\n\t// If only text blocks, return as concatenated string for simplicity\n\tconst hasImages = content.some((c) => c.type === \"image\");\n\tif (!hasImages) {\n\t\treturn sanitizeSurrogates(content.map((c) => (c as TextContent).text).join(\"\\n\"));\n\t}\n\n\t// If we have images, convert to content block array\n\tconst blocks = content.map((block) => {\n\t\tif (block.type === \"text\") {\n\t\t\treturn {\n\t\t\t\ttype: \"text\" as const,\n\t\t\t\ttext: sanitizeSurrogates(block.text),\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\ttype: \"image\" as const,\n\t\t\tsource: {\n\t\t\t\ttype: \"base64\" as const,\n\t\t\t\tmedia_type: block.mimeType as \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\",\n\t\t\t\tdata: block.data,\n\t\t\t},\n\t\t};\n\t});\n\n\t// If only images (no text), add placeholder text block\n\tconst hasText = blocks.some((b) => b.type === \"text\");\n\tif (!hasText) {\n\t\tblocks.unshift({\n\t\t\ttype: \"text\" as const,\n\t\t\ttext: \"(see attached image)\",\n\t\t});\n\t}\n\n\treturn blocks;\n}\n\nexport type AnthropicEffort = \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\nexport type AnthropicThinkingDisplay = \"summarized\" | \"omitted\";\n\nconst FINE_GRAINED_TOOL_STREAMING_BETA = \"fine-grained-tool-streaming-2025-05-14\";\nconst INTERLEAVED_THINKING_BETA = \"interleaved-thinking-2025-05-14\";\n\nfunction getAnthropicCompat(\n\tmodel: Model<\"anthropic-messages\">,\n): Required<Omit<AnthropicMessagesCompat, \"forceAdaptiveThinking\">> {\n\treturn {\n\t\tsupportsEagerToolInputStreaming: model.compat?.supportsEagerToolInputStreaming ?? true,\n\t\tsupportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? true,\n\t\tsendSessionAffinityHeaders: model.compat?.sendSessionAffinityHeaders ?? false,\n\t\tsupportsCacheControlOnTools: model.compat?.supportsCacheControlOnTools ?? true,\n\t\tsupportsTemperature: model.compat?.supportsTemperature ?? true,\n\t\tallowEmptySignature: model.compat?.allowEmptySignature ?? false,\n\t\tsupportsStrictTools: model.compat?.supportsStrictTools ?? false,\n\t\tsupportsToolReferences: model.compat?.supportsToolReferences ?? defaultSupportsToolReferences(model),\n\t};\n}\n\n/**\n * Default for `supportsToolReferences`: first-party Anthropic models except\n * Haiku (rejects client-side tool_reference blocks) and models that predate\n * tool search (Claude 3.x, Opus/Sonnet 4.0, Opus 4.1).\n */\nfunction defaultSupportsToolReferences(model: Model<\"anthropic-messages\">): boolean {\n\tif (model.provider !== \"anthropic\" || model.id.includes(\"haiku\")) return false;\n\tconst version = model.id.match(/^claude-(?:opus|sonnet|fable)-(\\d+)(?:-(\\d+))?(?:-|$)/);\n\tif (!version) return false;\n\tconst major = Number(version[1]);\n\tconst minor = version[2] && version[2].length < 8 ? Number(version[2]) : 0;\n\treturn major > 4 || (major === 4 && minor >= 5);\n}\n\nexport interface AnthropicOptions extends StreamOptions {\n\t/**\n\t * Enable extended thinking.\n\t * For adaptive thinking models: the model decides when/how much to think.\n\t * For older models: uses budget-based thinking with thinkingBudgetTokens.\n\t * Default: undefined (thinking is omitted unless `streamSimple()` maps\n\t * a simple reasoning level to this option, or callers set it explicitly).\n\t */\n\tthinkingEnabled?: boolean;\n\t/**\n\t * Token budget for extended thinking (older models only).\n\t * Ignored for adaptive thinking models.\n\t * Default: 1024 when `thinkingEnabled` is true and no budget is provided.\n\t */\n\tthinkingBudgetTokens?: number;\n\t/**\n\t * Effort level for adaptive thinking models.\n\t * Controls how much thinking Claude allocates:\n\t * - \"max\": Always thinks with no constraints (Opus 4.6 only)\n\t * - \"xhigh\": Highest reasoning level (Opus 4.7+, Fable 5)\n\t * - \"high\": Always thinks, deep reasoning\n\t * - \"medium\": Moderate thinking, may skip for simple queries\n\t * - \"low\": Minimal thinking, skips for simple tasks\n\t * Ignored for older models.\n\t * Default: omitted unless `streamSimple()` maps a simple reasoning\n\t * level to this option.\n\t */\n\teffort?: AnthropicEffort;\n\t/**\n\t * Controls how thinking content is returned in API responses.\n\t * - \"summarized\": Thinking blocks contain summarized thinking text.\n\t * - \"omitted\": Thinking blocks return an empty thinking field; the encrypted\n\t * signature still travels back for multi-turn continuity. Use for faster\n\t * time-to-first-text-token when your UI does not surface thinking.\n\t *\n\t * Note: Anthropic's API default for Claude Opus 4.7 and Claude Mythos Preview\n\t * is \"omitted\". We default to \"summarized\" here to keep behavior consistent\n\t * with older Claude 4 models. Set this explicitly to \"omitted\" to opt in.\n\t * Default: \"summarized\" when thinking is enabled.\n\t */\n\tthinkingDisplay?: AnthropicThinkingDisplay;\n\t/**\n\t * Whether to request the interleaved thinking beta header for non-adaptive\n\t * thinking models. Adaptive thinking models have interleaved thinking built in,\n\t * so the header is skipped for them regardless of this setting.\n\t * Default: true.\n\t */\n\tinterleavedThinking?: boolean;\n\t/**\n\t * Anthropic tool choice behavior. String values map to Anthropic's built-in\n\t * choices; `{ type: \"tool\", name }` forces a specific tool.\n\t * Default: omitted (Anthropic default behavior, currently equivalent to auto).\n\t */\n\ttoolChoice?: \"auto\" | \"any\" | \"none\" | { type: \"tool\"; name: string };\n\t/**\n\t * Pre-built Anthropic client instance. When provided, skips internal client\n\t * construction entirely. Use this to inject alternative SDK clients such as\n\t * `AnthropicVertex` that shares the same messaging API.\n\t */\n\tclient?: Anthropic;\n}\n\nfunction mergeHeaders(...headerSources: (ProviderHeaders | undefined)[]): ProviderHeaders {\n\tconst merged: ProviderHeaders = {};\n\tfor (const headers of headerSources) {\n\t\tif (headers) {\n\t\t\tObject.assign(merged, headers);\n\t\t}\n\t}\n\treturn merged;\n}\n\nfunction mergeClientHeaders(\n\tmodel: Model<\"anthropic-messages\">,\n\t...headerSources: (ProviderHeaders | undefined)[]\n): ProviderHeaders {\n\tconst merged = mergeHeaders(...headerSources);\n\tif (model.provider === \"kimi-coding\") {\n\t\tfor (const name of Object.keys(merged)) {\n\t\t\tif (name.toLowerCase() === \"user-agent\") delete merged[name];\n\t\t}\n\t\tmerged[\"User-Agent\"] = getPiUserAgent();\n\t}\n\treturn merged;\n}\n\nfunction hasHeader(headers: ProviderHeaders | undefined, name: string): boolean {\n\tif (!headers) return false;\n\tconst expected = name.toLowerCase();\n\tfor (const [key, value] of Object.entries(headers)) {\n\t\tif (key.toLowerCase() === expected && value !== null && value.trim().length > 0) return true;\n\t}\n\treturn false;\n}\n\nfunction assertRequestAuth(provider: string, apiKey: string | undefined, headers: ProviderHeaders | undefined): void {\n\tif (apiKey) return;\n\tif (\n\t\thasHeader(headers, \"authorization\") ||\n\t\thasHeader(headers, \"x-api-key\") ||\n\t\thasHeader(headers, \"cf-aig-authorization\")\n\t) {\n\t\treturn;\n\t}\n\tthrow new Error(`No API key for provider: ${provider}`);\n}\n\ninterface ServerSentEvent {\n\tevent: string | null;\n\tdata: string;\n\traw: string[];\n}\n\ninterface SseDecoderState {\n\tevent: string | null;\n\tdata: string[];\n\traw: string[];\n}\n\nconst ANTHROPIC_MESSAGE_EVENTS: ReadonlySet<string> = new Set([\n\t\"message_start\",\n\t\"message_delta\",\n\t\"message_stop\",\n\t\"content_block_start\",\n\t\"content_block_delta\",\n\t\"content_block_stop\",\n]);\n\nfunction flushSseEvent(state: SseDecoderState): ServerSentEvent | null {\n\tif (!state.event && state.data.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst event: ServerSentEvent = {\n\t\tevent: state.event,\n\t\tdata: state.data.join(\"\\n\"),\n\t\traw: [...state.raw],\n\t};\n\tstate.event = null;\n\tstate.data = [];\n\tstate.raw = [];\n\treturn event;\n}\n\nfunction decodeSseLine(line: string, state: SseDecoderState): ServerSentEvent | null {\n\tif (line === \"\") {\n\t\treturn flushSseEvent(state);\n\t}\n\n\tstate.raw.push(line);\n\tif (line.startsWith(\":\")) {\n\t\treturn null;\n\t}\n\n\tconst delimiterIndex = line.indexOf(\":\");\n\tconst fieldName = delimiterIndex === -1 ? line : line.slice(0, delimiterIndex);\n\tlet value = delimiterIndex === -1 ? \"\" : line.slice(delimiterIndex + 1);\n\tif (value.startsWith(\" \")) {\n\t\tvalue = value.slice(1);\n\t}\n\n\tif (fieldName === \"event\") {\n\t\tstate.event = value;\n\t} else if (fieldName === \"data\") {\n\t\tstate.data.push(value);\n\t}\n\n\treturn null;\n}\n\nfunction nextLineBreakIndex(text: string): number {\n\tconst carriageReturnIndex = text.indexOf(\"\\r\");\n\tconst newlineIndex = text.indexOf(\"\\n\");\n\tif (carriageReturnIndex === -1) {\n\t\treturn newlineIndex;\n\t}\n\tif (newlineIndex === -1) {\n\t\treturn carriageReturnIndex;\n\t}\n\treturn Math.min(carriageReturnIndex, newlineIndex);\n}\n\nfunction consumeLine(text: string): { line: string; rest: string } | null {\n\tconst lineBreakIndex = nextLineBreakIndex(text);\n\tif (lineBreakIndex === -1) {\n\t\treturn null;\n\t}\n\n\tlet nextIndex = lineBreakIndex + 1;\n\tif (text[lineBreakIndex] === \"\\r\" && text[nextIndex] === \"\\n\") {\n\t\tnextIndex += 1;\n\t}\n\n\treturn {\n\t\tline: text.slice(0, lineBreakIndex),\n\t\trest: text.slice(nextIndex),\n\t};\n}\n\nasync function* iterateSseMessages(\n\tbody: ReadableStream<Uint8Array>,\n\tsignal?: AbortSignal,\n): AsyncGenerator<ServerSentEvent> {\n\tconst reader = body.getReader();\n\tconst decoder = new TextDecoder();\n\tconst state: SseDecoderState = { event: null, data: [], raw: [] };\n\tlet buffer = \"\";\n\n\ttry {\n\t\twhile (true) {\n\t\t\tif (signal?.aborted) {\n\t\t\t\tthrow new Error(\"Request was aborted\");\n\t\t\t}\n\n\t\t\tconst { value, done } = await reader.read();\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\tlet consumed = consumeLine(buffer);\n\t\t\twhile (consumed) {\n\t\t\t\tbuffer = consumed.rest;\n\t\t\t\tconst event = decodeSseLine(consumed.line, state);\n\t\t\t\tif (event) {\n\t\t\t\t\tyield event;\n\t\t\t\t}\n\t\t\t\tconsumed = consumeLine(buffer);\n\t\t\t}\n\t\t}\n\n\t\tbuffer += decoder.decode();\n\t\tlet consumed = consumeLine(buffer);\n\t\twhile (consumed) {\n\t\t\tbuffer = consumed.rest;\n\t\t\tconst event = decodeSseLine(consumed.line, state);\n\t\t\tif (event) {\n\t\t\t\tyield event;\n\t\t\t}\n\t\t\tconsumed = consumeLine(buffer);\n\t\t}\n\n\t\tif (buffer.length > 0) {\n\t\t\tconst event = decodeSseLine(buffer, state);\n\t\t\tif (event) {\n\t\t\t\tyield event;\n\t\t\t}\n\t\t}\n\n\t\tconst trailingEvent = flushSseEvent(state);\n\t\tif (trailingEvent) {\n\t\t\tyield trailingEvent;\n\t\t}\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\n\nasync function* iterateAnthropicEvents(\n\tresponse: Response,\n\tsignal?: AbortSignal,\n): AsyncGenerator<RawMessageStreamEvent> {\n\tif (!response.body) {\n\t\tthrow new Error(\"Attempted to iterate over an Anthropic response with no body\");\n\t}\n\n\tlet sawMessageStart = false;\n\tlet sawMessageEnd = false;\n\n\tfor await (const sse of iterateSseMessages(response.body, signal)) {\n\t\tif (sse.event === \"error\") {\n\t\t\tthrow new Error(sse.data);\n\t\t}\n\n\t\tif (!ANTHROPIC_MESSAGE_EVENTS.has(sse.event ?? \"\")) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\tconst event = parseJsonWithRepair<RawMessageStreamEvent>(sse.data);\n\t\t\tif (event.type === \"message_start\") {\n\t\t\t\tsawMessageStart = true;\n\t\t\t} else if (event.type === \"message_stop\") {\n\t\t\t\tsawMessageEnd = true;\n\t\t\t}\n\t\t\tyield event;\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(\n\t\t\t\t`Could not parse Anthropic SSE event ${sse.event}: ${message}; data=${sse.data}; raw=${sse.raw.join(\"\\\\n\")}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tif (sawMessageStart && !sawMessageEnd) {\n\t\tthrow new Error(\"Anthropic stream ended before message_stop\");\n\t}\n}\n\nexport const stream: StreamFunction<\"anthropic-messages\", AnthropicOptions> = (\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions?: AnthropicOptions,\n): AssistantMessageEventStream => {\n\tconst stream = new AssistantMessageEventStream();\n\n\t(async () => {\n\t\tconst output: AssistantMessage = {\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [],\n\t\t\tapi: model.api as Api,\n\t\t\tprovider: model.provider,\n\t\t\tmodel: model.id,\n\t\t\tusage: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotalTokens: 0,\n\t\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t\t},\n\t\t\tstopReason: \"pending\",\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\ttry {\n\t\t\tlet client: Anthropic;\n\t\t\tlet isOAuth: boolean;\n\n\t\t\tif (options?.client) {\n\t\t\t\tclient = options.client;\n\t\t\t\tisOAuth = false;\n\t\t\t} else {\n\t\t\t\tconst apiKey = options?.apiKey;\n\t\t\t\tassertRequestAuth(model.provider, apiKey, options?.headers);\n\n\t\t\t\tlet copilotDynamicHeaders: Record<string, string> | undefined;\n\t\t\t\tif (model.provider === \"github-copilot\") {\n\t\t\t\t\tconst hasImages = hasCopilotVisionInput(context.messages);\n\t\t\t\t\tcopilotDynamicHeaders = buildCopilotDynamicHeaders({\n\t\t\t\t\t\tmessages: context.messages,\n\t\t\t\t\t\thasImages,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst cacheRetention = resolveCacheRetention(options?.cacheRetention, options?.env);\n\t\t\t\tconst cacheSessionId = cacheRetention === \"none\" ? undefined : options?.sessionId;\n\n\t\t\t\tconst created = createClient(\n\t\t\t\t\tmodel,\n\t\t\t\t\tapiKey,\n\t\t\t\t\toptions?.interleavedThinking ?? true,\n\t\t\t\t\tshouldUseFineGrainedToolStreamingBeta(model, context),\n\t\t\t\t\toptions?.headers,\n\t\t\t\t\toptions?.fetch,\n\t\t\t\t\tcopilotDynamicHeaders,\n\t\t\t\t\tcacheSessionId,\n\t\t\t\t);\n\t\t\t\tclient = created.client;\n\t\t\t\tisOAuth = created.isOAuthToken;\n\t\t\t}\n\t\t\tlet params = buildParams(model, context, isOAuth, options);\n\t\t\tconst nextParams = await options?.onPayload?.(params, model);\n\t\t\tif (nextParams !== undefined) {\n\t\t\t\tparams = nextParams as MessageCreateParamsStreaming;\n\t\t\t}\n\t\t\tconst requestOptions = {\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\t...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),\n\t\t\t\tmaxRetries: 0,\n\t\t\t};\n\t\t\tconst response = await retryProviderRequest(\n\t\t\t\t() => client.messages.create({ ...params, stream: true }, requestOptions).asResponse(),\n\t\t\t\t{\n\t\t\t\t\tmaxRetries: options?.maxRetries,\n\t\t\t\t\tmaxRetryDelayMs: options?.maxRetryDelayMs,\n\t\t\t\t\tsignal: options?.signal,\n\t\t\t\t},\n\t\t\t);\n\t\t\tawait options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);\n\t\t\tstream.push({ type: \"start\", partial: output });\n\n\t\t\ttype Block = (ThinkingContent | TextContent | (ToolCall & { partialJson: string })) & { index: number };\n\t\t\tconst blocks = output.content as Block[];\n\n\t\t\tfor await (const event of iterateAnthropicEvents(response, options?.signal)) {\n\t\t\t\tif (event.type === \"message_start\") {\n\t\t\t\t\toutput.responseId = event.message.id;\n\t\t\t\t\t// Capture initial token usage from message_start event\n\t\t\t\t\t// This ensures we have input token counts even if the stream is aborted early\n\t\t\t\t\toutput.usage.input = event.message.usage.input_tokens || 0;\n\t\t\t\t\toutput.usage.output = event.message.usage.output_tokens || 0;\n\t\t\t\t\toutput.usage.cacheRead = event.message.usage.cache_read_input_tokens || 0;\n\t\t\t\t\toutput.usage.cacheWrite = event.message.usage.cache_creation_input_tokens || 0;\n\t\t\t\t\toutput.usage.cacheWrite1h = event.message.usage.cache_creation?.ephemeral_1h_input_tokens || 0;\n\t\t\t\t\t// Anthropic doesn't provide total_tokens, compute from components\n\t\t\t\t\toutput.usage.totalTokens =\n\t\t\t\t\t\toutput.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;\n\t\t\t\t\tcalculateCost(model, output.usage);\n\t\t\t\t} else if (event.type === \"content_block_start\") {\n\t\t\t\t\tif (event.content_block.type === \"text\") {\n\t\t\t\t\t\tconst block: Block = {\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: event.content_block.text ?? \"\",\n\t\t\t\t\t\t\tindex: event.index,\n\t\t\t\t\t\t};\n\t\t\t\t\t\toutput.content.push(block);\n\t\t\t\t\t\tstream.push({ type: \"text_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\t\t} else if (event.content_block.type === \"thinking\") {\n\t\t\t\t\t\tconst block: Block = {\n\t\t\t\t\t\t\ttype: \"thinking\",\n\t\t\t\t\t\t\tthinking: event.content_block.thinking ?? \"\",\n\t\t\t\t\t\t\tthinkingSignature: event.content_block.signature ?? \"\",\n\t\t\t\t\t\t\tindex: event.index,\n\t\t\t\t\t\t};\n\t\t\t\t\t\toutput.content.push(block);\n\t\t\t\t\t\tstream.push({ type: \"thinking_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\t\t} else if (event.content_block.type === \"redacted_thinking\") {\n\t\t\t\t\t\tconst block: Block = {\n\t\t\t\t\t\t\ttype: \"thinking\",\n\t\t\t\t\t\t\tthinking: \"[Reasoning redacted]\",\n\t\t\t\t\t\t\tthinkingSignature: event.content_block.data,\n\t\t\t\t\t\t\tredacted: true,\n\t\t\t\t\t\t\tindex: event.index,\n\t\t\t\t\t\t};\n\t\t\t\t\t\toutput.content.push(block);\n\t\t\t\t\t\tstream.push({ type: \"thinking_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\t\t} else if (event.content_block.type === \"tool_use\") {\n\t\t\t\t\t\tconst block: Block = {\n\t\t\t\t\t\t\ttype: \"toolCall\",\n\t\t\t\t\t\t\tid: event.content_block.id,\n\t\t\t\t\t\t\tname: isOAuth\n\t\t\t\t\t\t\t\t? fromClaudeCodeName(event.content_block.name, context.tools)\n\t\t\t\t\t\t\t\t: event.content_block.name,\n\t\t\t\t\t\t\targuments: (event.content_block.input as Record<string, any>) ?? {},\n\t\t\t\t\t\t\tpartialJson: \"\",\n\t\t\t\t\t\t\tindex: event.index,\n\t\t\t\t\t\t};\n\t\t\t\t\t\toutput.content.push(block);\n\t\t\t\t\t\tstream.push({ type: \"toolcall_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\t\t}\n\t\t\t\t} else if (event.type === \"content_block_delta\") {\n\t\t\t\t\tif (event.delta.type === \"text_delta\") {\n\t\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\t\tif (block && block.type === \"text\") {\n\t\t\t\t\t\t\tblock.text += event.delta.text;\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"text_delta\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tdelta: event.delta.text,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (event.delta.type === \"thinking_delta\") {\n\t\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\t\tif (block && block.type === \"thinking\") {\n\t\t\t\t\t\t\tblock.thinking += event.delta.thinking;\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"thinking_delta\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tdelta: event.delta.thinking,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (event.delta.type === \"input_json_delta\") {\n\t\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\t\tif (block && block.type === \"toolCall\") {\n\t\t\t\t\t\t\tblock.partialJson += event.delta.partial_json;\n\t\t\t\t\t\t\tblock.arguments = parseStreamingJson(block.partialJson);\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"toolcall_delta\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tdelta: event.delta.partial_json,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (event.delta.type === \"signature_delta\") {\n\t\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\t\tif (block && block.type === \"thinking\") {\n\t\t\t\t\t\t\tblock.thinkingSignature = block.thinkingSignature || \"\";\n\t\t\t\t\t\t\tblock.thinkingSignature += event.delta.signature;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (event.type === \"content_block_stop\") {\n\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\tif (block) {\n\t\t\t\t\t\tdelete (block as any).index;\n\t\t\t\t\t\tif (block.type === \"text\") {\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"text_end\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tcontent: block.text,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if (block.type === \"thinking\") {\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"thinking_end\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tcontent: block.thinking,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if (block.type === \"toolCall\") {\n\t\t\t\t\t\t\tblock.arguments = parseStreamingJson(block.partialJson);\n\t\t\t\t\t\t\t// Finalize in-place and strip the scratch buffer so replay only\n\t\t\t\t\t\t\t// carries parsed arguments.\n\t\t\t\t\t\t\tdelete (block as { partialJson?: string }).partialJson;\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"toolcall_end\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\ttoolCall: block,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (event.type === \"message_delta\") {\n\t\t\t\t\tif (event.delta.stop_reason) {\n\t\t\t\t\t\toutput.rawStopReason = event.delta.stop_reason;\n\t\t\t\t\t\tconst stopReasonResult = mapStopReason(event.delta.stop_reason, event.delta.stop_details);\n\t\t\t\t\t\toutput.stopReason = stopReasonResult.stopReason;\n\t\t\t\t\t\tif (stopReasonResult.errorMessage) {\n\t\t\t\t\t\t\toutput.errorMessage = stopReasonResult.errorMessage;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Only update usage fields if present (not null).\n\t\t\t\t\t// Preserves input_tokens from message_start when proxies omit it in message_delta.\n\t\t\t\t\tif (event.usage) {\n\t\t\t\t\t\tif (event.usage.input_tokens != null) {\n\t\t\t\t\t\t\toutput.usage.input = event.usage.input_tokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (event.usage.output_tokens != null) {\n\t\t\t\t\t\t\toutput.usage.output = event.usage.output_tokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (event.usage.cache_read_input_tokens != null) {\n\t\t\t\t\t\t\toutput.usage.cacheRead = event.usage.cache_read_input_tokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (event.usage.cache_creation_input_tokens != null) {\n\t\t\t\t\t\t\toutput.usage.cacheWrite = event.usage.cache_creation_input_tokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Anthropic reports reasoning tokens in `output_tokens_details.thinking_tokens` on the\n\t\t\t\t\t\t// final message_delta usage (a subset of output_tokens). SDK 0.91.1 omits the field from\n\t\t\t\t\t\t// its Usage type, so read it through a narrow cast. Verified against the live API.\n\t\t\t\t\t\tconst thinkingTokens = (event.usage as { output_tokens_details?: { thinking_tokens?: number } })\n\t\t\t\t\t\t\t.output_tokens_details?.thinking_tokens;\n\t\t\t\t\t\tif (thinkingTokens != null) {\n\t\t\t\t\t\t\toutput.usage.reasoning = thinkingTokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Anthropic doesn't provide total_tokens, compute from components\n\t\t\t\t\toutput.usage.totalTokens =\n\t\t\t\t\t\toutput.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;\n\t\t\t\t\tcalculateCost(model, output.usage);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options?.signal?.aborted) {\n\t\t\t\tthrow new Error(\"Request was aborted\");\n\t\t\t}\n\n\t\t\tif (output.stopReason === \"pending\") {\n\t\t\t\tthrow new Error(\"Anthropic stream ended without a stop reason\");\n\t\t\t}\n\t\t\tif (output.stopReason === \"aborted\" || output.stopReason === \"error\") {\n\t\t\t\tthrow new Error(output.errorMessage || \"An unknown error occurred\");\n\t\t\t}\n\n\t\t\tstream.push({ type: \"done\", reason: output.stopReason, message: output });\n\t\t\tstream.end();\n\t\t} catch (error) {\n\t\t\tfor (const block of output.content) {\n\t\t\t\tdelete (block as { index?: number }).index;\n\t\t\t\t// partialJson is only a streaming scratch buffer; never persist it.\n\t\t\t\tdelete (block as { partialJson?: string }).partialJson;\n\t\t\t}\n\t\t\toutput.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n\t\t\toutput.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);\n\t\t\tstream.push({ type: \"error\", reason: output.stopReason, error: output });\n\t\t\tstream.end();\n\t\t}\n\t})();\n\n\treturn stream;\n};\n\n/**\n * Map ThinkingLevel to Anthropic effort levels for adaptive thinking.\n * Note: effort \"max\" is available on all adaptive-thinking Claude models, while native\n * \"xhigh\" is only available on Opus 4.7/4.8, Sonnet 5, and Fable 5.\n */\nfunction mapThinkingLevelToEffort(\n\tmodel: Model<\"anthropic-messages\">,\n\tlevel: SimpleStreamOptions[\"reasoning\"],\n): AnthropicEffort {\n\tconst mapped = level ? model.thinkingLevelMap?.[level] : undefined;\n\tif (typeof mapped === \"string\") return mapped as AnthropicEffort;\n\n\tswitch (level) {\n\t\tcase \"minimal\":\n\t\tcase \"low\":\n\t\t\treturn \"low\";\n\t\tcase \"medium\":\n\t\t\treturn \"medium\";\n\t\tcase \"high\":\n\t\t\treturn \"high\";\n\t\tdefault:\n\t\t\treturn \"high\";\n\t}\n}\n\nexport const streamSimple: StreamFunction<\"anthropic-messages\", SimpleStreamOptions> = (\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream => {\n\tassertRequestAuth(model.provider, options?.apiKey, options?.headers);\n\n\tconst base = buildBaseOptions(model, context, options, options?.apiKey);\n\tif (!options?.reasoning) {\n\t\treturn stream(model, context, { ...base, thinkingEnabled: false } satisfies AnthropicOptions);\n\t}\n\n\t// For models with adaptive thinking: use an effort level.\n\t// For older models: use budget-based thinking.\n\tif (model.compat?.forceAdaptiveThinking === true) {\n\t\tconst effort = mapThinkingLevelToEffort(model, options.reasoning);\n\t\treturn stream(model, context, {\n\t\t\t...base,\n\t\t\tthinkingEnabled: true,\n\t\t\teffort,\n\t\t} satisfies AnthropicOptions);\n\t}\n\n\t// Undefined means the caller did not request an output cap; let the helper use the model cap.\n\t// Do not coerce to 0 here, or the thinking budget would become the entire max_tokens value.\n\tconst adjusted = adjustMaxTokensForThinking(\n\t\tbase.maxTokens,\n\t\tmodel.maxTokens,\n\t\toptions.reasoning,\n\t\toptions.thinkingBudgets,\n\t);\n\n\tconst maxTokens = clampMaxTokensToContext(model, context, adjusted.maxTokens);\n\n\treturn stream(model, context, {\n\t\t...base,\n\t\tmaxTokens,\n\t\tthinkingEnabled: true,\n\t\tthinkingBudgetTokens: Math.min(adjusted.thinkingBudget, Math.max(0, maxTokens - 1024)),\n\t} satisfies AnthropicOptions);\n};\n\nfunction isOAuthToken(apiKey: string): boolean {\n\treturn apiKey.includes(\"sk-ant-oat\");\n}\n\nfunction createClient(\n\tmodel: Model<\"anthropic-messages\">,\n\tapiKey: string | undefined,\n\tinterleavedThinking: boolean,\n\tuseFineGrainedToolStreamingBeta: boolean,\n\toptionsHeaders?: ProviderHeaders,\n\tfetch?: typeof globalThis.fetch,\n\tdynamicHeaders?: Record<string, string>,\n\tsessionId?: string,\n): { client: Anthropic; isOAuthToken: boolean } {\n\t// Adaptive thinking models have interleaved thinking built in, so skip the beta header.\n\tconst needsInterleavedBeta = interleavedThinking && model.compat?.forceAdaptiveThinking !== true;\n\tconst betaFeatures: string[] = [];\n\tif (useFineGrainedToolStreamingBeta) {\n\t\tbetaFeatures.push(FINE_GRAINED_TOOL_STREAMING_BETA);\n\t}\n\tif (needsInterleavedBeta) {\n\t\tbetaFeatures.push(INTERLEAVED_THINKING_BETA);\n\t}\n\n\t// Copilot: Bearer auth, selective betas.\n\tif (model.provider === \"github-copilot\") {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: apiKey ?? null,\n\t\t\tbaseURL: model.baseUrl,\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tfetch,\n\t\t\tdefaultHeaders: mergeClientHeaders(\n\t\t\t\tmodel,\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\tdynamicHeaders,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: false };\n\t}\n\n\t// OAuth: Bearer auth, Claude Code identity headers\n\tif (apiKey && isOAuthToken(apiKey)) {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: apiKey,\n\t\t\tbaseURL: model.baseUrl,\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tfetch,\n\t\t\tdefaultHeaders: mergeClientHeaders(\n\t\t\t\tmodel,\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t\"anthropic-beta\": [\"claude-code-20250219\", \"oauth-2025-04-20\", ...betaFeatures].join(\",\"),\n\t\t\t\t\t\"user-agent\": `claude-cli/${claudeCodeVersion}`,\n\t\t\t\t\t\"x-app\": \"cli\",\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: true };\n\t}\n\n\t// API key or header-owned auth.\n\tconst sessionAffinityHeaders: ProviderHeaders =\n\t\tsessionId && getAnthropicCompat(model).sendSessionAffinityHeaders ? { \"x-session-affinity\": sessionId } : {};\n\tconst defaultHeaders = mergeClientHeaders(\n\t\tmodel,\n\t\t{\n\t\t\taccept: \"application/json\",\n\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t},\n\t\tsessionAffinityHeaders,\n\t\tmodel.headers,\n\t\toptionsHeaders,\n\t);\n\tconst client = new Anthropic({\n\t\tapiKey: apiKey ?? null,\n\t\tauthToken: null,\n\t\tbaseURL: model.baseUrl,\n\t\tdangerouslyAllowBrowser: true,\n\t\tfetch,\n\t\tdefaultHeaders,\n\t});\n\n\treturn { client, isOAuthToken: false };\n}\n\nfunction buildParams(\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\tisOAuthToken: boolean,\n\toptions?: AnthropicOptions,\n): MessageCreateParamsStreaming {\n\tconst { cacheControl } = getCacheControl(model, options?.cacheRetention, options?.env);\n\tconst compat = getAnthropicCompat(model);\n\tconst transformedMessages = transformMessages(context.messages, model, normalizeToolCallId);\n\tconst normalizeToolName = isOAuthToken ? toClaudeCodeName : (name: string) => name;\n\tconst toolPlacement = splitDeferredTools(\n\t\t{ ...context, messages: transformedMessages },\n\t\tcompat.supportsToolReferences,\n\t\tnormalizeToolName,\n\t);\n\tlet immediateTools = toolPlacement.immediate;\n\tlet deferredTools = [...toolPlacement.deferred.values()];\n\tif (immediateTools.length === 0 && deferredTools.length > 0) {\n\t\timmediateTools = deferredTools;\n\t\tdeferredTools = [];\n\t}\n\tconst deferredToolNames = new Set(deferredTools.map((tool) => normalizeToolName(tool.name)));\n\tconst params: MessageCreateParamsStreaming = {\n\t\tmodel: model.id,\n\t\tmessages: convertMessages(\n\t\t\ttransformedMessages,\n\t\t\tisOAuthToken,\n\t\t\tcacheControl,\n\t\t\tcompat.allowEmptySignature,\n\t\t\tdeferredToolNames,\n\t\t\tnormalizeToolName,\n\t\t),\n\t\tmax_tokens: options?.maxTokens ?? model.maxTokens,\n\t\tstream: true,\n\t};\n\n\t// For OAuth tokens, we MUST include Claude Code identity\n\tif (isOAuthToken) {\n\t\tparams.system = [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: \"You are Claude Code, Anthropic's official CLI for Claude.\",\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t},\n\t\t];\n\t\tif (context.systemPrompt) {\n\t\t\tparams.system.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: sanitizeSurrogates(context.systemPrompt),\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t});\n\t\t}\n\t} else if (context.systemPrompt) {\n\t\t// Add cache control to system prompt for non-OAuth tokens\n\t\tparams.system = [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: sanitizeSurrogates(context.systemPrompt),\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t},\n\t\t];\n\t}\n\n\t// Temperature is incompatible with extended thinking and unsupported on Claude Opus 4.7+.\n\tif (options?.temperature !== undefined && !options?.thinkingEnabled && compat.supportsTemperature) {\n\t\tparams.temperature = options.temperature;\n\t}\n\n\tif (immediateTools.length > 0 || deferredTools.length > 0) {\n\t\tparams.tools = [\n\t\t\t...convertTools(\n\t\t\t\timmediateTools,\n\t\t\t\tisOAuthToken,\n\t\t\t\tcompat.supportsEagerToolInputStreaming,\n\t\t\t\tcompat.supportsStrictTools,\n\t\t\t\tcompat.supportsCacheControlOnTools ? cacheControl : undefined,\n\t\t\t),\n\t\t\t...convertTools(\n\t\t\t\tdeferredTools,\n\t\t\t\tisOAuthToken,\n\t\t\t\tcompat.supportsEagerToolInputStreaming,\n\t\t\t\tcompat.supportsStrictTools,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t];\n\t}\n\n\t// Configure thinking mode: adaptive, budget-based, or explicitly disabled.\n\tif (model.reasoning) {\n\t\tif (options?.thinkingEnabled) {\n\t\t\t// Default to \"summarized\" so Opus 4.7 and Mythos Preview behave like\n\t\t\t// older Claude 4 models (whose API default is also \"summarized\").\n\t\t\tconst display: AnthropicThinkingDisplay = options.thinkingDisplay ?? \"summarized\";\n\t\t\tif (model.compat?.forceAdaptiveThinking === true) {\n\t\t\t\t// Adaptive thinking: Claude decides when and how much to think.\n\t\t\t\tparams.thinking = { type: \"adaptive\", display };\n\t\t\t\tif (options.effort) {\n\t\t\t\t\t// The Anthropic SDK types can lag newly supported effort values such as \"xhigh\".\n\t\t\t\t\tparams.output_config =\n\t\t\t\t\t\toptions.effort === \"xhigh\"\n\t\t\t\t\t\t\t? ({ effort: options.effort } as unknown as NonNullable<\n\t\t\t\t\t\t\t\t\tMessageCreateParamsStreaming[\"output_config\"]\n\t\t\t\t\t\t\t\t>)\n\t\t\t\t\t\t\t: { effort: options.effort };\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Budget-based thinking for older models\n\t\t\t\tparams.thinking = {\n\t\t\t\t\ttype: \"enabled\",\n\t\t\t\t\tbudget_tokens: options.thinkingBudgetTokens || 1024,\n\t\t\t\t\tdisplay,\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (options?.thinkingEnabled === false && model.thinkingLevelMap?.off !== null) {\n\t\t\tparams.thinking = { type: \"disabled\" };\n\t\t}\n\t}\n\n\tif (options?.metadata) {\n\t\tconst userId = options.metadata.user_id;\n\t\tif (typeof userId === \"string\") {\n\t\t\tparams.metadata = { user_id: userId };\n\t\t}\n\t}\n\n\tif (options?.toolChoice) {\n\t\tif (typeof options.toolChoice === \"string\") {\n\t\t\tparams.tool_choice = { type: options.toolChoice };\n\t\t} else {\n\t\t\tparams.tool_choice = options.toolChoice;\n\t\t}\n\t}\n\n\treturn params;\n}\n\n// Normalize tool call IDs to match Anthropic's required pattern and length\nfunction normalizeToolCallId(id: string): string {\n\treturn id.replace(/[^a-zA-Z0-9_-]/g, \"_\").slice(0, 64);\n}\n\nfunction convertToolResult(\n\tmsg: ToolResultMessage,\n\tisOAuthToken: boolean,\n\tdeferredToolNames: ReadonlySet<string>,\n\tloadedToolNames: Set<string>,\n\tnormalizeToolName: (name: string) => string,\n): { toolResult: ContentBlockParam; siblingContent: ContentBlockParam[] } {\n\tconst references: Array<{ type: \"tool_reference\"; tool_name: string }> = [];\n\tfor (const name of msg.addedToolNames ?? []) {\n\t\tconst normalizedName = normalizeToolName(name);\n\t\tif (!deferredToolNames.has(normalizedName) || loadedToolNames.has(normalizedName)) continue;\n\t\tloadedToolNames.add(normalizedName);\n\t\treferences.push({\n\t\t\ttype: \"tool_reference\",\n\t\t\ttool_name: isOAuthToken ? toClaudeCodeName(name) : name,\n\t\t});\n\t}\n\tconst convertedContent = convertContentBlocks(msg.content);\n\t// Anthropic rejects tool references mixed with ordinary tool-result content.\n\treturn {\n\t\ttoolResult: {\n\t\t\ttype: \"tool_result\",\n\t\t\ttool_use_id: msg.toolCallId,\n\t\t\tcontent: references.length > 0 ? references : convertedContent,\n\t\t\tis_error: msg.isError,\n\t\t},\n\t\tsiblingContent:\n\t\t\treferences.length === 0\n\t\t\t\t? []\n\t\t\t\t: typeof convertedContent === \"string\"\n\t\t\t\t\t? [{ type: \"text\", text: convertedContent }]\n\t\t\t\t\t: convertedContent,\n\t};\n}\n\nfunction convertMessages(\n\ttransformedMessages: Message[],\n\tisOAuthToken: boolean,\n\tcacheControl?: CacheControlEphemeral,\n\tallowEmptySignature = false,\n\tdeferredToolNames: ReadonlySet<string> = new Set(),\n\tnormalizeToolName: (name: string) => string = (name) => name,\n): MessageParam[] {\n\tconst params: MessageParam[] = [];\n\tconst loadedToolNames = new Set<string>();\n\n\tfor (let i = 0; i < transformedMessages.length; i++) {\n\t\tconst msg = transformedMessages[i];\n\n\t\tif (msg.role === \"user\") {\n\t\t\tif (typeof msg.content === \"string\") {\n\t\t\t\tif (msg.content.trim().length > 0) {\n\t\t\t\t\tparams.push({\n\t\t\t\t\t\trole: \"user\",\n\t\t\t\t\t\tcontent: sanitizeSurrogates(msg.content),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst blocks: ContentBlockParam[] = msg.content.map((item) => {\n\t\t\t\t\tif (item.type === \"text\") {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: sanitizeSurrogates(item.text),\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"image\",\n\t\t\t\t\t\t\tsource: {\n\t\t\t\t\t\t\t\ttype: \"base64\",\n\t\t\t\t\t\t\t\tmedia_type: item.mimeType as \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\",\n\t\t\t\t\t\t\t\tdata: item.data,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tconst filteredBlocks = blocks.filter((b) => {\n\t\t\t\t\tif (b.type === \"text\") {\n\t\t\t\t\t\treturn b.text.trim().length > 0;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t\tif (filteredBlocks.length === 0) continue;\n\t\t\t\tparams.push({\n\t\t\t\t\trole: \"user\",\n\t\t\t\t\tcontent: filteredBlocks,\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (msg.role === \"assistant\") {\n\t\t\tconst blocks: ContentBlockParam[] = [];\n\n\t\t\tfor (const block of msg.content) {\n\t\t\t\tif (block.type === \"text\") {\n\t\t\t\t\tif (block.text.trim().length === 0) continue;\n\t\t\t\t\tblocks.push({\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: sanitizeSurrogates(block.text),\n\t\t\t\t\t});\n\t\t\t\t} else if (block.type === \"thinking\") {\n\t\t\t\t\t// Redacted thinking: pass the opaque payload back as redacted_thinking\n\t\t\t\t\tif (block.redacted) {\n\t\t\t\t\t\tblocks.push({\n\t\t\t\t\t\t\ttype: \"redacted_thinking\",\n\t\t\t\t\t\t\tdata: block.thinkingSignature!,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst thinkingSignature = block.thinkingSignature;\n\t\t\t\t\tconst hasThinkingSignature = !!thinkingSignature && thinkingSignature.trim().length > 0;\n\t\t\t\t\tif (block.thinking.trim().length === 0 && !hasThinkingSignature) continue;\n\t\t\t\t\t// If thinking signature is missing/empty (e.g., from aborted stream),\n\t\t\t\t\t// convert to plain text for Anthropic. Some compatible providers emit\n\t\t\t\t\t// and accept empty signatures, so let marked models preserve the block.\n\t\t\t\t\tif (!hasThinkingSignature) {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tallowEmptySignature\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\ttype: \"thinking\",\n\t\t\t\t\t\t\t\t\t\tthinking: sanitizeSurrogates(block.thinking),\n\t\t\t\t\t\t\t\t\t\tsignature: \"\",\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\t\ttext: sanitizeSurrogates(block.thinking),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tblocks.push({\n\t\t\t\t\t\t\ttype: \"thinking\",\n\t\t\t\t\t\t\tthinking: sanitizeSurrogates(block.thinking),\n\t\t\t\t\t\t\tsignature: thinkingSignature,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (block.type === \"toolCall\") {\n\t\t\t\t\tblocks.push({\n\t\t\t\t\t\ttype: \"tool_use\",\n\t\t\t\t\t\tid: block.id,\n\t\t\t\t\t\tname: isOAuthToken ? toClaudeCodeName(block.name) : block.name,\n\t\t\t\t\t\tinput: block.arguments ?? {},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (blocks.length === 0) continue;\n\t\t\tparams.push({\n\t\t\t\trole: \"assistant\",\n\t\t\t\tcontent: blocks,\n\t\t\t});\n\t\t} else if (msg.role === \"toolResult\") {\n\t\t\t// Collect all consecutive toolResult messages, needed for z.ai Anthropic endpoint.\n\t\t\tconst toolResults: ContentBlockParam[] = [];\n\t\t\tconst siblingContent: ContentBlockParam[] = [];\n\t\t\tlet j = i;\n\t\t\twhile (j < transformedMessages.length && transformedMessages[j].role === \"toolResult\") {\n\t\t\t\tconst converted = convertToolResult(\n\t\t\t\t\ttransformedMessages[j] as ToolResultMessage,\n\t\t\t\t\tisOAuthToken,\n\t\t\t\t\tdeferredToolNames,\n\t\t\t\t\tloadedToolNames,\n\t\t\t\t\tnormalizeToolName,\n\t\t\t\t);\n\t\t\t\ttoolResults.push(converted.toolResult);\n\t\t\t\tsiblingContent.push(...converted.siblingContent);\n\t\t\t\tj++;\n\t\t\t}\n\n\t\t\t// Skip the messages we've already processed.\n\t\t\ti = j - 1;\n\n\t\t\t// Displaced reference-bearing results must follow every tool_result block.\n\t\t\tparams.push({\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [...toolResults, ...siblingContent],\n\t\t\t});\n\t\t}\n\t}\n\n\t// Add cache_control to the last user message to cache conversation history\n\tif (cacheControl && params.length > 0) {\n\t\tconst lastMessage = params[params.length - 1];\n\t\tif (lastMessage.role === \"user\") {\n\t\t\tif (Array.isArray(lastMessage.content)) {\n\t\t\t\tconst lastBlock = lastMessage.content[lastMessage.content.length - 1];\n\t\t\t\tif (\n\t\t\t\t\tlastBlock &&\n\t\t\t\t\t(lastBlock.type === \"text\" || lastBlock.type === \"image\" || lastBlock.type === \"tool_result\")\n\t\t\t\t) {\n\t\t\t\t\t(lastBlock as any).cache_control = cacheControl;\n\t\t\t\t}\n\t\t\t} else if (typeof lastMessage.content === \"string\") {\n\t\t\t\tlastMessage.content = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: lastMessage.content,\n\t\t\t\t\t\tcache_control: cacheControl,\n\t\t\t\t\t},\n\t\t\t\t] as any;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn params;\n}\n\nfunction shouldUseFineGrainedToolStreamingBeta(model: Model<\"anthropic-messages\">, context: Context): boolean {\n\treturn !!context.tools?.length && !getAnthropicCompat(model).supportsEagerToolInputStreaming;\n}\n\nfunction convertTools(\n\ttools: Tool[],\n\tisOAuthToken: boolean,\n\tsupportsEagerToolInputStreaming: boolean,\n\tsupportsStrictTools: boolean,\n\tcacheControl?: CacheControlEphemeral,\n\tdeferLoading = false,\n): Anthropic.Messages.Tool[] {\n\tif (!tools) return [];\n\n\treturn tools.map((tool, index) => {\n\t\tconst strict = resolveJsonSchemaStrictSampling(tool, supportsStrictTools);\n\t\tconst parameters = getJsonSchemaToolParameters(tool, strict);\n\t\tconst schema = parameters as { properties?: unknown; required?: string[] };\n\t\tconst legacyInputSchema = {\n\t\t\ttype: \"object\" as const,\n\t\t\tproperties: schema.properties ?? {},\n\t\t\trequired: schema.required ?? [],\n\t\t};\n\t\tconst inputSchema =\n\t\t\tstrict === true\n\t\t\t\t? {\n\t\t\t\t\t\t...(parameters as Record<string, unknown>),\n\t\t\t\t\t\t...legacyInputSchema,\n\t\t\t\t\t}\n\t\t\t\t: legacyInputSchema;\n\n\t\treturn {\n\t\t\tname: isOAuthToken ? toClaudeCodeName(tool.name) : tool.name,\n\t\t\tdescription: tool.description,\n\t\t\t...(supportsEagerToolInputStreaming ? { eager_input_streaming: true } : {}),\n\t\t\t...(strict === true ? { strict: true } : {}),\n\t\t\tinput_schema: inputSchema,\n\t\t\t...(deferLoading ? { defer_loading: true } : {}),\n\t\t\t...(cacheControl && index === tools.length - 1 ? { cache_control: cacheControl } : {}),\n\t\t};\n\t});\n}\n\nfunction mapStopReason(\n\treason: Anthropic.Messages.StopReason | string,\n\tstopDetails?: RefusalStopDetails | null,\n): { stopReason: StopReason; errorMessage?: string } {\n\tswitch (reason) {\n\t\tcase \"end_turn\":\n\t\t\treturn { stopReason: \"stop\" };\n\t\tcase \"max_tokens\":\n\t\t\treturn { stopReason: \"length\" };\n\t\tcase \"tool_use\":\n\t\t\treturn { stopReason: \"toolUse\" };\n\t\tcase \"refusal\":\n\t\t\treturn {\n\t\t\t\tstopReason: \"error\",\n\t\t\t\terrorMessage: stopDetails?.explanation || `The model refused to complete the request`,\n\t\t\t};\n\t\tcase \"pause_turn\": // Stop is good enough -> resubmit\n\t\t\treturn { stopReason: \"stop\" };\n\t\tcase \"stop_sequence\":\n\t\t\treturn { stopReason: \"stop\" }; // We don't supply stop sequences, so this should never happen\n\t\tcase \"sensitive\": // Content flagged by safety filters (not yet in SDK types)\n\t\t\treturn { stopReason: \"error\", errorMessage: \"Provider stopped with: sensitive\" };\n\t\tdefault:\n\t\t\t// Handle unknown stop reasons gracefully (API may add new values)\n\t\t\tthrow new Error(`Unhandled stop reason: ${reason}`);\n\t}\n}\n"]}
1
+ {"version":3,"file":"anthropic-messages.js","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"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","sourcesContent":["import Anthropic from \"@anthropic-ai/sdk\";\nimport type {\n\tCacheControlEphemeral,\n\tContentBlockParam,\n\tMessageCreateParamsStreaming,\n\tMessageParam,\n\tRawMessageStreamEvent,\n\tRefusalStopDetails,\n} from \"@anthropic-ai/sdk/resources/messages.js\";\nimport { calculateCost } from \"../models.ts\";\nimport type {\n\tAnthropicMessagesCompat,\n\tApi,\n\tAssistantMessage,\n\tCacheRetention,\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tProviderEnv,\n\tProviderHeaders,\n\tSimpleStreamOptions,\n\tStopReason,\n\tStreamFunction,\n\tStreamOptions,\n\tTextContent,\n\tThinkingContent,\n\tTool,\n\tToolCall,\n\tToolResultMessage,\n} from \"../types.ts\";\nimport { splitDeferredTools } from \"../utils/deferred-tools.ts\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.ts\";\nimport { headersToRecord } from \"../utils/headers.ts\";\nimport { parseJsonWithRepair, parseStreamingJson } from \"../utils/json-parse.ts\";\nimport { getPiUserAgent } from \"../utils/pi-user-agent.ts\";\nimport { getProviderEnvValue } from \"../utils/provider-env.ts\";\nimport { retryProviderRequest } from \"../utils/provider-retry.ts\";\nimport { sanitizeSurrogates } from \"../utils/sanitize-unicode.ts\";\n\nimport { getJsonSchemaToolParameters, resolveJsonSchemaStrictSampling } from \"./constrained-sampling.ts\";\nimport { buildCopilotDynamicHeaders, hasCopilotVisionInput } from \"./github-copilot-headers.ts\";\nimport { adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToContext } from \"./simple-options.ts\";\nimport { transformMessages } from \"./transform-messages.ts\";\n\n/**\n * Resolve cache retention preference.\n * Defaults to \"short\" and uses PI_CACHE_RETENTION for backward compatibility.\n */\nfunction resolveCacheRetention(cacheRetention?: CacheRetention, env?: ProviderEnv): CacheRetention {\n\tif (cacheRetention) {\n\t\treturn cacheRetention;\n\t}\n\tif (getProviderEnvValue(\"PI_CACHE_RETENTION\", env) === \"long\") {\n\t\treturn \"long\";\n\t}\n\treturn \"short\";\n}\n\nfunction getCacheControl(\n\tmodel: Model<\"anthropic-messages\">,\n\tcacheRetention?: CacheRetention,\n\tenv?: ProviderEnv,\n): { retention: CacheRetention; cacheControl?: CacheControlEphemeral } {\n\tconst retention = resolveCacheRetention(cacheRetention, env);\n\tif (retention === \"none\") {\n\t\treturn { retention };\n\t}\n\tconst ttl = retention === \"long\" && getAnthropicCompat(model).supportsLongCacheRetention ? \"1h\" : undefined;\n\treturn {\n\t\tretention,\n\t\tcacheControl: { type: \"ephemeral\", ...(ttl && { ttl }) },\n\t};\n}\n\n// Stealth mode: Mimic Claude Code's tool naming exactly\nconst claudeCodeVersion = \"2.1.75\";\n\n// Claude Code 2.x tool names (canonical casing)\n// Source: https://cchistory.mariozechner.at/data/prompts-2.1.11.md\n// To update: https://github.com/badlogic/cchistory\nconst claudeCodeTools = [\n\t\"Read\",\n\t\"Write\",\n\t\"Edit\",\n\t\"Bash\",\n\t\"Grep\",\n\t\"Glob\",\n\t\"AskUserQuestion\",\n\t\"EnterPlanMode\",\n\t\"ExitPlanMode\",\n\t\"KillShell\",\n\t\"NotebookEdit\",\n\t\"Skill\",\n\t\"Task\",\n\t\"TaskOutput\",\n\t\"TodoWrite\",\n\t\"WebFetch\",\n\t\"WebSearch\",\n];\n\nconst ccToolLookup = new Map(claudeCodeTools.map((t) => [t.toLowerCase(), t]));\n\n// Convert tool name to CC canonical casing if it matches (case-insensitive)\nconst toClaudeCodeName = (name: string) => ccToolLookup.get(name.toLowerCase()) ?? name;\nconst fromClaudeCodeName = (name: string, tools?: Tool[]) => {\n\tif (tools && tools.length > 0) {\n\t\tconst lowerName = name.toLowerCase();\n\t\tconst matchedTool = tools.find((tool) => tool.name.toLowerCase() === lowerName);\n\t\tif (matchedTool) return matchedTool.name;\n\t}\n\treturn name;\n};\n\n/**\n * Convert content blocks to Anthropic API format\n */\nfunction convertContentBlocks(content: (TextContent | ImageContent)[]):\n\t| string\n\t| Array<\n\t\t\t| { type: \"text\"; text: string }\n\t\t\t| {\n\t\t\t\t\ttype: \"image\";\n\t\t\t\t\tsource: {\n\t\t\t\t\t\ttype: \"base64\";\n\t\t\t\t\t\tmedia_type: \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\";\n\t\t\t\t\t\tdata: string;\n\t\t\t\t\t};\n\t\t\t }\n\t > {\n\t// If only text blocks, return as concatenated string for simplicity\n\tconst hasImages = content.some((c) => c.type === \"image\");\n\tif (!hasImages) {\n\t\treturn sanitizeSurrogates(content.map((c) => (c as TextContent).text).join(\"\\n\"));\n\t}\n\n\t// If we have images, convert to content block array\n\tconst blocks = content.map((block) => {\n\t\tif (block.type === \"text\") {\n\t\t\treturn {\n\t\t\t\ttype: \"text\" as const,\n\t\t\t\ttext: sanitizeSurrogates(block.text),\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\ttype: \"image\" as const,\n\t\t\tsource: {\n\t\t\t\ttype: \"base64\" as const,\n\t\t\t\tmedia_type: block.mimeType as \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\",\n\t\t\t\tdata: block.data,\n\t\t\t},\n\t\t};\n\t});\n\n\t// If only images (no text), add placeholder text block\n\tconst hasText = blocks.some((b) => b.type === \"text\");\n\tif (!hasText) {\n\t\tblocks.unshift({\n\t\t\ttype: \"text\" as const,\n\t\t\ttext: \"(see attached image)\",\n\t\t});\n\t}\n\n\treturn blocks;\n}\n\nexport type AnthropicEffort = \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\nexport type AnthropicThinkingDisplay = \"summarized\" | \"omitted\";\n\ntype MessageCreateParamsStreamingWithFallbacks = MessageCreateParamsStreaming & {\n\tfallbacks?: readonly { model: string }[];\n};\n\nconst FINE_GRAINED_TOOL_STREAMING_BETA = \"fine-grained-tool-streaming-2025-05-14\";\nconst INTERLEAVED_THINKING_BETA = \"interleaved-thinking-2025-05-14\";\nconst SERVER_SIDE_FALLBACK_BETA = \"server-side-fallback-2026-07-01\";\n\nfunction shouldUseServerSideFallbackBeta(model: Model<\"anthropic-messages\">): boolean {\n\treturn (model.compat?.allowedFallbackModels?.length ?? 0) > 0;\n}\n\nfunction getAnthropicCompat(\n\tmodel: Model<\"anthropic-messages\">,\n): Required<Omit<AnthropicMessagesCompat, \"forceAdaptiveThinking\" | \"allowedFallbackModels\">> {\n\treturn {\n\t\tsupportsEagerToolInputStreaming: model.compat?.supportsEagerToolInputStreaming ?? true,\n\t\tsupportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? true,\n\t\tsendSessionAffinityHeaders: model.compat?.sendSessionAffinityHeaders ?? false,\n\t\tsupportsCacheControlOnTools: model.compat?.supportsCacheControlOnTools ?? true,\n\t\tsupportsTemperature: model.compat?.supportsTemperature ?? true,\n\t\tallowEmptySignature: model.compat?.allowEmptySignature ?? false,\n\t\tsupportsStrictTools: model.compat?.supportsStrictTools ?? false,\n\t\tsupportsToolReferences: model.compat?.supportsToolReferences ?? defaultSupportsToolReferences(model),\n\t};\n}\n\n/**\n * Default for `supportsToolReferences`: first-party Anthropic models except\n * Haiku (rejects client-side tool_reference blocks) and models that predate\n * tool search (Claude 3.x, Opus/Sonnet 4.0, Opus 4.1).\n */\nfunction defaultSupportsToolReferences(model: Model<\"anthropic-messages\">): boolean {\n\tif (model.provider !== \"anthropic\" || model.id.includes(\"haiku\")) return false;\n\tconst version = model.id.match(/^claude-(?:opus|sonnet|fable)-(\\d+)(?:-(\\d+))?(?:-|$)/);\n\tif (!version) return false;\n\tconst major = Number(version[1]);\n\tconst minor = version[2] && version[2].length < 8 ? Number(version[2]) : 0;\n\treturn major > 4 || (major === 4 && minor >= 5);\n}\n\nexport interface AnthropicOptions extends StreamOptions {\n\t/**\n\t * Enable extended thinking.\n\t * For adaptive thinking models: the model decides when/how much to think.\n\t * For older models: uses budget-based thinking with thinkingBudgetTokens.\n\t * Default: undefined (thinking is omitted unless `streamSimple()` maps\n\t * a simple reasoning level to this option, or callers set it explicitly).\n\t */\n\tthinkingEnabled?: boolean;\n\t/**\n\t * Token budget for extended thinking (older models only).\n\t * Ignored for adaptive thinking models.\n\t * Default: 1024 when `thinkingEnabled` is true and no budget is provided.\n\t */\n\tthinkingBudgetTokens?: number;\n\t/**\n\t * Effort level for adaptive thinking models.\n\t * Controls how much thinking Claude allocates:\n\t * - \"max\": Always thinks with no constraints (Opus 4.6 only)\n\t * - \"xhigh\": Highest reasoning level (Opus 4.7+, Fable 5)\n\t * - \"high\": Always thinks, deep reasoning\n\t * - \"medium\": Moderate thinking, may skip for simple queries\n\t * - \"low\": Minimal thinking, skips for simple tasks\n\t * Ignored for older models.\n\t * Default: omitted unless `streamSimple()` maps a simple reasoning\n\t * level to this option.\n\t */\n\teffort?: AnthropicEffort;\n\t/**\n\t * Controls how thinking content is returned in API responses.\n\t * - \"summarized\": Thinking blocks contain summarized thinking text.\n\t * - \"omitted\": Thinking blocks return an empty thinking field; the encrypted\n\t * signature still travels back for multi-turn continuity. Use for faster\n\t * time-to-first-text-token when your UI does not surface thinking.\n\t *\n\t * Note: Anthropic's API default for Claude Opus 4.7 and Claude Mythos Preview\n\t * is \"omitted\". We default to \"summarized\" here to keep behavior consistent\n\t * with older Claude 4 models. Set this explicitly to \"omitted\" to opt in.\n\t * Default: \"summarized\" when thinking is enabled.\n\t */\n\tthinkingDisplay?: AnthropicThinkingDisplay;\n\t/**\n\t * Whether to request the interleaved thinking beta header for non-adaptive\n\t * thinking models. Adaptive thinking models have interleaved thinking built in,\n\t * so the header is skipped for them regardless of this setting.\n\t * Default: true.\n\t */\n\tinterleavedThinking?: boolean;\n\t/**\n\t * Anthropic tool choice behavior. String values map to Anthropic's built-in\n\t * choices; `{ type: \"tool\", name }` forces a specific tool.\n\t * Default: omitted (Anthropic default behavior, currently equivalent to auto).\n\t */\n\ttoolChoice?: \"auto\" | \"any\" | \"none\" | { type: \"tool\"; name: string };\n\t/**\n\t * Pre-built Anthropic client instance. When provided, skips internal client\n\t * construction entirely. Use this to inject alternative SDK clients such as\n\t * `AnthropicVertex` that shares the same messaging API.\n\t */\n\tclient?: Anthropic;\n}\n\nfunction mergeHeaders(...headerSources: (ProviderHeaders | undefined)[]): ProviderHeaders {\n\tconst merged: ProviderHeaders = {};\n\tfor (const headers of headerSources) {\n\t\tif (headers) {\n\t\t\tObject.assign(merged, headers);\n\t\t}\n\t}\n\treturn merged;\n}\n\nfunction mergeClientHeaders(...headerSources: (ProviderHeaders | undefined)[]): ProviderHeaders {\n\treturn mergeHeaders({ \"User-Agent\": getPiUserAgent() }, ...headerSources);\n}\n\nfunction hasHeader(headers: ProviderHeaders | undefined, name: string): boolean {\n\tif (!headers) return false;\n\tconst expected = name.toLowerCase();\n\tfor (const [key, value] of Object.entries(headers)) {\n\t\tif (key.toLowerCase() === expected && value !== null && value.trim().length > 0) return true;\n\t}\n\treturn false;\n}\n\nfunction assertRequestAuth(provider: string, apiKey: string | undefined, headers: ProviderHeaders | undefined): void {\n\tif (apiKey) return;\n\tif (\n\t\thasHeader(headers, \"authorization\") ||\n\t\thasHeader(headers, \"x-api-key\") ||\n\t\thasHeader(headers, \"cf-aig-authorization\")\n\t) {\n\t\treturn;\n\t}\n\tthrow new Error(`No API key for provider: ${provider}`);\n}\n\ninterface ServerSentEvent {\n\tevent: string | null;\n\tdata: string;\n\traw: string[];\n}\n\ninterface SseDecoderState {\n\tevent: string | null;\n\tdata: string[];\n\traw: string[];\n}\n\nconst ANTHROPIC_MESSAGE_EVENTS: ReadonlySet<string> = new Set([\n\t\"message_start\",\n\t\"message_delta\",\n\t\"message_stop\",\n\t\"content_block_start\",\n\t\"content_block_delta\",\n\t\"content_block_stop\",\n]);\n\nfunction flushSseEvent(state: SseDecoderState): ServerSentEvent | null {\n\tif (!state.event && state.data.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst event: ServerSentEvent = {\n\t\tevent: state.event,\n\t\tdata: state.data.join(\"\\n\"),\n\t\traw: [...state.raw],\n\t};\n\tstate.event = null;\n\tstate.data = [];\n\tstate.raw = [];\n\treturn event;\n}\n\nfunction decodeSseLine(line: string, state: SseDecoderState): ServerSentEvent | null {\n\tif (line === \"\") {\n\t\treturn flushSseEvent(state);\n\t}\n\n\tstate.raw.push(line);\n\tif (line.startsWith(\":\")) {\n\t\treturn null;\n\t}\n\n\tconst delimiterIndex = line.indexOf(\":\");\n\tconst fieldName = delimiterIndex === -1 ? line : line.slice(0, delimiterIndex);\n\tlet value = delimiterIndex === -1 ? \"\" : line.slice(delimiterIndex + 1);\n\tif (value.startsWith(\" \")) {\n\t\tvalue = value.slice(1);\n\t}\n\n\tif (fieldName === \"event\") {\n\t\tstate.event = value;\n\t} else if (fieldName === \"data\") {\n\t\tstate.data.push(value);\n\t}\n\n\treturn null;\n}\n\nfunction nextLineBreakIndex(text: string): number {\n\tconst carriageReturnIndex = text.indexOf(\"\\r\");\n\tconst newlineIndex = text.indexOf(\"\\n\");\n\tif (carriageReturnIndex === -1) {\n\t\treturn newlineIndex;\n\t}\n\tif (newlineIndex === -1) {\n\t\treturn carriageReturnIndex;\n\t}\n\treturn Math.min(carriageReturnIndex, newlineIndex);\n}\n\nfunction consumeLine(text: string): { line: string; rest: string } | null {\n\tconst lineBreakIndex = nextLineBreakIndex(text);\n\tif (lineBreakIndex === -1) {\n\t\treturn null;\n\t}\n\n\tlet nextIndex = lineBreakIndex + 1;\n\tif (text[lineBreakIndex] === \"\\r\" && text[nextIndex] === \"\\n\") {\n\t\tnextIndex += 1;\n\t}\n\n\treturn {\n\t\tline: text.slice(0, lineBreakIndex),\n\t\trest: text.slice(nextIndex),\n\t};\n}\n\nasync function* iterateSseMessages(\n\tbody: ReadableStream<Uint8Array>,\n\tsignal?: AbortSignal,\n): AsyncGenerator<ServerSentEvent> {\n\tconst reader = body.getReader();\n\tconst decoder = new TextDecoder();\n\tconst state: SseDecoderState = { event: null, data: [], raw: [] };\n\tlet buffer = \"\";\n\n\ttry {\n\t\twhile (true) {\n\t\t\tif (signal?.aborted) {\n\t\t\t\tthrow new Error(\"Request was aborted\");\n\t\t\t}\n\n\t\t\tconst { value, done } = await reader.read();\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\tlet consumed = consumeLine(buffer);\n\t\t\twhile (consumed) {\n\t\t\t\tbuffer = consumed.rest;\n\t\t\t\tconst event = decodeSseLine(consumed.line, state);\n\t\t\t\tif (event) {\n\t\t\t\t\tyield event;\n\t\t\t\t}\n\t\t\t\tconsumed = consumeLine(buffer);\n\t\t\t}\n\t\t}\n\n\t\tbuffer += decoder.decode();\n\t\tlet consumed = consumeLine(buffer);\n\t\twhile (consumed) {\n\t\t\tbuffer = consumed.rest;\n\t\t\tconst event = decodeSseLine(consumed.line, state);\n\t\t\tif (event) {\n\t\t\t\tyield event;\n\t\t\t}\n\t\t\tconsumed = consumeLine(buffer);\n\t\t}\n\n\t\tif (buffer.length > 0) {\n\t\t\tconst event = decodeSseLine(buffer, state);\n\t\t\tif (event) {\n\t\t\t\tyield event;\n\t\t\t}\n\t\t}\n\n\t\tconst trailingEvent = flushSseEvent(state);\n\t\tif (trailingEvent) {\n\t\t\tyield trailingEvent;\n\t\t}\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\n\nasync function* iterateAnthropicEvents(\n\tresponse: Response,\n\tsignal?: AbortSignal,\n): AsyncGenerator<RawMessageStreamEvent> {\n\tif (!response.body) {\n\t\tthrow new Error(\"Attempted to iterate over an Anthropic response with no body\");\n\t}\n\n\tlet sawMessageStart = false;\n\tlet sawMessageEnd = false;\n\n\tfor await (const sse of iterateSseMessages(response.body, signal)) {\n\t\tif (sse.event === \"error\") {\n\t\t\tthrow new Error(sse.data);\n\t\t}\n\n\t\tif (!ANTHROPIC_MESSAGE_EVENTS.has(sse.event ?? \"\")) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\tconst event = parseJsonWithRepair<RawMessageStreamEvent>(sse.data);\n\t\t\tif (event.type === \"message_start\") {\n\t\t\t\tsawMessageStart = true;\n\t\t\t} else if (event.type === \"message_stop\") {\n\t\t\t\tsawMessageEnd = true;\n\t\t\t}\n\t\t\tyield event;\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(\n\t\t\t\t`Could not parse Anthropic SSE event ${sse.event}: ${message}; data=${sse.data}; raw=${sse.raw.join(\"\\\\n\")}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tif (sawMessageStart && !sawMessageEnd) {\n\t\tthrow new Error(\"Anthropic stream ended before message_stop\");\n\t}\n}\n\nexport const stream: StreamFunction<\"anthropic-messages\", AnthropicOptions> = (\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions?: AnthropicOptions,\n): AssistantMessageEventStream => {\n\tconst stream = new AssistantMessageEventStream();\n\n\t(async () => {\n\t\tconst output: AssistantMessage = {\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [],\n\t\t\tapi: model.api as Api,\n\t\t\tprovider: model.provider,\n\t\t\tmodel: model.id,\n\t\t\tusage: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotalTokens: 0,\n\t\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t\t},\n\t\t\tstopReason: \"pending\",\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\ttry {\n\t\t\tlet client: Anthropic;\n\t\t\tlet isOAuth: boolean;\n\t\t\tlet usageModel = model;\n\n\t\t\tif (options?.client) {\n\t\t\t\tclient = options.client;\n\t\t\t\tisOAuth = false;\n\t\t\t} else {\n\t\t\t\tconst apiKey = options?.apiKey;\n\t\t\t\tassertRequestAuth(model.provider, apiKey, options?.headers);\n\n\t\t\t\tlet copilotDynamicHeaders: Record<string, string> | undefined;\n\t\t\t\tif (model.provider === \"github-copilot\") {\n\t\t\t\t\tconst hasImages = hasCopilotVisionInput(context.messages);\n\t\t\t\t\tcopilotDynamicHeaders = buildCopilotDynamicHeaders({\n\t\t\t\t\t\tmessages: context.messages,\n\t\t\t\t\t\thasImages,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst cacheRetention = resolveCacheRetention(options?.cacheRetention, options?.env);\n\t\t\t\tconst cacheSessionId = cacheRetention === \"none\" ? undefined : options?.sessionId;\n\n\t\t\t\tconst created = createClient(\n\t\t\t\t\tmodel,\n\t\t\t\t\tapiKey,\n\t\t\t\t\toptions?.interleavedThinking ?? true,\n\t\t\t\t\tshouldUseFineGrainedToolStreamingBeta(model, context),\n\t\t\t\t\tshouldUseServerSideFallbackBeta(model),\n\t\t\t\t\toptions?.headers,\n\t\t\t\t\toptions?.fetch,\n\t\t\t\t\tcopilotDynamicHeaders,\n\t\t\t\t\tcacheSessionId,\n\t\t\t\t);\n\t\t\t\tclient = created.client;\n\t\t\t\tisOAuth = created.isOAuthToken;\n\t\t\t}\n\t\t\tlet params = buildParams(model, context, isOAuth, options);\n\t\t\tconst nextParams = await options?.onPayload?.(params, model);\n\t\t\tif (nextParams !== undefined) {\n\t\t\t\tparams = nextParams as MessageCreateParamsStreaming;\n\t\t\t}\n\t\t\tconst requestOptions = {\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\t...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),\n\t\t\t\tmaxRetries: 0,\n\t\t\t};\n\t\t\tconst response = await retryProviderRequest(\n\t\t\t\t() => client.messages.create({ ...params, stream: true }, requestOptions).asResponse(),\n\t\t\t\t{\n\t\t\t\t\tmaxRetries: options?.maxRetries,\n\t\t\t\t\tmaxRetryDelayMs: options?.maxRetryDelayMs,\n\t\t\t\t\tsignal: options?.signal,\n\t\t\t\t},\n\t\t\t);\n\t\t\tawait options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);\n\t\t\tstream.push({ type: \"start\", partial: output });\n\n\t\t\ttype Block = (ThinkingContent | TextContent | (ToolCall & { partialJson: string })) & { index: number };\n\t\t\tconst blocks = output.content as Block[];\n\n\t\t\tfor await (const event of iterateAnthropicEvents(response, options?.signal)) {\n\t\t\t\tif (event.type === \"message_start\") {\n\t\t\t\t\toutput.responseId = event.message.id;\n\t\t\t\t\toutput.model = event.message.model;\n\t\t\t\t\tconst fallbackCost =\n\t\t\t\t\t\toutput.model === model.id\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: model.compat?.allowedFallbackModels?.find(\n\t\t\t\t\t\t\t\t\t(fallback) => fallback.provider === model.provider && fallback.model === output.model,\n\t\t\t\t\t\t\t\t)?.cost;\n\t\t\t\t\tusageModel = fallbackCost ? { ...model, id: output.model, cost: fallbackCost } : model;\n\t\t\t\t\t// Capture initial token usage from message_start event\n\t\t\t\t\t// This ensures we have input token counts even if the stream is aborted early\n\t\t\t\t\toutput.usage.input = event.message.usage.input_tokens || 0;\n\t\t\t\t\toutput.usage.output = event.message.usage.output_tokens || 0;\n\t\t\t\t\toutput.usage.cacheRead = event.message.usage.cache_read_input_tokens || 0;\n\t\t\t\t\toutput.usage.cacheWrite = event.message.usage.cache_creation_input_tokens || 0;\n\t\t\t\t\toutput.usage.cacheWrite1h = event.message.usage.cache_creation?.ephemeral_1h_input_tokens || 0;\n\t\t\t\t\t// Anthropic doesn't provide total_tokens, compute from components\n\t\t\t\t\toutput.usage.totalTokens =\n\t\t\t\t\t\toutput.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;\n\t\t\t\t\tcalculateCost(usageModel, output.usage);\n\t\t\t\t} else if (event.type === \"content_block_start\") {\n\t\t\t\t\tif (event.content_block.type === \"text\") {\n\t\t\t\t\t\tconst block: Block = {\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: event.content_block.text ?? \"\",\n\t\t\t\t\t\t\tindex: event.index,\n\t\t\t\t\t\t};\n\t\t\t\t\t\toutput.content.push(block);\n\t\t\t\t\t\tstream.push({ type: \"text_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\t\t} else if (event.content_block.type === \"thinking\") {\n\t\t\t\t\t\tconst block: Block = {\n\t\t\t\t\t\t\ttype: \"thinking\",\n\t\t\t\t\t\t\tthinking: event.content_block.thinking ?? \"\",\n\t\t\t\t\t\t\tthinkingSignature: event.content_block.signature ?? \"\",\n\t\t\t\t\t\t\tindex: event.index,\n\t\t\t\t\t\t};\n\t\t\t\t\t\toutput.content.push(block);\n\t\t\t\t\t\tstream.push({ type: \"thinking_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\t\t} else if (event.content_block.type === \"redacted_thinking\") {\n\t\t\t\t\t\tconst block: Block = {\n\t\t\t\t\t\t\ttype: \"thinking\",\n\t\t\t\t\t\t\tthinking: \"[Reasoning redacted]\",\n\t\t\t\t\t\t\tthinkingSignature: event.content_block.data,\n\t\t\t\t\t\t\tredacted: true,\n\t\t\t\t\t\t\tindex: event.index,\n\t\t\t\t\t\t};\n\t\t\t\t\t\toutput.content.push(block);\n\t\t\t\t\t\tstream.push({ type: \"thinking_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\t\t} else if (event.content_block.type === \"tool_use\") {\n\t\t\t\t\t\tconst block: Block = {\n\t\t\t\t\t\t\ttype: \"toolCall\",\n\t\t\t\t\t\t\tid: event.content_block.id,\n\t\t\t\t\t\t\tname: isOAuth\n\t\t\t\t\t\t\t\t? fromClaudeCodeName(event.content_block.name, context.tools)\n\t\t\t\t\t\t\t\t: event.content_block.name,\n\t\t\t\t\t\t\targuments: (event.content_block.input as Record<string, any>) ?? {},\n\t\t\t\t\t\t\tpartialJson: \"\",\n\t\t\t\t\t\t\tindex: event.index,\n\t\t\t\t\t\t};\n\t\t\t\t\t\toutput.content.push(block);\n\t\t\t\t\t\tstream.push({ type: \"toolcall_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\t\t}\n\t\t\t\t} else if (event.type === \"content_block_delta\") {\n\t\t\t\t\tif (event.delta.type === \"text_delta\") {\n\t\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\t\tif (block && block.type === \"text\") {\n\t\t\t\t\t\t\tblock.text += event.delta.text;\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"text_delta\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tdelta: event.delta.text,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (event.delta.type === \"thinking_delta\") {\n\t\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\t\tif (block && block.type === \"thinking\") {\n\t\t\t\t\t\t\tblock.thinking += event.delta.thinking;\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"thinking_delta\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tdelta: event.delta.thinking,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (event.delta.type === \"input_json_delta\") {\n\t\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\t\tif (block && block.type === \"toolCall\") {\n\t\t\t\t\t\t\tblock.partialJson += event.delta.partial_json;\n\t\t\t\t\t\t\tblock.arguments = parseStreamingJson(block.partialJson);\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"toolcall_delta\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tdelta: event.delta.partial_json,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (event.delta.type === \"signature_delta\") {\n\t\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\t\tif (block && block.type === \"thinking\") {\n\t\t\t\t\t\t\tblock.thinkingSignature = block.thinkingSignature || \"\";\n\t\t\t\t\t\t\tblock.thinkingSignature += event.delta.signature;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (event.type === \"content_block_stop\") {\n\t\t\t\t\tconst index = blocks.findIndex((b) => b.index === event.index);\n\t\t\t\t\tconst block = blocks[index];\n\t\t\t\t\tif (block) {\n\t\t\t\t\t\tdelete (block as any).index;\n\t\t\t\t\t\tif (block.type === \"text\") {\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"text_end\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tcontent: block.text,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if (block.type === \"thinking\") {\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"thinking_end\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\tcontent: block.thinking,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if (block.type === \"toolCall\") {\n\t\t\t\t\t\t\tblock.arguments = parseStreamingJson(block.partialJson);\n\t\t\t\t\t\t\t// Finalize in-place and strip the scratch buffer so replay only\n\t\t\t\t\t\t\t// carries parsed arguments.\n\t\t\t\t\t\t\tdelete (block as { partialJson?: string }).partialJson;\n\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\ttype: \"toolcall_end\",\n\t\t\t\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\t\t\t\ttoolCall: block,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (event.type === \"message_delta\") {\n\t\t\t\t\tif (event.delta.stop_reason) {\n\t\t\t\t\t\toutput.rawStopReason = event.delta.stop_reason;\n\t\t\t\t\t\tconst stopReasonResult = mapStopReason(event.delta.stop_reason, event.delta.stop_details);\n\t\t\t\t\t\toutput.stopReason = stopReasonResult.stopReason;\n\t\t\t\t\t\tif (stopReasonResult.errorMessage) {\n\t\t\t\t\t\t\toutput.errorMessage = stopReasonResult.errorMessage;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Only update usage fields if present (not null).\n\t\t\t\t\t// Preserves input_tokens from message_start when proxies omit it in message_delta.\n\t\t\t\t\tif (event.usage) {\n\t\t\t\t\t\tif (event.usage.input_tokens != null) {\n\t\t\t\t\t\t\toutput.usage.input = event.usage.input_tokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (event.usage.output_tokens != null) {\n\t\t\t\t\t\t\toutput.usage.output = event.usage.output_tokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (event.usage.cache_read_input_tokens != null) {\n\t\t\t\t\t\t\toutput.usage.cacheRead = event.usage.cache_read_input_tokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (event.usage.cache_creation_input_tokens != null) {\n\t\t\t\t\t\t\toutput.usage.cacheWrite = event.usage.cache_creation_input_tokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Anthropic reports reasoning tokens in `output_tokens_details.thinking_tokens` on the\n\t\t\t\t\t\t// final message_delta usage (a subset of output_tokens). SDK 0.91.1 omits the field from\n\t\t\t\t\t\t// its Usage type, so read it through a narrow cast. Verified against the live API.\n\t\t\t\t\t\tconst thinkingTokens = (event.usage as { output_tokens_details?: { thinking_tokens?: number } })\n\t\t\t\t\t\t\t.output_tokens_details?.thinking_tokens;\n\t\t\t\t\t\tif (thinkingTokens != null) {\n\t\t\t\t\t\t\toutput.usage.reasoning = thinkingTokens;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Anthropic doesn't provide total_tokens, compute from components\n\t\t\t\t\toutput.usage.totalTokens =\n\t\t\t\t\t\toutput.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;\n\t\t\t\t\tcalculateCost(usageModel, output.usage);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options?.signal?.aborted) {\n\t\t\t\tthrow new Error(\"Request was aborted\");\n\t\t\t}\n\n\t\t\tif (output.stopReason === \"pending\") {\n\t\t\t\tthrow new Error(\"Anthropic stream ended without a stop reason\");\n\t\t\t}\n\t\t\tif (output.stopReason === \"aborted\" || output.stopReason === \"error\") {\n\t\t\t\tthrow new Error(output.errorMessage || \"An unknown error occurred\");\n\t\t\t}\n\n\t\t\tstream.push({ type: \"done\", reason: output.stopReason, message: output });\n\t\t\tstream.end();\n\t\t} catch (error) {\n\t\t\tfor (const block of output.content) {\n\t\t\t\tdelete (block as { index?: number }).index;\n\t\t\t\t// partialJson is only a streaming scratch buffer; never persist it.\n\t\t\t\tdelete (block as { partialJson?: string }).partialJson;\n\t\t\t}\n\t\t\toutput.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n\t\t\toutput.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);\n\t\t\tstream.push({ type: \"error\", reason: output.stopReason, error: output });\n\t\t\tstream.end();\n\t\t}\n\t})();\n\n\treturn stream;\n};\n\n/**\n * Map ThinkingLevel to Anthropic effort levels for adaptive thinking.\n * Note: effort \"max\" is available on all adaptive-thinking Claude models, while native\n * \"xhigh\" is only available on Opus 4.7/4.8, Sonnet 5, and Fable 5.\n */\nfunction mapThinkingLevelToEffort(\n\tmodel: Model<\"anthropic-messages\">,\n\tlevel: SimpleStreamOptions[\"reasoning\"],\n): AnthropicEffort {\n\tconst mapped = level ? model.thinkingLevelMap?.[level] : undefined;\n\tif (typeof mapped === \"string\") return mapped as AnthropicEffort;\n\n\tswitch (level) {\n\t\tcase \"minimal\":\n\t\tcase \"low\":\n\t\t\treturn \"low\";\n\t\tcase \"medium\":\n\t\t\treturn \"medium\";\n\t\tcase \"high\":\n\t\t\treturn \"high\";\n\t\tdefault:\n\t\t\treturn \"high\";\n\t}\n}\n\nexport const streamSimple: StreamFunction<\"anthropic-messages\", SimpleStreamOptions> = (\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream => {\n\tassertRequestAuth(model.provider, options?.apiKey, options?.headers);\n\n\tconst base = {\n\t\t...buildBaseOptions(model, context, options, options?.apiKey),\n\t\ttoolChoice: options?.toolChoice,\n\t} satisfies AnthropicOptions;\n\tif (!options?.reasoning) {\n\t\treturn stream(model, context, {\n\t\t\t...base,\n\t\t\tthinkingEnabled: false,\n\t\t} satisfies AnthropicOptions);\n\t}\n\n\t// For models with adaptive thinking: use an effort level.\n\t// For older models: use budget-based thinking.\n\tif (model.compat?.forceAdaptiveThinking === true) {\n\t\tconst effort = mapThinkingLevelToEffort(model, options.reasoning);\n\t\treturn stream(model, context, {\n\t\t\t...base,\n\t\t\tthinkingEnabled: true,\n\t\t\teffort,\n\t\t} satisfies AnthropicOptions);\n\t}\n\n\t// Undefined means the caller did not request an output cap; let the helper use the model cap.\n\t// Do not coerce to 0 here, or the thinking budget would become the entire max_tokens value.\n\tconst adjusted = adjustMaxTokensForThinking(\n\t\tbase.maxTokens,\n\t\tmodel.maxTokens,\n\t\toptions.reasoning,\n\t\toptions.thinkingBudgets,\n\t);\n\n\tconst maxTokens = clampMaxTokensToContext(model, context, adjusted.maxTokens);\n\n\treturn stream(model, context, {\n\t\t...base,\n\t\tmaxTokens,\n\t\tthinkingEnabled: true,\n\t\tthinkingBudgetTokens: Math.min(adjusted.thinkingBudget, Math.max(0, maxTokens - 1024)),\n\t} satisfies AnthropicOptions);\n};\n\nfunction isOAuthToken(apiKey: string): boolean {\n\treturn apiKey.includes(\"sk-ant-oat\");\n}\n\nfunction createClient(\n\tmodel: Model<\"anthropic-messages\">,\n\tapiKey: string | undefined,\n\tinterleavedThinking: boolean,\n\tuseFineGrainedToolStreamingBeta: boolean,\n\tuseServerSideFallbackBeta: boolean,\n\toptionsHeaders?: ProviderHeaders,\n\tfetch?: typeof globalThis.fetch,\n\tdynamicHeaders?: Record<string, string>,\n\tsessionId?: string,\n): { client: Anthropic; isOAuthToken: boolean } {\n\t// Adaptive thinking models have interleaved thinking built in, so skip the beta header.\n\tconst needsInterleavedBeta = interleavedThinking && model.compat?.forceAdaptiveThinking !== true;\n\tconst betaFeatures: string[] = [];\n\tif (useFineGrainedToolStreamingBeta) {\n\t\tbetaFeatures.push(FINE_GRAINED_TOOL_STREAMING_BETA);\n\t}\n\tif (needsInterleavedBeta) {\n\t\tbetaFeatures.push(INTERLEAVED_THINKING_BETA);\n\t}\n\tif (useServerSideFallbackBeta) {\n\t\tbetaFeatures.push(SERVER_SIDE_FALLBACK_BETA);\n\t}\n\n\t// Copilot: Bearer auth, selective betas.\n\tif (model.provider === \"github-copilot\") {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: apiKey ?? null,\n\t\t\tbaseURL: model.baseUrl,\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tfetch,\n\t\t\tdefaultHeaders: mergeClientHeaders(\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\tdynamicHeaders,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: false };\n\t}\n\n\t// OAuth: Bearer auth, Claude Code identity headers\n\tif (apiKey && isOAuthToken(apiKey)) {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: apiKey,\n\t\t\tbaseURL: model.baseUrl,\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tfetch,\n\t\t\tdefaultHeaders: mergeClientHeaders(\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t\"anthropic-beta\": [\"claude-code-20250219\", \"oauth-2025-04-20\", ...betaFeatures].join(\",\"),\n\t\t\t\t\t\"user-agent\": `claude-cli/${claudeCodeVersion}`,\n\t\t\t\t\t\"x-app\": \"cli\",\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: true };\n\t}\n\n\t// API key or header-owned auth.\n\tconst sessionAffinityHeaders: ProviderHeaders =\n\t\tsessionId && getAnthropicCompat(model).sendSessionAffinityHeaders ? { \"x-session-affinity\": sessionId } : {};\n\tconst defaultHeaders = mergeClientHeaders(\n\t\t{\n\t\t\taccept: \"application/json\",\n\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t},\n\t\tsessionAffinityHeaders,\n\t\tmodel.headers,\n\t\toptionsHeaders,\n\t);\n\tconst client = new Anthropic({\n\t\tapiKey: apiKey ?? null,\n\t\tauthToken: null,\n\t\tbaseURL: model.baseUrl,\n\t\tdangerouslyAllowBrowser: true,\n\t\tfetch,\n\t\tdefaultHeaders,\n\t});\n\n\treturn { client, isOAuthToken: false };\n}\n\nfunction buildParams(\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\tisOAuthToken: boolean,\n\toptions?: AnthropicOptions,\n): MessageCreateParamsStreamingWithFallbacks {\n\tconst { cacheControl } = getCacheControl(model, options?.cacheRetention, options?.env);\n\tconst compat = getAnthropicCompat(model);\n\tconst transformedMessages = transformMessages(context.messages, model, normalizeToolCallId);\n\tconst normalizeToolName = isOAuthToken ? toClaudeCodeName : (name: string) => name;\n\tconst toolPlacement = splitDeferredTools(\n\t\t{ ...context, messages: transformedMessages },\n\t\tcompat.supportsToolReferences,\n\t\tnormalizeToolName,\n\t);\n\tlet immediateTools = toolPlacement.immediate;\n\tlet deferredTools = [...toolPlacement.deferred.values()];\n\tif (immediateTools.length === 0 && deferredTools.length > 0) {\n\t\timmediateTools = deferredTools;\n\t\tdeferredTools = [];\n\t}\n\tconst deferredToolNames = new Set(deferredTools.map((tool) => normalizeToolName(tool.name)));\n\tconst params: MessageCreateParamsStreamingWithFallbacks = {\n\t\tmodel: model.id,\n\t\tmessages: convertMessages(\n\t\t\ttransformedMessages,\n\t\t\tisOAuthToken,\n\t\t\tcacheControl,\n\t\t\tcompat.allowEmptySignature,\n\t\t\tdeferredToolNames,\n\t\t\tnormalizeToolName,\n\t\t),\n\t\tmax_tokens: options?.maxTokens ?? model.maxTokens,\n\t\tstream: true,\n\t};\n\n\t// For OAuth tokens, we MUST include Claude Code identity\n\tif (isOAuthToken) {\n\t\tparams.system = [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: \"You are Claude Code, Anthropic's official CLI for Claude.\",\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t},\n\t\t];\n\t\tif (context.systemPrompt) {\n\t\t\tparams.system.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: sanitizeSurrogates(context.systemPrompt),\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t});\n\t\t}\n\t} else if (context.systemPrompt) {\n\t\t// Add cache control to system prompt for non-OAuth tokens\n\t\tparams.system = [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: sanitizeSurrogates(context.systemPrompt),\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t},\n\t\t];\n\t}\n\n\t// Temperature is incompatible with extended thinking and unsupported on Claude Opus 4.7+.\n\tif (options?.temperature !== undefined && !options?.thinkingEnabled && compat.supportsTemperature) {\n\t\tparams.temperature = options.temperature;\n\t}\n\n\tif (immediateTools.length > 0 || deferredTools.length > 0) {\n\t\tparams.tools = [\n\t\t\t...convertTools(\n\t\t\t\timmediateTools,\n\t\t\t\tisOAuthToken,\n\t\t\t\tcompat.supportsEagerToolInputStreaming,\n\t\t\t\tcompat.supportsStrictTools,\n\t\t\t\tcompat.supportsCacheControlOnTools ? cacheControl : undefined,\n\t\t\t),\n\t\t\t...convertTools(\n\t\t\t\tdeferredTools,\n\t\t\t\tisOAuthToken,\n\t\t\t\tcompat.supportsEagerToolInputStreaming,\n\t\t\t\tcompat.supportsStrictTools,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t];\n\t}\n\n\t// Configure thinking mode: adaptive, budget-based, or explicitly disabled.\n\tif (model.reasoning) {\n\t\tif (options?.thinkingEnabled) {\n\t\t\t// Default to \"summarized\" so Opus 4.7 and Mythos Preview behave like\n\t\t\t// older Claude 4 models (whose API default is also \"summarized\").\n\t\t\tconst display: AnthropicThinkingDisplay = options.thinkingDisplay ?? \"summarized\";\n\t\t\tif (model.compat?.forceAdaptiveThinking === true) {\n\t\t\t\t// Adaptive thinking: Claude decides when and how much to think.\n\t\t\t\tparams.thinking = { type: \"adaptive\", display };\n\t\t\t\tif (options.effort) {\n\t\t\t\t\t// The Anthropic SDK types can lag newly supported effort values such as \"xhigh\".\n\t\t\t\t\tparams.output_config =\n\t\t\t\t\t\toptions.effort === \"xhigh\"\n\t\t\t\t\t\t\t? ({ effort: options.effort } as unknown as NonNullable<\n\t\t\t\t\t\t\t\t\tMessageCreateParamsStreaming[\"output_config\"]\n\t\t\t\t\t\t\t\t>)\n\t\t\t\t\t\t\t: { effort: options.effort };\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Budget-based thinking for older models\n\t\t\t\tparams.thinking = {\n\t\t\t\t\ttype: \"enabled\",\n\t\t\t\t\tbudget_tokens: options.thinkingBudgetTokens || 1024,\n\t\t\t\t\tdisplay,\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (options?.thinkingEnabled === false && model.thinkingLevelMap?.off !== null) {\n\t\t\tparams.thinking = { type: \"disabled\" };\n\t\t}\n\t}\n\n\tif (options?.metadata) {\n\t\tconst userId = options.metadata.user_id;\n\t\tif (typeof userId === \"string\") {\n\t\t\tparams.metadata = { user_id: userId };\n\t\t}\n\t}\n\n\tif (options?.toolChoice) {\n\t\tif (typeof options.toolChoice === \"string\") {\n\t\t\tparams.tool_choice = { type: options.toolChoice };\n\t\t} else {\n\t\t\tparams.tool_choice = options.toolChoice;\n\t\t}\n\t}\n\n\tconst allowedFallbackModels = model.compat?.allowedFallbackModels;\n\tif (allowedFallbackModels && allowedFallbackModels.length > 0) {\n\t\tparams.fallbacks = allowedFallbackModels.map((fallback) => ({ model: fallback.model }));\n\t}\n\n\treturn params;\n}\n\n// Normalize tool call IDs to match Anthropic's required pattern and length\nfunction normalizeToolCallId(id: string): string {\n\treturn id.replace(/[^a-zA-Z0-9_-]/g, \"_\").slice(0, 64);\n}\n\nfunction convertToolResult(\n\tmsg: ToolResultMessage,\n\tisOAuthToken: boolean,\n\tdeferredToolNames: ReadonlySet<string>,\n\tloadedToolNames: Set<string>,\n\tnormalizeToolName: (name: string) => string,\n): { toolResult: ContentBlockParam; siblingContent: ContentBlockParam[] } {\n\tconst references: Array<{ type: \"tool_reference\"; tool_name: string }> = [];\n\tfor (const name of msg.addedToolNames ?? []) {\n\t\tconst normalizedName = normalizeToolName(name);\n\t\tif (!deferredToolNames.has(normalizedName) || loadedToolNames.has(normalizedName)) continue;\n\t\tloadedToolNames.add(normalizedName);\n\t\treferences.push({\n\t\t\ttype: \"tool_reference\",\n\t\t\ttool_name: isOAuthToken ? toClaudeCodeName(name) : name,\n\t\t});\n\t}\n\tconst convertedContent = convertContentBlocks(msg.content);\n\t// Anthropic rejects tool references mixed with ordinary tool-result content.\n\treturn {\n\t\ttoolResult: {\n\t\t\ttype: \"tool_result\",\n\t\t\ttool_use_id: msg.toolCallId,\n\t\t\tcontent: references.length > 0 ? references : convertedContent,\n\t\t\tis_error: msg.isError,\n\t\t},\n\t\tsiblingContent:\n\t\t\treferences.length === 0\n\t\t\t\t? []\n\t\t\t\t: typeof convertedContent === \"string\"\n\t\t\t\t\t? [{ type: \"text\", text: convertedContent }]\n\t\t\t\t\t: convertedContent,\n\t};\n}\n\nfunction convertMessages(\n\ttransformedMessages: Message[],\n\tisOAuthToken: boolean,\n\tcacheControl?: CacheControlEphemeral,\n\tallowEmptySignature = false,\n\tdeferredToolNames: ReadonlySet<string> = new Set(),\n\tnormalizeToolName: (name: string) => string = (name) => name,\n): MessageParam[] {\n\tconst params: MessageParam[] = [];\n\tconst loadedToolNames = new Set<string>();\n\n\tfor (let i = 0; i < transformedMessages.length; i++) {\n\t\tconst msg = transformedMessages[i];\n\n\t\tif (msg.role === \"user\") {\n\t\t\tif (typeof msg.content === \"string\") {\n\t\t\t\tif (msg.content.trim().length > 0) {\n\t\t\t\t\tparams.push({\n\t\t\t\t\t\trole: \"user\",\n\t\t\t\t\t\tcontent: sanitizeSurrogates(msg.content),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst blocks: ContentBlockParam[] = msg.content.map((item) => {\n\t\t\t\t\tif (item.type === \"text\") {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: sanitizeSurrogates(item.text),\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"image\",\n\t\t\t\t\t\t\tsource: {\n\t\t\t\t\t\t\t\ttype: \"base64\",\n\t\t\t\t\t\t\t\tmedia_type: item.mimeType as \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\",\n\t\t\t\t\t\t\t\tdata: item.data,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tconst filteredBlocks = blocks.filter((b) => {\n\t\t\t\t\tif (b.type === \"text\") {\n\t\t\t\t\t\treturn b.text.trim().length > 0;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t\tif (filteredBlocks.length === 0) continue;\n\t\t\t\tparams.push({\n\t\t\t\t\trole: \"user\",\n\t\t\t\t\tcontent: filteredBlocks,\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (msg.role === \"assistant\") {\n\t\t\tconst blocks: ContentBlockParam[] = [];\n\n\t\t\tfor (const block of msg.content) {\n\t\t\t\tif (block.type === \"text\") {\n\t\t\t\t\tif (block.text.trim().length === 0) continue;\n\t\t\t\t\tblocks.push({\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: sanitizeSurrogates(block.text),\n\t\t\t\t\t});\n\t\t\t\t} else if (block.type === \"thinking\") {\n\t\t\t\t\t// Redacted thinking: pass the opaque payload back as redacted_thinking\n\t\t\t\t\tif (block.redacted) {\n\t\t\t\t\t\tblocks.push({\n\t\t\t\t\t\t\ttype: \"redacted_thinking\",\n\t\t\t\t\t\t\tdata: block.thinkingSignature!,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst thinkingSignature = block.thinkingSignature;\n\t\t\t\t\tconst hasThinkingSignature = !!thinkingSignature && thinkingSignature.trim().length > 0;\n\t\t\t\t\tif (block.thinking.trim().length === 0 && !hasThinkingSignature) continue;\n\t\t\t\t\t// If thinking signature is missing/empty (e.g., from aborted stream),\n\t\t\t\t\t// convert to plain text for Anthropic. Some compatible providers emit\n\t\t\t\t\t// and accept empty signatures, so let marked models preserve the block.\n\t\t\t\t\tif (!hasThinkingSignature) {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tallowEmptySignature\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\ttype: \"thinking\",\n\t\t\t\t\t\t\t\t\t\tthinking: sanitizeSurrogates(block.thinking),\n\t\t\t\t\t\t\t\t\t\tsignature: \"\",\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\t\ttext: sanitizeSurrogates(block.thinking),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tblocks.push({\n\t\t\t\t\t\t\ttype: \"thinking\",\n\t\t\t\t\t\t\tthinking: sanitizeSurrogates(block.thinking),\n\t\t\t\t\t\t\tsignature: thinkingSignature,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (block.type === \"toolCall\") {\n\t\t\t\t\tblocks.push({\n\t\t\t\t\t\ttype: \"tool_use\",\n\t\t\t\t\t\tid: block.id,\n\t\t\t\t\t\tname: isOAuthToken ? toClaudeCodeName(block.name) : block.name,\n\t\t\t\t\t\tinput: block.arguments ?? {},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (blocks.length === 0) continue;\n\t\t\tparams.push({\n\t\t\t\trole: \"assistant\",\n\t\t\t\tcontent: blocks,\n\t\t\t});\n\t\t} else if (msg.role === \"toolResult\") {\n\t\t\t// Collect all consecutive toolResult messages, needed for z.ai Anthropic endpoint.\n\t\t\tconst toolResults: ContentBlockParam[] = [];\n\t\t\tconst siblingContent: ContentBlockParam[] = [];\n\t\t\tlet j = i;\n\t\t\twhile (j < transformedMessages.length && transformedMessages[j].role === \"toolResult\") {\n\t\t\t\tconst converted = convertToolResult(\n\t\t\t\t\ttransformedMessages[j] as ToolResultMessage,\n\t\t\t\t\tisOAuthToken,\n\t\t\t\t\tdeferredToolNames,\n\t\t\t\t\tloadedToolNames,\n\t\t\t\t\tnormalizeToolName,\n\t\t\t\t);\n\t\t\t\ttoolResults.push(converted.toolResult);\n\t\t\t\tsiblingContent.push(...converted.siblingContent);\n\t\t\t\tj++;\n\t\t\t}\n\n\t\t\t// Skip the messages we've already processed.\n\t\t\ti = j - 1;\n\n\t\t\t// Displaced reference-bearing results must follow every tool_result block.\n\t\t\tparams.push({\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [...toolResults, ...siblingContent],\n\t\t\t});\n\t\t}\n\t}\n\n\t// Add cache_control to the last user message to cache conversation history\n\tif (cacheControl && params.length > 0) {\n\t\tconst lastMessage = params[params.length - 1];\n\t\tif (lastMessage.role === \"user\") {\n\t\t\tif (Array.isArray(lastMessage.content)) {\n\t\t\t\tconst lastBlock = lastMessage.content[lastMessage.content.length - 1];\n\t\t\t\tif (\n\t\t\t\t\tlastBlock &&\n\t\t\t\t\t(lastBlock.type === \"text\" || lastBlock.type === \"image\" || lastBlock.type === \"tool_result\")\n\t\t\t\t) {\n\t\t\t\t\t(lastBlock as any).cache_control = cacheControl;\n\t\t\t\t}\n\t\t\t} else if (typeof lastMessage.content === \"string\") {\n\t\t\t\tlastMessage.content = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: lastMessage.content,\n\t\t\t\t\t\tcache_control: cacheControl,\n\t\t\t\t\t},\n\t\t\t\t] as any;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn params;\n}\n\nfunction shouldUseFineGrainedToolStreamingBeta(model: Model<\"anthropic-messages\">, context: Context): boolean {\n\treturn !!context.tools?.length && !getAnthropicCompat(model).supportsEagerToolInputStreaming;\n}\n\nfunction convertTools(\n\ttools: Tool[],\n\tisOAuthToken: boolean,\n\tsupportsEagerToolInputStreaming: boolean,\n\tsupportsStrictTools: boolean,\n\tcacheControl?: CacheControlEphemeral,\n\tdeferLoading = false,\n): Anthropic.Messages.Tool[] {\n\tif (!tools) return [];\n\n\treturn tools.map((tool, index) => {\n\t\tconst strict = resolveJsonSchemaStrictSampling(tool, supportsStrictTools);\n\t\tconst parameters = getJsonSchemaToolParameters(tool, strict);\n\t\tconst schema = parameters as { properties?: unknown; required?: string[] };\n\t\tconst legacyInputSchema = {\n\t\t\ttype: \"object\" as const,\n\t\t\tproperties: schema.properties ?? {},\n\t\t\trequired: schema.required ?? [],\n\t\t};\n\t\tconst inputSchema =\n\t\t\tstrict === true\n\t\t\t\t? {\n\t\t\t\t\t\t...(parameters as Record<string, unknown>),\n\t\t\t\t\t\t...legacyInputSchema,\n\t\t\t\t\t}\n\t\t\t\t: legacyInputSchema;\n\n\t\treturn {\n\t\t\tname: isOAuthToken ? toClaudeCodeName(tool.name) : tool.name,\n\t\t\tdescription: tool.description,\n\t\t\t...(supportsEagerToolInputStreaming ? { eager_input_streaming: true } : {}),\n\t\t\t...(strict === true ? { strict: true } : {}),\n\t\t\tinput_schema: inputSchema,\n\t\t\t...(deferLoading ? { defer_loading: true } : {}),\n\t\t\t...(cacheControl && index === tools.length - 1 ? { cache_control: cacheControl } : {}),\n\t\t};\n\t});\n}\n\nfunction mapStopReason(\n\treason: Anthropic.Messages.StopReason | string,\n\tstopDetails?: RefusalStopDetails | null,\n): { stopReason: StopReason; errorMessage?: string } {\n\tswitch (reason) {\n\t\tcase \"end_turn\":\n\t\t\treturn { stopReason: \"stop\" };\n\t\tcase \"max_tokens\":\n\t\t\treturn { stopReason: \"length\" };\n\t\tcase \"tool_use\":\n\t\t\treturn { stopReason: \"toolUse\" };\n\t\tcase \"refusal\":\n\t\t\treturn {\n\t\t\t\tstopReason: \"error\",\n\t\t\t\terrorMessage: stopDetails?.explanation || `The model refused to complete the request`,\n\t\t\t};\n\t\tcase \"pause_turn\": // Stop is good enough -> resubmit\n\t\t\treturn { stopReason: \"stop\" };\n\t\tcase \"stop_sequence\":\n\t\t\treturn { stopReason: \"stop\" }; // We don't supply stop sequences, so this should never happen\n\t\tcase \"sensitive\": // Content flagged by safety filters (not yet in SDK types)\n\t\t\treturn { stopReason: \"error\", errorMessage: \"Provider stopped with: sensitive\" };\n\t\tdefault:\n\t\t\t// Handle unknown stop reasons gracefully (API may add new values)\n\t\t\tthrow new Error(`Unhandled stop reason: ${reason}`);\n\t}\n}\n"]}
@@ -1,6 +1,8 @@
1
+ import type { ResponseCreateParamsStreaming } from "openai/resources/responses/responses.js";
1
2
  import type { SimpleStreamOptions, StreamFunction, StreamOptions } from "../types.ts";
2
3
  export interface AzureOpenAIResponsesOptions extends StreamOptions {
3
4
  reasoningEffort?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
5
+ toolChoice?: ResponseCreateParamsStreaming["tool_choice"];
4
6
  reasoningSummary?: "auto" | "detailed" | "concise" | null;
5
7
  azureApiVersion?: string;
6
8
  azureResourceName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"azure-openai-responses.d.ts","sourceRoot":"","sources":["../../src/api/azure-openai-responses.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAKX,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,MAAM,aAAa,CAAC;AA4CrB,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IACjE,eAAe,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAC1E,gBAAgB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,wBAAwB,EAAE,2BAA2B,CA2FxF,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,wBAAwB,EAAE,mBAAmB,CAkBtF,CAAC","sourcesContent":["import { AzureOpenAI } from \"openai\";\nimport type { ResponseCreateParamsStreaming } from \"openai/resources/responses/responses.js\";\nimport { clampThinkingLevel } from \"../models.ts\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tContext,\n\tModel,\n\tSimpleStreamOptions,\n\tStreamFunction,\n\tStreamOptions,\n} from \"../types.ts\";\nimport { formatProviderError, normalizeProviderError } from \"../utils/error-body.ts\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.ts\";\nimport { headersToRecord } from \"../utils/headers.ts\";\nimport { getProviderEnvValue } from \"../utils/provider-env.ts\";\nimport { retryProviderRequest } from \"../utils/provider-retry.ts\";\nimport { createGrammarToolInputProperties } from \"./constrained-sampling.ts\";\nimport { clampOpenAIPromptCacheKey } from \"./openai-prompt-cache.ts\";\nimport { convertResponsesMessages, convertResponsesTools, processResponsesStream } from \"./openai-responses-shared.ts\";\nimport { buildBaseOptions } from \"./simple-options.ts\";\n\nconst DEFAULT_AZURE_API_VERSION = \"v1\";\nconst AZURE_TOOL_CALL_PROVIDERS = new Set([\"openai\", \"openai-codex\", \"opencode\", \"azure-openai-responses\"]);\n// OpenAI Responses rejects max_output_tokens below 16: https://github.com/earendil-works/pi/issues/6265\nconst OPENAI_RESPONSES_MIN_OUTPUT_TOKENS = 16;\n\nfunction parseDeploymentNameMap(value: string | undefined): Map<string, string> {\n\tconst map = new Map<string, string>();\n\tif (!value) return map;\n\tfor (const entry of value.split(\",\")) {\n\t\tconst trimmed = entry.trim();\n\t\tif (!trimmed) continue;\n\t\tconst [modelId, deploymentName] = trimmed.split(\"=\", 2);\n\t\tif (!modelId || !deploymentName) continue;\n\t\tmap.set(modelId.trim(), deploymentName.trim());\n\t}\n\treturn map;\n}\n\nfunction resolveDeploymentName(model: Model<\"azure-openai-responses\">, options?: AzureOpenAIResponsesOptions): string {\n\tif (options?.azureDeploymentName) {\n\t\treturn options.azureDeploymentName;\n\t}\n\tconst mappedDeployment = parseDeploymentNameMap(\n\t\tgetProviderEnvValue(\"AZURE_OPENAI_DEPLOYMENT_NAME_MAP\", options?.env),\n\t).get(model.id);\n\treturn mappedDeployment || model.id;\n}\n\nfunction formatAzureOpenAIError(error: unknown): string {\n\treturn formatProviderError(normalizeProviderError(error), \"Azure OpenAI API error\");\n}\n\n// Azure OpenAI Responses-specific options\nexport interface AzureOpenAIResponsesOptions extends StreamOptions {\n\treasoningEffort?: \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\treasoningSummary?: \"auto\" | \"detailed\" | \"concise\" | null;\n\tazureApiVersion?: string;\n\tazureResourceName?: string;\n\tazureBaseUrl?: string;\n\tazureDeploymentName?: string;\n}\n\n/**\n * Generate function for Azure OpenAI Responses API\n */\nexport const stream: StreamFunction<\"azure-openai-responses\", AzureOpenAIResponsesOptions> = (\n\tmodel: Model<\"azure-openai-responses\">,\n\tcontext: Context,\n\toptions?: AzureOpenAIResponsesOptions,\n): AssistantMessageEventStream => {\n\tconst stream = new AssistantMessageEventStream();\n\n\t// Start async processing\n\t(async () => {\n\t\tconst deploymentName = resolveDeploymentName(model, options);\n\n\t\tconst output: AssistantMessage = {\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [],\n\t\t\tapi: \"azure-openai-responses\" as Api,\n\t\t\tprovider: model.provider,\n\t\t\tmodel: model.id,\n\t\t\tusage: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotalTokens: 0,\n\t\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t\t},\n\t\t\tstopReason: \"pending\",\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\ttry {\n\t\t\t// Create Azure OpenAI client\n\t\t\tconst apiKey = options?.apiKey;\n\t\t\tif (!apiKey) {\n\t\t\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t\t\t}\n\t\t\tconst client = createClient(model, apiKey, options);\n\t\t\tconst grammarToolInputProperties = createGrammarToolInputProperties(\n\t\t\t\tcontext.tools,\n\t\t\t\tmodel.compat?.supportsOpenAIGrammarTools ?? false,\n\t\t\t);\n\t\t\tlet params = buildParams(model, context, options, deploymentName, grammarToolInputProperties);\n\t\t\tconst nextParams = await options?.onPayload?.(params, model);\n\t\t\tif (nextParams !== undefined) {\n\t\t\t\tparams = nextParams as ResponseCreateParamsStreaming;\n\t\t\t}\n\t\t\tconst requestOptions = {\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\t...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),\n\t\t\t\tmaxRetries: 0,\n\t\t\t};\n\t\t\tconst { data: openaiStream, response } = await retryProviderRequest(\n\t\t\t\t() => client.responses.create(params, requestOptions).withResponse(),\n\t\t\t\t{\n\t\t\t\t\tmaxRetries: options?.maxRetries,\n\t\t\t\t\tmaxRetryDelayMs: options?.maxRetryDelayMs,\n\t\t\t\t\tsignal: options?.signal,\n\t\t\t\t},\n\t\t\t);\n\t\t\tawait options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);\n\t\t\tstream.push({ type: \"start\", partial: output });\n\n\t\t\tawait processResponsesStream(openaiStream, output, stream, model, { grammarToolInputProperties });\n\n\t\t\tif (options?.signal?.aborted) {\n\t\t\t\tthrow new Error(\"Request was aborted\");\n\t\t\t}\n\n\t\t\tif (output.stopReason === \"pending\") {\n\t\t\t\tthrow new Error(\"Azure OpenAI Responses stream ended without a stop reason\");\n\t\t\t}\n\t\t\tif (output.stopReason === \"aborted\" || output.stopReason === \"error\") {\n\t\t\t\tthrow new Error(output.errorMessage || \"An unknown error occurred\");\n\t\t\t}\n\n\t\t\tstream.push({ type: \"done\", reason: output.stopReason, message: output });\n\t\t\tstream.end();\n\t\t} catch (error) {\n\t\t\tfor (const block of output.content) {\n\t\t\t\tdelete (block as { index?: number }).index;\n\t\t\t\t// Streaming scratch buffers are only used during parsing; never persist them.\n\t\t\t\tdelete (block as { partialJson?: string }).partialJson;\n\t\t\t\tdelete (block as { customInput?: unknown }).customInput;\n\t\t\t}\n\t\t\toutput.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n\t\t\toutput.errorMessage = formatAzureOpenAIError(error);\n\t\t\tstream.push({ type: \"error\", reason: output.stopReason, error: output });\n\t\t\tstream.end();\n\t\t}\n\t})();\n\n\treturn stream;\n};\n\nexport const streamSimple: StreamFunction<\"azure-openai-responses\", SimpleStreamOptions> = (\n\tmodel: Model<\"azure-openai-responses\">,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream => {\n\tconst apiKey = options?.apiKey;\n\tif (!apiKey) {\n\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t}\n\n\tconst base = buildBaseOptions(model, context, options, apiKey);\n\tconst clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;\n\tconst reasoningEffort = clampedReasoning === \"off\" ? undefined : clampedReasoning;\n\n\treturn stream(model, context, {\n\t\t...base,\n\t\treasoningEffort,\n\t} satisfies AzureOpenAIResponsesOptions);\n};\n\nfunction normalizeAzureBaseUrl(baseUrl: string): string {\n\tconst trimmed = baseUrl.trim().replace(/\\/+$/, \"\");\n\tlet url: URL;\n\ttry {\n\t\turl = new URL(trimmed);\n\t} catch {\n\t\tthrow new Error(`Invalid Azure OpenAI base URL: ${baseUrl}`);\n\t}\n\n\tconst isAzureHost =\n\t\turl.hostname.endsWith(\".openai.azure.com\") ||\n\t\turl.hostname.endsWith(\".cognitiveservices.azure.com\") ||\n\t\turl.hostname.endsWith(\".ai.azure.com\");\n\tconst normalizedPath = url.pathname.replace(/\\/+$/, \"\");\n\n\t// Ensure Azure hosts have /openai/v1 as base path so the AzureOpenAI SDK\n\t// can append /deployments/<model>/... and ?api-version=v1 correctly.\n\tif (\n\t\tisAzureHost &&\n\t\t(normalizedPath === \"\" ||\n\t\t\tnormalizedPath === \"/\" ||\n\t\t\tnormalizedPath === \"/openai\" ||\n\t\t\tnormalizedPath === \"/openai/v1/responses\")\n\t) {\n\t\turl.pathname = \"/openai/v1\";\n\t\turl.search = \"\";\n\t}\n\n\treturn url.toString().replace(/\\/+$/, \"\");\n}\n\nfunction buildDefaultBaseUrl(resourceName: string): string {\n\treturn `https://${resourceName}.openai.azure.com/openai/v1`;\n}\n\nfunction resolveAzureConfig(\n\tmodel: Model<\"azure-openai-responses\">,\n\toptions?: AzureOpenAIResponsesOptions,\n): { baseUrl: string; apiVersion: string } {\n\tconst apiVersion =\n\t\toptions?.azureApiVersion ||\n\t\tgetProviderEnvValue(\"AZURE_OPENAI_API_VERSION\", options?.env) ||\n\t\tDEFAULT_AZURE_API_VERSION;\n\n\tconst baseUrl =\n\t\toptions?.azureBaseUrl?.trim() || getProviderEnvValue(\"AZURE_OPENAI_BASE_URL\", options?.env)?.trim() || undefined;\n\tconst resourceName = options?.azureResourceName || getProviderEnvValue(\"AZURE_OPENAI_RESOURCE_NAME\", options?.env);\n\n\tlet resolvedBaseUrl = baseUrl;\n\n\tif (!resolvedBaseUrl && resourceName) {\n\t\tresolvedBaseUrl = buildDefaultBaseUrl(resourceName);\n\t}\n\n\tif (!resolvedBaseUrl && model.baseUrl) {\n\t\tresolvedBaseUrl = model.baseUrl;\n\t}\n\n\tif (!resolvedBaseUrl) {\n\t\tthrow new Error(\n\t\t\t\"Azure OpenAI base URL is required. Set AZURE_OPENAI_BASE_URL or AZURE_OPENAI_RESOURCE_NAME, or pass azureBaseUrl, azureResourceName, or model.baseUrl.\",\n\t\t);\n\t}\n\n\treturn {\n\t\tbaseUrl: normalizeAzureBaseUrl(resolvedBaseUrl),\n\t\tapiVersion,\n\t};\n}\n\nfunction createClient(model: Model<\"azure-openai-responses\">, apiKey: string, options?: AzureOpenAIResponsesOptions) {\n\tconst headers = { ...model.headers };\n\n\tif (options?.headers) {\n\t\tObject.assign(headers, options.headers);\n\t}\n\n\tconst { baseUrl, apiVersion } = resolveAzureConfig(model, options);\n\n\treturn new AzureOpenAI({\n\t\tapiKey,\n\t\tapiVersion,\n\t\tdangerouslyAllowBrowser: true,\n\t\tfetch: options?.fetch,\n\t\tdefaultHeaders: headers,\n\t\tbaseURL: baseUrl,\n\t});\n}\n\nfunction buildParams(\n\tmodel: Model<\"azure-openai-responses\">,\n\tcontext: Context,\n\toptions: AzureOpenAIResponsesOptions | undefined,\n\tdeploymentName: string,\n\tgrammarToolInputProperties: ReadonlyMap<string, string> = createGrammarToolInputProperties(\n\t\tcontext.tools,\n\t\tmodel.compat?.supportsOpenAIGrammarTools ?? false,\n\t),\n) {\n\tconst messages = convertResponsesMessages(model, context, AZURE_TOOL_CALL_PROVIDERS, {\n\t\tgrammarToolInputProperties,\n\t});\n\n\tconst params: ResponseCreateParamsStreaming = {\n\t\tmodel: deploymentName,\n\t\tinput: messages,\n\t\tstream: true,\n\t\tprompt_cache_key: clampOpenAIPromptCacheKey(options?.sessionId),\n\t\tstore: false,\n\t};\n\n\tif (options?.maxTokens) {\n\t\tparams.max_output_tokens = Math.max(options.maxTokens, OPENAI_RESPONSES_MIN_OUTPUT_TOKENS);\n\t}\n\n\tif (options?.temperature !== undefined) {\n\t\tparams.temperature = options?.temperature;\n\t}\n\n\tif (context.tools && context.tools.length > 0) {\n\t\tparams.tools = convertResponsesTools(context.tools, {\n\t\t\tsupportsStrictMode: model.compat?.supportsStrictMode ?? true,\n\t\t\tsupportsOpenAIGrammarTools: model.compat?.supportsOpenAIGrammarTools ?? false,\n\t\t});\n\t}\n\n\tif (model.reasoning) {\n\t\tif (options?.reasoningEffort || options?.reasoningSummary) {\n\t\t\tconst effort = options?.reasoningEffort\n\t\t\t\t? (model.thinkingLevelMap?.[options.reasoningEffort] ?? options.reasoningEffort)\n\t\t\t\t: \"medium\";\n\t\t\tparams.reasoning = {\n\t\t\t\teffort: effort as NonNullable<typeof params.reasoning>[\"effort\"],\n\t\t\t\tsummary: options?.reasoningSummary || \"auto\",\n\t\t\t};\n\t\t\tparams.include = [\"reasoning.encrypted_content\"];\n\t\t} else if (model.thinkingLevelMap?.off !== null) {\n\t\t\tparams.reasoning = {\n\t\t\t\teffort: (model.thinkingLevelMap?.off ?? \"none\") as NonNullable<typeof params.reasoning>[\"effort\"],\n\t\t\t};\n\t\t}\n\t}\n\n\t// Last so custom keys override the named request fields.\n\tif (options?.samplingParams) {\n\t\tObject.assign(params, options.samplingParams);\n\t}\n\n\treturn params;\n}\n"]}
1
+ {"version":3,"file":"azure-openai-responses.d.ts","sourceRoot":"","sources":["../../src/api/azure-openai-responses.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAE7F,OAAO,KAAK,EAKX,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,MAAM,aAAa,CAAC;AA6CrB,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IACjE,eAAe,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAC1E,UAAU,CAAC,EAAE,6BAA6B,CAAC,aAAa,CAAC,CAAC;IAC1D,gBAAgB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,wBAAwB,EAAE,2BAA2B,CA2FxF,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,wBAAwB,EAAE,mBAAmB,CAqBtF,CAAC","sourcesContent":["import { AzureOpenAI } from \"openai\";\nimport type { ResponseCreateParamsStreaming } from \"openai/resources/responses/responses.js\";\nimport { clampThinkingLevel } from \"../models.ts\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tContext,\n\tModel,\n\tSimpleStreamOptions,\n\tStreamFunction,\n\tStreamOptions,\n} from \"../types.ts\";\nimport { formatProviderError, normalizeProviderError } from \"../utils/error-body.ts\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.ts\";\nimport { headersToRecord } from \"../utils/headers.ts\";\nimport { getPiUserAgent } from \"../utils/pi-user-agent.ts\";\nimport { getProviderEnvValue } from \"../utils/provider-env.ts\";\nimport { retryProviderRequest } from \"../utils/provider-retry.ts\";\nimport { createGrammarToolInputProperties } from \"./constrained-sampling.ts\";\nimport { clampOpenAIPromptCacheKey } from \"./openai-prompt-cache.ts\";\nimport { convertResponsesMessages, convertResponsesTools, processResponsesStream } from \"./openai-responses-shared.ts\";\nimport { buildBaseOptions } from \"./simple-options.ts\";\n\nconst DEFAULT_AZURE_API_VERSION = \"v1\";\nconst AZURE_TOOL_CALL_PROVIDERS = new Set([\"openai\", \"openai-codex\", \"opencode\", \"azure-openai-responses\"]);\n// OpenAI Responses rejects max_output_tokens below 16: https://github.com/earendil-works/pi/issues/6265\nconst OPENAI_RESPONSES_MIN_OUTPUT_TOKENS = 16;\n\nfunction parseDeploymentNameMap(value: string | undefined): Map<string, string> {\n\tconst map = new Map<string, string>();\n\tif (!value) return map;\n\tfor (const entry of value.split(\",\")) {\n\t\tconst trimmed = entry.trim();\n\t\tif (!trimmed) continue;\n\t\tconst [modelId, deploymentName] = trimmed.split(\"=\", 2);\n\t\tif (!modelId || !deploymentName) continue;\n\t\tmap.set(modelId.trim(), deploymentName.trim());\n\t}\n\treturn map;\n}\n\nfunction resolveDeploymentName(model: Model<\"azure-openai-responses\">, options?: AzureOpenAIResponsesOptions): string {\n\tif (options?.azureDeploymentName) {\n\t\treturn options.azureDeploymentName;\n\t}\n\tconst mappedDeployment = parseDeploymentNameMap(\n\t\tgetProviderEnvValue(\"AZURE_OPENAI_DEPLOYMENT_NAME_MAP\", options?.env),\n\t).get(model.id);\n\treturn mappedDeployment || model.id;\n}\n\nfunction formatAzureOpenAIError(error: unknown): string {\n\treturn formatProviderError(normalizeProviderError(error), \"Azure OpenAI API error\");\n}\n\n// Azure OpenAI Responses-specific options\nexport interface AzureOpenAIResponsesOptions extends StreamOptions {\n\treasoningEffort?: \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\ttoolChoice?: ResponseCreateParamsStreaming[\"tool_choice\"];\n\treasoningSummary?: \"auto\" | \"detailed\" | \"concise\" | null;\n\tazureApiVersion?: string;\n\tazureResourceName?: string;\n\tazureBaseUrl?: string;\n\tazureDeploymentName?: string;\n}\n\n/**\n * Generate function for Azure OpenAI Responses API\n */\nexport const stream: StreamFunction<\"azure-openai-responses\", AzureOpenAIResponsesOptions> = (\n\tmodel: Model<\"azure-openai-responses\">,\n\tcontext: Context,\n\toptions?: AzureOpenAIResponsesOptions,\n): AssistantMessageEventStream => {\n\tconst stream = new AssistantMessageEventStream();\n\n\t// Start async processing\n\t(async () => {\n\t\tconst deploymentName = resolveDeploymentName(model, options);\n\n\t\tconst output: AssistantMessage = {\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [],\n\t\t\tapi: \"azure-openai-responses\" as Api,\n\t\t\tprovider: model.provider,\n\t\t\tmodel: model.id,\n\t\t\tusage: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotalTokens: 0,\n\t\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t\t},\n\t\t\tstopReason: \"pending\",\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\ttry {\n\t\t\t// Create Azure OpenAI client\n\t\t\tconst apiKey = options?.apiKey;\n\t\t\tif (!apiKey) {\n\t\t\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t\t\t}\n\t\t\tconst client = createClient(model, apiKey, options);\n\t\t\tconst grammarToolInputProperties = createGrammarToolInputProperties(\n\t\t\t\tcontext.tools,\n\t\t\t\tmodel.compat?.supportsOpenAIGrammarTools ?? false,\n\t\t\t);\n\t\t\tlet params = buildParams(model, context, options, deploymentName, grammarToolInputProperties);\n\t\t\tconst nextParams = await options?.onPayload?.(params, model);\n\t\t\tif (nextParams !== undefined) {\n\t\t\t\tparams = nextParams as ResponseCreateParamsStreaming;\n\t\t\t}\n\t\t\tconst requestOptions = {\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\t...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),\n\t\t\t\tmaxRetries: 0,\n\t\t\t};\n\t\t\tconst { data: openaiStream, response } = await retryProviderRequest(\n\t\t\t\t() => client.responses.create(params, requestOptions).withResponse(),\n\t\t\t\t{\n\t\t\t\t\tmaxRetries: options?.maxRetries,\n\t\t\t\t\tmaxRetryDelayMs: options?.maxRetryDelayMs,\n\t\t\t\t\tsignal: options?.signal,\n\t\t\t\t},\n\t\t\t);\n\t\t\tawait options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);\n\t\t\tstream.push({ type: \"start\", partial: output });\n\n\t\t\tawait processResponsesStream(openaiStream, output, stream, model, { grammarToolInputProperties });\n\n\t\t\tif (options?.signal?.aborted) {\n\t\t\t\tthrow new Error(\"Request was aborted\");\n\t\t\t}\n\n\t\t\tif (output.stopReason === \"pending\") {\n\t\t\t\tthrow new Error(\"Azure OpenAI Responses stream ended without a stop reason\");\n\t\t\t}\n\t\t\tif (output.stopReason === \"aborted\" || output.stopReason === \"error\") {\n\t\t\t\tthrow new Error(output.errorMessage || \"An unknown error occurred\");\n\t\t\t}\n\n\t\t\tstream.push({ type: \"done\", reason: output.stopReason, message: output });\n\t\t\tstream.end();\n\t\t} catch (error) {\n\t\t\tfor (const block of output.content) {\n\t\t\t\tdelete (block as { index?: number }).index;\n\t\t\t\t// Streaming scratch buffers are only used during parsing; never persist them.\n\t\t\t\tdelete (block as { partialJson?: string }).partialJson;\n\t\t\t\tdelete (block as { customInput?: unknown }).customInput;\n\t\t\t}\n\t\t\toutput.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n\t\t\toutput.errorMessage = formatAzureOpenAIError(error);\n\t\t\tstream.push({ type: \"error\", reason: output.stopReason, error: output });\n\t\t\tstream.end();\n\t\t}\n\t})();\n\n\treturn stream;\n};\n\nexport const streamSimple: StreamFunction<\"azure-openai-responses\", SimpleStreamOptions> = (\n\tmodel: Model<\"azure-openai-responses\">,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream => {\n\tconst apiKey = options?.apiKey;\n\tif (!apiKey) {\n\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t}\n\n\tconst base = {\n\t\t...buildBaseOptions(model, context, options, apiKey),\n\t\ttoolChoice: options?.toolChoice,\n\t} satisfies AzureOpenAIResponsesOptions;\n\tconst clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;\n\tconst reasoningEffort = clampedReasoning === \"off\" ? undefined : clampedReasoning;\n\n\treturn stream(model, context, {\n\t\t...base,\n\t\treasoningEffort,\n\t} satisfies AzureOpenAIResponsesOptions);\n};\n\nfunction normalizeAzureBaseUrl(baseUrl: string): string {\n\tconst trimmed = baseUrl.trim().replace(/\\/+$/, \"\");\n\tlet url: URL;\n\ttry {\n\t\turl = new URL(trimmed);\n\t} catch {\n\t\tthrow new Error(`Invalid Azure OpenAI base URL: ${baseUrl}`);\n\t}\n\n\tconst isAzureHost =\n\t\turl.hostname.endsWith(\".openai.azure.com\") ||\n\t\turl.hostname.endsWith(\".cognitiveservices.azure.com\") ||\n\t\turl.hostname.endsWith(\".ai.azure.com\");\n\tconst normalizedPath = url.pathname.replace(/\\/+$/, \"\");\n\n\t// Ensure Azure hosts have /openai/v1 as base path so the AzureOpenAI SDK\n\t// can append /deployments/<model>/... and ?api-version=v1 correctly.\n\tif (\n\t\tisAzureHost &&\n\t\t(normalizedPath === \"\" ||\n\t\t\tnormalizedPath === \"/\" ||\n\t\t\tnormalizedPath === \"/openai\" ||\n\t\t\tnormalizedPath === \"/openai/v1/responses\")\n\t) {\n\t\turl.pathname = \"/openai/v1\";\n\t\turl.search = \"\";\n\t}\n\n\treturn url.toString().replace(/\\/+$/, \"\");\n}\n\nfunction buildDefaultBaseUrl(resourceName: string): string {\n\treturn `https://${resourceName}.openai.azure.com/openai/v1`;\n}\n\nfunction resolveAzureConfig(\n\tmodel: Model<\"azure-openai-responses\">,\n\toptions?: AzureOpenAIResponsesOptions,\n): { baseUrl: string; apiVersion: string } {\n\tconst apiVersion =\n\t\toptions?.azureApiVersion ||\n\t\tgetProviderEnvValue(\"AZURE_OPENAI_API_VERSION\", options?.env) ||\n\t\tDEFAULT_AZURE_API_VERSION;\n\n\tconst baseUrl =\n\t\toptions?.azureBaseUrl?.trim() || getProviderEnvValue(\"AZURE_OPENAI_BASE_URL\", options?.env)?.trim() || undefined;\n\tconst resourceName = options?.azureResourceName || getProviderEnvValue(\"AZURE_OPENAI_RESOURCE_NAME\", options?.env);\n\n\tlet resolvedBaseUrl = baseUrl;\n\n\tif (!resolvedBaseUrl && resourceName) {\n\t\tresolvedBaseUrl = buildDefaultBaseUrl(resourceName);\n\t}\n\n\tif (!resolvedBaseUrl && model.baseUrl) {\n\t\tresolvedBaseUrl = model.baseUrl;\n\t}\n\n\tif (!resolvedBaseUrl) {\n\t\tthrow new Error(\n\t\t\t\"Azure OpenAI base URL is required. Set AZURE_OPENAI_BASE_URL or AZURE_OPENAI_RESOURCE_NAME, or pass azureBaseUrl, azureResourceName, or model.baseUrl.\",\n\t\t);\n\t}\n\n\treturn {\n\t\tbaseUrl: normalizeAzureBaseUrl(resolvedBaseUrl),\n\t\tapiVersion,\n\t};\n}\n\nfunction createClient(model: Model<\"azure-openai-responses\">, apiKey: string, options?: AzureOpenAIResponsesOptions) {\n\tconst headers = { \"User-Agent\": getPiUserAgent(), ...model.headers };\n\n\tif (options?.headers) {\n\t\tObject.assign(headers, options.headers);\n\t}\n\n\tconst { baseUrl, apiVersion } = resolveAzureConfig(model, options);\n\n\treturn new AzureOpenAI({\n\t\tapiKey,\n\t\tapiVersion,\n\t\tdangerouslyAllowBrowser: true,\n\t\tfetch: options?.fetch,\n\t\tdefaultHeaders: headers,\n\t\tbaseURL: baseUrl,\n\t});\n}\n\nfunction buildParams(\n\tmodel: Model<\"azure-openai-responses\">,\n\tcontext: Context,\n\toptions: AzureOpenAIResponsesOptions | undefined,\n\tdeploymentName: string,\n\tgrammarToolInputProperties: ReadonlyMap<string, string> = createGrammarToolInputProperties(\n\t\tcontext.tools,\n\t\tmodel.compat?.supportsOpenAIGrammarTools ?? false,\n\t),\n) {\n\tconst messages = convertResponsesMessages(model, context, AZURE_TOOL_CALL_PROVIDERS, {\n\t\tgrammarToolInputProperties,\n\t});\n\n\tconst params: ResponseCreateParamsStreaming = {\n\t\tmodel: deploymentName,\n\t\tinput: messages,\n\t\tstream: true,\n\t\tprompt_cache_key: clampOpenAIPromptCacheKey(options?.sessionId),\n\t\tstore: false,\n\t};\n\n\tif (options?.maxTokens) {\n\t\tparams.max_output_tokens = Math.max(options.maxTokens, OPENAI_RESPONSES_MIN_OUTPUT_TOKENS);\n\t}\n\n\tif (options?.temperature !== undefined) {\n\t\tparams.temperature = options?.temperature;\n\t}\n\n\tif (context.tools && context.tools.length > 0) {\n\t\tparams.tools = convertResponsesTools(context.tools, {\n\t\t\tsupportsStrictMode: model.compat?.supportsStrictMode ?? true,\n\t\t\tsupportsOpenAIGrammarTools: model.compat?.supportsOpenAIGrammarTools ?? false,\n\t\t});\n\t}\n\tif (options?.toolChoice !== undefined) {\n\t\tparams.tool_choice = options.toolChoice;\n\t}\n\n\tif (model.reasoning) {\n\t\tif (options?.reasoningEffort || options?.reasoningSummary) {\n\t\t\tconst effort = options?.reasoningEffort\n\t\t\t\t? (model.thinkingLevelMap?.[options.reasoningEffort] ?? options.reasoningEffort)\n\t\t\t\t: \"medium\";\n\t\t\tparams.reasoning = {\n\t\t\t\teffort: effort as NonNullable<typeof params.reasoning>[\"effort\"],\n\t\t\t\tsummary: options?.reasoningSummary || \"auto\",\n\t\t\t};\n\t\t\tparams.include = [\"reasoning.encrypted_content\"];\n\t\t} else if (model.thinkingLevelMap?.off !== null) {\n\t\t\tparams.reasoning = {\n\t\t\t\teffort: (model.thinkingLevelMap?.off ?? \"none\") as NonNullable<typeof params.reasoning>[\"effort\"],\n\t\t\t};\n\t\t}\n\t}\n\n\t// Last so custom keys override the named request fields.\n\tif (options?.samplingParams) {\n\t\tObject.assign(params, options.samplingParams);\n\t}\n\n\treturn params;\n}\n"]}
@@ -3,6 +3,7 @@ import { clampThinkingLevel } from "../models.js";
3
3
  import { formatProviderError, normalizeProviderError } from "../utils/error-body.js";
4
4
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
5
5
  import { headersToRecord } from "../utils/headers.js";
6
+ import { getPiUserAgent } from "../utils/pi-user-agent.js";
6
7
  import { getProviderEnvValue } from "../utils/provider-env.js";
7
8
  import { retryProviderRequest } from "../utils/provider-retry.js";
8
9
  import { createGrammarToolInputProperties } from "./constrained-sampling.js";
@@ -121,7 +122,10 @@ export const streamSimple = (model, context, options) => {
121
122
  if (!apiKey) {
122
123
  throw new Error(`No API key for provider: ${model.provider}`);
123
124
  }
124
- const base = buildBaseOptions(model, context, options, apiKey);
125
+ const base = {
126
+ ...buildBaseOptions(model, context, options, apiKey),
127
+ toolChoice: options?.toolChoice,
128
+ };
125
129
  const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;
126
130
  const reasoningEffort = clampedReasoning === "off" ? undefined : clampedReasoning;
127
131
  return stream(model, context, {
@@ -179,7 +183,7 @@ function resolveAzureConfig(model, options) {
179
183
  };
180
184
  }
181
185
  function createClient(model, apiKey, options) {
182
- const headers = { ...model.headers };
186
+ const headers = { "User-Agent": getPiUserAgent(), ...model.headers };
183
187
  if (options?.headers) {
184
188
  Object.assign(headers, options.headers);
185
189
  }
@@ -216,6 +220,9 @@ function buildParams(model, context, options, deploymentName, grammarToolInputPr
216
220
  supportsOpenAIGrammarTools: model.compat?.supportsOpenAIGrammarTools ?? false,
217
221
  });
218
222
  }
223
+ if (options?.toolChoice !== undefined) {
224
+ params.tool_choice = options.toolChoice;
225
+ }
219
226
  if (model.reasoning) {
220
227
  if (options?.reasoningEffort || options?.reasoningSummary) {
221
228
  const effort = options?.reasoningEffort