@aibyzero/byz 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1215) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +21 -0
  3. package/README.md +148 -5
  4. package/dist/cli.js +55 -0
  5. package/dist/runtime/bun/cli.d.ts +3 -0
  6. package/dist/runtime/bun/cli.d.ts.map +1 -0
  7. package/dist/runtime/bun/cli.js +11 -0
  8. package/dist/runtime/bun/cli.js.map +1 -0
  9. package/dist/runtime/bun/register-bedrock.d.ts +2 -0
  10. package/dist/runtime/bun/register-bedrock.d.ts.map +1 -0
  11. package/dist/runtime/bun/register-bedrock.js +4 -0
  12. package/dist/runtime/bun/register-bedrock.js.map +1 -0
  13. package/dist/runtime/bun/restore-sandbox-env.d.ts +17 -0
  14. package/dist/runtime/bun/restore-sandbox-env.d.ts.map +1 -0
  15. package/dist/runtime/bun/restore-sandbox-env.js +36 -0
  16. package/dist/runtime/bun/restore-sandbox-env.js.map +1 -0
  17. package/dist/runtime/bundle/chunks/anthropic-messages-JWX2WP65.js +45 -0
  18. package/dist/runtime/bundle/chunks/anthropic.js +75 -0
  19. package/dist/runtime/bundle/chunks/azure-openai-responses-5ENVCQ7U.js +2 -0
  20. package/dist/runtime/bundle/chunks/bedrock-converse-stream.js +74 -0
  21. package/dist/runtime/bundle/chunks/chunk-4L3WN2XY.js +2 -0
  22. package/dist/runtime/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
  23. package/dist/runtime/bundle/chunks/chunk-6R7UI4IY.js +2 -0
  24. package/dist/runtime/bundle/chunks/chunk-AXIIZGTV.js +2 -0
  25. package/dist/runtime/bundle/chunks/chunk-CCRJHU72.js +1547 -0
  26. package/dist/runtime/bundle/chunks/chunk-DRQDKNXA.js +2 -0
  27. package/dist/runtime/bundle/chunks/chunk-GMWCTUPB.js +2 -0
  28. package/dist/runtime/bundle/chunks/chunk-GPPBJGBU.js +50 -0
  29. package/dist/runtime/bundle/chunks/chunk-JUUC5AZY.js +2 -0
  30. package/dist/runtime/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
  31. package/dist/runtime/bundle/chunks/chunk-MNAIPA3J.js +2 -0
  32. package/dist/runtime/bundle/chunks/chunk-NBBFIJUL.js +11 -0
  33. package/dist/runtime/bundle/chunks/chunk-NUHFSC37.js +25 -0
  34. package/dist/runtime/bundle/chunks/chunk-PGXDEOVV.js +2 -0
  35. package/dist/runtime/bundle/chunks/chunk-PJACZCIR.js +2 -0
  36. package/dist/runtime/bundle/chunks/chunk-PRRNXB7S.js +2 -0
  37. package/dist/runtime/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
  38. package/dist/runtime/bundle/chunks/chunk-TRDNDS6A.js +4 -0
  39. package/dist/runtime/bundle/chunks/chunk-UAQELI3K.js +2 -0
  40. package/dist/runtime/bundle/chunks/chunk-XDUWOHPL.js +6 -0
  41. package/dist/runtime/bundle/chunks/chunk-XNGRGP62.js +2 -0
  42. package/dist/runtime/bundle/chunks/dist-RDWOYWHR.js +13 -0
  43. package/dist/runtime/bundle/chunks/github-copilot.js +2 -0
  44. package/dist/runtime/bundle/chunks/google-generative-ai-XDKMGBCJ.js +2 -0
  45. package/dist/runtime/bundle/chunks/google-vertex-D5FGEO3Y.js +2 -0
  46. package/dist/runtime/bundle/chunks/image-resize-worker.js +2 -0
  47. package/dist/runtime/bundle/chunks/kimi-coding.js +2 -0
  48. package/dist/runtime/bundle/chunks/lib-HGQMNYVT.js +9 -0
  49. package/dist/runtime/bundle/chunks/mistral-conversations-YK73UAOZ.js +5 -0
  50. package/dist/runtime/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
  51. package/dist/runtime/bundle/chunks/openai-codex-responses-GJVBJXLB.js +8 -0
  52. package/dist/runtime/bundle/chunks/openai-codex.js +75 -0
  53. package/dist/runtime/bundle/chunks/openai-completions-XGHMB3UO.js +7 -0
  54. package/dist/runtime/bundle/chunks/openai-responses-BSOJMSEV.js +2 -0
  55. package/dist/runtime/bundle/chunks/openrouter-images-N4XVVFSD.js +2 -0
  56. package/dist/runtime/bundle/chunks/openrouter.js +75 -0
  57. package/dist/runtime/bundle/chunks/pi-messages-TPFH44NP.js +8 -0
  58. package/dist/runtime/bundle/chunks/radius.js +75 -0
  59. package/dist/runtime/bundle/chunks/src-UK77SYZE.js +4 -0
  60. package/dist/runtime/bundle/chunks/xai.js +2 -0
  61. package/dist/runtime/bundle/cli.js +3 -0
  62. package/dist/runtime/bundle/client.js +2 -0
  63. package/dist/runtime/bundle/index.js +2 -0
  64. package/dist/runtime/bundle/rpc-entry.js +3 -0
  65. package/dist/runtime/cli/args.d.ts +61 -0
  66. package/dist/runtime/cli/args.d.ts.map +1 -0
  67. package/dist/runtime/cli/args.js +439 -0
  68. package/dist/runtime/cli/args.js.map +1 -0
  69. package/dist/runtime/cli/auth-check.d.ts +19 -0
  70. package/dist/runtime/cli/auth-check.d.ts.map +1 -0
  71. package/dist/runtime/cli/auth-check.js +50 -0
  72. package/dist/runtime/cli/auth-check.js.map +1 -0
  73. package/dist/runtime/cli/auth-command.d.ts +24 -0
  74. package/dist/runtime/cli/auth-command.d.ts.map +1 -0
  75. package/dist/runtime/cli/auth-command.js +103 -0
  76. package/dist/runtime/cli/auth-command.js.map +1 -0
  77. package/dist/runtime/cli/config-selector.d.ts +16 -0
  78. package/dist/runtime/cli/config-selector.d.ts.map +1 -0
  79. package/dist/runtime/cli/config-selector.js +31 -0
  80. package/dist/runtime/cli/config-selector.js.map +1 -0
  81. package/dist/runtime/cli/credential-print.d.ts +13 -0
  82. package/dist/runtime/cli/credential-print.d.ts.map +1 -0
  83. package/dist/runtime/cli/credential-print.js +76 -0
  84. package/dist/runtime/cli/credential-print.js.map +1 -0
  85. package/dist/runtime/cli/experimental/auth.d.ts +16 -0
  86. package/dist/runtime/cli/experimental/auth.d.ts.map +1 -0
  87. package/dist/runtime/cli/experimental/auth.js +13 -0
  88. package/dist/runtime/cli/experimental/auth.js.map +1 -0
  89. package/dist/runtime/cli/experimental/cli.d.ts +6 -0
  90. package/dist/runtime/cli/experimental/cli.d.ts.map +1 -0
  91. package/dist/runtime/cli/experimental/cli.js +5 -0
  92. package/dist/runtime/cli/experimental/cli.js.map +1 -0
  93. package/dist/runtime/cli/experimental/command-options.d.ts +17 -0
  94. package/dist/runtime/cli/experimental/command-options.d.ts.map +1 -0
  95. package/dist/runtime/cli/experimental/command-options.js +35 -0
  96. package/dist/runtime/cli/experimental/command-options.js.map +1 -0
  97. package/dist/runtime/cli/experimental/command.d.ts +63 -0
  98. package/dist/runtime/cli/experimental/command.d.ts.map +1 -0
  99. package/dist/runtime/cli/experimental/command.js +130 -0
  100. package/dist/runtime/cli/experimental/command.js.map +1 -0
  101. package/dist/runtime/cli/experimental/commands/client.d.ts +13 -0
  102. package/dist/runtime/cli/experimental/commands/client.d.ts.map +1 -0
  103. package/dist/runtime/cli/experimental/commands/client.js +25 -0
  104. package/dist/runtime/cli/experimental/commands/client.js.map +1 -0
  105. package/dist/runtime/cli/experimental/commands/pi.d.ts +15 -0
  106. package/dist/runtime/cli/experimental/commands/pi.d.ts.map +1 -0
  107. package/dist/runtime/cli/experimental/commands/pi.js +28 -0
  108. package/dist/runtime/cli/experimental/commands/pi.js.map +1 -0
  109. package/dist/runtime/cli/experimental/commands/server.d.ts +13 -0
  110. package/dist/runtime/cli/experimental/commands/server.d.ts.map +1 -0
  111. package/dist/runtime/cli/experimental/commands/server.js +25 -0
  112. package/dist/runtime/cli/experimental/commands/server.js.map +1 -0
  113. package/dist/runtime/cli/experimental/transport-address.d.ts +10 -0
  114. package/dist/runtime/cli/experimental/transport-address.d.ts.map +1 -0
  115. package/dist/runtime/cli/experimental/transport-address.js +38 -0
  116. package/dist/runtime/cli/experimental/transport-address.js.map +1 -0
  117. package/dist/runtime/cli/file-processor.d.ts +15 -0
  118. package/dist/runtime/cli/file-processor.d.ts.map +1 -0
  119. package/dist/runtime/cli/file-processor.js +71 -0
  120. package/dist/runtime/cli/file-processor.js.map +1 -0
  121. package/dist/runtime/cli/initial-message.d.ts +18 -0
  122. package/dist/runtime/cli/initial-message.d.ts.map +1 -0
  123. package/dist/runtime/cli/initial-message.js +22 -0
  124. package/dist/runtime/cli/initial-message.js.map +1 -0
  125. package/dist/runtime/cli/list-models.d.ts +9 -0
  126. package/dist/runtime/cli/list-models.d.ts.map +1 -0
  127. package/dist/runtime/cli/list-models.js +98 -0
  128. package/dist/runtime/cli/list-models.js.map +1 -0
  129. package/dist/runtime/cli/project-trust.d.ts +10 -0
  130. package/dist/runtime/cli/project-trust.d.ts.map +1 -0
  131. package/dist/runtime/cli/project-trust.js +48 -0
  132. package/dist/runtime/cli/project-trust.js.map +1 -0
  133. package/dist/runtime/cli/session-picker.d.ts +10 -0
  134. package/dist/runtime/cli/session-picker.d.ts.map +1 -0
  135. package/dist/runtime/cli/session-picker.js +36 -0
  136. package/dist/runtime/cli/session-picker.js.map +1 -0
  137. package/dist/runtime/cli/startup-ui.d.ts +20 -0
  138. package/dist/runtime/cli/startup-ui.d.ts.map +1 -0
  139. package/dist/runtime/cli/startup-ui.js +184 -0
  140. package/dist/runtime/cli/startup-ui.js.map +1 -0
  141. package/dist/runtime/cli.d.ts +3 -0
  142. package/dist/runtime/cli.d.ts.map +1 -0
  143. package/dist/runtime/cli.js +19 -0
  144. package/dist/runtime/cli.js.map +1 -0
  145. package/dist/runtime/client/index.d.ts +3 -0
  146. package/dist/runtime/client/index.d.ts.map +1 -0
  147. package/dist/runtime/client/index.js +3 -0
  148. package/dist/runtime/client/index.js.map +1 -0
  149. package/dist/runtime/client/remote-session.d.ts +53 -0
  150. package/dist/runtime/client/remote-session.d.ts.map +1 -0
  151. package/dist/runtime/client/remote-session.js +340 -0
  152. package/dist/runtime/client/remote-session.js.map +1 -0
  153. package/dist/runtime/client/transcript.d.ts +12 -0
  154. package/dist/runtime/client/transcript.d.ts.map +1 -0
  155. package/dist/runtime/client/transcript.js +98 -0
  156. package/dist/runtime/client/transcript.js.map +1 -0
  157. package/dist/runtime/config.d.ts +98 -0
  158. package/dist/runtime/config.d.ts.map +1 -0
  159. package/dist/runtime/config.js +469 -0
  160. package/dist/runtime/config.js.map +1 -0
  161. package/dist/runtime/core/agent-session-runtime.d.ts +119 -0
  162. package/dist/runtime/core/agent-session-runtime.d.ts.map +1 -0
  163. package/dist/runtime/core/agent-session-runtime.js +309 -0
  164. package/dist/runtime/core/agent-session-runtime.js.map +1 -0
  165. package/dist/runtime/core/agent-session-services.d.ts +86 -0
  166. package/dist/runtime/core/agent-session-services.d.ts.map +1 -0
  167. package/dist/runtime/core/agent-session-services.js +134 -0
  168. package/dist/runtime/core/agent-session-services.js.map +1 -0
  169. package/dist/runtime/core/agent-session.d.ts +678 -0
  170. package/dist/runtime/core/agent-session.d.ts.map +1 -0
  171. package/dist/runtime/core/agent-session.js +2808 -0
  172. package/dist/runtime/core/agent-session.js.map +1 -0
  173. package/dist/runtime/core/auth-guidance.d.ts +5 -0
  174. package/dist/runtime/core/auth-guidance.d.ts.map +1 -0
  175. package/dist/runtime/core/auth-guidance.js +21 -0
  176. package/dist/runtime/core/auth-guidance.js.map +1 -0
  177. package/dist/runtime/core/auth-storage.d.ts +72 -0
  178. package/dist/runtime/core/auth-storage.d.ts.map +1 -0
  179. package/dist/runtime/core/auth-storage.js +426 -0
  180. package/dist/runtime/core/auth-storage.js.map +1 -0
  181. package/dist/runtime/core/bash-executor.d.ts +32 -0
  182. package/dist/runtime/core/bash-executor.d.ts.map +1 -0
  183. package/dist/runtime/core/bash-executor.js +111 -0
  184. package/dist/runtime/core/bash-executor.js.map +1 -0
  185. package/dist/runtime/core/cache-stats.d.ts +49 -0
  186. package/dist/runtime/core/cache-stats.d.ts.map +1 -0
  187. package/dist/runtime/core/cache-stats.js +101 -0
  188. package/dist/runtime/core/cache-stats.js.map +1 -0
  189. package/dist/runtime/core/compaction/branch-summarization.d.ts +98 -0
  190. package/dist/runtime/core/compaction/branch-summarization.d.ts.map +1 -0
  191. package/dist/runtime/core/compaction/branch-summarization.js +250 -0
  192. package/dist/runtime/core/compaction/branch-summarization.js.map +1 -0
  193. package/dist/runtime/core/compaction/compaction.d.ts +143 -0
  194. package/dist/runtime/core/compaction/compaction.d.ts.map +1 -0
  195. package/dist/runtime/core/compaction/compaction.js +669 -0
  196. package/dist/runtime/core/compaction/compaction.js.map +1 -0
  197. package/dist/runtime/core/compaction/index.d.ts +7 -0
  198. package/dist/runtime/core/compaction/index.d.ts.map +1 -0
  199. package/dist/runtime/core/compaction/index.js +7 -0
  200. package/dist/runtime/core/compaction/index.js.map +1 -0
  201. package/dist/runtime/core/compaction/utils.d.ts +38 -0
  202. package/dist/runtime/core/compaction/utils.d.ts.map +1 -0
  203. package/dist/runtime/core/compaction/utils.js +142 -0
  204. package/dist/runtime/core/compaction/utils.js.map +1 -0
  205. package/dist/runtime/core/defaults.d.ts +4 -0
  206. package/dist/runtime/core/defaults.d.ts.map +1 -0
  207. package/dist/runtime/core/defaults.js +11 -0
  208. package/dist/runtime/core/defaults.js.map +1 -0
  209. package/dist/runtime/core/diagnostics.d.ts +15 -0
  210. package/dist/runtime/core/diagnostics.d.ts.map +1 -0
  211. package/dist/runtime/core/diagnostics.js +2 -0
  212. package/dist/runtime/core/diagnostics.js.map +1 -0
  213. package/dist/runtime/core/event-bus.d.ts +9 -0
  214. package/dist/runtime/core/event-bus.d.ts.map +1 -0
  215. package/dist/runtime/core/event-bus.js +25 -0
  216. package/dist/runtime/core/event-bus.js.map +1 -0
  217. package/dist/runtime/core/exec.d.ts +29 -0
  218. package/dist/runtime/core/exec.d.ts.map +1 -0
  219. package/dist/runtime/core/exec.js +75 -0
  220. package/dist/runtime/core/exec.js.map +1 -0
  221. package/dist/runtime/core/experimental.d.ts +6 -0
  222. package/dist/runtime/core/experimental.d.ts.map +1 -0
  223. package/dist/runtime/core/experimental.js +8 -0
  224. package/dist/runtime/core/experimental.js.map +1 -0
  225. package/dist/runtime/core/export-html/ansi-to-html.d.ts +22 -0
  226. package/dist/runtime/core/export-html/ansi-to-html.d.ts.map +1 -0
  227. package/dist/runtime/core/export-html/ansi-to-html.js +249 -0
  228. package/dist/runtime/core/export-html/ansi-to-html.js.map +1 -0
  229. package/dist/runtime/core/export-html/index.d.ts +37 -0
  230. package/dist/runtime/core/export-html/index.d.ts.map +1 -0
  231. package/dist/runtime/core/export-html/index.js +226 -0
  232. package/dist/runtime/core/export-html/index.js.map +1 -0
  233. package/dist/runtime/core/export-html/template.css +1066 -0
  234. package/dist/runtime/core/export-html/template.html +55 -0
  235. package/dist/runtime/core/export-html/template.js +1864 -0
  236. package/dist/runtime/core/export-html/tool-renderer.d.ts +34 -0
  237. package/dist/runtime/core/export-html/tool-renderer.d.ts.map +1 -0
  238. package/dist/runtime/core/export-html/tool-renderer.js +108 -0
  239. package/dist/runtime/core/export-html/tool-renderer.js.map +1 -0
  240. package/dist/runtime/core/export-html/vendor/highlight.min.js +1213 -0
  241. package/dist/runtime/core/export-html/vendor/marked.min.js +78 -0
  242. package/dist/runtime/core/extensions/index.d.ts +12 -0
  243. package/dist/runtime/core/extensions/index.d.ts.map +1 -0
  244. package/dist/runtime/core/extensions/index.js +9 -0
  245. package/dist/runtime/core/extensions/index.js.map +1 -0
  246. package/dist/runtime/core/extensions/loader.d.ts +23 -0
  247. package/dist/runtime/core/extensions/loader.d.ts.map +1 -0
  248. package/dist/runtime/core/extensions/loader.js +648 -0
  249. package/dist/runtime/core/extensions/loader.js.map +1 -0
  250. package/dist/runtime/core/extensions/runner.d.ts +173 -0
  251. package/dist/runtime/core/extensions/runner.d.ts.map +1 -0
  252. package/dist/runtime/core/extensions/runner.js +967 -0
  253. package/dist/runtime/core/extensions/runner.js.map +1 -0
  254. package/dist/runtime/core/extensions/types.d.ts +1328 -0
  255. package/dist/runtime/core/extensions/types.d.ts.map +1 -0
  256. package/dist/runtime/core/extensions/types.js +48 -0
  257. package/dist/runtime/core/extensions/types.js.map +1 -0
  258. package/dist/runtime/core/extensions/wrapper.d.ts +20 -0
  259. package/dist/runtime/core/extensions/wrapper.d.ts.map +1 -0
  260. package/dist/runtime/core/extensions/wrapper.js +41 -0
  261. package/dist/runtime/core/extensions/wrapper.js.map +1 -0
  262. package/dist/runtime/core/footer-data-provider.d.ts +64 -0
  263. package/dist/runtime/core/footer-data-provider.d.ts.map +1 -0
  264. package/dist/runtime/core/footer-data-provider.js +338 -0
  265. package/dist/runtime/core/footer-data-provider.js.map +1 -0
  266. package/dist/runtime/core/http-dispatcher.d.ts +22 -0
  267. package/dist/runtime/core/http-dispatcher.d.ts.map +1 -0
  268. package/dist/runtime/core/http-dispatcher.js +96 -0
  269. package/dist/runtime/core/http-dispatcher.js.map +1 -0
  270. package/dist/runtime/core/index.d.ts +13 -0
  271. package/dist/runtime/core/index.d.ts.map +1 -0
  272. package/dist/runtime/core/index.js +13 -0
  273. package/dist/runtime/core/index.js.map +1 -0
  274. package/dist/runtime/core/keybindings.d.ts +423 -0
  275. package/dist/runtime/core/keybindings.d.ts.map +1 -0
  276. package/dist/runtime/core/keybindings.js +317 -0
  277. package/dist/runtime/core/keybindings.js.map +1 -0
  278. package/dist/runtime/core/messages.d.ts +77 -0
  279. package/dist/runtime/core/messages.d.ts.map +1 -0
  280. package/dist/runtime/core/messages.js +123 -0
  281. package/dist/runtime/core/messages.js.map +1 -0
  282. package/dist/runtime/core/model-config.d.ts +576 -0
  283. package/dist/runtime/core/model-config.d.ts.map +1 -0
  284. package/dist/runtime/core/model-config.js +256 -0
  285. package/dist/runtime/core/model-config.js.map +1 -0
  286. package/dist/runtime/core/model-registry.d.ts +45 -0
  287. package/dist/runtime/core/model-registry.d.ts.map +1 -0
  288. package/dist/runtime/core/model-registry.js +107 -0
  289. package/dist/runtime/core/model-registry.js.map +1 -0
  290. package/dist/runtime/core/model-resolver.d.ts +124 -0
  291. package/dist/runtime/core/model-resolver.d.ts.map +1 -0
  292. package/dist/runtime/core/model-resolver.js +589 -0
  293. package/dist/runtime/core/model-resolver.js.map +1 -0
  294. package/dist/runtime/core/model-runtime.d.ts +100 -0
  295. package/dist/runtime/core/model-runtime.d.ts.map +1 -0
  296. package/dist/runtime/core/model-runtime.js +599 -0
  297. package/dist/runtime/core/model-runtime.js.map +1 -0
  298. package/dist/runtime/core/models-store.d.ts +22 -0
  299. package/dist/runtime/core/models-store.d.ts.map +1 -0
  300. package/dist/runtime/core/models-store.js +115 -0
  301. package/dist/runtime/core/models-store.js.map +1 -0
  302. package/dist/runtime/core/output-guard.d.ts +7 -0
  303. package/dist/runtime/core/output-guard.d.ts.map +1 -0
  304. package/dist/runtime/core/output-guard.js +89 -0
  305. package/dist/runtime/core/output-guard.js.map +1 -0
  306. package/dist/runtime/core/package-manager.d.ts +213 -0
  307. package/dist/runtime/core/package-manager.d.ts.map +1 -0
  308. package/dist/runtime/core/package-manager.js +2177 -0
  309. package/dist/runtime/core/package-manager.js.map +1 -0
  310. package/dist/runtime/core/pi-manifest.d.ts +8 -0
  311. package/dist/runtime/core/pi-manifest.d.ts.map +1 -0
  312. package/dist/runtime/core/pi-manifest.js +26 -0
  313. package/dist/runtime/core/pi-manifest.js.map +1 -0
  314. package/dist/runtime/core/project-trust.d.ts +15 -0
  315. package/dist/runtime/core/project-trust.d.ts.map +1 -0
  316. package/dist/runtime/core/project-trust.js +59 -0
  317. package/dist/runtime/core/project-trust.js.map +1 -0
  318. package/dist/runtime/core/prompt-templates.d.ts +54 -0
  319. package/dist/runtime/core/prompt-templates.d.ts.map +1 -0
  320. package/dist/runtime/core/prompt-templates.js +236 -0
  321. package/dist/runtime/core/prompt-templates.js.map +1 -0
  322. package/dist/runtime/core/provider-attribution.d.ts +4 -0
  323. package/dist/runtime/core/provider-attribution.d.ts.map +1 -0
  324. package/dist/runtime/core/provider-attribution.js +72 -0
  325. package/dist/runtime/core/provider-attribution.js.map +1 -0
  326. package/dist/runtime/core/provider-composer.d.ts +58 -0
  327. package/dist/runtime/core/provider-composer.d.ts.map +1 -0
  328. package/dist/runtime/core/provider-composer.js +396 -0
  329. package/dist/runtime/core/provider-composer.js.map +1 -0
  330. package/dist/runtime/core/radius.d.ts +2 -0
  331. package/dist/runtime/core/radius.d.ts.map +1 -0
  332. package/dist/runtime/core/radius.js +2 -0
  333. package/dist/runtime/core/radius.js.map +1 -0
  334. package/dist/runtime/core/remote-catalog-provider.d.ts +5 -0
  335. package/dist/runtime/core/remote-catalog-provider.d.ts.map +1 -0
  336. package/dist/runtime/core/remote-catalog-provider.js +122 -0
  337. package/dist/runtime/core/remote-catalog-provider.js.map +1 -0
  338. package/dist/runtime/core/resolve-config-value.d.ts +30 -0
  339. package/dist/runtime/core/resolve-config-value.d.ts.map +1 -0
  340. package/dist/runtime/core/resolve-config-value.js +247 -0
  341. package/dist/runtime/core/resolve-config-value.js.map +1 -0
  342. package/dist/runtime/core/resource-loader.d.ts +221 -0
  343. package/dist/runtime/core/resource-loader.d.ts.map +1 -0
  344. package/dist/runtime/core/resource-loader.js +875 -0
  345. package/dist/runtime/core/resource-loader.js.map +1 -0
  346. package/dist/runtime/core/runtime-credentials.d.ts +15 -0
  347. package/dist/runtime/core/runtime-credentials.d.ts.map +1 -0
  348. package/dist/runtime/core/runtime-credentials.js +39 -0
  349. package/dist/runtime/core/runtime-credentials.js.map +1 -0
  350. package/dist/runtime/core/sdk.d.ts +108 -0
  351. package/dist/runtime/core/sdk.d.ts.map +1 -0
  352. package/dist/runtime/core/sdk.js +275 -0
  353. package/dist/runtime/core/sdk.js.map +1 -0
  354. package/dist/runtime/core/session-cwd.d.ts +19 -0
  355. package/dist/runtime/core/session-cwd.d.ts.map +1 -0
  356. package/dist/runtime/core/session-cwd.js +38 -0
  357. package/dist/runtime/core/session-cwd.js.map +1 -0
  358. package/dist/runtime/core/session-export.d.ts +4 -0
  359. package/dist/runtime/core/session-export.d.ts.map +1 -0
  360. package/dist/runtime/core/session-export.js +32 -0
  361. package/dist/runtime/core/session-export.js.map +1 -0
  362. package/dist/runtime/core/session-manager.d.ts +356 -0
  363. package/dist/runtime/core/session-manager.d.ts.map +1 -0
  364. package/dist/runtime/core/session-manager.js +1341 -0
  365. package/dist/runtime/core/session-manager.js.map +1 -0
  366. package/dist/runtime/core/settings-diagnostics.d.ts +9 -0
  367. package/dist/runtime/core/settings-diagnostics.d.ts.map +1 -0
  368. package/dist/runtime/core/settings-diagnostics.js +21 -0
  369. package/dist/runtime/core/settings-diagnostics.js.map +1 -0
  370. package/dist/runtime/core/settings-manager.d.ts +324 -0
  371. package/dist/runtime/core/settings-manager.d.ts.map +1 -0
  372. package/dist/runtime/core/settings-manager.js +980 -0
  373. package/dist/runtime/core/settings-manager.js.map +1 -0
  374. package/dist/runtime/core/skills.d.ts +60 -0
  375. package/dist/runtime/core/skills.d.ts.map +1 -0
  376. package/dist/runtime/core/skills.js +405 -0
  377. package/dist/runtime/core/skills.js.map +1 -0
  378. package/dist/runtime/core/slash-commands.d.ts +15 -0
  379. package/dist/runtime/core/slash-commands.d.ts.map +1 -0
  380. package/dist/runtime/core/slash-commands.js +27 -0
  381. package/dist/runtime/core/slash-commands.js.map +1 -0
  382. package/dist/runtime/core/source-info.d.ts +18 -0
  383. package/dist/runtime/core/source-info.d.ts.map +1 -0
  384. package/dist/runtime/core/source-info.js +19 -0
  385. package/dist/runtime/core/source-info.js.map +1 -0
  386. package/dist/runtime/core/system-prompt.d.ts +28 -0
  387. package/dist/runtime/core/system-prompt.d.ts.map +1 -0
  388. package/dist/runtime/core/system-prompt.js +119 -0
  389. package/dist/runtime/core/system-prompt.js.map +1 -0
  390. package/dist/runtime/core/telemetry.d.ts +3 -0
  391. package/dist/runtime/core/telemetry.d.ts.map +1 -0
  392. package/dist/runtime/core/telemetry.js +9 -0
  393. package/dist/runtime/core/telemetry.js.map +1 -0
  394. package/dist/runtime/core/timings.d.ts +10 -0
  395. package/dist/runtime/core/timings.d.ts.map +1 -0
  396. package/dist/runtime/core/timings.js +41 -0
  397. package/dist/runtime/core/timings.js.map +1 -0
  398. package/dist/runtime/core/tools/bash.d.ts +87 -0
  399. package/dist/runtime/core/tools/bash.d.ts.map +1 -0
  400. package/dist/runtime/core/tools/bash.js +410 -0
  401. package/dist/runtime/core/tools/bash.js.map +1 -0
  402. package/dist/runtime/core/tools/edit-diff.d.ts +101 -0
  403. package/dist/runtime/core/tools/edit-diff.d.ts.map +1 -0
  404. package/dist/runtime/core/tools/edit-diff.js +421 -0
  405. package/dist/runtime/core/tools/edit-diff.js.map +1 -0
  406. package/dist/runtime/core/tools/edit.d.ts +55 -0
  407. package/dist/runtime/core/tools/edit.d.ts.map +1 -0
  408. package/dist/runtime/core/tools/edit.js +306 -0
  409. package/dist/runtime/core/tools/edit.js.map +1 -0
  410. package/dist/runtime/core/tools/file-mutation-queue.d.ts +6 -0
  411. package/dist/runtime/core/tools/file-mutation-queue.d.ts.map +1 -0
  412. package/dist/runtime/core/tools/file-mutation-queue.js +52 -0
  413. package/dist/runtime/core/tools/file-mutation-queue.js.map +1 -0
  414. package/dist/runtime/core/tools/find.d.ts +42 -0
  415. package/dist/runtime/core/tools/find.d.ts.map +1 -0
  416. package/dist/runtime/core/tools/find.js +302 -0
  417. package/dist/runtime/core/tools/find.js.map +1 -0
  418. package/dist/runtime/core/tools/grep.d.ts +41 -0
  419. package/dist/runtime/core/tools/grep.d.ts.map +1 -0
  420. package/dist/runtime/core/tools/grep.js +308 -0
  421. package/dist/runtime/core/tools/grep.js.map +1 -0
  422. package/dist/runtime/core/tools/index.d.ts +43 -0
  423. package/dist/runtime/core/tools/index.d.ts.map +1 -0
  424. package/dist/runtime/core/tools/index.js +129 -0
  425. package/dist/runtime/core/tools/index.js.map +1 -0
  426. package/dist/runtime/core/tools/ls.d.ts +41 -0
  427. package/dist/runtime/core/tools/ls.d.ts.map +1 -0
  428. package/dist/runtime/core/tools/ls.js +171 -0
  429. package/dist/runtime/core/tools/ls.js.map +1 -0
  430. package/dist/runtime/core/tools/output-accumulator.d.ts +52 -0
  431. package/dist/runtime/core/tools/output-accumulator.d.ts.map +1 -0
  432. package/dist/runtime/core/tools/output-accumulator.js +184 -0
  433. package/dist/runtime/core/tools/output-accumulator.js.map +1 -0
  434. package/dist/runtime/core/tools/path-utils.d.ts +10 -0
  435. package/dist/runtime/core/tools/path-utils.d.ts.map +1 -0
  436. package/dist/runtime/core/tools/path-utils.js +99 -0
  437. package/dist/runtime/core/tools/path-utils.js.map +1 -0
  438. package/dist/runtime/core/tools/powershell.d.ts +16 -0
  439. package/dist/runtime/core/tools/powershell.d.ts.map +1 -0
  440. package/dist/runtime/core/tools/powershell.js +39 -0
  441. package/dist/runtime/core/tools/powershell.js.map +1 -0
  442. package/dist/runtime/core/tools/read.d.ts +39 -0
  443. package/dist/runtime/core/tools/read.d.ts.map +1 -0
  444. package/dist/runtime/core/tools/read.js +282 -0
  445. package/dist/runtime/core/tools/read.js.map +1 -0
  446. package/dist/runtime/core/tools/render-utils.d.ts +24 -0
  447. package/dist/runtime/core/tools/render-utils.d.ts.map +1 -0
  448. package/dist/runtime/core/tools/render-utils.js +65 -0
  449. package/dist/runtime/core/tools/render-utils.js.map +1 -0
  450. package/dist/runtime/core/tools/tool-definition-wrapper.d.ts +14 -0
  451. package/dist/runtime/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  452. package/dist/runtime/core/tools/tool-definition-wrapper.js +36 -0
  453. package/dist/runtime/core/tools/tool-definition-wrapper.js.map +1 -0
  454. package/dist/runtime/core/tools/truncate.d.ts +70 -0
  455. package/dist/runtime/core/tools/truncate.d.ts.map +1 -0
  456. package/dist/runtime/core/tools/truncate.js +215 -0
  457. package/dist/runtime/core/tools/truncate.js.map +1 -0
  458. package/dist/runtime/core/tools/write.d.ts +30 -0
  459. package/dist/runtime/core/tools/write.d.ts.map +1 -0
  460. package/dist/runtime/core/tools/write.js +203 -0
  461. package/dist/runtime/core/tools/write.js.map +1 -0
  462. package/dist/runtime/core/trust-manager.d.ts +36 -0
  463. package/dist/runtime/core/trust-manager.d.ts.map +1 -0
  464. package/dist/runtime/core/trust-manager.js +203 -0
  465. package/dist/runtime/core/trust-manager.js.map +1 -0
  466. package/dist/runtime/core/usage-totals.d.ts +19 -0
  467. package/dist/runtime/core/usage-totals.d.ts.map +1 -0
  468. package/dist/runtime/core/usage-totals.js +52 -0
  469. package/dist/runtime/core/usage-totals.js.map +1 -0
  470. package/dist/runtime/extensions/index.d.ts +3 -0
  471. package/dist/runtime/extensions/index.d.ts.map +1 -0
  472. package/dist/runtime/extensions/index.js +3 -0
  473. package/dist/runtime/extensions/index.js.map +1 -0
  474. package/dist/runtime/extensions/llama/client.d.ts +67 -0
  475. package/dist/runtime/extensions/llama/client.d.ts.map +1 -0
  476. package/dist/runtime/extensions/llama/client.js +309 -0
  477. package/dist/runtime/extensions/llama/client.js.map +1 -0
  478. package/dist/runtime/extensions/llama/huggingface.d.ts +23 -0
  479. package/dist/runtime/extensions/llama/huggingface.d.ts.map +1 -0
  480. package/dist/runtime/extensions/llama/huggingface.js +141 -0
  481. package/dist/runtime/extensions/llama/huggingface.js.map +1 -0
  482. package/dist/runtime/extensions/llama/index.d.ts +3 -0
  483. package/dist/runtime/extensions/llama/index.d.ts.map +1 -0
  484. package/dist/runtime/extensions/llama/index.js +219 -0
  485. package/dist/runtime/extensions/llama/index.js.map +1 -0
  486. package/dist/runtime/extensions/llama/provider.d.ts +12 -0
  487. package/dist/runtime/extensions/llama/provider.d.ts.map +1 -0
  488. package/dist/runtime/extensions/llama/provider.js +146 -0
  489. package/dist/runtime/extensions/llama/provider.js.map +1 -0
  490. package/dist/runtime/extensions/llama/ui.d.ts +42 -0
  491. package/dist/runtime/extensions/llama/ui.d.ts.map +1 -0
  492. package/dist/runtime/extensions/llama/ui.js +416 -0
  493. package/dist/runtime/extensions/llama/ui.js.map +1 -0
  494. package/dist/runtime/index.d.ts +37 -0
  495. package/dist/runtime/index.d.ts.map +1 -0
  496. package/dist/runtime/index.js +49 -0
  497. package/dist/runtime/index.js.map +1 -0
  498. package/dist/runtime/main.d.ts +16 -0
  499. package/dist/runtime/main.d.ts.map +1 -0
  500. package/dist/runtime/main.js +799 -0
  501. package/dist/runtime/main.js.map +1 -0
  502. package/dist/runtime/migrations.d.ts +33 -0
  503. package/dist/runtime/migrations.d.ts.map +1 -0
  504. package/dist/runtime/migrations.js +282 -0
  505. package/dist/runtime/migrations.js.map +1 -0
  506. package/dist/runtime/modes/index.d.ts +10 -0
  507. package/dist/runtime/modes/index.d.ts.map +1 -0
  508. package/dist/runtime/modes/index.js +8 -0
  509. package/dist/runtime/modes/index.js.map +1 -0
  510. package/dist/runtime/modes/interactive/assets/clankolas.png +0 -0
  511. package/dist/runtime/modes/interactive/components/armin.d.ts +34 -0
  512. package/dist/runtime/modes/interactive/components/armin.d.ts.map +1 -0
  513. package/dist/runtime/modes/interactive/components/armin.js +333 -0
  514. package/dist/runtime/modes/interactive/components/armin.js.map +1 -0
  515. package/dist/runtime/modes/interactive/components/assistant-message.d.ts +25 -0
  516. package/dist/runtime/modes/interactive/components/assistant-message.d.ts.map +1 -0
  517. package/dist/runtime/modes/interactive/components/assistant-message.js +150 -0
  518. package/dist/runtime/modes/interactive/components/assistant-message.js.map +1 -0
  519. package/dist/runtime/modes/interactive/components/bash-execution.d.ts +34 -0
  520. package/dist/runtime/modes/interactive/components/bash-execution.d.ts.map +1 -0
  521. package/dist/runtime/modes/interactive/components/bash-execution.js +175 -0
  522. package/dist/runtime/modes/interactive/components/bash-execution.js.map +1 -0
  523. package/dist/runtime/modes/interactive/components/bordered-loader.d.ts +16 -0
  524. package/dist/runtime/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  525. package/dist/runtime/modes/interactive/components/bordered-loader.js +54 -0
  526. package/dist/runtime/modes/interactive/components/bordered-loader.js.map +1 -0
  527. package/dist/runtime/modes/interactive/components/branch-summary-message.d.ts +16 -0
  528. package/dist/runtime/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  529. package/dist/runtime/modes/interactive/components/branch-summary-message.js +44 -0
  530. package/dist/runtime/modes/interactive/components/branch-summary-message.js.map +1 -0
  531. package/dist/runtime/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  532. package/dist/runtime/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  533. package/dist/runtime/modes/interactive/components/compaction-summary-message.js +45 -0
  534. package/dist/runtime/modes/interactive/components/compaction-summary-message.js.map +1 -0
  535. package/dist/runtime/modes/interactive/components/config-selector.d.ts +102 -0
  536. package/dist/runtime/modes/interactive/components/config-selector.d.ts.map +1 -0
  537. package/dist/runtime/modes/interactive/components/config-selector.js +761 -0
  538. package/dist/runtime/modes/interactive/components/config-selector.js.map +1 -0
  539. package/dist/runtime/modes/interactive/components/countdown-timer.d.ts +14 -0
  540. package/dist/runtime/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  541. package/dist/runtime/modes/interactive/components/countdown-timer.js +33 -0
  542. package/dist/runtime/modes/interactive/components/countdown-timer.js.map +1 -0
  543. package/dist/runtime/modes/interactive/components/custom-editor.d.ts +21 -0
  544. package/dist/runtime/modes/interactive/components/custom-editor.d.ts.map +1 -0
  545. package/dist/runtime/modes/interactive/components/custom-editor.js +77 -0
  546. package/dist/runtime/modes/interactive/components/custom-editor.js.map +1 -0
  547. package/dist/runtime/modes/interactive/components/custom-entry.d.ts +19 -0
  548. package/dist/runtime/modes/interactive/components/custom-entry.d.ts.map +1 -0
  549. package/dist/runtime/modes/interactive/components/custom-entry.js +52 -0
  550. package/dist/runtime/modes/interactive/components/custom-entry.js.map +1 -0
  551. package/dist/runtime/modes/interactive/components/custom-message.d.ts +22 -0
  552. package/dist/runtime/modes/interactive/components/custom-message.d.ts.map +1 -0
  553. package/dist/runtime/modes/interactive/components/custom-message.js +87 -0
  554. package/dist/runtime/modes/interactive/components/custom-message.js.map +1 -0
  555. package/dist/runtime/modes/interactive/components/daxnuts.d.ts +23 -0
  556. package/dist/runtime/modes/interactive/components/daxnuts.d.ts.map +1 -0
  557. package/dist/runtime/modes/interactive/components/daxnuts.js +140 -0
  558. package/dist/runtime/modes/interactive/components/daxnuts.js.map +1 -0
  559. package/dist/runtime/modes/interactive/components/diff.d.ts +12 -0
  560. package/dist/runtime/modes/interactive/components/diff.d.ts.map +1 -0
  561. package/dist/runtime/modes/interactive/components/diff.js +133 -0
  562. package/dist/runtime/modes/interactive/components/diff.js.map +1 -0
  563. package/dist/runtime/modes/interactive/components/dynamic-border.d.ts +15 -0
  564. package/dist/runtime/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  565. package/dist/runtime/modes/interactive/components/dynamic-border.js +21 -0
  566. package/dist/runtime/modes/interactive/components/dynamic-border.js.map +1 -0
  567. package/dist/runtime/modes/interactive/components/earendil-announcement.d.ts +5 -0
  568. package/dist/runtime/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  569. package/dist/runtime/modes/interactive/components/earendil-announcement.js +40 -0
  570. package/dist/runtime/modes/interactive/components/earendil-announcement.js.map +1 -0
  571. package/dist/runtime/modes/interactive/components/extension-editor.d.ts +21 -0
  572. package/dist/runtime/modes/interactive/components/extension-editor.d.ts.map +1 -0
  573. package/dist/runtime/modes/interactive/components/extension-editor.js +98 -0
  574. package/dist/runtime/modes/interactive/components/extension-editor.js.map +1 -0
  575. package/dist/runtime/modes/interactive/components/extension-input.d.ts +23 -0
  576. package/dist/runtime/modes/interactive/components/extension-input.d.ts.map +1 -0
  577. package/dist/runtime/modes/interactive/components/extension-input.js +61 -0
  578. package/dist/runtime/modes/interactive/components/extension-input.js.map +1 -0
  579. package/dist/runtime/modes/interactive/components/extension-selector.d.ts +26 -0
  580. package/dist/runtime/modes/interactive/components/extension-selector.d.ts.map +1 -0
  581. package/dist/runtime/modes/interactive/components/extension-selector.js +83 -0
  582. package/dist/runtime/modes/interactive/components/extension-selector.js.map +1 -0
  583. package/dist/runtime/modes/interactive/components/first-time-setup.d.ts +25 -0
  584. package/dist/runtime/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  585. package/dist/runtime/modes/interactive/components/first-time-setup.js +103 -0
  586. package/dist/runtime/modes/interactive/components/first-time-setup.js.map +1 -0
  587. package/dist/runtime/modes/interactive/components/footer.d.ts +32 -0
  588. package/dist/runtime/modes/interactive/components/footer.d.ts.map +1 -0
  589. package/dist/runtime/modes/interactive/components/footer.js +222 -0
  590. package/dist/runtime/modes/interactive/components/footer.js.map +1 -0
  591. package/dist/runtime/modes/interactive/components/index.d.ts +34 -0
  592. package/dist/runtime/modes/interactive/components/index.d.ts.map +1 -0
  593. package/dist/runtime/modes/interactive/components/index.js +35 -0
  594. package/dist/runtime/modes/interactive/components/index.js.map +1 -0
  595. package/dist/runtime/modes/interactive/components/keybinding-hints.d.ts +13 -0
  596. package/dist/runtime/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  597. package/dist/runtime/modes/interactive/components/keybinding-hints.js +36 -0
  598. package/dist/runtime/modes/interactive/components/keybinding-hints.js.map +1 -0
  599. package/dist/runtime/modes/interactive/components/login-dialog.d.ts +52 -0
  600. package/dist/runtime/modes/interactive/components/login-dialog.d.ts.map +1 -0
  601. package/dist/runtime/modes/interactive/components/login-dialog.js +188 -0
  602. package/dist/runtime/modes/interactive/components/login-dialog.js.map +1 -0
  603. package/dist/runtime/modes/interactive/components/markdown-transform.d.ts +3 -0
  604. package/dist/runtime/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  605. package/dist/runtime/modes/interactive/components/markdown-transform.js +19 -0
  606. package/dist/runtime/modes/interactive/components/markdown-transform.js.map +1 -0
  607. package/dist/runtime/modes/interactive/components/mermaid.d.ts +11 -0
  608. package/dist/runtime/modes/interactive/components/mermaid.d.ts.map +1 -0
  609. package/dist/runtime/modes/interactive/components/mermaid.js +75 -0
  610. package/dist/runtime/modes/interactive/components/mermaid.js.map +1 -0
  611. package/dist/runtime/modes/interactive/components/model-selector.d.ts +60 -0
  612. package/dist/runtime/modes/interactive/components/model-selector.d.ts.map +1 -0
  613. package/dist/runtime/modes/interactive/components/model-selector.js +370 -0
  614. package/dist/runtime/modes/interactive/components/model-selector.js.map +1 -0
  615. package/dist/runtime/modes/interactive/components/oauth-selector.d.ts +33 -0
  616. package/dist/runtime/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  617. package/dist/runtime/modes/interactive/components/oauth-selector.js +163 -0
  618. package/dist/runtime/modes/interactive/components/oauth-selector.js.map +1 -0
  619. package/dist/runtime/modes/interactive/components/scoped-models-selector.d.ts +46 -0
  620. package/dist/runtime/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  621. package/dist/runtime/modes/interactive/components/scoped-models-selector.js +328 -0
  622. package/dist/runtime/modes/interactive/components/scoped-models-selector.js.map +1 -0
  623. package/dist/runtime/modes/interactive/components/session-selector-search.d.ts +23 -0
  624. package/dist/runtime/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  625. package/dist/runtime/modes/interactive/components/session-selector-search.js +155 -0
  626. package/dist/runtime/modes/interactive/components/session-selector-search.js.map +1 -0
  627. package/dist/runtime/modes/interactive/components/session-selector.d.ts +95 -0
  628. package/dist/runtime/modes/interactive/components/session-selector.d.ts.map +1 -0
  629. package/dist/runtime/modes/interactive/components/session-selector.js +867 -0
  630. package/dist/runtime/modes/interactive/components/session-selector.js.map +1 -0
  631. package/dist/runtime/modes/interactive/components/settings-selector.d.ts +90 -0
  632. package/dist/runtime/modes/interactive/components/settings-selector.d.ts.map +1 -0
  633. package/dist/runtime/modes/interactive/components/settings-selector.js +695 -0
  634. package/dist/runtime/modes/interactive/components/settings-selector.js.map +1 -0
  635. package/dist/runtime/modes/interactive/components/settings-submenu.d.ts +72 -0
  636. package/dist/runtime/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  637. package/dist/runtime/modes/interactive/components/settings-submenu.js +165 -0
  638. package/dist/runtime/modes/interactive/components/settings-submenu.js.map +1 -0
  639. package/dist/runtime/modes/interactive/components/show-images-selector.d.ts +10 -0
  640. package/dist/runtime/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  641. package/dist/runtime/modes/interactive/components/show-images-selector.js +39 -0
  642. package/dist/runtime/modes/interactive/components/show-images-selector.js.map +1 -0
  643. package/dist/runtime/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  644. package/dist/runtime/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  645. package/dist/runtime/modes/interactive/components/skill-invocation-message.js +47 -0
  646. package/dist/runtime/modes/interactive/components/skill-invocation-message.js.map +1 -0
  647. package/dist/runtime/modes/interactive/components/status-indicator.d.ts +28 -0
  648. package/dist/runtime/modes/interactive/components/status-indicator.d.ts.map +1 -0
  649. package/dist/runtime/modes/interactive/components/status-indicator.js +60 -0
  650. package/dist/runtime/modes/interactive/components/status-indicator.js.map +1 -0
  651. package/dist/runtime/modes/interactive/components/theme-selector.d.ts +11 -0
  652. package/dist/runtime/modes/interactive/components/theme-selector.d.ts.map +1 -0
  653. package/dist/runtime/modes/interactive/components/theme-selector.js +50 -0
  654. package/dist/runtime/modes/interactive/components/theme-selector.js.map +1 -0
  655. package/dist/runtime/modes/interactive/components/thinking-selector.d.ts +23 -0
  656. package/dist/runtime/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  657. package/dist/runtime/modes/interactive/components/thinking-selector.js +109 -0
  658. package/dist/runtime/modes/interactive/components/thinking-selector.js.map +1 -0
  659. package/dist/runtime/modes/interactive/components/tool-execution.d.ts +63 -0
  660. package/dist/runtime/modes/interactive/components/tool-execution.d.ts.map +1 -0
  661. package/dist/runtime/modes/interactive/components/tool-execution.js +326 -0
  662. package/dist/runtime/modes/interactive/components/tool-execution.js.map +1 -0
  663. package/dist/runtime/modes/interactive/components/tree-selector.d.ts +94 -0
  664. package/dist/runtime/modes/interactive/components/tree-selector.d.ts.map +1 -0
  665. package/dist/runtime/modes/interactive/components/tree-selector.js +1245 -0
  666. package/dist/runtime/modes/interactive/components/tree-selector.js.map +1 -0
  667. package/dist/runtime/modes/interactive/components/trust-selector.d.ts +23 -0
  668. package/dist/runtime/modes/interactive/components/trust-selector.d.ts.map +1 -0
  669. package/dist/runtime/modes/interactive/components/trust-selector.js +91 -0
  670. package/dist/runtime/modes/interactive/components/trust-selector.js.map +1 -0
  671. package/dist/runtime/modes/interactive/components/user-message-selector.d.ts +30 -0
  672. package/dist/runtime/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  673. package/dist/runtime/modes/interactive/components/user-message-selector.js +114 -0
  674. package/dist/runtime/modes/interactive/components/user-message-selector.js.map +1 -0
  675. package/dist/runtime/modes/interactive/components/user-message.d.ts +16 -0
  676. package/dist/runtime/modes/interactive/components/user-message.d.ts.map +1 -0
  677. package/dist/runtime/modes/interactive/components/user-message.js +49 -0
  678. package/dist/runtime/modes/interactive/components/user-message.js.map +1 -0
  679. package/dist/runtime/modes/interactive/components/visual-truncate.d.ts +24 -0
  680. package/dist/runtime/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  681. package/dist/runtime/modes/interactive/components/visual-truncate.js +33 -0
  682. package/dist/runtime/modes/interactive/components/visual-truncate.js.map +1 -0
  683. package/dist/runtime/modes/interactive/external-editor.d.ts +12 -0
  684. package/dist/runtime/modes/interactive/external-editor.d.ts.map +1 -0
  685. package/dist/runtime/modes/interactive/external-editor.js +38 -0
  686. package/dist/runtime/modes/interactive/external-editor.js.map +1 -0
  687. package/dist/runtime/modes/interactive/interactive-mode.d.ts +446 -0
  688. package/dist/runtime/modes/interactive/interactive-mode.d.ts.map +1 -0
  689. package/dist/runtime/modes/interactive/interactive-mode.js +5509 -0
  690. package/dist/runtime/modes/interactive/interactive-mode.js.map +1 -0
  691. package/dist/runtime/modes/interactive/model-catalog-refresh.d.ts +7 -0
  692. package/dist/runtime/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
  693. package/dist/runtime/modes/interactive/model-catalog-refresh.js +34 -0
  694. package/dist/runtime/modes/interactive/model-catalog-refresh.js.map +1 -0
  695. package/dist/runtime/modes/interactive/model-search.d.ts +12 -0
  696. package/dist/runtime/modes/interactive/model-search.d.ts.map +1 -0
  697. package/dist/runtime/modes/interactive/model-search.js +15 -0
  698. package/dist/runtime/modes/interactive/model-search.js.map +1 -0
  699. package/dist/runtime/modes/interactive/session-share.d.ts +16 -0
  700. package/dist/runtime/modes/interactive/session-share.d.ts.map +1 -0
  701. package/dist/runtime/modes/interactive/session-share.js +188 -0
  702. package/dist/runtime/modes/interactive/session-share.js.map +1 -0
  703. package/dist/runtime/modes/interactive/theme/dark.json +90 -0
  704. package/dist/runtime/modes/interactive/theme/light.json +89 -0
  705. package/dist/runtime/modes/interactive/theme/theme-controller.d.ts +40 -0
  706. package/dist/runtime/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  707. package/dist/runtime/modes/interactive/theme/theme-controller.js +125 -0
  708. package/dist/runtime/modes/interactive/theme/theme-controller.js.map +1 -0
  709. package/dist/runtime/modes/interactive/theme/theme-schema.json +352 -0
  710. package/dist/runtime/modes/interactive/theme/theme.d.ts +122 -0
  711. package/dist/runtime/modes/interactive/theme/theme.d.ts.map +1 -0
  712. package/dist/runtime/modes/interactive/theme/theme.js +1092 -0
  713. package/dist/runtime/modes/interactive/theme/theme.js.map +1 -0
  714. package/dist/runtime/modes/json-event.d.ts +34 -0
  715. package/dist/runtime/modes/json-event.d.ts.map +1 -0
  716. package/dist/runtime/modes/json-event.js +29 -0
  717. package/dist/runtime/modes/json-event.js.map +1 -0
  718. package/dist/runtime/modes/print-mode.d.ts +28 -0
  719. package/dist/runtime/modes/print-mode.d.ts.map +1 -0
  720. package/dist/runtime/modes/print-mode.js +142 -0
  721. package/dist/runtime/modes/print-mode.js.map +1 -0
  722. package/dist/runtime/modes/rpc/jsonl.d.ts +17 -0
  723. package/dist/runtime/modes/rpc/jsonl.d.ts.map +1 -0
  724. package/dist/runtime/modes/rpc/jsonl.js +49 -0
  725. package/dist/runtime/modes/rpc/jsonl.js.map +1 -0
  726. package/dist/runtime/modes/rpc/rpc-client.d.ts +254 -0
  727. package/dist/runtime/modes/rpc/rpc-client.d.ts.map +1 -0
  728. package/dist/runtime/modes/rpc/rpc-client.js +495 -0
  729. package/dist/runtime/modes/rpc/rpc-client.js.map +1 -0
  730. package/dist/runtime/modes/rpc/rpc-mode.d.ts +20 -0
  731. package/dist/runtime/modes/rpc/rpc-mode.d.ts.map +1 -0
  732. package/dist/runtime/modes/rpc/rpc-mode.js +657 -0
  733. package/dist/runtime/modes/rpc/rpc-mode.js.map +1 -0
  734. package/dist/runtime/modes/rpc/rpc-types.d.ts +469 -0
  735. package/dist/runtime/modes/rpc/rpc-types.d.ts.map +1 -0
  736. package/dist/runtime/modes/rpc/rpc-types.js +8 -0
  737. package/dist/runtime/modes/rpc/rpc-types.js.map +1 -0
  738. package/dist/runtime/package-manager-cli.d.ts +9 -0
  739. package/dist/runtime/package-manager-cli.d.ts.map +1 -0
  740. package/dist/runtime/package-manager-cli.js +961 -0
  741. package/dist/runtime/package-manager-cli.js.map +1 -0
  742. package/dist/runtime/rpc-entry.d.ts +3 -0
  743. package/dist/runtime/rpc-entry.d.ts.map +1 -0
  744. package/dist/runtime/rpc-entry.js +11 -0
  745. package/dist/runtime/rpc-entry.js.map +1 -0
  746. package/dist/runtime/server/create-harness.d.ts +26 -0
  747. package/dist/runtime/server/create-harness.d.ts.map +1 -0
  748. package/dist/runtime/server/create-harness.js +106 -0
  749. package/dist/runtime/server/create-harness.js.map +1 -0
  750. package/dist/runtime/utils/abort.d.ts +5 -0
  751. package/dist/runtime/utils/abort.d.ts.map +1 -0
  752. package/dist/runtime/utils/abort.js +48 -0
  753. package/dist/runtime/utils/abort.js.map +1 -0
  754. package/dist/runtime/utils/ansi.d.ts +2 -0
  755. package/dist/runtime/utils/ansi.d.ts.map +1 -0
  756. package/dist/runtime/utils/ansi.js +52 -0
  757. package/dist/runtime/utils/ansi.js.map +1 -0
  758. package/dist/runtime/utils/changelog.d.ts +22 -0
  759. package/dist/runtime/utils/changelog.d.ts.map +1 -0
  760. package/dist/runtime/utils/changelog.js +165 -0
  761. package/dist/runtime/utils/changelog.js.map +1 -0
  762. package/dist/runtime/utils/child-process.d.ts +18 -0
  763. package/dist/runtime/utils/child-process.d.ts.map +1 -0
  764. package/dist/runtime/utils/child-process.js +106 -0
  765. package/dist/runtime/utils/child-process.js.map +1 -0
  766. package/dist/runtime/utils/clipboard-image.d.ts +11 -0
  767. package/dist/runtime/utils/clipboard-image.d.ts.map +1 -0
  768. package/dist/runtime/utils/clipboard-image.js +245 -0
  769. package/dist/runtime/utils/clipboard-image.js.map +1 -0
  770. package/dist/runtime/utils/clipboard-native.d.ts +11 -0
  771. package/dist/runtime/utils/clipboard-native.d.ts.map +1 -0
  772. package/dist/runtime/utils/clipboard-native.js +20 -0
  773. package/dist/runtime/utils/clipboard-native.js.map +1 -0
  774. package/dist/runtime/utils/clipboard.d.ts +4 -0
  775. package/dist/runtime/utils/clipboard.d.ts.map +1 -0
  776. package/dist/runtime/utils/clipboard.js +161 -0
  777. package/dist/runtime/utils/clipboard.js.map +1 -0
  778. package/dist/runtime/utils/deprecation.d.ts +4 -0
  779. package/dist/runtime/utils/deprecation.d.ts.map +1 -0
  780. package/dist/runtime/utils/deprecation.js +13 -0
  781. package/dist/runtime/utils/deprecation.js.map +1 -0
  782. package/dist/runtime/utils/exif-orientation.d.ts +5 -0
  783. package/dist/runtime/utils/exif-orientation.d.ts.map +1 -0
  784. package/dist/runtime/utils/exif-orientation.js +158 -0
  785. package/dist/runtime/utils/exif-orientation.js.map +1 -0
  786. package/dist/runtime/utils/frontmatter.d.ts +8 -0
  787. package/dist/runtime/utils/frontmatter.d.ts.map +1 -0
  788. package/dist/runtime/utils/frontmatter.js +27 -0
  789. package/dist/runtime/utils/frontmatter.js.map +1 -0
  790. package/dist/runtime/utils/fs-watch.d.ts +5 -0
  791. package/dist/runtime/utils/fs-watch.d.ts.map +1 -0
  792. package/dist/runtime/utils/fs-watch.js +25 -0
  793. package/dist/runtime/utils/fs-watch.js.map +1 -0
  794. package/dist/runtime/utils/git.d.ts +26 -0
  795. package/dist/runtime/utils/git.d.ts.map +1 -0
  796. package/dist/runtime/utils/git.js +195 -0
  797. package/dist/runtime/utils/git.js.map +1 -0
  798. package/dist/runtime/utils/html.d.ts +7 -0
  799. package/dist/runtime/utils/html.d.ts.map +1 -0
  800. package/dist/runtime/utils/html.js +40 -0
  801. package/dist/runtime/utils/html.js.map +1 -0
  802. package/dist/runtime/utils/image-convert.d.ts +10 -0
  803. package/dist/runtime/utils/image-convert.d.ts.map +1 -0
  804. package/dist/runtime/utils/image-convert.js +45 -0
  805. package/dist/runtime/utils/image-convert.js.map +1 -0
  806. package/dist/runtime/utils/image-process.d.ts +18 -0
  807. package/dist/runtime/utils/image-process.d.ts.map +1 -0
  808. package/dist/runtime/utils/image-process.js +83 -0
  809. package/dist/runtime/utils/image-process.js.map +1 -0
  810. package/dist/runtime/utils/image-resize-core.d.ts +30 -0
  811. package/dist/runtime/utils/image-resize-core.d.ts.map +1 -0
  812. package/dist/runtime/utils/image-resize-core.js +124 -0
  813. package/dist/runtime/utils/image-resize-core.js.map +1 -0
  814. package/dist/runtime/utils/image-resize-worker.d.ts +2 -0
  815. package/dist/runtime/utils/image-resize-worker.d.ts.map +1 -0
  816. package/dist/runtime/utils/image-resize-worker.js +31 -0
  817. package/dist/runtime/utils/image-resize-worker.js.map +1 -0
  818. package/dist/runtime/utils/image-resize.d.ts +16 -0
  819. package/dist/runtime/utils/image-resize.d.ts.map +1 -0
  820. package/dist/runtime/utils/image-resize.js +97 -0
  821. package/dist/runtime/utils/image-resize.js.map +1 -0
  822. package/dist/runtime/utils/json.d.ts +3 -0
  823. package/dist/runtime/utils/json.d.ts.map +1 -0
  824. package/dist/runtime/utils/json.js +7 -0
  825. package/dist/runtime/utils/json.js.map +1 -0
  826. package/dist/runtime/utils/management-http.d.ts +25 -0
  827. package/dist/runtime/utils/management-http.d.ts.map +1 -0
  828. package/dist/runtime/utils/management-http.js +54 -0
  829. package/dist/runtime/utils/management-http.js.map +1 -0
  830. package/dist/runtime/utils/mime.d.ts +3 -0
  831. package/dist/runtime/utils/mime.d.ts.map +1 -0
  832. package/dist/runtime/utils/mime.js +110 -0
  833. package/dist/runtime/utils/mime.js.map +1 -0
  834. package/dist/runtime/utils/open-browser.d.ts +9 -0
  835. package/dist/runtime/utils/open-browser.d.ts.map +1 -0
  836. package/dist/runtime/utils/open-browser.js +22 -0
  837. package/dist/runtime/utils/open-browser.js.map +1 -0
  838. package/dist/runtime/utils/paths.d.ts +34 -0
  839. package/dist/runtime/utils/paths.d.ts.map +1 -0
  840. package/dist/runtime/utils/paths.js +114 -0
  841. package/dist/runtime/utils/paths.js.map +1 -0
  842. package/dist/runtime/utils/photon.d.ts +21 -0
  843. package/dist/runtime/utils/photon.d.ts.map +1 -0
  844. package/dist/runtime/utils/photon.js +121 -0
  845. package/dist/runtime/utils/photon.js.map +1 -0
  846. package/dist/runtime/utils/pi-user-agent.d.ts +2 -0
  847. package/dist/runtime/utils/pi-user-agent.d.ts.map +1 -0
  848. package/dist/runtime/utils/pi-user-agent.js +5 -0
  849. package/dist/runtime/utils/pi-user-agent.js.map +1 -0
  850. package/dist/runtime/utils/shell.d.ts +34 -0
  851. package/dist/runtime/utils/shell.d.ts.map +1 -0
  852. package/dist/runtime/utils/shell.js +214 -0
  853. package/dist/runtime/utils/shell.js.map +1 -0
  854. package/dist/runtime/utils/sleep.d.ts +5 -0
  855. package/dist/runtime/utils/sleep.d.ts.map +1 -0
  856. package/dist/runtime/utils/sleep.js +17 -0
  857. package/dist/runtime/utils/sleep.js.map +1 -0
  858. package/dist/runtime/utils/syntax-highlight.d.ts +13 -0
  859. package/dist/runtime/utils/syntax-highlight.d.ts.map +1 -0
  860. package/dist/runtime/utils/syntax-highlight.js +177 -0
  861. package/dist/runtime/utils/syntax-highlight.js.map +1 -0
  862. package/dist/runtime/utils/text.d.ts +8 -0
  863. package/dist/runtime/utils/text.d.ts.map +1 -0
  864. package/dist/runtime/utils/text.js +9 -0
  865. package/dist/runtime/utils/text.js.map +1 -0
  866. package/dist/runtime/utils/tool-result-images.d.ts +19 -0
  867. package/dist/runtime/utils/tool-result-images.d.ts.map +1 -0
  868. package/dist/runtime/utils/tool-result-images.js +45 -0
  869. package/dist/runtime/utils/tool-result-images.js.map +1 -0
  870. package/dist/runtime/utils/tools-manager.d.ts +12 -0
  871. package/dist/runtime/utils/tools-manager.d.ts.map +1 -0
  872. package/dist/runtime/utils/tools-manager.js +321 -0
  873. package/dist/runtime/utils/tools-manager.js.map +1 -0
  874. package/dist/runtime/utils/version-check.d.ts +19 -0
  875. package/dist/runtime/utils/version-check.d.ts.map +1 -0
  876. package/dist/runtime/utils/version-check.js +79 -0
  877. package/dist/runtime/utils/version-check.js.map +1 -0
  878. package/dist/runtime/utils/windows-self-update.d.ts +3 -0
  879. package/dist/runtime/utils/windows-self-update.d.ts.map +1 -0
  880. package/dist/runtime/utils/windows-self-update.js +77 -0
  881. package/dist/runtime/utils/windows-self-update.js.map +1 -0
  882. package/dist/update.js +134 -0
  883. package/dist/workflows.js +391 -0
  884. package/docs/compaction.md +416 -0
  885. package/docs/containerization.md +111 -0
  886. package/docs/custom-provider.md +777 -0
  887. package/docs/development.md +71 -0
  888. package/docs/docs.json +156 -0
  889. package/docs/environment-variables.md +94 -0
  890. package/docs/extensions.md +3002 -0
  891. package/docs/images/doom-extension.png +0 -0
  892. package/docs/images/exy.png +0 -0
  893. package/docs/images/interactive-mode.png +0 -0
  894. package/docs/images/tree-view.png +0 -0
  895. package/docs/index.md +84 -0
  896. package/docs/json.md +98 -0
  897. package/docs/keybindings.md +236 -0
  898. package/docs/llama-cpp.md +101 -0
  899. package/docs/models.md +571 -0
  900. package/docs/packages.md +228 -0
  901. package/docs/prompt-templates.md +96 -0
  902. package/docs/providers.md +317 -0
  903. package/docs/quickstart.md +167 -0
  904. package/docs/rpc.md +1618 -0
  905. package/docs/sdk.md +1219 -0
  906. package/docs/security.md +59 -0
  907. package/docs/session-format.md +438 -0
  908. package/docs/sessions.md +145 -0
  909. package/docs/settings.md +361 -0
  910. package/docs/shell-aliases.md +13 -0
  911. package/docs/skills.md +232 -0
  912. package/docs/terminal-setup.md +165 -0
  913. package/docs/termux.md +127 -0
  914. package/docs/themes.md +320 -0
  915. package/docs/tmux.md +63 -0
  916. package/docs/tui.md +942 -0
  917. package/docs/usage.md +310 -0
  918. package/docs/windows.md +39 -0
  919. package/examples/README.md +25 -0
  920. package/examples/extensions/README.md +213 -0
  921. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  922. package/examples/extensions/bash-spawn-hook.ts +30 -0
  923. package/examples/extensions/bookmark.ts +50 -0
  924. package/examples/extensions/border-status-editor.ts +150 -0
  925. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  926. package/examples/extensions/claude-rules.ts +86 -0
  927. package/examples/extensions/commands.ts +72 -0
  928. package/examples/extensions/confirm-destructive.ts +59 -0
  929. package/examples/extensions/custom-compaction.ts +117 -0
  930. package/examples/extensions/custom-footer.ts +64 -0
  931. package/examples/extensions/custom-header.ts +73 -0
  932. package/examples/extensions/custom-provider-anthropic/index.ts +611 -0
  933. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  934. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  935. package/examples/extensions/custom-provider-gitlab-duo/index.ts +405 -0
  936. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  937. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  938. package/examples/extensions/dirty-repo-guard.ts +56 -0
  939. package/examples/extensions/doom-overlay/README.md +46 -0
  940. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  941. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  942. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  943. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  944. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  945. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  946. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  947. package/examples/extensions/doom-overlay/index.ts +74 -0
  948. package/examples/extensions/doom-overlay/wad-finder.ts +55 -0
  949. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  950. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  951. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  952. package/examples/extensions/dynamic-resources/index.ts +15 -0
  953. package/examples/extensions/dynamic-tools.ts +74 -0
  954. package/examples/extensions/entry-renderer.ts +41 -0
  955. package/examples/extensions/event-bus.ts +43 -0
  956. package/examples/extensions/file-trigger.ts +41 -0
  957. package/examples/extensions/git-checkpoint.ts +53 -0
  958. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  959. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  960. package/examples/extensions/gondolin/index.ts +531 -0
  961. package/examples/extensions/gondolin/package-lock.json +185 -0
  962. package/examples/extensions/gondolin/package.json +19 -0
  963. package/examples/extensions/handoff.ts +190 -0
  964. package/examples/extensions/hello.ts +26 -0
  965. package/examples/extensions/hidden-thinking-label.ts +53 -0
  966. package/examples/extensions/inline-bash.ts +94 -0
  967. package/examples/extensions/input-transform-streaming.ts +39 -0
  968. package/examples/extensions/input-transform.ts +43 -0
  969. package/examples/extensions/interactive-shell.ts +196 -0
  970. package/examples/extensions/kimi-deferred-tools.ts +61 -0
  971. package/examples/extensions/mac-system-theme.ts +47 -0
  972. package/examples/extensions/message-renderer.ts +59 -0
  973. package/examples/extensions/minimal-mode.ts +426 -0
  974. package/examples/extensions/modal-editor.ts +85 -0
  975. package/examples/extensions/model-status.ts +31 -0
  976. package/examples/extensions/notify.ts +57 -0
  977. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  978. package/examples/extensions/overlay-test.ts +153 -0
  979. package/examples/extensions/permission-gate.ts +34 -0
  980. package/examples/extensions/pirate.ts +47 -0
  981. package/examples/extensions/plan-mode/README.md +66 -0
  982. package/examples/extensions/plan-mode/index.ts +390 -0
  983. package/examples/extensions/plan-mode/utils.ts +168 -0
  984. package/examples/extensions/preset.ts +436 -0
  985. package/examples/extensions/project-trust.ts +64 -0
  986. package/examples/extensions/prompt-customizer.ts +97 -0
  987. package/examples/extensions/protected-paths.ts +30 -0
  988. package/examples/extensions/provider-payload.ts +18 -0
  989. package/examples/extensions/qna.ts +118 -0
  990. package/examples/extensions/question.ts +286 -0
  991. package/examples/extensions/questionnaire.ts +448 -0
  992. package/examples/extensions/rainbow-editor.ts +88 -0
  993. package/examples/extensions/reload-runtime.ts +37 -0
  994. package/examples/extensions/rpc-demo.ts +118 -0
  995. package/examples/extensions/sandbox/index.ts +321 -0
  996. package/examples/extensions/sandbox/package-lock.json +92 -0
  997. package/examples/extensions/sandbox/package.json +19 -0
  998. package/examples/extensions/send-user-message.ts +97 -0
  999. package/examples/extensions/session-name.ts +27 -0
  1000. package/examples/extensions/shutdown-command.ts +63 -0
  1001. package/examples/extensions/snake.ts +343 -0
  1002. package/examples/extensions/space-invaders.ts +560 -0
  1003. package/examples/extensions/ssh.ts +220 -0
  1004. package/examples/extensions/status-line.ts +32 -0
  1005. package/examples/extensions/structured-output.ts +65 -0
  1006. package/examples/extensions/subagent/README.md +177 -0
  1007. package/examples/extensions/subagent/agents/planner.md +37 -0
  1008. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  1009. package/examples/extensions/subagent/agents/scout.md +50 -0
  1010. package/examples/extensions/subagent/agents/worker.md +24 -0
  1011. package/examples/extensions/subagent/agents.ts +157 -0
  1012. package/examples/extensions/subagent/index.ts +1038 -0
  1013. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  1014. package/examples/extensions/subagent/prompts/implement.md +10 -0
  1015. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  1016. package/examples/extensions/summarize.ts +199 -0
  1017. package/examples/extensions/system-prompt-header.ts +17 -0
  1018. package/examples/extensions/tic-tac-toe.ts +1008 -0
  1019. package/examples/extensions/timed-confirm.ts +70 -0
  1020. package/examples/extensions/titlebar-spinner.ts +58 -0
  1021. package/examples/extensions/todo.ts +297 -0
  1022. package/examples/extensions/tool-override.ts +144 -0
  1023. package/examples/extensions/tools.ts +146 -0
  1024. package/examples/extensions/trigger-compact.ts +50 -0
  1025. package/examples/extensions/truncated-tool.ts +195 -0
  1026. package/examples/extensions/widget-placement.ts +9 -0
  1027. package/examples/extensions/with-deps/index.ts +32 -0
  1028. package/examples/extensions/with-deps/package-lock.json +31 -0
  1029. package/examples/extensions/with-deps/package.json +22 -0
  1030. package/examples/extensions/working-indicator.ts +123 -0
  1031. package/examples/extensions/working-message-test.ts +25 -0
  1032. package/examples/rpc-extension-ui.ts +641 -0
  1033. package/examples/sdk/01-minimal.ts +26 -0
  1034. package/examples/sdk/02-custom-model.ts +49 -0
  1035. package/examples/sdk/03-custom-prompt.ts +75 -0
  1036. package/examples/sdk/04-skills.ts +55 -0
  1037. package/examples/sdk/05-tools.ts +48 -0
  1038. package/examples/sdk/06-extensions.ts +99 -0
  1039. package/examples/sdk/07-context-files.ts +47 -0
  1040. package/examples/sdk/08-prompt-templates.ts +51 -0
  1041. package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
  1042. package/examples/sdk/10-settings.ts +53 -0
  1043. package/examples/sdk/11-sessions.ts +52 -0
  1044. package/examples/sdk/12-full-control.ts +74 -0
  1045. package/examples/sdk/13-session-runtime.ts +67 -0
  1046. package/examples/sdk/README.md +140 -0
  1047. package/package.json +65 -12
  1048. package/upstream.json +6 -0
  1049. package/workflows/cm/LICENSE +21 -0
  1050. package/workflows/cm/README.md +333 -0
  1051. package/workflows/cm/THIRD_PARTY_NOTICES.md +29 -0
  1052. package/workflows/cm/VERSION +1 -0
  1053. package/workflows/cm/agents/cm-backend-agent.md +34 -0
  1054. package/workflows/cm/agents/cm-contract-agent.md +34 -0
  1055. package/workflows/cm/agents/cm-database-agent.md +34 -0
  1056. package/workflows/cm/agents/cm-frontend-agent.md +33 -0
  1057. package/workflows/cm/agents/cm-miniprogram-agent.md +33 -0
  1058. package/workflows/cm/agents/cm-ui-agent.md +34 -0
  1059. package/workflows/cm/assets/docs/command-picker-mobile.svg +56 -0
  1060. package/workflows/cm/assets/docs/command-picker.svg +56 -0
  1061. package/workflows/cm/assets/docs/user-guide-hero-mobile.svg +35 -0
  1062. package/workflows/cm/assets/docs/user-guide-hero.svg +36 -0
  1063. package/workflows/cm/assets/readme/delivery-flow.svg +86 -0
  1064. package/workflows/cm/assets/readme/hero.svg +77 -0
  1065. package/workflows/cm/assets/readme/recovery-record.svg +73 -0
  1066. package/workflows/cm/assets/readme/test-evidence.svg +64 -0
  1067. package/workflows/cm/compat/claude-commands/cm-ai.md +3 -0
  1068. package/workflows/cm/compat/claude-commands/cm-check.md +3 -0
  1069. package/workflows/cm/compat/claude-commands/cm-fix.md +3 -0
  1070. package/workflows/cm/compat/claude-commands/cm-idea.md +3 -0
  1071. package/workflows/cm/compat/claude-commands/cm-init.md +3 -0
  1072. package/workflows/cm/compat/claude-commands/cm-prd.md +3 -0
  1073. package/workflows/cm/compat/claude-commands/cm-refactor.md +3 -0
  1074. package/workflows/cm/compat/claude-commands/cm-test.md +3 -0
  1075. package/workflows/cm/docs/architecture.md +130 -0
  1076. package/workflows/cm/docs/fixes/.reviews/fix-manifest-runtime-checkbox-drift-r1.md +33 -0
  1077. package/workflows/cm/docs/fixes/.reviews/fix-manifest-runtime-checkbox-drift-r2.md +31 -0
  1078. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-a1-handoff.json +56 -0
  1079. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-a2-handoff.json +85 -0
  1080. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-r1.md +53 -0
  1081. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-r2.md +80 -0
  1082. package/workflows/cm/docs/fixes/.reviews/fix-review-evidence-scope-honesty-T-FIX-review-evidence-scope-honesty-a1-handoff.json +35 -0
  1083. package/workflows/cm/docs/fixes/.reviews/fix-review-evidence-scope-honesty-T-FIX-review-evidence-scope-honesty-r1.md +33 -0
  1084. package/workflows/cm/docs/fixes/.reviews/fix-windows-cp1252-log-output-r1.md +30 -0
  1085. package/workflows/cm/docs/fixes/.reviews/fix-windows-cp1252-log-output-r2.md +16 -0
  1086. package/workflows/cm/docs/fixes/.reviews/openai-compatible-depth-fixture-T-FIX-openai-compatible-depth-fixture-a1-handoff.json +40 -0
  1087. package/workflows/cm/docs/fixes/.reviews/openai-compatible-depth-fixture-T-FIX-openai-compatible-depth-fixture-r1.md +30 -0
  1088. package/workflows/cm/docs/fixes/20260729-windows-cp1252-log-output.md +65 -0
  1089. package/workflows/cm/docs/fixes/20260804-manifest-runtime-checkbox-drift.md +67 -0
  1090. package/workflows/cm/docs/fixes/20260806-model-call-boundary-identity.md +80 -0
  1091. package/workflows/cm/docs/fixes/20260807-prelanding-integrity.md +58 -0
  1092. package/workflows/cm/docs/fixes/20260826-openai-compatible-depth-fixture.md +39 -0
  1093. package/workflows/cm/docs/installation.md +149 -0
  1094. package/workflows/cm/docs/sample-prd/prd-funding-rate-alert.md +42 -0
  1095. package/workflows/cm/docs/sample-specs/docs//351/234/200/346/261/202/347/244/272/344/276/213.md +24 -0
  1096. package/workflows/cm/docs/user-guide.md +521 -0
  1097. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/README.md +19 -0
  1098. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.excalidraw +3650 -0
  1099. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.mp4 +0 -0
  1100. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.png +0 -0
  1101. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.spec.json +223 -0
  1102. package/workflows/cm/package.json +45 -0
  1103. package/workflows/cm/runtime/external-expert.md +302 -0
  1104. package/workflows/cm/runtime/logging.md +206 -0
  1105. package/workflows/cm/runtime/model-efficiency.md +201 -0
  1106. package/workflows/cm/runtime/orchestration.md +113 -0
  1107. package/workflows/cm/runtime/project-context.md +37 -0
  1108. package/workflows/cm/runtime/review.md +114 -0
  1109. package/workflows/cm/runtime/task-gates.md +114 -0
  1110. package/workflows/cm/runtime/task-handoff.schema.json +103 -0
  1111. package/workflows/cm/runtime/test-contract.md +212 -0
  1112. package/workflows/cm/runtime/workflow-config.md +115 -0
  1113. package/workflows/cm/runtime/workflow-routing.md +82 -0
  1114. package/workflows/cm/scripts/cm-check-runtime.ps1 +69 -0
  1115. package/workflows/cm/scripts/cm-check-runtime.sh +866 -0
  1116. package/workflows/cm/scripts/cm-log-event.py +1270 -0
  1117. package/workflows/cm/scripts/cm-openai-compatible-call.py +661 -0
  1118. package/workflows/cm/scripts/cm-prd-review-gate.py +319 -0
  1119. package/workflows/cm/scripts/cm-prd-timing.py +272 -0
  1120. package/workflows/cm/scripts/cm-spec-manifest.py +171 -0
  1121. package/workflows/cm/scripts/cm-task-gate.py +760 -0
  1122. package/workflows/cm/scripts/cm-usage-report.py +516 -0
  1123. package/workflows/cm/scripts/cm_workflow_config.py +612 -0
  1124. package/workflows/cm/scripts/scan-public-safety.py +89 -0
  1125. package/workflows/cm/scripts/test-cm-log-event.py +1213 -0
  1126. package/workflows/cm/scripts/test-cm-openai-compatible-call.py +1185 -0
  1127. package/workflows/cm/scripts/test-cm-prd-review-gate.py +243 -0
  1128. package/workflows/cm/scripts/test-cm-prd-timing.py +168 -0
  1129. package/workflows/cm/scripts/test-cm-usage-report.py +584 -0
  1130. package/workflows/cm/scripts/test-shell-compat.sh +338 -0
  1131. package/workflows/cm/scripts/test-spec-manifest.py +220 -0
  1132. package/workflows/cm/scripts/test-task-gate.py +540 -0
  1133. package/workflows/cm/scripts/test-workflow-config.py +394 -0
  1134. package/workflows/cm/scripts/validate-public-repo.py +200 -0
  1135. package/workflows/cm/scripts/validate-test-cases.py +127 -0
  1136. package/workflows/cm/skills/cm-ai/SKILL.md +120 -0
  1137. package/workflows/cm/skills/cm-ai/references/N1-init.md +92 -0
  1138. package/workflows/cm/skills/cm-ai/references/N2-enter-feature.md +38 -0
  1139. package/workflows/cm/skills/cm-ai/references/N3-execute-task.md +99 -0
  1140. package/workflows/cm/skills/cm-ai/references/N4-review.md +96 -0
  1141. package/workflows/cm/skills/cm-ai/references/N5-mark-done.md +107 -0
  1142. package/workflows/cm/skills/cm-ai/references/N6-qa-eval.md +102 -0
  1143. package/workflows/cm/skills/cm-ai/references/N7-context.md +23 -0
  1144. package/workflows/cm/skills/cm-ai/references/N8-finish.md +97 -0
  1145. package/workflows/cm/skills/cm-backend-engineer/SKILL.md +100 -0
  1146. package/workflows/cm/skills/cm-check/SKILL.md +60 -0
  1147. package/workflows/cm/skills/cm-contract-engineer/SKILL.md +136 -0
  1148. package/workflows/cm/skills/cm-database-engineer/SKILL.md +89 -0
  1149. package/workflows/cm/skills/cm-devops-engineer/SKILL.md +137 -0
  1150. package/workflows/cm/skills/cm-doc-syncer/SKILL.md +150 -0
  1151. package/workflows/cm/skills/cm-finance-expert/SKILL.md +85 -0
  1152. package/workflows/cm/skills/cm-fix/SKILL.md +159 -0
  1153. package/workflows/cm/skills/cm-frontend-engineer/SKILL.md +127 -0
  1154. package/workflows/cm/skills/cm-idea/SKILL.md +42 -0
  1155. package/workflows/cm/skills/cm-idea/references/domains/trading.md +97 -0
  1156. package/workflows/cm/skills/cm-idea/references/example-prd.md +92 -0
  1157. package/workflows/cm/skills/cm-idea/references/idea-to-prd.md +282 -0
  1158. package/workflows/cm/skills/cm-init/SKILL.md +158 -0
  1159. package/workflows/cm/skills/cm-miniprogram-engineer/SKILL.md +141 -0
  1160. package/workflows/cm/skills/cm-miniprogram-engineer/references/platform-readiness.md +58 -0
  1161. package/workflows/cm/skills/cm-miniprogram-engineer/references/release-checklist.md +59 -0
  1162. package/workflows/cm/skills/cm-prd/SKILL.md +521 -0
  1163. package/workflows/cm/skills/cm-prd/references/brownfield.md +13 -0
  1164. package/workflows/cm/skills/cm-prd/references/change-mode.md +145 -0
  1165. package/workflows/cm/skills/cm-prd/references/context-scope.md +62 -0
  1166. package/workflows/cm/skills/cm-prd/references/greenfield.md +80 -0
  1167. package/workflows/cm/skills/cm-prd/references/phase-timing.md +60 -0
  1168. package/workflows/cm/skills/cm-prd/references/spec-self-check.md +22 -0
  1169. package/workflows/cm/skills/cm-product-manager/SKILL.md +83 -0
  1170. package/workflows/cm/skills/cm-qa-engineer/SKILL.md +142 -0
  1171. package/workflows/cm/skills/cm-refactor/SKILL.md +209 -0
  1172. package/workflows/cm/skills/cm-test/SKILL.md +259 -0
  1173. package/workflows/cm/skills/cm-ui-engineer/SKILL.md +105 -0
  1174. package/workflows/cm/skills/codebase-context/SKILL.md +489 -0
  1175. package/workflows/cm/skills/darwin-skill/NOTICE.md +26 -0
  1176. package/workflows/cm/skills/darwin-skill/README.md +272 -0
  1177. package/workflows/cm/skills/darwin-skill/SKILL.md +492 -0
  1178. package/workflows/cm/skills/darwin-skill/references/runtime-neutrality.md +68 -0
  1179. package/workflows/cm/skills/darwin-skill/references/skilllens-evidence.md +142 -0
  1180. package/workflows/cm/skills/darwin-skill/scripts/screenshot.mjs +71 -0
  1181. package/workflows/cm/skills/darwin-skill/templates/result-card-dark.html +698 -0
  1182. package/workflows/cm/skills/darwin-skill/templates/result-card-white.html +444 -0
  1183. package/workflows/cm/skills/darwin-skill/templates/result-card.html +616 -0
  1184. package/workflows/cm/skills/external-expert/SKILL.md +250 -0
  1185. package/workflows/cm/templates/arch-reference.md +68 -0
  1186. package/workflows/cm/templates/auto-update/cm-announce.sh +19 -0
  1187. package/workflows/cm/templates/auto-update/cm-update.sh +274 -0
  1188. package/workflows/cm/templates/cm-workflow.yml +52 -0
  1189. package/workflows/cm/templates/dashboard/dashboard.html +153 -0
  1190. package/workflows/cm/templates/dashboard/serve.sh +10 -0
  1191. package/workflows/cm/templates/hooks/pre-commit-cm-task-check +67 -0
  1192. package/workflows/cm/templates/pixel/cm-pixel.html +388 -0
  1193. package/workflows/cm/templates/pixel/cm-pixel.sh +212 -0
  1194. package/workflows/cm/templates/pixel/dev/README.md +20 -0
  1195. package/workflows/cm/templates/pixel/dev/atlas-preview.png +0 -0
  1196. package/workflows/cm/templates/pixel/dev/build.py +55 -0
  1197. package/workflows/cm/templates/pixel/dev/sheets/roguelikeChar_transparent.png +0 -0
  1198. package/workflows/cm/templates/pixel/dev/sheets/roguelikeCity_tilemap.png +0 -0
  1199. package/workflows/cm/templates/pixel/dev/sheets/roguelikeIndoor_transparent.png +0 -0
  1200. package/workflows/cm/templates/pixel/dev/template.html +388 -0
  1201. package/workflows/cm/templates/pixel/serve.sh +12 -0
  1202. package/workflows/cm/templates/refactor/cm-refactor-denies.json +14 -0
  1203. package/workflows/cm/templates/rules/backend-api.md +36 -0
  1204. package/workflows/cm/templates/rules/coding-style.md +44 -0
  1205. package/workflows/cm/templates/rules/database.md +27 -0
  1206. package/workflows/cm/templates/rules/finance.md +32 -0
  1207. package/workflows/cm/templates/rules/frontend.md +32 -0
  1208. package/workflows/cm/templates/rules/git-workflow.md +25 -0
  1209. package/workflows/cm/templates/rules/miniprogram.md +31 -0
  1210. package/workflows/cm/templates/rules/security.md +31 -0
  1211. package/workflows/cm/templates/rules/smart-contract.md +28 -0
  1212. package/workflows/cm/templates/rules/testing.md +36 -0
  1213. package/workflows/cm/templates/statusline/cm-statusline.sh +73 -0
  1214. package/workflows/cm/templates/ui-lens/cm-ui-lens-extract.mjs +55 -0
  1215. package/workflows.lock.json +39 -0
@@ -0,0 +1,25 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ function __classPrivateFieldSet(receiver,state,value,kind,f){if(kind==="m")throw new TypeError("Private method is not writable");if(kind==="a"&&!f)throw new TypeError("Private accessor was defined without a setter");if(typeof state=="function"?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot write private member to an object whose class did not declare it");return kind==="a"?f.call(receiver,value):f?f.value=value:state.set(receiver,value),value}function __classPrivateFieldGet(receiver,state,kind,f){if(kind==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof state=="function"?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return kind==="m"?f:kind==="a"?f.call(receiver):f?f.value:state.get(receiver)}var uuid4=function(){let{crypto:crypto2}=globalThis;if(crypto2?.randomUUID)return uuid4=crypto2.randomUUID.bind(crypto2),crypto2.randomUUID();let u8=new Uint8Array(1),randomByte=crypto2?()=>crypto2.getRandomValues(u8)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,c=>(+c^randomByte()&15>>+c/4).toString(16))};function isAbortError(err){return typeof err=="object"&&err!==null&&("name"in err&&err.name==="AbortError"||"message"in err&&String(err.message).includes("FetchRequestCanceledException"))}var castToError=err=>{if(err instanceof Error)return err;if(typeof err=="object"&&err!==null){try{if(Object.prototype.toString.call(err)==="[object Error]"){let error=new Error(err.message,err.cause?{cause:err.cause}:{});return err.stack&&(error.stack=err.stack),err.cause&&!error.cause&&(error.cause=err.cause),err.name&&(error.name=err.name),error}}catch{}try{return new Error(JSON.stringify(err))}catch{}}return new Error(err)};var OpenAIError=class extends Error{},APIError=class _APIError extends OpenAIError{constructor(status,error,message,headers){super(`${_APIError.makeMessage(status,error,message)}`),this.status=status,this.headers=headers,this.requestID=headers?.get("x-request-id"),this.error=error;let data=error;this.code=data?.code,this.param=data?.param,this.type=data?.type}static makeMessage(status,error,message){let msg=error?.message?typeof error.message=="string"?error.message:JSON.stringify(error.message):error?JSON.stringify(error):message;return status&&msg?`${status} ${msg}`:status?`${status} status code (no body)`:msg||"(no status code or body)"}static generate(status,errorResponse,message,headers){if(!status||!headers)return new APIConnectionError({message,cause:castToError(errorResponse)});let error=errorResponse?.error;return status===400?new BadRequestError(status,error,message,headers):status===401?new AuthenticationError(status,error,message,headers):status===403?new PermissionDeniedError(status,error,message,headers):status===404?new NotFoundError(status,error,message,headers):status===409?new ConflictError(status,error,message,headers):status===422?new UnprocessableEntityError(status,error,message,headers):status===429?new RateLimitError(status,error,message,headers):status>=500?new InternalServerError(status,error,message,headers):new _APIError(status,error,message,headers)}},APIUserAbortError=class extends APIError{constructor({message}={}){super(void 0,void 0,message||"Request was aborted.",void 0)}},APIConnectionError=class extends APIError{constructor({message,cause}){super(void 0,void 0,message||"Connection error.",void 0),cause&&(this.cause=cause)}},APIConnectionTimeoutError=class extends APIConnectionError{constructor({message}={}){super({message:message??"Request timed out."})}},BadRequestError=class extends APIError{},AuthenticationError=class extends APIError{},PermissionDeniedError=class extends APIError{},NotFoundError=class extends APIError{},ConflictError=class extends APIError{},UnprocessableEntityError=class extends APIError{},RateLimitError=class extends APIError{},InternalServerError=class extends APIError{},LengthFinishReasonError=class extends OpenAIError{constructor(){super("Could not parse response content as the length limit was reached")}},ContentFilterFinishReasonError=class extends OpenAIError{constructor(){super("Could not parse response content as the request was rejected by the content filter")}},InvalidWebhookSignatureError=class extends Error{constructor(message){super(message)}},OAuthError=class extends APIError{constructor(status,error,headers){let finalMessage="OAuth2 authentication error",error_code;if(error&&typeof error=="object"){let errorData=error;error_code=errorData.error;let description=errorData.error_description;description&&typeof description=="string"?finalMessage=description:error_code&&(finalMessage=error_code)}super(status,error,finalMessage,headers),this.error_code=error_code}},SubjectTokenProviderError=class extends OpenAIError{constructor(message,provider,cause){super(message),this.provider=provider,this.cause=cause}};var startsWithSchemeRegexp=/^[a-z][a-z0-9+.-]*:/i,isAbsoluteURL=url=>startsWithSchemeRegexp.test(url),isArray=val=>(isArray=Array.isArray,isArray(val)),isReadonlyArray=isArray;function maybeObj(x){return typeof x!="object"?{}:x??{}}function isEmptyObj(obj){if(!obj)return!0;for(let _k in obj)return!1;return!0}function hasOwn(obj,key){return Object.prototype.hasOwnProperty.call(obj,key)}function isObj(obj){return obj!=null&&typeof obj=="object"&&!Array.isArray(obj)}var validatePositiveInteger=(name,n)=>{if(typeof n!="number"||!Number.isInteger(n))throw new OpenAIError(`${name} must be an integer`);if(n<0)throw new OpenAIError(`${name} must be a positive integer`);return n};var safeJSON=text=>{try{return JSON.parse(text)}catch{return}};var sleep=ms=>new Promise(resolve=>setTimeout(resolve,ms));var VERSION="6.40.0";var isRunningInBrowser=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function getDetectedPlatform(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var getPlatformProperties=()=>{let detectedPlatform=getDetectedPlatform();if(detectedPlatform==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":normalizePlatform(Deno.build.os),"X-Stainless-Arch":normalizeArch(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(detectedPlatform==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":normalizePlatform(globalThis.process.platform??"unknown"),"X-Stainless-Arch":normalizeArch(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let browserInfo=getBrowserInfo();return browserInfo?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${browserInfo.browser}`,"X-Stainless-Runtime-Version":browserInfo.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function getBrowserInfo(){if(typeof navigator>"u"||!navigator)return null;let browserPatterns=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key,pattern}of browserPatterns){let match=pattern.exec(navigator.userAgent);if(match){let major=match[1]||0,minor=match[2]||0,patch=match[3]||0;return{browser:key,version:`${major}.${minor}.${patch}`}}}return null}var normalizeArch=arch=>arch==="x32"?"x32":arch==="x86_64"||arch==="x64"?"x64":arch==="arm"?"arm":arch==="aarch64"||arch==="arm64"?"arm64":arch?`other:${arch}`:"unknown",normalizePlatform=platform=>(platform=platform.toLowerCase(),platform.includes("ios")?"iOS":platform==="android"?"Android":platform==="darwin"?"MacOS":platform==="win32"?"Windows":platform==="freebsd"?"FreeBSD":platform==="openbsd"?"OpenBSD":platform==="linux"?"Linux":platform?`Other:${platform}`:"Unknown"),_platformHeaders,getPlatformHeaders=()=>_platformHeaders??(_platformHeaders=getPlatformProperties());function getDefaultFetch(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function makeReadableStream(...args){let ReadableStream=globalThis.ReadableStream;if(typeof ReadableStream>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new ReadableStream(...args)}function ReadableStreamFrom(iterable){let iter=Symbol.asyncIterator in iterable?iterable[Symbol.asyncIterator]():iterable[Symbol.iterator]();return makeReadableStream({start(){},async pull(controller){let{done,value}=await iter.next();done?controller.close():controller.enqueue(value)},async cancel(){await iter.return?.()}})}function ReadableStreamToAsyncIterable(stream){if(stream[Symbol.asyncIterator])return stream;let reader=stream.getReader();return{async next(){try{let result=await reader.read();return result?.done&&reader.releaseLock(),result}catch(e){throw reader.releaseLock(),e}},async return(){let cancelPromise=reader.cancel();return reader.releaseLock(),await cancelPromise,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function CancelReadableStream(stream){if(stream===null||typeof stream!="object")return;if(stream[Symbol.asyncIterator]){await stream[Symbol.asyncIterator]().return?.();return}let reader=stream.getReader(),cancelPromise=reader.cancel();reader.releaseLock(),await cancelPromise}var FallbackEncoder=({headers,body})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(body)});var default_format="RFC3986",default_formatter=v=>String(v),formatters={RFC1738:v=>String(v).replace(/%20/g,"+"),RFC3986:default_formatter},RFC1738="RFC1738";var has=(obj,key)=>(has=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),has(obj,key)),hex_table=(()=>{let array=[];for(let i=0;i<256;++i)array.push("%"+((i<16?"0":"")+i.toString(16)).toUpperCase());return array})();var limit=1024,encode=(str2,_defaultEncoder,charset,_kind,format)=>{if(str2.length===0)return str2;let string=str2;if(typeof str2=="symbol"?string=Symbol.prototype.toString.call(str2):typeof str2!="string"&&(string=String(str2)),charset==="iso-8859-1")return escape(string).replace(/%u[0-9a-f]{4}/gi,function($0){return"%26%23"+parseInt($0.slice(2),16)+"%3B"});let out="";for(let j=0;j<string.length;j+=limit){let segment=string.length>=limit?string.slice(j,j+limit):string,arr=[];for(let i=0;i<segment.length;++i){let c=segment.charCodeAt(i);if(c===45||c===46||c===95||c===126||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||format===RFC1738&&(c===40||c===41)){arr[arr.length]=segment.charAt(i);continue}if(c<128){arr[arr.length]=hex_table[c];continue}if(c<2048){arr[arr.length]=hex_table[192|c>>6]+hex_table[128|c&63];continue}if(c<55296||c>=57344){arr[arr.length]=hex_table[224|c>>12]+hex_table[128|c>>6&63]+hex_table[128|c&63];continue}i+=1,c=65536+((c&1023)<<10|segment.charCodeAt(i)&1023),arr[arr.length]=hex_table[240|c>>18]+hex_table[128|c>>12&63]+hex_table[128|c>>6&63]+hex_table[128|c&63]}out+=arr.join("")}return out};function is_buffer(obj){return!obj||typeof obj!="object"?!1:!!(obj.constructor&&obj.constructor.isBuffer&&obj.constructor.isBuffer(obj))}function maybe_map(val,fn){if(isArray(val)){let mapped=[];for(let i=0;i<val.length;i+=1)mapped.push(fn(val[i]));return mapped}return fn(val)}var array_prefix_generators={brackets(prefix){return String(prefix)+"[]"},comma:"comma",indices(prefix,key){return String(prefix)+"["+key+"]"},repeat(prefix){return String(prefix)}},push_to_array=function(arr,value_or_array){Array.prototype.push.apply(arr,isArray(value_or_array)?value_or_array:[value_or_array])},toISOString,defaults={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:encode,encodeValuesOnly:!1,format:default_format,formatter:default_formatter,indices:!1,serializeDate(date){return(toISOString??(toISOString=Function.prototype.call.bind(Date.prototype.toISOString)))(date)},skipNulls:!1,strictNullHandling:!1};function is_non_nullish_primitive(v){return typeof v=="string"||typeof v=="number"||typeof v=="boolean"||typeof v=="symbol"||typeof v=="bigint"}var sentinel={};function inner_stringify(object,prefix,generateArrayPrefix,commaRoundTrip,allowEmptyArrays,strictNullHandling,skipNulls,encodeDotInKeys,encoder,filter,sort,allowDots,serializeDate,format,formatter,encodeValuesOnly,charset,sideChannel){let obj=object,tmp_sc=sideChannel,step=0,find_flag=!1;for(;(tmp_sc=tmp_sc.get(sentinel))!==void 0&&!find_flag;){let pos=tmp_sc.get(object);if(step+=1,typeof pos<"u"){if(pos===step)throw new RangeError("Cyclic object value");find_flag=!0}typeof tmp_sc.get(sentinel)>"u"&&(step=0)}if(typeof filter=="function"?obj=filter(prefix,obj):obj instanceof Date?obj=serializeDate?.(obj):generateArrayPrefix==="comma"&&isArray(obj)&&(obj=maybe_map(obj,function(value){return value instanceof Date?serializeDate?.(value):value})),obj===null){if(strictNullHandling)return encoder&&!encodeValuesOnly?encoder(prefix,defaults.encoder,charset,"key",format):prefix;obj=""}if(is_non_nullish_primitive(obj)||is_buffer(obj)){if(encoder){let key_value=encodeValuesOnly?prefix:encoder(prefix,defaults.encoder,charset,"key",format);return[formatter?.(key_value)+"="+formatter?.(encoder(obj,defaults.encoder,charset,"value",format))]}return[formatter?.(prefix)+"="+formatter?.(String(obj))]}let values=[];if(typeof obj>"u")return values;let obj_keys;if(generateArrayPrefix==="comma"&&isArray(obj))encodeValuesOnly&&encoder&&(obj=maybe_map(obj,encoder)),obj_keys=[{value:obj.length>0?obj.join(",")||null:void 0}];else if(isArray(filter))obj_keys=filter;else{let keys=Object.keys(obj);obj_keys=sort?keys.sort(sort):keys}let encoded_prefix=encodeDotInKeys?String(prefix).replace(/\./g,"%2E"):String(prefix),adjusted_prefix=commaRoundTrip&&isArray(obj)&&obj.length===1?encoded_prefix+"[]":encoded_prefix;if(allowEmptyArrays&&isArray(obj)&&obj.length===0)return adjusted_prefix+"[]";for(let j=0;j<obj_keys.length;++j){let key=obj_keys[j],value=typeof key=="object"&&typeof key.value<"u"?key.value:obj[key];if(skipNulls&&value===null)continue;let encoded_key=allowDots&&encodeDotInKeys?key.replace(/\./g,"%2E"):key,key_prefix=isArray(obj)?typeof generateArrayPrefix=="function"?generateArrayPrefix(adjusted_prefix,encoded_key):adjusted_prefix:adjusted_prefix+(allowDots?"."+encoded_key:"["+encoded_key+"]");sideChannel.set(object,step);let valueSideChannel=new WeakMap;valueSideChannel.set(sentinel,sideChannel),push_to_array(values,inner_stringify(value,key_prefix,generateArrayPrefix,commaRoundTrip,allowEmptyArrays,strictNullHandling,skipNulls,encodeDotInKeys,generateArrayPrefix==="comma"&&encodeValuesOnly&&isArray(obj)?null:encoder,filter,sort,allowDots,serializeDate,format,formatter,encodeValuesOnly,charset,valueSideChannel))}return values}function normalize_stringify_options(opts=defaults){if(typeof opts.allowEmptyArrays<"u"&&typeof opts.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof opts.encodeDotInKeys<"u"&&typeof opts.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(opts.encoder!==null&&typeof opts.encoder<"u"&&typeof opts.encoder!="function")throw new TypeError("Encoder has to be a function.");let charset=opts.charset||defaults.charset;if(typeof opts.charset<"u"&&opts.charset!=="utf-8"&&opts.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let format=default_format;if(typeof opts.format<"u"){if(!has(formatters,opts.format))throw new TypeError("Unknown format option provided.");format=opts.format}let formatter=formatters[format],filter=defaults.filter;(typeof opts.filter=="function"||isArray(opts.filter))&&(filter=opts.filter);let arrayFormat;if(opts.arrayFormat&&opts.arrayFormat in array_prefix_generators?arrayFormat=opts.arrayFormat:"indices"in opts?arrayFormat=opts.indices?"indices":"repeat":arrayFormat=defaults.arrayFormat,"commaRoundTrip"in opts&&typeof opts.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let allowDots=typeof opts.allowDots>"u"?opts.encodeDotInKeys?!0:defaults.allowDots:!!opts.allowDots;return{addQueryPrefix:typeof opts.addQueryPrefix=="boolean"?opts.addQueryPrefix:defaults.addQueryPrefix,allowDots,allowEmptyArrays:typeof opts.allowEmptyArrays=="boolean"?!!opts.allowEmptyArrays:defaults.allowEmptyArrays,arrayFormat,charset,charsetSentinel:typeof opts.charsetSentinel=="boolean"?opts.charsetSentinel:defaults.charsetSentinel,commaRoundTrip:!!opts.commaRoundTrip,delimiter:typeof opts.delimiter>"u"?defaults.delimiter:opts.delimiter,encode:typeof opts.encode=="boolean"?opts.encode:defaults.encode,encodeDotInKeys:typeof opts.encodeDotInKeys=="boolean"?opts.encodeDotInKeys:defaults.encodeDotInKeys,encoder:typeof opts.encoder=="function"?opts.encoder:defaults.encoder,encodeValuesOnly:typeof opts.encodeValuesOnly=="boolean"?opts.encodeValuesOnly:defaults.encodeValuesOnly,filter,format,formatter,serializeDate:typeof opts.serializeDate=="function"?opts.serializeDate:defaults.serializeDate,skipNulls:typeof opts.skipNulls=="boolean"?opts.skipNulls:defaults.skipNulls,sort:typeof opts.sort=="function"?opts.sort:null,strictNullHandling:typeof opts.strictNullHandling=="boolean"?opts.strictNullHandling:defaults.strictNullHandling}}function stringify(object,opts={}){let obj=object,options=normalize_stringify_options(opts),obj_keys,filter;typeof options.filter=="function"?(filter=options.filter,obj=filter("",obj)):isArray(options.filter)&&(filter=options.filter,obj_keys=filter);let keys=[];if(typeof obj!="object"||obj===null)return"";let generateArrayPrefix=array_prefix_generators[options.arrayFormat],commaRoundTrip=generateArrayPrefix==="comma"&&options.commaRoundTrip;obj_keys||(obj_keys=Object.keys(obj)),options.sort&&obj_keys.sort(options.sort);let sideChannel=new WeakMap;for(let i=0;i<obj_keys.length;++i){let key=obj_keys[i];options.skipNulls&&obj[key]===null||push_to_array(keys,inner_stringify(obj[key],key,generateArrayPrefix,commaRoundTrip,options.allowEmptyArrays,options.strictNullHandling,options.skipNulls,options.encodeDotInKeys,options.encode?options.encoder:null,options.filter,options.sort,options.allowDots,options.serializeDate,options.format,options.formatter,options.encodeValuesOnly,options.charset,sideChannel))}let joined=keys.join(options.delimiter),prefix=options.addQueryPrefix===!0?"?":"";return options.charsetSentinel&&(options.charset==="iso-8859-1"?prefix+="utf8=%26%2310003%3B&":prefix+="utf8=%E2%9C%93&"),joined.length>0?prefix+joined:""}function stringifyQuery(query){return stringify(query,{arrayFormat:"brackets"})}function concatBytes(buffers){let length=0;for(let buffer of buffers)length+=buffer.length;let output=new Uint8Array(length),index=0;for(let buffer of buffers)output.set(buffer,index),index+=buffer.length;return output}var encodeUTF8_;function encodeUTF8(str2){let encoder;return(encodeUTF8_??(encoder=new globalThis.TextEncoder,encodeUTF8_=encoder.encode.bind(encoder)))(str2)}var decodeUTF8_;function decodeUTF8(bytes){let decoder;return(decodeUTF8_??(decoder=new globalThis.TextDecoder,decodeUTF8_=decoder.decode.bind(decoder)))(bytes)}var _LineDecoder_buffer,_LineDecoder_carriageReturnIndex,LineDecoder=class{constructor(){_LineDecoder_buffer.set(this,void 0),_LineDecoder_carriageReturnIndex.set(this,void 0),__classPrivateFieldSet(this,_LineDecoder_buffer,new Uint8Array,"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f")}decode(chunk){if(chunk==null)return[];let binaryChunk=chunk instanceof ArrayBuffer?new Uint8Array(chunk):typeof chunk=="string"?encodeUTF8(chunk):chunk;__classPrivateFieldSet(this,_LineDecoder_buffer,concatBytes([__classPrivateFieldGet(this,_LineDecoder_buffer,"f"),binaryChunk]),"f");let lines=[],patternIndex;for(;(patternIndex=findNewlineIndex(__classPrivateFieldGet(this,_LineDecoder_buffer,"f"),__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")))!=null;){if(patternIndex.carriage&&__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")==null){__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,patternIndex.index,"f");continue}if(__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")!=null&&(patternIndex.index!==__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")+1||patternIndex.carriage)){lines.push(decodeUTF8(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(0,__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")-1))),__classPrivateFieldSet(this,_LineDecoder_buffer,__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")),"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f");continue}let endIndex=__classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")!==null?patternIndex.preceding-1:patternIndex.preceding,line=decodeUTF8(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(0,endIndex));lines.push(line),__classPrivateFieldSet(this,_LineDecoder_buffer,__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(patternIndex.index),"f"),__classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f")}return lines}flush(){return __classPrivateFieldGet(this,_LineDecoder_buffer,"f").length?this.decode(`
3
+ `):[]}};_LineDecoder_buffer=new WeakMap,_LineDecoder_carriageReturnIndex=new WeakMap;LineDecoder.NEWLINE_CHARS=new Set([`
4
+ `,"\r"]);LineDecoder.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function findNewlineIndex(buffer,startIndex){for(let i=startIndex??0;i<buffer.length;i++){if(buffer[i]===10)return{preceding:i,index:i+1,carriage:!1};if(buffer[i]===13)return{preceding:i,index:i+1,carriage:!0}}return null}function findDoubleNewlineIndex(buffer){for(let i=0;i<buffer.length-1;i++){if(buffer[i]===10&&buffer[i+1]===10||buffer[i]===13&&buffer[i+1]===13)return i+2;if(buffer[i]===13&&buffer[i+1]===10&&i+3<buffer.length&&buffer[i+2]===13&&buffer[i+3]===10)return i+4}return-1}var levelNumbers={off:0,error:200,warn:300,info:400,debug:500},parseLogLevel=(maybeLevel,sourceName,client)=>{if(maybeLevel){if(hasOwn(levelNumbers,maybeLevel))return maybeLevel;loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`)}};function noop(){}function makeLogFn(fnLevel,logger,logLevel){return!logger||levelNumbers[fnLevel]>levelNumbers[logLevel]?noop:logger[fnLevel].bind(logger)}var noopLogger={error:noop,warn:noop,info:noop,debug:noop},cachedLoggers=new WeakMap;function loggerFor(client){let logger=client.logger,logLevel=client.logLevel??"off";if(!logger)return noopLogger;let cachedLogger=cachedLoggers.get(logger);if(cachedLogger&&cachedLogger[0]===logLevel)return cachedLogger[1];let levelLogger={error:makeLogFn("error",logger,logLevel),warn:makeLogFn("warn",logger,logLevel),info:makeLogFn("info",logger,logLevel),debug:makeLogFn("debug",logger,logLevel)};return cachedLoggers.set(logger,[logLevel,levelLogger]),levelLogger}var formatRequestDetails=details=>(details.options&&(details.options={...details.options},delete details.options.headers),details.headers&&(details.headers=Object.fromEntries((details.headers instanceof Headers?[...details.headers]:Object.entries(details.headers)).map(([name,value])=>[name,name.toLowerCase()==="authorization"||name.toLowerCase()==="api-key"||name.toLowerCase()==="x-api-key"||name.toLowerCase()==="cookie"||name.toLowerCase()==="set-cookie"?"***":value]))),"retryOfRequestLogID"in details&&(details.retryOfRequestLogID&&(details.retryOf=details.retryOfRequestLogID),delete details.retryOfRequestLogID),details);var _Stream_client,Stream=class _Stream{constructor(iterator,controller,client){this.iterator=iterator,_Stream_client.set(this,void 0),this.controller=controller,__classPrivateFieldSet(this,_Stream_client,client,"f")}static fromSSEResponse(response,controller,client,synthesizeEventData){let consumed=!1,logger=client?loggerFor(client):console;async function*iterator(){if(consumed)throw new OpenAIError("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");consumed=!0;let done=!1;try{for await(let sse of _iterSSEMessages(response,controller))if(!done){if(sse.data.startsWith("[DONE]")){done=!0;continue}if(sse.event===null||!sse.event.startsWith("thread.")){let data;try{data=JSON.parse(sse.data)}catch(e){throw logger.error("Could not parse message into JSON:",sse.data),logger.error("From chunk:",sse.raw),e}if(data&&data.error)throw new APIError(void 0,data.error,void 0,response.headers);yield synthesizeEventData?{event:sse.event,data}:data}else{let data;try{data=JSON.parse(sse.data)}catch(e){throw console.error("Could not parse message into JSON:",sse.data),console.error("From chunk:",sse.raw),e}if(sse.event=="error")throw new APIError(void 0,data.error,data.message,void 0);yield{event:sse.event,data}}}done=!0}catch(e){if(isAbortError(e))return;throw e}finally{done||controller.abort()}}return new _Stream(iterator,controller,client)}static fromReadableStream(readableStream,controller,client){let consumed=!1;async function*iterLines(){let lineDecoder=new LineDecoder,iter=ReadableStreamToAsyncIterable(readableStream);for await(let chunk of iter)for(let line of lineDecoder.decode(chunk))yield line;for(let line of lineDecoder.flush())yield line}async function*iterator(){if(consumed)throw new OpenAIError("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");consumed=!0;let done=!1;try{for await(let line of iterLines())done||line&&(yield JSON.parse(line));done=!0}catch(e){if(isAbortError(e))return;throw e}finally{done||controller.abort()}}return new _Stream(iterator,controller,client)}[(_Stream_client=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let left=[],right=[],iterator=this.iterator(),teeIterator=queue=>({next:()=>{if(queue.length===0){let result=iterator.next();left.push(result),right.push(result)}return queue.shift()}});return[new _Stream(()=>teeIterator(left),this.controller,__classPrivateFieldGet(this,_Stream_client,"f")),new _Stream(()=>teeIterator(right),this.controller,__classPrivateFieldGet(this,_Stream_client,"f"))]}toReadableStream(){let self=this,iter;return makeReadableStream({async start(){iter=self[Symbol.asyncIterator]()},async pull(ctrl){try{let{value,done}=await iter.next();if(done)return ctrl.close();let bytes=encodeUTF8(JSON.stringify(value)+`
5
+ `);ctrl.enqueue(bytes)}catch(err){ctrl.error(err)}},async cancel(){await iter.return?.()}})}};async function*_iterSSEMessages(response,controller){if(!response.body)throw controller.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new OpenAIError("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new OpenAIError("Attempted to iterate over a response with no body");let sseDecoder=new SSEDecoder,lineDecoder=new LineDecoder,iter=ReadableStreamToAsyncIterable(response.body);for await(let sseChunk of iterSSEChunks(iter))for(let line of lineDecoder.decode(sseChunk)){let sse=sseDecoder.decode(line);sse&&(yield sse)}for(let line of lineDecoder.flush()){let sse=sseDecoder.decode(line);sse&&(yield sse)}}async function*iterSSEChunks(iterator){let data=new Uint8Array;for await(let chunk of iterator){if(chunk==null)continue;let binaryChunk=chunk instanceof ArrayBuffer?new Uint8Array(chunk):typeof chunk=="string"?encodeUTF8(chunk):chunk,newData=new Uint8Array(data.length+binaryChunk.length);newData.set(data),newData.set(binaryChunk,data.length),data=newData;let patternIndex;for(;(patternIndex=findDoubleNewlineIndex(data))!==-1;)yield data.slice(0,patternIndex),data=data.slice(patternIndex)}data.length>0&&(yield data)}var SSEDecoder=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(line){if(line.endsWith("\r")&&(line=line.substring(0,line.length-1)),!line){if(!this.event&&!this.data.length)return null;let sse={event:this.event,data:this.data.join(`
6
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],sse}if(this.chunks.push(line),line.startsWith(":"))return null;let[fieldname,_,value]=partition(line,":");return value.startsWith(" ")&&(value=value.substring(1)),fieldname==="event"?this.event=value:fieldname==="data"&&this.data.push(value),null}};function partition(str2,delimiter){let index=str2.indexOf(delimiter);return index!==-1?[str2.substring(0,index),delimiter,str2.substring(index+delimiter.length)]:[str2,"",""]}async function defaultParseResponse(client,props){let{response,requestLogID,retryOfRequestLogID,startTime}=props,body=await(async()=>{if(props.options.stream)return loggerFor(client).debug("response",response.status,response.url,response.headers,response.body),props.options.__streamClass?props.options.__streamClass.fromSSEResponse(response,props.controller,client,props.options.__synthesizeEventData):Stream.fromSSEResponse(response,props.controller,client,props.options.__synthesizeEventData);if(response.status===204)return null;if(props.options.__binaryResponse)return response;let mediaType=response.headers.get("content-type")?.split(";")[0]?.trim();if(mediaType?.includes("application/json")||mediaType?.endsWith("+json")){if(response.headers.get("content-length")==="0")return;let json=await response.json();return addRequestID(json,response)}return await response.text()})();return loggerFor(client).debug(`[${requestLogID}] response parsed`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,body,durationMs:Date.now()-startTime})),body}function addRequestID(value,response){return!value||typeof value!="object"||Array.isArray(value)?value:Object.defineProperty(value,"_request_id",{value:response.headers.get("x-request-id"),enumerable:!1})}var _APIPromise_client,APIPromise=class _APIPromise extends Promise{constructor(client,responsePromise,parseResponse2=defaultParseResponse){super(resolve=>{resolve(null)}),this.responsePromise=responsePromise,this.parseResponse=parseResponse2,_APIPromise_client.set(this,void 0),__classPrivateFieldSet(this,_APIPromise_client,client,"f")}_thenUnwrap(transform){return new _APIPromise(__classPrivateFieldGet(this,_APIPromise_client,"f"),this.responsePromise,async(client,props)=>addRequestID(transform(await this.parseResponse(client,props),props),props.response))}asResponse(){return this.responsePromise.then(p=>p.response)}async withResponse(){let[data,response]=await Promise.all([this.parse(),this.asResponse()]);return{data,response,request_id:response.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(data=>this.parseResponse(__classPrivateFieldGet(this,_APIPromise_client,"f"),data))),this.parsedPromise}then(onfulfilled,onrejected){return this.parse().then(onfulfilled,onrejected)}catch(onrejected){return this.parse().catch(onrejected)}finally(onfinally){return this.parse().finally(onfinally)}};_APIPromise_client=new WeakMap;var _AbstractPage_client,AbstractPage=class{constructor(client,response,body,options){_AbstractPage_client.set(this,void 0),__classPrivateFieldSet(this,_AbstractPage_client,client,"f"),this.options=options,this.response=response,this.body=body}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let nextOptions=this.nextPageRequestOptions();if(!nextOptions)throw new OpenAIError("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await __classPrivateFieldGet(this,_AbstractPage_client,"f").requestAPIList(this.constructor,nextOptions)}async*iterPages(){let page=this;for(yield page;page.hasNextPage();)page=await page.getNextPage(),yield page}async*[(_AbstractPage_client=new WeakMap,Symbol.asyncIterator)](){for await(let page of this.iterPages())for(let item of page.getPaginatedItems())yield item}},PagePromise=class extends APIPromise{constructor(client,request,Page2){super(client,request,async(client2,props)=>new Page2(client2,props.response,await defaultParseResponse(client2,props),props.options))}async*[Symbol.asyncIterator](){let page=await this;for await(let item of page)yield item}},Page=class extends AbstractPage{constructor(client,response,body,options){super(client,response,body,options),this.data=body.data||[],this.object=body.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}},CursorPage=class extends AbstractPage{constructor(client,response,body,options){super(client,response,body,options),this.data=body.data||[],this.has_more=body.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let data=this.getPaginatedItems(),id=data[data.length-1]?.id;return id?{...this.options,query:{...maybeObj(this.options.query),after:id}}:null}},ConversationCursorPage=class extends AbstractPage{constructor(client,response,body,options){super(client,response,body,options),this.data=body.data||[],this.has_more=body.has_more||!1,this.last_id=body.last_id||""}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let cursor=this.last_id;return cursor?{...this.options,query:{...maybeObj(this.options.query),after:cursor}}:null}},NextCursorPage=class extends AbstractPage{constructor(client,response,body,options){super(client,response,body,options),this.data=body.data||[],this.has_more=body.has_more||!1,this.next=body.next||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let cursor=this.next;return cursor?{...this.options,query:{...maybeObj(this.options.query),after:cursor}}:null}};var SUBJECT_TOKEN_TYPES={jwt:"urn:ietf:params:oauth:token-type:jwt",id:"urn:ietf:params:oauth:token-type:id_token"},TOKEN_EXCHANGE_GRANT_TYPE="urn:ietf:params:oauth:grant-type:token-exchange",WorkloadIdentityAuth=class{constructor(config,fetch2){this.cachedToken=null,this.refreshPromise=null,this.tokenExchangeUrl="https://auth.openai.com/oauth/token",this.config=config,this.fetch=fetch2??getDefaultFetch()}async getToken(){if(!this.cachedToken||this.isTokenExpired(this.cachedToken)){if(this.refreshPromise)return await this.refreshPromise;this.refreshPromise=this.refreshToken();try{return await this.refreshPromise}finally{this.refreshPromise=null}}return this.needsRefresh(this.cachedToken)&&!this.refreshPromise&&(this.refreshPromise=this.refreshToken().finally(()=>{this.refreshPromise=null})),this.cachedToken.token}async refreshToken(){let subjectToken=await this.config.provider.getToken(),body={grant_type:TOKEN_EXCHANGE_GRANT_TYPE,subject_token:subjectToken,subject_token_type:SUBJECT_TOKEN_TYPES[this.config.provider.tokenType],identity_provider_id:this.config.identityProviderId,service_account_id:this.config.serviceAccountId};this.config.clientId&&(body.client_id=this.config.clientId);let response=await this.fetch(this.tokenExchangeUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(body)});if(!response.ok){let errorText=await response.text(),body2;try{body2=JSON.parse(errorText)}catch{}throw response.status===400||response.status===401||response.status===403?new OAuthError(response.status,body2,response.headers):APIError.generate(response.status,body2,`Token exchange failed with status ${response.status}`,response.headers)}let tokenResponse=await response.json(),expiresIn=tokenResponse.expires_in||3600,expiresAt=Date.now()+expiresIn*1e3;return this.cachedToken={token:tokenResponse.access_token,expiresAt},tokenResponse.access_token}isTokenExpired(cachedToken){return Date.now()>=cachedToken.expiresAt}needsRefresh(cachedToken){let bufferMs=(this.config.refreshBufferSeconds??1200)*1e3;return Date.now()>=cachedToken.expiresAt-bufferMs}invalidateToken(){this.cachedToken=null,this.refreshPromise=null}};var checkFileSupport=()=>{if(typeof File>"u"){let{process:process2}=globalThis,isOldNode=typeof process2?.versions?.node=="string"&&parseInt(process2.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(isOldNode?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function makeFile(fileBits,fileName,options){return checkFileSupport(),new File(fileBits,fileName??"unknown_file",options)}function getName(value){return(typeof value=="object"&&value!==null&&("name"in value&&value.name&&String(value.name)||"url"in value&&value.url&&String(value.url)||"filename"in value&&value.filename&&String(value.filename)||"path"in value&&value.path&&String(value.path))||"").split(/[\\/]/).pop()||void 0}var isAsyncIterable=value=>value!=null&&typeof value=="object"&&typeof value[Symbol.asyncIterator]=="function",maybeMultipartFormRequestOptions=async(opts,fetch2)=>hasUploadableValue(opts.body)?{...opts,body:await createForm(opts.body,fetch2)}:opts,multipartFormRequestOptions=async(opts,fetch2)=>({...opts,body:await createForm(opts.body,fetch2)}),supportsFormDataMap=new WeakMap;function supportsFormData(fetchObject){let fetch2=typeof fetchObject=="function"?fetchObject:fetchObject.fetch,cached=supportsFormDataMap.get(fetch2);if(cached)return cached;let promise=(async()=>{try{let FetchResponse="Response"in fetch2?fetch2.Response:(await fetch2("data:,")).constructor,data=new FormData;return data.toString()!==await new FetchResponse(data).text()}catch{return!0}})();return supportsFormDataMap.set(fetch2,promise),promise}var createForm=async(body,fetch2)=>{if(!await supportsFormData(fetch2))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let form=new FormData;return await Promise.all(Object.entries(body||{}).map(([key,value])=>addFormValue(form,key,value))),form},isNamedBlob=value=>value instanceof Blob&&"name"in value,isUploadable=value=>typeof value=="object"&&value!==null&&(value instanceof Response||isAsyncIterable(value)||isNamedBlob(value)),hasUploadableValue=value=>{if(isUploadable(value))return!0;if(Array.isArray(value))return value.some(hasUploadableValue);if(value&&typeof value=="object"){for(let k in value)if(hasUploadableValue(value[k]))return!0}return!1},addFormValue=async(form,key,value)=>{if(value!==void 0){if(value==null)throw new TypeError(`Received null for "${key}"; to pass null in FormData, you must use the string 'null'`);if(typeof value=="string"||typeof value=="number"||typeof value=="boolean")form.append(key,String(value));else if(value instanceof Response)form.append(key,makeFile([await value.blob()],getName(value)));else if(isAsyncIterable(value))form.append(key,makeFile([await new Response(ReadableStreamFrom(value)).blob()],getName(value)));else if(isNamedBlob(value))form.append(key,value,getName(value));else if(Array.isArray(value))await Promise.all(value.map(entry=>addFormValue(form,key+"[]",entry)));else if(typeof value=="object")await Promise.all(Object.entries(value).map(([name,prop])=>addFormValue(form,`${key}[${name}]`,prop)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`)}};var isBlobLike=value=>value!=null&&typeof value=="object"&&typeof value.size=="number"&&typeof value.type=="string"&&typeof value.text=="function"&&typeof value.slice=="function"&&typeof value.arrayBuffer=="function",isFileLike=value=>value!=null&&typeof value=="object"&&typeof value.name=="string"&&typeof value.lastModified=="number"&&isBlobLike(value),isResponseLike=value=>value!=null&&typeof value=="object"&&typeof value.url=="string"&&typeof value.blob=="function";async function toFile(value,name,options){if(checkFileSupport(),value=await value,isFileLike(value))return value instanceof File?value:makeFile([await value.arrayBuffer()],value.name);if(isResponseLike(value)){let blob=await value.blob();return name||(name=new URL(value.url).pathname.split(/[\\/]/).pop()),makeFile(await getBytes(blob),name,options)}let parts=await getBytes(value);if(name||(name=getName(value)),!options?.type){let type=parts.find(part=>typeof part=="object"&&"type"in part&&part.type);typeof type=="string"&&(options={...options,type})}return makeFile(parts,name,options)}async function getBytes(value){let parts=[];if(typeof value=="string"||ArrayBuffer.isView(value)||value instanceof ArrayBuffer)parts.push(value);else if(isBlobLike(value))parts.push(value instanceof Blob?value:await value.arrayBuffer());else if(isAsyncIterable(value))for await(let chunk of value)parts.push(...await getBytes(chunk));else{let constructor=value?.constructor?.name;throw new Error(`Unexpected data type: ${typeof value}${constructor?`; constructor: ${constructor}`:""}${propsForError(value)}`)}return parts}function propsForError(value){return typeof value!="object"||value===null?"":`; props: [${Object.getOwnPropertyNames(value).map(p=>`"${p}"`).join(", ")}]`}var APIResource=class{constructor(client){this._client=client}};function encodeURIPath(str2){return str2.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var EMPTY=Object.freeze(Object.create(null)),createPathTagFunction=(pathEncoder=encodeURIPath)=>function(statics,...params){if(statics.length===1)return statics[0];let postPath=!1,invalidSegments=[],path3=statics.reduce((previousValue,currentValue,index)=>{/[?#]/.test(currentValue)&&(postPath=!0);let value=params[index],encoded=(postPath?encodeURIComponent:pathEncoder)(""+value);return index!==params.length&&(value==null||typeof value=="object"&&value.toString===Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty??EMPTY)??EMPTY)?.toString)&&(encoded=value+"",invalidSegments.push({start:previousValue.length+currentValue.length,length:encoded.length,error:`Value of type ${Object.prototype.toString.call(value).slice(8,-1)} is not a valid path parameter`})),previousValue+currentValue+(index===params.length?"":encoded)},""),pathOnly=path3.split(/[?#]/,1)[0],invalidSegmentPattern=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,match;for(;(match=invalidSegmentPattern.exec(pathOnly))!==null;)invalidSegments.push({start:match.index,length:match[0].length,error:`Value "${match[0]}" can't be safely passed as a path parameter`});if(invalidSegments.sort((a,b)=>a.start-b.start),invalidSegments.length>0){let lastEnd=0,underline=invalidSegments.reduce((acc,segment)=>{let spaces=" ".repeat(segment.start-lastEnd),arrows="^".repeat(segment.length);return lastEnd=segment.start+segment.length,acc+spaces+arrows},"");throw new OpenAIError(`Path parameters result in path with invalid segments:
7
+ ${invalidSegments.map(e=>e.error).join(`
8
+ `)}
9
+ ${path3}
10
+ ${underline}`)}return path3},path=createPathTagFunction(encodeURIPath);var Messages=class extends APIResource{list(completionID,query={},options){return this._client.getAPIList(path`/chat/completions/${completionID}/messages`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}};function isChatCompletionFunctionTool(tool){return tool!==void 0&&"function"in tool&&tool.function!==void 0}function isAutoParsableResponseFormat(response_format){return response_format?.$brand==="auto-parseable-response-format"}function isAutoParsableTool(tool){return tool?.$brand==="auto-parseable-tool"}function maybeParseChatCompletion(completion,params){return!params||!hasAutoParseableInput(params)?{...completion,choices:completion.choices.map(choice=>(assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls),{...choice,message:{...choice.message,parsed:null,...choice.message.tool_calls?{tool_calls:choice.message.tool_calls}:void 0}}))}:parseChatCompletion(completion,params)}function parseChatCompletion(completion,params){let choices=completion.choices.map(choice=>{if(choice.finish_reason==="length")throw new LengthFinishReasonError;if(choice.finish_reason==="content_filter")throw new ContentFilterFinishReasonError;return assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls),{...choice,message:{...choice.message,...choice.message.tool_calls?{tool_calls:choice.message.tool_calls?.map(toolCall=>parseToolCall(params,toolCall))??void 0}:void 0,parsed:choice.message.content&&!choice.message.refusal?parseResponseFormat(params,choice.message.content):null}}});return{...completion,choices}}function parseResponseFormat(params,content){return params.response_format?.type!=="json_schema"?null:params.response_format?.type==="json_schema"?"$parseRaw"in params.response_format?params.response_format.$parseRaw(content):JSON.parse(content):null}function parseToolCall(params,toolCall){let inputTool=params.tools?.find(inputTool2=>isChatCompletionFunctionTool(inputTool2)&&inputTool2.function?.name===toolCall.function.name);return{...toolCall,function:{...toolCall.function,parsed_arguments:isAutoParsableTool(inputTool)?inputTool.$parseRaw(toolCall.function.arguments):inputTool?.function.strict?JSON.parse(toolCall.function.arguments):null}}}function shouldParseToolCall(params,toolCall){if(!params||!("tools"in params)||!params.tools)return!1;let inputTool=params.tools?.find(inputTool2=>isChatCompletionFunctionTool(inputTool2)&&inputTool2.function?.name===toolCall.function.name);return isChatCompletionFunctionTool(inputTool)&&(isAutoParsableTool(inputTool)||inputTool?.function.strict||!1)}function hasAutoParseableInput(params){return isAutoParsableResponseFormat(params.response_format)?!0:params.tools?.some(t=>isAutoParsableTool(t)||t.type==="function"&&t.function.strict===!0)??!1}function assertToolCallsAreChatCompletionFunctionToolCalls(toolCalls){for(let toolCall of toolCalls||[])if(toolCall.type!=="function")throw new OpenAIError(`Currently only \`function\` tool calls are supported; Received \`${toolCall.type}\``)}function validateInputTools(tools){for(let tool of tools??[]){if(tool.type!=="function")throw new OpenAIError(`Currently only \`function\` tool types support auto-parsing; Received \`${tool.type}\``);if(tool.function.strict!==!0)throw new OpenAIError(`The \`${tool.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var isAssistantMessage=message=>message?.role==="assistant",isToolMessage=message=>message?.role==="tool";var _EventStream_instances,_EventStream_connectedPromise,_EventStream_resolveConnectedPromise,_EventStream_rejectConnectedPromise,_EventStream_endPromise,_EventStream_resolveEndPromise,_EventStream_rejectEndPromise,_EventStream_listeners,_EventStream_ended,_EventStream_errored,_EventStream_aborted,_EventStream_catchingPromiseCreated,_EventStream_handleError,EventStream=class{constructor(){_EventStream_instances.add(this),this.controller=new AbortController,_EventStream_connectedPromise.set(this,void 0),_EventStream_resolveConnectedPromise.set(this,()=>{}),_EventStream_rejectConnectedPromise.set(this,()=>{}),_EventStream_endPromise.set(this,void 0),_EventStream_resolveEndPromise.set(this,()=>{}),_EventStream_rejectEndPromise.set(this,()=>{}),_EventStream_listeners.set(this,{}),_EventStream_ended.set(this,!1),_EventStream_errored.set(this,!1),_EventStream_aborted.set(this,!1),_EventStream_catchingPromiseCreated.set(this,!1),__classPrivateFieldSet(this,_EventStream_connectedPromise,new Promise((resolve,reject)=>{__classPrivateFieldSet(this,_EventStream_resolveConnectedPromise,resolve,"f"),__classPrivateFieldSet(this,_EventStream_rejectConnectedPromise,reject,"f")}),"f"),__classPrivateFieldSet(this,_EventStream_endPromise,new Promise((resolve,reject)=>{__classPrivateFieldSet(this,_EventStream_resolveEndPromise,resolve,"f"),__classPrivateFieldSet(this,_EventStream_rejectEndPromise,reject,"f")}),"f"),__classPrivateFieldGet(this,_EventStream_connectedPromise,"f").catch(()=>{}),__classPrivateFieldGet(this,_EventStream_endPromise,"f").catch(()=>{})}_run(executor){setTimeout(()=>{executor().then(()=>{this._emitFinal(),this._emit("end")},__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_handleError).bind(this))},0)}_connected(){this.ended||(__classPrivateFieldGet(this,_EventStream_resolveConnectedPromise,"f").call(this),this._emit("connect"))}get ended(){return __classPrivateFieldGet(this,_EventStream_ended,"f")}get errored(){return __classPrivateFieldGet(this,_EventStream_errored,"f")}get aborted(){return __classPrivateFieldGet(this,_EventStream_aborted,"f")}abort(){this.controller.abort()}on(event,listener){return(__classPrivateFieldGet(this,_EventStream_listeners,"f")[event]||(__classPrivateFieldGet(this,_EventStream_listeners,"f")[event]=[])).push({listener}),this}off(event,listener){let listeners=__classPrivateFieldGet(this,_EventStream_listeners,"f")[event];if(!listeners)return this;let index=listeners.findIndex(l=>l.listener===listener);return index>=0&&listeners.splice(index,1),this}once(event,listener){return(__classPrivateFieldGet(this,_EventStream_listeners,"f")[event]||(__classPrivateFieldGet(this,_EventStream_listeners,"f")[event]=[])).push({listener,once:!0}),this}emitted(event){return new Promise((resolve,reject)=>{__classPrivateFieldSet(this,_EventStream_catchingPromiseCreated,!0,"f"),event!=="error"&&this.once("error",reject),this.once(event,resolve)})}async done(){__classPrivateFieldSet(this,_EventStream_catchingPromiseCreated,!0,"f"),await __classPrivateFieldGet(this,_EventStream_endPromise,"f")}_emit(event,...args){if(__classPrivateFieldGet(this,_EventStream_ended,"f"))return;event==="end"&&(__classPrivateFieldSet(this,_EventStream_ended,!0,"f"),__classPrivateFieldGet(this,_EventStream_resolveEndPromise,"f").call(this));let listeners=__classPrivateFieldGet(this,_EventStream_listeners,"f")[event];if(listeners&&(__classPrivateFieldGet(this,_EventStream_listeners,"f")[event]=listeners.filter(l=>!l.once),listeners.forEach(({listener})=>listener(...args))),event==="abort"){let error=args[0];!__classPrivateFieldGet(this,_EventStream_catchingPromiseCreated,"f")&&!listeners?.length&&Promise.reject(error),__classPrivateFieldGet(this,_EventStream_rejectConnectedPromise,"f").call(this,error),__classPrivateFieldGet(this,_EventStream_rejectEndPromise,"f").call(this,error),this._emit("end");return}if(event==="error"){let error=args[0];!__classPrivateFieldGet(this,_EventStream_catchingPromiseCreated,"f")&&!listeners?.length&&Promise.reject(error),__classPrivateFieldGet(this,_EventStream_rejectConnectedPromise,"f").call(this,error),__classPrivateFieldGet(this,_EventStream_rejectEndPromise,"f").call(this,error),this._emit("end")}}_emitFinal(){}};_EventStream_connectedPromise=new WeakMap,_EventStream_resolveConnectedPromise=new WeakMap,_EventStream_rejectConnectedPromise=new WeakMap,_EventStream_endPromise=new WeakMap,_EventStream_resolveEndPromise=new WeakMap,_EventStream_rejectEndPromise=new WeakMap,_EventStream_listeners=new WeakMap,_EventStream_ended=new WeakMap,_EventStream_errored=new WeakMap,_EventStream_aborted=new WeakMap,_EventStream_catchingPromiseCreated=new WeakMap,_EventStream_instances=new WeakSet,_EventStream_handleError=function(error){if(__classPrivateFieldSet(this,_EventStream_errored,!0,"f"),error instanceof Error&&error.name==="AbortError"&&(error=new APIUserAbortError),error instanceof APIUserAbortError)return __classPrivateFieldSet(this,_EventStream_aborted,!0,"f"),this._emit("abort",error);if(error instanceof OpenAIError)return this._emit("error",error);if(error instanceof Error){let openAIError=new OpenAIError(error.message);return openAIError.cause=error,this._emit("error",openAIError)}return this._emit("error",new OpenAIError(String(error)))};function isRunnableFunctionWithParse(fn){return typeof fn.parse=="function"}var _AbstractChatCompletionRunner_instances,_AbstractChatCompletionRunner_getFinalContent,_AbstractChatCompletionRunner_getFinalMessage,_AbstractChatCompletionRunner_getFinalFunctionToolCall,_AbstractChatCompletionRunner_getFinalFunctionToolCallResult,_AbstractChatCompletionRunner_calculateTotalUsage,_AbstractChatCompletionRunner_validateParams,_AbstractChatCompletionRunner_stringifyFunctionCallResult,DEFAULT_MAX_CHAT_COMPLETIONS=10,AbstractChatCompletionRunner=class extends EventStream{constructor(){super(...arguments),_AbstractChatCompletionRunner_instances.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(chatCompletion){this._chatCompletions.push(chatCompletion),this._emit("chatCompletion",chatCompletion);let message=chatCompletion.choices[0]?.message;return message&&this._addMessage(message),chatCompletion}_addMessage(message,emit=!0){if("content"in message||(message.content=null),this.messages.push(message),emit){if(this._emit("message",message),isToolMessage(message)&&message.content)this._emit("functionToolCallResult",message.content);else if(isAssistantMessage(message)&&message.tool_calls)for(let tool_call of message.tool_calls)tool_call.type==="function"&&this._emit("functionToolCall",tool_call.function)}}async finalChatCompletion(){await this.done();let completion=this._chatCompletions[this._chatCompletions.length-1];if(!completion)throw new OpenAIError("stream ended without producing a ChatCompletion");return completion}async finalContent(){return await this.done(),__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalContent).call(this)}async finalMessage(){return await this.done(),__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalMessage).call(this)}async finalFunctionToolCall(){return await this.done(),__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this)}async finalFunctionToolCallResult(){return await this.done(),__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this)}async totalUsage(){return await this.done(),__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_calculateTotalUsage).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let completion=this._chatCompletions[this._chatCompletions.length-1];completion&&this._emit("finalChatCompletion",completion);let finalMessage=__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalMessage).call(this);finalMessage&&this._emit("finalMessage",finalMessage);let finalContent=__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalContent).call(this);finalContent&&this._emit("finalContent",finalContent);let finalFunctionCall=__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);finalFunctionCall&&this._emit("finalFunctionToolCall",finalFunctionCall);let finalFunctionCallResult=__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);finalFunctionCallResult!=null&&this._emit("finalFunctionToolCallResult",finalFunctionCallResult),this._chatCompletions.some(c=>c.usage)&&this._emit("totalUsage",__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_calculateTotalUsage).call(this))}async _createChatCompletion(client,params,options){let signal=options?.signal;signal&&(signal.aborted&&this.controller.abort(),signal.addEventListener("abort",()=>this.controller.abort())),__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_validateParams).call(this,params);let chatCompletion=await client.chat.completions.create({...params,stream:!1},{...options,signal:this.controller.signal});return this._connected(),this._addChatCompletion(parseChatCompletion(chatCompletion,params))}async _runChatCompletion(client,params,options){for(let message of params.messages)this._addMessage(message,!1);return await this._createChatCompletion(client,params,options)}async _runTools(client,params,options){let role="tool",{tool_choice="auto",stream,...restParams}=params,singleFunctionToCall=typeof tool_choice!="string"&&tool_choice.type==="function"&&tool_choice?.function?.name,{maxChatCompletions=DEFAULT_MAX_CHAT_COMPLETIONS}=options||{},inputTools=params.tools.map(tool=>{if(isAutoParsableTool(tool)){if(!tool.$callback)throw new OpenAIError("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:tool.$callback,name:tool.function.name,description:tool.function.description||"",parameters:tool.function.parameters,parse:tool.$parseRaw,strict:!0}}}return tool}),functionsByName={};for(let f of inputTools)f.type==="function"&&(functionsByName[f.function.name||f.function.function.name]=f.function);let tools="tools"in params?inputTools.map(t=>t.type==="function"?{type:"function",function:{name:t.function.name||t.function.function.name,parameters:t.function.parameters,description:t.function.description,strict:t.function.strict}}:t):void 0;for(let message of params.messages)this._addMessage(message,!1);for(let i=0;i<maxChatCompletions;++i){let message=(await this._createChatCompletion(client,{...restParams,tool_choice,tools,messages:[...this.messages]},options)).choices[0]?.message;if(!message)throw new OpenAIError("missing message in ChatCompletion response");if(!message.tool_calls?.length)return;for(let tool_call of message.tool_calls){if(tool_call.type!=="function")continue;let tool_call_id=tool_call.id,{name,arguments:args}=tool_call.function,fn=functionsByName[name];if(fn){if(singleFunctionToCall&&singleFunctionToCall!==name){let content2=`Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;this._addMessage({role,tool_call_id,content:content2});continue}}else{let content2=`Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName).map(name2=>JSON.stringify(name2)).join(", ")}. Please try again`;this._addMessage({role,tool_call_id,content:content2});continue}let parsed;try{parsed=isRunnableFunctionWithParse(fn)?await fn.parse(args):args}catch(error){let content2=error instanceof Error?error.message:String(error);this._addMessage({role,tool_call_id,content:content2});continue}let rawContent=await fn.function(parsed,this),content=__classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this,rawContent);if(this._addMessage({role,tool_call_id,content}),singleFunctionToCall)return}}}};_AbstractChatCompletionRunner_instances=new WeakSet,_AbstractChatCompletionRunner_getFinalContent=function(){return __classPrivateFieldGet(this,_AbstractChatCompletionRunner_instances,"m",_AbstractChatCompletionRunner_getFinalMessage).call(this).content??null},_AbstractChatCompletionRunner_getFinalMessage=function(){let i=this.messages.length;for(;i-- >0;){let message=this.messages[i];if(isAssistantMessage(message))return{...message,content:message.content??null,refusal:message.refusal??null}}throw new OpenAIError("stream ended without producing a ChatCompletionMessage with role=assistant")},_AbstractChatCompletionRunner_getFinalFunctionToolCall=function(){for(let i=this.messages.length-1;i>=0;i--){let message=this.messages[i];if(isAssistantMessage(message)&&message?.tool_calls?.length)return message.tool_calls.filter(x=>x.type==="function").at(-1)?.function}},_AbstractChatCompletionRunner_getFinalFunctionToolCallResult=function(){for(let i=this.messages.length-1;i>=0;i--){let message=this.messages[i];if(isToolMessage(message)&&message.content!=null&&typeof message.content=="string"&&this.messages.some(x=>x.role==="assistant"&&x.tool_calls?.some(y=>y.type==="function"&&y.id===message.tool_call_id)))return message.content}},_AbstractChatCompletionRunner_calculateTotalUsage=function(){let total={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage}of this._chatCompletions)usage&&(total.completion_tokens+=usage.completion_tokens,total.prompt_tokens+=usage.prompt_tokens,total.total_tokens+=usage.total_tokens);return total},_AbstractChatCompletionRunner_validateParams=function(params){if(params.n!=null&&params.n>1)throw new OpenAIError("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},_AbstractChatCompletionRunner_stringifyFunctionCallResult=function(rawContent){return typeof rawContent=="string"?rawContent:rawContent===void 0?"undefined":JSON.stringify(rawContent)};var ChatCompletionRunner=class _ChatCompletionRunner extends AbstractChatCompletionRunner{static runTools(client,params,options){let runner=new _ChatCompletionRunner,opts={...options,headers:{...options?.headers,"X-Stainless-Helper-Method":"runTools"}};return runner._run(()=>runner._runTools(client,params,opts)),runner}_addMessage(message,emit=!0){super._addMessage(message,emit),isAssistantMessage(message)&&message.content&&this._emit("content",message.content)}};var Allow={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511},PartialJSON=class extends Error{},MalformedJSON=class extends Error{};function parseJSON(jsonString,allowPartial=Allow.ALL){if(typeof jsonString!="string")throw new TypeError(`expecting str, got ${typeof jsonString}`);if(!jsonString.trim())throw new Error(`${jsonString} is empty`);return _parseJSON(jsonString.trim(),allowPartial)}var _parseJSON=(jsonString,allow)=>{let length=jsonString.length,index=0,markPartialJSON=msg=>{throw new PartialJSON(`${msg} at position ${index}`)},throwMalformedError=msg=>{throw new MalformedJSON(`${msg} at position ${index}`)},parseAny=()=>(skipBlank(),index>=length&&markPartialJSON("Unexpected end of input"),jsonString[index]==='"'?parseStr():jsonString[index]==="{"?parseObj():jsonString[index]==="["?parseArr():jsonString.substring(index,index+4)==="null"||Allow.NULL&allow&&length-index<4&&"null".startsWith(jsonString.substring(index))?(index+=4,null):jsonString.substring(index,index+4)==="true"||Allow.BOOL&allow&&length-index<4&&"true".startsWith(jsonString.substring(index))?(index+=4,!0):jsonString.substring(index,index+5)==="false"||Allow.BOOL&allow&&length-index<5&&"false".startsWith(jsonString.substring(index))?(index+=5,!1):jsonString.substring(index,index+8)==="Infinity"||Allow.INFINITY&allow&&length-index<8&&"Infinity".startsWith(jsonString.substring(index))?(index+=8,1/0):jsonString.substring(index,index+9)==="-Infinity"||Allow.MINUS_INFINITY&allow&&1<length-index&&length-index<9&&"-Infinity".startsWith(jsonString.substring(index))?(index+=9,-1/0):jsonString.substring(index,index+3)==="NaN"||Allow.NAN&allow&&length-index<3&&"NaN".startsWith(jsonString.substring(index))?(index+=3,NaN):parseNum()),parseStr=()=>{let start=index,escape2=!1;for(index++;index<length&&(jsonString[index]!=='"'||escape2&&jsonString[index-1]==="\\");)escape2=jsonString[index]==="\\"?!escape2:!1,index++;if(jsonString.charAt(index)=='"')try{return JSON.parse(jsonString.substring(start,++index-Number(escape2)))}catch(e){throwMalformedError(String(e))}else if(Allow.STR&allow)try{return JSON.parse(jsonString.substring(start,index-Number(escape2))+'"')}catch{return JSON.parse(jsonString.substring(start,jsonString.lastIndexOf("\\"))+'"')}markPartialJSON("Unterminated string literal")},parseObj=()=>{index++,skipBlank();let obj={};try{for(;jsonString[index]!=="}";){if(skipBlank(),index>=length&&Allow.OBJ&allow)return obj;let key=parseStr();skipBlank(),index++;try{let value=parseAny();Object.defineProperty(obj,key,{value,writable:!0,enumerable:!0,configurable:!0})}catch(e){if(Allow.OBJ&allow)return obj;throw e}skipBlank(),jsonString[index]===","&&index++}}catch{if(Allow.OBJ&allow)return obj;markPartialJSON("Expected '}' at end of object")}return index++,obj},parseArr=()=>{index++;let arr=[];try{for(;jsonString[index]!=="]";)arr.push(parseAny()),skipBlank(),jsonString[index]===","&&index++}catch{if(Allow.ARR&allow)return arr;markPartialJSON("Expected ']' at end of array")}return index++,arr},parseNum=()=>{if(index===0){jsonString==="-"&&Allow.NUM&allow&&markPartialJSON("Not sure what '-' is");try{return JSON.parse(jsonString)}catch(e){if(Allow.NUM&allow)try{return jsonString[jsonString.length-1]==="."?JSON.parse(jsonString.substring(0,jsonString.lastIndexOf("."))):JSON.parse(jsonString.substring(0,jsonString.lastIndexOf("e")))}catch{}throwMalformedError(String(e))}}let start=index;for(jsonString[index]==="-"&&index++;jsonString[index]&&!",]}".includes(jsonString[index]);)index++;index==length&&!(Allow.NUM&allow)&&markPartialJSON("Unterminated number literal");try{return JSON.parse(jsonString.substring(start,index))}catch{jsonString.substring(start,index)==="-"&&Allow.NUM&allow&&markPartialJSON("Not sure what '-' is");try{return JSON.parse(jsonString.substring(start,jsonString.lastIndexOf("e")))}catch(e2){throwMalformedError(String(e2))}}},skipBlank=()=>{for(;index<length&&`
11
+ \r `.includes(jsonString[index]);)index++};return parseAny()},partialParse=input=>parseJSON(input,Allow.ALL^Allow.NUM);var _ChatCompletionStream_instances,_ChatCompletionStream_params,_ChatCompletionStream_choiceEventStates,_ChatCompletionStream_currentChatCompletionSnapshot,_ChatCompletionStream_beginRequest,_ChatCompletionStream_getChoiceEventState,_ChatCompletionStream_addChunk,_ChatCompletionStream_emitToolCallDoneEvent,_ChatCompletionStream_emitContentDoneEvents,_ChatCompletionStream_endRequest,_ChatCompletionStream_getAutoParseableResponseFormat,_ChatCompletionStream_accumulateChatCompletion,ChatCompletionStream=class _ChatCompletionStream extends AbstractChatCompletionRunner{constructor(params){super(),_ChatCompletionStream_instances.add(this),_ChatCompletionStream_params.set(this,void 0),_ChatCompletionStream_choiceEventStates.set(this,void 0),_ChatCompletionStream_currentChatCompletionSnapshot.set(this,void 0),__classPrivateFieldSet(this,_ChatCompletionStream_params,params,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_choiceEventStates,[],"f")}get currentChatCompletionSnapshot(){return __classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f")}static fromReadableStream(stream){let runner=new _ChatCompletionStream(null);return runner._run(()=>runner._fromReadableStream(stream)),runner}static createChatCompletion(client,params,options){let runner=new _ChatCompletionStream(params);return runner._run(()=>runner._runChatCompletion(client,{...params,stream:!0},{...options,headers:{...options?.headers,"X-Stainless-Helper-Method":"stream"}})),runner}async _createChatCompletion(client,params,options){super._createChatCompletion;let signal=options?.signal;signal&&(signal.aborted&&this.controller.abort(),signal.addEventListener("abort",()=>this.controller.abort())),__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_beginRequest).call(this);let stream=await client.chat.completions.create({...params,stream:!0},{...options,signal:this.controller.signal});this._connected();for await(let chunk of stream)__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_addChunk).call(this,chunk);if(stream.controller.signal?.aborted)throw new APIUserAbortError;return this._addChatCompletion(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_endRequest).call(this))}async _fromReadableStream(readableStream,options){let signal=options?.signal;signal&&(signal.aborted&&this.controller.abort(),signal.addEventListener("abort",()=>this.controller.abort())),__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_beginRequest).call(this),this._connected();let stream=Stream.fromReadableStream(readableStream,this.controller),chatId;for await(let chunk of stream)chatId&&chatId!==chunk.id&&this._addChatCompletion(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_endRequest).call(this)),__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_addChunk).call(this,chunk),chatId=chunk.id;if(stream.controller.signal?.aborted)throw new APIUserAbortError;return this._addChatCompletion(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_endRequest).call(this))}[(_ChatCompletionStream_params=new WeakMap,_ChatCompletionStream_choiceEventStates=new WeakMap,_ChatCompletionStream_currentChatCompletionSnapshot=new WeakMap,_ChatCompletionStream_instances=new WeakSet,_ChatCompletionStream_beginRequest=function(){this.ended||__classPrivateFieldSet(this,_ChatCompletionStream_currentChatCompletionSnapshot,void 0,"f")},_ChatCompletionStream_getChoiceEventState=function(choice){let state=__classPrivateFieldGet(this,_ChatCompletionStream_choiceEventStates,"f")[choice.index];return state||(state={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},__classPrivateFieldGet(this,_ChatCompletionStream_choiceEventStates,"f")[choice.index]=state,state)},_ChatCompletionStream_addChunk=function(chunk){if(this.ended)return;let completion=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_accumulateChatCompletion).call(this,chunk);this._emit("chunk",chunk,completion);for(let choice of chunk.choices){let choiceSnapshot=completion.choices[choice.index];choice.delta.content!=null&&choiceSnapshot.message?.role==="assistant"&&choiceSnapshot.message?.content&&(this._emit("content",choice.delta.content,choiceSnapshot.message.content),this._emit("content.delta",{delta:choice.delta.content,snapshot:choiceSnapshot.message.content,parsed:choiceSnapshot.message.parsed})),choice.delta.refusal!=null&&choiceSnapshot.message?.role==="assistant"&&choiceSnapshot.message?.refusal&&this._emit("refusal.delta",{delta:choice.delta.refusal,snapshot:choiceSnapshot.message.refusal}),choice.logprobs?.content!=null&&choiceSnapshot.message?.role==="assistant"&&this._emit("logprobs.content.delta",{content:choice.logprobs?.content,snapshot:choiceSnapshot.logprobs?.content??[]}),choice.logprobs?.refusal!=null&&choiceSnapshot.message?.role==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:choice.logprobs?.refusal,snapshot:choiceSnapshot.logprobs?.refusal??[]});let state=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getChoiceEventState).call(this,choiceSnapshot);choiceSnapshot.finish_reason&&(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_emitContentDoneEvents).call(this,choiceSnapshot),state.current_tool_call_index!=null&&__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_emitToolCallDoneEvent).call(this,choiceSnapshot,state.current_tool_call_index));for(let toolCall of choice.delta.tool_calls??[])state.current_tool_call_index!==toolCall.index&&(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_emitContentDoneEvents).call(this,choiceSnapshot),state.current_tool_call_index!=null&&__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_emitToolCallDoneEvent).call(this,choiceSnapshot,state.current_tool_call_index)),state.current_tool_call_index=toolCall.index;for(let toolCallDelta of choice.delta.tool_calls??[]){let toolCallSnapshot=choiceSnapshot.message.tool_calls?.[toolCallDelta.index];toolCallSnapshot?.type&&(toolCallSnapshot?.type==="function"?this._emit("tool_calls.function.arguments.delta",{name:toolCallSnapshot.function?.name,index:toolCallDelta.index,arguments:toolCallSnapshot.function.arguments,parsed_arguments:toolCallSnapshot.function.parsed_arguments,arguments_delta:toolCallDelta.function?.arguments??""}):(toolCallSnapshot?.type,void 0))}}},_ChatCompletionStream_emitToolCallDoneEvent=function(choiceSnapshot,toolCallIndex){if(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getChoiceEventState).call(this,choiceSnapshot).done_tool_calls.has(toolCallIndex))return;let toolCallSnapshot=choiceSnapshot.message.tool_calls?.[toolCallIndex];if(!toolCallSnapshot)throw new Error("no tool call snapshot");if(!toolCallSnapshot.type)throw new Error("tool call snapshot missing `type`");if(toolCallSnapshot.type==="function"){let inputTool=__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.tools?.find(tool=>isChatCompletionFunctionTool(tool)&&tool.function.name===toolCallSnapshot.function.name);this._emit("tool_calls.function.arguments.done",{name:toolCallSnapshot.function.name,index:toolCallIndex,arguments:toolCallSnapshot.function.arguments,parsed_arguments:isAutoParsableTool(inputTool)?inputTool.$parseRaw(toolCallSnapshot.function.arguments):inputTool?.function.strict?JSON.parse(toolCallSnapshot.function.arguments):null})}else toolCallSnapshot.type},_ChatCompletionStream_emitContentDoneEvents=function(choiceSnapshot){let state=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getChoiceEventState).call(this,choiceSnapshot);if(choiceSnapshot.message.content&&!state.content_done){state.content_done=!0;let responseFormat=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getAutoParseableResponseFormat).call(this);this._emit("content.done",{content:choiceSnapshot.message.content,parsed:responseFormat?responseFormat.$parseRaw(choiceSnapshot.message.content):null})}choiceSnapshot.message.refusal&&!state.refusal_done&&(state.refusal_done=!0,this._emit("refusal.done",{refusal:choiceSnapshot.message.refusal})),choiceSnapshot.logprobs?.content&&!state.logprobs_content_done&&(state.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:choiceSnapshot.logprobs.content})),choiceSnapshot.logprobs?.refusal&&!state.logprobs_refusal_done&&(state.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:choiceSnapshot.logprobs.refusal}))},_ChatCompletionStream_endRequest=function(){if(this.ended)throw new OpenAIError("stream has ended, this shouldn't happen");let snapshot=__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f");if(!snapshot)throw new OpenAIError("request ended without sending any chunks");return __classPrivateFieldSet(this,_ChatCompletionStream_currentChatCompletionSnapshot,void 0,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_choiceEventStates,[],"f"),finalizeChatCompletion(snapshot,__classPrivateFieldGet(this,_ChatCompletionStream_params,"f"))},_ChatCompletionStream_getAutoParseableResponseFormat=function(){let responseFormat=__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.response_format;return isAutoParsableResponseFormat(responseFormat)?responseFormat:null},_ChatCompletionStream_accumulateChatCompletion=function(chunk){var _a3,_b,_c,_d;let snapshot=__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f"),{choices,...rest}=chunk;snapshot?Object.assign(snapshot,rest):snapshot=__classPrivateFieldSet(this,_ChatCompletionStream_currentChatCompletionSnapshot,{...rest,choices:[]},"f");for(let{delta,finish_reason,index,logprobs=null,...other}of chunk.choices){let choice=snapshot.choices[index];if(choice||(choice=snapshot.choices[index]={finish_reason,index,message:{},logprobs,...other}),logprobs)if(!choice.logprobs)choice.logprobs=Object.assign({},logprobs);else{let{content:content2,refusal:refusal2,...rest3}=logprobs;Object.assign(choice.logprobs,rest3),content2&&((_a3=choice.logprobs).content??(_a3.content=[]),choice.logprobs.content.push(...content2)),refusal2&&((_b=choice.logprobs).refusal??(_b.refusal=[]),choice.logprobs.refusal.push(...refusal2))}if(finish_reason&&(choice.finish_reason=finish_reason,__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")&&hasAutoParseableInput(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")))){if(finish_reason==="length")throw new LengthFinishReasonError;if(finish_reason==="content_filter")throw new ContentFilterFinishReasonError}if(Object.assign(choice,other),!delta)continue;let{content,refusal,function_call,role,tool_calls,...rest2}=delta;if(Object.assign(choice.message,rest2),refusal&&(choice.message.refusal=(choice.message.refusal||"")+refusal),role&&(choice.message.role=role),function_call&&(choice.message.function_call?(function_call.name&&(choice.message.function_call.name=function_call.name),function_call.arguments&&((_c=choice.message.function_call).arguments??(_c.arguments=""),choice.message.function_call.arguments+=function_call.arguments)):choice.message.function_call=function_call),content&&(choice.message.content=(choice.message.content||"")+content,!choice.message.refusal&&__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getAutoParseableResponseFormat).call(this)&&(choice.message.parsed=partialParse(choice.message.content))),tool_calls){choice.message.tool_calls||(choice.message.tool_calls=[]);for(let{index:index2,id,type,function:fn,...rest3}of tool_calls){let tool_call=(_d=choice.message.tool_calls)[index2]??(_d[index2]={});Object.assign(tool_call,rest3),id&&(tool_call.id=id),type&&(tool_call.type=type),fn&&(tool_call.function??(tool_call.function={name:fn.name??"",arguments:""})),fn?.name&&(tool_call.function.name=fn.name),fn?.arguments&&(tool_call.function.arguments+=fn.arguments,shouldParseToolCall(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f"),tool_call)&&(tool_call.function.parsed_arguments=partialParse(tool_call.function.arguments)))}}}return snapshot},Symbol.asyncIterator)](){let pushQueue=[],readQueue=[],done=!1;return this.on("chunk",chunk=>{let reader=readQueue.shift();reader?reader.resolve(chunk):pushQueue.push(chunk)}),this.on("end",()=>{done=!0;for(let reader of readQueue)reader.resolve(void 0);readQueue.length=0}),this.on("abort",err=>{done=!0;for(let reader of readQueue)reader.reject(err);readQueue.length=0}),this.on("error",err=>{done=!0;for(let reader of readQueue)reader.reject(err);readQueue.length=0}),{next:async()=>pushQueue.length?{value:pushQueue.shift(),done:!1}:done?{value:void 0,done:!0}:new Promise((resolve,reject)=>readQueue.push({resolve,reject})).then(chunk2=>chunk2?{value:chunk2,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new Stream(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};function finalizeChatCompletion(snapshot,params){let{id,choices,created,model,system_fingerprint,...rest}=snapshot,completion={...rest,id,choices:choices.map(({message,finish_reason,index,logprobs,...choiceRest})=>{if(!finish_reason)throw new OpenAIError(`missing finish_reason for choice ${index}`);let{content=null,function_call,tool_calls,...messageRest}=message,role=message.role;if(!role)throw new OpenAIError(`missing role for choice ${index}`);if(function_call){let{arguments:args,name}=function_call;if(args==null)throw new OpenAIError(`missing function_call.arguments for choice ${index}`);if(!name)throw new OpenAIError(`missing function_call.name for choice ${index}`);return{...choiceRest,message:{content,function_call:{arguments:args,name},role,refusal:message.refusal??null},finish_reason,index,logprobs}}return tool_calls?{...choiceRest,index,finish_reason,logprobs,message:{...messageRest,role,content,refusal:message.refusal??null,tool_calls:tool_calls.map((tool_call,i)=>{let{function:fn,type,id:id2,...toolRest}=tool_call,{arguments:args,name,...fnRest}=fn||{};if(id2==null)throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].id
12
+ ${str(snapshot)}`);if(type==null)throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].type
13
+ ${str(snapshot)}`);if(name==null)throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name
14
+ ${str(snapshot)}`);if(args==null)throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments
15
+ ${str(snapshot)}`);return{...toolRest,id:id2,type,function:{...fnRest,name,arguments:args}}})}}:{...choiceRest,message:{...messageRest,content,role,refusal:message.refusal??null},finish_reason,index,logprobs}}),created,model,object:"chat.completion",...system_fingerprint?{system_fingerprint}:{}};return maybeParseChatCompletion(completion,params)}function str(x){return JSON.stringify(x)}var ChatCompletionStreamingRunner=class _ChatCompletionStreamingRunner extends ChatCompletionStream{static fromReadableStream(stream){let runner=new _ChatCompletionStreamingRunner(null);return runner._run(()=>runner._fromReadableStream(stream)),runner}static runTools(client,params,options){let runner=new _ChatCompletionStreamingRunner(params),opts={...options,headers:{...options?.headers,"X-Stainless-Helper-Method":"runTools"}};return runner._run(()=>runner._runTools(client,params,opts)),runner}};var Completions=class extends APIResource{constructor(){super(...arguments),this.messages=new Messages(this._client)}create(body,options){return this._client.post("/chat/completions",{body,...options,stream:body.stream??!1,__security:{bearerAuth:!0}})}retrieve(completionID,options){return this._client.get(path`/chat/completions/${completionID}`,{...options,__security:{bearerAuth:!0}})}update(completionID,body,options){return this._client.post(path`/chat/completions/${completionID}`,{body,...options,__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/chat/completions",CursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(completionID,options){return this._client.delete(path`/chat/completions/${completionID}`,{...options,__security:{bearerAuth:!0}})}parse(body,options){return validateInputTools(body.tools),this._client.chat.completions.create(body,{...options,headers:{...options?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(completion=>parseChatCompletion(completion,body))}runTools(body,options){return body.stream?ChatCompletionStreamingRunner.runTools(this._client,body,options):ChatCompletionRunner.runTools(this._client,body,options)}stream(body,options){return ChatCompletionStream.createChatCompletion(this._client,body,options)}};Completions.Messages=Messages;var Chat=class extends APIResource{constructor(){super(...arguments),this.completions=new Completions(this._client)}};Chat.Completions=Completions;var AdminAPIKeys=class extends APIResource{create(body,options){return this._client.post("/organization/admin_api_keys",{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(keyID,options){return this._client.get(path`/organization/admin_api_keys/${keyID}`,{...options,__security:{adminAPIKeyAuth:!0}})}list(query={},options){return this._client.getAPIList("/organization/admin_api_keys",CursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(keyID,options){return this._client.delete(path`/organization/admin_api_keys/${keyID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var AuditLogs=class extends APIResource{list(query={},options){return this._client.getAPIList("/organization/audit_logs",ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}};var Certificates=class extends APIResource{create(body,options){return this._client.post("/organization/certificates",{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(certificateID,query={},options){return this._client.get(path`/organization/certificates/${certificateID}`,{query,...options,__security:{adminAPIKeyAuth:!0}})}update(certificateID,body,options){return this._client.post(path`/organization/certificates/${certificateID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(query={},options){return this._client.getAPIList("/organization/certificates",ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(certificateID,options){return this._client.delete(path`/organization/certificates/${certificateID}`,{...options,__security:{adminAPIKeyAuth:!0}})}activate(body,options){return this._client.getAPIList("/organization/certificates/activate",Page,{body,method:"post",...options,__security:{adminAPIKeyAuth:!0}})}deactivate(body,options){return this._client.getAPIList("/organization/certificates/deactivate",Page,{body,method:"post",...options,__security:{adminAPIKeyAuth:!0}})}};var DataRetention=class extends APIResource{retrieve(options){return this._client.get("/organization/data_retention",{...options,__security:{adminAPIKeyAuth:!0}})}update(body,options){return this._client.post("/organization/data_retention",{body,...options,__security:{adminAPIKeyAuth:!0}})}};var Invites=class extends APIResource{create(body,options){return this._client.post("/organization/invites",{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(inviteID,options){return this._client.get(path`/organization/invites/${inviteID}`,{...options,__security:{adminAPIKeyAuth:!0}})}list(query={},options){return this._client.getAPIList("/organization/invites",ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(inviteID,options){return this._client.delete(path`/organization/invites/${inviteID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Roles=class extends APIResource{create(body,options){return this._client.post("/organization/roles",{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(roleID,options){return this._client.get(path`/organization/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}update(roleID,body,options){return this._client.post(path`/organization/roles/${roleID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(query={},options){return this._client.getAPIList("/organization/roles",NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(roleID,options){return this._client.delete(path`/organization/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var SpendAlerts=class extends APIResource{create(body,options){return this._client.post("/organization/spend_alerts",{body,...options,__security:{adminAPIKeyAuth:!0}})}update(alertID,body,options){return this._client.post(path`/organization/spend_alerts/${alertID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(query={},options){return this._client.getAPIList("/organization/spend_alerts",ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(alertID,options){return this._client.delete(path`/organization/spend_alerts/${alertID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Usage=class extends APIResource{audioSpeeches(query,options){return this._client.get("/organization/usage/audio_speeches",{query,...options,__security:{adminAPIKeyAuth:!0}})}audioTranscriptions(query,options){return this._client.get("/organization/usage/audio_transcriptions",{query,...options,__security:{adminAPIKeyAuth:!0}})}codeInterpreterSessions(query,options){return this._client.get("/organization/usage/code_interpreter_sessions",{query,...options,__security:{adminAPIKeyAuth:!0}})}completions(query,options){return this._client.get("/organization/usage/completions",{query,...options,__security:{adminAPIKeyAuth:!0}})}costs(query,options){return this._client.get("/organization/costs",{query,...options,__security:{adminAPIKeyAuth:!0}})}embeddings(query,options){return this._client.get("/organization/usage/embeddings",{query,...options,__security:{adminAPIKeyAuth:!0}})}fileSearchCalls(query,options){return this._client.get("/organization/usage/file_search_calls",{query,...options,__security:{adminAPIKeyAuth:!0}})}images(query,options){return this._client.get("/organization/usage/images",{query,...options,__security:{adminAPIKeyAuth:!0}})}moderations(query,options){return this._client.get("/organization/usage/moderations",{query,...options,__security:{adminAPIKeyAuth:!0}})}vectorStores(query,options){return this._client.get("/organization/usage/vector_stores",{query,...options,__security:{adminAPIKeyAuth:!0}})}webSearchCalls(query,options){return this._client.get("/organization/usage/web_search_calls",{query,...options,__security:{adminAPIKeyAuth:!0}})}};var Roles2=class extends APIResource{create(groupID,body,options){return this._client.post(path`/organization/groups/${groupID}/roles`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(roleID,params,options){let{group_id}=params;return this._client.get(path`/organization/groups/${group_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}list(groupID,query={},options){return this._client.getAPIList(path`/organization/groups/${groupID}/roles`,NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(roleID,params,options){let{group_id}=params;return this._client.delete(path`/organization/groups/${group_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Users=class extends APIResource{create(groupID,body,options){return this._client.post(path`/organization/groups/${groupID}/users`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(userID,params,options){let{group_id}=params;return this._client.get(path`/organization/groups/${group_id}/users/${userID}`,{...options,__security:{adminAPIKeyAuth:!0}})}list(groupID,query={},options){return this._client.getAPIList(path`/organization/groups/${groupID}/users`,NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(userID,params,options){let{group_id}=params;return this._client.delete(path`/organization/groups/${group_id}/users/${userID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Groups=class extends APIResource{constructor(){super(...arguments),this.users=new Users(this._client),this.roles=new Roles2(this._client)}create(body,options){return this._client.post("/organization/groups",{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(groupID,options){return this._client.get(path`/organization/groups/${groupID}`,{...options,__security:{adminAPIKeyAuth:!0}})}update(groupID,body,options){return this._client.post(path`/organization/groups/${groupID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(query={},options){return this._client.getAPIList("/organization/groups",NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(groupID,options){return this._client.delete(path`/organization/groups/${groupID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};Groups.Users=Users;Groups.Roles=Roles2;var APIKeys=class extends APIResource{retrieve(apiKeyID,params,options){let{project_id}=params;return this._client.get(path`/organization/projects/${project_id}/api_keys/${apiKeyID}`,{...options,__security:{adminAPIKeyAuth:!0}})}list(projectID,query={},options){return this._client.getAPIList(path`/organization/projects/${projectID}/api_keys`,ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(apiKeyID,params,options){let{project_id}=params;return this._client.delete(path`/organization/projects/${project_id}/api_keys/${apiKeyID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Certificates2=class extends APIResource{list(projectID,query={},options){return this._client.getAPIList(path`/organization/projects/${projectID}/certificates`,ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}activate(projectID,body,options){return this._client.getAPIList(path`/organization/projects/${projectID}/certificates/activate`,Page,{body,method:"post",...options,__security:{adminAPIKeyAuth:!0}})}deactivate(projectID,body,options){return this._client.getAPIList(path`/organization/projects/${projectID}/certificates/deactivate`,Page,{body,method:"post",...options,__security:{adminAPIKeyAuth:!0}})}};var DataRetention2=class extends APIResource{retrieve(projectID,options){return this._client.get(path`/organization/projects/${projectID}/data_retention`,{...options,__security:{adminAPIKeyAuth:!0}})}update(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/data_retention`,{body,...options,__security:{adminAPIKeyAuth:!0}})}};var HostedToolPermissions=class extends APIResource{retrieve(projectID,options){return this._client.get(path`/organization/projects/${projectID}/hosted_tool_permissions`,{...options,__security:{adminAPIKeyAuth:!0}})}update(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/hosted_tool_permissions`,{body,...options,__security:{adminAPIKeyAuth:!0}})}};var ModelPermissions=class extends APIResource{retrieve(projectID,options){return this._client.get(path`/organization/projects/${projectID}/model_permissions`,{...options,__security:{adminAPIKeyAuth:!0}})}update(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/model_permissions`,{body,...options,__security:{adminAPIKeyAuth:!0}})}delete(projectID,options){return this._client.delete(path`/organization/projects/${projectID}/model_permissions`,{...options,__security:{adminAPIKeyAuth:!0}})}};var RateLimits=class extends APIResource{listRateLimits(projectID,query={},options){return this._client.getAPIList(path`/organization/projects/${projectID}/rate_limits`,ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}updateRateLimit(rateLimitID,params,options){let{project_id,...body}=params;return this._client.post(path`/organization/projects/${project_id}/rate_limits/${rateLimitID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}};var Roles3=class extends APIResource{create(projectID,body,options){return this._client.post(path`/projects/${projectID}/roles`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(roleID,params,options){let{project_id}=params;return this._client.get(path`/projects/${project_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}update(roleID,params,options){let{project_id,...body}=params;return this._client.post(path`/projects/${project_id}/roles/${roleID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(projectID,query={},options){return this._client.getAPIList(path`/projects/${projectID}/roles`,NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(roleID,params,options){let{project_id}=params;return this._client.delete(path`/projects/${project_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var ServiceAccounts=class extends APIResource{create(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/service_accounts`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(serviceAccountID,params,options){let{project_id}=params;return this._client.get(path`/organization/projects/${project_id}/service_accounts/${serviceAccountID}`,{...options,__security:{adminAPIKeyAuth:!0}})}update(serviceAccountID,params,options){let{project_id,...body}=params;return this._client.post(path`/organization/projects/${project_id}/service_accounts/${serviceAccountID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(projectID,query={},options){return this._client.getAPIList(path`/organization/projects/${projectID}/service_accounts`,ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(serviceAccountID,params,options){let{project_id}=params;return this._client.delete(path`/organization/projects/${project_id}/service_accounts/${serviceAccountID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var SpendAlerts2=class extends APIResource{create(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/spend_alerts`,{body,...options,__security:{adminAPIKeyAuth:!0}})}update(alertID,params,options){let{project_id,...body}=params;return this._client.post(path`/organization/projects/${project_id}/spend_alerts/${alertID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(projectID,query={},options){return this._client.getAPIList(path`/organization/projects/${projectID}/spend_alerts`,ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(alertID,params,options){let{project_id}=params;return this._client.delete(path`/organization/projects/${project_id}/spend_alerts/${alertID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Roles4=class extends APIResource{create(groupID,params,options){let{project_id,...body}=params;return this._client.post(path`/projects/${project_id}/groups/${groupID}/roles`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(roleID,params,options){let{project_id,group_id}=params;return this._client.get(path`/projects/${project_id}/groups/${group_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}list(groupID,params,options){let{project_id,...query}=params;return this._client.getAPIList(path`/projects/${project_id}/groups/${groupID}/roles`,NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(roleID,params,options){let{project_id,group_id}=params;return this._client.delete(path`/projects/${project_id}/groups/${group_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Groups2=class extends APIResource{constructor(){super(...arguments),this.roles=new Roles4(this._client)}create(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/groups`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(groupID,params,options){let{project_id,...query}=params;return this._client.get(path`/organization/projects/${project_id}/groups/${groupID}`,{query,...options,__security:{adminAPIKeyAuth:!0}})}list(projectID,query={},options){return this._client.getAPIList(path`/organization/projects/${projectID}/groups`,NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(groupID,params,options){let{project_id}=params;return this._client.delete(path`/organization/projects/${project_id}/groups/${groupID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};Groups2.Roles=Roles4;var Roles5=class extends APIResource{create(userID,params,options){let{project_id,...body}=params;return this._client.post(path`/projects/${project_id}/users/${userID}/roles`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(roleID,params,options){let{project_id,user_id}=params;return this._client.get(path`/projects/${project_id}/users/${user_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}list(userID,params,options){let{project_id,...query}=params;return this._client.getAPIList(path`/projects/${project_id}/users/${userID}/roles`,NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(roleID,params,options){let{project_id,user_id}=params;return this._client.delete(path`/projects/${project_id}/users/${user_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Users2=class extends APIResource{constructor(){super(...arguments),this.roles=new Roles5(this._client)}create(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/users`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(userID,params,options){let{project_id}=params;return this._client.get(path`/organization/projects/${project_id}/users/${userID}`,{...options,__security:{adminAPIKeyAuth:!0}})}update(userID,params,options){let{project_id,...body}=params;return this._client.post(path`/organization/projects/${project_id}/users/${userID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(projectID,query={},options){return this._client.getAPIList(path`/organization/projects/${projectID}/users`,ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(userID,params,options){let{project_id}=params;return this._client.delete(path`/organization/projects/${project_id}/users/${userID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};Users2.Roles=Roles5;var Projects=class extends APIResource{constructor(){super(...arguments),this.users=new Users2(this._client),this.serviceAccounts=new ServiceAccounts(this._client),this.apiKeys=new APIKeys(this._client),this.rateLimits=new RateLimits(this._client),this.modelPermissions=new ModelPermissions(this._client),this.hostedToolPermissions=new HostedToolPermissions(this._client),this.groups=new Groups2(this._client),this.roles=new Roles3(this._client),this.dataRetention=new DataRetention2(this._client),this.spendAlerts=new SpendAlerts2(this._client),this.certificates=new Certificates2(this._client)}create(body,options){return this._client.post("/organization/projects",{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(projectID,options){return this._client.get(path`/organization/projects/${projectID}`,{...options,__security:{adminAPIKeyAuth:!0}})}update(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(query={},options){return this._client.getAPIList("/organization/projects",ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}archive(projectID,options){return this._client.post(path`/organization/projects/${projectID}/archive`,{...options,__security:{adminAPIKeyAuth:!0}})}};Projects.Users=Users2;Projects.ServiceAccounts=ServiceAccounts;Projects.APIKeys=APIKeys;Projects.RateLimits=RateLimits;Projects.ModelPermissions=ModelPermissions;Projects.HostedToolPermissions=HostedToolPermissions;Projects.Groups=Groups2;Projects.Roles=Roles3;Projects.DataRetention=DataRetention2;Projects.SpendAlerts=SpendAlerts2;Projects.Certificates=Certificates2;var Roles6=class extends APIResource{create(userID,body,options){return this._client.post(path`/organization/users/${userID}/roles`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(roleID,params,options){let{user_id}=params;return this._client.get(path`/organization/users/${user_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}list(userID,query={},options){return this._client.getAPIList(path`/organization/users/${userID}/roles`,NextCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(roleID,params,options){let{user_id}=params;return this._client.delete(path`/organization/users/${user_id}/roles/${roleID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Users3=class extends APIResource{constructor(){super(...arguments),this.roles=new Roles6(this._client)}retrieve(userID,options){return this._client.get(path`/organization/users/${userID}`,{...options,__security:{adminAPIKeyAuth:!0}})}update(userID,body,options){return this._client.post(path`/organization/users/${userID}`,{body,...options,__security:{adminAPIKeyAuth:!0}})}list(query={},options){return this._client.getAPIList("/organization/users",ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(userID,options){return this._client.delete(path`/organization/users/${userID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};Users3.Roles=Roles6;var Organization=class extends APIResource{constructor(){super(...arguments),this.auditLogs=new AuditLogs(this._client),this.adminAPIKeys=new AdminAPIKeys(this._client),this.usage=new Usage(this._client),this.invites=new Invites(this._client),this.users=new Users3(this._client),this.groups=new Groups(this._client),this.roles=new Roles(this._client),this.dataRetention=new DataRetention(this._client),this.spendAlerts=new SpendAlerts(this._client),this.certificates=new Certificates(this._client),this.projects=new Projects(this._client)}};Organization.AuditLogs=AuditLogs;Organization.AdminAPIKeys=AdminAPIKeys;Organization.Usage=Usage;Organization.Invites=Invites;Organization.Users=Users3;Organization.Groups=Groups;Organization.Roles=Roles;Organization.DataRetention=DataRetention;Organization.SpendAlerts=SpendAlerts;Organization.Certificates=Certificates;Organization.Projects=Projects;var Admin=class extends APIResource{constructor(){super(...arguments),this.organization=new Organization(this._client)}};Admin.Organization=Organization;var brand_privateNullableHeaders=Symbol("brand.privateNullableHeaders");function*iterateHeaders(headers){if(!headers)return;if(brand_privateNullableHeaders in headers){let{values,nulls}=headers;yield*values.entries();for(let name of nulls)yield[name,null];return}let shouldClear=!1,iter;headers instanceof Headers?iter=headers.entries():isReadonlyArray(headers)?iter=headers:(shouldClear=!0,iter=Object.entries(headers??{}));for(let row of iter){let name=row[0];if(typeof name!="string")throw new TypeError("expected header name to be a string");let values=isReadonlyArray(row[1])?row[1]:[row[1]],didClear=!1;for(let value of values)value!==void 0&&(shouldClear&&!didClear&&(didClear=!0,yield[name,null]),yield[name,value])}}var buildHeaders=newHeaders=>{let targetHeaders=new Headers,nullHeaders=new Set;for(let headers of newHeaders){let seenHeaders=new Set;for(let[name,value]of iterateHeaders(headers)){let lowerName=name.toLowerCase();seenHeaders.has(lowerName)||(targetHeaders.delete(name),seenHeaders.add(lowerName)),value===null?(targetHeaders.delete(name),nullHeaders.add(lowerName)):(targetHeaders.append(name,value),nullHeaders.delete(lowerName))}}return{[brand_privateNullableHeaders]:!0,values:targetHeaders,nulls:nullHeaders}};var Speech=class extends APIResource{create(body,options){return this._client.post("/audio/speech",{body,...options,headers:buildHeaders([{Accept:"application/octet-stream"},options?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}};var Transcriptions=class extends APIResource{create(body,options){return this._client.post("/audio/transcriptions",multipartFormRequestOptions({body,...options,stream:body.stream??!1,__metadata:{model:body.model},__security:{bearerAuth:!0}},this._client))}};var Translations=class extends APIResource{create(body,options){return this._client.post("/audio/translations",multipartFormRequestOptions({body,...options,__metadata:{model:body.model},__security:{bearerAuth:!0}},this._client))}};var Audio=class extends APIResource{constructor(){super(...arguments),this.transcriptions=new Transcriptions(this._client),this.translations=new Translations(this._client),this.speech=new Speech(this._client)}};Audio.Transcriptions=Transcriptions;Audio.Translations=Translations;Audio.Speech=Speech;var Batches=class extends APIResource{create(body,options){return this._client.post("/batches",{body,...options,__security:{bearerAuth:!0}})}retrieve(batchID,options){return this._client.get(path`/batches/${batchID}`,{...options,__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/batches",CursorPage,{query,...options,__security:{bearerAuth:!0}})}cancel(batchID,options){return this._client.post(path`/batches/${batchID}/cancel`,{...options,__security:{bearerAuth:!0}})}};var Assistants=class extends APIResource{create(body,options){return this._client.post("/assistants",{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}retrieve(assistantID,options){return this._client.get(path`/assistants/${assistantID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}update(assistantID,body,options){return this._client.post(path`/assistants/${assistantID}`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/assistants",CursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}delete(assistantID,options){return this._client.delete(path`/assistants/${assistantID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}};var Sessions=class extends APIResource{create(body,options){return this._client.post("/realtime/sessions",{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}};var TranscriptionSessions=class extends APIResource{create(body,options){return this._client.post("/realtime/transcription_sessions",{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}};var Realtime=class extends APIResource{constructor(){super(...arguments),this.sessions=new Sessions(this._client),this.transcriptionSessions=new TranscriptionSessions(this._client)}};Realtime.Sessions=Sessions;Realtime.TranscriptionSessions=TranscriptionSessions;var Sessions2=class extends APIResource{create(body,options){return this._client.post("/chatkit/sessions",{body,...options,headers:buildHeaders([{"OpenAI-Beta":"chatkit_beta=v1"},options?.headers]),__security:{bearerAuth:!0}})}cancel(sessionID,options){return this._client.post(path`/chatkit/sessions/${sessionID}/cancel`,{...options,headers:buildHeaders([{"OpenAI-Beta":"chatkit_beta=v1"},options?.headers]),__security:{bearerAuth:!0}})}};var Threads=class extends APIResource{retrieve(threadID,options){return this._client.get(path`/chatkit/threads/${threadID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"chatkit_beta=v1"},options?.headers]),__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/chatkit/threads",ConversationCursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"chatkit_beta=v1"},options?.headers]),__security:{bearerAuth:!0}})}delete(threadID,options){return this._client.delete(path`/chatkit/threads/${threadID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"chatkit_beta=v1"},options?.headers]),__security:{bearerAuth:!0}})}listItems(threadID,query={},options){return this._client.getAPIList(path`/chatkit/threads/${threadID}/items`,ConversationCursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"chatkit_beta=v1"},options?.headers]),__security:{bearerAuth:!0}})}};var ChatKit=class extends APIResource{constructor(){super(...arguments),this.sessions=new Sessions2(this._client),this.threads=new Threads(this._client)}};ChatKit.Sessions=Sessions2;ChatKit.Threads=Threads;var Messages2=class extends APIResource{create(threadID,body,options){return this._client.post(path`/threads/${threadID}/messages`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}retrieve(messageID,params,options){let{thread_id}=params;return this._client.get(path`/threads/${thread_id}/messages/${messageID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}update(messageID,params,options){let{thread_id,...body}=params;return this._client.post(path`/threads/${thread_id}/messages/${messageID}`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}list(threadID,query={},options){return this._client.getAPIList(path`/threads/${threadID}/messages`,CursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}delete(messageID,params,options){let{thread_id}=params;return this._client.delete(path`/threads/${thread_id}/messages/${messageID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}};var Steps=class extends APIResource{retrieve(stepID,params,options){let{thread_id,run_id,...query}=params;return this._client.get(path`/threads/${thread_id}/runs/${run_id}/steps/${stepID}`,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}list(runID,params,options){let{thread_id,...query}=params;return this._client.getAPIList(path`/threads/${thread_id}/runs/${runID}/steps`,CursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}};var toFloat32Array=base64Str=>{if(typeof Buffer<"u"){let buf=Buffer.from(base64Str,"base64");return Array.from(new Float32Array(buf.buffer,buf.byteOffset,buf.length/Float32Array.BYTES_PER_ELEMENT))}else{let binaryStr=atob(base64Str),len=binaryStr.length,bytes=new Uint8Array(len);for(let i=0;i<len;i++)bytes[i]=binaryStr.charCodeAt(i);return Array.from(new Float32Array(bytes.buffer))}};var readEnv=env=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[env]?.trim()||void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(env)?.trim()||void 0};var _AssistantStream_instances,_a,_AssistantStream_events,_AssistantStream_runStepSnapshots,_AssistantStream_messageSnapshots,_AssistantStream_messageSnapshot,_AssistantStream_finalRun,_AssistantStream_currentContentIndex,_AssistantStream_currentContent,_AssistantStream_currentToolCallIndex,_AssistantStream_currentToolCall,_AssistantStream_currentEvent,_AssistantStream_currentRunSnapshot,_AssistantStream_currentRunStepSnapshot,_AssistantStream_addEvent,_AssistantStream_endRequest,_AssistantStream_handleMessage,_AssistantStream_handleRunStep,_AssistantStream_handleEvent,_AssistantStream_accumulateRunStep,_AssistantStream_accumulateMessage,_AssistantStream_accumulateContent,_AssistantStream_handleRun,AssistantStream=class extends EventStream{constructor(){super(...arguments),_AssistantStream_instances.add(this),_AssistantStream_events.set(this,[]),_AssistantStream_runStepSnapshots.set(this,{}),_AssistantStream_messageSnapshots.set(this,{}),_AssistantStream_messageSnapshot.set(this,void 0),_AssistantStream_finalRun.set(this,void 0),_AssistantStream_currentContentIndex.set(this,void 0),_AssistantStream_currentContent.set(this,void 0),_AssistantStream_currentToolCallIndex.set(this,void 0),_AssistantStream_currentToolCall.set(this,void 0),_AssistantStream_currentEvent.set(this,void 0),_AssistantStream_currentRunSnapshot.set(this,void 0),_AssistantStream_currentRunStepSnapshot.set(this,void 0)}[(_AssistantStream_events=new WeakMap,_AssistantStream_runStepSnapshots=new WeakMap,_AssistantStream_messageSnapshots=new WeakMap,_AssistantStream_messageSnapshot=new WeakMap,_AssistantStream_finalRun=new WeakMap,_AssistantStream_currentContentIndex=new WeakMap,_AssistantStream_currentContent=new WeakMap,_AssistantStream_currentToolCallIndex=new WeakMap,_AssistantStream_currentToolCall=new WeakMap,_AssistantStream_currentEvent=new WeakMap,_AssistantStream_currentRunSnapshot=new WeakMap,_AssistantStream_currentRunStepSnapshot=new WeakMap,_AssistantStream_instances=new WeakSet,Symbol.asyncIterator)](){let pushQueue=[],readQueue=[],done=!1;return this.on("event",event=>{let reader=readQueue.shift();reader?reader.resolve(event):pushQueue.push(event)}),this.on("end",()=>{done=!0;for(let reader of readQueue)reader.resolve(void 0);readQueue.length=0}),this.on("abort",err=>{done=!0;for(let reader of readQueue)reader.reject(err);readQueue.length=0}),this.on("error",err=>{done=!0;for(let reader of readQueue)reader.reject(err);readQueue.length=0}),{next:async()=>pushQueue.length?{value:pushQueue.shift(),done:!1}:done?{value:void 0,done:!0}:new Promise((resolve,reject)=>readQueue.push({resolve,reject})).then(chunk2=>chunk2?{value:chunk2,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(stream){let runner=new _a;return runner._run(()=>runner._fromReadableStream(stream)),runner}async _fromReadableStream(readableStream,options){let signal=options?.signal;signal&&(signal.aborted&&this.controller.abort(),signal.addEventListener("abort",()=>this.controller.abort())),this._connected();let stream=Stream.fromReadableStream(readableStream,this.controller);for await(let event of stream)__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_addEvent).call(this,event);if(stream.controller.signal?.aborted)throw new APIUserAbortError;return this._addRun(__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_endRequest).call(this))}toReadableStream(){return new Stream(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(runId,runs,params,options){let runner=new _a;return runner._run(()=>runner._runToolAssistantStream(runId,runs,params,{...options,headers:{...options?.headers,"X-Stainless-Helper-Method":"stream"}})),runner}async _createToolAssistantStream(run,runId,params,options){let signal=options?.signal;signal&&(signal.aborted&&this.controller.abort(),signal.addEventListener("abort",()=>this.controller.abort()));let body={...params,stream:!0},stream=await run.submitToolOutputs(runId,body,{...options,signal:this.controller.signal});this._connected();for await(let event of stream)__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_addEvent).call(this,event);if(stream.controller.signal?.aborted)throw new APIUserAbortError;return this._addRun(__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_endRequest).call(this))}static createThreadAssistantStream(params,thread,options){let runner=new _a;return runner._run(()=>runner._threadAssistantStream(params,thread,{...options,headers:{...options?.headers,"X-Stainless-Helper-Method":"stream"}})),runner}static createAssistantStream(threadId,runs,params,options){let runner=new _a;return runner._run(()=>runner._runAssistantStream(threadId,runs,params,{...options,headers:{...options?.headers,"X-Stainless-Helper-Method":"stream"}})),runner}currentEvent(){return __classPrivateFieldGet(this,_AssistantStream_currentEvent,"f")}currentRun(){return __classPrivateFieldGet(this,_AssistantStream_currentRunSnapshot,"f")}currentMessageSnapshot(){return __classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f")}currentRunStepSnapshot(){return __classPrivateFieldGet(this,_AssistantStream_currentRunStepSnapshot,"f")}async finalRunSteps(){return await this.done(),Object.values(__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f"))}async finalMessages(){return await this.done(),Object.values(__classPrivateFieldGet(this,_AssistantStream_messageSnapshots,"f"))}async finalRun(){if(await this.done(),!__classPrivateFieldGet(this,_AssistantStream_finalRun,"f"))throw Error("Final run was not received.");return __classPrivateFieldGet(this,_AssistantStream_finalRun,"f")}async _createThreadAssistantStream(thread,params,options){let signal=options?.signal;signal&&(signal.aborted&&this.controller.abort(),signal.addEventListener("abort",()=>this.controller.abort()));let body={...params,stream:!0},stream=await thread.createAndRun(body,{...options,signal:this.controller.signal});this._connected();for await(let event of stream)__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_addEvent).call(this,event);if(stream.controller.signal?.aborted)throw new APIUserAbortError;return this._addRun(__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_endRequest).call(this))}async _createAssistantStream(run,threadId,params,options){let signal=options?.signal;signal&&(signal.aborted&&this.controller.abort(),signal.addEventListener("abort",()=>this.controller.abort()));let body={...params,stream:!0},stream=await run.create(threadId,body,{...options,signal:this.controller.signal});this._connected();for await(let event of stream)__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_addEvent).call(this,event);if(stream.controller.signal?.aborted)throw new APIUserAbortError;return this._addRun(__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_endRequest).call(this))}static accumulateDelta(acc,delta){for(let[key,deltaValue]of Object.entries(delta)){if(!acc.hasOwnProperty(key)){acc[key]=deltaValue;continue}let accValue=acc[key];if(accValue==null){acc[key]=deltaValue;continue}if(key==="index"||key==="type"){acc[key]=deltaValue;continue}if(typeof accValue=="string"&&typeof deltaValue=="string")accValue+=deltaValue;else if(typeof accValue=="number"&&typeof deltaValue=="number")accValue+=deltaValue;else if(isObj(accValue)&&isObj(deltaValue))accValue=this.accumulateDelta(accValue,deltaValue);else if(Array.isArray(accValue)&&Array.isArray(deltaValue)){if(accValue.every(x=>typeof x=="string"||typeof x=="number")){accValue.push(...deltaValue);continue}for(let deltaEntry of deltaValue){if(!isObj(deltaEntry))throw new Error(`Expected array delta entry to be an object but got: ${deltaEntry}`);let index=deltaEntry.index;if(index==null)throw console.error(deltaEntry),new Error("Expected array delta entry to have an `index` property");if(typeof index!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${index}`);let accEntry=accValue[index];accEntry==null?accValue.push(deltaEntry):accValue[index]=this.accumulateDelta(accEntry,deltaEntry)}continue}else throw Error(`Unhandled record type: ${key}, deltaValue: ${deltaValue}, accValue: ${accValue}`);acc[key]=accValue}return acc}_addRun(run){return run}async _threadAssistantStream(params,thread,options){return await this._createThreadAssistantStream(thread,params,options)}async _runAssistantStream(threadId,runs,params,options){return await this._createAssistantStream(runs,threadId,params,options)}async _runToolAssistantStream(runId,runs,params,options){return await this._createToolAssistantStream(runs,runId,params,options)}};_a=AssistantStream,_AssistantStream_addEvent=function(event){if(!this.ended)switch(__classPrivateFieldSet(this,_AssistantStream_currentEvent,event,"f"),__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_handleEvent).call(this,event),event.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_handleRun).call(this,event);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_handleRunStep).call(this,event);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_handleMessage).call(this,event);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:}},_AssistantStream_endRequest=function(){if(this.ended)throw new OpenAIError("stream has ended, this shouldn't happen");if(!__classPrivateFieldGet(this,_AssistantStream_finalRun,"f"))throw Error("Final run has not been received");return __classPrivateFieldGet(this,_AssistantStream_finalRun,"f")},_AssistantStream_handleMessage=function(event){let[accumulatedMessage,newContent]=__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_accumulateMessage).call(this,event,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));__classPrivateFieldSet(this,_AssistantStream_messageSnapshot,accumulatedMessage,"f"),__classPrivateFieldGet(this,_AssistantStream_messageSnapshots,"f")[accumulatedMessage.id]=accumulatedMessage;for(let content of newContent){let snapshotContent=accumulatedMessage.content[content.index];snapshotContent?.type=="text"&&this._emit("textCreated",snapshotContent.text)}switch(event.event){case"thread.message.created":this._emit("messageCreated",event.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",event.data.delta,accumulatedMessage),event.data.delta.content)for(let content of event.data.delta.content){if(content.type=="text"&&content.text){let textDelta=content.text,snapshot=accumulatedMessage.content[content.index];if(snapshot&&snapshot.type=="text")this._emit("textDelta",textDelta,snapshot.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(content.index!=__classPrivateFieldGet(this,_AssistantStream_currentContentIndex,"f")){if(__classPrivateFieldGet(this,_AssistantStream_currentContent,"f"))switch(__classPrivateFieldGet(this,_AssistantStream_currentContent,"f").type){case"text":this._emit("textDone",__classPrivateFieldGet(this,_AssistantStream_currentContent,"f").text,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));break;case"image_file":this._emit("imageFileDone",__classPrivateFieldGet(this,_AssistantStream_currentContent,"f").image_file,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));break}__classPrivateFieldSet(this,_AssistantStream_currentContentIndex,content.index,"f")}__classPrivateFieldSet(this,_AssistantStream_currentContent,accumulatedMessage.content[content.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(__classPrivateFieldGet(this,_AssistantStream_currentContentIndex,"f")!==void 0){let currentContent=event.data.content[__classPrivateFieldGet(this,_AssistantStream_currentContentIndex,"f")];if(currentContent)switch(currentContent.type){case"image_file":this._emit("imageFileDone",currentContent.image_file,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));break;case"text":this._emit("textDone",currentContent.text,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));break}}__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f")&&this._emit("messageDone",event.data),__classPrivateFieldSet(this,_AssistantStream_messageSnapshot,void 0,"f")}},_AssistantStream_handleRunStep=function(event){let accumulatedRunStep=__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_accumulateRunStep).call(this,event);switch(__classPrivateFieldSet(this,_AssistantStream_currentRunStepSnapshot,accumulatedRunStep,"f"),event.event){case"thread.run.step.created":this._emit("runStepCreated",event.data);break;case"thread.run.step.delta":let delta=event.data.delta;if(delta.step_details&&delta.step_details.type=="tool_calls"&&delta.step_details.tool_calls&&accumulatedRunStep.step_details.type=="tool_calls")for(let toolCall of delta.step_details.tool_calls)toolCall.index==__classPrivateFieldGet(this,_AssistantStream_currentToolCallIndex,"f")?this._emit("toolCallDelta",toolCall,accumulatedRunStep.step_details.tool_calls[toolCall.index]):(__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")&&this._emit("toolCallDone",__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")),__classPrivateFieldSet(this,_AssistantStream_currentToolCallIndex,toolCall.index,"f"),__classPrivateFieldSet(this,_AssistantStream_currentToolCall,accumulatedRunStep.step_details.tool_calls[toolCall.index],"f"),__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")&&this._emit("toolCallCreated",__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")));this._emit("runStepDelta",event.data.delta,accumulatedRunStep);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":__classPrivateFieldSet(this,_AssistantStream_currentRunStepSnapshot,void 0,"f"),event.data.step_details.type=="tool_calls"&&__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")&&(this._emit("toolCallDone",__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")),__classPrivateFieldSet(this,_AssistantStream_currentToolCall,void 0,"f")),this._emit("runStepDone",event.data,accumulatedRunStep);break;case"thread.run.step.in_progress":break}},_AssistantStream_handleEvent=function(event){__classPrivateFieldGet(this,_AssistantStream_events,"f").push(event),this._emit("event",event)},_AssistantStream_accumulateRunStep=function(event){switch(event.event){case"thread.run.step.created":return __classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[event.data.id]=event.data,event.data;case"thread.run.step.delta":let snapshot=__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[event.data.id];if(!snapshot)throw Error("Received a RunStepDelta before creation of a snapshot");let data=event.data;if(data.delta){let accumulated=_a.accumulateDelta(snapshot,data.delta);__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[event.data.id]=accumulated}return __classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[event.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[event.data.id]=event.data;break}if(__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[event.data.id])return __classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[event.data.id];throw new Error("No snapshot available")},_AssistantStream_accumulateMessage=function(event,snapshot){let newContent=[];switch(event.event){case"thread.message.created":return[event.data,newContent];case"thread.message.delta":if(!snapshot)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let data=event.data;if(data.delta.content)for(let contentElement of data.delta.content)if(contentElement.index in snapshot.content){let currentContent=snapshot.content[contentElement.index];snapshot.content[contentElement.index]=__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_accumulateContent).call(this,contentElement,currentContent)}else snapshot.content[contentElement.index]=contentElement,newContent.push(contentElement);return[snapshot,newContent];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(snapshot)return[snapshot,newContent];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},_AssistantStream_accumulateContent=function(contentElement,currentContent){return _a.accumulateDelta(currentContent,contentElement)},_AssistantStream_handleRun=function(event){switch(__classPrivateFieldSet(this,_AssistantStream_currentRunSnapshot,event.data,"f"),event.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":__classPrivateFieldSet(this,_AssistantStream_finalRun,event.data,"f"),__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")&&(this._emit("toolCallDone",__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")),__classPrivateFieldSet(this,_AssistantStream_currentToolCall,void 0,"f"));break;case"thread.run.cancelling":break}};var Runs=class extends APIResource{constructor(){super(...arguments),this.steps=new Steps(this._client)}create(threadID,params,options){let{include,...body}=params;return this._client.post(path`/threads/${threadID}/runs`,{query:{include},body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),stream:params.stream??!1,__synthesizeEventData:!0,__security:{bearerAuth:!0}})}retrieve(runID,params,options){let{thread_id}=params;return this._client.get(path`/threads/${thread_id}/runs/${runID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}update(runID,params,options){let{thread_id,...body}=params;return this._client.post(path`/threads/${thread_id}/runs/${runID}`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}list(threadID,query={},options){return this._client.getAPIList(path`/threads/${threadID}/runs`,CursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}cancel(runID,params,options){let{thread_id}=params;return this._client.post(path`/threads/${thread_id}/runs/${runID}/cancel`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}async createAndPoll(threadId,body,options){let run=await this.create(threadId,body,options);return await this.poll(run.id,{thread_id:threadId},options)}createAndStream(threadId,body,options){return AssistantStream.createAssistantStream(threadId,this._client.beta.threads.runs,body,options)}async poll(runId,params,options){let headers=buildHeaders([options?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":options?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:run,response}=await this.retrieve(runId,params,{...options,headers:{...options?.headers,...headers}}).withResponse();switch(run.status){case"queued":case"in_progress":case"cancelling":let sleepInterval=5e3;if(options?.pollIntervalMs)sleepInterval=options.pollIntervalMs;else{let headerInterval=response.headers.get("openai-poll-after-ms");if(headerInterval){let headerIntervalMs=parseInt(headerInterval);isNaN(headerIntervalMs)||(sleepInterval=headerIntervalMs)}}await sleep(sleepInterval);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return run}}}stream(threadId,body,options){return AssistantStream.createAssistantStream(threadId,this._client.beta.threads.runs,body,options)}submitToolOutputs(runID,params,options){let{thread_id,...body}=params;return this._client.post(path`/threads/${thread_id}/runs/${runID}/submit_tool_outputs`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),stream:params.stream??!1,__synthesizeEventData:!0,__security:{bearerAuth:!0}})}async submitToolOutputsAndPoll(runId,params,options){let run=await this.submitToolOutputs(runId,params,options);return await this.poll(run.id,params,options)}submitToolOutputsStream(runId,params,options){return AssistantStream.createToolAssistantStream(runId,this._client.beta.threads.runs,params,options)}};Runs.Steps=Steps;var Threads2=class extends APIResource{constructor(){super(...arguments),this.runs=new Runs(this._client),this.messages=new Messages2(this._client)}create(body={},options){return this._client.post("/threads",{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}retrieve(threadID,options){return this._client.get(path`/threads/${threadID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}update(threadID,body,options){return this._client.post(path`/threads/${threadID}`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}delete(threadID,options){return this._client.delete(path`/threads/${threadID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}createAndRun(body,options){return this._client.post("/threads/runs",{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),stream:body.stream??!1,__synthesizeEventData:!0,__security:{bearerAuth:!0}})}async createAndRunPoll(body,options){let run=await this.createAndRun(body,options);return await this.runs.poll(run.id,{thread_id:run.thread_id},options)}createAndRunStream(body,options){return AssistantStream.createThreadAssistantStream(body,this._client.beta.threads,options)}};Threads2.Runs=Runs;Threads2.Messages=Messages2;var Beta=class extends APIResource{constructor(){super(...arguments),this.realtime=new Realtime(this._client),this.chatkit=new ChatKit(this._client),this.assistants=new Assistants(this._client),this.threads=new Threads2(this._client)}};Beta.Realtime=Realtime;Beta.ChatKit=ChatKit;Beta.Assistants=Assistants;Beta.Threads=Threads2;var Completions2=class extends APIResource{create(body,options){return this._client.post("/completions",{body,...options,stream:body.stream??!1,__security:{bearerAuth:!0}})}};var Content=class extends APIResource{retrieve(fileID,params,options){let{container_id}=params;return this._client.get(path`/containers/${container_id}/files/${fileID}/content`,{...options,headers:buildHeaders([{Accept:"application/binary"},options?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}};var Files=class extends APIResource{constructor(){super(...arguments),this.content=new Content(this._client)}create(containerID,body,options){return this._client.post(path`/containers/${containerID}/files`,maybeMultipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}retrieve(fileID,params,options){let{container_id}=params;return this._client.get(path`/containers/${container_id}/files/${fileID}`,{...options,__security:{bearerAuth:!0}})}list(containerID,query={},options){return this._client.getAPIList(path`/containers/${containerID}/files`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(fileID,params,options){let{container_id}=params;return this._client.delete(path`/containers/${container_id}/files/${fileID}`,{...options,headers:buildHeaders([{Accept:"*/*"},options?.headers]),__security:{bearerAuth:!0}})}};Files.Content=Content;var Containers=class extends APIResource{constructor(){super(...arguments),this.files=new Files(this._client)}create(body,options){return this._client.post("/containers",{body,...options,__security:{bearerAuth:!0}})}retrieve(containerID,options){return this._client.get(path`/containers/${containerID}`,{...options,__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/containers",CursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(containerID,options){return this._client.delete(path`/containers/${containerID}`,{...options,headers:buildHeaders([{Accept:"*/*"},options?.headers]),__security:{bearerAuth:!0}})}};Containers.Files=Files;var Items=class extends APIResource{create(conversationID,params,options){let{include,...body}=params;return this._client.post(path`/conversations/${conversationID}/items`,{query:{include},body,...options,__security:{bearerAuth:!0}})}retrieve(itemID,params,options){let{conversation_id,...query}=params;return this._client.get(path`/conversations/${conversation_id}/items/${itemID}`,{query,...options,__security:{bearerAuth:!0}})}list(conversationID,query={},options){return this._client.getAPIList(path`/conversations/${conversationID}/items`,ConversationCursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(itemID,params,options){let{conversation_id}=params;return this._client.delete(path`/conversations/${conversation_id}/items/${itemID}`,{...options,__security:{bearerAuth:!0}})}};var Conversations=class extends APIResource{constructor(){super(...arguments),this.items=new Items(this._client)}create(body={},options){return this._client.post("/conversations",{body,...options,__security:{bearerAuth:!0}})}retrieve(conversationID,options){return this._client.get(path`/conversations/${conversationID}`,{...options,__security:{bearerAuth:!0}})}update(conversationID,body,options){return this._client.post(path`/conversations/${conversationID}`,{body,...options,__security:{bearerAuth:!0}})}delete(conversationID,options){return this._client.delete(path`/conversations/${conversationID}`,{...options,__security:{bearerAuth:!0}})}};Conversations.Items=Items;var Embeddings=class extends APIResource{create(body,options){let hasUserProvidedEncodingFormat=!!body.encoding_format,encoding_format=hasUserProvidedEncodingFormat?body.encoding_format:"base64";hasUserProvidedEncodingFormat&&loggerFor(this._client).debug("embeddings/user defined encoding_format:",body.encoding_format);let response=this._client.post("/embeddings",{body:{...body,encoding_format},...options,__security:{bearerAuth:!0}});return hasUserProvidedEncodingFormat?response:(loggerFor(this._client).debug("embeddings/decoding base64 embeddings from base64"),response._thenUnwrap(response2=>(response2&&response2.data&&response2.data.forEach(embeddingBase64Obj=>{let embeddingBase64Str=embeddingBase64Obj.embedding;embeddingBase64Obj.embedding=toFloat32Array(embeddingBase64Str)}),response2)))}};var OutputItems=class extends APIResource{retrieve(outputItemID,params,options){let{eval_id,run_id}=params;return this._client.get(path`/evals/${eval_id}/runs/${run_id}/output_items/${outputItemID}`,{...options,__security:{bearerAuth:!0}})}list(runID,params,options){let{eval_id,...query}=params;return this._client.getAPIList(path`/evals/${eval_id}/runs/${runID}/output_items`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}};var Runs2=class extends APIResource{constructor(){super(...arguments),this.outputItems=new OutputItems(this._client)}create(evalID,body,options){return this._client.post(path`/evals/${evalID}/runs`,{body,...options,__security:{bearerAuth:!0}})}retrieve(runID,params,options){let{eval_id}=params;return this._client.get(path`/evals/${eval_id}/runs/${runID}`,{...options,__security:{bearerAuth:!0}})}list(evalID,query={},options){return this._client.getAPIList(path`/evals/${evalID}/runs`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(runID,params,options){let{eval_id}=params;return this._client.delete(path`/evals/${eval_id}/runs/${runID}`,{...options,__security:{bearerAuth:!0}})}cancel(runID,params,options){let{eval_id}=params;return this._client.post(path`/evals/${eval_id}/runs/${runID}`,{...options,__security:{bearerAuth:!0}})}};Runs2.OutputItems=OutputItems;var Evals=class extends APIResource{constructor(){super(...arguments),this.runs=new Runs2(this._client)}create(body,options){return this._client.post("/evals",{body,...options,__security:{bearerAuth:!0}})}retrieve(evalID,options){return this._client.get(path`/evals/${evalID}`,{...options,__security:{bearerAuth:!0}})}update(evalID,body,options){return this._client.post(path`/evals/${evalID}`,{body,...options,__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/evals",CursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(evalID,options){return this._client.delete(path`/evals/${evalID}`,{...options,__security:{bearerAuth:!0}})}};Evals.Runs=Runs2;var Files2=class extends APIResource{create(body,options){return this._client.post("/files",multipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}retrieve(fileID,options){return this._client.get(path`/files/${fileID}`,{...options,__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/files",CursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(fileID,options){return this._client.delete(path`/files/${fileID}`,{...options,__security:{bearerAuth:!0}})}content(fileID,options){return this._client.get(path`/files/${fileID}/content`,{...options,headers:buildHeaders([{Accept:"application/binary"},options?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}async waitForProcessing(id,{pollInterval=5e3,maxWait=1800*1e3}={}){let TERMINAL_STATES=new Set(["processed","error","deleted"]),start=Date.now(),file=await this.retrieve(id);for(;!file.status||!TERMINAL_STATES.has(file.status);)if(await sleep(pollInterval),file=await this.retrieve(id),Date.now()-start>maxWait)throw new APIConnectionTimeoutError({message:`Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`});return file}};var Methods=class extends APIResource{};var Graders=class extends APIResource{run(body,options){return this._client.post("/fine_tuning/alpha/graders/run",{body,...options,__security:{bearerAuth:!0}})}validate(body,options){return this._client.post("/fine_tuning/alpha/graders/validate",{body,...options,__security:{bearerAuth:!0}})}};var Alpha=class extends APIResource{constructor(){super(...arguments),this.graders=new Graders(this._client)}};Alpha.Graders=Graders;var Permissions=class extends APIResource{create(fineTunedModelCheckpoint,body,options){return this._client.getAPIList(path`/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`,Page,{body,method:"post",...options,__security:{adminAPIKeyAuth:!0}})}retrieve(fineTunedModelCheckpoint,query={},options){return this._client.get(path`/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`,{query,...options,__security:{adminAPIKeyAuth:!0}})}list(fineTunedModelCheckpoint,query={},options){return this._client.getAPIList(path`/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`,ConversationCursorPage,{query,...options,__security:{adminAPIKeyAuth:!0}})}delete(permissionID,params,options){let{fine_tuned_model_checkpoint}=params;return this._client.delete(path`/fine_tuning/checkpoints/${fine_tuned_model_checkpoint}/permissions/${permissionID}`,{...options,__security:{adminAPIKeyAuth:!0}})}};var Checkpoints=class extends APIResource{constructor(){super(...arguments),this.permissions=new Permissions(this._client)}};Checkpoints.Permissions=Permissions;var Checkpoints2=class extends APIResource{list(fineTuningJobID,query={},options){return this._client.getAPIList(path`/fine_tuning/jobs/${fineTuningJobID}/checkpoints`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}};var Jobs=class extends APIResource{constructor(){super(...arguments),this.checkpoints=new Checkpoints2(this._client)}create(body,options){return this._client.post("/fine_tuning/jobs",{body,...options,__security:{bearerAuth:!0}})}retrieve(fineTuningJobID,options){return this._client.get(path`/fine_tuning/jobs/${fineTuningJobID}`,{...options,__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/fine_tuning/jobs",CursorPage,{query,...options,__security:{bearerAuth:!0}})}cancel(fineTuningJobID,options){return this._client.post(path`/fine_tuning/jobs/${fineTuningJobID}/cancel`,{...options,__security:{bearerAuth:!0}})}listEvents(fineTuningJobID,query={},options){return this._client.getAPIList(path`/fine_tuning/jobs/${fineTuningJobID}/events`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}pause(fineTuningJobID,options){return this._client.post(path`/fine_tuning/jobs/${fineTuningJobID}/pause`,{...options,__security:{bearerAuth:!0}})}resume(fineTuningJobID,options){return this._client.post(path`/fine_tuning/jobs/${fineTuningJobID}/resume`,{...options,__security:{bearerAuth:!0}})}};Jobs.Checkpoints=Checkpoints2;var FineTuning=class extends APIResource{constructor(){super(...arguments),this.methods=new Methods(this._client),this.jobs=new Jobs(this._client),this.checkpoints=new Checkpoints(this._client),this.alpha=new Alpha(this._client)}};FineTuning.Methods=Methods;FineTuning.Jobs=Jobs;FineTuning.Checkpoints=Checkpoints;FineTuning.Alpha=Alpha;var GraderModels=class extends APIResource{};var Graders2=class extends APIResource{constructor(){super(...arguments),this.graderModels=new GraderModels(this._client)}};Graders2.GraderModels=GraderModels;var Images=class extends APIResource{createVariation(body,options){return this._client.post("/images/variations",multipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}edit(body,options){return this._client.post("/images/edits",multipartFormRequestOptions({body,...options,stream:body.stream??!1,__security:{bearerAuth:!0}},this._client))}generate(body,options){return this._client.post("/images/generations",{body,...options,stream:body.stream??!1,__security:{bearerAuth:!0}})}};var Models=class extends APIResource{retrieve(model,options){return this._client.get(path`/models/${model}`,{...options,__security:{bearerAuth:!0}})}list(options){return this._client.getAPIList("/models",Page,{...options,__security:{bearerAuth:!0}})}delete(model,options){return this._client.delete(path`/models/${model}`,{...options,__security:{bearerAuth:!0}})}};var Moderations=class extends APIResource{create(body,options){return this._client.post("/moderations",{body,...options,__security:{bearerAuth:!0}})}};var Calls=class extends APIResource{accept(callID,body,options){return this._client.post(path`/realtime/calls/${callID}/accept`,{body,...options,headers:buildHeaders([{Accept:"*/*"},options?.headers]),__security:{bearerAuth:!0}})}hangup(callID,options){return this._client.post(path`/realtime/calls/${callID}/hangup`,{...options,headers:buildHeaders([{Accept:"*/*"},options?.headers]),__security:{bearerAuth:!0}})}refer(callID,body,options){return this._client.post(path`/realtime/calls/${callID}/refer`,{body,...options,headers:buildHeaders([{Accept:"*/*"},options?.headers]),__security:{bearerAuth:!0}})}reject(callID,body={},options){return this._client.post(path`/realtime/calls/${callID}/reject`,{body,...options,headers:buildHeaders([{Accept:"*/*"},options?.headers]),__security:{bearerAuth:!0}})}};var ClientSecrets=class extends APIResource{create(body,options){return this._client.post("/realtime/client_secrets",{body,...options,__security:{bearerAuth:!0}})}};var Realtime2=class extends APIResource{constructor(){super(...arguments),this.clientSecrets=new ClientSecrets(this._client),this.calls=new Calls(this._client)}};Realtime2.ClientSecrets=ClientSecrets;Realtime2.Calls=Calls;function maybeParseResponse(response,params){return!params||!hasAutoParseableInput2(params)?{...response,output_parsed:null,output:response.output.map(item=>item.type==="function_call"?{...item,parsed_arguments:null}:item.type==="message"?{...item,content:item.content.map(content=>({...content,parsed:null}))}:item)}:parseResponse(response,params)}function parseResponse(response,params){let output=response.output.map(item=>{if(item.type==="function_call")return{...item,parsed_arguments:parseToolCall2(params,item)};if(item.type==="message"){let content=item.content.map(content2=>content2.type==="output_text"?{...content2,parsed:parseTextFormat(params,content2.text)}:content2);return{...item,content}}return item}),parsed=Object.assign({},response,{output});return Object.getOwnPropertyDescriptor(response,"output_text")||addOutputText(parsed),Object.defineProperty(parsed,"output_parsed",{enumerable:!0,get(){for(let output2 of parsed.output)if(output2.type==="message"){for(let content of output2.content)if(content.type==="output_text"&&content.parsed!==null)return content.parsed}return null}}),parsed}function parseTextFormat(params,content){return params.text?.format?.type!=="json_schema"?null:"$parseRaw"in params.text?.format?(params.text?.format).$parseRaw(content):JSON.parse(content)}function hasAutoParseableInput2(params){return!!isAutoParsableResponseFormat(params.text?.format)}function isAutoParsableTool2(tool){return tool?.$brand==="auto-parseable-tool"}function getInputToolByName(input_tools,name){return input_tools.find(tool=>tool.type==="function"&&tool.name===name)}function parseToolCall2(params,toolCall){let inputTool=getInputToolByName(params.tools??[],toolCall.name);return{...toolCall,...toolCall,parsed_arguments:isAutoParsableTool2(inputTool)?inputTool.$parseRaw(toolCall.arguments):inputTool?.strict?JSON.parse(toolCall.arguments):null}}function addOutputText(rsp){let texts=[];for(let output of rsp.output)if(output.type==="message")for(let content of output.content)content.type==="output_text"&&texts.push(content.text);rsp.output_text=texts.join("")}var _ResponseStream_instances,_ResponseStream_params,_ResponseStream_currentResponseSnapshot,_ResponseStream_finalResponse,_ResponseStream_beginRequest,_ResponseStream_addEvent,_ResponseStream_endRequest,_ResponseStream_accumulateResponse,ResponseStream=class _ResponseStream extends EventStream{constructor(params){super(),_ResponseStream_instances.add(this),_ResponseStream_params.set(this,void 0),_ResponseStream_currentResponseSnapshot.set(this,void 0),_ResponseStream_finalResponse.set(this,void 0),__classPrivateFieldSet(this,_ResponseStream_params,params,"f")}static createResponse(client,params,options){let runner=new _ResponseStream(params);return runner._run(()=>runner._createOrRetrieveResponse(client,params,{...options,headers:{...options?.headers,"X-Stainless-Helper-Method":"stream"}})),runner}async _createOrRetrieveResponse(client,params,options){let signal=options?.signal;signal&&(signal.aborted&&this.controller.abort(),signal.addEventListener("abort",()=>this.controller.abort())),__classPrivateFieldGet(this,_ResponseStream_instances,"m",_ResponseStream_beginRequest).call(this);let stream,starting_after=null;"response_id"in params?(stream=await client.responses.retrieve(params.response_id,{stream:!0},{...options,signal:this.controller.signal,stream:!0}),starting_after=params.starting_after??null):stream=await client.responses.create({...params,stream:!0},{...options,signal:this.controller.signal}),this._connected();for await(let event of stream)__classPrivateFieldGet(this,_ResponseStream_instances,"m",_ResponseStream_addEvent).call(this,event,starting_after);if(stream.controller.signal?.aborted)throw new APIUserAbortError;return __classPrivateFieldGet(this,_ResponseStream_instances,"m",_ResponseStream_endRequest).call(this)}[(_ResponseStream_params=new WeakMap,_ResponseStream_currentResponseSnapshot=new WeakMap,_ResponseStream_finalResponse=new WeakMap,_ResponseStream_instances=new WeakSet,_ResponseStream_beginRequest=function(){this.ended||__classPrivateFieldSet(this,_ResponseStream_currentResponseSnapshot,void 0,"f")},_ResponseStream_addEvent=function(event,starting_after){if(this.ended)return;let maybeEmit=(name,event2)=>{(starting_after==null||event2.sequence_number>starting_after)&&this._emit(name,event2)},response=__classPrivateFieldGet(this,_ResponseStream_instances,"m",_ResponseStream_accumulateResponse).call(this,event);switch(maybeEmit("event",event),event.type){case"response.output_text.delta":{let output=response.output[event.output_index];if(!output)throw new OpenAIError(`missing output at index ${event.output_index}`);if(output.type==="message"){let content=output.content[event.content_index];if(!content)throw new OpenAIError(`missing content at index ${event.content_index}`);if(content.type!=="output_text")throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);maybeEmit("response.output_text.delta",{...event,snapshot:content.text})}break}case"response.function_call_arguments.delta":{let output=response.output[event.output_index];if(!output)throw new OpenAIError(`missing output at index ${event.output_index}`);output.type==="function_call"&&maybeEmit("response.function_call_arguments.delta",{...event,snapshot:output.arguments});break}default:maybeEmit(event.type,event);break}},_ResponseStream_endRequest=function(){if(this.ended)throw new OpenAIError("stream has ended, this shouldn't happen");let snapshot=__classPrivateFieldGet(this,_ResponseStream_currentResponseSnapshot,"f");if(!snapshot)throw new OpenAIError("request ended without sending any events");__classPrivateFieldSet(this,_ResponseStream_currentResponseSnapshot,void 0,"f");let parsedResponse=finalizeResponse(snapshot,__classPrivateFieldGet(this,_ResponseStream_params,"f"));return __classPrivateFieldSet(this,_ResponseStream_finalResponse,parsedResponse,"f"),parsedResponse},_ResponseStream_accumulateResponse=function(event){let snapshot=__classPrivateFieldGet(this,_ResponseStream_currentResponseSnapshot,"f");if(!snapshot){if(event.type!=="response.created")throw new OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`);return snapshot=__classPrivateFieldSet(this,_ResponseStream_currentResponseSnapshot,event.response,"f"),snapshot}switch(event.type){case"response.output_item.added":{snapshot.output.push(event.item);break}case"response.content_part.added":{let output=snapshot.output[event.output_index];if(!output)throw new OpenAIError(`missing output at index ${event.output_index}`);let type=output.type,part=event.part;type==="message"&&part.type!=="reasoning_text"?output.content.push(part):type==="reasoning"&&part.type==="reasoning_text"&&(output.content||(output.content=[]),output.content.push(part));break}case"response.output_text.delta":{let output=snapshot.output[event.output_index];if(!output)throw new OpenAIError(`missing output at index ${event.output_index}`);if(output.type==="message"){let content=output.content[event.content_index];if(!content)throw new OpenAIError(`missing content at index ${event.content_index}`);if(content.type!=="output_text")throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);content.text+=event.delta}break}case"response.function_call_arguments.delta":{let output=snapshot.output[event.output_index];if(!output)throw new OpenAIError(`missing output at index ${event.output_index}`);output.type==="function_call"&&(output.arguments+=event.delta);break}case"response.reasoning_text.delta":{let output=snapshot.output[event.output_index];if(!output)throw new OpenAIError(`missing output at index ${event.output_index}`);if(output.type==="reasoning"){let content=output.content?.[event.content_index];if(!content)throw new OpenAIError(`missing content at index ${event.content_index}`);if(content.type!=="reasoning_text")throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);content.text+=event.delta}break}case"response.completed":{__classPrivateFieldSet(this,_ResponseStream_currentResponseSnapshot,event.response,"f");break}}return snapshot},Symbol.asyncIterator)](){let pushQueue=[],readQueue=[],done=!1;return this.on("event",event=>{let reader=readQueue.shift();reader?reader.resolve(event):pushQueue.push(event)}),this.on("end",()=>{done=!0;for(let reader of readQueue)reader.resolve(void 0);readQueue.length=0}),this.on("abort",err=>{done=!0;for(let reader of readQueue)reader.reject(err);readQueue.length=0}),this.on("error",err=>{done=!0;for(let reader of readQueue)reader.reject(err);readQueue.length=0}),{next:async()=>pushQueue.length?{value:pushQueue.shift(),done:!1}:done?{value:void 0,done:!0}:new Promise((resolve,reject)=>readQueue.push({resolve,reject})).then(event2=>event2?{value:event2,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();let response=__classPrivateFieldGet(this,_ResponseStream_finalResponse,"f");if(!response)throw new OpenAIError("stream ended without producing a ChatCompletion");return response}};function finalizeResponse(snapshot,params){return maybeParseResponse(snapshot,params)}var InputItems=class extends APIResource{list(responseID,query={},options){return this._client.getAPIList(path`/responses/${responseID}/input_items`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}};var InputTokens=class extends APIResource{count(body={},options){return this._client.post("/responses/input_tokens",{body,...options,__security:{bearerAuth:!0}})}};var Responses=class extends APIResource{constructor(){super(...arguments),this.inputItems=new InputItems(this._client),this.inputTokens=new InputTokens(this._client)}create(body,options){return this._client.post("/responses",{body,...options,stream:body.stream??!1,__security:{bearerAuth:!0}})._thenUnwrap(rsp=>("object"in rsp&&rsp.object==="response"&&addOutputText(rsp),rsp))}retrieve(responseID,query={},options){return this._client.get(path`/responses/${responseID}`,{query,...options,stream:query?.stream??!1,__security:{bearerAuth:!0}})._thenUnwrap(rsp=>("object"in rsp&&rsp.object==="response"&&addOutputText(rsp),rsp))}delete(responseID,options){return this._client.delete(path`/responses/${responseID}`,{...options,headers:buildHeaders([{Accept:"*/*"},options?.headers]),__security:{bearerAuth:!0}})}parse(body,options){return this._client.responses.create(body,options)._thenUnwrap(response=>parseResponse(response,body))}stream(body,options){return ResponseStream.createResponse(this._client,body,options)}cancel(responseID,options){return this._client.post(path`/responses/${responseID}/cancel`,{...options,__security:{bearerAuth:!0}})}compact(body,options){return this._client.post("/responses/compact",{body,...options,__security:{bearerAuth:!0}})}};Responses.InputItems=InputItems;Responses.InputTokens=InputTokens;var Content2=class extends APIResource{retrieve(skillID,options){return this._client.get(path`/skills/${skillID}/content`,{...options,headers:buildHeaders([{Accept:"application/binary"},options?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}};var Content3=class extends APIResource{retrieve(version,params,options){let{skill_id}=params;return this._client.get(path`/skills/${skill_id}/versions/${version}/content`,{...options,headers:buildHeaders([{Accept:"application/binary"},options?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}};var Versions=class extends APIResource{constructor(){super(...arguments),this.content=new Content3(this._client)}create(skillID,body={},options){return this._client.post(path`/skills/${skillID}/versions`,maybeMultipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}retrieve(version,params,options){let{skill_id}=params;return this._client.get(path`/skills/${skill_id}/versions/${version}`,{...options,__security:{bearerAuth:!0}})}list(skillID,query={},options){return this._client.getAPIList(path`/skills/${skillID}/versions`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(version,params,options){let{skill_id}=params;return this._client.delete(path`/skills/${skill_id}/versions/${version}`,{...options,__security:{bearerAuth:!0}})}};Versions.Content=Content3;var Skills=class extends APIResource{constructor(){super(...arguments),this.content=new Content2(this._client),this.versions=new Versions(this._client)}create(body={},options){return this._client.post("/skills",maybeMultipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}retrieve(skillID,options){return this._client.get(path`/skills/${skillID}`,{...options,__security:{bearerAuth:!0}})}update(skillID,body,options){return this._client.post(path`/skills/${skillID}`,{body,...options,__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/skills",CursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(skillID,options){return this._client.delete(path`/skills/${skillID}`,{...options,__security:{bearerAuth:!0}})}};Skills.Content=Content2;Skills.Versions=Versions;var Parts=class extends APIResource{create(uploadID,body,options){return this._client.post(path`/uploads/${uploadID}/parts`,multipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}};var Uploads=class extends APIResource{constructor(){super(...arguments),this.parts=new Parts(this._client)}create(body,options){return this._client.post("/uploads",{body,...options,__security:{bearerAuth:!0}})}cancel(uploadID,options){return this._client.post(path`/uploads/${uploadID}/cancel`,{...options,__security:{bearerAuth:!0}})}complete(uploadID,body,options){return this._client.post(path`/uploads/${uploadID}/complete`,{body,...options,__security:{bearerAuth:!0}})}};Uploads.Parts=Parts;var allSettledWithThrow=async promises=>{let results=await Promise.allSettled(promises),rejected=results.filter(result=>result.status==="rejected");if(rejected.length){for(let result of rejected)console.error(result.reason);throw new Error(`${rejected.length} promise(s) failed - see the above errors`)}let values=[];for(let result of results)result.status==="fulfilled"&&values.push(result.value);return values};var FileBatches=class extends APIResource{create(vectorStoreID,body,options){return this._client.post(path`/vector_stores/${vectorStoreID}/file_batches`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}retrieve(batchID,params,options){let{vector_store_id}=params;return this._client.get(path`/vector_stores/${vector_store_id}/file_batches/${batchID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}cancel(batchID,params,options){let{vector_store_id}=params;return this._client.post(path`/vector_stores/${vector_store_id}/file_batches/${batchID}/cancel`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}async createAndPoll(vectorStoreId,body,options){let batch=await this.create(vectorStoreId,body);return await this.poll(vectorStoreId,batch.id,options)}listFiles(batchID,params,options){let{vector_store_id,...query}=params;return this._client.getAPIList(path`/vector_stores/${vector_store_id}/file_batches/${batchID}/files`,CursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}async poll(vectorStoreID,batchID,options){let headers=buildHeaders([options?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":options?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:batch,response}=await this.retrieve(batchID,{vector_store_id:vectorStoreID},{...options,headers}).withResponse();switch(batch.status){case"in_progress":let sleepInterval=5e3;if(options?.pollIntervalMs)sleepInterval=options.pollIntervalMs;else{let headerInterval=response.headers.get("openai-poll-after-ms");if(headerInterval){let headerIntervalMs=parseInt(headerInterval);isNaN(headerIntervalMs)||(sleepInterval=headerIntervalMs)}}await sleep(sleepInterval);break;case"failed":case"cancelled":case"completed":return batch}}}async uploadAndPoll(vectorStoreId,{files,fileIds=[]},options){if(files==null||files.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let configuredConcurrency=options?.maxConcurrency??5,concurrencyLimit=Math.min(configuredConcurrency,files.length),client=this._client,fileIterator=files.values(),allFileIds=[...fileIds];async function processFiles(iterator){for(let item of iterator){let fileObj=await client.files.create({file:item,purpose:"assistants"},options);allFileIds.push(fileObj.id)}}let workers=Array(concurrencyLimit).fill(fileIterator).map(processFiles);return await allSettledWithThrow(workers),await this.createAndPoll(vectorStoreId,{file_ids:allFileIds})}};var Files3=class extends APIResource{create(vectorStoreID,body,options){return this._client.post(path`/vector_stores/${vectorStoreID}/files`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}retrieve(fileID,params,options){let{vector_store_id}=params;return this._client.get(path`/vector_stores/${vector_store_id}/files/${fileID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}update(fileID,params,options){let{vector_store_id,...body}=params;return this._client.post(path`/vector_stores/${vector_store_id}/files/${fileID}`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}list(vectorStoreID,query={},options){return this._client.getAPIList(path`/vector_stores/${vectorStoreID}/files`,CursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}delete(fileID,params,options){let{vector_store_id}=params;return this._client.delete(path`/vector_stores/${vector_store_id}/files/${fileID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}async createAndPoll(vectorStoreId,body,options){let file=await this.create(vectorStoreId,body,options);return await this.poll(vectorStoreId,file.id,options)}async poll(vectorStoreID,fileID,options){let headers=buildHeaders([options?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":options?.pollIntervalMs?.toString()??void 0}]);for(;;){let fileResponse=await this.retrieve(fileID,{vector_store_id:vectorStoreID},{...options,headers}).withResponse(),file=fileResponse.data;switch(file.status){case"in_progress":let sleepInterval=5e3;if(options?.pollIntervalMs)sleepInterval=options.pollIntervalMs;else{let headerInterval=fileResponse.response.headers.get("openai-poll-after-ms");if(headerInterval){let headerIntervalMs=parseInt(headerInterval);isNaN(headerIntervalMs)||(sleepInterval=headerIntervalMs)}}await sleep(sleepInterval);break;case"failed":case"completed":return file}}}async upload(vectorStoreId,file,options){let fileInfo=await this._client.files.create({file,purpose:"assistants"},options);return this.create(vectorStoreId,{file_id:fileInfo.id},options)}async uploadAndPoll(vectorStoreId,file,options){let fileInfo=await this.upload(vectorStoreId,file,options);return await this.poll(vectorStoreId,fileInfo.id,options)}content(fileID,params,options){let{vector_store_id}=params;return this._client.getAPIList(path`/vector_stores/${vector_store_id}/files/${fileID}/content`,Page,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}};var VectorStores=class extends APIResource{constructor(){super(...arguments),this.files=new Files3(this._client),this.fileBatches=new FileBatches(this._client)}create(body,options){return this._client.post("/vector_stores",{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}retrieve(vectorStoreID,options){return this._client.get(path`/vector_stores/${vectorStoreID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}update(vectorStoreID,body,options){return this._client.post(path`/vector_stores/${vectorStoreID}`,{body,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/vector_stores",CursorPage,{query,...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}delete(vectorStoreID,options){return this._client.delete(path`/vector_stores/${vectorStoreID}`,{...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}search(vectorStoreID,body,options){return this._client.getAPIList(path`/vector_stores/${vectorStoreID}/search`,Page,{body,method:"post",...options,headers:buildHeaders([{"OpenAI-Beta":"assistants=v2"},options?.headers]),__security:{bearerAuth:!0}})}};VectorStores.Files=Files3;VectorStores.FileBatches=FileBatches;var Videos=class extends APIResource{create(body,options){return this._client.post("/videos",multipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}retrieve(videoID,options){return this._client.get(path`/videos/${videoID}`,{...options,__security:{bearerAuth:!0}})}list(query={},options){return this._client.getAPIList("/videos",ConversationCursorPage,{query,...options,__security:{bearerAuth:!0}})}delete(videoID,options){return this._client.delete(path`/videos/${videoID}`,{...options,__security:{bearerAuth:!0}})}createCharacter(body,options){return this._client.post("/videos/characters",multipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}downloadContent(videoID,query={},options){return this._client.get(path`/videos/${videoID}/content`,{query,...options,headers:buildHeaders([{Accept:"application/binary"},options?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}edit(body,options){return this._client.post("/videos/edits",multipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}extend(body,options){return this._client.post("/videos/extensions",multipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}getCharacter(characterID,options){return this._client.get(path`/videos/characters/${characterID}`,{...options,__security:{bearerAuth:!0}})}remix(videoID,body,options){return this._client.post(path`/videos/${videoID}/remix`,maybeMultipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}};var _Webhooks_instances,_Webhooks_validateSecret,_Webhooks_getRequiredHeader,Webhooks=class extends APIResource{constructor(){super(...arguments),_Webhooks_instances.add(this)}async unwrap(payload,headers,secret=this._client.webhookSecret,tolerance=300){return await this.verifySignature(payload,headers,secret,tolerance),JSON.parse(payload)}async verifySignature(payload,headers,secret=this._client.webhookSecret,tolerance=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");__classPrivateFieldGet(this,_Webhooks_instances,"m",_Webhooks_validateSecret).call(this,secret);let headersObj=buildHeaders([headers]).values,signatureHeader=__classPrivateFieldGet(this,_Webhooks_instances,"m",_Webhooks_getRequiredHeader).call(this,headersObj,"webhook-signature"),timestamp=__classPrivateFieldGet(this,_Webhooks_instances,"m",_Webhooks_getRequiredHeader).call(this,headersObj,"webhook-timestamp"),webhookId=__classPrivateFieldGet(this,_Webhooks_instances,"m",_Webhooks_getRequiredHeader).call(this,headersObj,"webhook-id"),timestampSeconds=parseInt(timestamp,10);if(isNaN(timestampSeconds))throw new InvalidWebhookSignatureError("Invalid webhook timestamp format");let nowSeconds=Math.floor(Date.now()/1e3);if(nowSeconds-timestampSeconds>tolerance)throw new InvalidWebhookSignatureError("Webhook timestamp is too old");if(timestampSeconds>nowSeconds+tolerance)throw new InvalidWebhookSignatureError("Webhook timestamp is too new");let signatures=signatureHeader.split(" ").map(part=>part.startsWith("v1,")?part.substring(3):part),decodedSecret=secret.startsWith("whsec_")?Buffer.from(secret.replace("whsec_",""),"base64"):Buffer.from(secret,"utf-8"),signedPayload=webhookId?`${webhookId}.${timestamp}.${payload}`:`${timestamp}.${payload}`,key=await crypto.subtle.importKey("raw",decodedSecret,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let signature of signatures)try{let signatureBytes=Buffer.from(signature,"base64");if(await crypto.subtle.verify("HMAC",key,signatureBytes,new TextEncoder().encode(signedPayload)))return}catch{continue}throw new InvalidWebhookSignatureError("The given webhook signature does not match the expected signature")}};_Webhooks_instances=new WeakSet,_Webhooks_validateSecret=function(secret){if(typeof secret!="string"||secret.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},_Webhooks_getRequiredHeader=function(headers,name){if(!headers)throw new Error("Headers are required");let value=headers.get(name);if(value==null)throw new Error(`Missing required header: ${name}`);return value};var _OpenAI_instances,_a2,_OpenAI_encoder,_OpenAI_baseURLOverridden,WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER="workload-identity-auth",OpenAI=class{constructor({baseURL=readEnv("OPENAI_BASE_URL"),apiKey=readEnv("OPENAI_API_KEY")??null,adminAPIKey=readEnv("OPENAI_ADMIN_KEY")??null,organization=readEnv("OPENAI_ORG_ID")??null,project=readEnv("OPENAI_PROJECT_ID")??null,webhookSecret=readEnv("OPENAI_WEBHOOK_SECRET")??null,workloadIdentity,...opts}={}){_OpenAI_instances.add(this),_OpenAI_encoder.set(this,void 0),this.completions=new Completions2(this),this.chat=new Chat(this),this.embeddings=new Embeddings(this),this.files=new Files2(this),this.images=new Images(this),this.audio=new Audio(this),this.moderations=new Moderations(this),this.models=new Models(this),this.fineTuning=new FineTuning(this),this.graders=new Graders2(this),this.vectorStores=new VectorStores(this),this.webhooks=new Webhooks(this),this.beta=new Beta(this),this.batches=new Batches(this),this.uploads=new Uploads(this),this.admin=new Admin(this),this.responses=new Responses(this),this.realtime=new Realtime2(this),this.conversations=new Conversations(this),this.evals=new Evals(this),this.containers=new Containers(this),this.skills=new Skills(this),this.videos=new Videos(this);let options={apiKey,adminAPIKey,organization,project,webhookSecret,workloadIdentity,...opts,baseURL:baseURL||"https://api.openai.com/v1"};if(apiKey&&workloadIdentity)throw new OpenAIError("The `apiKey` and `workloadIdentity` options are mutually exclusive");if(!apiKey&&!adminAPIKey&&!workloadIdentity)throw new OpenAIError("Missing credentials. Please pass an `apiKey`, `workloadIdentity`, `adminAPIKey`, or set the `OPENAI_API_KEY` or `OPENAI_ADMIN_KEY` environment variable.");if(!options.dangerouslyAllowBrowser&&isRunningInBrowser())throw new OpenAIError(`It looks like you're running in a browser-like environment.
16
+
17
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
18
+ If you understand the risks and have appropriate mitigations in place,
19
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
20
+
21
+ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
22
+
23
+ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
24
+ `);this.baseURL=options.baseURL,this.timeout=options.timeout??_a2.DEFAULT_TIMEOUT,this.logger=options.logger??console;let defaultLogLevel="warn";this.logLevel=defaultLogLevel,this.logLevel=parseLogLevel(options.logLevel,"ClientOptions.logLevel",this)??parseLogLevel(readEnv("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??defaultLogLevel,this.fetchOptions=options.fetchOptions,this.maxRetries=options.maxRetries??2,this.fetch=options.fetch??getDefaultFetch(),__classPrivateFieldSet(this,_OpenAI_encoder,FallbackEncoder,"f");let customHeadersEnv=readEnv("OPENAI_CUSTOM_HEADERS");if(customHeadersEnv){let parsed={};for(let line of customHeadersEnv.split(`
25
+ `)){let colon=line.indexOf(":");colon>=0&&(parsed[line.substring(0,colon).trim()]=line.substring(colon+1).trim())}options.defaultHeaders=buildHeaders([parsed,options.defaultHeaders])}this._options=options,workloadIdentity&&(this._workloadIdentityAuth=new WorkloadIdentityAuth(workloadIdentity,this.fetch)),this.apiKey=typeof apiKey=="string"?apiKey:null,this.adminAPIKey=adminAPIKey,this.organization=organization,this.project=project,this.webhookSecret=webhookSecret}withOptions(options){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this._options.apiKey,adminAPIKey:this.adminAPIKey,workloadIdentity:this._options.workloadIdentity,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...options})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values,nulls},schemes={bearerAuth:!0,adminAPIKeyAuth:!0}){if(!(values.get("authorization")||values.get("api-key"))&&!(nulls.has("authorization")||nulls.has("api-key"))&&!(this._workloadIdentityAuth&&schemes.bearerAuth))throw new Error('Could not resolve authentication method. Expected either apiKey or adminAPIKey to be set. Or for one of the "Authorization" or "api-key" headers to be explicitly omitted')}async authHeaders(opts,schemes={bearerAuth:!0,adminAPIKeyAuth:!0}){return buildHeaders([schemes.bearerAuth?await this.bearerAuth(opts):null,schemes.adminAPIKeyAuth?await this.adminAPIKeyAuth(opts):null])}async bearerAuth(opts){if(this._workloadIdentityAuth)return buildHeaders([{Authorization:`Bearer ${await this._workloadIdentityAuth.getToken()}`}]);if(this.apiKey!=null)return buildHeaders([{Authorization:`Bearer ${this.apiKey}`}])}async adminAPIKeyAuth(opts){if(this.adminAPIKey!=null)return buildHeaders([{Authorization:`Bearer ${this.adminAPIKey}`}])}stringifyQuery(query){return stringifyQuery(query)}getUserAgent(){return`${this.constructor.name}/JS ${VERSION}`}defaultIdempotencyKey(){return`stainless-node-retry-${uuid4()}`}makeStatusError(status,error,message,headers){return APIError.generate(status,error,message,headers)}async _callApiKey(){let apiKey=this._options.apiKey;if(typeof apiKey!="function")return!1;let token;try{token=await apiKey()}catch(err){throw err instanceof OpenAIError?err:new OpenAIError(`Failed to get token from 'apiKey' function: ${err.message}`,{cause:err})}if(typeof token!="string"||!token)throw new OpenAIError(`Expected 'apiKey' function argument to return a string but it returned ${token}`);return this.apiKey=token,!0}buildURL(path2,query,defaultBaseURL){let baseURL=!__classPrivateFieldGet(this,_OpenAI_instances,"m",_OpenAI_baseURLOverridden).call(this)&&defaultBaseURL||this.baseURL,url=isAbsoluteURL(path2)?new URL(path2):new URL(baseURL+(baseURL.endsWith("/")&&path2.startsWith("/")?path2.slice(1):path2)),defaultQuery=this.defaultQuery(),pathQuery=Object.fromEntries(url.searchParams);return(!isEmptyObj(defaultQuery)||!isEmptyObj(pathQuery))&&(query={...pathQuery,...defaultQuery,...query}),typeof query=="object"&&query&&!Array.isArray(query)&&(url.search=this.stringifyQuery(query)),url.toString()}async prepareOptions(options){(options.__security??{bearerAuth:!0}).bearerAuth&&await this._callApiKey()}async prepareRequest(request,{url,options}){}get(path2,opts){return this.methodRequest("get",path2,opts)}post(path2,opts){return this.methodRequest("post",path2,opts)}patch(path2,opts){return this.methodRequest("patch",path2,opts)}put(path2,opts){return this.methodRequest("put",path2,opts)}delete(path2,opts){return this.methodRequest("delete",path2,opts)}methodRequest(method,path2,opts){return this.request(Promise.resolve(opts).then(opts2=>({method,path:path2,...opts2})))}request(options,remainingRetries=null){return new APIPromise(this,this.makeRequest(options,remainingRetries,void 0))}async makeRequest(optionsInput,retriesRemaining,retryOfRequestLogID){let options=await optionsInput,maxRetries=options.maxRetries??this.maxRetries;retriesRemaining==null&&(retriesRemaining=maxRetries),await this.prepareOptions(options);let{req,url,timeout}=await this.buildRequest(options,{retryCount:maxRetries-retriesRemaining});await this.prepareRequest(req,{url,options});let requestLogID="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),retryLogStr=retryOfRequestLogID===void 0?"":`, retryOf: ${retryOfRequestLogID}`,startTime=Date.now();if(loggerFor(this).debug(`[${requestLogID}] sending request`,formatRequestDetails({retryOfRequestLogID,method:options.method,url,options,headers:req.headers})),options.signal?.aborted)throw new APIUserAbortError;let security=options.__security??{bearerAuth:!0},controller=new AbortController,response=await this.fetchWithAuth(url,req,timeout,controller,security).catch(castToError),headersTime=Date.now();if(response instanceof globalThis.Error){let retryMessage=`retrying, ${retriesRemaining} attempts remaining`;if(options.signal?.aborted)throw new APIUserAbortError;let isTimeout=isAbortError(response)||/timed? ?out/i.test(String(response)+("cause"in response?String(response.cause):""));if(retriesRemaining)return loggerFor(this).info(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} - ${retryMessage}`),loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} (${retryMessage})`,formatRequestDetails({retryOfRequestLogID,url,durationMs:headersTime-startTime,message:response.message})),this.retryRequest(options,retriesRemaining,retryOfRequestLogID??requestLogID);throw loggerFor(this).info(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} - error; no more retries left`),loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} (error; no more retries left)`,formatRequestDetails({retryOfRequestLogID,url,durationMs:headersTime-startTime,message:response.message})),response instanceof OAuthError||response instanceof SubjectTokenProviderError?response:isTimeout?new APIConnectionTimeoutError:new APIConnectionError({message:getConnectionErrorMessage(response),cause:response})}let specialHeaders=[...response.headers.entries()].filter(([name])=>name==="x-request-id").map(([name,value])=>", "+name+": "+JSON.stringify(value)).join(""),responseInfo=`[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${response.ok?"succeeded":"failed"} with status ${response.status} in ${headersTime-startTime}ms`;if(!response.ok){if(response.status===401&&this._workloadIdentityAuth&&security.bearerAuth&&!options.__metadata?.hasStreamingBody&&!options.__metadata?.workloadIdentityTokenRefreshed)return await CancelReadableStream(response.body),this._workloadIdentityAuth.invalidateToken(),this.makeRequest({...options,__metadata:{...options.__metadata,workloadIdentityTokenRefreshed:!0}},retriesRemaining,retryOfRequestLogID??requestLogID);let shouldRetry=await this.shouldRetry(response);if(retriesRemaining&&shouldRetry){let retryMessage2=`retrying, ${retriesRemaining} attempts remaining`;return await CancelReadableStream(response.body),loggerFor(this).info(`${responseInfo} - ${retryMessage2}`),loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage2})`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,headers:response.headers,durationMs:headersTime-startTime})),this.retryRequest(options,retriesRemaining,retryOfRequestLogID??requestLogID,response.headers)}let retryMessage=shouldRetry?"error; no more retries left":"error; not retryable";loggerFor(this).info(`${responseInfo} - ${retryMessage}`);let errText=await response.text().catch(err2=>castToError(err2).message),errJSON=safeJSON(errText),errMessage=errJSON?void 0:errText;throw loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,headers:response.headers,message:errMessage,durationMs:Date.now()-startTime})),this.makeStatusError(response.status,errJSON,errMessage,response.headers)}return loggerFor(this).info(responseInfo),loggerFor(this).debug(`[${requestLogID}] response start`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,headers:response.headers,durationMs:headersTime-startTime})),{response,options,controller,requestLogID,retryOfRequestLogID,startTime}}getAPIList(path2,Page2,opts){return this.requestAPIList(Page2,opts&&"then"in opts?opts.then(opts2=>({method:"get",path:path2,...opts2})):{method:"get",path:path2,...opts})}requestAPIList(Page2,options){let request=this.makeRequest(options,null,void 0);return new PagePromise(this,request,Page2)}async fetchWithAuth(url,init,timeout,controller,schemes={bearerAuth:!0,adminAPIKeyAuth:!0}){if(this._workloadIdentityAuth&&schemes.bearerAuth){let headers=init.headers,authHeader=headers.get("Authorization");if(!authHeader||authHeader===`Bearer ${WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER}`){let token=await this._workloadIdentityAuth.getToken();headers.set("Authorization",`Bearer ${token}`)}}return await this.fetchWithTimeout(url,init,timeout,controller)}async fetchWithTimeout(url,init,ms,controller){let{signal,method,...options}=init||{},abort=this._makeAbort(controller);signal&&signal.addEventListener("abort",abort,{once:!0});let timeout=setTimeout(abort,ms),isReadableBody=globalThis.ReadableStream&&options.body instanceof globalThis.ReadableStream||typeof options.body=="object"&&options.body!==null&&Symbol.asyncIterator in options.body,fetchOptions={signal:controller.signal,...isReadableBody?{duplex:"half"}:{},method:"GET",...options};method&&(fetchOptions.method=method.toUpperCase());try{return await this.fetch.call(void 0,url,fetchOptions)}finally{clearTimeout(timeout)}}async shouldRetry(response){let shouldRetryHeader=response.headers.get("x-should-retry");return shouldRetryHeader==="true"?!0:shouldRetryHeader==="false"?!1:response.status===408||response.status===409||response.status===429||response.status>=500}async retryRequest(options,retriesRemaining,requestLogID,responseHeaders){let timeoutMillis,retryAfterMillisHeader=responseHeaders?.get("retry-after-ms");if(retryAfterMillisHeader){let timeoutMs=parseFloat(retryAfterMillisHeader);Number.isNaN(timeoutMs)||(timeoutMillis=timeoutMs)}let retryAfterHeader=responseHeaders?.get("retry-after");if(retryAfterHeader&&!timeoutMillis){let timeoutSeconds=parseFloat(retryAfterHeader);Number.isNaN(timeoutSeconds)?timeoutMillis=Date.parse(retryAfterHeader)-Date.now():timeoutMillis=timeoutSeconds*1e3}if(timeoutMillis===void 0){let maxRetries=options.maxRetries??this.maxRetries;timeoutMillis=this.calculateDefaultRetryTimeoutMillis(retriesRemaining,maxRetries)}return await sleep(timeoutMillis),this.makeRequest(options,retriesRemaining-1,requestLogID)}calculateDefaultRetryTimeoutMillis(retriesRemaining,maxRetries){let numRetries=maxRetries-retriesRemaining,sleepSeconds=Math.min(.5*Math.pow(2,numRetries),8),jitter=1-Math.random()*.25;return sleepSeconds*jitter*1e3}async buildRequest(inputOptions,{retryCount=0}={}){let options={...inputOptions},{method,path:path2,query,defaultBaseURL}=options,url=this.buildURL(path2,query,defaultBaseURL);"timeout"in options&&validatePositiveInteger("timeout",options.timeout),options.timeout=options.timeout??this.timeout;let{bodyHeaders,body,isStreamingBody}=this.buildBody({options});isStreamingBody&&(inputOptions.__metadata={...inputOptions.__metadata,hasStreamingBody:!0});let reqHeaders=await this.buildHeaders({options:inputOptions,method,bodyHeaders,retryCount});return{req:{method,headers:reqHeaders,...options.signal&&{signal:options.signal},...globalThis.ReadableStream&&body instanceof globalThis.ReadableStream&&{duplex:"half"},...body&&{body},...this.fetchOptions??{},...options.fetchOptions??{}},url,timeout:options.timeout}}async buildHeaders({options,method,bodyHeaders,retryCount}){let idempotencyHeaders={};this.idempotencyHeader&&method!=="get"&&(options.idempotencyKey||(options.idempotencyKey=this.defaultIdempotencyKey()),idempotencyHeaders[this.idempotencyHeader]=options.idempotencyKey);let headers=buildHeaders([idempotencyHeaders,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(retryCount),...options.timeout?{"X-Stainless-Timeout":String(Math.trunc(options.timeout/1e3))}:{},...getPlatformHeaders(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(options,options.__security??{bearerAuth:!0}),this._options.defaultHeaders,bodyHeaders,options.headers]);return this.validateHeaders(headers,options.__security??{bearerAuth:!0}),headers.values}_makeAbort(controller){return()=>controller.abort()}buildBody({options:{body,headers:rawHeaders}}){if(!body)return{bodyHeaders:void 0,body:void 0,isStreamingBody:!1};let headers=buildHeaders([rawHeaders]),isReadableStream=typeof globalThis.ReadableStream<"u"&&body instanceof globalThis.ReadableStream,isRetryableBody=!isReadableStream&&(typeof body=="string"||body instanceof ArrayBuffer||ArrayBuffer.isView(body)||typeof globalThis.Blob<"u"&&body instanceof globalThis.Blob||body instanceof URLSearchParams||body instanceof FormData);return ArrayBuffer.isView(body)||body instanceof ArrayBuffer||body instanceof DataView||typeof body=="string"&&headers.values.has("content-type")||globalThis.Blob&&body instanceof globalThis.Blob||body instanceof FormData||body instanceof URLSearchParams||isReadableStream?{bodyHeaders:void 0,body,isStreamingBody:!isRetryableBody}:typeof body=="object"&&(Symbol.asyncIterator in body||Symbol.iterator in body&&"next"in body&&typeof body.next=="function")?{bodyHeaders:void 0,body:ReadableStreamFrom(body),isStreamingBody:!0}:typeof body=="object"&&headers.values.get("content-type")==="application/x-www-form-urlencoded"?{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(body),isStreamingBody:!1}:{...__classPrivateFieldGet(this,_OpenAI_encoder,"f").call(this,{body,headers}),isStreamingBody:!1}}};_a2=OpenAI,_OpenAI_encoder=new WeakMap,_OpenAI_instances=new WeakSet,_OpenAI_baseURLOverridden=function(){return this.baseURL!=="https://api.openai.com/v1"};OpenAI.OpenAI=_a2;OpenAI.DEFAULT_TIMEOUT=6e5;OpenAI.OpenAIError=OpenAIError;OpenAI.APIError=APIError;OpenAI.APIConnectionError=APIConnectionError;OpenAI.APIConnectionTimeoutError=APIConnectionTimeoutError;OpenAI.APIUserAbortError=APIUserAbortError;OpenAI.NotFoundError=NotFoundError;OpenAI.ConflictError=ConflictError;OpenAI.RateLimitError=RateLimitError;OpenAI.BadRequestError=BadRequestError;OpenAI.AuthenticationError=AuthenticationError;OpenAI.InternalServerError=InternalServerError;OpenAI.PermissionDeniedError=PermissionDeniedError;OpenAI.UnprocessableEntityError=UnprocessableEntityError;OpenAI.InvalidWebhookSignatureError=InvalidWebhookSignatureError;OpenAI.toFile=toFile;OpenAI.Completions=Completions2;OpenAI.Chat=Chat;OpenAI.Embeddings=Embeddings;OpenAI.Files=Files2;OpenAI.Images=Images;OpenAI.Audio=Audio;OpenAI.Moderations=Moderations;OpenAI.Models=Models;OpenAI.FineTuning=FineTuning;OpenAI.Graders=Graders2;OpenAI.VectorStores=VectorStores;OpenAI.Webhooks=Webhooks;OpenAI.Beta=Beta;OpenAI.Batches=Batches;OpenAI.Uploads=Uploads;OpenAI.Admin=Admin;OpenAI.Responses=Responses;OpenAI.Realtime=Realtime2;OpenAI.Conversations=Conversations;OpenAI.Evals=Evals;OpenAI.Containers=Containers;OpenAI.Skills=Skills;OpenAI.Videos=Videos;function getConnectionErrorMessage(error){if(isUndiciDispatcherVersionMismatchError(error))return"Connection error. This may be caused by passing an undici dispatcher, such as ProxyAgent, that is incompatible with the fetch implementation. If you are using undici's ProxyAgent, pass the fetch implementation from the same undici package: import { fetch, ProxyAgent } from 'undici'; new OpenAI({ fetch, fetchOptions: { dispatcher: new ProxyAgent(...) } });"}function isUndiciDispatcherVersionMismatchError(error){let current=error;for(let i=0;i<8&&current&&typeof current=="object";i++){let err=current;if(err.code==="UND_ERR_INVALID_ARG"&&typeof err.message=="string"&&err.message.includes("invalid onRequestStart method"))return!0;current=err.cause}return!1}var AzureOpenAI=class extends OpenAI{constructor({baseURL=readEnv("OPENAI_BASE_URL"),apiKey=readEnv("AZURE_OPENAI_API_KEY"),apiVersion=readEnv("OPENAI_API_VERSION"),endpoint,deployment,azureADTokenProvider,dangerouslyAllowBrowser,...opts}={}){if(!apiVersion)throw new OpenAIError("The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).");if(typeof azureADTokenProvider=="function"&&(dangerouslyAllowBrowser=!0),!azureADTokenProvider&&!apiKey)throw new OpenAIError("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(azureADTokenProvider&&apiKey)throw new OpenAIError("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(opts.defaultQuery={...opts.defaultQuery,"api-version":apiVersion},baseURL){if(endpoint)throw new OpenAIError("baseURL and endpoint are mutually exclusive")}else{if(endpoint||(endpoint=process.env.AZURE_OPENAI_ENDPOINT),!endpoint)throw new OpenAIError("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");baseURL=`${endpoint}/openai`}super({apiKey:azureADTokenProvider??apiKey,baseURL,...opts,...dangerouslyAllowBrowser!==void 0?{dangerouslyAllowBrowser}:{}}),this.apiVersion="",this.apiVersion=apiVersion,this.deploymentName=deployment}async buildRequest(options,props={}){if(_deployments_endpoints.has(options.path)&&options.method==="post"&&options.body!==void 0){if(!isObj(options.body))throw new Error("Expected request body to be an object");let model=this.deploymentName||options.body.model||options.__metadata?.model;model!==void 0&&!this.baseURL.includes("/deployments")&&(options.path=`/deployments/${model}${options.path}`)}return super.buildRequest(options,props)}async authHeaders(opts,schemes){let security=schemes??{bearerAuth:!0,adminAPIKeyAuth:!0};return security.bearerAuth&&typeof this._options.apiKey=="string"?buildHeaders([{"api-key":this.apiKey}]):super.authHeaders(opts,security)}},_deployments_endpoints=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"]);export{OpenAI,AzureOpenAI};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ function inferCopilotInitiator(messages){let last=messages[messages.length-1];return last&&last.role!=="user"?"agent":"user"}function hasCopilotVisionInput(messages){return messages.some(msg=>msg.role==="user"&&Array.isArray(msg.content)?msg.content.some(c=>c.type==="image"):msg.role==="toolResult"&&Array.isArray(msg.content)?msg.content.some(c=>c.type==="image"):!1)}function buildCopilotDynamicHeaders(params){let headers={"X-Initiator":inferCopilotInitiator(params.messages),"Openai-Intent":"conversation-edits"};return params.hasImages&&(headers["Copilot-Vision-Request"]="true"),headers}export{hasCopilotVisionInput,buildCopilotDynamicHeaders};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ function shortHash(str){let h1=3735928559,h2=1103547991;for(let i=0;i<str.length;i++){let ch=str.charCodeAt(i);h1=Math.imul(h1^ch,2654435761),h2=Math.imul(h2^ch,1597334677)}return h1=Math.imul(h1^h1>>>16,2246822507)^Math.imul(h2^h2>>>13,3266489909),h2=Math.imul(h2^h2>>>16,2246822507)^Math.imul(h1^h1>>>13,3266489909),(h2>>>0).toString(36)+(h1>>>0).toString(36)}export{shortHash};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ function clampOpenAIPromptCacheKey(key){if(key===void 0)return;let chars=Array.from(key);return chars.length<=64?key:chars.slice(0,64).join("")}export{clampOpenAIPromptCacheKey};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ function normalizeProviderError(error){if(!(error instanceof Error))return{message:safeJsonStringify(error),messageCarriesBody:!1};let sdkError=error,status=extractStatus(sdkError),body=extractBody(sdkError),messageCarriesBody=body===void 0||error.message.includes(body);return{status,body,message:error.message,messageCarriesBody}}function extractStatus(error){if(typeof error.statusCode=="number")return error.statusCode;if(typeof error.status=="number")return error.status;if(typeof error.$metadata?.httpStatusCode=="number")return error.$metadata.httpStatusCode;if(typeof error.$response?.statusCode=="number")return error.$response.statusCode}function extractBody(error){let bodyText=pickBodyText(error);if(bodyText===void 0)return;let trimmed=bodyText.trim();if(trimmed.length!==0)return truncateErrorText(trimmed,4e3)}function pickBodyText(error){if(typeof error.body=="string")return error.body;if(isPlainNonEmptyObject(error.error))return safeJsonStringify(error.error);let responseBody=error.$response?.body;if(typeof responseBody=="string")return responseBody;if(!isReadableStreamLike(responseBody)&&isPlainNonEmptyObject(responseBody))return safeJsonStringify(responseBody)}function isReadableStreamLike(value){return typeof value=="object"&&value!==null&&"pipe"in value&&typeof value.pipe=="function"}function isPlainNonEmptyObject(value){if(typeof value!="object"||value===null)return!1;let proto=Object.getPrototypeOf(value);return proto!==Object.prototype&&proto!==null?!1:Object.keys(value).length>0}function formatProviderError(norm,prefix){return norm.messageCarriesBody||norm.status===void 0||norm.body===void 0?prefix!==void 0&&norm.status!==void 0?`${prefix} (${norm.status}): ${norm.message}`:norm.message:prefix!==void 0?`${prefix} (${norm.status}): ${norm.body}`:`${norm.status}: ${norm.body}`}function truncateErrorText(text,maxChars){return text.length<=maxChars?text:`${text.slice(0,maxChars)}... [truncated ${text.length-maxChars} chars]`}function safeJsonStringify(value){try{let serialized=JSON.stringify(value);return serialized===void 0?String(value):serialized}catch{return String(value)}}export{normalizeProviderError,formatProviderError};
@@ -0,0 +1,4 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ import{__commonJS,__toESM}from"./chunk-4L3WN2XY.js";var require_options=__commonJS({"node_modules/partial-json/dist/options.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.Allow=exports.ALL=exports.COLLECTION=exports.ATOM=exports.SPECIAL=exports.INF=exports._INFINITY=exports.INFINITY=exports.NAN=exports.BOOL=exports.NULL=exports.OBJ=exports.ARR=exports.NUM=exports.STR=void 0;exports.STR=1;exports.NUM=2;exports.ARR=4;exports.OBJ=8;exports.NULL=16;exports.BOOL=32;exports.NAN=64;exports.INFINITY=128;exports._INFINITY=256;exports.INF=exports.INFINITY|exports._INFINITY;exports.SPECIAL=exports.NULL|exports.BOOL|exports.INF|exports.NAN;exports.ATOM=exports.STR|exports.NUM|exports.SPECIAL;exports.COLLECTION=exports.ARR|exports.OBJ;exports.ALL=exports.ATOM|exports.COLLECTION;exports.Allow={STR:exports.STR,NUM:exports.NUM,ARR:exports.ARR,OBJ:exports.OBJ,NULL:exports.NULL,BOOL:exports.BOOL,NAN:exports.NAN,INFINITY:exports.INFINITY,_INFINITY:exports._INFINITY,INF:exports.INF,SPECIAL:exports.SPECIAL,ATOM:exports.ATOM,COLLECTION:exports.COLLECTION,ALL:exports.ALL};exports.default=exports.Allow}});var require_dist=__commonJS({"node_modules/partial-json/dist/index.js"(exports){"use strict";var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__exportStar=exports&&exports.__exportStar||function(m,exports2){for(var p in m)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports2,p)&&__createBinding(exports2,m,p)};Object.defineProperty(exports,"__esModule",{value:!0});exports.Allow=exports.MalformedJSON=exports.PartialJSON=exports.parseJSON=exports.parse=void 0;var options_1=require_options();Object.defineProperty(exports,"Allow",{enumerable:!0,get:function(){return options_1.Allow}});__exportStar(require_options(),exports);var PartialJSON=class extends Error{};exports.PartialJSON=PartialJSON;var MalformedJSON=class extends Error{};exports.MalformedJSON=MalformedJSON;function parseJSON(jsonString,allowPartial=options_1.Allow.ALL){if(typeof jsonString!="string")throw new TypeError(`expecting str, got ${typeof jsonString}`);if(!jsonString.trim())throw new Error(`${jsonString} is empty`);return _parseJSON(jsonString.trim(),allowPartial)}exports.parseJSON=parseJSON;var _parseJSON=(jsonString,allow)=>{let length=jsonString.length,index=0,markPartialJSON=msg=>{throw new PartialJSON(`${msg} at position ${index}`)},throwMalformedError=msg=>{throw new MalformedJSON(`${msg} at position ${index}`)},parseAny=()=>(skipBlank(),index>=length&&markPartialJSON("Unexpected end of input"),jsonString[index]==='"'?parseStr():jsonString[index]==="{"?parseObj():jsonString[index]==="["?parseArr():jsonString.substring(index,index+4)==="null"||options_1.Allow.NULL&allow&&length-index<4&&"null".startsWith(jsonString.substring(index))?(index+=4,null):jsonString.substring(index,index+4)==="true"||options_1.Allow.BOOL&allow&&length-index<4&&"true".startsWith(jsonString.substring(index))?(index+=4,!0):jsonString.substring(index,index+5)==="false"||options_1.Allow.BOOL&allow&&length-index<5&&"false".startsWith(jsonString.substring(index))?(index+=5,!1):jsonString.substring(index,index+8)==="Infinity"||options_1.Allow.INFINITY&allow&&length-index<8&&"Infinity".startsWith(jsonString.substring(index))?(index+=8,1/0):jsonString.substring(index,index+9)==="-Infinity"||options_1.Allow._INFINITY&allow&&1<length-index&&length-index<9&&"-Infinity".startsWith(jsonString.substring(index))?(index+=9,-1/0):jsonString.substring(index,index+3)==="NaN"||options_1.Allow.NAN&allow&&length-index<3&&"NaN".startsWith(jsonString.substring(index))?(index+=3,NaN):parseNum()),parseStr=()=>{let start=index,escape=!1;for(index++;index<length&&(jsonString[index]!=='"'||escape&&jsonString[index-1]==="\\");)escape=jsonString[index]==="\\"?!escape:!1,index++;if(jsonString.charAt(index)=='"')try{return JSON.parse(jsonString.substring(start,++index-Number(escape)))}catch(e){throwMalformedError(String(e))}else if(options_1.Allow.STR&allow)try{return JSON.parse(jsonString.substring(start,index-Number(escape))+'"')}catch{return JSON.parse(jsonString.substring(start,jsonString.lastIndexOf("\\"))+'"')}markPartialJSON("Unterminated string literal")},parseObj=()=>{index++,skipBlank();let obj={};try{for(;jsonString[index]!=="}";){if(skipBlank(),index>=length&&options_1.Allow.OBJ&allow)return obj;let key=parseStr();skipBlank(),index++;try{let value=parseAny();obj[key]=value}catch(e){if(options_1.Allow.OBJ&allow)return obj;throw e}skipBlank(),jsonString[index]===","&&index++}}catch{if(options_1.Allow.OBJ&allow)return obj;markPartialJSON("Expected '}' at end of object")}return index++,obj},parseArr=()=>{index++;let arr=[];try{for(;jsonString[index]!=="]";)arr.push(parseAny()),skipBlank(),jsonString[index]===","&&index++}catch{if(options_1.Allow.ARR&allow)return arr;markPartialJSON("Expected ']' at end of array")}return index++,arr},parseNum=()=>{if(index===0){jsonString==="-"&&throwMalformedError("Not sure what '-' is");try{return JSON.parse(jsonString)}catch(e){if(options_1.Allow.NUM&allow)try{return JSON.parse(jsonString.substring(0,jsonString.lastIndexOf("e")))}catch{}throwMalformedError(String(e))}}let start=index;for(jsonString[index]==="-"&&index++;jsonString[index]&&",]}".indexOf(jsonString[index])===-1;)index++;index==length&&!(options_1.Allow.NUM&allow)&&markPartialJSON("Unterminated number literal");try{return JSON.parse(jsonString.substring(start,index))}catch{jsonString.substring(start,index)==="-"&&markPartialJSON("Not sure what '-' is");try{return JSON.parse(jsonString.substring(start,jsonString.lastIndexOf("e")))}catch(e2){throwMalformedError(String(e2))}}},skipBlank=()=>{for(;index<length&&`
3
+ \r `.includes(jsonString[index]);)index++};return parseAny()},parse=parseJSON;exports.parse=parse}});var import_partial_json=__toESM(require_dist(),1),VALID_JSON_ESCAPES=new Set(['"',"\\","/","b","f","n","r","t","u"]);function isControlCharacter(char){let codePoint=char.codePointAt(0);return codePoint!==void 0&&codePoint>=0&&codePoint<=31}function escapeControlCharacter(char){switch(char){case"\b":return"\\b";case"\f":return"\\f";case`
4
+ `:return"\\n";case"\r":return"\\r";case" ":return"\\t";default:return`\\u${char.codePointAt(0)?.toString(16).padStart(4,"0")??"0000"}`}}function repairJson(json){let repaired="",inString=!1;for(let index=0;index<json.length;index++){let char=json[index];if(!inString){repaired+=char,char==='"'&&(inString=!0);continue}if(char==='"'){repaired+=char,inString=!1;continue}if(char==="\\"){let nextChar=json[index+1];if(nextChar===void 0){repaired+="\\\\";continue}if(nextChar==="u"){let unicodeDigits=json.slice(index+2,index+6);if(/^[0-9a-fA-F]{4}$/.test(unicodeDigits)){repaired+=`\\u${unicodeDigits}`,index+=5;continue}}if(VALID_JSON_ESCAPES.has(nextChar)){repaired+=`\\${nextChar}`,index+=1;continue}repaired+="\\\\";continue}repaired+=isControlCharacter(char)?escapeControlCharacter(char):char}return repaired}function parseJsonWithRepair(json){try{return JSON.parse(json)}catch(error){let repairedJson=repairJson(json);if(repairedJson!==json)return JSON.parse(repairedJson);throw error}}function parseStreamingJson(partialJson){if(!partialJson||partialJson.trim()==="")return{};try{return parseJsonWithRepair(partialJson)}catch{try{return(0,import_partial_json.parse)(partialJson)??{}}catch{try{return(0,import_partial_json.parse)(repairJson(partialJson))??{}}catch{return{}}}}}export{repairJson,parseJsonWithRepair,parseStreamingJson};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ var EventStream=class{queue=[];waiting=[];done=!1;finalResultPromise;resolveFinalResult;isComplete;extractResult;constructor(isComplete,extractResult){this.isComplete=isComplete,this.extractResult=extractResult,this.finalResultPromise=new Promise(resolve=>{this.resolveFinalResult=resolve})}push(event){if(this.done)return;this.isComplete(event)&&(this.done=!0,this.resolveFinalResult(this.extractResult(event)));let waiter=this.waiting.shift();waiter?waiter({value:event,done:!1}):this.queue.push(event)}end(result){for(this.done=!0,result!==void 0&&this.resolveFinalResult(result);this.waiting.length>0;)this.waiting.shift()({value:void 0,done:!0})}async*[Symbol.asyncIterator](){for(;;)if(this.queue.length>0)yield this.queue.shift();else{if(this.done)return;{let result=await new Promise(resolve=>this.waiting.push(resolve));if(result.done)return;yield result.value}}}result(){return this.finalResultPromise}},AssistantMessageEventStream=class extends EventStream{constructor(){super(event=>event.type==="done"||event.type==="error",event=>{if(event.type==="done")return event.message;if(event.type==="error")return event.error;throw new Error("Unexpected event type for final result")})}};function createAssistantMessageEventStream(){return new AssistantMessageEventStream}function formatThrownValue(value){return value instanceof Error?value.message||value.name:typeof value=="string"?value:String(value)}function extractDiagnosticError(error){if(!(error instanceof Error))return{name:"ThrownValue",message:formatThrownValue(error)};let code=error.code;return{name:error.name||void 0,message:error.message||error.name,stack:error.stack,code:typeof code=="string"||typeof code=="number"?code:void 0}}function createAssistantMessageDiagnostic(type,error,details){return{type,timestamp:Date.now(),error:extractDiagnosticError(error),details}}function appendAssistantMessageDiagnostic(message,diagnostic){message.diagnostics=[...message.diagnostics??[],diagnostic]}export{EventStream,AssistantMessageEventStream,createAssistantMessageEventStream,formatThrownValue,extractDiagnosticError,createAssistantMessageDiagnostic,appendAssistantMessageDiagnostic};