@humain/terminal 0.0.6 → 0.0.7
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.
- package/CHANGELOG.md +52 -0
- package/README.md +10 -4
- package/dist/bundle/chunks/anthropic-messages-GDMGYAZB.js +6 -0
- package/dist/bundle/chunks/anthropic.js +75 -0
- package/dist/bundle/chunks/azure-openai-responses-ZN52D6YC.js +2 -0
- package/dist/bundle/chunks/bedrock-converse-stream.js +77 -0
- package/dist/bundle/chunks/chunk-3D3G2X5U.js +6 -0
- package/dist/bundle/chunks/chunk-3VI4HD7D.js +31 -0
- package/dist/bundle/chunks/chunk-6R7UI4IY.js +2 -0
- package/dist/bundle/chunks/chunk-72KO4OMP.js +2 -0
- package/dist/bundle/chunks/chunk-7DDKXS2Q.js +2 -0
- package/dist/bundle/chunks/chunk-ARF4OE6X.js +105 -0
- package/dist/bundle/chunks/chunk-BOW22LW6.js +42 -0
- package/dist/bundle/chunks/chunk-BZQ53VGE.js +70 -0
- package/dist/bundle/chunks/chunk-CBHC6EL7.js +133 -0
- package/dist/bundle/chunks/chunk-D7XAASZM.js +4 -0
- package/dist/bundle/chunks/chunk-ECWELYBH.js +17 -0
- package/dist/bundle/chunks/chunk-GMWCTUPB.js +2 -0
- package/dist/bundle/chunks/chunk-H2O6VOXT.js +11 -0
- package/dist/bundle/chunks/chunk-HNVPY4LZ.js +5995 -0
- package/dist/bundle/chunks/chunk-JUUC5AZY.js +2 -0
- package/dist/bundle/chunks/chunk-JXWJOIH4.js +2 -0
- package/dist/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
- package/dist/bundle/chunks/chunk-LVVZS2NO.js +12 -0
- package/dist/bundle/chunks/chunk-M2GYSCCG.js +44 -0
- package/dist/bundle/chunks/chunk-MA4UUCYX.js +18 -0
- package/dist/bundle/chunks/chunk-PGXDEOVV.js +2 -0
- package/dist/bundle/chunks/chunk-PJACZCIR.js +2 -0
- package/dist/bundle/chunks/chunk-PRRNXB7S.js +2 -0
- package/dist/bundle/chunks/chunk-SGTGQNNP.js +4 -0
- package/dist/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
- package/dist/bundle/chunks/chunk-TXBQIIIO.js +2 -0
- package/dist/bundle/chunks/chunk-WJZ4KLGL.js +2 -0
- package/dist/bundle/chunks/chunk-XNGRGP62.js +2 -0
- package/dist/bundle/chunks/dist-7DSXV2TY.js +9 -0
- package/dist/bundle/chunks/dist-BXEVYJIO.js +7 -0
- package/dist/bundle/chunks/es-P2KNSZYR.js +9 -0
- package/dist/bundle/chunks/es5-FGTJ7ZFW.js +2 -0
- package/dist/bundle/chunks/event-streams-JOSQQSII.js +2 -0
- package/dist/bundle/chunks/extract-2L7ZVN7F.js +106 -0
- package/dist/bundle/chunks/github-copilot.js +2 -0
- package/dist/bundle/chunks/google-generative-ai-XT7NQJ2E.js +2 -0
- package/dist/bundle/chunks/google-vertex-IDQ6Z53W.js +2 -0
- package/dist/bundle/chunks/image-resize-worker.js +2 -0
- package/dist/bundle/chunks/kimi-coding.js +2 -0
- package/dist/bundle/chunks/mistral-conversations-HHDZ4FHR.js +5 -0
- package/dist/bundle/chunks/multipart-parser-FMGQ7342.js +3 -0
- package/dist/bundle/chunks/node-XY3CBY3C.js +294 -0
- package/dist/bundle/chunks/node-ZHY4LHC7.js +15 -0
- package/dist/bundle/chunks/openai-codex-responses-HRVCDY54.js +8 -0
- package/dist/bundle/chunks/openai-codex.js +75 -0
- package/dist/bundle/chunks/openai-completions-6QBYTBXY.js +7 -0
- package/dist/bundle/chunks/openai-responses-4MWLJHIK.js +2 -0
- package/dist/bundle/chunks/openrouter-images-Y2PCWAQH.js +2 -0
- package/dist/bundle/chunks/openrouter.js +75 -0
- package/dist/bundle/chunks/pdfjs-UKQT3OWY.js +107 -0
- package/dist/bundle/chunks/pi-messages-57K43J6J.js +8 -0
- package/dist/bundle/chunks/promise-J5TGSM32.js +2 -0
- package/dist/bundle/chunks/radius.js +75 -0
- package/dist/bundle/chunks/src-QKGKDFSU.js +4 -0
- package/dist/bundle/chunks/undici-D6ABF53Q.js +2 -0
- package/dist/bundle/chunks/webapi-AFS5FDJJ.js +5 -0
- package/dist/bundle/chunks/xai.js +2 -0
- package/dist/bundle/cli.js +3 -0
- package/dist/bundle/client.js +2 -0
- package/dist/bundle/index.js +2 -0
- package/dist/bundle/rpc-entry.js +3 -0
- package/dist/cli/args.d.ts +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +29 -9
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +2 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -11
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +50 -14
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +163 -95
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +6 -7
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +3 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +4 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +41 -32
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/defaults.d.ts +1 -0
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js +9 -0
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -2
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +115 -48
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/types.d.ts +38 -9
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js +3 -0
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +1 -1
- package/dist/core/footer-data-provider.js +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/keybindings.d.ts +20 -19
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +26 -5
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-config.d.ts +5 -0
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +3 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +14 -8
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +2 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +22 -14
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts.map +1 -1
- package/dist/core/pi-manifest.js +2 -1
- package/dist/core/pi-manifest.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +3 -2
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +2 -2
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +10 -3
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-export.d.ts +4 -0
- package/dist/core/session-export.d.ts.map +1 -0
- package/dist/core/session-export.js +32 -0
- package/dist/core/session-export.js.map +1 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts +9 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +21 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager.d.ts +9 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +51 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +2 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +11 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts +16 -3
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +62 -29
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts +0 -5
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +2 -5
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +20 -4
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/index.d.ts +4 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +19 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/powershell.d.ts +16 -0
- package/dist/core/tools/powershell.d.ts.map +1 -0
- package/dist/core/tools/powershell.js +39 -0
- package/dist/core/tools/powershell.js.map +1 -0
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js +4 -1
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +2 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -2
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/humain/agent-execution-protocol.d.ts +1 -217
- package/dist/humain/agent-execution-protocol.d.ts.map +1 -1
- package/dist/humain/agent-execution-protocol.js +1 -203
- package/dist/humain/agent-execution-protocol.js.map +1 -1
- package/dist/humain/bedrock-provider/vendor/index.bundle.mjs +107 -16
- package/dist/humain/mcp-adapter/vendor/CHANGELOG.md +82 -0
- package/dist/humain/mcp-adapter/vendor/README.md +47 -15
- package/dist/humain/mcp-adapter/vendor/cli.js +4 -4
- package/dist/humain/mcp-adapter/vendor/commands.ts +5 -3
- package/dist/humain/mcp-adapter/vendor/config.ts +46 -5
- package/dist/humain/mcp-adapter/vendor/direct-tools.ts +103 -92
- package/dist/humain/mcp-adapter/vendor/dist/agent-dir.d.ts +10 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-dir.js +63 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-dir.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-loader.d.ts +8 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-loader.js +356 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-loader.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/config.d.ts +123 -0
- package/dist/humain/mcp-adapter/vendor/dist/config.js +1088 -0
- package/dist/humain/mcp-adapter/vendor/dist/config.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/mcp-bearer-store.d.ts +24 -0
- package/dist/humain/mcp-adapter/vendor/dist/mcp-bearer-store.js +336 -0
- package/dist/humain/mcp-adapter/vendor/dist/mcp-bearer-store.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/metadata-cache.d.ts +19 -0
- package/dist/humain/mcp-adapter/vendor/dist/metadata-cache.js +319 -0
- package/dist/humain/mcp-adapter/vendor/dist/metadata-cache.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/package-mcp-loader.d.ts +2 -0
- package/dist/humain/mcp-adapter/vendor/dist/package-mcp-loader.js +156 -0
- package/dist/humain/mcp-adapter/vendor/dist/package-mcp-loader.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/resource-tools.d.ts +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/resource-tools.js +15 -0
- package/dist/humain/mcp-adapter/vendor/dist/resource-tools.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/types.d.ts +566 -0
- package/dist/humain/mcp-adapter/vendor/dist/types.js +287 -0
- package/dist/humain/mcp-adapter/vendor/dist/types.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-app-bridge-helpers.d.ts +6 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-app-bridge-helpers.js +37 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-app-bridge-helpers.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-stream-types.d.ts +104 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-stream-types.js +59 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-stream-types.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-tool-visibility.d.ts +4 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-tool-visibility.js +27 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-tool-visibility.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/utils.d.ts +32 -0
- package/dist/humain/mcp-adapter/vendor/dist/utils.js +338 -0
- package/dist/humain/mcp-adapter/vendor/dist/utils.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/failure-backoff.ts +23 -0
- package/dist/humain/mcp-adapter/vendor/index.bundle.mjs +4870 -3878
- package/dist/humain/mcp-adapter/vendor/index.ts +294 -88
- package/dist/humain/mcp-adapter/vendor/init.ts +41 -30
- package/dist/humain/mcp-adapter/vendor/lifecycle.ts +16 -8
- package/dist/humain/mcp-adapter/vendor/mcp-auth-flow.ts +124 -32
- package/dist/humain/mcp-adapter/vendor/mcp-bearer-store.ts +0 -2
- package/dist/humain/mcp-adapter/vendor/mcp-code.ts +2 -0
- package/dist/humain/mcp-adapter/vendor/mcp-oauth-provider.ts +155 -16
- package/dist/humain/mcp-adapter/vendor/mcp-output-guard.ts +95 -7
- package/dist/humain/mcp-adapter/vendor/mcp-probe.ts +18 -4
- package/dist/humain/mcp-adapter/vendor/mcp-references.ts +376 -0
- package/dist/humain/mcp-adapter/vendor/mcp-status.ts +8 -19
- package/dist/humain/mcp-adapter/vendor/metadata-cache.ts +20 -12
- package/dist/humain/mcp-adapter/vendor/namespace-tools.ts +276 -0
- package/dist/humain/mcp-adapter/vendor/package.json +26 -8
- package/dist/humain/mcp-adapter/vendor/proxy-modes.ts +128 -32
- package/dist/humain/mcp-adapter/vendor/request-headers-command.ts +1 -1
- package/dist/humain/mcp-adapter/vendor/search-ranking.ts +2 -0
- package/dist/humain/mcp-adapter/vendor/server-manager.ts +69 -12
- package/dist/humain/mcp-adapter/vendor/state.ts +1 -3
- package/dist/humain/mcp-adapter/vendor/tool-result-renderer.ts +16 -2
- package/dist/humain/mcp-adapter/vendor/types.ts +51 -2
- package/dist/humain/mcp-adapter/vendor/ui-server.ts +3 -19
- package/dist/humain/mcp-adapter/vendor/ui-session.ts +2 -1
- package/dist/humain/mcp-adapter/vendor/utils.ts +21 -19
- package/dist/humain/mcp-adapter.d.ts.map +1 -1
- package/dist/humain/mcp-adapter.js +4 -0
- package/dist/humain/mcp-adapter.js.map +1 -1
- package/dist/humain/web-access/vendor/chrome-cookies.d.ts +14 -0
- package/dist/humain/web-access/vendor/chrome-cookies.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/chrome-cookies.js +85 -33
- package/dist/humain/web-access/vendor/chrome-cookies.js.map +1 -1
- package/dist/humain/web-access/vendor/credential-source.d.ts +1 -1
- package/dist/humain/web-access/vendor/credential-source.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/credential-source.js +3 -1
- package/dist/humain/web-access/vendor/credential-source.js.map +1 -1
- package/dist/humain/web-access/vendor/curator-page.d.ts +2 -29
- package/dist/humain/web-access/vendor/curator-page.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/curator-page.js +10 -1
- package/dist/humain/web-access/vendor/curator-page.js.map +1 -1
- package/dist/humain/web-access/vendor/curator-server.d.ts +2 -29
- package/dist/humain/web-access/vendor/curator-server.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/curator-server.js +4 -0
- package/dist/humain/web-access/vendor/curator-server.js.map +1 -1
- package/dist/humain/web-access/vendor/extract.d.ts +11 -0
- package/dist/humain/web-access/vendor/extract.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/extract.js +163 -20
- package/dist/humain/web-access/vendor/extract.js.map +1 -1
- package/dist/humain/web-access/vendor/fetch-params.d.ts +2 -0
- package/dist/humain/web-access/vendor/fetch-params.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/fetch-params.js +11 -0
- package/dist/humain/web-access/vendor/fetch-params.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-adc.d.ts +10 -0
- package/dist/humain/web-access/vendor/gemini-adc.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/gemini-adc.js +268 -0
- package/dist/humain/web-access/vendor/gemini-adc.js.map +1 -0
- package/dist/humain/web-access/vendor/gemini-api.d.ts +7 -1
- package/dist/humain/web-access/vendor/gemini-api.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-api.js +51 -15
- package/dist/humain/web-access/vendor/gemini-api.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-search.d.ts +9 -4
- package/dist/humain/web-access/vendor/gemini-search.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-search.js +63 -21
- package/dist/humain/web-access/vendor/gemini-search.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-url-context.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-url-context.js +3 -2
- package/dist/humain/web-access/vendor/gemini-url-context.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-web-config.d.ts +8 -1
- package/dist/humain/web-access/vendor/gemini-web-config.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-web-config.js +49 -4
- package/dist/humain/web-access/vendor/gemini-web-config.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-web.d.ts +2 -1
- package/dist/humain/web-access/vendor/gemini-web.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-web.js +8 -3
- package/dist/humain/web-access/vendor/gemini-web.js.map +1 -1
- package/dist/humain/web-access/vendor/github-api.d.ts +1 -1
- package/dist/humain/web-access/vendor/github-api.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/github-api.js +6 -4
- package/dist/humain/web-access/vendor/github-api.js.map +1 -1
- package/dist/humain/web-access/vendor/github-extract.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/github-extract.js +50 -3
- package/dist/humain/web-access/vendor/github-extract.js.map +1 -1
- package/dist/humain/web-access/vendor/github-issue-pr.d.ts +27 -0
- package/dist/humain/web-access/vendor/github-issue-pr.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/github-issue-pr.js +701 -0
- package/dist/humain/web-access/vendor/github-issue-pr.js.map +1 -0
- package/dist/humain/web-access/vendor/index.d.ts +3 -31
- package/dist/humain/web-access/vendor/index.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/index.js +643 -530
- package/dist/humain/web-access/vendor/index.js.map +1 -1
- package/dist/humain/web-access/vendor/kimi-search.d.ts +5 -0
- package/dist/humain/web-access/vendor/kimi-search.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/kimi-search.js +228 -0
- package/dist/humain/web-access/vendor/kimi-search.js.map +1 -0
- package/dist/humain/web-access/vendor/openai-search.d.ts +3 -0
- package/dist/humain/web-access/vendor/openai-search.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/openai-search.js +89 -16
- package/dist/humain/web-access/vendor/openai-search.js.map +1 -1
- package/dist/humain/web-access/vendor/page-query.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/page-query.js +56 -8
- package/dist/humain/web-access/vendor/page-query.js.map +1 -1
- package/dist/humain/web-access/vendor/ssrf-protection.js +6 -1
- package/dist/humain/web-access/vendor/ssrf-protection.js.map +1 -1
- package/dist/humain/web-access/vendor/utils.d.ts +12 -0
- package/dist/humain/web-access/vendor/utils.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/utils.js +343 -1
- package/dist/humain/web-access/vendor/utils.js.map +1 -1
- package/dist/humain/web-access/vendor/xcrawl.d.ts +4 -0
- package/dist/humain/web-access/vendor/xcrawl.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/xcrawl.js +251 -0
- package/dist/humain/web-access/vendor/xcrawl.js.map +1 -0
- package/dist/humain/web-access/vendor/youtube-extract.js +2 -2
- package/dist/humain/web-access/vendor/youtube-extract.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +17 -14
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +4 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +9 -3
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +53 -10
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +7 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +118 -55
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-submenu.js +151 -0
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +68 -17
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +11 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +176 -106
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/session-share.d.ts +16 -0
- package/dist/modes/interactive/session-share.d.ts.map +1 -0
- package/dist/modes/interactive/session-share.js +188 -0
- package/dist/modes/interactive/session-share.js.map +1 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +6 -5
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +16 -13
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +20 -6
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +3 -2
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +2 -7
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +189 -3
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/changelog.d.ts +1 -1
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js +12 -2
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +2 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/management-http.d.ts +5 -3
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +14 -10
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/shell.d.ts +3 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +17 -5
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts +1 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +64 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/version-check.js +4 -4
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +15 -0
- package/docs/custom-provider.md +5 -2
- package/docs/environment-variables.md +7 -7
- package/docs/extensions.md +17 -7
- package/docs/json.md +7 -2
- package/docs/keybindings.md +8 -8
- package/docs/llama-cpp.md +2 -0
- package/docs/models.md +8 -2
- package/docs/packages.md +2 -2
- package/docs/rpc.md +9 -3
- package/docs/sdk.md +7 -2
- package/docs/settings.md +11 -3
- package/docs/skills.md +3 -2
- package/docs/terminal-setup.md +8 -0
- package/docs/usage.md +10 -7
- package/docs/windows.md +15 -1
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +70 -8
- package/examples/extensions/custom-provider-anthropic/package.json +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/git-checkpoint.ts +2 -2
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/notify.ts +3 -1
- package/examples/extensions/sandbox/package-lock.json +14 -40
- package/examples/extensions/sandbox/package.json +2 -2
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +4 -4
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +293 -221
- package/package.json +21 -18
- package/src/humain/mcp-adapter/UPSTREAM.md +15 -5
- package/src/humain/mcp-adapter/upstream.json +4 -3
- package/src/humain/mcp-adapter/vendor/CHANGELOG.md +82 -0
- package/src/humain/web-access/UPSTREAM.md +1 -1
- package/src/humain/web-access/upstream.json +6 -4
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
+
import{__commonJS,__toESM}from"./chunk-JXWJOIH4.js";var require_x509_transport_state=__commonJS({"node_modules/openai/internal/auth/x509-transport-state.cjs"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.findX509OAuthError=exports.rememberX509OAuthError=exports.isApprovedX509Client=exports.markApprovedX509Client=exports.isRetryableX509IssuerError=exports.markRetryableX509IssuerError=exports.isTransientX509ConnectionError=exports.markTransientX509ConnectionError=exports.rememberRegisteredX509Transport=exports.findRegisteredX509Transport=void 0;var registeredX509Transports=new WeakMap,transientX509ConnectionErrors=new WeakSet,retryableX509IssuerErrors=new WeakSet,approvedX509Clients=new WeakSet,approvedX509OAuthErrors=new WeakMap;exports.findRegisteredX509Transport=WeakMap.prototype.get.bind(registeredX509Transports);exports.rememberRegisteredX509Transport=WeakMap.prototype.set.bind(registeredX509Transports);exports.markTransientX509ConnectionError=WeakSet.prototype.add.bind(transientX509ConnectionErrors);exports.isTransientX509ConnectionError=WeakSet.prototype.has.bind(transientX509ConnectionErrors);exports.markRetryableX509IssuerError=WeakSet.prototype.add.bind(retryableX509IssuerErrors);exports.isRetryableX509IssuerError=WeakSet.prototype.has.bind(retryableX509IssuerErrors);exports.markApprovedX509Client=WeakSet.prototype.add.bind(approvedX509Clients);exports.isApprovedX509Client=WeakSet.prototype.has.bind(approvedX509Clients);exports.rememberX509OAuthError=WeakMap.prototype.set.bind(approvedX509OAuthErrors);exports.findX509OAuthError=WeakMap.prototype.get.bind(approvedX509OAuthErrors)}});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));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 ReadableStream2=globalThis.ReadableStream;if(typeof ReadableStream2>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new ReadableStream2(...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 encodeUTF8_;function encodeUTF8(str){let encoder;return(encodeUTF8_??(encoder=new globalThis.TextEncoder,encodeUTF8_=encoder.encode.bind(encoder)))(str)}var decodeUTF8_;function decodeUTF8(bytes){let decoder;return(decodeUTF8_??(decoder=new globalThis.TextDecoder,decodeUTF8_=decoder.decode.bind(decoder)))(bytes)}var _LineDecoder_instances,_LineDecoder_buffer,_LineDecoder_start,_LineDecoder_end,_LineDecoder_searchIndex,_LineDecoder_skipLeadingLF,_LineDecoder_append,MAX_RETAINED_BUFFER_BYTES=64*1024,LineDecoder=class{constructor(){_LineDecoder_instances.add(this),_LineDecoder_buffer.set(this,void 0),_LineDecoder_start.set(this,void 0),_LineDecoder_end.set(this,void 0),_LineDecoder_searchIndex.set(this,void 0),_LineDecoder_skipLeadingLF.set(this,void 0),__classPrivateFieldSet(this,_LineDecoder_buffer,new Uint8Array,"f"),__classPrivateFieldSet(this,_LineDecoder_start,0,"f"),__classPrivateFieldSet(this,_LineDecoder_end,0,"f"),__classPrivateFieldSet(this,_LineDecoder_searchIndex,0,"f"),__classPrivateFieldSet(this,_LineDecoder_skipLeadingLF,!1,"f")}decode(chunk){if(chunk==null)return[];let binaryChunk;if(chunk instanceof ArrayBuffer?binaryChunk=new Uint8Array(chunk):typeof chunk=="string"?binaryChunk=encodeUTF8(chunk):binaryChunk=chunk,binaryChunk.length===0)return[];if(__classPrivateFieldGet(this,_LineDecoder_skipLeadingLF,"f")&&(__classPrivateFieldSet(this,_LineDecoder_skipLeadingLF,!1,"f"),binaryChunk[0]===10&&(binaryChunk=binaryChunk.subarray(1)),binaryChunk.length===0))return[];__classPrivateFieldGet(this,_LineDecoder_instances,"m",_LineDecoder_append).call(this,binaryChunk);let lines=[],patternIndex;for(;(patternIndex=findNewlineIndex(__classPrivateFieldGet(this,_LineDecoder_buffer,"f"),__classPrivateFieldGet(this,_LineDecoder_searchIndex,"f"),__classPrivateFieldGet(this,_LineDecoder_end,"f")))!=null;){let line=decodeUTF8(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(__classPrivateFieldGet(this,_LineDecoder_start,"f"),patternIndex.preceding));lines.push(line),__classPrivateFieldSet(this,_LineDecoder_start,patternIndex.index,"f"),patternIndex.carriage&&(__classPrivateFieldGet(this,_LineDecoder_start,"f")<__classPrivateFieldGet(this,_LineDecoder_end,"f")&&__classPrivateFieldGet(this,_LineDecoder_buffer,"f")[__classPrivateFieldGet(this,_LineDecoder_start,"f")]===10?__classPrivateFieldSet(this,_LineDecoder_start,__classPrivateFieldGet(this,_LineDecoder_start,"f")+1,"f"):__classPrivateFieldGet(this,_LineDecoder_start,"f")===__classPrivateFieldGet(this,_LineDecoder_end,"f")&&__classPrivateFieldSet(this,_LineDecoder_skipLeadingLF,!0,"f")),__classPrivateFieldSet(this,_LineDecoder_searchIndex,__classPrivateFieldGet(this,_LineDecoder_start,"f"),"f")}if(__classPrivateFieldSet(this,_LineDecoder_searchIndex,__classPrivateFieldGet(this,_LineDecoder_end,"f"),"f"),__classPrivateFieldGet(this,_LineDecoder_start,"f")===__classPrivateFieldGet(this,_LineDecoder_end,"f"))__classPrivateFieldSet(this,_LineDecoder_start,0,"f"),__classPrivateFieldSet(this,_LineDecoder_end,0,"f"),__classPrivateFieldSet(this,_LineDecoder_searchIndex,0,"f"),__classPrivateFieldGet(this,_LineDecoder_buffer,"f").length>MAX_RETAINED_BUFFER_BYTES&&__classPrivateFieldSet(this,_LineDecoder_buffer,new Uint8Array,"f");else if(lines.length>0&&__classPrivateFieldGet(this,_LineDecoder_buffer,"f").length>MAX_RETAINED_BUFFER_BYTES){let length=__classPrivateFieldGet(this,_LineDecoder_end,"f")-__classPrivateFieldGet(this,_LineDecoder_start,"f");if(length<=MAX_RETAINED_BUFFER_BYTES||__classPrivateFieldGet(this,_LineDecoder_buffer,"f").length>length*4){let capacity=length<=MAX_RETAINED_BUFFER_BYTES?Math.min(Math.max(length*2,256),MAX_RETAINED_BUFFER_BYTES):length*2,buffer=new Uint8Array(capacity);buffer.set(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(__classPrivateFieldGet(this,_LineDecoder_start,"f"),__classPrivateFieldGet(this,_LineDecoder_end,"f"))),__classPrivateFieldSet(this,_LineDecoder_buffer,buffer,"f"),__classPrivateFieldSet(this,_LineDecoder_start,0,"f"),__classPrivateFieldSet(this,_LineDecoder_end,length,"f"),__classPrivateFieldSet(this,_LineDecoder_searchIndex,length,"f")}}return lines}flush(){return __classPrivateFieldSet(this,_LineDecoder_skipLeadingLF,!1,"f"),__classPrivateFieldGet(this,_LineDecoder_start,"f")===__classPrivateFieldGet(this,_LineDecoder_end,"f")?[]:this.decode(`
|
|
3
|
+
`)}};_LineDecoder_buffer=new WeakMap,_LineDecoder_start=new WeakMap,_LineDecoder_end=new WeakMap,_LineDecoder_searchIndex=new WeakMap,_LineDecoder_skipLeadingLF=new WeakMap,_LineDecoder_instances=new WeakSet,_LineDecoder_append=function(chunk){if(__classPrivateFieldGet(this,_LineDecoder_end,"f")+chunk.length>__classPrivateFieldGet(this,_LineDecoder_buffer,"f").length){let length=__classPrivateFieldGet(this,_LineDecoder_end,"f")-__classPrivateFieldGet(this,_LineDecoder_start,"f");if(__classPrivateFieldGet(this,_LineDecoder_start,"f")>=__classPrivateFieldGet(this,_LineDecoder_buffer,"f").length/2&&length+chunk.length<=__classPrivateFieldGet(this,_LineDecoder_buffer,"f").length)__classPrivateFieldGet(this,_LineDecoder_buffer,"f").copyWithin(0,__classPrivateFieldGet(this,_LineDecoder_start,"f"),__classPrivateFieldGet(this,_LineDecoder_end,"f"));else{let capacity=Math.max(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").length*2,length+chunk.length,256),buffer=new Uint8Array(capacity);buffer.set(__classPrivateFieldGet(this,_LineDecoder_buffer,"f").subarray(__classPrivateFieldGet(this,_LineDecoder_start,"f"),__classPrivateFieldGet(this,_LineDecoder_end,"f"))),__classPrivateFieldSet(this,_LineDecoder_buffer,buffer,"f")}__classPrivateFieldSet(this,_LineDecoder_searchIndex,__classPrivateFieldGet(this,_LineDecoder_searchIndex,"f")-__classPrivateFieldGet(this,_LineDecoder_start,"f"),"f"),__classPrivateFieldSet(this,_LineDecoder_end,length,"f"),__classPrivateFieldSet(this,_LineDecoder_start,0,"f")}__classPrivateFieldGet(this,_LineDecoder_buffer,"f").set(chunk,__classPrivateFieldGet(this,_LineDecoder_end,"f")),__classPrivateFieldSet(this,_LineDecoder_end,__classPrivateFieldGet(this,_LineDecoder_end,"f")+chunk.length,"f")};LineDecoder.NEWLINE_CHARS=new Set([`
|
|
4
|
+
`,"\r"]);LineDecoder.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function findNewlineIndex(buffer,start,end){for(let i=start;i<end;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++){let firstEndingLength=lineEndingLength(buffer,i);if(firstEndingLength>0){let secondEndingIndex=i+firstEndingLength,secondEndingLength=lineEndingLength(buffer,secondEndingIndex);if(secondEndingLength>0)return secondEndingIndex+secondEndingLength}}return-1}function lineEndingLength(buffer,index){return buffer[index]===10?1:buffer[index]===13?buffer[index+1]===10?2:1:0}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()==="x-amz-security-token"||name.toLowerCase()==="cookie"||name.toLowerCase()==="set-cookie"?"***":value]))),"retryOfRequestLogID"in details&&(details.retryOfRequestLogID&&(details.retryOf=details.retryOfRequestLogID),delete details.retryOfRequestLogID),details);var _Stream_client;function createStreamTeeQueue(){let entries=[],head=0;return{get length(){return entries.length-head},enqueue(value){entries.push(value)},dequeue(){if(head===entries.length)return;let value=entries[head];return entries[head]=void 0,head+=1,head===entries.length?(entries=[],head=0):head>=1024&&head*2>=entries.length&&(entries=entries.slice(head),head=0),value}}}var Stream=class _Stream{constructor(iterator,controller,client){_Stream_client.set(this,void 0),this.iterator=iterator,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,receivedCompletionSentinel=!1;try{for await(let sse of _iterSSEMessages(response,controller)){if(sse.data==="[DONE]"){receivedCompletionSentinel=!0;break}if(sse.event===null||!sse.event.startsWith("thread.")){let data;try{data=JSON.parse(sse.data)}catch{throw logger.error("Could not parse message into JSON:"),logger.error("From chunk:"),new SyntaxError("Error reading response: malformed server-sent event JSON.")}if(sse.event==="error")throw new APIError(void 0,data?.error??data,void 0,response.headers);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{throw logger.error("Could not parse message into JSON:"),logger.error("From chunk:"),new SyntaxError("Error reading response: malformed server-sent event JSON.")}yield{event:sse.event,data}}}done=!0}catch(e){if(receivedCompletionSentinel||isAbortError(e)||controller.signal.aborted&&e===controller.signal.reason)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,reader=readableStream.getReader(),closed=!1,cancelPromise,cancel=()=>{cancelPromise??(cancelPromise=reader.cancel()),cancelPromise.catch(()=>{})};controller.signal.addEventListener("abort",cancel,{once:!0});try{if(controller.signal.aborted){cancel();return}for(;;){let{value:chunk,done}=await reader.read();if(done){closed=!0;break}if(controller.signal.aborted)return;for(let line of lineDecoder.decode(chunk)){if(controller.signal.aborted)return;yield line}}if(controller.signal.aborted)return;for(let line of lineDecoder.flush()){if(controller.signal.aborted)return;yield line}}finally{controller.signal.removeEventListener("abort",cancel),closed||cancel(),reader.releaseLock()}}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())if(!done&&line){let data;try{data=JSON.parse(line)}catch(error){throw error instanceof SyntaxError?new SyntaxError("Error reading response: malformed newline-delimited JSON."):error}yield data}done=!0}catch(e){if(controller.signal.aborted||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=createStreamTeeQueue(),right=createStreamTeeQueue(),iterator=this.iterator(),teeIterator=queue=>({next:()=>{if(queue.length===0){let result=iterator.next();left.enqueue(result),right.enqueue(result)}return queue.dequeue()}});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 iter;return makeReadableStream({start:async()=>{iter=this[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?.()}})}};function createAbortableSSESource(body,signal){let reader=typeof body.getReader=="function"?body.getReader():void 0,source=reader?{next:()=>reader.read(),return:()=>reader.cancel()}:ReadableStreamToAsyncIterable(body)[Symbol.asyncIterator](),ended={value:void 0,done:!0},closed=!1,canceled=!1,cancellation,interrupt,waitForAbort=()=>new Promise(resolve=>{interrupt=resolve}),cancel=()=>{if(canceled||closed)return cancellation;canceled=!0;try{cancellation=Promise.resolve(source.return?.())}catch(error){cancellation=Promise.reject(error)}return cancellation.catch(()=>{}),cancellation},abort=()=>{queueMicrotask(()=>{interrupt?.(),cancel()})};return{iterator:{async next(){if(signal.aborted)return ended;let aborted=waitForAbort().then(()=>ended);try{let result=await Promise.race([source.next(),aborted]);return signal.aborted?ended:result.done?(closed=!0,ended):{value:result.value,done:!1}}catch(error){if(signal.aborted&&(isAbortError(error)||error===signal.reason))return ended;throw error}finally{interrupt=void 0}},async return(){let pending=cancel();if(pending&&!signal.aborted){let aborted=waitForAbort();try{signal.aborted||await Promise.race([pending,aborted])}finally{interrupt=void 0}}return ended},[Symbol.asyncIterator](){return this}},start(){signal.addEventListener("abort",abort,{once:!0}),signal.aborted&&abort()},async cleanup(failed){let cleanupError;try{signal.removeEventListener("abort",abort)}catch(error){cleanupError=error}if(!closed){let pending=cancel();if(pending&&!failed&&!signal.aborted)try{await pending}catch(error){cleanupError??(cleanupError=error)}}if(reader)try{reader.releaseLock()}catch(error){cleanupError??(cleanupError=error)}if(cleanupError!==void 0&&!failed&&!signal.aborted)throw cleanupError}}}async function*_iterSSEMessages(response,controller){if(!response.body)throw controller.abort(),globalThis.navigator!==void 0&&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,{signal}=controller,source=createAbortableSSESource(response.body,signal),failed=!1;try{source.start();for await(let sseChunk of iterSSEChunks(source.iterator)){if(signal.aborted)return;for(let line of lineDecoder.decode(sseChunk)){if(signal.aborted)return;let sse=sseDecoder.decode(line);sse&&(yield sse)}}if(signal.aborted)return;for(let line of lineDecoder.flush()){if(signal.aborted)return;let sse=sseDecoder.decode(line);sse&&(yield sse)}}catch(error){if(failed=!0,!signal.aborted||!isAbortError(error)&&error!==signal.reason)throw error}finally{await source.cleanup(failed)}}var DOUBLE_NEWLINE_DELIMITER_MAX_OVERLAP_BYTES=3;async function*iterSSEChunks(iterator){let data=new Uint8Array,dataStart=0,dataEnd=0,searchStartIndex=0;for await(let chunk of iterator){if(chunk==null)continue;let binaryChunk;if(chunk instanceof ArrayBuffer?binaryChunk=new Uint8Array(chunk):typeof chunk=="string"?binaryChunk=encodeUTF8(chunk):binaryChunk=chunk,dataEnd+binaryChunk.length>data.length){let bufferedLength=dataEnd-dataStart;if(dataStart>=data.length/2&&bufferedLength+binaryChunk.length<=data.length)data.copyWithin(0,dataStart,dataEnd);else{let newData=new Uint8Array(Math.max(data.length*2,bufferedLength+binaryChunk.length));newData.set(data.subarray(dataStart,dataEnd)),data=newData}searchStartIndex-=dataStart,dataStart=0,dataEnd=bufferedLength}data.set(binaryChunk,dataEnd),dataEnd+=binaryChunk.length;let patternIndex;for(;(patternIndex=findDoubleNewlineIndex(data.subarray(searchStartIndex,dataEnd)))!==-1;)patternIndex+=searchStartIndex,yield data.slice(dataStart,patternIndex),dataStart=patternIndex,searchStartIndex=dataStart;searchStartIndex=Math.max(dataStart,dataEnd-DOUBLE_NEWLINE_DELIMITER_MAX_OVERLAP_BYTES)}dataEnd>dataStart&&(yield data.slice(dataStart,dataEnd))}var SSEDecoder=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(line){if(line.endsWith("\r")&&(line=line.slice(0,-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,,initialValue]=partition(line,":"),value=initialValue;return value.startsWith(" ")&&(value=value.slice(1)),fieldname==="event"?this.event=value:fieldname==="data"&&this.data.push(value),null}};function partition(str,delimiter){let index=str.indexOf(delimiter);return index!==-1?[str.slice(0,index),delimiter,str.slice(index+delimiter.length)]:[str,"",""]}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 bodyText=await response.text();if(!bodyText)return;let json=JSON.parse(bodyText);return addRequestID(json,response)}return await response.text()})().catch(error=>{throw asAbortError(error,props.controller.signal)});return loggerFor(client).debug(`[${requestLogID}] response parsed`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,body,durationMs:Date.now()-startTime})),body}function asAbortError(error,signal){if(!signal.aborted||error!==signal.reason||isAbortError(error))return error;let message="This operation was aborted",DOMExceptionConstructor=globalThis.DOMException;return typeof DOMExceptionConstructor=="function"?new DOMExceptionConstructor(message,"AbortError"):Object.assign(new Error(message),{name:"AbortError"})}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 VERSION="7.7.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());var jsonRequestBodyObservers=new WeakMap;function observeJSONRequestBody(body,observer){let observers=jsonRequestBodyObservers.get(body);return observers||(observers=new Set,jsonRequestBodyObservers.set(body,observers)),observers.add(observer),()=>{let active=jsonRequestBodyObservers.get(body);active&&(active.delete(observer),active.size===0&&jsonRequestBodyObservers.delete(body))}}var FallbackEncoder=({headers,body})=>{let observers=typeof body=="object"&&body!==null?jsonRequestBodyObservers.get(body):void 0,encoded;if(!observers||observers.size===0)encoded=JSON.stringify(body);else{let active=[...observers];encoded=JSON.stringify(body,function(key,value){let observed=value;for(let observer of active){let replacement=observer.value(this,key,observed);replacement!==void 0&&(observed=replacement)}return observed});for(let observer of active)observer.complete()}return{bodyHeaders:{"content-type":"application/json"},body:encoded}};var default_format="RFC3986",default_formatter=String,formatters={RFC1738:v=>String(v).replace(/%20/g,"+"),RFC3986:default_formatter},RFC1738="RFC1738";var cachedHas,has=(obj,key)=>{let resolvedHas=cachedHas??Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty);return cachedHas=resolvedHas,resolvedHas(obj,key)};var 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=(str,_defaultEncoder,charset,_kind,format)=>{if(str.length===0)return str;let string=str;if(typeof str=="symbol"?string=Symbol.prototype.toString.call(str):typeof str!="string"&&(string=String(str)),charset==="iso-8859-1")return escape(string).replace(/%u[0-9a-f]{4}/gi,$0=>"%26%23"+Number.parseInt($0.slice(2),16)+"%3B");let out="";for(let j=0;j<string.length;){let segmentEnd=Math.min((Math.floor(j/limit)+1)*limit,string.length);segmentEnd<string.length&&string.codePointAt(segmentEnd-1)>65535&&(segmentEnd+=1);let segment=string.length>=limit?string.slice(j,segmentEnd):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(""),j=segmentEnd}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 item of val)mapped.push(fn(item));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,pos!==void 0){if(pos===step)throw new RangeError("Cyclic object value");find_flag=!0}tmp_sc.get(sentinel)===void 0&&(step=0)}if(typeof filter=="function"?obj=filter(prefix,obj):obj instanceof Date?obj=serializeDate?.(obj):generateArrayPrefix==="comma"&&isArray(obj)&&(obj=maybe_map(obj,value=>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(obj===void 0)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);sort&&keys.sort(sort),obj_keys=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 key of obj_keys){let value=typeof key=="object"&&key.value!==void 0?key.value:obj[key];if(skipNulls&&value===null)continue;let encoded_key=allowDots&&encodeDotInKeys?key.replace(/\./g,"%2E"):key,key_prefix;isArray(obj)?key_prefix=typeof generateArrayPrefix=="function"?generateArrayPrefix(adjusted_prefix,encoded_key):adjusted_prefix:key_prefix=adjusted_prefix+(allowDots?"."+encoded_key:"["+encoded_key+"]"),sideChannel.set(object,step);let valueSideChannel=new WeakMap([[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(opts.allowEmptyArrays!==void 0&&typeof opts.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(opts.encodeDotInKeys!==void 0&&typeof opts.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(opts.encoder!==null&&opts.encoder!==void 0&&typeof opts.encoder!="function")throw new TypeError("Encoder has to be a function.");let charset=opts.charset||defaults.charset;if(opts.charset!==void 0&&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(opts.format!==void 0){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;return opts.allowDots===void 0?allowDots=opts.encodeDotInKeys?!0:defaults.allowDots:allowDots=!!opts.allowDots,{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:opts.delimiter===void 0?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 key of obj_keys)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&&(prefix+=options.charset==="iso-8859-1"?"utf8=%26%2310003%3B&":"utf8=%E2%9C%93&"),joined.length>0?prefix+joined:""}function stringifyQuery(query){return stringify(query,{arrayFormat:"brackets"})}var endpoints=new Map([["global","https://api.openai.com/v1"],["us","https://us.api.openai.com/v1"],["eu","https://eu.api.openai.com/v1"],["ae","https://ae.api.openai.com/v1"]]);function resolveDataResidency(options){if(options.dataResidency===null||options.dataResidency===void 0)return;if(hasOwn(options,"baseURL"))throw new OpenAIError("The `dataResidency` and `baseURL` options are mutually exclusive.");let endpoint=endpoints.get(options.dataResidency);if(endpoint===void 0)throw new OpenAIError("Invalid `dataResidency`; expected one of: global, us, eu, ae.");return endpoint}function assertNoDataResidency(dataResidency,clientName){if(dataResidency!=null)throw new OpenAIError(`${clientName} does not support \`dataResidency\`.`)}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",NATIVE_RESPONSE_PROTOTYPE=Response.prototype,READ_NATIVE_RESPONSE_BODY=NATIVE_RESPONSE_PROTOTYPE.arrayBuffer;function isResponsePrototype(response,prototype){let constructor=Object.getOwnPropertyDescriptor(prototype,"constructor")?.value;if(prototype===response||typeof constructor!="function"||Object.getOwnPropertyDescriptor(constructor,"name")?.value!=="Response"||Object.getOwnPropertyDescriptor(constructor,"prototype")?.value!==prototype)return!1;let tag=Object.getOwnPropertyDescriptor(prototype,Symbol.toStringTag);return(tag?.value==="Response"||typeof tag?.get=="function")&&typeof Object.getOwnPropertyDescriptor(prototype,"headers")?.get=="function"&&typeof Object.getOwnPropertyDescriptor(prototype,"ok")?.get=="function"&&typeof Object.getOwnPropertyDescriptor(prototype,"status")?.get=="function"}function isResponseBodyPrototype(prototype,responsePrototype){if(prototype===responsePrototype)return!0;let constructor=Object.getOwnPropertyDescriptor(prototype,"constructor")?.value;return responsePrototype!==null&&Object.getPrototypeOf(responsePrototype)===prototype&&typeof constructor=="function"&&Object.getOwnPropertyDescriptor(constructor,"name")?.value==="Body"&&Object.getOwnPropertyDescriptor(constructor,"prototype")?.value===prototype}function decodeNativeResponseBody(body){let scope=globalThis;return new TextDecoder("utf-8",{ignoreBOM:typeof scope.Bun?.version=="string"}).decode(body)}async function parseOAuthTokenResponse(response){let readText,responsePrototype=null;for(let depth=0,prototype=response;prototype!==null&&depth<16&&prototype!==NATIVE_RESPONSE_PROTOTYPE;prototype=Object.getPrototypeOf(prototype),depth+=1){isResponsePrototype(response,prototype)&&(responsePrototype=prototype);let parser=Object.getOwnPropertyDescriptor(prototype,"json");if(!parser)continue;if(typeof parser.value!="function")break;let bodyReader=Object.getOwnPropertyDescriptor(prototype,"text")?.value;if(typeof bodyReader=="function"&&isResponseBodyPrototype(prototype,responsePrototype)){readText=bodyReader;break}return parser.value.call(response)}let body=readText===void 0?decodeNativeResponseBody(await READ_NATIVE_RESPONSE_BODY.call(response)):await readText.call(response);try{return JSON.parse(body)}catch{throw new SyntaxError("Token exchange response contains invalid JSON")}}function isUnsafeAccessToken(accessToken){return typeof globalThis.Bun?.version=="string"?/[^\t\u0020-\u007E]|^[\t ]|[\t ]$/u.test(accessToken):/[^\t\u0020-\u007E\u0080-\u00FF]|^[\t ]|[\t ]$/u.test(accessToken)}var WorkloadIdentityAuth=class _WorkloadIdentityAuth{constructor(config,fetch2){this.cachedToken=null,this.refreshPromise=null,this.tokenGeneration=0,this.tokenExchangeUrl="https://auth.openai.com/oauth/token",this.config=config,this.fetch=fetch2??getDefaultFetch()}async getToken(){if(!this.cachedToken||_WorkloadIdentityAuth.isTokenExpired(this.cachedToken)){if(this.refreshPromise)return await this.refreshPromise;let refreshPromise=this.refreshToken(this.tokenGeneration);this.refreshPromise=refreshPromise;try{return await refreshPromise}finally{this.refreshPromise===refreshPromise&&(this.refreshPromise=null)}}if(this.needsRefresh(this.cachedToken)&&!this.refreshPromise){let refreshPromise=this.refreshToken(this.tokenGeneration).finally(()=>{this.refreshPromise===refreshPromise&&(this.refreshPromise=null)});this.refreshPromise=refreshPromise,refreshPromise.catch(()=>null)}return this.cachedToken.token}async refreshToken(generation){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),redirect:"manual"});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 parseOAuthTokenResponse(response),accessToken=typeof tokenResponse=="object"&&tokenResponse!==null&&"access_token"in tokenResponse?tokenResponse.access_token:void 0;if(typeof accessToken!="string"||accessToken.trim().length===0||isUnsafeAccessToken(accessToken))throw new OpenAIError("Token exchange response missing 'access_token' field");let expiresIn=tokenResponse.expires_in??3600;if(typeof expiresIn!="number"||!Number.isFinite(expiresIn)||expiresIn<=0)throw new OpenAIError("Token exchange response has invalid 'expires_in' field");let now=Date.now(),expiresAt=now+expiresIn*1e3;if(!Number.isSafeInteger(expiresAt)||expiresAt<=now)throw new OpenAIError("Token exchange response has invalid 'expires_in' field");return this.tokenGeneration===generation&&(this.cachedToken={token:accessToken,expiresAt}),accessToken}static isTokenExpired(cachedToken){return Date.now()>=cachedToken.expiresAt}needsRefresh(cachedToken){let bufferMs=(this.config.refreshBufferSeconds??1200)*1e3;return Date.now()>=cachedToken.expiresAt-bufferMs}invalidateToken(){this.tokenGeneration+=1,this.cachedToken=null,this.refreshPromise=null}};var brand_privateNullableHeaders=Symbol("brand.privateNullableHeaders"),httpTokenHeaderName=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;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)){if(!httpTokenHeaderName.test(name))throw new TypeError(`Header name must be a valid HTTP token ["${name}"]`);let lowerName=name.toLowerCase();seenHeaders.has(lowerName)||(targetHeaders.delete(lowerName),seenHeaders.add(lowerName)),value===null?(targetHeaders.delete(lowerName),nullHeaders.add(lowerName)):(targetHeaders.append(lowerName,value),nullHeaders.delete(lowerName))}}return{[brand_privateNullableHeaders]:!0,values:targetHeaders,nulls:nullHeaders}};var import_x509_transport_state=__toESM(require_x509_transport_state(),1);function resolveX509Transport(value){if(!value||typeof value!="object")throw new OpenAIError("X.509 workload identity requires an approved X.509 transport capability.");let registered=(0,import_x509_transport_state.findRegisteredX509Transport)(value);if(!registered)throw new OpenAIError("X.509 workload identity requires an approved X.509 transport capability.");return registered}var import_x509_transport_state2=__toESM(require_x509_transport_state(),1),_X509WorkloadIdentityAuth_instances,_a,_X509WorkloadIdentityAuth_identityProviderId,_X509WorkloadIdentityAuth_serviceAccountId,_X509WorkloadIdentityAuth_configuredRefreshBufferMs,_X509WorkloadIdentityAuth_organization,_X509WorkloadIdentityAuth_project,_X509WorkloadIdentityAuth_transport,_X509WorkloadIdentityAuth_refreshBufferMs,_X509WorkloadIdentityAuth_cachedToken,_X509WorkloadIdentityAuth_refresh,_X509WorkloadIdentityAuth_tokenGeneration,_X509WorkloadIdentityAuth_cancelRequestBody,_X509WorkloadIdentityAuth_assignToken,_X509WorkloadIdentityAuth_recoverRefreshFailure,_X509WorkloadIdentityAuth_fallbackToken,_X509WorkloadIdentityAuth_retireRefresh,_X509WorkloadIdentityAuth_beginRefresh,_X509WorkloadIdentityAuth_refreshToken,_X509WorkloadIdentityAuth_preflight,_X509WorkloadIdentityAuth_scope,_X509WorkloadIdentityAuth_assertTenantHeaders,X509_API_BASE_URL="https://mtls.api.openai.com/v1",X509_API_ORIGIN="https://mtls.api.openai.com",FORBIDDEN_TRANSPORT_OPTIONS=["dispatcher","agent","client","tls","proxy"],headerValue=(headers,name)=>Headers.prototype.get.call(headers,name),DEFAULT_REFRESH_BUFFER_MS=1200*1e3,FAILED_REFRESH_COOLDOWN_MS=1e3,userAbortError=signal=>{let error=new APIUserAbortError;return Object.defineProperty(error,"cause",{value:signal.reason,writable:!0,configurable:!0}),error};function assertSafeHeaders(headers){for(let name of Headers.prototype.keys.call(headers)){let canonical=name.toLowerCase().split("_").join("-");if(canonical==="api-key"||canonical==="x-api-key"||canonical==="proxy-authorization"||canonical==="host")throw new OpenAIError("X.509 workload identity cannot send conflicting authentication credentials.")}}function exchangeDeadline(timeout,callerSignal){let deadline=new AbortController,timer=timeout===void 0?void 0:setTimeout(()=>deadline.abort(new APIConnectionTimeoutError),timeout),timerHandle=timer;typeof timerHandle=="object"&&timerHandle!==null&&"unref"in timerHandle&&typeof timerHandle.unref=="function"&&timerHandle.unref();let cancel=()=>deadline.abort(callerSignal?.reason);return callerSignal?.addEventListener("abort",cancel,{once:!0}),callerSignal?.aborted&&cancel(),{signal:deadline.signal,dispose:()=>{callerSignal?.removeEventListener("abort",cancel),timer&&clearTimeout(timer)}}}function waitForRefresh(attempt,signal){let abort,canceled=new Promise((_resolve,reject)=>{abort=()=>reject(signal.reason),signal.addEventListener("abort",abort,{once:!0}),signal.aborted&&abort()});return{result:Promise.race([attempt.promise,canceled]),dispose:()=>{abort&&signal.removeEventListener("abort",abort)}}}function isX509WorkloadIdentity(identity){if(!identity||typeof identity!="object")return!1;let providerOwner=identity;for(;providerOwner!==null&&providerOwner!==Object.prototype;){let provider=Object.getOwnPropertyDescriptor(providerOwner,"provider");if(provider){if(!("value"in provider)||provider.value!==void 0)return!1;break}providerOwner=Object.getPrototypeOf(providerOwner)}let current=identity;for(;current!==null&¤t!==Object.prototype;){let discriminator=Object.getOwnPropertyDescriptor(current,"type");if(discriminator){if(!("value"in discriminator))throw new OpenAIError("X.509 workload identity type must be a plain data property.");return discriminator.value==="x509"}current=Object.getPrototypeOf(current)}return!1}function assertX509APIOrigin(value){let target;try{target=new URL(value)}catch{throw new OpenAIError("X.509 workload identity requires the approved global mTLS API origin.")}if(target.origin!==X509_API_ORIGIN||target.username||target.password)throw new OpenAIError("X.509 workload identity requires the approved global mTLS API origin.");return target}function assertX509FetchOptions(options){if(!options)return;for(let name of FORBIDDEN_TRANSPORT_OPTIONS)if(hasOwn(options,name))throw new OpenAIError("X.509 workload identity cannot override its approved transport capability.");let redirect=Object.getOwnPropertyDescriptor(options,"redirect")?.value;if(redirect!==void 0&&redirect!=="manual")throw new OpenAIError("X.509 workload identity requests require manual redirects.")}function assertX509RequestOptions(options){if(assertX509FetchOptions(options),options&&["body","headers","method","signal"].some(name=>hasOwn(options,name)))throw new OpenAIError("X.509 workload identity cannot override its request body, headers, method, or signal through fetch options.")}function snapshotX509RequestOptions(options){assertX509RequestOptions(options);let snapshot={...options};return assertX509RequestOptions(snapshot),snapshot}var X509WorkloadIdentityAuth=class{constructor(identity,transport,organization,project){if(_X509WorkloadIdentityAuth_instances.add(this),_X509WorkloadIdentityAuth_identityProviderId.set(this,void 0),_X509WorkloadIdentityAuth_serviceAccountId.set(this,void 0),_X509WorkloadIdentityAuth_configuredRefreshBufferMs.set(this,void 0),_X509WorkloadIdentityAuth_organization.set(this,void 0),_X509WorkloadIdentityAuth_project.set(this,void 0),_X509WorkloadIdentityAuth_transport.set(this,void 0),_X509WorkloadIdentityAuth_refreshBufferMs.set(this,void 0),_X509WorkloadIdentityAuth_cachedToken.set(this,void 0),_X509WorkloadIdentityAuth_refresh.set(this,void 0),_X509WorkloadIdentityAuth_tokenGeneration.set(this,0),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_transport,resolveX509Transport(transport),"f"),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_identityProviderId,identity.identityProviderId,"f"),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_serviceAccountId,identity.serviceAccountId,"f"),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_configuredRefreshBufferMs,identity.refreshBufferMs,"f"),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_organization,organization,"f"),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_project,project,"f"),__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_configuredRefreshBufferMs,"f")!==void 0&&(!Number.isSafeInteger(__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_configuredRefreshBufferMs,"f"))||__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_configuredRefreshBufferMs,"f")<0))throw new OpenAIError("X.509 workload identity requires a nonnegative integer refreshBufferMs.");__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_refreshBufferMs,__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_configuredRefreshBufferMs,"f")??DEFAULT_REFRESH_BUFFER_MS,"f")}identitySnapshot(){return{type:"x509",identityProviderId:__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_identityProviderId,"f"),serviceAccountId:__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_serviceAccountId,"f"),...__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_configuredRefreshBufferMs,"f")===void 0?{}:{refreshBufferMs:__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_configuredRefreshBufferMs,"f")}}}static shouldAuthenticate(options,defaultHeaders,requestHeaders=options.headers){return!buildHeaders([defaultHeaders,requestHeaders]).nulls.has("authorization")}snapshotHeaders(defaultHeaders,requestHeaders){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);return scope.defaultHeaders??(scope.defaultHeaders=buildHeaders([defaultHeaders])),scope.requestHeaders??(scope.requestHeaders=buildHeaders([requestHeaders])),this.headerSnapshots()}headerSnapshots(){let{defaultHeaders,requestHeaders}=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);if(!defaultHeaders||!requestHeaders)throw new OpenAIError("X.509 workload identity requires snapshotted request headers.");return{defaultHeaders,requestHeaders}}snapshotTenant(organization,project){if(organization!==__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_organization,"f")||project!==__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_project,"f"))throw new OpenAIError("X.509 workload identity cannot override its enrolled organization or project.");let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);return scope.tenant={organization,project},scope.tenant}tenantSnapshot(){let{tenant}=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);if(!tenant)throw new OpenAIError("X.509 workload identity requires snapshotted tenant selectors.");return tenant}snapshotAPIURL(value){assertX509APIOrigin(value),__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this).apiURL=value}requestAPIURL(){let{apiURL}=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);if(apiURL===void 0)throw new OpenAIError("X.509 workload identity requires a snapshotted API destination.");return apiURL}snapshotRequest(signal,timeout,fetchOptions){var _b;(_b=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this)).request??(_b.request={signal,timeout,fetchOptions})}requestSnapshot(){let{request}=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);if(!request)throw new OpenAIError("X.509 workload identity requires snapshotted request settings.");return request}beginRequestPlanning(){__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this).phase="planning"}beginRequestNetwork(){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);scope.deadlineArmed||(scope.wallStartedAt=Date.now(),scope.monotonicStartedAt=performance.now(),scope.deadlineArmed=!0)}isPlanningRequest(){return __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this).phase==="planning"}authorizePlannedRequest(url,request,timeout,allowHookSignal=!1){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this),headers=Object.getOwnPropertyDescriptor(request,"headers"),body=Object.getOwnPropertyDescriptor(request,"body"),signal=Object.getOwnPropertyDescriptor(request,"signal"),redirect=Object.getOwnPropertyDescriptor(request,"redirect");if(scope.phase!=="planning"||!headers||!(headers.value instanceof Headers)||!body&&"body"in request||[body,signal,redirect].some(descriptor=>descriptor&&!("value"in descriptor)))throw new OpenAIError("X.509 workload identity requires an approved final request.");this.snapshotAPIURL(url),assertX509FetchOptions(request);try{assertSafeHeaders(headers.value)}catch{throw new OpenAIError("X.509 workload identity cannot use caller-supplied authentication credentials.")}if(headerValue(headers.value,"Authorization")!==null)throw new OpenAIError("X.509 workload identity cannot use caller-supplied authorization credentials.");if(__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_assertTenantHeaders).call(this,headers.value),!allowHookSignal&&(signal?.value??void 0)!==(this.requestSnapshot().signal??void 0))throw new OpenAIError("X.509 workload identity must preserve its approved request signal.");let approved=this.requestSnapshot();scope.request={...approved,timeout:Math.min(approved.timeout,timeout)},scope.phase="authorizing"}ownRequestBody(body,source){body instanceof ReadableStream&&body!==source&&(__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this).materializedBody=body)}static isStreamingRequestBody(body){return globalThis.ReadableStream!==void 0&&body instanceof globalThis.ReadableStream||typeof body=="object"&&body!==null&&(Symbol.asyncIterator in body||Symbol.iterator in body&&"next"in body&&typeof body.next=="function")}retireRequestBody(){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this),body=scope.materializedBody;delete scope.materializedBody,body&&__classPrivateFieldGet(_a,_a,"m",_X509WorkloadIdentityAuth_cancelRequestBody).call(_a,body)}releaseRequestBody(body){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);scope.materializedBody===body?delete scope.materializedBody:this.retireRequestBody()}setEffectiveSignal(signal){signal?__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this).effectiveSignal=signal:delete __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this).effectiveSignal}effectiveSignal(){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);return scope.effectiveSignal??scope.request?.signal}runRequest(operation,requestOwner){return __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").run(async()=>{let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").current();if(!scope)throw new OpenAIError("X.509 workload identity requires an active certificate request scope.");scope.owner=this,scope.requestOwner=requestOwner;try{return await operation()}finally{this.retireRequestBody(),this.releaseRequestCredentials(),delete scope.requestOwner,delete scope.owner}})}inRequest(requestOwner){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").current();return scope?.owner===this&&scope.requestOwner===requestOwner&&scope.phase!=="authorizing"}matches(other){return __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f")===__classPrivateFieldGet(other,_X509WorkloadIdentityAuth_transport,"f")&&__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_identityProviderId,"f")===__classPrivateFieldGet(other,_X509WorkloadIdentityAuth_identityProviderId,"f")&&__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_serviceAccountId,"f")===__classPrivateFieldGet(other,_X509WorkloadIdentityAuth_serviceAccountId,"f")&&__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_organization,"f")===__classPrivateFieldGet(other,_X509WorkloadIdentityAuth_organization,"f")&&__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_project,"f")===__classPrivateFieldGet(other,_X509WorkloadIdentityAuth_project,"f")&&__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refreshBufferMs,"f")===__classPrivateFieldGet(other,_X509WorkloadIdentityAuth_refreshBufferMs,"f")}continuation(){let{wallStartedAt,monotonicStartedAt,deadlineArmed,request,requestOwner,effectiveSignal}=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this),scope={wallStartedAt,monotonicStartedAt,owner:this,...deadlineArmed?{deadlineArmed}:{},...request?{request}:{},...effectiveSignal?{effectiveSignal}:{},...requestOwner?{requestOwner}:{}};return operation=>__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").resume(scope,async()=>{try{return await operation()}finally{this.releaseRequestCredentials(),delete scope.requestOwner,delete scope.owner}})}releaseRequestCredentials(){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this);delete scope.request,delete scope.phase,delete scope.deadlineArmed,delete scope.effectiveSignal,delete scope.materializedBody,delete scope.apiURL,delete scope.tenant,delete scope.token,delete scope.defaultHeaders,delete scope.requestHeaders,delete scope.tokenGeneration,delete scope.headers,delete scope.authorization}requestStartedAt(_options){return __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").current()?.wallStartedAt}usedWorkloadToken(_options){return __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").current()?.token!==void 0}remainingTimeout(_options,timeout){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").current();if(scope===void 0)return timeout;let remaining=timeout-(performance.now()-scope.monotonicStartedAt);if(remaining<=0)throw new APIConnectionTimeoutError;return remaining}async waitForRetry(duration,signal){try{await __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").sleep(duration,signal)}catch(error){throw signal?.aborted?userAbortError(signal):error}}static isRetryableFailure(error){return typeof error=="object"&&error!==null&&((0,import_x509_transport_state2.isTransientX509ConnectionError)(error)||(0,import_x509_transport_state2.isRetryableX509IssuerError)(error))}static retryHeaders(error){if(!error||typeof error!="object"||!(0,import_x509_transport_state2.isRetryableX509IssuerError)(error))return;let headers=Object.getOwnPropertyDescriptor(error,"headers")?.value;return headers instanceof Headers?headers:void 0}async getToken(options,context){let callerSignal=context?context.signal:options?.signal;if(callerSignal?.aborted)throw userAbortError(callerSignal);options&&assertX509RequestOptions(context?context.fetchOptions:options.fetchOptions),__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_preflight).call(this,context);let scope=options?__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this):void 0,cached=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_cachedToken,"f");if(cached&&performance.now()<cached.refreshAt&&Date.now()<cached.wallRefreshAt)return __classPrivateFieldGet(_a,_a,"m",_X509WorkloadIdentityAuth_assignToken).call(_a,scope,cached);let remaining=context&&options?this.remainingTimeout(options,context.timeout):context?.timeout,{signal,dispose}=exchangeDeadline(remaining,callerSignal);if(callerSignal?.aborted)throw dispose(),userAbortError(callerSignal);let attempt=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refresh,"f")??__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_beginRefresh).call(this);attempt.waiters+=1;let waiter=waitForRefresh(attempt,signal);try{let exchanged=await waiter.result,refreshed=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_cachedToken,"f");if(!refreshed||refreshed.accessToken!==exchanged.accessToken)throw new APIUserAbortError;return __classPrivateFieldGet(_a,_a,"m",_X509WorkloadIdentityAuth_assignToken).call(_a,scope,refreshed)}catch(error){return await __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_recoverRefreshFailure).call(this,error,attempt,cached,scope,options,context)}finally{waiter.dispose(),dispose(),attempt.waiters-=1,__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_retireRefresh).call(this,attempt)}}invalidateToken(){let rejected=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").current();if(!rejected?.token||__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_cachedToken,"f")?.accessToken!==rejected.token||__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_cachedToken,"f").generation!==rejected.tokenGeneration)return;__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_tokenGeneration,__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_tokenGeneration,"f")+1,"f"),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_cachedToken,void 0,"f");let refresh=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refresh,"f");__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_refresh,void 0,"f"),refresh?.controller.abort(new APIUserAbortError)}bindRequest(options,request,adminAPIKey){if(!(request.headers instanceof Headers))throw new OpenAIError("X.509 workload identity requires the original workload authorization headers.");let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this),{token}=scope,security=options.__security??{bearerAuth:!0},approvedAuthorization=token?`Bearer ${token}`:null;!token&&security.adminAPIKeyAuth&&adminAPIKey!==null&&headerValue(request.headers,"Authorization")!==null&&(approvedAuthorization=new Headers({Authorization:`Bearer ${adminAPIKey}`}).get("Authorization")),scope.headers=request.headers,scope.authorization=approvedAuthorization,this.assertRequest(request)}adoptRequestHeaders(request){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_scope).call(this),original=scope.headers;if(!(original instanceof Headers)||!(request.headers instanceof Headers))throw new OpenAIError("X.509 workload identity must preserve its issued workload authorization.");scope.headers=request.headers;try{this.assertRequest(request)}catch(error){throw scope.headers=original,error}}assertRequest(request){let{headers}=request;if(!(headers instanceof Headers))throw new OpenAIError("X.509 workload identity must preserve its issued workload authorization.");let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").current();if(!scope||scope.headers!==headers||scope.authorization===void 0||headerValue(headers,"Authorization")!==scope.authorization)throw new OpenAIError("X.509 workload identity must preserve its issued workload authorization.");__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_assertTenantHeaders).call(this,headers),assertSafeHeaders(headers)}fetch(){return async(input,init={})=>{let target=assertX509APIOrigin(typeof input=="string"||input instanceof URL?input:input.url);assertX509FetchOptions(init),this.assertRequest(init);let approved=init.headers;if(!(approved instanceof Headers))throw new OpenAIError("X.509 workload identity must preserve its issued workload authorization.");let headers=new Headers([...Headers.prototype.entries.call(approved)]);return assertSafeHeaders(headers),init.headers=headers,init.redirect="manual",await __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").dispatch(target,init)}}};_a=X509WorkloadIdentityAuth,_X509WorkloadIdentityAuth_identityProviderId=new WeakMap,_X509WorkloadIdentityAuth_serviceAccountId=new WeakMap,_X509WorkloadIdentityAuth_configuredRefreshBufferMs=new WeakMap,_X509WorkloadIdentityAuth_organization=new WeakMap,_X509WorkloadIdentityAuth_project=new WeakMap,_X509WorkloadIdentityAuth_transport=new WeakMap,_X509WorkloadIdentityAuth_refreshBufferMs=new WeakMap,_X509WorkloadIdentityAuth_cachedToken=new WeakMap,_X509WorkloadIdentityAuth_refresh=new WeakMap,_X509WorkloadIdentityAuth_tokenGeneration=new WeakMap,_X509WorkloadIdentityAuth_instances=new WeakSet,_X509WorkloadIdentityAuth_cancelRequestBody=async function(body){try{await CancelReadableStream(body)}catch{}},_X509WorkloadIdentityAuth_assignToken=function(scope,token){return scope&&(scope.token=token.accessToken,scope.tokenGeneration=token.generation),token.accessToken},_X509WorkloadIdentityAuth_recoverRefreshFailure=async function(error,attempt,cached,scope,options,context){let callerSignal=context?context.signal:options?.signal;if(callerSignal?.aborted)throw userAbortError(callerSignal);if(attempt.controller.signal.aborted&&attempt.generation!==__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_tokenGeneration,"f"))return await this.getToken(options,context);let fallback=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_fallbackToken).call(this,error,cached,scope);if(fallback!==void 0)return fallback;if(error&&typeof error=="object"&&!(error instanceof OAuthError)){let oauth=(0,import_x509_transport_state2.findX509OAuthError)(error);if(oauth)throw new OAuthError(oauth.status,oauth.error,oauth.headers)}throw error},_X509WorkloadIdentityAuth_fallbackToken=function(error,cached,scope){if(!cached||cached!==__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_cachedToken,"f")||performance.now()>=cached.expiresAt||Date.now()>=cached.wallExpiresAt||!_a.isRetryableFailure(error))return;let headers=_a.retryHeaders(error),milliseconds=headers?.get("retry-after-ms"),requested=milliseconds?Number(milliseconds):void 0,retryAfter=headers?.get("retry-after");if(retryAfter&&(requested===void 0||Number.isNaN(requested))){let seconds=Number(retryAfter);requested=Number.isNaN(seconds)?Date.parse(retryAfter)-Date.now():seconds*1e3}let cooldown=requested!==void 0&&Number.isFinite(requested)&&requested>=0&&requested<=6e4?Math.max(FAILED_REFRESH_COOLDOWN_MS,requested):FAILED_REFRESH_COOLDOWN_MS;return cached.refreshAt=Math.min(cached.expiresAt,performance.now()+cooldown),cached.wallRefreshAt=Math.min(cached.wallExpiresAt,Date.now()+cooldown),__classPrivateFieldGet(_a,_a,"m",_X509WorkloadIdentityAuth_assignToken).call(_a,scope,cached)},_X509WorkloadIdentityAuth_retireRefresh=function(attempt){attempt.waiters!==0||__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refresh,"f")!==attempt||queueMicrotask(()=>{attempt.waiters===0&&__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refresh,"f")===attempt&&(__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_refresh,void 0,"f"),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_tokenGeneration,__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_tokenGeneration,"f")+1,"f"),attempt.controller.abort(new APIUserAbortError))})},_X509WorkloadIdentityAuth_beginRefresh=function(){let controller=new AbortController,generation=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_tokenGeneration,"f"),attempt={controller,generation,waiters:0,promise:__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_instances,"m",_X509WorkloadIdentityAuth_refreshToken).call(this,controller,generation)};return __classPrivateFieldSet(this,_X509WorkloadIdentityAuth_refresh,attempt,"f"),attempt},_X509WorkloadIdentityAuth_refreshToken=async function(controller,generation){let startedAt=performance.now(),wallStartedAt=Date.now();try{let token=await __classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").exchange(__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_identityProviderId,"f"),__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_serviceAccountId,"f"),controller.signal),lifetime=token.expiresIn*1e3,expiresAt=startedAt+lifetime,wallExpiresAt=wallStartedAt+lifetime;if(performance.now()>=expiresAt||Date.now()>=wallExpiresAt)throw new OpenAIError("X.509 workload identity token expired before its exchange completed.");if(__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_tokenGeneration,"f")!==generation||controller.signal.aborted||__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refresh,"f")?.controller!==controller)throw new APIUserAbortError;return __classPrivateFieldSet(this,_X509WorkloadIdentityAuth_tokenGeneration,__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_tokenGeneration,"f")+1,"f"),__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_cachedToken,{accessToken:token.accessToken,generation:__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_tokenGeneration,"f"),expiresAt,refreshAt:expiresAt-Math.min(__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refreshBufferMs,"f"),lifetime/2),wallExpiresAt,wallRefreshAt:wallExpiresAt-Math.min(__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refreshBufferMs,"f"),lifetime/2)},"f"),token}finally{__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_refresh,"f")?.controller===controller&&__classPrivateFieldSet(this,_X509WorkloadIdentityAuth_refresh,void 0,"f")}},_X509WorkloadIdentityAuth_preflight=function(context){if(!context)return;if(context.organization!==__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_organization,"f")||context.project!==__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_project,"f"))throw new OpenAIError("X.509 workload identity cannot override its enrolled organization or project.");assertX509APIOrigin(context.apiURL);let supplied=buildHeaders([context.defaultHeaders,context.requestHeaders]);if(__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_organization,"f")!==null&&supplied.nulls.has("openai-organization")||__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_project,"f")!==null&&supplied.nulls.has("openai-project"))throw new OpenAIError("X.509 workload identity cannot omit its enrolled organization or project.");for(let name of supplied.values.keys()){let canonical=name.toLowerCase().split("_").join("-");if((canonical==="openai-organization"||canonical==="openai-project")&&(name!==canonical||headerValue(supplied.values,name)!==(canonical==="openai-organization"?context.organization:context.project)))throw new OpenAIError("X.509 workload identity cannot override its enrolled organization or project.");if(canonical==="authorization"||canonical==="api-key"||canonical==="x-api-key"||canonical==="proxy-authorization"||canonical==="host")throw new OpenAIError("X.509 workload identity cannot use caller-supplied authentication credentials.")}},_X509WorkloadIdentityAuth_scope=function(){let scope=__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_transport,"f").current();if(!scope||scope.owner!==this)throw new OpenAIError("X.509 workload identity requires an active certificate request scope.");return scope},_X509WorkloadIdentityAuth_assertTenantHeaders=function(headers){if(headerValue(headers,"OpenAI-Organization")!==__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_organization,"f")||headerValue(headers,"OpenAI-Project")!==__classPrivateFieldGet(this,_X509WorkloadIdentityAuth_project,"f"))throw new OpenAIError("X.509 workload identity cannot override its enrolled organization or project.");for(let name of Headers.prototype.keys.call(headers)){let canonical=name.toLowerCase().split("_").join("-");if((canonical==="openai-organization"||canonical==="openai-project")&&name!==canonical)throw new OpenAIError("X.509 workload identity cannot override its enrolled organization or project.")}};var import_x509_transport_state3=__toESM(require_x509_transport_state(),1);var brand_privateStreamingFile=Symbol("brand.privateStreamingFile");function toStreamingFile(data,name,options){if(typeof name!="string"||!name)throw new TypeError("toStreamingFile requires a non-empty file name");let type=options?.type;return type&&validateStreamingFileType(type),{[brand_privateStreamingFile]:!0,data,name,...type?{type}:{}}}var checkFileSupport=()=>{if(typeof File>"u"){let{process:process2}=globalThis,isOldNode=typeof process2?.versions?.node=="string"&&Number.parseInt(process2.versions.node.split("."),10)<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(isOldNode?" Update to a supported Node.js LTS release, 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,options){if(typeof value!="object"||value===null)return;let name="name"in value?value.name:void 0,explicitName=name&&String(name)||"filename"in value&&value.filename&&String(value.filename);if(explicitName)return options?.stripFilename===!1?normalizeFilenamePath(explicitName):basename(explicitName);let url="url"in value&&value.url&&String(value.url);if(url)try{return basename(new URL(url).pathname)}catch{return basename(url)}let path2="path"in value&&value.path&&String(value.path);return path2?basename(path2):void 0}function basename(value){return value.split(/[\\/]/).pop()||void 0}function normalizeFilenamePath(value){let normalized=value.replace(/\\/g,"/");if(normalized.startsWith("/")||/^[A-Za-z]:/.test(normalized)||normalized.split("/").includes(".."))throw new TypeError("Upload file name must be a safe relative path without parent directory segments");return normalized}var isAsyncIterable=value=>value!=null&&typeof value=="object"&&typeof value[Symbol.asyncIterator]=="function",maybeMultipartFormRequestOptions=async(opts,fetch2,formOptions)=>hasUploadableValue(opts.body)?hasStreamingUploadableValue(opts.body)?createStreamingFormRequestOptions(opts,formOptions):{...opts,body:await createForm(opts.body,fetch2,formOptions)}:opts,multipartFormRequestOptions=async(opts,fetch2,formOptions)=>hasStreamingUploadableValue(opts.body)?createStreamingFormRequestOptions(opts,formOptions):{...opts,body:await createForm(opts.body,fetch2,formOptions)},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;if("Response"in fetch2)FetchResponse=fetch2.Response;else{let response=await fetch2("data:,");await response.arrayBuffer(),FetchResponse=response.constructor}let 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,options={})=>{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,options))),form},isBlob=value=>value instanceof Blob,isReadableStream=value=>typeof value=="object"&&value!==null&&"getReader"in value&&typeof value.getReader=="function",isStreamingFile=value=>typeof value=="object"&&value!==null&&brand_privateStreamingFile in value,isUploadable=value=>typeof value=="object"&&value!==null&&(value instanceof Response||isAsyncIterable(value)||isReadableStream(value)||isStreamingFile(value)||isBlob(value)),hasStreamingUploadableValue=value=>{if(isStreamingFile(value)||isAsyncIterable(value)||isReadableStream(value))return!0;if(Array.isArray(value))return value.some(hasStreamingUploadableValue);if(value&&typeof value=="object"&&!isBlob(value)&&!(value instanceof Response)){for(let k in value)if(hasStreamingUploadableValue(value[k]))return!0}return!1},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},snapshotPreservedUploadEntries=(entries,filenames)=>{let snapshot=[];for(let entry of entries)isUploadable(entry.value)&&!filenames.has(entry.value)&&filenames.set(entry.value,getStreamingFileName(entry.value,{stripFilenames:!1})),snapshot.push(entry);return snapshot},createStreamingFormRequestOptions=(opts,options={})=>{let entries=iterateFormEntries(opts.body),preservedFilenames=options.stripFilenames===!1?new WeakMap:void 0,multipartEntries=preservedFilenames?snapshotPreservedUploadEntries(entries,preservedFilenames):entries,boundary=`openai-${Math.random().toString(36).slice(2)}`,body=ReadableStreamFrom(iterateMultipartBody(multipartEntries,boundary,options,preservedFilenames));return{...opts,body,headers:buildHeaders([{"content-type":`multipart/form-data; boundary=${boundary}`},opts.headers])}};async function*iterateMultipartBody(entries,boundary,options,preservedFilenames){for await(let{key,value}of entries){if(isUploadable(value)){let filename=preservedFilenames?.get(value)??getStreamingFileName(value,options),type=getStreamingFileType(value);yield encodeUTF8(`--${boundary}\r
|
|
7
|
+
`),yield encodeUTF8(`Content-Disposition: form-data; name="${escapeHeaderValue(key)}"; filename="${escapeHeaderValue(filename)}"\r
|
|
8
|
+
Content-Type: ${type}\r
|
|
9
|
+
\r
|
|
10
|
+
`),yield*iterateBytes(getStreamingFileData(value))}else yield encodeUTF8(`--${boundary}\r
|
|
11
|
+
`),yield encodeUTF8(`Content-Disposition: form-data; name="${escapeHeaderValue(key)}"\r
|
|
12
|
+
\r
|
|
13
|
+
${String(value)}`);yield encodeUTF8(`\r
|
|
14
|
+
`)}yield encodeUTF8(`--${boundary}--\r
|
|
15
|
+
`)}function*iterateFormEntries(body){if(!(!body||typeof body!="object"))for(let[key,value]of Object.entries(body))yield*iterateFormValue(key,value)}function*iterateFormValue(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"||isUploadable(value))yield{key,value};else if(Array.isArray(value))for(let entry of value)yield*iterateFormValue(key+"[]",entry);else if(typeof value=="object")for(let[name,prop]of Object.entries(value))yield*iterateFormValue(`${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`)}}function getStreamingFileName(value,options){if(isStreamingFile(value)){let{name}=value;if(typeof name!="string"||!name)throw new TypeError("Streaming upload file name must be a non-empty string");return options.stripFilenames===!1?normalizeFilenamePath(name):basename(name)??"unknown_file"}return getName(value,{stripFilename:options.stripFilenames})??"unknown_file"}function getStreamingFileType(value){let type;return isStreamingFile(value)||isBlob(value)?{type}=value:value instanceof Response&&(type=value.headers.get("content-type")??void 0),validateStreamingFileType(type||"application/octet-stream")}function validateStreamingFileType(type){if(typeof type!="string")throw new TypeError("Streaming upload content type must be a string");for(let index=0;index<type.length;index+=1){let character=type.codePointAt(index)??0;if(character<=31||character===127)throw new TypeError("Streaming upload content type must not contain control characters")}return type}function getStreamingFileData(value){return isStreamingFile(value)?value.data:value}async function*iterateBytes(value){if(typeof value=="string")yield encodeUTF8(value);else if(ArrayBuffer.isView(value))yield new Uint8Array(value.buffer,value.byteOffset,value.byteLength);else if(value instanceof ArrayBuffer)yield new Uint8Array(value);else if(value instanceof Response)yield*iterateBytes(value.body||await value.blob());else if(value instanceof Blob)typeof value.stream=="function"?yield*iterateBytes(value.stream()):yield new Uint8Array(await value.arrayBuffer());else if(isReadableStream(value))for await(let chunk of ReadableStreamToAsyncIterable(value))yield*iterateBytes(chunk);else if(isAsyncIterable(value))for await(let chunk of value)yield*iterateBytes(chunk);else throw new TypeError(`Invalid streaming file chunk: ${String(value)}`)}function escapeHeaderValue(value){return Array.from(value,character=>{let codePoint=character.codePointAt(0)??0;return codePoint<=31||codePoint===127||character==='"'||character==="\\"?encodeURIComponent(character):character}).join("")}var addFormValue=async(form,key,value,options)=>{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){let blob=await value.blob();form.append(key,makeFile([blob],getName(value,{stripFilename:options.stripFilenames}),{type:blob.type}))}else if(isAsyncIterable(value))form.append(key,makeFile([await new Response(ReadableStreamFrom(value)).blob()],getName(value,{stripFilename:options.stripFilenames})));else if(isBlob(value)){let filename=getName(value,{stripFilename:options.stripFilenames});filename===void 0?form.append(key,value):form.append(key,value,filename)}else if(Array.isArray(value)){let entries=await Promise.all(value.map(async entry=>{let entryForm=new FormData;return await addFormValue(entryForm,key+"[]",entry,options),entryForm}));for(let entryForm of entries)if(entryForm)for(let[entryKey,entryValue]of entryForm.entries())form.append(entryKey,entryValue)}else if(typeof value=="object")await Promise.all(Object.entries(value).map(([name,prop])=>addFormValue(form,`${key}[${name}]`,prop,options)));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",hasFilePropertyOverrides=(value,options)=>options?.type!=null&&options.type!==value.type||options?.lastModified!=null&&options.lastModified!==value.lastModified||options?.endings!=null,canReuseNativeFile=(value,name,options)=>(name==null||name===value.name)&&!hasFilePropertyOverrides(value,options);async function toFile(value,name,options){if(checkFileSupport(),value=await value,isFileLike(value)){let fileOptions={...options,type:options?.type??value.type,lastModified:options?.lastModified??value.lastModified};return value instanceof File?canReuseNativeFile(value,name,options)?value:makeFile([value],name??value.name,fileOptions):makeFile([await value.arrayBuffer()],name??value.name,fileOptions)}if(isResponseLike(value)){let blob=await value.blob();name||(name=getName(value));let responseOptions=options?.type===void 0&&blob.type?{...options,type:blob.type}:options;return makeFile(await getBytes(blob),name,responseOptions)}let parts=await getBytes(value);if(name||(name=getName(value)),options?.type===void 0){let typedPart=parts.find(part=>typeof part=="object"&&"type"in part&&!!part.type);typedPart&&(options={...options,type:typedPart.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:new Blob([await value.arrayBuffer()],{type:value.type}));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(str){return str.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="";for(let index=0;index<statics.length;index+=1)if(index in statics){let currentValue=statics[index];/[?#]/.test(currentValue)&&(postPath=!0);let value=params[index],encoded=(postPath?encodeURIComponent:pathEncoder)(""+value);index!==params.length&&(value==null||typeof value=="object"&&value.toString===Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty??EMPTY)??EMPTY)?.toString)&&(encoded=value+"",invalidSegments.push({start:path3.length+currentValue.length,length:encoded.length,error:`Value of type ${Object.prototype.toString.call(value).slice(8,-1)} is not a valid path parameter`})),path3+=currentValue+(index===params.length?"":encoded)}let 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="";for(let segment of invalidSegments){let spaces=" ".repeat(segment.start-lastEnd),arrows="^".repeat(segment.length);lastEnd=segment.start+segment.length,underline+=spaces+arrows}throw new OpenAIError(`Path parameters result in path with invalid segments:
|
|
16
|
+
${invalidSegments.map(e=>e.error).join(`
|
|
17
|
+
`)}
|
|
18
|
+
${path3}
|
|
19
|
+
${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 isParseableResponseFormat(format){return isAutoParsableResponseFormat(format)||format?.type==="json_schema"}function parseResponseFormatContent(format,content){if(!isParseableResponseFormat(format))return null;if(typeof format=="object"&&format!==null&&"$parseRaw"in format&&typeof format.$parseRaw=="function")return format.$parseRaw(content);try{return JSON.parse(content)}catch(error){throw error instanceof SyntaxError?new SyntaxError("Error reading response: invalid structured output JSON."):error}}function isAutoParsableTool(tool){return tool?.$brand==="auto-parseable-tool"}function maybeParseChatCompletion(completion,params){return!params||!hasAutoParseableInput(params)?{...completion,choices:completion.choices.map(choice=>({...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{...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!==null&&choice.message.content!==void 0&&!choice.message.refusal&&(choice.message.content!==""||!choice.message.tool_calls?.length&&!choice.message.function_call)?parseResponseFormat(params,choice.message.content):null}}});return{...completion,choices}}function parseResponseFormat(params,content){return parseResponseFormatContent(params.response_format,content)}function parseToolCall(params,toolCall){if(toolCall.type==="custom")return toolCall;if(toolCall.type!=="function"){let unsupportedType=toolCall.type;throw new OpenAIError(`Currently only \`function\` and \`custom\` tool calls are supported; Received \`${unsupportedType}\``)}let inputTool=params.tools?.find(inputTool2=>isChatCompletionFunctionTool(inputTool2)&&inputTool2.function?.name===toolCall.function.name),parsedArguments=null;return isAutoParsableTool(inputTool)?parsedArguments=inputTool.$parseRaw(toolCall.function.arguments):inputTool?.function.strict&&(parsedArguments=parseResponseFormatContent({type:"json_schema",$parseRaw:void 0},toolCall.function.arguments)),{...toolCall,function:{...toolCall.function,parsed_arguments:parsedArguments}}}function shouldParseToolCall(params,toolCall){if(!params||!("tools"in params)||!params.tools||toolCall.type!=="function")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 isParseableResponseFormat(params.response_format)?!0:params.tools?.some(t=>isAutoParsableTool(t)||t.type==="function"&&t.function.strict===!0)??!1}function validateInputTools(tools){for(let tool of tools??[])if(tool.type!=="custom"){if(tool.type!=="function"){let unsupportedType=tool.type;throw new OpenAIError(`Currently only \`function\` and \`custom\` tool types are supported; Received \`${unsupportedType}\``)}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_abortListeners,_EventStream_emittedListenerRegistrations,_EventStream_pendingListenerCleanup,_EventStream_pendingBufferedEventChecks,_EventStream_listenerDispatchDepth,_EventStream_ended,_EventStream_errored,_EventStream_aborted,_EventStream_catchingPromiseCreated,_EventStream_removeAbortListeners,_EventStream_onceForEmitted,_EventStream_removeEmittedListener,_EventStream_cleanupEmittedListeners,_EventStream_handleError,MAX_BUFFERED_ITERATOR_EVENTS=4096,MAX_BUFFERED_ITERATOR_BYTES=8*1024*1024,MAX_INSPECTABLE_TYPED_ARRAY_ELEMENTS=4096,MAX_BUFFERED_EVENT_DEPTH=256,bufferedJSONStringify=JSON.stringify,bufferedJSONParse=JSON.parse,sdkOwnedBufferedEventArguments=new WeakSet,typedArrayBufferGetter=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype),"buffer")?.get,typedArrayLengthGetter=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype),"length")?.get,dataViewBufferGetter=Object.getOwnPropertyDescriptor(DataView.prototype,"buffer")?.get,symbolDescriptionGetter=Object.getOwnPropertyDescriptor(Symbol.prototype,"description")?.get,dateTimestampGetter=Date.prototype.getTime,arrayBufferByteLengthGetter=Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength")?.get,sharedArrayBufferByteLengthGetter=typeof SharedArrayBuffer=="function"?Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype,"byteLength")?.get:void 0,errorStackDescriptor=Object.getOwnPropertyDescriptor(new Error("native stack descriptor"),"stack"),functionToString=Function.prototype.toString,objectToString=Object.prototype.toString,errorBrandDescriptor=Object.getOwnPropertyDescriptor(Error,"isError"),nativeErrorBrand=errorBrandDescriptor&&"value"in errorBrandDescriptor&&typeof errorBrandDescriptor.value=="function"?errorBrandDescriptor.value:void 0,nativeErrorConstructorSource=functionToString.call(Error),nativeDateConstructorSource=functionToString.call(Date),nativeFunctionConstructorSource=functionToString.call(Function),trustedIntrinsicPrototypes=new Set([APIConnectionError.prototype,APIConnectionTimeoutError.prototype,APIError.prototype,OpenAIError.prototype,APIUserAbortError.prototype,AuthenticationError.prototype,BadRequestError.prototype,ConflictError.prototype,ContentFilterFinishReasonError.prototype,InternalServerError.prototype,InvalidWebhookSignatureError.prototype,LengthFinishReasonError.prototype,NotFoundError.prototype,OAuthError.prototype,PermissionDeniedError.prototype,RateLimitError.prototype,SubjectTokenProviderError.prototype,UnprocessableEntityError.prototype]),trustedNativeConstructorSources=new Set,canonicalIntrinsicDescriptors=new Map,foreignErrorStackDescriptors=new WeakMap;function captureNativeProxyDetector(){if(!(typeof process>"u"))try{let loader=Object.getOwnPropertyDescriptor(process,"getBuiltinModule");if(!loader||!("value"in loader)||typeof loader.value!="function")return;let util=Reflect.apply(loader.value,process,["node:util"]);if(typeof util!="object"||util===null)return;let types=Object.getOwnPropertyDescriptor(util,"types");if(!types||!("value"in types)||typeof types.value!="object"||types.value===null)return;let detector=Object.getOwnPropertyDescriptor(types.value,"isProxy");return!detector||!("value"in detector)||typeof detector.value!="function"?void 0:detector.value}catch{return}}var nativeProxyDetector=captureNativeProxyDetector();function rememberTrustedIntrinsic(constructor){if(typeof constructor!="function")return;let prototypeDescriptor=Object.getOwnPropertyDescriptor(constructor,"prototype");if(!prototypeDescriptor||!("value"in prototypeDescriptor)||typeof prototypeDescriptor.value!="object"&&typeof prototypeDescriptor.value!="function")return;trustedIntrinsicPrototypes.add(prototypeDescriptor.value);let source=functionToString.call(constructor);if(/^function [A-Za-z_$][\w$]*\(\) \{ \[native code\] \}$/u.test(source)&&prototypeDescriptor.configurable===!1&&prototypeDescriptor.writable===!1){trustedNativeConstructorSources.add(source);let descriptors=new Map;for(let key of Reflect.ownKeys(prototypeDescriptor.value)){let descriptor=Object.getOwnPropertyDescriptor(prototypeDescriptor.value,key);descriptor&&descriptors.set(key,descriptor)}canonicalIntrinsicDescriptors.set(source,descriptors)}}for(let constructor of[Object,Function,Array,Date,Map,Set,ArrayBuffer,DataView,Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,Int8Array,Int16Array,Int32Array,Float32Array,Float64Array])rememberTrustedIntrinsic(constructor);for(let name of["SharedArrayBuffer","AggregateError","Float16Array","BigInt64Array","BigUint64Array","Blob","File","Headers"]){let descriptor=Object.getOwnPropertyDescriptor(globalThis,name);descriptor&&"value"in descriptor&&rememberTrustedIntrinsic(descriptor.value)}var typedArrayConstructorDescriptor=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype),"constructor");typedArrayConstructorDescriptor&&"value"in typedArrayConstructorDescriptor&&rememberTrustedIntrinsic(typedArrayConstructorDescriptor.value);typeof Buffer=="function"&&rememberTrustedIntrinsic(Buffer);var blobInternalHandlePrototype=(()=>{if(typeof Blob=="function")try{let blob=new Blob([]);for(let key of Object.getOwnPropertySymbols(blob)){let descriptor=Object.getOwnPropertyDescriptor(blob,key);if(descriptor&&"value"in descriptor&&typeof descriptor.value=="object"&&descriptor.value)return Object.getPrototypeOf(descriptor.value)}}catch{return}})(),mapEntries=Map.prototype.entries,setValues=Set.prototype.values,headersEntriesDescriptor=typeof Headers=="function"?Object.getOwnPropertyDescriptor(Headers.prototype,"entries"):void 0,headersEntries=headersEntriesDescriptor&&"value"in headersEntriesDescriptor&&typeof headersEntriesDescriptor.value=="function"?headersEntriesDescriptor.value:void 0,retainedStorageBrands=new Set(["ArrayBuffer","SharedArrayBuffer","Blob","File","Map","Date","Set","Headers"]);function getTrustedForeignIntrinsic(prototype){let descriptor=Object.getOwnPropertyDescriptor(prototype,"constructor");if(!descriptor||!("value"in descriptor)||typeof descriptor.value!="function")return;let constructor=descriptor.value,source=functionToString.call(constructor),descriptors=canonicalIntrinsicDescriptors.get(source);if(!trustedNativeConstructorSources.has(source)||!descriptors)return;let constructorPrototype=Object.getOwnPropertyDescriptor(constructor,"prototype");if(!(!constructorPrototype||!("value"in constructorPrototype)||constructorPrototype.value!==prototype||constructorPrototype.configurable!==!1||constructorPrototype.writable!==!1))return{constructor,descriptors,functionPrototype:Object.getPrototypeOf(constructor)}}function isTrustedIntrinsicPrototype(prototype){return trustedIntrinsicPrototypes.has(prototype)||getTrustedForeignIntrinsic(prototype)!==void 0}function isCanonicalIntrinsicFunction(value,canonical,functionPrototype){if(canonical===void 0)return value===void 0;if(typeof value!="function"||typeof canonical!="function")return!1;let source=functionToString.call(canonical);if(functionToString.call(value)!==source)return!1;let actualFunctionPrototype=Object.getPrototypeOf(value);if(actualFunctionPrototype===functionPrototype)return!0;if(!/^function [A-Za-z_$][\w$]*\(\) \{ \[native code\] \}$/u.test(source))return!1;let intrinsic=getTrustedForeignIntrinsic(actualFunctionPrototype);return intrinsic!==void 0&&functionToString.call(intrinsic.constructor)===nativeFunctionConstructorSource}function isCanonicalIntrinsicDescriptor(descriptor,canonical,functionPrototype){return!canonical||descriptor.configurable!==canonical.configurable||descriptor.enumerable!==canonical.enumerable||"value"in descriptor!="value"in canonical?!1:"value"in descriptor&&"value"in canonical?descriptor.writable!==canonical.writable?!1:typeof canonical.value=="function"?isCanonicalIntrinsicFunction(descriptor.value,canonical.value,functionPrototype):canonical.value!==null&&typeof canonical.value=="object"?!1:Object.is(descriptor.value,canonical.value):isCanonicalIntrinsicFunction(descriptor.get,canonical.get,functionPrototype)&&isCanonicalIntrinsicFunction(descriptor.set,canonical.set,functionPrototype)}function hasNativeErrorBrand(current){if(nativeErrorBrand)return nativeErrorBrand.call(Error,current);let prototype=current;for(let depth=0;prototype!==null&&depth<MAX_BUFFERED_EVENT_DEPTH;depth+=1){if(Object.getOwnPropertyDescriptor(prototype,Symbol.toStringTag))return!1;prototype=Object.getPrototypeOf(prototype)}return prototype===null&&objectToString.call(current)==="[object Error]"}function getVerifiedForeignErrorConstructor(current,stackDescriptor){if(typeof stackDescriptor.get!="function"||typeof stackDescriptor.set!="function")return;let prototype=Object.getPrototypeOf(current);for(let depth=0;prototype!==null&&depth<MAX_BUFFERED_EVENT_DEPTH;depth+=1){let descriptor=Object.getOwnPropertyDescriptor(prototype,"constructor");if(descriptor&&"value"in descriptor&&typeof descriptor.value=="function"){let constructor=descriptor.value;if(functionToString.call(constructor)===nativeErrorConstructorSource&&isTrustedIntrinsicPrototype(prototype)){let functionPrototype=Object.getPrototypeOf(constructor);return Object.getPrototypeOf(stackDescriptor.get)===functionPrototype&&Object.getPrototypeOf(stackDescriptor.set)===functionPrototype?{constructor,prototype}:void 0}}prototype=Object.getPrototypeOf(prototype)}}function isTrustedNativeErrorStack(current,descriptor){if(!hasNativeErrorBrand(current))return!1;if(errorStackDescriptor&&!("value"in errorStackDescriptor)&&typeof errorStackDescriptor.get=="function"&&Object.prototype.isPrototypeOf.call(Error.prototype,current)&&descriptor.get===errorStackDescriptor.get&&descriptor.set===errorStackDescriptor.set)return!0;let verified=getVerifiedForeignErrorConstructor(current,descriptor);if(!verified)return!1;let canonicalDescriptor=foreignErrorStackDescriptors.get(verified.prototype);if(!canonicalDescriptor){let canonical=Reflect.construct(verified.constructor,[]);if(typeof canonical!="object"||canonical===null||!hasNativeErrorBrand(canonical)||Object.getPrototypeOf(canonical)!==verified.prototype||(canonicalDescriptor=Object.getOwnPropertyDescriptor(canonical,"stack"),!canonicalDescriptor||"value"in canonicalDescriptor||typeof canonicalDescriptor.get!="function"||typeof canonicalDescriptor.set!="function"))return!1;foreignErrorStackDescriptors.set(verified.prototype,canonicalDescriptor)}return descriptor.get===canonicalDescriptor.get&&descriptor.set===canonicalDescriptor.set}function createEventQueue(){let entries=[],head=0;return{get length(){return entries.length-head},enqueue(value){entries.push(value)},dequeue(){if(head===entries.length)return;let value=entries[head];return entries[head]=void 0,head+=1,head===entries.length?(entries=[],head=0):head>=1024&&head*2>=entries.length&&(entries=entries.slice(head),head=0),value},clear(){entries=[],head=0}}}function getRetainedStorageBrand(current){let prototype=Object.getPrototypeOf(current);for(let depth=0;prototype!==null&&depth<MAX_BUFFERED_EVENT_DEPTH;depth+=1){if(prototype===Date.prototype)return"Date";if(!trustedIntrinsicPrototypes.has(prototype)){let constructor=Object.getOwnPropertyDescriptor(prototype,"constructor");if(constructor&&"value"in constructor&&typeof constructor.value=="function"&&functionToString.call(constructor.value)===nativeDateConstructorSource&&getTrustedForeignIntrinsic(prototype))return"Date"}let descriptor=Object.getOwnPropertyDescriptor(prototype,Symbol.toStringTag);if(descriptor&&"value"in descriptor&&typeof descriptor.value=="string"&&retainedStorageBrands.has(descriptor.value))return descriptor.value;prototype=Object.getPrototypeOf(prototype)}}function estimateRetainedBufferBytes(current,visit,depth){if(ArrayBuffer.isView(current)){let buffer,kind2="typed-array";try{buffer=typedArrayBufferGetter?.call(current)}catch{kind2="data-view",buffer=dataViewBufferGetter?.call(current)}return typeof buffer!="object"||buffer===null?{bytes:Number.POSITIVE_INFINITY,kind:kind2}:(visit(buffer,depth+1),{bytes:0,kind:kind2})}let brand=getRetainedStorageBrand(current);if(!brand)return;let getter,kind="buffer";switch(brand){case"ArrayBuffer":{getter=arrayBufferByteLengthGetter;break}case"SharedArrayBuffer":{getter=sharedArrayBufferByteLengthGetter;break}case"Blob":case"File":return{bytes:Number.POSITIVE_INFINITY,kind:"blob"};case"Map":return{bytes:0,kind:"map"};case"Date":return Reflect.apply(dateTimestampGetter,current,[]),{bytes:8,kind:"date"};case"Set":return{bytes:0,kind:"set"};case"Headers":return{bytes:0,kind:"headers"};default:return}let bytes=getter?.call(current);return{bytes:typeof bytes=="number"&&Number.isSafeInteger(bytes)&&bytes>=0?bytes:Number.POSITIVE_INFINITY,kind}}function visitHiddenEventValues(current,kind,visit){if(kind==="map"){for(let[key,entry]of mapEntries.call(current))if(!visit(key,8)||!visit(entry,8))return!1}if(kind==="set"){for(let entry of setValues.call(current))if(!visit(entry,8))return!1}if(kind==="headers"){if(!headersEntries)return!1;for(let[name,value]of headersEntries.call(current))if(!visit(name,8)||!visit(value,8))return!1}return!0}function getInspectableEventKeys(current,kind,availableBytes){if(Array.isArray(current)){let descriptor=Object.getOwnPropertyDescriptor(current,"length"),length2=descriptor&&"value"in descriptor?descriptor.value:void 0;if(typeof length2!="number"||!Number.isSafeInteger(length2)||length2<0||length2>Math.floor(availableBytes/16))return}if(kind!=="typed-array")return Reflect.ownKeys(current);let length=typedArrayLengthGetter?.call(current);if(!(typeof length!="number"||!Number.isSafeInteger(length)||length<0||length>MAX_INSPECTABLE_TYPED_ARRAY_ELEMENTS))return Reflect.ownKeys(current).filter(key=>{if(typeof key!="string")return!0;let index=Number(key);return!Number.isInteger(index)||index<0||index>=length||String(index)!==key})}function visitInspectableEventProperties(current,kind,depth,availableBytes,charge,visit){let keys=getInspectableEventKeys(current,kind,availableBytes());if(keys===void 0)return!1;for(let key of keys){if(!charge(typeof key=="string"?key.length*2+8:8))return!1;typeof key=="symbol"&&visit(key,depth+1);let descriptor=Object.getOwnPropertyDescriptor(current,key);if(!descriptor)return!1;if(!("value"in descriptor)){if(key==="stack"&&isTrustedNativeErrorStack(current,descriptor))continue;return!1}visit(descriptor.value,depth+1,kind==="blob")}return!0}function visitRetainedEventPrototypes(current,depth,isBlobInternalHandle,visited,availableBytes,charge,visit,retainPrototype){let prototype=Object.getPrototypeOf(current);for(let prototypeDepth=depth+1;prototype!==null;prototypeDepth+=1){if(prototypeDepth>=MAX_BUFFERED_EVENT_DEPTH)return!1;if(trustedIntrinsicPrototypes.has(prototype)||isBlobInternalHandle&&prototype===blobInternalHandlePrototype)return!0;if(visited.has(prototype))return visit(prototype,prototypeDepth),availableBytes()>=0;visited.add(prototype);let retainedPrototype=prototype;if(!retainPrototype(retainedPrototype,()=>{if(!charge(16))return!1;let intrinsic=getTrustedForeignIntrinsic(retainedPrototype);if(!intrinsic)return visitInspectableEventProperties(retainedPrototype,void 0,prototypeDepth,availableBytes,charge,visit);for(let key of Reflect.ownKeys(retainedPrototype)){let descriptor=Object.getOwnPropertyDescriptor(retainedPrototype,key);if(!descriptor)return!1;if(!isCanonicalIntrinsicDescriptor(descriptor,intrinsic.descriptors.get(key),intrinsic.functionPrototype)){if(!charge(typeof key=="string"?key.length*2+8:8)||!("value"in descriptor))return!1;typeof key=="symbol"&&visit(key,prototypeDepth+1),visit(descriptor.value,prototypeDepth+1)}}return availableBytes()>=0}))return!1;prototype=Object.getPrototypeOf(retainedPrototype)}return!0}var BUFFERED_LEDGER_ENTRY_BYTES=32,BUFFERED_LEDGER_NODE_BYTES=32,BUFFERED_LEDGER_EDGE_BYTES=8,BUFFERED_LEDGER_OWNER_BYTES=16,MAX_BUFFERED_LEDGER_RECONCILIATION_WORK=128*1024;function inspectBufferedEventGraph(value,remainingBytes){let bytes=0,scalarBytes=0,visited=new WeakSet,visitedSymbols=new Set,roots=new Set,nodes=new Map,activeNode,availableBytes=()=>remainingBytes-bytes,charge=amount=>!Number.isSafeInteger(amount)||amount<0?(bytes=remainingBytes+1,!1):(bytes+=amount,activeNode?activeNode.bytes+=amount:scalarBytes+=amount,bytes<=remainingBytes),addIdentity=identity=>{activeNode?activeNode.edges.add(identity):roots.add(identity)},retainIdentity=(identity,inspect)=>{addIdentity(identity);let node={bytes:0,edges:new Set};nodes.set(identity,node);let previous=activeNode;activeNode=node;try{return inspect()}finally{activeNode=previous}},visitSymbol=current=>{if(visitedSymbols.has(current)){addIdentity(current),charge(8);return}visitedSymbols.add(current),retainIdentity(current,()=>{if(!symbolDescriptionGetter)return!1;let description=Reflect.apply(symbolDescriptionGetter,current,[]);return charge(8+(description?.length??0)*2)})||(bytes=remainingBytes+1)},visit=(current,depth,isBlobInternalHandle=!1)=>{if(!(bytes>remainingBytes)){if(typeof current=="string"){charge(current.length*2);return}if(typeof current=="symbol"){visitSymbol(current);return}if(typeof current=="function"){bytes=remainingBytes+1;return}if(current===null||typeof current!="object"){charge(8);return}if(nativeProxyDetector?.(current)){bytes=remainingBytes+1;return}if(depth>=MAX_BUFFERED_EVENT_DEPTH){bytes=remainingBytes+1;return}if(visited.has(current)){addIdentity(current),charge(8);return}visited.add(current),retainIdentity(current,()=>{if(!charge(16))return!1;let retainedStorage=estimateRetainedBufferBytes(current,visit,depth);return!visitRetainedEventPrototypes(current,depth,isBlobInternalHandle,visited,availableBytes,charge,visit,retainIdentity)||retainedStorage!==void 0&&!charge(retainedStorage.bytes)||!visitHiddenEventValues(current,retainedStorage?.kind,(hiddenValue,overhead)=>charge(overhead)?(visit(hiddenValue,depth+1),bytes<=remainingBytes):!1)?!1:visitInspectableEventProperties(current,retainedStorage?.kind,depth,availableBytes,charge,visit)})||(bytes=remainingBytes+1)}};try{visit(value,0)}catch{return}return bytes<=remainingBytes?{scalarBytes,roots,nodes}:void 0}function areBufferedRetainedEdgesEqual(first,second){if(first.size!==second.size)return!1;for(let identity of first)if(!second.has(identity))return!1;return!0}function getBufferedLedgerNodeBytes(node,owners){return node.bytes+BUFFERED_LEDGER_NODE_BYTES+node.edges.size*BUFFERED_LEDGER_EDGE_BYTES+owners*BUFFERED_LEDGER_OWNER_BYTES}function getBufferedLedgerEntryBytes(entry){return BUFFERED_LEDGER_ENTRY_BYTES+entry.scalarBytes+entry.roots.size*BUFFERED_LEDGER_EDGE_BYTES}function collectBufferedLedgerIdentities(roots,candidate,records,work){let identities=new Set,pending=[...roots];for(;pending.length;){if(work.remaining-=1,work.remaining<0)return;let identity=pending.pop();if(identities.has(identity))continue;let node=candidate.get(identity)??records.get(identity);if(!node)return;identities.add(identity);for(let edge of node.edges)pending.push(edge)}return identities}function getBufferedLedgerChange(identity,graph,records,changes,node){let existing=changes.get(identity);if(existing)return node&&(existing.node=node),existing;let current=node??graph.nodes.get(identity)??records.get(identity);if(!current)return;let update={node:current,ownerDelta:0};return changes.set(identity,update),update}function findBufferedLedgerAffectedOwners(entry,graph,records,changes,work){let affected=new Set([entry]);for(let[identity,node]of graph.nodes){if(work.remaining-=1,work.remaining<0)return;let previous=records.get(identity);if(!previous)continue;let changedEdges=!areBufferedRetainedEdgesEqual(previous.edges,node.edges);if((previous.bytes!==node.bytes||changedEdges)&&getBufferedLedgerChange(identity,graph,records,changes,node),!!changedEdges)for(let owner of previous.owners){if(work.remaining-=1,work.remaining<0)return;affected.add(owner)}}return affected}function updateBufferedLedgerMembershipChanges(owner,next,graph,records,changes,work){for(let identity of owner.identities){if(work.remaining-=1,work.remaining<0)return!1;if(!next.has(identity)){let update=getBufferedLedgerChange(identity,graph,records,changes);if(!update)return!1;update.ownerDelta-=1}}for(let identity of next){if(work.remaining-=1,work.remaining<0)return!1;if(!owner.identities.has(identity)){let update=getBufferedLedgerChange(identity,graph,records,changes);if(!update)return!1;update.ownerDelta+=1}}return!0}function collectBufferedLedgerMemberships(entry,graph,affected,records,changes,work){let memberships=new Map;for(let owner of affected){let roots=owner===entry?graph.roots:owner.roots,next=collectBufferedLedgerIdentities(roots,graph.nodes,records,work);if(!next||!updateBufferedLedgerMembershipChanges(owner,next,graph,records,changes,work))return;memberships.set(owner,next)}return memberships}function projectBufferedLedgerBytes(currentBytes,entry,graph,isNew,changes,records){let projected=currentBytes-(isNew?0:getBufferedLedgerEntryBytes(entry))+getBufferedLedgerEntryBytes(graph);for(let[identity,update]of changes){let previous=records.get(identity),owners=(previous?.owners.size??0)+update.ownerDelta;if(owners<0)return;previous&&(projected-=getBufferedLedgerNodeBytes(previous,previous.owners.size)),owners&&(projected+=getBufferedLedgerNodeBytes(update.node,owners))}return Number.isSafeInteger(projected)&&projected>=0&&projected<=MAX_BUFFERED_ITERATOR_BYTES?projected:void 0}function applyBufferedLedgerChanges(records,changes,memberships){for(let[identity,update]of changes){let previous=records.get(identity);(previous?.owners.size??0)+update.ownerDelta&&(previous?(previous.bytes=update.node.bytes,previous.edges=update.node.edges):records.set(identity,{bytes:update.node.bytes,edges:update.node.edges,owners:new Set}))}for(let[owner,next]of memberships){for(let identity of owner.identities)next.has(identity)||records.get(identity)?.owners.delete(owner);for(let identity of next)owner.identities.has(identity)||records.get(identity).owners.add(owner);owner.identities=next}for(let identity of changes.keys())records.get(identity)?.owners.size===0&&records.delete(identity)}function createBufferedEventLedger(){let records=new Map,bytes=0,reconcile=(entry,graph,isNew)=>{let work={remaining:MAX_BUFFERED_LEDGER_RECONCILIATION_WORK},changes=new Map,affected=findBufferedLedgerAffectedOwners(entry,graph,records,changes,work);if(!affected)return!1;let memberships=collectBufferedLedgerMemberships(entry,graph,affected,records,changes,work);if(!memberships)return!1;let projectedBytes=projectBufferedLedgerBytes(bytes,entry,graph,isNew,changes,records);return projectedBytes===void 0?!1:(applyBufferedLedgerChanges(records,changes,memberships),entry.scalarBytes=graph.scalarBytes,entry.roots=graph.roots,bytes=projectedBytes,!0)};return{retain(graph){let entry={scalarBytes:0,roots:new Set,identities:new Set};return reconcile(entry,graph,!0)?entry:void 0},refresh(entry,graph){return reconcile(entry,graph,!1)},release:entry=>{bytes-=getBufferedLedgerEntryBytes(entry);for(let identity of entry.identities){let record=records.get(identity);record?.owners.delete(entry)&&(bytes-=BUFFERED_LEDGER_OWNER_BYTES,record.owners.size===0&&(bytes-=getBufferedLedgerNodeBytes(record,0),records.delete(identity)))}entry.identities.clear()},clear(){records.clear(),bytes=0}}}var 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,Object.create(null)),_EventStream_abortListeners.set(this,[]),_EventStream_emittedListenerRegistrations.set(this,new WeakMap),_EventStream_pendingListenerCleanup.set(this,new Set),_EventStream_pendingBufferedEventChecks.set(this,new Set),_EventStream_listenerDispatchDepth.set(this,0),_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(()=>{let failed=!1;Promise.resolve().then(executor).catch(error=>{failed=!0,__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_handleError).call(this,error)}).then(()=>{if(!failed){try{this._emitFinal()}catch(error){__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_handleError).call(this,error);return}this._emit("end")}})},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()}_listenForAbort(signal){if(!signal||this.ended)return;if(signal.aborted){this.controller.abort();return}let listener=()=>this.controller.abort();signal.addEventListener("abort",listener,{once:!0}),__classPrivateFieldGet(this,_EventStream_abortListeners,"f").push({signal,listener})}on(event,listener){var _a5;return((_a5=__classPrivateFieldGet(this,_EventStream_listeners,"f"))[event]||(_a5[event]=[])).push({listener}),this}off(event,listener){let listeners=__classPrivateFieldGet(this,_EventStream_listeners,"f")[event];if(!listeners)return this;let emittedRegistration=__classPrivateFieldGet(this,_EventStream_emittedListenerRegistrations,"f").get(listener);if(emittedRegistration?.event===event&&!emittedRegistration.registration.removed&&!emittedRegistration.registration.detached)return __classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_removeEmittedListener).call(this,event,emittedRegistration.registration),this;let index=listeners.findIndex(l=>!l.removed&&l.listener===listener);return index!==-1&&listeners.splice(index,1),this}once(event,listener){var _a5;return((_a5=__classPrivateFieldGet(this,_EventStream_listeners,"f"))[event]||(_a5[event]=[])).push({listener,once:!0}),this}emitted(event){return new Promise((resolve,reject)=>{__classPrivateFieldSet(this,_EventStream_catchingPromiseCreated,!0,"f");let onError=error=>{this.off(event,onEvent),reject(error)},onEvent=(...values)=>{event!=="error"&&this.off("error",onError),resolve(values.length>1?values:values[0])};event!=="error"&&__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_onceForEmitted).call(this,"error",onError),__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_onceForEmitted).call(this,event,onEvent)})}events(event){return this._createIterator(push=>{let onEvent=(...args)=>{sdkOwnedBufferedEventArguments.add(args);try{push(args)}finally{sdkOwnedBufferedEventArguments.delete(args)}};return this.on(event,onEvent),()=>this.off(event,onEvent)},{rejectOnError:event!=="error",rejectOnAbort:event!=="abort"})}_createIterator(attach,{rejectOnError=!0,rejectOnAbort=!0,onReturn}={}){let pushQueue=createEventQueue(),bufferedEventSizes=createEventQueue(),readQueue=createEventQueue(),bufferedLedger=createBufferedEventLedger(),ended=this.ended,failure,failureDelivered=!1,detach=()=>{},doneResult=()=>({value:void 0,done:!0}),finishReaders=()=>{for(;readQueue.length;)readQueue.dequeue().resolve(doneResult())},rejectReader=()=>{!failure||failureDelivered||!readQueue.length||(failureDelivered=!0,readQueue.dequeue().reject(failure))},cleanup=()=>{detach(),this.off("end",onEnd),rejectOnError&&this.off("error",onFailure),rejectOnAbort&&this.off("abort",onFailure)},deactivateBufferedEvent=entry=>{entry.active=!1,entry.check&&(__classPrivateFieldGet(this,_EventStream_pendingBufferedEventChecks,"f").delete(entry.check),entry.check=void 0)},failBufferedEvents=(discardRetained=!1)=>{if(discardRetained){for(;bufferedEventSizes.length;)deactivateBufferedEvent(bufferedEventSizes.dequeue());pushQueue.clear(),bufferedLedger.clear()}let error=new OpenAIError(`Event stream iterator buffer limit exceeded (${MAX_BUFFERED_ITERATOR_EVENTS} events or ${MAX_BUFFERED_ITERATOR_BYTES} bytes); consume events as they arrive.`);try{__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_handleError).call(this,error)}finally{this.controller.abort()}return error},revalidateBufferedEvent=(value,entry)=>{if(!entry.active||__classPrivateFieldGet(this,_EventStream_ended,"f"))return;let graph=inspectBufferedEventGraph(value,MAX_BUFFERED_ITERATOR_BYTES);(!graph||!bufferedLedger.refresh(entry.retention,graph))&&failBufferedEvents(!0)},push=value=>{if(ended)return;let reader=readQueue.dequeue();if(reader)reader.resolve({value,done:!1});else{if(pushQueue.length>=MAX_BUFFERED_ITERATOR_EVENTS){failBufferedEvents();return}let graph=inspectBufferedEventGraph(value,MAX_BUFFERED_ITERATOR_BYTES),retention=graph&&bufferedLedger.retain(graph);if(!retention){failBufferedEvents();return}if(typeof value=="object"&&value!==null&&sdkOwnedBufferedEventArguments.has(value)){let argumentsTuple=value;for(let index=0;index<argumentsTuple.length;index+=1){let argument=argumentsTuple[index];typeof argument=="string"&&(argumentsTuple[index]=bufferedJSONParse(bufferedJSONStringify(argument)))}}let entry={retention,active:!0,check:void 0};pushQueue.enqueue(value),bufferedEventSizes.enqueue(entry);let check=()=>{entry.check=void 0,revalidateBufferedEvent(value,entry)};entry.check=check,__classPrivateFieldGet(this,_EventStream_pendingBufferedEventChecks,"f").add(check)}},onFailure=error=>{failure=error,pushQueue.length||rejectReader()},onEnd=()=>{ended=!0,cleanup(),pushQueue.length||(rejectReader(),finishReaders())};return ended||(detach=attach(push),this.on("end",onEnd),rejectOnError&&this.on("error",onFailure),rejectOnAbort&&this.on("abort",onFailure)),{next:()=>{if(pushQueue.length){let value=pushQueue.dequeue(),entry=bufferedEventSizes.dequeue();deactivateBufferedEvent(entry);let graph=inspectBufferedEventGraph(value,MAX_BUFFERED_ITERATOR_BYTES);if(!graph||!bufferedLedger.refresh(entry.retention,graph)){let error=failBufferedEvents(!0);return failureDelivered=!0,Promise.reject(error)}return bufferedLedger.release(entry.retention),Promise.resolve({value,done:!1})}return failure&&!failureDelivered?(failureDelivered=!0,Promise.reject(failure)):ended?Promise.resolve(doneResult()):new Promise((resolve,reject)=>{readQueue.enqueue({resolve,reject})})},return:()=>{for(ended=!0;bufferedEventSizes.length;)deactivateBufferedEvent(bufferedEventSizes.dequeue());return pushQueue.clear(),bufferedLedger.clear(),cleanup(),finishReaders(),onReturn&&(this.done().catch(()=>{}),onReturn()),Promise.resolve(doneResult())},[Symbol.asyncIterator](){return this}}}async done(){__classPrivateFieldSet(this,_EventStream_catchingPromiseCreated,!0,"f"),await __classPrivateFieldGet(this,_EventStream_endPromise,"f")}_hasListeners(event){return!!__classPrivateFieldGet(this,_EventStream_listeners,"f")[event]?.some(listener=>!listener.removed)}_emit(event,...args){if(__classPrivateFieldGet(this,_EventStream_ended,"f"))return;event==="end"&&(__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_removeAbortListeners).call(this),__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(listener=>(listener.once&&(listener.detached=!0),!listener.once&&!listener.removed)),__classPrivateFieldSet(this,_EventStream_listenerDispatchDepth,__classPrivateFieldGet(this,_EventStream_listenerDispatchDepth,"f")+1,"f");try{for(let registration of listeners)registration.removed||registration.listener(...args)}finally{if(__classPrivateFieldSet(this,_EventStream_listenerDispatchDepth,__classPrivateFieldGet(this,_EventStream_listenerDispatchDepth,"f")-1,"f"),__classPrivateFieldGet(this,_EventStream_listenerDispatchDepth,"f")===0){__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_cleanupEmittedListeners).call(this);for(let check of __classPrivateFieldGet(this,_EventStream_pendingBufferedEventChecks,"f"))__classPrivateFieldGet(this,_EventStream_pendingBufferedEventChecks,"f").delete(check),__classPrivateFieldGet(this,_EventStream_ended,"f")||check()}}}if(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_abortListeners=new WeakMap,_EventStream_emittedListenerRegistrations=new WeakMap,_EventStream_pendingListenerCleanup=new WeakMap,_EventStream_pendingBufferedEventChecks=new WeakMap,_EventStream_listenerDispatchDepth=new WeakMap,_EventStream_ended=new WeakMap,_EventStream_errored=new WeakMap,_EventStream_aborted=new WeakMap,_EventStream_catchingPromiseCreated=new WeakMap,_EventStream_instances=new WeakSet,_EventStream_removeAbortListeners=function(){for(let{signal,listener}of __classPrivateFieldGet(this,_EventStream_abortListeners,"f").splice(0))signal.removeEventListener("abort",listener)},_EventStream_onceForEmitted=function(event,listener){let previousListeners=__classPrivateFieldGet(this,_EventStream_listeners,"f")[event],previousLength=previousListeners?.length??0;this.once(event,listener);let listeners=__classPrivateFieldGet(this,_EventStream_listeners,"f")[event],[registration]=listeners?.slice(-1)??[];(previousListeners===void 0||listeners===previousListeners)&&listeners?.length===previousLength+1&®istration?.listener===listener&®istration.once&&__classPrivateFieldGet(this,_EventStream_emittedListenerRegistrations,"f").set(listener,{event,registration})},_EventStream_removeEmittedListener=function(event,registration){registration.removed||(registration.removed=!0,__classPrivateFieldGet(this,_EventStream_emittedListenerRegistrations,"f").delete(registration.listener),__classPrivateFieldGet(this,_EventStream_pendingListenerCleanup,"f").add(event),__classPrivateFieldGet(this,_EventStream_listenerDispatchDepth,"f")===0&&__classPrivateFieldGet(this,_EventStream_instances,"m",_EventStream_cleanupEmittedListeners).call(this))},_EventStream_cleanupEmittedListeners=function(){for(let event of __classPrivateFieldGet(this,_EventStream_pendingListenerCleanup,"f")){let eventType=event,listeners=__classPrivateFieldGet(this,_EventStream_listeners,"f")[eventType];listeners&&(__classPrivateFieldGet(this,_EventStream_listeners,"f")[eventType]=listeners.filter(listener=>!listener.removed))}__classPrivateFieldGet(this,_EventStream_pendingListenerCleanup,"f").clear()},_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,_a2,_AbstractChatCompletionRunner_completionArrivedBeforeAbort,_AbstractChatCompletionRunner_getFinalContent,_AbstractChatCompletionRunner_getFinalMessage,_AbstractChatCompletionRunner_getFinalFunctionToolCall,_AbstractChatCompletionRunner_getFinalFunctionToolCallResult,_AbstractChatCompletionRunner_calculateTotalUsage,_AbstractChatCompletionRunner_validateParams,_AbstractChatCompletionRunner_stringifyFunctionCallResult,DEFAULT_MAX_CHAT_COMPLETIONS=10;function normalizeToolCallIds(chatCompletion){for(let choice of chatCompletion.choices)for(let toolCall of choice.message.tool_calls??[])toolCall.id||(toolCall.id=`call_${uuid4()}`)}function toRequestMessage(message){if(!isAssistantMessage(message))return message;let requestMessage={role:"assistant"};return message.audio!=null&&(requestMessage.audio={id:message.audio.id}),message.content!==void 0&&(requestMessage.content=message.content),message.function_call!=null&&(requestMessage.function_call=message.function_call),message.name!==void 0&&(requestMessage.name=message.name),message.refusal!=null&&(requestMessage.refusal=message.refusal),message.tool_calls!==void 0&&(requestMessage.tool_calls=message.tool_calls.map(toolCall=>toolCall.type==="custom"?{id:toolCall.id,type:toolCall.type,custom:{input:toolCall.custom.input,name:toolCall.custom.name}}:{id:toolCall.id,type:toolCall.type,function:{arguments:toolCall.function.arguments,name:toolCall.function.name}})),requestMessage}var AbstractChatCompletionRunner=class extends EventStream{constructor(){super(...arguments),_AbstractChatCompletionRunner_instances.add(this),this._chatCompletions=[],_AbstractChatCompletionRunner_completionArrivedBeforeAbort.set(this,!1),this.messages=[]}_addChatCompletion(chatCompletion){__classPrivateFieldSet(this,_AbstractChatCompletionRunner_completionArrivedBeforeAbort,!this.controller.signal.aborted,"f"),normalizeToolCallIds(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){this._listenForAbort(options?.signal),__classPrivateFieldGet(_a2,_a2,"m",_AbstractChatCompletionRunner_validateParams).call(_a2,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,runner,options){let role="tool",{tool_choice="auto",stream,toolContext:inputToolContext,...restParams}=params,toolContext=inputToolContext,singleFunctionToCall=typeof tool_choice!="string"&&tool_choice.type==="function"&&tool_choice?.function?.name,{maxChatCompletions=DEFAULT_MAX_CHAT_COMPLETIONS,afterCompletion}=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=Object.create(null);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);let allowBufferedToolCall=!1,runToolCall=async toolCall=>{let bufferedToolCall=allowBufferedToolCall;if(allowBufferedToolCall=!1,toolCall.type!=="function")return{message:void 0,functionCalled:!1};let tool_call_id=toolCall.id,{name,arguments:args}=toolCall.function,fn=functionsByName[name];if(!fn){let content2=`Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName).map(name2=>JSON.stringify(name2)).join(", ")}. Please try again`;return{message:{role,tool_call_id,content:content2},functionCalled:!1}}if(singleFunctionToCall&&singleFunctionToCall!==name){let content2=`Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;return{message:{role,tool_call_id,content:content2},functionCalled:!1}}let rawContent;if(isRunnableFunctionWithParse(fn)){let parsed;try{parsed=await fn.parse(args)}catch(error){if(this.controller.signal.aborted)throw new APIUserAbortError;let content2=error instanceof Error?error.message:String(error);return{message:{role,tool_call_id,content:content2},functionCalled:!1}}if(this.controller.signal.aborted)throw new APIUserAbortError;rawContent=await fn.function(parsed,runner,toolContext)}else{if(this.controller.signal.aborted&&!bufferedToolCall)throw new APIUserAbortError;rawContent=await fn.function(args,runner,toolContext)}let content=__classPrivateFieldGet(_a2,_a2,"m",_AbstractChatCompletionRunner_stringifyFunctionCallResult).call(_a2,rawContent);return{message:{role,tool_call_id,content},functionCalled:!0}};for(let i=0;i<maxChatCompletions;++i){let chatCompletion=await this._createChatCompletion(client,{...restParams,tool_choice,tools,messages:this.messages.map(toRequestMessage)},options);allowBufferedToolCall=this.controller.signal.aborted&&__classPrivateFieldGet(this,_AbstractChatCompletionRunner_completionArrivedBeforeAbort,"f");let message=chatCompletion.choices[0]?.message;if(!message)throw new OpenAIError("missing message in ChatCompletion response");if(!message.tool_calls?.length){await afterCompletion?.(chatCompletion,runner);return}if(singleFunctionToCall||params.parallel_tool_calls===!1)for(let toolCall of message.tool_calls){let result=await runToolCall(toolCall);if(result.message&&this._addMessage(result.message),this.controller.signal.aborted)throw new APIUserAbortError;if(singleFunctionToCall&&result.functionCalled){await afterCompletion?.(chatCompletion,runner);return}}else{let results=await Promise.allSettled(message.tool_calls.map(runToolCall));if(!this.controller.signal.aborted){for(let result of results)if(result.status==="rejected")throw result.reason}for(let result of results)result.status==="fulfilled"&&result.value.message&&this._addMessage(result.value.message);if(this.controller.signal.aborted)throw new APIUserAbortError}await afterCompletion?.(chatCompletion,runner)}}};_a2=AbstractChatCompletionRunner,_AbstractChatCompletionRunner_completionArrivedBeforeAbort=new WeakMap,_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)for(let j=message.tool_calls.length-1;j>=0;j--){let toolCall=message.tool_calls[j];if(toolCall?.type==="function")return toolCall.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&¶ms.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,__metadata:{...options?.__metadata,helperMethod:"runTools"}};return runner._run(()=>runner._runTools(client,params,runner,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&&length-index>1&&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,Number.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(e){throwMalformedError(String(e))}}},skipBlank=()=>{for(;index<length&&`
|
|
20
|
+
\r `.includes(jsonString[index]);)index++};return parseAny()},partialParse=input=>parseJSON(input,Allow.ALL^Allow.NUM);var _ChatCompletionStream_instances,_ChatCompletionStream_params,_ChatCompletionStream_audioDoneChoiceIndexes,_ChatCompletionStream_choiceEventStates,_ChatCompletionStream_currentChatCompletionSnapshot,_ChatCompletionStream_hasAutoParseableTool,_ChatCompletionStream_partialJSONParseBudget,_ChatCompletionStream_beginRequest,_ChatCompletionStream_getChoiceEventState,_ChatCompletionStream_addChunk,_ChatCompletionStream_emitToolCallDoneEvent,_ChatCompletionStream_emitContentDoneEvents,_ChatCompletionStream_validateStructuredSnapshots,_ChatCompletionStream_endRequest,_ChatCompletionStream_accumulateChatCompletion;function parseStructuredStreamingJSON(content){try{return partialParse(content)}catch(error){if(error instanceof MalformedJSON||error instanceof SyntaxError)return parseResponseFormatContent({type:"json_schema",$parseRaw:void 0},content);throw error}}var CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX="chat.completion.chunk.message:";function makeChatCompletionReadableStreamMessageChunk(chunk,message,toolCallIds){let payload={type:"message",message,...toolCallIds?{tool_call_ids:toolCallIds}:{}};return{id:chunk.id,choices:[],created:chunk.created,model:chunk.model,object:`${CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX}${JSON.stringify(payload)}`}}function isChatCompletionReadableStreamMessage(item){return"type"in item&&item.type==="message"&&"message"in item||"object"in item&&typeof item.object=="string"&&item.object.startsWith(CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX)}function getChatCompletionReadableStreamMessage(item){return"type"in item?item:JSON.parse(item.object.slice(CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX.length))}var MAX_STREAM_CHOICES=128,MAX_STREAM_TOOL_CALLS=128,MAX_PARTIAL_JSON_BYTES=16*1024*1024,MAX_PARTIAL_JSON_FRAGMENTS=65536,MAX_PARTIAL_JSON_DEPTH=128,MAX_PARTIAL_JSON_PARSE_WORK=64*1024*1024,EAGER_PARTIAL_JSON_BYTES=1024;function createPartialJSONParseState(){return{bytes:0,depth:0,fragments:0,work:0,escaped:!1,has_non_whitespace:!1,in_string:!1,last_parsed_bytes:0,pending_high_surrogate:!1}}function recordPartialJSONFragment(state,budget,fragment,validationWorkBudget){if(budget.fragments>=MAX_PARTIAL_JSON_FRAGMENTS)throw new OpenAIError("Chat completion stream exceeded its structured JSON fragment limit");let bytes=0,{depth,escaped,has_non_whitespace:hasNonWhitespace,in_string:inString}=state,completed=!1,firstCharacter=!0;for(let character of fragment){let previousBytes=bytes,codePoint=character.codePointAt(0);if(firstCharacter&&state.pending_high_surrogate&&codePoint>=56320&&codePoint<=57343||codePoint<=127?bytes+=1:codePoint<=2047?bytes+=2:codePoint<=65535?bytes+=3:bytes+=4,firstCharacter=!1,budget.bytes+bytes>MAX_PARTIAL_JSON_BYTES)throw new OpenAIError("Chat completion stream exceeded its structured JSON byte limit");if(validationWorkBudget&&validationWorkBudget.work+bytes>MAX_PARTIAL_JSON_PARSE_WORK)throw validationWorkBudget.work+=previousBytes,new OpenAIError("Chat completion stream exceeded its structured JSON parse-work limit");if(character!==" "&&character!==`
|
|
21
|
+
`&&character!=="\r"&&character!==" "&&(hasNonWhitespace=!0),inString){escaped?escaped=!1:character==="\\"?escaped=!0:character==='"'&&(inString=!1,completed||(completed=depth===0));continue}if(character==='"')inString=!0;else if(character==="{"||character==="["){if(depth+=1,depth>MAX_PARTIAL_JSON_DEPTH)throw new OpenAIError("Chat completion stream exceeded its structured JSON nesting depth limit")}else(character==="}"||character==="]")&&depth>0&&(depth-=1,completed||(completed=depth===0))}if(state.bytes+=bytes,state.fragments+=1,state.depth=depth,state.escaped=escaped,state.has_non_whitespace=hasNonWhitespace,state.in_string=inString,fragment.length>0){let finalCodeUnit=fragment.codePointAt(fragment.length-1)??0;state.pending_high_surrogate=finalCodeUnit>=55296&&finalCodeUnit<=56319}if(budget.bytes+=bytes,budget.fragments+=1,validationWorkBudget&&(validationWorkBudget.work+=bytes),!hasNonWhitespace||bytes===0)return!1;let minimumGrowth=Math.max(EAGER_PARTIAL_JSON_BYTES,Math.floor(state.last_parsed_bytes/2));return!(state.bytes>EAGER_PARTIAL_JSON_BYTES&&!completed&&state.bytes-state.last_parsed_bytes<minimumGrowth)}function reservePartialJSONParse(state,budget){return budget.work+state.bytes>MAX_PARTIAL_JSON_PARSE_WORK?!1:(budget.work+=state.bytes,state.work+=state.bytes,state.last_parsed_bytes=state.bytes,!0)}function captureStructuredJSONSnapshot(snapshot,property){let descriptor=Object.getOwnPropertyDescriptor(snapshot,property);if(!descriptor){let prototype=Object.getPrototypeOf(snapshot);for(let depth=0;prototype!==null;depth+=1){if(depth>=MAX_PARTIAL_JSON_DEPTH||Object.getOwnPropertyDescriptor(prototype,property))throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");prototype=Object.getPrototypeOf(prototype)}return}if(!("value"in descriptor)||typeof descriptor.value!="string"&&descriptor.value!==null&&descriptor.value!==void 0)throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");return descriptor.value}function captureStructuredMessageSnapshot(choice){let descriptor=Object.getOwnPropertyDescriptor(choice,"message");if(!descriptor||!("value"in descriptor)||typeof descriptor.value!="object"||descriptor.value===null)throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");return descriptor.value}function captureSnapshotArray(snapshot,property,maximum,kind){let descriptor=Object.getOwnPropertyDescriptor(snapshot,property);if(!descriptor){let prototype=Object.getPrototypeOf(snapshot);for(let depth=0;prototype!==null;depth+=1){if(depth>=MAX_PARTIAL_JSON_DEPTH||Object.getOwnPropertyDescriptor(prototype,property))throw new OpenAIError(`Chat completion stream contains an unsafe snapshot ${kind} collection`);prototype=Object.getPrototypeOf(prototype)}return}if(!("value"in descriptor)||!Array.isArray(descriptor.value))throw new OpenAIError(`Chat completion stream contains an unsafe snapshot ${kind} collection`);let length=Object.getOwnPropertyDescriptor(descriptor.value,"length");if(!length||!("value"in length)||!Number.isSafeInteger(length.value)||length.value>maximum)throw new OpenAIError(`Chat completion stream exceeded its snapshot ${kind} limit`);return descriptor.value}function captureSnapshotArrayItem(array,index){let descriptor=Object.getOwnPropertyDescriptor(array,index);if(descriptor){if(!("value"in descriptor))throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");return descriptor.value}}function mapCapturedSnapshotArray(array,maximum,kind,map){let descriptor=Object.getOwnPropertyDescriptor(array,"length"),length=descriptor&&"value"in descriptor?descriptor.value:void 0;if(typeof length!="number"||!Number.isSafeInteger(length)||length<0||length>maximum)throw new OpenAIError(`Chat completion stream exceeded its snapshot ${kind} limit`);let mapped=[];mapped.length=length;for(let index=0;index<length;index+=1){let item=Object.getOwnPropertyDescriptor(array,index);if(item){if(!("value"in item))throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");mapped[index]=map(item.value,index)}}return mapped}function validateStructuredJSONSnapshot(value,budget,validationWorkBudget){let state=createPartialJSONParseState(),parseBudget=budget??{bytes:0,fragments:0,work:0};if(recordPartialJSONFragment(state,parseBudget,value,validationWorkBudget),!reservePartialJSONParse(state,parseBudget))throw new OpenAIError("Chat completion stream exceeded its structured JSON parse-work limit");return value}function ownFunctionToolIdentity(toolCall){let type=Object.getOwnPropertyDescriptor(toolCall,"type"),fn=Object.getOwnPropertyDescriptor(toolCall,"function");if(!type||!("value"in type)||type.value!=="function"||!fn||!("value"in fn)||typeof fn.value!="object"||fn.value===null)return;let name=Object.getOwnPropertyDescriptor(fn.value,"name");if(!(!name||!("value"in name)||typeof name.value!="string"||name.value.length===0))return{type:"function",name:name.value}}function assertBoundToolCallIdentity(toolCall,identity){let current=ownFunctionToolIdentity(toolCall);if(!current||current.name!==identity.name||current.type!==identity.type)throw new OpenAIError("Chat completion stream contains a changed tool call identity")}function assignOwnProperties(target,source){return Object.prototype.propertyIsEnumerable.call(source,"__proto__")&&!hasOwn(target,"__proto__")&&Object.defineProperty(target,"__proto__",{value:void 0,writable:!0,enumerable:!0,configurable:!0}),Object.assign(target,source)}function cloneParserConfigObject(value,stableFields=[]){let descriptors=Object.getOwnPropertyDescriptors(value);for(let field of stableFields){let descriptor=descriptors[field];!descriptor&&!(field in value)||(descriptors[field]={value:descriptor&&"value"in descriptor?descriptor.value:Reflect.get(value,field,value),enumerable:descriptor?.enumerable??!1,configurable:descriptor?.configurable??!0,writable:descriptor&&"writable"in descriptor?descriptor.writable:!1})}return Object.create(Object.getPrototypeOf(value),descriptors)}function snapshotChatCompletionParserParams(params){let snapshot=cloneParserConfigObject(params);if(params.tools){let stableTools=[],lengthDescriptor=Object.getOwnPropertyDescriptor(params.tools,"length"),length=lengthDescriptor&&"value"in lengthDescriptor?lengthDescriptor.value:void 0,toolCount=typeof length=="number"&&Number.isSafeInteger(length)&&length>=0?Math.min(length,MAX_STREAM_TOOL_CALLS):0;for(let index=0;index<toolCount;index+=1){let item=Object.getOwnPropertyDescriptor(params.tools,String(index));if(!item||!("value"in item)){stableTools.length=index+1;continue}let tool=item.value,stableTool=cloneParserConfigObject(tool,["type","$brand","$parseRaw","$callback","function"]),descriptors=Object.getOwnPropertyDescriptors(stableTool);if(isChatCompletionFunctionTool(stableTool)){let descriptor=descriptors.function;descriptors.function={...descriptor&&"value"in descriptor?descriptor:{configurable:!0,enumerable:!0,writable:!0},value:cloneParserConfigObject(stableTool.function,["name","strict"])}}stableTools[index]=Object.create(Object.getPrototypeOf(tool),descriptors)}snapshot.tools=stableTools}return params.response_format&&(snapshot.response_format=cloneParserConfigObject(params.response_format,["type","$brand","$parseRaw"])),snapshot}var MAX_SERIALIZED_PARSER_SCHEMA_NODES=4096,stringifyParserSchemaValue=JSON.stringify,MAX_SERIALIZED_PARSER_SCHEMA_BYTES=1024*1024,MAX_SERIALIZED_PARSER_SCHEMA_DEPTH=64,OMITTED_SERIALIZED_PARSER_VALUE=Symbol("omitted serialized parser value"),UNSAFE_SERIALIZED_PARSER_VALUE=Symbol("unsafe serialized parser value");function canonicalSerializedParserSchema(value,budget){let ancestors=new WeakSet,charge=bytes=>!Number.isSafeInteger(bytes)||bytes<0||budget.bytes+bytes>MAX_SERIALIZED_PARSER_SCHEMA_BYTES?!1:(budget.bytes+=bytes,!0),visit=(current,depth)=>{if(depth>MAX_SERIALIZED_PARSER_SCHEMA_DEPTH||budget.nodes>=MAX_SERIALIZED_PARSER_SCHEMA_NODES)return UNSAFE_SERIALIZED_PARSER_VALUE;if(budget.nodes+=1,current===void 0||typeof current=="function"||typeof current=="symbol")return OMITTED_SERIALIZED_PARSER_VALUE;if(typeof current=="bigint")return UNSAFE_SERIALIZED_PARSER_VALUE;if(current===null||typeof current=="boolean"||typeof current=="number"){let serialized=stringifyParserSchemaValue(current);return typeof serialized=="string"&&charge(serialized.length)?serialized:UNSAFE_SERIALIZED_PARSER_VALUE}if(typeof current=="string")return charge(current.length*6+2)?stringifyParserSchemaValue(current):UNSAFE_SERIALIZED_PARSER_VALUE;if(typeof current!="object"||ancestors.has(current))return UNSAFE_SERIALIZED_PARSER_VALUE;let array=Array.isArray(current),prototype=Object.getPrototypeOf(current);if(array&&prototype!==Array.prototype||!array&&prototype!==null&&prototype!==Object.prototype)return UNSAFE_SERIALIZED_PARSER_VALUE;for(let owner=current;owner!==null;owner=Object.getPrototypeOf(owner)){let serializer=Object.getOwnPropertyDescriptor(owner,"toJSON");if(serializer){if(!("value"in serializer)||typeof serializer.value=="function")return UNSAFE_SERIALIZED_PARSER_VALUE;break}}ancestors.add(current);try{if(!charge(2))return UNSAFE_SERIALIZED_PARSER_VALUE;if(array){let lengthDescriptor=Object.getOwnPropertyDescriptor(current,"length"),length=lengthDescriptor&&"value"in lengthDescriptor?lengthDescriptor.value:void 0;if(typeof length!="number"||!Number.isSafeInteger(length)||length<0||length>MAX_SERIALIZED_PARSER_SCHEMA_NODES-budget.nodes)return UNSAFE_SERIALIZED_PARSER_VALUE;let items=[];for(let index=0;index<length;index+=1){let key=String(index),descriptor=Object.getOwnPropertyDescriptor(current,key);if(!descriptor){if(Object.getOwnPropertyDescriptor(Array.prototype,key)||Object.getOwnPropertyDescriptor(Object.prototype,key)||(budget.nodes+=1,!charge(4)))return UNSAFE_SERIALIZED_PARSER_VALUE;items.push("null");continue}if(!("value"in descriptor))return UNSAFE_SERIALIZED_PARSER_VALUE;let item=visit(descriptor.value,depth+1);if(item===UNSAFE_SERIALIZED_PARSER_VALUE)return item;items.push(item===OMITTED_SERIALIZED_PARSER_VALUE?"null":item)}return`[${items.join(",")}]`}let keys=Reflect.ownKeys(current);if(keys.length>MAX_SERIALIZED_PARSER_SCHEMA_NODES-budget.nodes)return UNSAFE_SERIALIZED_PARSER_VALUE;let entries=[];for(let key of keys){if(typeof key!="string")continue;let descriptor=Object.getOwnPropertyDescriptor(current,key);if(!descriptor)return UNSAFE_SERIALIZED_PARSER_VALUE;if(descriptor.enumerable){if(!("value"in descriptor))return UNSAFE_SERIALIZED_PARSER_VALUE;entries.push([key,descriptor.value])}}entries.sort(([left],[right])=>left===right?0:left<right?-1:1);let fields=[];for(let[key,entry]of entries){let normalized=visit(entry,depth+1);if(normalized===UNSAFE_SERIALIZED_PARSER_VALUE)return normalized;if(normalized!==OMITTED_SERIALIZED_PARSER_VALUE){if(!charge(key.length*6+3))return UNSAFE_SERIALIZED_PARSER_VALUE;fields.push(`${stringifyParserSchemaValue(key)}:${normalized}`)}}return`{${fields.join(",")}}`}finally{ancestors.delete(current)}};try{let normalized=visit(value,0);return typeof normalized=="string"?normalized:void 0}catch{return}}function rememberSerializedParserSchema(signatures,source,holder,key){let parser=Object.getOwnPropertyDescriptor(source,"$parseRaw"),schema=Object.getOwnPropertyDescriptor(holder,key);if(!parser||!("value"in parser)||typeof parser.value!="function"||!schema||!("value"in schema))return;let normalized=canonicalSerializedParserSchema(schema.value,{nodes:0,bytes:0});normalized!==void 0&&signatures.set(source,normalized)}function hasMatchingSerializedParserSchema(signatures,source,holder,key,value){let expected=source&&signatures.get(source),descriptor=Object.getOwnPropertyDescriptor(holder,key);return expected!==void 0&&descriptor!==void 0&&"value"in descriptor&&canonicalSerializedParserSchema(value,{nodes:0,bytes:0})===expected}function serializedParserDescriptor(descriptor,value){return descriptor&&"value"in descriptor?{...descriptor,value}:{configurable:!0,enumerable:!0,writable:!0,value}}function shadowSerializedParserMetadata(descriptors,source,fields){for(let field of fields){let descriptor=descriptors[field];!descriptor&&!(field in source)||(descriptors[field]=descriptor&&"value"in descriptor?{...descriptor,value:void 0}:{configurable:descriptor?.configurable??!0,enumerable:descriptor?.enumerable??!1,writable:!1,value:void 0})}}function snapshotSerializedParserTool(serialized){let source=serialized.source??{type:serialized.type,...serialized.type==="function"?{function:{}}:{}},descriptors=Object.getOwnPropertyDescriptors(source);if(descriptors.type=serializedParserDescriptor(descriptors.type,serialized.type),serialized.type!=="function"||!serialized.function)return descriptors.function&&(descriptors.function=serializedParserDescriptor(descriptors.function,void 0)),shadowSerializedParserMetadata(descriptors,source,["$brand","$parseRaw","$callback"]),Object.create(Object.getPrototypeOf(source),descriptors);let descriptor=descriptors.function,original=descriptor&&"value"in descriptor&&typeof descriptor.value=="object"&&descriptor.value!==null?descriptor.value:{},functionDescriptors=Object.getOwnPropertyDescriptors(original);return functionDescriptors.name=serializedParserDescriptor(functionDescriptors.name,serialized.function.name),functionDescriptors.strict=serializedParserDescriptor(functionDescriptors.strict,serialized.function.strict),descriptors.function=serializedParserDescriptor(descriptor,Object.create(Object.getPrototypeOf(original),functionDescriptors)),serialized.function.schemaMatches||shadowSerializedParserMetadata(descriptors,source,["$brand","$parseRaw","$callback"]),Object.create(Object.getPrototypeOf(source),descriptors)}function snapshotSerializedResponseFormat(serialized){let source=serialized.source??{type:serialized.type},descriptors=Object.getOwnPropertyDescriptors(source);return descriptors.type=serializedParserDescriptor(descriptors.type,serialized.type),(serialized.type!=="json_schema"||!serialized.source||!serialized.schemaMatches)&&shadowSerializedParserMetadata(descriptors,source,["$brand","$parseRaw"]),Object.create(Object.getPrototypeOf(source),descriptors)}function ownSerializedParserObject(holder,key){let descriptor=Object.getOwnPropertyDescriptor(holder,key);if(!descriptor||!("value"in descriptor))return;let{value}=descriptor;return typeof value=="object"&&value!==null?value:void 0}function observeSerializedChatCompletionParserParams(body,initial,update){let originalToolOwners=new WeakMap,originalSchemaSignatures=new WeakMap;if(body.tools)for(let index=0;index<body.tools.length&&index<MAX_STREAM_TOOL_CALLS;index+=1){let owner=ownSerializedParserObject(body.tools,String(index)),source=initial.tools?.[index];if(owner&&source){originalToolOwners.set(owner,source);let originalFunction=ownSerializedParserObject(source,"function");originalFunction&&rememberSerializedParserSchema(originalSchemaSignatures,source,originalFunction,"parameters")}}initial.response_format&&rememberSerializedParserSchema(originalSchemaSignatures,initial.response_format,initial.response_format,"json_schema");let root,tools,responseFormat,responseFrame,frames=[],toolFrames=new WeakMap,actualToolOwners=new Map,functionFrames=new WeakMap;return observeJSONRequestBody(body,{value(holder,key,value){if(!root&&key===""&&typeof value=="object"&&value!==null){root=value,tools=void 0,responseFormat=void 0,responseFrame=void 0,frames=[],toolFrames=new WeakMap,actualToolOwners=new Map,functionFrames=new WeakMap;return}if(holder===root&&key==="response_format"){typeof value=="object"&&value!==null&&(responseFormat=value,responseFrame={source:ownSerializedParserObject(holder,key)===body.response_format?initial.response_format:void 0,schemaMatches:!1});return}if(holder===root&&key==="tools")return Array.isArray(value)?(tools=new Proxy(value,{get(target,property){let actual=Reflect.get(target,property,target);if(typeof property=="string"){let index=Number(property);Number.isSafeInteger(index)&&index>=0&&index<MAX_STREAM_TOOL_CALLS&&String(index)===property&&actualToolOwners.set(index,typeof actual=="object"&&actual!==null?actual:void 0)}return actual}}),tools):void 0;if(holder===tools){let index=Number(key);if(!Number.isSafeInteger(index)||index<0||index>=MAX_STREAM_TOOL_CALLS||typeof value!="object"||value===null)return;let owner=actualToolOwners.get(index),frame={source:owner?originalToolOwners.get(owner):void 0};frames[index]=frame,toolFrames.set(value,frame);return}let tool=toolFrames.get(holder);if(tool){if(key==="type"&&typeof value=="string")tool.type=value;else if(key==="function"&&typeof value=="object"&&value!==null){let fn2={source:tool.source,schemaMatches:!1};tool.function=fn2,functionFrames.set(value,fn2)}return}if(holder===responseFormat&&responseFrame){key==="type"&&typeof value=="string"?responseFrame.type=value:key==="json_schema"&&(responseFrame.schemaMatches=hasMatchingSerializedParserSchema(originalSchemaSignatures,responseFrame.source,holder,key,value));return}let fn=functionFrames.get(holder);fn&&(key==="name"&&typeof value=="string"?fn.name=value:key==="strict"&&typeof value=="boolean"?fn.strict=value:key==="parameters"&&(fn.schemaMatches=hasMatchingSerializedParserSchema(originalSchemaSignatures,fn.source,holder,key,value)))},complete(){if(!root)return;let snapshot=cloneParserConfigObject(initial);if(tools){let serializedTools=[];for(let index=0;index<frames.length;index+=1){let frame=frames[index];frame&&(serializedTools[index]=snapshotSerializedParserTool(frame))}snapshot.tools=serializedTools}else delete snapshot.tools;responseFrame?snapshot.response_format=snapshotSerializedResponseFormat(responseFrame):delete snapshot.response_format,update(snapshot),root=void 0,tools=void 0,responseFormat=void 0,responseFrame=void 0,frames=[],toolFrames=new WeakMap,actualToolOwners=new Map,functionFrames=new WeakMap}})}var ChatCompletionStream=class _ChatCompletionStream extends AbstractChatCompletionRunner{constructor(params){super(),_ChatCompletionStream_instances.add(this),_ChatCompletionStream_params.set(this,void 0),_ChatCompletionStream_audioDoneChoiceIndexes.set(this,void 0),_ChatCompletionStream_choiceEventStates.set(this,void 0),_ChatCompletionStream_currentChatCompletionSnapshot.set(this,void 0),_ChatCompletionStream_hasAutoParseableTool.set(this,void 0),_ChatCompletionStream_partialJSONParseBudget.set(this,void 0),__classPrivateFieldSet(this,_ChatCompletionStream_params,params,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_audioDoneChoiceIndexes,new Set,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_choiceEventStates,[],"f"),__classPrivateFieldSet(this,_ChatCompletionStream_hasAutoParseableTool,!1,"f");let tools=params?.tools,lengthDescriptor=tools&&Object.getOwnPropertyDescriptor(tools,"length"),length=lengthDescriptor&&"value"in lengthDescriptor?lengthDescriptor.value:void 0;if(tools&&typeof length=="number"&&Number.isSafeInteger(length)&&length>=0)for(let index=0;index<Math.min(length,MAX_STREAM_TOOL_CALLS);index+=1){let descriptor=Object.getOwnPropertyDescriptor(tools,String(index));if(!descriptor||!("value"in descriptor))continue;let tool=descriptor.value;if(isChatCompletionFunctionTool(tool)&&(isAutoParsableTool(tool)||tool.function.strict===!0)){__classPrivateFieldSet(this,_ChatCompletionStream_hasAutoParseableTool,!0,"f");break}}__classPrivateFieldSet(this,_ChatCompletionStream_partialJSONParseBudget,{bytes:0,fragments:0,work:0},"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,__metadata:{...options?.__metadata,helperMethod:"stream"}})),runner}async _createChatCompletion(client,params,options){this._listenForAbort(options?.signal);let requestParams={...params,stream:!0};__classPrivateFieldSet(this,_ChatCompletionStream_params,requestParams,"f"),__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_beginRequest).call(this);let parserParams=snapshotChatCompletionParserParams(requestParams);__classPrivateFieldSet(this,_ChatCompletionStream_params,parserParams,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_hasAutoParseableTool,parserParams.tools?.some(tool=>isChatCompletionFunctionTool(tool)&&(isAutoParsableTool(tool)||tool.function.strict===!0))??!1,"f");let stopObserving=requestParams.tools||requestParams.response_format?observeSerializedChatCompletionParserParams(requestParams,parserParams,serialized=>{__classPrivateFieldSet(this,_ChatCompletionStream_params,serialized,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_hasAutoParseableTool,serialized.tools?.some(tool=>isChatCompletionFunctionTool(tool)&&(isAutoParsableTool(tool)||tool.function.strict===!0))??!1,"f")}):void 0,stream=await client.chat.completions.create(requestParams,{...options,signal:this.controller.signal}).finally(stopObserving);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){this._listenForAbort(options?.signal),__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_beginRequest).call(this),this._connected();let stream=Stream.fromReadableStream(readableStream,this.controller),chatId;for await(let item of stream){if(isChatCompletionReadableStreamMessage(item)){let message=getChatCompletionReadableStreamMessage(item);if(__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f")){let toolCalls=__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f").choices[0]?.message.tool_calls;for(let[index,id]of message.tool_call_ids?.entries()??[]){let toolCall=toolCalls?.[index];toolCall&&id&&(toolCall.id=id)}this._addChatCompletion(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_endRequest).call(this)),chatId=void 0}this._addMessage(message.message);continue}let chunk=item;chatId&&chunk.id&&chatId!==chunk.id&&this._addChatCompletion(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_endRequest).call(this)),__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_addChunk).call(this,chunk),chunk.id&&(chatId=chunk.id)}if(stream.controller.signal?.aborted)throw new APIUserAbortError;if(__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f"))return this._addChatCompletion(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_endRequest).call(this));let lastChatCompletion=this._chatCompletions[this._chatCompletions.length-1];if(lastChatCompletion)return lastChatCompletion;throw new OpenAIError("request ended without sending any chunks")}[(_ChatCompletionStream_params=new WeakMap,_ChatCompletionStream_audioDoneChoiceIndexes=new WeakMap,_ChatCompletionStream_choiceEventStates=new WeakMap,_ChatCompletionStream_currentChatCompletionSnapshot=new WeakMap,_ChatCompletionStream_hasAutoParseableTool=new WeakMap,_ChatCompletionStream_partialJSONParseBudget=new WeakMap,_ChatCompletionStream_instances=new WeakSet,_ChatCompletionStream_beginRequest=function(){this.ended||(__classPrivateFieldSet(this,_ChatCompletionStream_audioDoneChoiceIndexes,new Set,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_currentChatCompletionSnapshot,void 0,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_partialJSONParseBudget,{bytes:0,fragments:0,work:0},"f"))},_ChatCompletionStream_getChoiceEventState=function(choice){let state=__classPrivateFieldGet(this,_ChatCompletionStream_choiceEventStates,"f")[choice.index];return state||(state={content_done:!1,content_parse_state:void 0,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null,tool_call_parse_states:new Map,tool_call_identities:new Map},__classPrivateFieldGet(this,_ChatCompletionStream_choiceEventStates,"f")[choice.index]=state,state)},_ChatCompletionStream_addChunk=function(chunk){if(this.ended)return;let capturedChoiceFrames=new WeakMap,completion=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_accumulateChatCompletion).call(this,chunk,capturedChoiceFrames);this._emit("chunk",chunk,completion);for(let choice of chunk.choices){let capturedChoice=capturedChoiceFrames.get(choice),choiceSnapshot=completion.choices[capturedChoice?.index??choice.index],capturedToolCalls=capturedChoice?.tool_calls??[],{delta}=choice,structuredResponse=isParseableResponseFormat(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.response_format),boundedSnapshot=structuredResponse||__classPrivateFieldGet(this,_ChatCompletionStream_hasAutoParseableTool,"f"),messageSnapshot=boundedSnapshot?captureStructuredMessageSnapshot(choiceSnapshot):choiceSnapshot.message,refusal=boundedSnapshot?captureStructuredJSONSnapshot(messageSnapshot,"refusal"):messageSnapshot.refusal,messageContent=!refusal&&structuredResponse?captureStructuredJSONSnapshot(messageSnapshot,"content"):messageSnapshot.content;delta?.content!=null&&messageSnapshot.role==="assistant"&&messageContent&&(this._emit("content",delta.content,messageContent),this._emit("content.delta",{delta:delta.content,snapshot:messageContent,parsed:messageSnapshot.parsed})),delta?.refusal!=null&&messageSnapshot.role==="assistant"&&refusal&&this._emit("refusal.delta",{delta:delta.refusal,snapshot:refusal}),choice.logprobs?.content!=null&&messageSnapshot.role==="assistant"&&this._emit("logprobs.content.delta",{content:choice.logprobs?.content,snapshot:choiceSnapshot.logprobs?.content??[]}),choice.logprobs?.refusal!=null&&messageSnapshot.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 capturedToolCalls)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 capturedToolCalls){let toolCallSnapshot=messageSnapshot.tool_calls?.[toolCallDelta.index];if(toolCallSnapshot?.type)if(toolCallSnapshot.type==="function"){let boundIdentity=state.tool_call_identities.get(toolCallDelta.index),argumentsSnapshot;if(boundIdentity?.parseable){let capturedArguments=captureStructuredJSONSnapshot(toolCallSnapshot.function,"arguments");if(typeof capturedArguments!="string")throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");argumentsSnapshot=capturedArguments}else argumentsSnapshot=toolCallSnapshot.function.arguments;this._emit("tool_calls.function.arguments.delta",{name:toolCallSnapshot.function.name,index:toolCallDelta.index,arguments:argumentsSnapshot,parsed_arguments:toolCallSnapshot.function.parsed_arguments,arguments_delta:toolCallDelta.arguments_delta})}else toolCallSnapshot.type!=="custom"&&toolCallSnapshot}}},_ChatCompletionStream_emitToolCallDoneEvent=function(choiceSnapshot,toolCallIndex){let state=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getChoiceEventState).call(this,choiceSnapshot);if(state.done_tool_calls.has(toolCallIndex))return;let toolCallSnapshot=(__classPrivateFieldGet(this,_ChatCompletionStream_hasAutoParseableTool,"f")?captureStructuredMessageSnapshot(choiceSnapshot):choiceSnapshot.message).tool_calls?.[toolCallIndex];if(!toolCallSnapshot)throw new Error("no tool call snapshot");let boundIdentity=state.tool_call_identities.get(toolCallIndex);if(boundIdentity&&assertBoundToolCallIdentity(toolCallSnapshot,boundIdentity),!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),parsedArguments=null,parseable=isAutoParsableTool(inputTool)||inputTool?.function.strict===!0,argumentsSnapshot;if(parseable){__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f")&&__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_validateStructuredSnapshots).call(this,__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f"));let capturedArguments=captureStructuredJSONSnapshot(toolCallSnapshot.function,"arguments");if(typeof capturedArguments!="string")throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");argumentsSnapshot=capturedArguments}else argumentsSnapshot=toolCallSnapshot.function.arguments;isAutoParsableTool(inputTool)?parsedArguments=inputTool.$parseRaw(validateStructuredJSONSnapshot(argumentsSnapshot)):inputTool?.function.strict&&(parsedArguments=parseResponseFormatContent({type:"json_schema",$parseRaw:void 0},validateStructuredJSONSnapshot(argumentsSnapshot))),this._emit("tool_calls.function.arguments.done",{name:toolCallSnapshot.function.name,index:toolCallIndex,arguments:argumentsSnapshot,parsed_arguments:parsedArguments})}else toolCallSnapshot.type!=="custom"&&toolCallSnapshot},_ChatCompletionStream_emitContentDoneEvents=function(choiceSnapshot){let state=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getChoiceEventState).call(this,choiceSnapshot),structuredResponse=isParseableResponseFormat(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.response_format),boundedSnapshot=structuredResponse||__classPrivateFieldGet(this,_ChatCompletionStream_hasAutoParseableTool,"f"),messageSnapshot=boundedSnapshot?captureStructuredMessageSnapshot(choiceSnapshot):choiceSnapshot.message,refusal=boundedSnapshot?captureStructuredJSONSnapshot(messageSnapshot,"refusal"):messageSnapshot.refusal,parseableContent=!refusal&&structuredResponse,content=parseableContent?captureStructuredJSONSnapshot(messageSnapshot,"content"):messageSnapshot.content;content!=null&&(content!==""||!refusal&&!messageSnapshot.tool_calls?.length&&!messageSnapshot.function_call)&&!state.content_done&&(parseableContent&&__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f")&&__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_validateStructuredSnapshots).call(this,__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f")),state.content_done=!0,this._emit("content.done",{content,parsed:refusal?null:parseResponseFormatContent(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.response_format,parseableContent?validateStructuredJSONSnapshot(content):content)})),refusal&&!state.refusal_done&&(state.refusal_done=!0,this._emit("refusal.done",{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_validateStructuredSnapshots=function(snapshot){let finalJSONBudget={bytes:0,fragments:0,work:0},parseableContent=isParseableResponseFormat(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.response_format),validatedMessages=new WeakMap,choices=captureSnapshotArray(snapshot,"choices",MAX_STREAM_CHOICES,"choice");if(!choices)throw new OpenAIError("Chat completion stream contains an unsafe snapshot choice collection");for(let choiceIndex=0;choiceIndex<choices.length;choiceIndex+=1){let choice=captureSnapshotArrayItem(choices,choiceIndex);if(!choice)continue;let message=captureStructuredMessageSnapshot(choice),refusal=captureStructuredJSONSnapshot(message,"refusal"),content=captureStructuredJSONSnapshot(message,"content"),validatedTools=new Map,toolCalls=captureSnapshotArray(message,"tool_calls",MAX_STREAM_TOOL_CALLS,"tool-call");validatedMessages.set(choice,Object.freeze({message,content,refusal,toolCallCollection:toolCalls,toolCalls:validatedTools}));let state=__classPrivateFieldGet(this,_ChatCompletionStream_choiceEventStates,"f")[choice.index];parseableContent&&!refusal&&typeof content=="string"&&validateStructuredJSONSnapshot(content,finalJSONBudget,__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f"));for(let[index,identity]of state?.tool_call_identities??[]){let toolCall=toolCalls&&captureSnapshotArrayItem(toolCalls,index);if(!toolCall)throw new OpenAIError("Chat completion stream contains a changed tool call identity");assertBoundToolCallIdentity(toolCall,identity)}if(__classPrivateFieldGet(this,_ChatCompletionStream_hasAutoParseableTool,"f"))for(let toolCallIndex=0;toolCallIndex<(toolCalls?.length??0);toolCallIndex+=1){let toolCall=captureSnapshotArrayItem(toolCalls,toolCallIndex);if(!toolCall)continue;let identity=ownFunctionToolIdentity(toolCall);if(!identity){let type=Object.getOwnPropertyDescriptor(toolCall,"type");if(type&&!("value"in type))throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");if(type?.value!=="function")continue;let fn2=Object.getOwnPropertyDescriptor(toolCall,"function");if(fn2&&!("value"in fn2))throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");if(fn2&&typeof fn2.value=="object"&&fn2.value!==null){let name=Object.getOwnPropertyDescriptor(fn2.value,"name");if(name&&!("value"in name))throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot")}continue}if(!shouldParseToolCall(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f"),{type:identity.type,function:{name:identity.name}}))continue;let descriptor=Object.getOwnPropertyDescriptor(toolCall,"function");if(!descriptor||!("value"in descriptor))throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");let fn=descriptor.value,argumentsSnapshot=captureStructuredJSONSnapshot(fn,"arguments");if(typeof argumentsSnapshot!="string")throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");validateStructuredJSONSnapshot(argumentsSnapshot,finalJSONBudget,__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f")),validatedTools.set(toolCallIndex,Object.freeze({tool:toolCall,function:fn,type:identity.type,name:identity.name,arguments:argumentsSnapshot}))}}return validatedMessages},_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");let validatedMessages=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_validateStructuredSnapshots).call(this,snapshot),audioDoneChoiceIndexes=__classPrivateFieldGet(this,_ChatCompletionStream_audioDoneChoiceIndexes,"f");return __classPrivateFieldSet(this,_ChatCompletionStream_audioDoneChoiceIndexes,new Set,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_currentChatCompletionSnapshot,void 0,"f"),__classPrivateFieldSet(this,_ChatCompletionStream_choiceEventStates,[],"f"),finalizeChatCompletion(snapshot,__classPrivateFieldGet(this,_ChatCompletionStream_params,"f"),audioDoneChoiceIndexes,validatedMessages)},_ChatCompletionStream_accumulateChatCompletion=function(chunk,capturedChoiceFrames){var _a5,_b,_c,_d,_e;let snapshot=__classPrivateFieldGet(this,_ChatCompletionStream_currentChatCompletionSnapshot,"f"),{choices,obfuscation:_obfuscation,...rest}=chunk;if(snapshot)chunk.id&&assignOwnProperties(snapshot,rest);else{let newSnapshot={...rest,choices:[]};__classPrivateFieldSet(this,_ChatCompletionStream_currentChatCompletionSnapshot,newSnapshot,"f"),snapshot=newSnapshot}let requestedChoiceCount=__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.n,maxChoices=typeof requestedChoiceCount=="number"&&Number.isSafeInteger(requestedChoiceCount)&&requestedChoiceCount>0?Math.min(requestedChoiceCount,MAX_STREAM_CHOICES):MAX_STREAM_CHOICES;for(let chunkChoice of chunk.choices){let{delta,finish_reason,index,logprobs=null,...other}=chunkChoice,capturedToolCalls=[];if(capturedChoiceFrames.set(chunkChoice,Object.freeze({index,tool_calls:capturedToolCalls})),!Number.isSafeInteger(index)||index<0||index>=maxChoices)throw new OpenAIError(`Chat completion stream contains an invalid choice index: ${index}`);let choice=snapshot.choices[index];if(!choice){let newChoice={finish_reason,index,message:{},logprobs:null,...other};snapshot.choices[index]=newChoice,choice=newChoice}if((isParseableResponseFormat(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.response_format)||__classPrivateFieldGet(this,_ChatCompletionStream_hasAutoParseableTool,"f"))&&captureStructuredJSONSnapshot(captureStructuredMessageSnapshot(choice),"refusal"),logprobs)if(choice.logprobs){let{content:content2,refusal:refusal2,...rest3}=logprobs;assignOwnProperties(choice.logprobs,rest3),content2&&((_a5=choice.logprobs).content??(_a5.content=[]),choice.logprobs.content.push(...content2)),refusal2&&((_b=choice.logprobs).refusal??(_b.refusal=[]),choice.logprobs.refusal.push(...refusal2))}else choice.logprobs={...logprobs},logprobs.content&&(choice.logprobs.content=[...logprobs.content]),logprobs.refusal&&(choice.logprobs.refusal=[...logprobs.refusal]);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(assignOwnProperties(choice,other),!delta){Object.freeze(capturedToolCalls);continue}__classPrivateFieldGet(this,_ChatCompletionStream_audioDoneChoiceIndexes,"f").delete(index);let{audio,content,refusal,function_call,role,...capturedDeltaFields}=delta,{tool_calls:capturedToolCallDelta,...rest2}=capturedDeltaFields,tool_calls=hasOwn(capturedDeltaFields,"tool_calls")?capturedToolCallDelta:delta.tool_calls;if(assignOwnProperties(choice.message,rest2),audio?.expires_at!=null&&audio.id==null&&audio.data==null&&audio.transcript==null&&content==null&&refusal==null&&function_call==null&&role==null&&tool_calls==null&&Object.keys(rest2).length===0&&__classPrivateFieldGet(this,_ChatCompletionStream_audioDoneChoiceIndexes,"f").add(index),refusal&&(choice.message.refusal=(choice.message.refusal||"")+refusal),role&&(choice.message.role=role),audio){let audioSnapshot=(_c=choice.message).audio??(_c.audio={});audio.id!=null&&(audioSnapshot.id=audio.id),audio.data!=null&&(audioSnapshot.data=(audioSnapshot.data??"")+audio.data),audio.transcript!=null&&(audioSnapshot.transcript=(audioSnapshot.transcript??"")+audio.transcript),audio.expires_at!=null&&(audioSnapshot.expires_at=audio.expires_at)}if(function_call&&(choice.message.function_call?(function_call.name&&(choice.message.function_call.name=function_call.name),function_call.arguments&&((_d=choice.message.function_call).arguments??(_d.arguments=""),choice.message.function_call.arguments+=function_call.arguments)):choice.message.function_call=function_call),content!=null)if(!choice.message.refusal&&isParseableResponseFormat(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.response_format)){let eventState=__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getChoiceEventState).call(this,choice),parseState=eventState.content_parse_state??(eventState.content_parse_state=createPartialJSONParseState()),shouldParse=recordPartialJSONFragment(parseState,__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f"),content);choice.message.content=(captureStructuredJSONSnapshot(choice.message,"content")||"")+content,parseState.has_non_whitespace?shouldParse&&reservePartialJSONParse(parseState,__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f"))?(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_validateStructuredSnapshots).call(this,snapshot),choice.message.parsed=parseStructuredStreamingJSON(validateStructuredJSONSnapshot(choice.message.content))):content.length>0&&(choice.message.parsed=null):choice.message.parsed=null}else choice.message.content=(choice.message.content||"")+content;if(tool_calls){let toolCallSnapshots=(_e=choice.message).tool_calls??(_e.tool_calls=[]);for(let toolCallDelta of tool_calls){let{index:index2,id,type,function:fn,custom,...rest3}=toolCallDelta;if(!Number.isSafeInteger(index2)||index2<0||index2>=MAX_STREAM_TOOL_CALLS)throw new OpenAIError(`Chat completion stream contains an invalid tool call index: ${index2}`);let argumentsDelta="",tool_call=toolCallSnapshots[index2]??(toolCallSnapshots[index2]={}),functionName=fn?.name,eventState=__classPrivateFieldGet(this,_ChatCompletionStream_hasAutoParseableTool,"f")?__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_getChoiceEventState).call(this,choice):void 0,boundIdentity=eventState?.tool_call_identities.get(index2);if(boundIdentity&&(assertBoundToolCallIdentity(tool_call,boundIdentity),type!==void 0&&type!==boundIdentity.type||functionName!==void 0&&functionName!==boundIdentity.name))throw new OpenAIError("Chat completion stream contains a changed tool call identity");if(assignOwnProperties(tool_call,rest3),id&&(tool_call.id=id),type&&(tool_call.type=type),custom){let customSnapshot=tool_call.custom??(tool_call.custom={name:custom.name??"",input:""});custom.name&&(customSnapshot.name=custom.name),custom.input&&(customSnapshot.input+=custom.input)}if(fn){let functionSnapshot=tool_call.function??(tool_call.function={name:functionName??"",arguments:""});if(functionName&&(functionSnapshot.name=functionName),eventState&&!boundIdentity){let identity=ownFunctionToolIdentity(tool_call),configuredTool=identity&&__classPrivateFieldGet(this,_ChatCompletionStream_params,"f")?.tools?.find(tool=>isChatCompletionFunctionTool(tool)&&tool.function.name===identity.name);if(identity&&(boundIdentity={...identity,parseable:configuredTool!==void 0&&shouldParseToolCall(__classPrivateFieldGet(this,_ChatCompletionStream_params,"f"),{type:identity.type,function:{name:identity.name}})},eventState.tool_call_identities.set(index2,boundIdentity),!boundIdentity.parseable)){let provisionalState=eventState.tool_call_parse_states.get(index2);provisionalState&&(__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f").bytes-=provisionalState.bytes,__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f").fragments-=provisionalState.fragments,__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f").work-=provisionalState.work,eventState.tool_call_parse_states.delete(index2))}}let argumentFragment=fn.arguments;if(argumentFragment!=null)if(argumentsDelta=argumentFragment,eventState&&boundIdentity?.parseable!==!1){let parseState=eventState.tool_call_parse_states.get(index2);parseState||(parseState=createPartialJSONParseState(),eventState.tool_call_parse_states.set(index2,parseState));let shouldParse=recordPartialJSONFragment(parseState,__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f"),argumentFragment),previousArguments=captureStructuredJSONSnapshot(functionSnapshot,"arguments");if(typeof previousArguments!="string")throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");functionSnapshot.arguments=previousArguments+argumentFragment,shouldParse&&boundIdentity?.parseable===!0&&reservePartialJSONParse(parseState,__classPrivateFieldGet(this,_ChatCompletionStream_partialJSONParseBudget,"f"))?(__classPrivateFieldGet(this,_ChatCompletionStream_instances,"m",_ChatCompletionStream_validateStructuredSnapshots).call(this,snapshot),functionSnapshot.parsed_arguments=parseStructuredStreamingJSON(validateStructuredJSONSnapshot(functionSnapshot.arguments))):argumentFragment.length>0&&hasOwn(functionSnapshot,"parsed_arguments")&&(functionSnapshot.parsed_arguments=void 0)}else functionSnapshot.arguments+=argumentFragment}capturedToolCalls.push(Object.freeze({index:index2,arguments_delta:argumentsDelta}))}}Object.freeze(capturedToolCalls)}return snapshot},Symbol.asyncIterator)](){return this._createIterator(push=>{let onChunk=chunk=>push(chunk);return this.on("chunk",onChunk),()=>this.off("chunk",onChunk)},{onReturn:()=>this.abort()})}toReadableStream(){return new Stream(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};function finalizeChatCompletion(snapshot,params,audioDoneChoiceIndexes,validatedMessages){let{id,choices,created,model,system_fingerprint,...rest}=snapshot,completion={...rest,id,choices:mapCapturedSnapshotArray(choices,MAX_STREAM_CHOICES,"choice",choice=>{let validated=validatedMessages.get(choice);if(!validated)throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot");let stableChoice=new Proxy(choice,{get(target,property,receiver){return property==="message"?validated.message:Reflect.get(target,property,receiver)}}),{message:sourceMessage,finish_reason,index,logprobs,...choiceRest}=stableChoice,message=new Proxy(sourceMessage,{get(target,property,receiver){return property==="content"?validated.content:property==="refusal"?validated.refusal:property==="tool_calls"?validated.toolCallCollection:Reflect.get(target,property,receiver)}}),{content=null,function_call,tool_calls,audio,...messageRest}=message,finishReason=finish_reason??(audioDoneChoiceIndexes.has(index)&&isCompleteAudio(audio)?"stop":null);if(!finishReason)throw new OpenAIError(`missing finish_reason for choice ${index}`);let audioResponse=audio?{audio}:{},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:{...audioResponse,content,function_call:{arguments:args,name},role,refusal:message.refusal??null},finish_reason:finishReason,index,logprobs}}return tool_calls?{...choiceRest,index,finish_reason:finishReason,logprobs,message:{...messageRest,...audioResponse,role,content,refusal:message.refusal??null,tool_calls:mapCapturedSnapshotArray(tool_calls,MAX_STREAM_TOOL_CALLS,"tool-call",(tool_call,i)=>{let captured=validated.toolCalls.get(i);if(!captured){let identity=ownFunctionToolIdentity(tool_call);if(identity&&shouldParseToolCall(params,{type:identity.type,function:{name:identity.name}}))throw new OpenAIError("Chat completion stream contains an unsafe structured JSON snapshot")}if(captured&&captured.tool!==tool_call)throw new OpenAIError("Chat completion stream contains a changed tool call identity");let stableFunction=captured&&new Proxy(captured.function,{get(target,property,receiver){return property==="arguments"?captured.arguments:property==="name"?captured.name:Reflect.get(target,property,receiver)}}),stableTool=captured&&stableFunction?new Proxy(tool_call,{get(target,property,receiver){return property==="type"?captured.type:property==="function"?stableFunction:Reflect.get(target,property,receiver)}}):tool_call;if(stableTool.type==null)throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].type`);if(stableTool.type==="custom"){let{custom,type:type2,id:id3,...toolRest2}=stableTool,{input="",name:name2,...customRest}=custom||{};if(name2==null)throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].custom.name`);return{...toolRest2,id:id3||`call_${uuid4()}`,type:type2,custom:{...customRest,name:name2,input}}}let{function:fn,type,id:id2,...toolRest}=stableTool,{arguments:args,name,...fnRest}=fn||{};if(name==null)throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name`);if(args==null)throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments`);return{...toolRest,id:id2||`call_${uuid4()}`,type,function:{...fnRest,name,arguments:args}}})}}:{...choiceRest,message:{...messageRest,...audioResponse,content,role,refusal:message.refusal??null},finish_reason:finishReason,index,logprobs}}),created,model,object:"chat.completion",...system_fingerprint?{system_fingerprint}:{}};return maybeParseChatCompletion(completion,params)}function isCompleteAudio(audio){return audio?.id!=null&&audio.data!=null&&audio.transcript!=null&&audio.expires_at!=null}var ChatCompletionStreamingRunner=class _ChatCompletionStreamingRunner extends ChatCompletionStream{static fromReadableStream(stream){let runner=new _ChatCompletionStreamingRunner(null);return runner._run(()=>runner._fromReadableStream(stream)),runner}toReadableStream(){let lastChunk,toolCallIds,iterator=this._createIterator(push=>{let onChunk=chunk=>{lastChunk=chunk,push(chunk)},onMessage=message=>{if(isAssistantMessage(message)){toolCallIds=message.tool_calls?.map(toolCall=>toolCall.id);return}if(isToolMessage(message)){if(!lastChunk)throw new OpenAIError("cannot serialize a tool message before receiving any chunks");push(makeChatCompletionReadableStreamMessageChunk(lastChunk,message,toolCallIds))}};return this.on("chunk",onChunk),this.on("message",onMessage),()=>{this.off("chunk",onChunk),this.off("message",onMessage)}},{onReturn:()=>this.abort()});return new Stream(()=>iterator,this.controller).toReadableStream()}static runTools(client,params,options){let runner=new _ChatCompletionStreamingRunner(params),opts={...options,__metadata:{...options?.__metadata,helperMethod:"runTools"}};return runner._run(()=>runner._runTools(client,params,runner,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,__metadata:{...options?.__metadata,helperMethod:"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}})}retrieve(alertID,options){return this._client.get(path`/organization/spend_alerts/${alertID}`,{...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 SpendLimit=class extends APIResource{retrieve(options){return this._client.get("/organization/spend_limit",{...options,__security:{adminAPIKeyAuth:!0}})}update(body,options){return this._client.post("/organization/spend_limit",{body,...options,__security:{adminAPIKeyAuth:!0}})}delete(options){return this._client.delete("/organization/spend_limit",{...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 SpendAlerts2=class extends APIResource{create(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/spend_alerts`,{body,...options,__security:{adminAPIKeyAuth:!0}})}retrieve(alertID,params,options){let{project_id}=params;return this._client.get(path`/organization/projects/${project_id}/spend_alerts/${alertID}`,{...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 SpendLimit2=class extends APIResource{retrieve(projectID,options){return this._client.get(path`/organization/projects/${projectID}/spend_limit`,{...options,__security:{adminAPIKeyAuth:!0}})}update(projectID,body,options){return this._client.post(path`/organization/projects/${projectID}/spend_limit`,{body,...options,__security:{adminAPIKeyAuth:!0}})}delete(projectID,options){return this._client.delete(path`/organization/projects/${projectID}/spend_limit`,{...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 APIKeys2=class extends APIResource{create(serviceAccountID,params,options){let{project_id,...body}=params;return this._client.post(path`/organization/projects/${project_id}/service_accounts/${serviceAccountID}/api_keys`,{body,...options,__security:{adminAPIKeyAuth:!0}})}};var ServiceAccounts=class extends APIResource{constructor(){super(...arguments),this.apiKeys=new APIKeys2(this._client)}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}})}};ServiceAccounts.APIKeys=APIKeys2;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.spendLimit=new SpendLimit2(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.SpendLimit=SpendLimit2;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.spendLimit=new SpendLimit(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.SpendLimit=SpendLimit;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 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 InputItems=class extends APIResource{list(responseID,params={},options){let{betas,...query}=params??{};return this._client.getAPIList(path`/responses/${responseID}/input_items?beta=true`,CursorPage,{query,...options,headers:buildHeaders([{...betas?.toString()!=null?{"openai-beta":betas?.toString()}:void 0},options?.headers]),__security:{bearerAuth:!0}})}};var InputTokens=class extends APIResource{count(params={},options){let{betas,...body}=params??{};return this._client.post("/responses/input_tokens?beta=true",{body,...options,headers:buildHeaders([{...betas?.toString()!=null?{"openai-beta":betas?.toString()}:void 0},options?.headers]),__security:{bearerAuth:!0}})}};var Responses=class extends APIResource{constructor(){super(...arguments),this.inputItems=new InputItems(this._client),this.inputTokens=new InputTokens(this._client)}create(params,options){let{betas,...body}=params;return this._client.post("/responses?beta=true",{body,...options,headers:buildHeaders([{...betas?.toString()!=null?{"openai-beta":betas?.toString()}:void 0},options?.headers]),stream:params.stream??!1,__security:{bearerAuth:!0}})}retrieve(responseID,params={},options){let{betas,...query}=params??{};return this._client.get(path`/responses/${responseID}?beta=true`,{query,...options,headers:buildHeaders([{...betas?.toString()!=null?{"openai-beta":betas?.toString()}:void 0},options?.headers]),stream:params?.stream??!1,__security:{bearerAuth:!0}})}delete(responseID,params={},options){let{betas}=params??{};return this._client.delete(path`/responses/${responseID}?beta=true`,{...options,headers:buildHeaders([{Accept:"*/*",...betas?.toString()!=null?{"openai-beta":betas?.toString()}:void 0},options?.headers]),__security:{bearerAuth:!0}})}cancel(responseID,params={},options){let{betas}=params??{};return this._client.post(path`/responses/${responseID}/cancel?beta=true`,{...options,headers:buildHeaders([{...betas?.toString()!=null?{"openai-beta":betas?.toString()}:void 0},options?.headers]),__security:{bearerAuth:!0}})}compact(params,options){let{betas,...body}=params;return this._client.post("/responses/compact?beta=true",{body,...options,headers:buildHeaders([{...betas?.toString()!=null?{"openai-beta":betas?.toString()}:void 0},options?.headers]),__security:{bearerAuth:!0}})}};Responses.InputItems=InputItems;Responses.InputTokens=InputTokens;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 fromBase64=str=>{if(typeof globalThis.Buffer<"u"){let buf=globalThis.Buffer.from(str,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength)}if(typeof atob<"u"){let bstr=atob(str),buf=new Uint8Array(bstr.length);for(let i=0;i<bstr.length;i++)buf[i]=bstr.charCodeAt(i);return buf}throw new OpenAIError("Cannot decode base64 string; Expected `Buffer` or `atob` to be defined")},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=>{try{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}catch{return}};var MAX_ASSISTANT_STREAM_ARRAY_GROWTH=1024,MAX_EXTERNALLY_MUTABLE_ASSISTANT_STREAM_ARRAY_LENGTH=65536;function getAssistantStreamDiagnosticProperty(property){switch(property){case"value":case"arguments":case"input":case"text":case"content":case"annotations":case"metadata":case"name":case"role":case"status":case"tool_calls":case"step_details":return property;default:return"unknown"}}var assistantStreamArrayStates=new WeakMap,externallyMutableAssistantStreamValues=new WeakSet;function createAssistantStreamDeltaProjection(cacheArrays){return{arrays:new Map,cacheArrays,records:new WeakMap}}function commitAssistantStreamArrayProjection(projection){for(let[array,projected]of projection.arrays)projected.cacheable&&!externallyMutableAssistantStreamValues.has(array)?assistantStreamArrayStates.set(array,{length:projected.length,ownEntryCount:projected.ownEntryCount}):assistantStreamArrayStates.delete(array)}function isPrimitiveAssistantStreamValue(value){return typeof value=="string"||typeof value=="number"}function isPrimitiveAssistantStreamArrayDelta(accumulator,delta){return delta.every(isPrimitiveAssistantStreamValue)&&accumulator.every(isPrimitiveAssistantStreamValue)}function countOwnAssistantStreamArrayEntries(accumulator){let count=0;for(let key of Object.keys(accumulator)){let index=Number(key);Number.isSafeInteger(index)&&index>=0&&index<accumulator.length&&String(index)===key&&(count+=1)}return count}function getAssistantStreamArrayOwnEntryCount(accumulator,enforceSparseHoleBudget,cachedState){return enforceSparseHoleBudget?cachedState?.length===accumulator.length?cachedState.ownEntryCount:countOwnAssistantStreamArrayEntries(accumulator):0}function getAssistantStreamDeltaIndex(deltaEntry,kind,baselineLength){let{index}=deltaEntry;if(kind==="array"&&index==null)throw new Error("Expected array delta entry to have an `index` property");if(kind==="array"&&typeof index!="number")throw new TypeError("Expected array delta entry `index` property to be a number but got an invalid value");if(!Number.isSafeInteger(index)||index<0||index>=baselineLength+MAX_ASSISTANT_STREAM_ARRAY_GROWTH||index>=MAX_EXTERNALLY_MUTABLE_ASSISTANT_STREAM_ARRAY_LENGTH){let safeIndex=typeof index=="number"?index:"unknown";throw new OpenAIError(`Assistant stream delta contains an invalid ${kind} index: ${safeIndex}`)}return index}function assertValidAssistantStreamArrayDelta(accumulator,delta,kind,projection,validateRecord){let projectedArray=projection.arrays.get(accumulator);if(!projectedArray){let enforceSparseHoleBudget=projection.cacheArrays&&!externallyMutableAssistantStreamValues.has(accumulator),cachedState=enforceSparseHoleBudget?assistantStreamArrayStates.get(accumulator):void 0;projectedArray={baselineLength:accumulator.length,cacheable:enforceSparseHoleBudget,enforceSparseHoleBudget,entries:new Map,length:accumulator.length,ownEntryCount:getAssistantStreamArrayOwnEntryCount(accumulator,enforceSparseHoleBudget,cachedState)},projection.arrays.set(accumulator,projectedArray)}for(let deltaEntry of delta){if(!isObj(deltaEntry))throw new Error("Expected array delta entry to be an object but got an invalid value");let validatedIndex=getAssistantStreamDeltaIndex(deltaEntry,kind,projectedArray.baselineLength),accumulatedEntry;projectedArray.entries.has(validatedIndex)?accumulatedEntry=projectedArray.entries.get(validatedIndex):hasOwn(accumulator,validatedIndex)?(accumulatedEntry=accumulator[validatedIndex],accumulatedEntry==null&&projectedArray.entries.set(validatedIndex,deltaEntry)):(projectedArray.entries.set(validatedIndex,deltaEntry),projectedArray.ownEntryCount+=1);let projectedLength=Math.max(projectedArray.length,validatedIndex+1);if(projectedArray.enforceSparseHoleBudget&&projectedLength-projectedArray.ownEntryCount>MAX_ASSISTANT_STREAM_ARRAY_GROWTH)throw new OpenAIError(`Assistant stream delta contains an invalid ${kind} index: ${validatedIndex}`);isObj(accumulatedEntry)&&validateRecord(accumulatedEntry,deltaEntry,projection),projectedArray.length=projectedLength}}function assertValidAssistantStreamDeltaIndices(accumulator,delta,projection){let projectedValues=projection.records.get(accumulator);for(let[key,deltaValue]of Object.entries(delta)){if(key==="index"||key==="type")continue;let accumulatedValue;if(projectedValues?.has(key)?accumulatedValue=projectedValues.get(key):hasOwn(accumulator,key)&&(accumulatedValue=accumulator[key]),accumulatedValue==null){projectedValues||(projectedValues=new Map,projection.records.set(accumulator,projectedValues)),projectedValues.set(key,deltaValue);continue}isObj(accumulatedValue)&&isObj(deltaValue)?assertValidAssistantStreamDeltaIndices(accumulatedValue,deltaValue,projection):Array.isArray(accumulatedValue)&&Array.isArray(deltaValue)&&!isPrimitiveAssistantStreamArrayDelta(accumulatedValue,deltaValue)&&assertValidAssistantStreamArrayDelta(accumulatedValue,deltaValue,"array",projection,assertValidAssistantStreamDeltaIndices)}}function isAssistantStreamValueExternallyMutable(value){return(isObj(value)||Array.isArray(value))&&externallyMutableAssistantStreamValues.has(value)}function markAssistantStreamValueExternallyMutable(value){if(!(!isObj(value)&&!Array.isArray(value)||externallyMutableAssistantStreamValues.has(value))){externallyMutableAssistantStreamValues.add(value),Array.isArray(value)&&assistantStreamArrayStates.delete(value);for(let key of Reflect.ownKeys(value)){let descriptor=Object.getOwnPropertyDescriptor(value,key);descriptor&&"value"in descriptor&&markAssistantStreamValueExternallyMutable(descriptor.value)}}}function defineAssistantStreamArrayEntry(accumulator,index,value){externallyMutableAssistantStreamValues.has(accumulator)&&markAssistantStreamValueExternallyMutable(value),Object.defineProperty(accumulator,index,{configurable:!0,enumerable:!0,value,writable:!0})}function getRequiredAssistantStreamArrayIndex(deltaEntry){let{index}=deltaEntry;if(index==null)throw new Error("Expected array delta entry to have an `index` property");if(typeof index!="number")throw new TypeError("Expected array delta entry `index` property to be a number but got an invalid value");return index}function applyAssistantStreamArrayDelta(accumulator,delta,applyRecord){if(isPrimitiveAssistantStreamArrayDelta(accumulator,delta)){accumulator.push(...delta),assistantStreamArrayStates.delete(accumulator);return}for(let deltaEntry of delta){if(!isObj(deltaEntry))throw new Error("Expected array delta entry to be an object but got an invalid value");let index=getRequiredAssistantStreamArrayIndex(deltaEntry);if(hasOwn(accumulator,index)){let accumulatedEntry=accumulator[index];accumulatedEntry==null?(externallyMutableAssistantStreamValues.has(accumulator)&&markAssistantStreamValueExternallyMutable(deltaEntry),accumulator[index]=deltaEntry):accumulator[index]=applyRecord(accumulatedEntry,deltaEntry)}else defineAssistantStreamArrayEntry(accumulator,index,deltaEntry)}}function applyAssistantStreamDelta(accumulator,delta){let externallyMutable=externallyMutableAssistantStreamValues.has(accumulator);for(let[key,deltaValue]of Object.entries(delta)){if(key==="__proto__"||key==="constructor"||key==="prototype")throw new OpenAIError(`Assistant stream delta contains an unsafe property: ${key}`);if(!hasOwn(accumulator,key)){externallyMutable&&markAssistantStreamValueExternallyMutable(deltaValue),accumulator[key]=deltaValue;continue}let accumulatedValue=accumulator[key];if(accumulatedValue==null){externallyMutable&&markAssistantStreamValueExternallyMutable(deltaValue),accumulator[key]=deltaValue;continue}if(key==="index"||key==="type"){accumulator[key]=deltaValue;continue}if(typeof accumulatedValue=="string"&&typeof deltaValue=="string")accumulatedValue+=deltaValue;else if(typeof accumulatedValue=="number"&&typeof deltaValue=="number")accumulatedValue+=deltaValue;else if(isObj(accumulatedValue)&&isObj(deltaValue))accumulatedValue=applyAssistantStreamDelta(accumulatedValue,deltaValue);else if(Array.isArray(accumulatedValue)&&Array.isArray(deltaValue)){applyAssistantStreamArrayDelta(accumulatedValue,deltaValue,applyAssistantStreamDelta);continue}else throw new TypeError(`Unhandled record type: ${getAssistantStreamDiagnosticProperty(key)}`);accumulator[key]=accumulatedValue}return accumulator}function assertSafeAssistantStreamDelta(value){if(!(!isObj(value)&&!Array.isArray(value)))for(let[key,nestedValue]of Object.entries(value)){if(key==="__proto__"||key==="constructor"||key==="prototype")throw new OpenAIError(`Assistant stream delta contains an unsafe property: ${key}`);assertSafeAssistantStreamDelta(nestedValue)}}function accumulateAssistantStreamDelta(accumulator,delta,cacheArrays=!1){assertSafeAssistantStreamDelta(delta);let accumulatorRecord=accumulator,deltaRecord=delta,projection=createAssistantStreamDeltaProjection(cacheArrays&&!isAssistantStreamValueExternallyMutable(accumulator));return assertValidAssistantStreamDeltaIndices(accumulatorRecord,deltaRecord,projection),applyAssistantStreamDelta(accumulatorRecord,deltaRecord),commitAssistantStreamArrayProjection(projection),accumulator}function createAssistantStreamArrayDeltaCommit(accumulator,delta,kind,cacheArrays=!0){assertSafeAssistantStreamDelta(delta);let projection=createAssistantStreamDeltaProjection(cacheArrays&&!isAssistantStreamValueExternallyMutable(accumulator));return assertValidAssistantStreamArrayDelta(accumulator,delta,kind,projection,assertValidAssistantStreamDeltaIndices),()=>commitAssistantStreamArrayProjection(projection)}var _AssistantStream_instances,_AssistantStream_runStepSnapshots,_AssistantStream_runStepIDOwners,_AssistantStream_activeRunStepID,_AssistantStream_messageSnapshots,_AssistantStream_messageIDOwners,_AssistantStream_messageSnapshot,_AssistantStream_activeMessageID,_AssistantStream_finalRun,_AssistantStream_currentContentIndex,_AssistantStream_currentContent,_AssistantStream_currentToolCallIndex,_AssistantStream_currentToolCall,_AssistantStream_currentEvent,_AssistantStream_currentRunSnapshot,_AssistantStream_currentRunStepSnapshot,_AssistantStream_addEvent,_AssistantStream_endRequest,_AssistantStream_validateRunStepEvent,_AssistantStream_reserveRunStepAlias,_AssistantStream_validateMessageEvent,_AssistantStream_reserveMessageAlias,_AssistantStream_handleMessage,_AssistantStream_handleRunStep,_AssistantStream_emitExposed,_AssistantStream_handleEvent,_AssistantStream_accumulateRunStep,_AssistantStream_accumulateMessage,_AssistantStream_accumulateContent,_AssistantStream_handleRun;function stabilizeAssistantStreamEvent(event){let eventDescriptor=Object.getOwnPropertyDescriptor(event,"event"),dataDescriptor=Object.getOwnPropertyDescriptor(event,"data"),eventType=Reflect.get(event,"event",event),data=Reflect.get(event,"data",event),stableData=data;if(eventType==="thread.message.created"||eventType==="thread.message.in_progress"||eventType==="thread.message.delta"||eventType==="thread.message.completed"||eventType==="thread.message.incomplete"||eventType==="thread.run.step.created"||eventType==="thread.run.step.in_progress"||eventType==="thread.run.step.delta"||eventType==="thread.run.step.completed"||eventType==="thread.run.step.failed"||eventType==="thread.run.step.cancelled"||eventType==="thread.run.step.expired"){let messageID=Object.getOwnPropertyDescriptor(data,"id");if(messageID&&"value"in messageID&&Reflect.get(data,"id",data)!==messageID.value){let canonicalID=messageID.value;stableData=new Proxy(data,{get(target,property){return property==="id"?canonicalID:Reflect.get(target,property,target)}})}}let stableEvent=Object.freeze({event:eventType,data:stableData}),ordinaryEvent=eventDescriptor!==void 0&&"value"in eventDescriptor&&eventDescriptor.value===eventType&&dataDescriptor!==void 0&&"value"in dataDescriptor&&dataDescriptor.value===data&&stableData===data;return{event:stableEvent,exposedEvent:ordinaryEvent?event:{event:eventType,data:stableData}}}var AssistantStream=class _AssistantStream extends EventStream{constructor(){super(...arguments),_AssistantStream_instances.add(this),_AssistantStream_runStepSnapshots.set(this,Object.create(null)),_AssistantStream_runStepIDOwners.set(this,new Map),_AssistantStream_activeRunStepID.set(this,void 0),_AssistantStream_messageSnapshots.set(this,Object.create(null)),_AssistantStream_messageIDOwners.set(this,new Map),_AssistantStream_messageSnapshot.set(this,void 0),_AssistantStream_activeMessageID.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_runStepSnapshots=new WeakMap,_AssistantStream_runStepIDOwners=new WeakMap,_AssistantStream_activeRunStepID=new WeakMap,_AssistantStream_messageSnapshots=new WeakMap,_AssistantStream_messageIDOwners=new WeakMap,_AssistantStream_messageSnapshot=new WeakMap,_AssistantStream_activeMessageID=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)](){return this._createIterator(push=>{let onEvent=event=>push(structuredClone(event));return this.on("event",onEvent),()=>this.off("event",onEvent)},{onReturn:()=>this.abort()})}static fromReadableStream(stream){let runner=new _AssistantStream;return runner._run(()=>runner._fromReadableStream(stream)),runner}async _fromReadableStream(readableStream,options){this._listenForAbort(options?.signal),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 _AssistantStream;return runner._run(()=>runner._runToolAssistantStream(runId,runs,params,{...options,__metadata:{...options?.__metadata,helperMethod:"stream"}})),runner}async _createToolAssistantStream(run,runId,params,options){this._listenForAbort(options?.signal);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 _AssistantStream;return runner._run(()=>runner._threadAssistantStream(params,thread,{...options,__metadata:{...options?.__metadata,helperMethod:"stream"}})),runner}static createAssistantStream(threadId,runs,params,options){let runner=new _AssistantStream;return runner._run(()=>runner._runAssistantStream(threadId,runs,params,{...options,__metadata:{...options?.__metadata,helperMethod:"stream"}})),runner}currentEvent(){return markAssistantStreamValueExternallyMutable(__classPrivateFieldGet(this,_AssistantStream_currentEvent,"f")),__classPrivateFieldGet(this,_AssistantStream_currentEvent,"f")}currentRun(){return markAssistantStreamValueExternallyMutable(__classPrivateFieldGet(this,_AssistantStream_currentRunSnapshot,"f")),__classPrivateFieldGet(this,_AssistantStream_currentRunSnapshot,"f")}currentMessageSnapshot(){return markAssistantStreamValueExternallyMutable(__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f")),__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f")}currentRunStepSnapshot(){return markAssistantStreamValueExternallyMutable(__classPrivateFieldGet(this,_AssistantStream_currentRunStepSnapshot,"f")),__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 new Error("Final run was not received.");return __classPrivateFieldGet(this,_AssistantStream_finalRun,"f")}async _createThreadAssistantStream(thread,params,options){this._listenForAbort(options?.signal);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){this._listenForAbort(options?.signal);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){return accumulateAssistantStreamDelta(acc,delta)}_addRun(run){return __classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"run",run),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)}};_AssistantStream_addEvent=function(event){if(this.ended)return;let{event:stableEvent,exposedEvent}=stabilizeAssistantStreamEvent(event),messageID,messageData,runStepID,runStepData;switch(stableEvent.event){case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":{messageID=__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_validateMessageEvent).call(this,stableEvent),messageData=stableEvent.data;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":{runStepID=__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_validateRunStepEvent).call(this,stableEvent),runStepData=stableEvent.data;break}}switch(__classPrivateFieldSet(this,_AssistantStream_currentEvent,exposedEvent,"f"),__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_handleEvent).call(this,exposedEvent),messageID!==void 0&&messageData!==void 0&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_reserveMessageAlias).call(this,messageData,messageID),runStepID!==void 0&&runStepData!==void 0&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_reserveRunStepAlias).call(this,runStepData,runStepID),runStepID===void 0&&__classPrivateFieldGet(this,_AssistantStream_activeRunStepID,"f")!==void 0&&__classPrivateFieldGet(this,_AssistantStream_currentRunStepSnapshot,"f")&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_reserveRunStepAlias).call(this,__classPrivateFieldGet(this,_AssistantStream_currentRunStepSnapshot,"f"),__classPrivateFieldGet(this,_AssistantStream_activeRunStepID,"f")),stableEvent.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,stableEvent);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":{if(runStepID===void 0)throw new OpenAIError("Received assistant run-step event without a canonical run-step ID");let activeRunStep=__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[runStepID];activeRunStep&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_reserveRunStepAlias).call(this,activeRunStep,runStepID),__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_handleRunStep).call(this,stableEvent,runStepID),__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_reserveRunStepAlias).call(this,stableEvent.data,runStepID);let retainedRunStep=__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[runStepID];retainedRunStep&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_reserveRunStepAlias).call(this,retainedRunStep,runStepID);break}case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":{if(__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_handleMessage).call(this,stableEvent),messageID!==void 0){__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_reserveMessageAlias).call(this,stableEvent.data,messageID);let retainedMessage=__classPrivateFieldGet(this,_AssistantStream_messageSnapshots,"f")[messageID];retainedMessage&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_reserveMessageAlias).call(this,retainedMessage,messageID)}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 new Error("Final run has not been received");return __classPrivateFieldGet(this,_AssistantStream_finalRun,"f")},_AssistantStream_validateRunStepEvent=function(event){let descriptor=Object.getOwnPropertyDescriptor(event.data,"id"),runStepID=descriptor&&"value"in descriptor?descriptor.value:void 0;if(typeof runStepID!="string"||runStepID.length===0)throw new OpenAIError("Received assistant run-step event with an invalid run-step ID");if(event.event==="thread.run.step.created"){if(__classPrivateFieldGet(this,_AssistantStream_activeRunStepID,"f")!==void 0)throw new OpenAIError(`Received run-step creation for "${runStepID}" before the active run step "${__classPrivateFieldGet(this,_AssistantStream_activeRunStepID,"f")}" reached a terminal state`);if(hasOwn(__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f"),runStepID)||__classPrivateFieldGet(this,_AssistantStream_runStepIDOwners,"f").has(runStepID))throw new OpenAIError(`Received run-step creation for run step "${runStepID}", which has already been created`);return __classPrivateFieldSet(this,_AssistantStream_activeRunStepID,runStepID,"f"),__classPrivateFieldGet(this,_AssistantStream_runStepIDOwners,"f").set(runStepID,runStepID),runStepID}if(__classPrivateFieldGet(this,_AssistantStream_activeRunStepID,"f")!==void 0){if(runStepID!==__classPrivateFieldGet(this,_AssistantStream_activeRunStepID,"f"))throw new OpenAIError(`Received ${event.event} for run step "${runStepID}", which does not match the active run step "${__classPrivateFieldGet(this,_AssistantStream_activeRunStepID,"f")}"`);return runStepID}if(event.event==="thread.run.step.delta")throw hasOwn(__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f"),runStepID)?new OpenAIError(`Received run-step delta for "${runStepID}" with no active run step`):new OpenAIError("Received a RunStepDelta before creation of a snapshot");if(hasOwn(__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f"),runStepID)||__classPrivateFieldGet(this,_AssistantStream_runStepIDOwners,"f").has(runStepID))throw new OpenAIError(`Received run-step event for run step "${runStepID}", which has already been created`);return __classPrivateFieldGet(this,_AssistantStream_runStepIDOwners,"f").set(runStepID,runStepID),event.event==="thread.run.step.in_progress"&&__classPrivateFieldSet(this,_AssistantStream_activeRunStepID,runStepID,"f"),runStepID},_AssistantStream_reserveRunStepAlias=function(data,canonicalID){let descriptor=Object.getOwnPropertyDescriptor(data,"id"),runStepID=descriptor&&"value"in descriptor?descriptor.value:void 0;if(typeof runStepID!="string"||runStepID.length===0)throw new OpenAIError("Received assistant run-step event with an invalid run-step ID");let owner=__classPrivateFieldGet(this,_AssistantStream_runStepIDOwners,"f").get(runStepID);if(owner!==void 0&&owner!==canonicalID)throw new OpenAIError(`Received run-step creation for run step "${runStepID}", which has already been created`);__classPrivateFieldGet(this,_AssistantStream_runStepIDOwners,"f").set(runStepID,canonicalID)},_AssistantStream_validateMessageEvent=function(event){let descriptor=Object.getOwnPropertyDescriptor(event.data,"id"),messageID=descriptor&&"value"in descriptor?descriptor.value:void 0;if(typeof messageID!="string"||messageID.length===0)throw new OpenAIError("Received assistant message event with an invalid message ID");if(event.event==="thread.message.created"){if(__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"))throw new OpenAIError(`Received message creation for "${messageID}" before the active message "${__classPrivateFieldGet(this,_AssistantStream_activeMessageID,"f")}" reached a terminal state`);if(hasOwn(__classPrivateFieldGet(this,_AssistantStream_messageSnapshots,"f"),messageID)||__classPrivateFieldGet(this,_AssistantStream_messageIDOwners,"f").has(messageID))throw new OpenAIError(`Received message creation for message "${messageID}", which has already been created`);return __classPrivateFieldSet(this,_AssistantStream_activeMessageID,messageID,"f"),__classPrivateFieldGet(this,_AssistantStream_messageIDOwners,"f").set(messageID,messageID),messageID}if(!__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"))throw event.event==="thread.message.delta"?new OpenAIError("Received a delta with no existing snapshot (there should be one from message creation)"):new OpenAIError("Received thread message event with no existing snapshot");if(messageID!==__classPrivateFieldGet(this,_AssistantStream_activeMessageID,"f"))throw new OpenAIError(`Received ${event.event} for message "${messageID}", which does not match the active message "${__classPrivateFieldGet(this,_AssistantStream_activeMessageID,"f")}"`);return messageID},_AssistantStream_reserveMessageAlias=function(data,canonicalID){let descriptor=Object.getOwnPropertyDescriptor(data,"id"),messageID=descriptor&&"value"in descriptor?descriptor.value:void 0;if(typeof messageID!="string"||messageID.length===0)throw new OpenAIError("Received assistant message event with an invalid message ID");let owner=__classPrivateFieldGet(this,_AssistantStream_messageIDOwners,"f").get(messageID);if(owner!==void 0&&owner!==canonicalID)throw new OpenAIError(`Received message creation for message "${messageID}", which has already been created`);__classPrivateFieldGet(this,_AssistantStream_messageIDOwners,"f").set(messageID,canonicalID)},_AssistantStream_handleMessage=function(event){let[accumulatedMessage,newContent]=__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_accumulateMessage).call(this,event,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));if(__classPrivateFieldSet(this,_AssistantStream_messageSnapshot,accumulatedMessage,"f"),!__classPrivateFieldGet(this,_AssistantStream_activeMessageID,"f"))throw new OpenAIError("Received thread message event with no active message ID");__classPrivateFieldGet(this,_AssistantStream_messageSnapshots,"f")[__classPrivateFieldGet(this,_AssistantStream_activeMessageID,"f")]=accumulatedMessage;for(let content of newContent){let snapshotContent=accumulatedMessage.content[content.index];snapshotContent?.type==="text"&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"textCreated",snapshotContent.text)}switch(event.event){case"thread.message.created":{__classPrivateFieldSet(this,_AssistantStream_currentContentIndex,void 0,"f"),__classPrivateFieldSet(this,_AssistantStream_currentContent,void 0,"f"),__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"messageCreated",event.data);break}case"thread.message.in_progress":break;case"thread.message.delta":{if(__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"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")__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"textDelta",textDelta,snapshot.text);else throw new 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":{__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"textDone",__classPrivateFieldGet(this,_AssistantStream_currentContent,"f").text,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));break}case"image_file":{__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"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":{__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"imageFileDone",currentContent.image_file,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));break}case"text":{__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"textDone",currentContent.text,__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f"));break}}}__classPrivateFieldGet(this,_AssistantStream_messageSnapshot,"f")&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"messageDone",event.data),__classPrivateFieldSet(this,_AssistantStream_currentContentIndex,void 0,"f"),__classPrivateFieldSet(this,_AssistantStream_currentContent,void 0,"f"),__classPrivateFieldSet(this,_AssistantStream_messageSnapshot,void 0,"f"),__classPrivateFieldSet(this,_AssistantStream_activeMessageID,void 0,"f")}}},_AssistantStream_handleRunStep=function(event,runStepID){let accumulatedRunStep=__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_accumulateRunStep).call(this,event,runStepID);switch(__classPrivateFieldSet(this,_AssistantStream_currentRunStepSnapshot,accumulatedRunStep,"f"),event.event){case"thread.run.step.created":{__classPrivateFieldSet(this,_AssistantStream_currentToolCallIndex,void 0,"f"),__classPrivateFieldSet(this,_AssistantStream_currentToolCall,void 0,"f"),__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"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")?__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"toolCallDelta",toolCall,accumulatedRunStep.step_details.tool_calls[toolCall.index]):(__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"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")&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"toolCallCreated",__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")));__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"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"),__classPrivateFieldSet(this,_AssistantStream_activeRunStepID,void 0,"f"),event.data.step_details.type==="tool_calls"&&__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"toolCallDone",__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")),__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"runStepDone",event.data,accumulatedRunStep),__classPrivateFieldSet(this,_AssistantStream_currentToolCallIndex,void 0,"f"),__classPrivateFieldSet(this,_AssistantStream_currentToolCall,void 0,"f");break}case"thread.run.step.in_progress":break}},_AssistantStream_emitExposed=function(event,...args){if(this._hasListeners(event))for(let value of args)markAssistantStreamValueExternallyMutable(value);this._emit(event,...args)},_AssistantStream_handleEvent=function(event){__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"event",event)},_AssistantStream_accumulateRunStep=function(event,runStepID){switch(event.event){case"thread.run.step.created":return __classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[runStepID]=event.data,event.data;case"thread.run.step.delta":{let snapshot=__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[runStepID];if(!snapshot)throw new Error("Received a RunStepDelta before creation of a snapshot");let data=event.data;if(data.delta){let accumulated=accumulateAssistantStreamDelta(snapshot,data.delta,!0);__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[runStepID]=accumulated}return __classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[runStepID]}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")[runStepID]=event.data;break}}if(__classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[runStepID])return __classPrivateFieldGet(this,_AssistantStream_runStepSnapshots,"f")[runStepID];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 new Error("Received a delta with no existing snapshot (there should be one from message creation)");let data=event.data;if(data.delta.content){assertSafeAssistantStreamDelta(data.delta);let cacheArrays=!isAssistantStreamValueExternallyMutable(snapshot),commitProjection=createAssistantStreamArrayDeltaCommit(snapshot.content,data.delta.content,"content",cacheArrays);for(let contentElement of data.delta.content)if(hasOwn(snapshot.content,contentElement.index)){let currentContent=snapshot.content[contentElement.index];snapshot.content[contentElement.index]=__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_accumulateContent).call(this,contentElement,currentContent,cacheArrays)}else defineAssistantStreamArrayEntry(snapshot.content,contentElement.index,contentElement),newContent.push(contentElement);commitProjection()}return[snapshot,newContent]}case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":{if(snapshot)return[snapshot,newContent];throw new Error("Received thread message event with no existing snapshot")}}throw new Error("Tried to accumulate a non-message event")},_AssistantStream_accumulateContent=function(contentElement,currentContent,cacheArrays){return accumulateAssistantStreamDelta(currentContent,contentElement,cacheArrays)},_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")&&__classPrivateFieldGet(this,_AssistantStream_instances,"m",_AssistantStream_emitExposed).call(this,"toolCallDone",__classPrivateFieldGet(this,_AssistantStream_currentToolCall,"f")),__classPrivateFieldSet(this,_AssistantStream_currentToolCallIndex,void 0,"f"),__classPrivateFieldSet(this,_AssistantStream_currentToolCall,void 0,"f");break}case"thread.run.cancelling":break}};function sleepUntilAborted(milliseconds,signal){return new Promise((resolve,reject)=>{let timer,registered,settled=!1,removeAbortListener=listener=>{try{signal.removeEventListener("abort",listener)}catch{}},cleanup=()=>{if(timer!==void 0&&(clearTimeout(timer),timer=void 0),registered){let listener=registered;registered=void 0,removeAbortListener(listener)}},abort=()=>{if(!settled){settled=!0,cleanup();try{let error=new APIUserAbortError;Object.defineProperty(error,"cause",{value:signal.reason,writable:!0,configurable:!0}),reject(error)}catch(error){reject(error)}}};if(signal.aborted){abort();return}timer=setTimeout(()=>{settled||(settled=!0,cleanup(),resolve())},milliseconds),registered=abort;try{signal.addEventListener("abort",abort,{once:!0}),settled?removeAbortListener(abort):signal.aborted&&abort()}catch(error){settled?removeAbortListener(abort):(settled=!0,cleanup(),reject(error))}})}async function pollWithResponse(retrieve,intermediateStatuses,terminalStatuses,options){let headers=buildHeaders([options?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":options?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data,response}=await retrieve(headers).withResponse(),{status}=data;if(intermediateStatuses.includes(status)){let sleepInterval=5e3;if(options?.pollIntervalMs)sleepInterval=options.pollIntervalMs;else{let headerInterval=response.headers.get("openai-poll-after-ms");if(headerInterval){let headerIntervalMs=Number.parseInt(headerInterval);Number.isNaN(headerIntervalMs)||(sleepInterval=headerIntervalMs)}}let signal=options&&Object.prototype.propertyIsEnumerable.call(options,"signal")?options.signal:void 0;await(signal?sleepUntilAborted(sleepInterval,signal):sleep(sleepInterval))}else if(terminalStatuses.includes(status))return data}}function pollAssistantRun(resource,runID,params,options){return pollWithResponse(headers=>resource.retrieve(runID,params,{...options,headers:{...options?.headers,...headers}}),["queued","in_progress","cancelling"],["requires_action","incomplete","cancelled","completed","failed","expired"],options)}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){return await pollAssistantRun(this,runId,params,options)}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.responses=new Responses(this._client),this.chatkit=new ChatKit(this._client),this.assistants=new Assistants(this._client),this.threads=new Threads2(this._client)}};Beta.Realtime=Realtime;Beta.Responses=Responses;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 ContentProvenanceChecks=class extends APIResource{create(body,options){return this._client.post("/content_provenance_checks",multipartFormRequestOptions({body,...options,__security:{bearerAuth:!0}},this._client))}};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;function createEmbedding(client,body,options){let hasUserProvidedEncodingFormat=!!body.encoding_format,encodingFormat=hasUserProvidedEncodingFormat?body.encoding_format:"base64";hasUserProvidedEncodingFormat&&loggerFor(client).debug("embeddings/user defined encoding_format:",body.encoding_format);let response=client.post("/embeddings",{body:{...body,encoding_format:encodingFormat},...options,__security:{bearerAuth:!0}});return hasUserProvidedEncodingFormat?response:(loggerFor(client).debug("embeddings/decoding base64 embeddings from base64"),response._thenUnwrap(data=>{if(data&&data.data){let embeddings=data.data,{length}=embeddings;for(let index=0;index<length;index+=1)if(index in embeddings){let embeddingBase64Obj=embeddings[index],embeddingBase64Str=embeddingBase64Obj.embedding;embeddingBase64Obj.embedding=toFloat32Array(embeddingBase64Str)}}return data}))}var Embeddings=class extends APIResource{create(body,options){return createEmbedding(this._client,body,options)}};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;async function waitForFileProcessing(resource,id,pollInterval,maxWait){let terminalStates=new Set(["processed","error","deleted"]),start=Date.now(),file=await resource.retrieve(id);for(;!file.status||!terminalStates.has(file.status);)if(await sleep(pollInterval),file=await resource.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 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}={}){return await waitForFileProcessing(this,id,pollInterval,maxWait)}};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,__metadata:{...options?.__metadata,...body.model==null?{}:{model:body.model}},__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}})}};async function encodedMultipartFormRequestOptions(options,client,encodings,rawBodyField=null){if(options.body===null||typeof options.body!="object"||Array.isArray(options.body))throw new TypeError("Multipart request body must be an object");let body=Object.fromEntries(Object.entries(options.body).filter(([,value])=>value!==void 0));if(rawBodyField!==null&&Object.keys(body).length===1&&Object.prototype.hasOwnProperty.call(body,rawBodyField)){let value=body[rawBodyField];if(typeof value!="string")throw new TypeError("Raw multipart alternative must be a string");return{...options,body:value,headers:buildHeaders([options.headers,{"content-type":encodings[rawBodyField].content_type}])}}let encoded=[];for(let[name,encoding]of Object.entries(encodings)){if(!Object.prototype.hasOwnProperty.call(body,name))continue;let value=body[name],data=encoding.json?JSON.stringify(value):value;if(typeof data!="string")throw new TypeError(`Multipart field ${name} must encode as a string`);encoded.push([name,makeFile([data],"",{type:encoding.content_type})]),delete body[name]}let form=(await multipartFormRequestOptions({...options,body},client)).body;if(!(form instanceof FormData))throw await form.cancel(),new TypeError("Unexpected streaming upload in typed multipart request body");for(let[name,part]of encoded)form.append(name,part,"");return{...options,body:form,headers:buildHeaders([options.headers,{"content-type":null}])}}var Calls=class extends APIResource{create(body,options){return this._client.post("/realtime/calls",encodedMultipartFormRequestOptions({body,...options,headers:buildHeaders([{Accept:"application/sdp"},options?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0},this._client,{sdp:{content_type:"application/sdp",json:!1},session:{content_type:"application/json",json:!0}},"sdp"))}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){if(!params||!hasAutoParseableInput2(params)){let parsed={...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)};return needsOutputText(response,parsed)&&addOutputText(parsed),parsed}return parseResponse(response,params)}function parseResponse(response,params){let shouldParse=!response.status||response.status==="completed",output=response.output.map(item=>{if(item.type==="function_call")return shouldParse?parseToolCall2(params,item):{...item,parsed_arguments:null};if(item.type==="message"){let content=item.content.map(content2=>content2.type==="output_text"?{...content2,parsed:shouldParse?parseTextFormat(params,content2.text):null}:content2);return{...item,content}}return item}),parsed={...response,output};return needsOutputText(response,parsed)&&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 parseResponseFormatContent(params.text?.format,content)}function hasAutoParseableInput2(params){return isParseableResponseFormat(params.text?.format)?!0:Array.isArray(params.tools)&¶ms.tools.some(tool=>isAutoParsableTool2(tool)||tool.type==="function"&&tool.strict===!0)}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),parsedArguments=null;return isAutoParsableTool2(inputTool)?parsedArguments=inputTool.$parseRaw(toolCall.arguments):inputTool?.strict&&(parsedArguments=parseResponseFormatContent({type:"json_schema",$parseRaw:void 0},toolCall.arguments)),{...toolCall,parsed_arguments:parsedArguments}}function needsOutputText(response,target){return!Object.getOwnPropertyDescriptor(response,"output_text")||target.output_text==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 OutputTextIndex=class{constructor(){this.capacity=1,this.values=[0,0],this.size=0}get length(){return this.size}append(value){this.size===this.capacity&&this.grow();let index=this.size;this.size+=1,this.update(index,value)}update(index,value){if(!Number.isSafeInteger(index)||index<0||index>=this.size)throw new RangeError(`missing output at index ${index}`);let node=this.capacity+index,difference=value-(this.values[node]??0);if(difference!==0)for(;node>=1;)this.values[node]=(this.values[node]??0)+difference,node=Math.floor(node/2)}prefixSum(end){if(!Number.isSafeInteger(end)||end<0||end>this.size)throw new RangeError(`missing output at index ${end}`);let start=this.capacity,stop=this.capacity+end,sum=0;for(;start<stop;)start%2===1&&(sum+=this.values[start]??0,start+=1),stop%2===1&&(stop-=1,sum+=this.values[stop]??0),start=Math.floor(start/2),stop=Math.floor(stop/2);return sum}grow(){let previousCapacity=this.capacity;this.capacity*=2;let values=Array.from({length:this.capacity*2},()=>0);for(let index=0;index<this.size;index+=1)values[this.capacity+index]=this.values[previousCapacity+index]??0;for(let index=this.capacity-1;index>0;index-=1)values[index]=(values[index*2]??0)+(values[index*2+1]??0);this.values=values}};function createCanonicalResponseContext(){return{canonicalSnapshot:void 0,outputTextLengths:new WeakMap,outputTextIndex:new OutputTextIndex}}function getOutputText(context,output){if(output.type!=="message")return"";let text="";for(let content of output.content)content.type==="output_text"&&(text+=content.text);return context.outputTextLengths.set(output,text.length),text}function ensureCanonicalOutputText(context,snapshot){if(context.canonicalSnapshot===snapshot)return;let outputTextIndex=new OutputTextIndex,text="";for(let output of snapshot.output){let outputText=getOutputText(context,output);text+=outputText,outputTextIndex.append(outputText.length)}snapshot.output_text=text,context.outputTextIndex=outputTextIndex,context.canonicalSnapshot=snapshot}function cloneResponse(context,response){context.canonicalSnapshot=void 0,context.outputTextLengths=new WeakMap,context.outputTextIndex=new OutputTextIndex;let snapshot=structuredClone(response);return!Object.getOwnPropertyDescriptor(snapshot,"output_text")||snapshot.output_text===null||snapshot.output_text===void 0?ensureCanonicalOutputText(context,snapshot):snapshot.output.length===0&&snapshot.output_text===""&&(context.canonicalSnapshot=snapshot),snapshot}function updateCachedOutputTextLength(context,output,outputIndex,previousText,nextText){let length=context.outputTextLengths.get(output);if(length!==void 0){let nextLength=length-previousText.length+nextText.length;context.outputTextLengths.set(output,nextLength),context.outputTextIndex.update(outputIndex,nextLength)}}function replaceOutputTextSuffix(snapshot,previousText,nextText){if(previousText.length===0){snapshot.output_text+=nextText;return}snapshot.output_text=snapshot.output_text.slice(0,snapshot.output_text.length-previousText.length)+nextText}function getPrecedingContentTextLength(context,output,contentIndex,nextText){if(contentIndex===void 0||output?.type!=="message")return 0;if(contentIndex<output.content.length-contentIndex-1){let precedingContentLength=0;for(let index=0;index<contentIndex;index+=1){let precedingContent=output.content[index];precedingContent?.type==="output_text"&&(precedingContentLength+=precedingContent.text.length)}return precedingContentLength}let followingContentLength=0;for(let index=contentIndex+1;index<output.content.length;index+=1){let followingContent=output.content[index];followingContent?.type==="output_text"&&(followingContentLength+=followingContent.text.length)}return(context.outputTextLengths.get(output)??getOutputText(context,output).length)-followingContentLength-nextText.length}function updateOutputText(context,snapshot,outputIndex,previousText,nextText,contentIndex){if(previousText===nextText)return;let output=snapshot.output[outputIndex];if(outputIndex===snapshot.output.length-1&&(contentIndex===void 0||output?.type==="message"&&contentIndex===output.content.length-1)){replaceOutputTextSuffix(snapshot,previousText,nextText);return}let precedingContentLength=getPrecedingContentTextLength(context,output,contentIndex,nextText),offset=context.outputTextIndex.prefixSum(outputIndex)+precedingContentLength;if(offset+previousText.length===snapshot.output_text.length){replaceOutputTextSuffix(snapshot,previousText,nextText);return}snapshot.output_text=snapshot.output_text.slice(0,offset)+nextText+snapshot.output_text.slice(offset+previousText.length)}var responseOutputIdentityIndexes=new WeakMap;function validateArrayIndex(collection,index,kind,allowAppend=!1){if(!Number.isSafeInteger(index)||index<0||index>collection.length||(index===collection.length?!allowAppend||index in collection:!hasOwn(collection,index)))throw new OpenAIError(`missing ${kind} at index ${index}`)}function validateArrayAppend(collection,index,kind){if(index!==collection.length)throw new OpenAIError(`missing ${kind} at index ${index}`);validateArrayIndex(collection,index,kind,!0)}function getOutput(snapshot,outputIndex){validateArrayIndex(snapshot.output,outputIndex,"output");let output=snapshot.output[outputIndex];if(!output)throw new OpenAIError(`missing output at index ${outputIndex}`);return output}function hasRoutedOutputCallIdentity(output){return output.type==="function_call"||output.type==="custom_tool_call"||output.type==="shell_call"||output.type==="shell_call_output"}function getOutputItemIdentityKeys(output,eventType){if(!hasOwn(output,"type")||typeof output.type!="string")throw new OpenAIError(`expected an own output item type for ${eventType}`);let optionalPlatformID=output.type==="function_call"||output.type==="custom_tool_call",identities=[];if(hasOwn(output,"id")){if(typeof output.id!="string"||output.id.length===0)throw new OpenAIError(`expected a non-empty output item id for ${eventType}`);identities.push(`id:${output.id}`)}else if(!optionalPlatformID)throw new OpenAIError(`expected a non-empty output item id for ${eventType}`);if(hasRoutedOutputCallIdentity(output)){if(!hasOwn(output,"call_id")||typeof output.call_id!="string"||output.call_id.length===0)throw new OpenAIError(`expected a non-empty output item call_id for ${eventType}`);identities.push(`call:${output.type}:${output.call_id}`)}return identities}function assertOutputItemIdentitiesAvailable(identities,keys){for(let key of keys)if(identities.has(key))throw new OpenAIError(`duplicate output item identity '${key}'`)}function addOutputItemIdentities(identities,keys){assertOutputItemIdentitiesAvailable(identities,keys);for(let key of keys)identities.add(key)}function createResponseOutputIdentityIndex(snapshot){let identityIndex={snapshot,output:snapshot.output,length:snapshot.output.length,identities:new Set};for(let index=0;index<snapshot.output.length;index+=1){let output=getOutput(snapshot,index);addOutputItemIdentities(identityIndex.identities,getOutputItemIdentityKeys(output,"response snapshot"))}return identityIndex}function getResponseOutputIdentityIndex(context,snapshot){let cached=responseOutputIdentityIndexes.get(context);if(cached&&cached.snapshot===snapshot&&cached.output===snapshot.output&&cached.length===snapshot.output.length)return cached;let identityIndex=createResponseOutputIdentityIndex(snapshot);return responseOutputIdentityIndexes.set(context,identityIndex),identityIndex}function cloneValidatedResponse(context,response){let nextContext=createCanonicalResponseContext(),snapshot=cloneResponse(nextContext,response),identityIndex=createResponseOutputIdentityIndex(snapshot);return context.canonicalSnapshot=nextContext.canonicalSnapshot,context.outputTextLengths=nextContext.outputTextLengths,context.outputTextIndex=nextContext.outputTextIndex,responseOutputIdentityIndexes.set(context,identityIndex),snapshot}var expectedOutputItemTypes={"response.output_text.delta":"message","response.output_text.done":"message","response.output_text.annotation.added":"message","response.refusal.delta":"message","response.refusal.done":"message","response.function_call_arguments.delta":"function_call","response.function_call_arguments.done":"function_call","response.custom_tool_call_input.delta":"custom_tool_call","response.custom_tool_call_input.done":"custom_tool_call","response.mcp_call_arguments.delta":"mcp_call","response.mcp_call_arguments.done":"mcp_call","response.mcp_call.in_progress":"mcp_call","response.mcp_call.completed":"mcp_call","response.mcp_call.failed":"mcp_call","response.shell_call_output_content.delta":"shell_call_output","response.shell_call_output_content.done":"shell_call_output","response.reasoning_text.delta":"reasoning","response.reasoning_text.done":"reasoning","response.reasoning_summary_part.added":"reasoning","response.reasoning_summary_part.done":"reasoning","response.reasoning_summary_text.delta":"reasoning","response.reasoning_summary_text.done":"reasoning","response.code_interpreter_call_code.delta":"code_interpreter_call","response.code_interpreter_call_code.done":"code_interpreter_call","response.code_interpreter_call.in_progress":"code_interpreter_call","response.code_interpreter_call.interpreting":"code_interpreter_call","response.code_interpreter_call.completed":"code_interpreter_call","response.file_search_call.in_progress":"file_search_call","response.file_search_call.searching":"file_search_call","response.file_search_call.completed":"file_search_call","response.web_search_call.in_progress":"web_search_call","response.web_search_call.searching":"web_search_call","response.web_search_call.completed":"web_search_call","response.image_generation_call.in_progress":"image_generation_call","response.image_generation_call.generating":"image_generation_call","response.image_generation_call.completed":"image_generation_call","response.image_generation_call.partial_image":"image_generation_call","response.mcp_list_tools.in_progress":"mcp_list_tools","response.mcp_list_tools.completed":"mcp_list_tools","response.mcp_list_tools.failed":"mcp_list_tools"};function getExpectedOutputItemType(event){return event.type==="response.content_part.added"||event.type==="response.content_part.done"?event.part.type==="reasoning_text"?"reasoning":"message":expectedOutputItemTypes[event.type]}function validateCompletedOutputItemIdentity(event,snapshot){let output=getOutput(snapshot,event.output_index),replacement=event.item;if(getOutputItemIdentityKeys(output,event.type),getOutputItemIdentityKeys(replacement,event.type),!hasOwn(replacement,"type")||output.type!==replacement.type)throw new OpenAIError(`expected output item type '${output.type}', got '${replacement.type}'`);let outputID=hasOwn(output,"id")?output.id:void 0,replacementID=hasOwn(replacement,"id")?replacement.id:void 0;if(outputID!==replacementID)throw new OpenAIError(`expected output item id '${outputID}', got '${replacementID}'`);if(hasRoutedOutputCallIdentity(output)&&hasRoutedOutputCallIdentity(replacement)&&output.call_id!==replacement.call_id)throw new OpenAIError(`expected output item call_id '${output.call_id}', got '${replacement.call_id}'`)}function validateOutputItemIdentity(event,snapshot,rejectInvalidShellTargets){if(event.type==="response.output_item.done"){validateCompletedOutputItemIdentity(event,snapshot);return}if(rejectInvalidShellTargets&&(event.type==="response.shell_call_command.added"||event.type==="response.shell_call_command.delta"||event.type==="response.shell_call_command.done")){let output2=getOutput(snapshot,event.output_index);if(!hasOwn(output2,"type")||output2.type!=="shell_call")throw new OpenAIError(`expected output item type 'shell_call', got '${output2.type}'`);return}if(event.type!=="response.content_part.added"&&event.type!=="response.content_part.done"&&!hasOwn(expectedOutputItemTypes,event.type))return;let itemEvent=event;if(!hasOwn(event,"item_id")||typeof itemEvent.item_id!="string"||itemEvent.item_id.length===0)throw new OpenAIError(`expected a non-empty item_id for ${event.type}`);let output=getOutput(snapshot,itemEvent.output_index),outputID=hasOwn(output,"id")?output.id:void 0;if(outputID!==itemEvent.item_id)throw new OpenAIError(`expected item_id '${outputID}', got '${itemEvent.item_id}'`);let expectedType=getExpectedOutputItemType(itemEvent);if(output.type!==expectedType)throw new OpenAIError(`expected output item type '${expectedType}', got '${output.type}'`)}function getContent(content,contentIndex){validateArrayIndex(content,contentIndex,"content");let part=content[contentIndex];if(!part)throw new OpenAIError(`missing content at index ${contentIndex}`);return part}function getShellOutputContent(snapshot,output,commandIndex){let shellCall=snapshot.output.find(item=>item.type==="shell_call"&&item.call_id===output.call_id);for(shellCall?validateArrayIndex(shellCall.action.commands,commandIndex,"command"):validateArrayIndex(output.output,commandIndex,"content",!0);output.output.length<=commandIndex;)output.output.push({stdout:"",stderr:"",outcome:{type:"exit",exit_code:0}});return getContent(output.output,commandIndex)}function createSupportedResponseEventTypes(eventTypes){return new Set(eventTypes)}var supportedResponseEventTypes=createSupportedResponseEventTypes(["response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.custom_tool_call_input.delta","response.custom_tool_call_input.done","response.mcp_call_arguments.delta","response.mcp_call_arguments.done","response.shell_call_command.added","response.shell_call_command.done","response.shell_call_command.delta","response.shell_call_output_content.delta","response.shell_call_output_content.done","response.reasoning_text.delta","response.reasoning_text.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.code_interpreter_call_code.delta","response.code_interpreter_call_code.done","response.code_interpreter_call.in_progress","response.code_interpreter_call.interpreting","response.code_interpreter_call.completed","response.file_search_call.in_progress","response.file_search_call.searching","response.file_search_call.completed","response.web_search_call.in_progress","response.web_search_call.searching","response.web_search_call.completed","response.image_generation_call.in_progress","response.image_generation_call.generating","response.image_generation_call.completed","response.mcp_call.in_progress","response.mcp_call.completed","response.mcp_call.failed","response.created","response.queued","response.in_progress","response.completed","response.failed","response.incomplete","response.audio.delta","response.audio.done","response.audio.transcript.delta","response.audio.transcript.done","response.image_generation_call.partial_image","response.mcp_list_tools.in_progress","response.mcp_list_tools.completed","response.mcp_list_tools.failed","keepalive","error"]);function assertNever(_value){throw new OpenAIError("Unhandled response stream event: unknown")}var responseEventRoutingFields=["item_id","output_index","content_index","annotation_index","command_index","summary_index"];function sanitizeResponseEvent(event){let descriptor;try{descriptor=Object.getOwnPropertyDescriptor(event,"type")}catch{return assertNever(event)}let type=descriptor?.value;if(typeof type!="string"||!supportedResponseEventTypes.has(type))return assertNever(event);let stableValues=new Map([["type",type]]);if(type==="response.output_item.added"||type==="response.output_item.done"||type==="response.content_part.added"||type==="response.content_part.done"||type==="response.shell_call_command.added"||type==="response.shell_call_command.delta"||type==="response.shell_call_command.done"||hasOwn(expectedOutputItemTypes,type))try{for(let field of responseEventRoutingFields){let routingDescriptor=Object.getOwnPropertyDescriptor(event,field);stableValues.set(field,routingDescriptor?Reflect.get(event,field,event):void 0)}type==="response.output_item.done"?stableValues.set("item",structuredClone(Reflect.get(event,"item",event))):(type==="response.content_part.added"||type==="response.content_part.done")&&stableValues.set("part",structuredClone(Reflect.get(event,"part",event)))}catch{return assertNever(event)}return new Proxy(event,{get(target,property){return stableValues.has(property)?stableValues.get(property):Reflect.get(target,property,target)}})}function accumulateOutputItemEvent(event,snapshot,context){switch(event.type){case"response.output_item.added":{validateArrayAppend(snapshot.output,event.output_index,"output");let identityIndex=getResponseOutputIdentityIndex(context,snapshot),output=structuredClone(event.item),identities=getOutputItemIdentityKeys(output,event.type);assertOutputItemIdentitiesAvailable(identityIndex.identities,identities),output.type==="message"&&ensureCanonicalOutputText(context,snapshot),snapshot.output.push(output),addOutputItemIdentities(identityIndex.identities,identities),identityIndex.length=snapshot.output.length;let text=getOutputText(context,output);return context.canonicalSnapshot===snapshot&&context.outputTextIndex.append(text.length),text&&(snapshot.output_text+=text),!0}case"response.output_item.done":{let output=getOutput(snapshot,event.output_index),previousText=getOutputText(context,output),replacement=event.item;(output.type==="message"||replacement.type==="message")&&ensureCanonicalOutputText(context,snapshot),snapshot.output[event.output_index]=replacement;let nextText=getOutputText(context,replacement);return context.canonicalSnapshot===snapshot&&context.outputTextIndex.update(event.output_index,nextText.length),updateOutputText(context,snapshot,event.output_index,previousText,nextText),!0}default:return!1}}function accumulateContentPartAddedEvent(event,snapshot,context){switch(event.type){case"response.content_part.added":{let output=getOutput(snapshot,event.output_index),{type}=output,{part}=event;if(type==="message"&&part.type!=="reasoning_text"){validateArrayAppend(output.content,event.content_index,"content");let content=part;content.type==="output_text"&&ensureCanonicalOutputText(context,snapshot),output.content.push(content),content.type==="output_text"&&(updateCachedOutputTextLength(context,output,event.output_index,"",content.text),updateOutputText(context,snapshot,event.output_index,"",content.text,event.content_index))}else if(type==="reasoning"&&part.type==="reasoning_text"){let content=output.content??[];validateArrayAppend(content,event.content_index,"content"),output.content||(output.content=content),content.push(part)}return!0}default:return!1}}function accumulateContentPartDoneEvent(event,snapshot,context){switch(event.type){case"response.content_part.done":{let output=getOutput(snapshot,event.output_index),{part}=event;if(output.type==="message"&&part.type!=="reasoning_text"){let content=getContent(output.content,event.content_index),previousText=content.type==="output_text"?content.text:"",replacement=part;(content.type==="output_text"||replacement.type==="output_text")&&ensureCanonicalOutputText(context,snapshot),output.content[event.content_index]=replacement;let nextText=replacement.type==="output_text"?replacement.text:"";updateCachedOutputTextLength(context,output,event.output_index,previousText,nextText),updateOutputText(context,snapshot,event.output_index,previousText,nextText,event.content_index)}else if(output.type==="reasoning"&&part.type==="reasoning_text"){let{content}=output;if(!content)throw new OpenAIError(`missing content at index ${event.content_index}`);getContent(content,event.content_index),content[event.content_index]=part}return!0}default:return!1}}function accumulateOutputTextEvent(event,snapshot,context){switch(event.type){case"response.output_text.delta":{let output=getOutput(snapshot,event.output_index);if(output.type==="message"){let content=getContent(output.content,event.content_index);if(content.type!=="output_text")throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);let previousText=content.text;ensureCanonicalOutputText(context,snapshot),content.text=previousText+event.delta,updateCachedOutputTextLength(context,output,event.output_index,previousText,content.text),event.output_index===snapshot.output.length-1&&event.content_index===output.content.length-1?snapshot.output_text+=event.delta:updateOutputText(context,snapshot,event.output_index,previousText,content.text,event.content_index)}return!0}case"response.output_text.done":{let output=getOutput(snapshot,event.output_index);if(output.type==="message"){let content=getContent(output.content,event.content_index);if(content.type!=="output_text")throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);let previousText=content.text;ensureCanonicalOutputText(context,snapshot),content.text=event.text,updateCachedOutputTextLength(context,output,event.output_index,previousText,event.text),updateOutputText(context,snapshot,event.output_index,previousText,event.text,event.content_index)}return!0}case"response.output_text.annotation.added":{let output=getOutput(snapshot,event.output_index);if(output.type==="message"){let content=getContent(output.content,event.content_index);if(content.type!=="output_text")throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);validateArrayIndex(content.annotations,event.annotation_index,"annotation",!0),content.annotations[event.annotation_index]=structuredClone(event.annotation)}return!0}default:return!1}}function accumulateRefusalAndArgumentsEvent(event,snapshot){switch(event.type){case"response.refusal.delta":{let output=getOutput(snapshot,event.output_index);if(output.type==="message"){let content=getContent(output.content,event.content_index);if(content.type!=="refusal")throw new OpenAIError(`expected content to be 'refusal', got ${content.type}`);content.refusal+=event.delta}return!0}case"response.refusal.done":{let output=getOutput(snapshot,event.output_index);if(output.type==="message"){let content=getContent(output.content,event.content_index);if(content.type!=="refusal")throw new OpenAIError(`expected content to be 'refusal', got ${content.type}`);content.refusal=event.refusal}return!0}case"response.function_call_arguments.delta":{let output=getOutput(snapshot,event.output_index);return output.type==="function_call"&&(output.arguments+=event.delta),!0}case"response.function_call_arguments.done":{let output=getOutput(snapshot,event.output_index);return output.type==="function_call"&&(output.arguments=event.arguments),!0}case"response.custom_tool_call_input.delta":{let output=getOutput(snapshot,event.output_index);return output.type==="custom_tool_call"&&(output.input+=event.delta),!0}case"response.custom_tool_call_input.done":{let output=getOutput(snapshot,event.output_index);return output.type==="custom_tool_call"&&(output.input=event.input),!0}case"response.mcp_call_arguments.delta":{let output=getOutput(snapshot,event.output_index);return output.type==="mcp_call"&&(output.arguments+=event.delta),!0}case"response.mcp_call_arguments.done":{let output=getOutput(snapshot,event.output_index);return output.type==="mcp_call"&&(output.arguments=event.arguments),!0}default:return!1}}function accumulateShellEvent(event,snapshot){switch(event.type){case"response.shell_call_command.added":case"response.shell_call_command.done":{let output=getOutput(snapshot,event.output_index);if(output.type==="shell_call"){let allowAppend=event.type==="response.shell_call_command.added";validateArrayIndex(output.action.commands,event.command_index,"command",allowAppend),output.action.commands[event.command_index]=event.command}return!0}case"response.shell_call_command.delta":{let output=getOutput(snapshot,event.output_index);return output.type==="shell_call"&&(validateArrayIndex(output.action.commands,event.command_index,"command"),output.action.commands[event.command_index]+=event.delta),!0}case"response.shell_call_output_content.delta":{let output=getOutput(snapshot,event.output_index);if(output.type==="shell_call_output"){let content=getShellOutputContent(snapshot,output,event.command_index);content.stdout+=event.delta.stdout??"",content.stderr+=event.delta.stderr??""}return!0}case"response.shell_call_output_content.done":{let output=getOutput(snapshot,event.output_index);if(output.type==="shell_call_output"){let content=getContent(event.output,0);getShellOutputContent(snapshot,output,event.command_index),output.output[event.command_index]=structuredClone(content)}return!0}default:return!1}}function accumulateReasoningEvent(event,snapshot){switch(event.type){case"response.reasoning_text.delta":{let output=getOutput(snapshot,event.output_index);if(output.type==="reasoning"){if(!output.content)throw new OpenAIError(`missing content at index ${event.content_index}`);let content=getContent(output.content,event.content_index);if(content.type!=="reasoning_text")throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);content.text+=event.delta}return!0}case"response.reasoning_text.done":{let output=getOutput(snapshot,event.output_index);if(output.type==="reasoning"){if(!output.content)throw new OpenAIError(`missing content at index ${event.content_index}`);let content=getContent(output.content,event.content_index);if(content.type!=="reasoning_text")throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);content.text=event.text}return!0}case"response.reasoning_summary_part.added":{let output=getOutput(snapshot,event.output_index);return output.type==="reasoning"&&(validateArrayAppend(output.summary,event.summary_index,"content"),output.summary.push(structuredClone(event.part))),!0}case"response.reasoning_summary_part.done":{let output=getOutput(snapshot,event.output_index);return output.type==="reasoning"&&(getContent(output.summary,event.summary_index),output.summary[event.summary_index]=structuredClone(event.part)),!0}case"response.reasoning_summary_text.delta":{let output=getOutput(snapshot,event.output_index);if(output.type==="reasoning"){let part=getContent(output.summary,event.summary_index);part.text+=event.delta}return!0}case"response.reasoning_summary_text.done":{let output=getOutput(snapshot,event.output_index);if(output.type==="reasoning"){let part=getContent(output.summary,event.summary_index);part.text=event.text}return!0}default:return!1}}function accumulateCodeInterpreterEvent(event,snapshot){switch(event.type){case"response.code_interpreter_call_code.delta":{let output=getOutput(snapshot,event.output_index);return output.type==="code_interpreter_call"&&(output.code=(output.code??"")+event.delta),!0}case"response.code_interpreter_call_code.done":{let output=getOutput(snapshot,event.output_index);return output.type==="code_interpreter_call"&&(output.code=event.code),!0}case"response.code_interpreter_call.in_progress":{let output=getOutput(snapshot,event.output_index);return output.type==="code_interpreter_call"&&(output.status="in_progress"),!0}case"response.code_interpreter_call.interpreting":{let output=getOutput(snapshot,event.output_index);return output.type==="code_interpreter_call"&&(output.status="interpreting"),!0}case"response.code_interpreter_call.completed":{let output=getOutput(snapshot,event.output_index);return output.type==="code_interpreter_call"&&(output.status="completed"),!0}default:return!1}}function accumulateSearchStatusEvent(event,snapshot){switch(event.type){case"response.file_search_call.in_progress":{let output=getOutput(snapshot,event.output_index);return output.type==="file_search_call"&&(output.status="in_progress"),!0}case"response.file_search_call.searching":{let output=getOutput(snapshot,event.output_index);return output.type==="file_search_call"&&(output.status="searching"),!0}case"response.file_search_call.completed":{let output=getOutput(snapshot,event.output_index);return output.type==="file_search_call"&&(output.status="completed"),!0}case"response.web_search_call.in_progress":{let output=getOutput(snapshot,event.output_index);return output.type==="web_search_call"&&(output.status="in_progress"),!0}case"response.web_search_call.searching":{let output=getOutput(snapshot,event.output_index);return output.type==="web_search_call"&&(output.status="searching"),!0}case"response.web_search_call.completed":{let output=getOutput(snapshot,event.output_index);return output.type==="web_search_call"&&(output.status="completed"),!0}default:return!1}}function accumulateImageAndMcpStatusEvent(event,snapshot){switch(event.type){case"response.image_generation_call.in_progress":{let output=getOutput(snapshot,event.output_index);return output.type==="image_generation_call"&&(output.status="in_progress"),!0}case"response.image_generation_call.generating":{let output=getOutput(snapshot,event.output_index);return output.type==="image_generation_call"&&(output.status="generating"),!0}case"response.image_generation_call.completed":{let output=getOutput(snapshot,event.output_index);return output.type==="image_generation_call"&&(output.status="completed"),!0}case"response.mcp_call.in_progress":{let output=getOutput(snapshot,event.output_index);return output.type==="mcp_call"&&(output.status="in_progress"),!0}case"response.mcp_call.completed":{let output=getOutput(snapshot,event.output_index);return output.type==="mcp_call"&&(output.status="completed"),!0}case"response.mcp_call.failed":{let output=getOutput(snapshot,event.output_index);return output.type==="mcp_call"&&(output.status="failed"),!0}default:return!1}}function isResponseLifecycleEvent(event){switch(event.type){case"response.created":case"response.queued":case"response.in_progress":case"response.completed":case"response.failed":case"response.incomplete":return!0;default:return!1}}function isIgnoredResponseEvent(event){switch(event.type){case"response.audio.delta":case"response.audio.done":case"response.audio.transcript.delta":case"response.audio.transcript.done":case"response.image_generation_call.partial_image":case"response.mcp_list_tools.in_progress":case"response.mcp_list_tools.completed":case"response.mcp_list_tools.failed":case"keepalive":case"error":return!0;default:return!1}}function createResponseContext(){return createCanonicalResponseContext()}function accumulateResponseWithContext(event,snapshot,context,rejectInvalidShellTargets=!1,onSanitizedEvent){let dispatchEvent=sanitizeResponseEvent(event);if(onSanitizedEvent&&dispatchEvent.type!=="keepalive"&&onSanitizedEvent(dispatchEvent),!snapshot){if(dispatchEvent.type!=="response.created")throw new OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${dispatchEvent.type}`);return cloneValidatedResponse(context,dispatchEvent.response)}return validateOutputItemIdentity(dispatchEvent,snapshot,rejectInvalidShellTargets),accumulateOutputItemEvent(dispatchEvent,snapshot,context)||accumulateContentPartAddedEvent(dispatchEvent,snapshot,context)||accumulateContentPartDoneEvent(dispatchEvent,snapshot,context)||accumulateOutputTextEvent(dispatchEvent,snapshot,context)||accumulateRefusalAndArgumentsEvent(dispatchEvent,snapshot)||accumulateShellEvent(dispatchEvent,snapshot)||accumulateReasoningEvent(dispatchEvent,snapshot)||accumulateCodeInterpreterEvent(dispatchEvent,snapshot)||accumulateSearchStatusEvent(dispatchEvent,snapshot)||accumulateImageAndMcpStatusEvent(dispatchEvent,snapshot)?snapshot:isResponseLifecycleEvent(dispatchEvent)?cloneValidatedResponse(context,dispatchEvent.response):isIgnoredResponseEvent(dispatchEvent)?snapshot:assertNever(dispatchEvent)}var _ResponseStream_instances,_ResponseStream_params,_ResponseStream_currentResponseSnapshot,_ResponseStream_finalResponse,_ResponseStream_accumulatorContext,_ResponseStream_beginRequest,_ResponseStream_addEvent,_ResponseStream_endRequest,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),_ResponseStream_accumulatorContext.set(this,createResponseContext()),__classPrivateFieldSet(this,_ResponseStream_params,params,"f")}static createResponse(client,params,options){let runner=new _ResponseStream(params);return runner._run(()=>runner._createOrRetrieveResponse(client,params,{...options,__metadata:{...options?.__metadata,helperMethod:"stream"}})),runner}static fromReadableStream(stream){let runner=new _ResponseStream(null);return runner._run(()=>runner._fromReadableStream(stream)),runner}async _createOrRetrieveResponse(client,params,options){this._listenForAbort(options?.signal),__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)}async _fromReadableStream(readableStream,options){this._listenForAbort(options?.signal),__classPrivateFieldGet(this,_ResponseStream_instances,"m",_ResponseStream_beginRequest).call(this),this._connected();let stream=Stream.fromReadableStream(readableStream,this.controller);for await(let event of stream)__classPrivateFieldGet(this,_ResponseStream_instances,"m",_ResponseStream_addEvent).call(this,event,null);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_accumulatorContext=new WeakMap,_ResponseStream_instances=new WeakSet,_ResponseStream_beginRequest=function(){this.ended||(__classPrivateFieldSet(this,_ResponseStream_currentResponseSnapshot,void 0,"f"),__classPrivateFieldSet(this,_ResponseStream_accumulatorContext,createResponseContext(),"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)};if(event.type==="error"){let error="error"in event&&typeof event.error=="object"&&event.error!==null?event.error:event;throw new APIError(void 0,error,event.message,void 0)}let dispatchEvent=event,response=accumulateResponseWithContext(event,__classPrivateFieldGet(this,_ResponseStream_currentResponseSnapshot,"f"),__classPrivateFieldGet(this,_ResponseStream_accumulatorContext,"f"),!0,sanitizedEvent=>{dispatchEvent=sanitizedEvent});switch(__classPrivateFieldSet(this,_ResponseStream_currentResponseSnapshot,response,"f"),maybeEmit("event",event),dispatchEvent.type){case"response.output_text.delta":{let output=response.output[dispatchEvent.output_index];if(!output)throw new OpenAIError(`missing output at index ${dispatchEvent.output_index}`);if(output.type==="message"){let content=output.content[dispatchEvent.content_index];if(!content)throw new OpenAIError(`missing content at index ${dispatchEvent.content_index}`);if(content.type!=="output_text")throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);maybeEmit("response.output_text.delta",{...dispatchEvent,type:dispatchEvent.type,item_id:dispatchEvent.item_id,output_index:dispatchEvent.output_index,content_index:dispatchEvent.content_index,snapshot:content.text})}break}case"response.function_call_arguments.delta":{let output=response.output[dispatchEvent.output_index];if(!output)throw new OpenAIError(`missing output at index ${dispatchEvent.output_index}`);output.type==="function_call"&&maybeEmit("response.function_call_arguments.delta",{...dispatchEvent,type:dispatchEvent.type,item_id:dispatchEvent.item_id,output_index:dispatchEvent.output_index,snapshot:output.arguments});break}default:{maybeEmit(dispatchEvent.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"),__classPrivateFieldSet(this,_ResponseStream_accumulatorContext,createResponseContext(),"f");let parsedResponse=finalizeResponse(snapshot,__classPrivateFieldGet(this,_ResponseStream_params,"f"));return __classPrivateFieldSet(this,_ResponseStream_finalResponse,parsedResponse,"f"),parsedResponse},Symbol.asyncIterator)](){return this._createIterator(push=>{let onEvent=event=>push(event);return this.on("event",onEvent),()=>this.off("event",onEvent)},{onReturn:()=>this.abort()})}async finalResponse(){await this.done();let response=__classPrivateFieldGet(this,_ResponseStream_finalResponse,"f");if(!response)throw new OpenAIError("stream ended without producing a Response");return response}};function finalizeResponse(snapshot,params){return maybeParseResponse(snapshot,params)}var InputItems2=class extends APIResource{list(responseID,query={},options){return this._client.getAPIList(path`/responses/${responseID}/input_items`,CursorPage,{query,...options,__security:{bearerAuth:!0}})}};var InputTokens2=class extends APIResource{count(body={},options){return this._client.post("/responses/input_tokens",{body,...options,__security:{bearerAuth:!0}})}};var Responses2=class extends APIResource{constructor(){super(...arguments),this.inputItems=new InputItems2(this._client),this.inputTokens=new InputTokens2(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}})}};Responses2.InputItems=InputItems2;Responses2.InputTokens=InputTokens2;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,{stripFilenames:!1}))}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,{stripFilenames:!1}))}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;function pollVectorStoreFile(resource,vectorStoreID,fileID,options){return pollWithResponse(headers=>resource.retrieve(fileID,{vector_store_id:vectorStoreID},{...options,headers}),["in_progress"],["failed","completed"],options)}function pollVectorStoreFileBatch(resource,vectorStoreID,batchID,options){return pollWithResponse(headers=>resource.retrieve(batchID,{vector_store_id:vectorStoreID},{...options,headers}),["in_progress"],["failed","cancelled","completed"],options)}var allSettledWithThrow=async promises=>{let results=await Promise.allSettled(promises),rejected=results.filter(result=>result.status==="rejected");if(rejected.length)throw Object.defineProperty(new Error(`${rejected.length} promise(s) failed`),"rejections",{configurable:!0,value:rejected.map(({reason})=>reason),writable:!0});let values=[];for(let result of results)result.status==="fulfilled"&&values.push(result.value);return values};async function uploadAndPollVectorStoreFileBatch(resource,client,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),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=[];workers.length=concurrencyLimit;for(let index=0;index<workers.length;index+=1)workers[index]=processFiles(fileIterator);return await allSettledWithThrow(workers),await resource.createAndPoll(vectorStoreId,{file_ids:allFileIds},options)}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,options);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){return await pollVectorStoreFileBatch(this,vectorStoreID,batchID,options)}async uploadAndPoll(vectorStoreId,{files,fileIds=[]},options){return await uploadAndPollVectorStoreFileBatch(this,this._client,vectorStoreId,files,fileIds,options)}};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){return await pollVectorStoreFile(this,vectorStoreID,fileID,options)}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 MAX_DIRECT_WEBHOOK_VERIFICATIONS=32,SHA256_SIGNATURE_LENGTH=32;function webhookSignatureRequiresSigning(signatureHeader){return signatureHeader.split(" ",MAX_DIRECT_WEBHOOK_VERIFICATIONS+1).length>MAX_DIRECT_WEBHOOK_VERIFICATIONS}function*signatureCandidates(signatureHeader){let start=0;for(;start<=signatureHeader.length;){let separator=signatureHeader.indexOf(" ",start),candidate=signatureHeader.slice(start,separator===-1?void 0:separator);if(yield candidate.startsWith("v1,")?candidate.slice(3):candidate,separator===-1)break;start=separator+1}}function decodeSignature(signature){try{let signatureBytes=fromBase64(signature);return signatureBytes.byteLength===SHA256_SIGNATURE_LENGTH?signatureBytes:void 0}catch{return}}function firstValidLengthSignature(signatureHeader){for(let signature of signatureCandidates(signatureHeader)){let signatureBytes=decodeSignature(signature);if(signatureBytes)return signatureBytes}}function selectMatchingSignature(signatureHeader,expectedSignature,firstSignature){let matchingSignature=firstSignature;for(let signature of signatureCandidates(signatureHeader)){let signatureBytes=decodeSignature(signature);if(!signatureBytes)continue;let difference=0;for(let[index,byte]of signatureBytes.entries())difference|=byte^(expectedSignature[index]??0);difference===0&&(matchingSignature=signatureBytes)}return matchingSignature}async function verifyWebhookSignature(payload,signatureHeader,timestamp,webhookId,secret,tolerance){let timestampSeconds=Number.parseInt(timestamp,10);if(Number.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 useBoundedVerification=webhookSignatureRequiresSigning(signatureHeader),firstSignature=useBoundedVerification?firstValidLengthSignature(signatureHeader):void 0;if(useBoundedVerification&&!firstSignature)throw new InvalidWebhookSignatureError("The given webhook signature does not match the expected signature");let decodedSecret=Uint8Array.from(secret.startsWith("whsec_")?fromBase64(secret.slice(6)):encodeUTF8(secret)),signedPayload=webhookId?`${webhookId}.${timestamp}.${payload}`:`${timestamp}.${payload}`,signedPayloadBytes=Uint8Array.from(encodeUTF8(signedPayload)),key=await crypto.subtle.importKey("raw",decodedSecret,{name:"HMAC",hash:"SHA-256"},!1,useBoundedVerification?["sign","verify"]:["verify"]);if(useBoundedVerification&&firstSignature){let expectedSignature=new Uint8Array(await crypto.subtle.sign("HMAC",key,signedPayloadBytes)),signatureToVerify=selectMatchingSignature(signatureHeader,expectedSignature,firstSignature);try{if(await crypto.subtle.verify("HMAC",key,Uint8Array.from(signatureToVerify),signedPayloadBytes))return}catch{}throw new InvalidWebhookSignatureError("The given webhook signature does not match the expected signature")}for(let signature of signatureCandidates(signatureHeader))try{let signatureBytes=Uint8Array.from(fromBase64(signature));if(await crypto.subtle.verify("HMAC",key,signatureBytes,signedPayloadBytes))return}catch{}throw new InvalidWebhookSignatureError("The given webhook signature does not match the expected signature")}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");if(webhookSignatureRequiresSigning(signatureHeader)&&typeof crypto.subtle.sign!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");return await verifyWebhookSignature(payload,signatureHeader,timestamp,webhookId,secret,tolerance)}};_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 providerDefinitionsKey=Symbol.for("openai.node.providerDefinitions.v1"),providerGlobal=globalThis,existingProviderDefinitions=providerGlobal[providerDefinitionsKey],providerDefinitions=existingProviderDefinitions??new WeakMap;existingProviderDefinitions||Object.defineProperty(providerGlobal,providerDefinitionsKey,{value:providerDefinitions});function configureProvider(provider){let definition=providerDefinitions.get(provider);if(!definition)throw new Error("Invalid provider. Providers must be created with createProvider().");return definition.configure()}var _OpenAI_instances,_a3,_OpenAI_encoder,_OpenAI_x509Authentication,_OpenAI_x509Fetch,_OpenAI_explicitDataResidency,_OpenAI_responseAttempts,_OpenAI_baseURLOverridden;function isRunningInBrowserOrBrowserWorker(){if(isRunningInBrowser())return!0;let scope=globalThis;return typeof scope.WorkerGlobalScope=="function"&&scope instanceof scope.WorkerGlobalScope&&typeof scope.WorkerNavigator=="function"&&scope.navigator instanceof scope.WorkerNavigator&&typeof scope.navigator?.userAgent=="string"&&scope.navigator.userAgent!=="Cloudflare-Workers"&&scope.process?.versions?.node===void 0&&scope.Deno===void 0&&scope.Bun===void 0&&scope.EdgeRuntime===void 0&&scope.WebSocketPair===void 0}var WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER="workload-identity-auth",inheritedDataResidencySelection=Symbol("inheritedDataResidencySelection"),OpenAI=class{constructor(clientOptions={}){_OpenAI_instances.add(this),_OpenAI_encoder.set(this,void 0),_OpenAI_x509Authentication.set(this,void 0),_OpenAI_x509Fetch.set(this,void 0),_OpenAI_explicitDataResidency.set(this,!1),_OpenAI_responseAttempts.set(this,new WeakMap),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.contentProvenanceChecks=new ContentProvenanceChecks(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 Responses2(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 residencyBaseURL=resolveDataResidency(clientOptions),provider=clientOptions.provider,{baseURL=provider?null:readEnv("OPENAI_BASE_URL"),dataResidency:_dataResidency,[inheritedDataResidencySelection]:inheritedResidencySelection=!1,apiKey=provider?null:readEnv("OPENAI_API_KEY")??null,adminAPIKey=provider?null:readEnv("OPENAI_ADMIN_KEY")??null,organization=provider?null:readEnv("OPENAI_ORG_ID")??null,project=provider?null:readEnv("OPENAI_PROJECT_ID")??null,webhookSecret=readEnv("OPENAI_WEBHOOK_SECRET")??null,workloadIdentity,x509Transport,...opts}=clientOptions;if(provider){let conflictingOptions=["apiKey","adminAPIKey","workloadIdentity","x509Transport","baseURL","dataResidency"].filter(key=>(key==="workloadIdentity"?workloadIdentity:clientOptions[key])!=null);if(conflictingOptions.length)throw new OpenAIError(`The \`provider\` option cannot be used with ${conflictingOptions.map(key=>`\`${key}\``).join(", ")}. Configure authentication and the base URL through the provider instead.`)}let identity=isX509WorkloadIdentity(workloadIdentity)?{x509:workloadIdentity,legacy:void 0}:{x509:void 0,legacy:workloadIdentity},x509Identity=identity.x509,usesX509Identity=x509Identity!==void 0,providerRuntime=provider?configureProvider(provider):void 0,options={apiKey,adminAPIKey,organization,project,webhookSecret,workloadIdentity,x509Transport,provider,...opts,baseURL:providerRuntime?.baseURL??residencyBaseURL??(baseURL||(usesX509Identity?X509_API_BASE_URL:"https://api.openai.com/v1"))};if(x509Transport&&!usesX509Identity)throw new OpenAIError("An X.509 transport requires an X.509 workload identity.");if(usesX509Identity){if(residencyBaseURL!==void 0||inheritedResidencySelection)throw new OpenAIError("X.509 workload identity does not support data residency selection.");if(clientOptions.fetch!==void 0)throw new OpenAIError("X.509 workload identity does not support a custom fetch implementation.");if(assertX509APIOrigin(options.baseURL),assertX509RequestOptions(options.fetchOptions),this.fetchWithAuth!==_a3.prototype.fetchWithAuth||this.fetchWithTimeout!==_a3.prototype.fetchWithTimeout)throw new OpenAIError("X.509 workload identity does not support overridden fetch dispatch hooks.")}if(apiKey&&workloadIdentity)throw new OpenAIError("The `apiKey` and `workloadIdentity` options are mutually exclusive");if(!providerRuntime&&!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&&isRunningInBrowserOrBrowserWorker())throw new OpenAIError(`It looks like you're running in a browser-like environment.
|
|
22
|
+
|
|
23
|
+
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
24
|
+
If you understand the risks and have appropriate mitigations in place,
|
|
25
|
+
you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
26
|
+
|
|
27
|
+
new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
28
|
+
|
|
29
|
+
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
30
|
+
`);this.baseURL=options.baseURL,__classPrivateFieldSet(this,_OpenAI_explicitDataResidency,residencyBaseURL!==void 0||inheritedResidencySelection,"f"),this.timeout=options.timeout??_a3.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=provider?void 0:readEnv("OPENAI_CUSTOM_HEADERS");if(customHeadersEnv){let parsed={};for(let line of customHeadersEnv.split(`
|
|
31
|
+
`)){let colon=line.indexOf(":");colon>=0&&(parsed[line.substring(0,colon).trim()]=line.substring(colon+1).trim())}options.defaultHeaders=buildHeaders([parsed,options.defaultHeaders])}if(this._options=options,this._provider=providerRuntime,x509Identity){let authentication=new X509WorkloadIdentityAuth(x509Identity,x509Transport,organization,project);this._workloadIdentityAuth=authentication,__classPrivateFieldSet(this,_OpenAI_x509Authentication,authentication,"f"),__classPrivateFieldSet(this,_OpenAI_x509Fetch,authentication.fetch(),"f"),this.fetch=__classPrivateFieldGet(this,_OpenAI_x509Fetch,"f"),(0,import_x509_transport_state3.markApprovedX509Client)(this)}else identity.legacy&&(this._workloadIdentityAuth=new WorkloadIdentityAuth(identity.legacy,this.fetch));this.apiKey=typeof apiKey=="string"?apiKey:null,this.adminAPIKey=adminAPIKey,this.organization=organization,this.project=project,this.webhookSecret=webhookSecret}withOptions(options){let residencyBaseURL=resolveDataResidency(options),inheritedProvider=this._options.provider,provider=options.provider??inheritedProvider,x509Authentication=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f"),inheritedOptions={...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")?void 0:this.fetch,fetchOptions:this.fetchOptions,apiKey:this._options.apiKey,adminAPIKey:this.adminAPIKey,workloadIdentity:x509Authentication?.identitySnapshot()??this._options.workloadIdentity,x509Transport:this._options.x509Transport,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret},currentlyX509=x509Authentication!==void 0,nextIdentity=hasOwn(options,"workloadIdentity")?options.workloadIdentity:inheritedOptions.workloadIdentity,nextX509=isX509WorkloadIdentity(nextIdentity);currentlyX509!==nextX509&&(delete inheritedOptions.fetch,delete inheritedOptions.baseURL,nextX509?inheritedOptions.apiKey=null:delete inheritedOptions.x509Transport),residencyBaseURL!==void 0&&delete inheritedOptions.baseURL,provider&&(delete inheritedOptions.apiKey,delete inheritedOptions.adminAPIKey,delete inheritedOptions.workloadIdentity,delete inheritedOptions.x509Transport,delete inheritedOptions.baseURL,provider!==inheritedProvider&&(delete inheritedOptions.organization,delete inheritedOptions.project,delete inheritedOptions.defaultHeaders));let clientOptions={...inheritedOptions,...options,provider,[inheritedDataResidencySelection]:__classPrivateFieldGet(this,_OpenAI_explicitDataResidency,"f")&&residencyBaseURL===void 0&&!hasOwn(options,"baseURL")&&!provider},client=new this.constructor(clientOptions);return __classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")&&__classPrivateFieldGet(client,_OpenAI_x509Authentication,"f")&&this.baseURL===client.baseURL&&__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f").matches(__classPrivateFieldGet(client,_OpenAI_x509Authentication,"f"))&&(client._workloadIdentityAuth=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f"),__classPrivateFieldSet(client,_OpenAI_x509Authentication,__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f"),"f"),__classPrivateFieldSet(client,_OpenAI_x509Fetch,__classPrivateFieldGet(this,_OpenAI_x509Fetch,"f"),"f")),client}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(__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")??this._workloadIdentityAuth)instanceof X509WorkloadIdentityAuth&&schemes.adminAPIKeyAuth&&this.adminAPIKey!==null?await this.adminAPIKeyAuth(opts):buildHeaders([schemes.bearerAuth?await this.bearerAuth(opts):null,schemes.adminAPIKeyAuth?await this.adminAPIKeyAuth(opts):null])}async bearerAuth(opts){let authentication=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")??this._workloadIdentityAuth;if(authentication){if(authentication instanceof X509WorkloadIdentityAuth){if(authentication===this._workloadIdentityAuth&&(this.fetchWithAuth!==_a3.prototype.fetchWithAuth||this.fetchWithTimeout!==_a3.prototype.fetchWithTimeout))throw new OpenAIError("X.509 workload identity does not support overridden fetch dispatch hooks.");let snapshots=authentication.headerSnapshots();if(!X509WorkloadIdentityAuth.shouldAuthenticate(opts,snapshots.defaultHeaders,snapshots.requestHeaders))return}let token=authentication instanceof X509WorkloadIdentityAuth?await authentication.getToken(opts,{apiURL:authentication.requestAPIURL(),...authentication.headerSnapshots(),...authentication.requestSnapshot(),signal:authentication.effectiveSignal(),...authentication.tenantSnapshot()}):await authentication.getToken();return buildHeaders([{Authorization:`Bearer ${token}`}])}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){let normalizedError=error&&typeof error=="object"&&error.error==null?{error}:error;return APIError.generate(status,normalizedError,message,headers)}async _callApiKey(){if(this._provider)return!1;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){if(this._provider)return;(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){let authentication=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")??this._workloadIdentityAuth,request=authentication instanceof X509WorkloadIdentityAuth?Promise.resolve(options).then(resolved=>authentication.runRequest(()=>this.makeRequest(resolved,remainingRetries,void 0),this)):this.makeRequest(options,remainingRetries,void 0);return this.responsePromise(request)}responsePromise(request,parse=(client,props)=>this.parseResponseWithTimeout(client,props)){let promise=new APIPromise(this,request,(client,props)=>{let resume=__classPrivateFieldGet(this,_OpenAI_responseAttempts,"f").get(props.controller)?.continueRequest;return resume?resume(()=>parse(client,props)):parse(client,props)});return promise.withResponse=async()=>{let data=await promise,{response}=await request;return{data,response,request_id:response.headers.get("x-request-id")}},promise._thenUnwrap=transform=>this.responsePromise(request,async(client,props)=>addRequestID(transform(await parse(client,props),props),props.response)),promise}async parseResponseWithTimeout(client,props){if(props.options.stream||props.options.__binaryResponse||props.response.status===204||props.response.headers.get("content-length")==="0")return defaultParseResponse(client,props);for(;;){let attempt=__classPrivateFieldGet(this,_OpenAI_responseAttempts,"f").get(props.controller),timeout=attempt?.timeout??props.options.timeout??this.timeout,x509Authentication=attempt?.authentication,callerSignal=x509Authentication?props.controller.signal:props.options.signal,abortError=()=>x509Authentication&&callerSignal?this._makeUserAbortError(callerSignal):new APIUserAbortError,remaining;try{remaining=x509Authentication?.remainingTimeout(props.options,timeout)??Math.max(0,props.startTime+timeout-Date.now())}catch(error){let cancellation=callerSignal?.aborted?abortError():void 0;throw props.controller.abort(),CancelReadableStream(props.response.body).catch(()=>{}),cancellation??error}let timer,abortListener,timedOut=!1;try{if(callerSignal?.aborted&&attempt?.helperMethod!=="runTools")throw abortError();let timeoutPromise=new Promise((_,reject)=>{timer=setTimeout(()=>{timedOut=!0,props.controller.abort(),reject(new APIConnectionTimeoutError)},remaining),callerSignal&&(abortListener=()=>{timedOut||reject(abortError())},callerSignal.addEventListener("abort",abortListener,{once:!0}))});return await Promise.race([defaultParseResponse(client,props),timeoutPromise])}catch(error){if(callerSignal?.aborted&&!timedOut)throw abortError();if(!timedOut)throw x509Authentication&&error instanceof SyntaxError?new SyntaxError("X.509 workload identity API response contains invalid JSON."):x509Authentication&&!(error instanceof OpenAIError)?new APIConnectionError({message:"X.509 workload identity API response body could not be read."}):error;let retriesRemaining=attempt?.retriesRemaining??0;if(!retriesRemaining||attempt?.hasStreamingBody||props.options.__metadata?.hasStreamingBody||globalThis.ReadableStream&&props.options.body instanceof globalThis.ReadableStream||typeof props.options.body=="object"&&props.options.body!==null&&(Symbol.asyncIterator in props.options.body||Symbol.iterator in props.options.body&&"next"in props.options.body&&typeof props.options.body.next=="function"))throw new APIConnectionTimeoutError;timer!==void 0&&clearTimeout(timer),abortListener&&callerSignal?.removeEventListener("abort",abortListener),abortListener=void 0;let next=await this.retryRequest(props.options,retriesRemaining,props.retryOfRequestLogID??props.requestLogID);Object.assign(props,next)}finally{timer!==void 0&&clearTimeout(timer),abortListener&&callerSignal?.removeEventListener("abort",abortListener)}}}async readX509ResponseError(response,options,timeout,controller,authentication){let deadline=new AbortController,callerSignal=controller.signal,timedOut=!1,cancel=()=>deadline.abort(callerSignal.reason);callerSignal.addEventListener("abort",cancel,{once:!0}),callerSignal.aborted&&cancel();try{let remaining=authentication.remainingTimeout(options,timeout),expiration=authentication.waitForRetry(remaining,deadline.signal).then(()=>{throw new APIConnectionTimeoutError}),body=await Promise.race([response.text().catch(()=>"X.509 workload identity API response body could not be read."),expiration]);if(callerSignal.aborted)throw this._makeUserAbortError(callerSignal);return body}catch(error){throw error instanceof APIConnectionTimeoutError&&(timedOut=!callerSignal.aborted,controller.abort(),CancelReadableStream(response.body).catch(()=>{})),callerSignal.aborted&&!timedOut?this._makeUserAbortError(callerSignal):error}finally{callerSignal.removeEventListener("abort",cancel),deadline.abort()}}async makeRequest(optionsInput,retriesRemaining,retryOfRequestLogID){let options=await optionsInput,maxRetries=options.maxRetries??this.maxRetries;retriesRemaining==null&&(retriesRemaining=maxRetries),await this.prepareOptions(options);let x509Authentication=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f");x509Authentication?.beginRequestPlanning();let built;try{let candidate=await this.buildRequest(options,{retryCount:maxRetries-retriesRemaining});if(built={req:candidate.req,url:candidate.url,timeout:candidate.timeout},x509Authentication){validatePositiveInteger("timeout",built.timeout),x509Authentication.authorizePlannedRequest(built.url,built.req,built.timeout),X509WorkloadIdentityAuth.isStreamingRequestBody(built.req.body)&&(options.__metadata={...options.__metadata,hasStreamingBody:!0}),await this.prepareRequest(built.req,{url:built.url,options}),await this._provider?.prepareRequest?.(built.req,{url:built.url,options}),x509Authentication.beginRequestPlanning(),x509Authentication.authorizePlannedRequest(built.url,built.req,built.timeout,!0),X509WorkloadIdentityAuth.isStreamingRequestBody(built.req.body)&&(options.__metadata={...options.__metadata,hasStreamingBody:!0});let callerSignal2=x509Authentication.requestSnapshot().signal;if(callerSignal2?.aborted||built.req.signal?.aborted)throw this._makeUserAbortError(callerSignal2?.aborted?callerSignal2:built.req.signal);x509Authentication.setEffectiveSignal(built.req.signal||callerSignal2?createRequestController(built.req.signal??callerSignal2,callerSignal2).signal:void 0),x509Authentication.beginRequestNetwork();let security2=options.__security??{bearerAuth:!0},authenticationHeaders=await this.authHeaders(options,security2),suppliedHeaders=x509Authentication.headerSnapshots(),supplied=buildHeaders([suppliedHeaders.defaultHeaders,suppliedHeaders.requestHeaders]);for(let[name,value]of authenticationHeaders?.values??[])!supplied.nulls.has(name)&&!built.req.headers.has(name)&&built.req.headers.set(name,value);this.validateHeaders(buildHeaders([supplied,built.req.headers]),security2)}}catch(error){if(x509Authentication?.retireRequestBody(),x509Authentication&&retriesRemaining&&!options.__metadata?.hasStreamingBody&&X509WorkloadIdentityAuth.isRetryableFailure(error))return await this.retryRequest(options,retriesRemaining,retryOfRequestLogID??"x509-token-exchange",X509WorkloadIdentityAuth.retryHeaders(error));throw error}let{req,url}=built,timeout=x509Authentication?Math.min(built.timeout,x509Authentication.requestSnapshot().timeout):built.timeout;x509Authentication?.bindRequest(options,req,this.adminAPIKey);let hasStreamingBody=options.__metadata?.hasStreamingBody===!0;x509Authentication||(await this.prepareRequest(req,{url,options}),await this._provider?.prepareRequest?.(req,{url,options})),x509Authentication?.adoptRequestHeaders(req),x509Authentication&&X509WorkloadIdentityAuth.isStreamingRequestBody(req.body)&&(hasStreamingBody=!0);let requestLogID="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),retryLogStr=retryOfRequestLogID===void 0?"":`, retryOf: ${retryOfRequestLogID}`,startTime=x509Authentication?.requestStartedAt(options)??Date.now();loggerFor(this).debug(`[${requestLogID}] sending request`,formatRequestDetails({retryOfRequestLogID,method:options.method,url,options:x509Authentication?{body:req.body,...x509Authentication.requestSnapshot()}:options,headers:req.headers}));let callerSignal=x509Authentication?x509Authentication.requestSnapshot().signal:options.signal;if(callerSignal?.aborted||req.signal?.aborted)throw this._makeUserAbortError(callerSignal?.aborted?callerSignal:req.signal);let security=options.__security??{bearerAuth:!0},controller=x509Authentication||this.fetchWithTimeout===_a3.prototype.fetchWithTimeout?createRequestController(req.signal??(x509Authentication?callerSignal:void 0),x509Authentication?callerSignal:void 0):new AbortController,remainingTimeout=x509Authentication?.remainingTimeout(options,timeout)??timeout,fetchWithAuth=x509Authentication?_a3.prototype.fetchWithAuth:this.fetchWithAuth;x509Authentication?.releaseRequestBody(req.body);let response=await fetchWithAuth.call(this,url,req,remainingTimeout,controller,security).catch(castToError),headersTime=Date.now();if(response instanceof globalThis.Error){let retryMessage=`retrying, ${retriesRemaining} attempts remaining`;if(callerSignal?.aborted||req.signal?.aborted)throw this._makeUserAbortError(callerSignal?.aborted?callerSignal:req.signal);let isTimeout=isAbortError(response)||/timed? ?out/i.test(String(response)+("cause"in response?String(response.cause):""));if(retriesRemaining&&!hasStreamingBody&&(!x509Authentication||(0,import_x509_transport_state3.isTransientX509ConnectionError)(response)))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:x509Authentication?"X.509 workload identity API connection failed.":response.message})),this.retryRequest(options,retriesRemaining,retryOfRequestLogID??requestLogID);let terminalMessage=hasStreamingBody?"error; streaming body cannot be retried":"error; no more retries left";if(loggerFor(this).info(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} - ${terminalMessage}`),loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout?"timed out":"failed"} (${terminalMessage})`,formatRequestDetails({retryOfRequestLogID,url,durationMs:headersTime-startTime,message:x509Authentication?"X.509 workload identity API connection failed.":response.message})),response instanceof OAuthError||response instanceof SubjectTokenProviderError)throw response;if(isTimeout){let transportCause="cause"in response?response.cause:void 0,timeoutError=typeof transportCause=="object"&&transportCause!==null&&"code"in transportCause&&transportCause.code==="UND_ERR_HEADERS_TIMEOUT"?new APIConnectionTimeoutError({message:"Request timed out. Node.js fetch timed out waiting for response headers; configure a matching undici fetch and fetchOptions.dispatcher with an Agent whose headersTimeout is at least the SDK timeout."}):new APIConnectionTimeoutError;throw x509Authentication?new APIConnectionTimeoutError:Object.assign(timeoutError,{cause:response})}throw x509Authentication?new APIConnectionError({message:"X.509 workload identity API connection failed."}):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){let rejectedX509Credential=response.status===401&&x509Authentication&&security.bearerAuth&&x509Authentication.usedWorkloadToken(options);if(rejectedX509Credential&&x509Authentication.invalidateToken(),response.status===401&&(x509Authentication||this._workloadIdentityAuth)&&security.bearerAuth&&(!x509Authentication||x509Authentication.usedWorkloadToken(options))&&(!x509Authentication||retriesRemaining>0)&&!hasStreamingBody&&!options.__metadata?.workloadIdentityTokenRefreshed){x509Authentication?CancelReadableStream(response.body).catch(()=>{}):(await CancelReadableStream(response.body),this._workloadIdentityAuth?.invalidateToken());let replayOptions={...options,__metadata:{...options.__metadata,workloadIdentityTokenRefreshed:!0}};return this.makeRequest(replayOptions,x509Authentication?retriesRemaining-1:retriesRemaining,retryOfRequestLogID??requestLogID)}let shouldRetry=rejectedX509Credential&&options.__metadata?.workloadIdentityTokenRefreshed?!1:await this.shouldRetry(response);if(retriesRemaining&&shouldRetry&&!hasStreamingBody){let retryMessage2=`retrying, ${retriesRemaining} attempts remaining`;return x509Authentication?CancelReadableStream(response.body).catch(()=>{}):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?hasStreamingBody?"error; streaming body cannot be retried":"error; no more retries left":"error; not retryable";loggerFor(this).info(`${responseInfo} - ${retryMessage}`);let errText=x509Authentication?await this.readX509ResponseError(response,options,timeout,controller,x509Authentication):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)}loggerFor(this).info(responseInfo),loggerFor(this).debug(`[${requestLogID}] response start`,formatRequestDetails({retryOfRequestLogID,url:response.url,status:response.status,headers:response.headers,durationMs:headersTime-startTime}));let continueRequest=x509Authentication?.continuation();return x509Authentication?.releaseRequestCredentials(),__classPrivateFieldGet(this,_OpenAI_responseAttempts,"f").set(controller,{timeout,retriesRemaining,hasStreamingBody,...x509Authentication?{authentication:x509Authentication}:{},helperMethod:options.__metadata?.helperMethod,...continueRequest?{continueRequest}:{}}),{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 authentication=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")??this._workloadIdentityAuth,request=authentication instanceof X509WorkloadIdentityAuth?Promise.resolve(options).then(resolved=>authentication.runRequest(()=>this.makeRequest(resolved,null,void 0),this)):this.makeRequest(options,null,void 0),page=new PagePromise(this,request,Page2),guarded=this.responsePromise(request,async(client,props)=>{let body=await this.parseResponseWithTimeout(client,props);return new Page2(client,props.response,body,props.options)});return page.then=guarded.then.bind(guarded),page.catch=guarded.catch.bind(guarded),page.finally=guarded.finally.bind(guarded),page.withResponse=guarded.withResponse.bind(guarded),page._thenUnwrap=guarded._thenUnwrap.bind(guarded),page}async fetchWithAuth(url,init,timeout,controller,schemes={bearerAuth:!0,adminAPIKeyAuth:!0}){if(this._workloadIdentityAuth&&!__classPrivateFieldGet(this,_OpenAI_x509Fetch,"f")&&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(__classPrivateFieldGet(this,_OpenAI_x509Fetch,"f")?_a3.prototype.fetchWithTimeout:this.fetchWithTimeout).call(this,url,init,timeout,controller)}async fetchWithTimeout(url,init,ms,controller){let{signal,method,...options}=init||{},abort=this._makeAbort(controller),composed=!!signal&&composedCallerSignals.get(controller)===signal;signal&&!composed&&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(__classPrivateFieldGet(this,_OpenAI_x509Fetch,"f")??this.fetch).call(void 0,url,fetchOptions)}catch(err){throw signal&&!composed&&signal.removeEventListener("abort",abort),err}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===void 0){let timeoutSeconds=parseFloat(retryAfterHeader);Number.isNaN(timeoutSeconds)?timeoutMillis=Date.parse(retryAfterHeader)-Date.now():timeoutMillis=timeoutSeconds*1e3}if(timeoutMillis===void 0||!Number.isFinite(timeoutMillis)||timeoutMillis<0||timeoutMillis>60*1e3){let maxRetries=options.maxRetries??this.maxRetries;timeoutMillis=this.calculateDefaultRetryTimeoutMillis(retriesRemaining,maxRetries)}let x509Authentication=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f");if(x509Authentication){let remaining=x509Authentication.remainingTimeout(options,x509Authentication.requestSnapshot().timeout);if(timeoutMillis>=remaining)throw new APIConnectionTimeoutError}return x509Authentication?await x509Authentication.waitForRetry(timeoutMillis,x509Authentication.effectiveSignal()):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}={}){if(__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")&&!__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f").inRequest(this)){let authentication=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f");return await authentication.runRequest(async()=>{let built=await _a3.prototype.buildRequest.call(this,inputOptions,{retryCount});return authentication.releaseRequestBody(built.req.body),built},this)}let options={...inputOptions},x509Authentication=__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f"),x509Tenant=x509Authentication?.snapshotTenant(this.organization,this.project),x509Headers=x509Authentication?.snapshotHeaders(this._options.defaultHeaders,options.headers);x509Headers&&(options.headers=x509Headers.requestHeaders);let x509ClientFetchOptions=x509Authentication?snapshotX509RequestOptions(this.fetchOptions):void 0,x509RequestFetchOptions=x509Authentication?snapshotX509RequestOptions(options.fetchOptions):void 0,{method,path:path2,query,defaultBaseURL}=options,url=this.buildURL(path2,query,defaultBaseURL);x509Authentication?.snapshotAPIURL(url);let explicitTimeout="timeout"in options;if(explicitTimeout&&validatePositiveInteger("timeout",options.timeout),options.timeout=options.timeout??this.timeout,x509Authentication&&x509RequestFetchOptions&&x509Authentication.snapshotRequest(options.signal,options.timeout,x509RequestFetchOptions),x509Authentication){let snapshot=x509Authentication.requestSnapshot();options.timeout=snapshot.timeout,snapshot.signal===void 0?delete options.signal:options.signal=snapshot.signal}let{bodyHeaders,body,isStreamingBody}=this.buildBody({options});isStreamingBody&&(inputOptions.__metadata={...inputOptions.__metadata,hasStreamingBody:!0},x509Authentication?.ownRequestBody(body,options.body));let reqHeaders=await this.buildHeaders({options:inputOptions,method,bodyHeaders,retryCount,x509Headers,x509Timeout:explicitTimeout?options.timeout:void 0,x509Tenant});return{req:{method,headers:reqHeaders,...options.signal&&{signal:options.signal},...globalThis.ReadableStream&&body instanceof globalThis.ReadableStream&&{duplex:"half"},...body&&{body},...(x509Authentication?x509ClientFetchOptions:this.fetchOptions)??{},...(x509Authentication?x509RequestFetchOptions:options.fetchOptions)??{}},url,timeout:options.timeout}}async buildHeaders({options,method,bodyHeaders,retryCount,x509Headers,x509Timeout,x509Tenant}){let idempotencyHeaders={};this.idempotencyHeader&&method!=="get"&&(options.idempotencyKey||(options.idempotencyKey=this.defaultIdempotencyKey()),idempotencyHeaders[this.idempotencyHeader]=options.idempotencyKey);let helperMethod=options.__metadata?.helperMethod,timeout=x509Headers?x509Timeout:options.timeout,headers=buildHeaders([idempotencyHeaders,{Accept:"application/json",...isRunningInBrowserOrBrowserWorker()?void 0:{"User-Agent":this.getUserAgent()},"X-Stainless-Retry-Count":String(retryCount),...timeout?{"X-Stainless-Timeout":String(Math.trunc(timeout/1e3))}:{},...getPlatformHeaders(),...typeof helperMethod=="string"?{"X-Stainless-Helper-Method":helperMethod}:{},"OpenAI-Organization":x509Tenant?x509Tenant.organization:this.organization,"OpenAI-Project":x509Tenant?x509Tenant.project:this.project},this._provider||__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")?.isPlanningRequest()?void 0:await this.authHeaders(options,options.__security??{bearerAuth:!0}),x509Headers?.defaultHeaders??this._options.defaultHeaders,bodyHeaders,x509Headers?.requestHeaders??options.headers]);return!this._provider&&!__classPrivateFieldGet(this,_OpenAI_x509Authentication,"f")?.isPlanningRequest()&&this.validateHeaders(headers,options.__security??{bearerAuth:!0}),headers.values}_makeAbort(controller){return()=>controller.abort()}_makeUserAbortError(signal){let error=new APIUserAbortError;return Object.defineProperty(error,"cause",{value:signal.reason,writable:!0,configurable:!0}),error}buildBody({options}){let{body,headers:rawHeaders}=options;if(!body)return body===void 0&&"body"in options?{...__classPrivateFieldGet(this,_OpenAI_encoder,"f").call(this,{body,headers:buildHeaders([rawHeaders])}),isStreamingBody:!1}:{bodyHeaders:void 0,body:void 0,isStreamingBody:!1};let headers=buildHeaders([rawHeaders]),isReadableStream2=typeof globalThis.ReadableStream<"u"&&body instanceof globalThis.ReadableStream,isRetryableBody=!isReadableStream2&&(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||isReadableStream2?{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}}};_a3=OpenAI,_OpenAI_encoder=new WeakMap,_OpenAI_x509Authentication=new WeakMap,_OpenAI_x509Fetch=new WeakMap,_OpenAI_explicitDataResidency=new WeakMap,_OpenAI_responseAttempts=new WeakMap,_OpenAI_instances=new WeakSet,_OpenAI_baseURLOverridden=function(){return __classPrivateFieldGet(this,_OpenAI_explicitDataResidency,"f")||this._provider!==void 0||this.baseURL!=="https://api.openai.com/v1"};OpenAI.OpenAI=_a3;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.toStreamingFile=toStreamingFile;OpenAI.Completions=Completions2;OpenAI.Chat=Chat;OpenAI.Embeddings=Embeddings;OpenAI.Files=Files2;OpenAI.Images=Images;OpenAI.ContentProvenanceChecks=ContentProvenanceChecks;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=Responses2;OpenAI.Realtime=Realtime2;OpenAI.Conversations=Conversations;OpenAI.Evals=Evals;OpenAI.Containers=Containers;OpenAI.Skills=Skills;OpenAI.Videos=Videos;var composedCallerSignals=new WeakMap;function createRequestController(callerSignal,originalSignal){let controller=new AbortController;if(!callerSignal)return controller;let nativeAbortSignal=globalThis.AbortSignal;if(typeof nativeAbortSignal?.any!="function"||!(callerSignal instanceof nativeAbortSignal))return controller;try{let signals=[controller.signal,callerSignal];originalSignal&&originalSignal!==callerSignal&&signals.push(originalSignal);let composed=nativeAbortSignal.any(signals);Object.defineProperty(controller,"signal",{value:composed,configurable:!0}),composedCallerSignals.set(controller,callerSignal)}catch{}return controller}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&¤t&&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,dataResidency,...opts}={}){if(assertNoDataResidency(dataResidency,"AzureOpenAI"),!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??(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");let endpointEnd=endpoint.length;for(;endpointEnd>0&&endpoint[endpointEnd-1]==="/";)endpointEnd--;baseURL=`${endpoint.slice(0,endpointEnd)}/openai`}super({apiKey:azureADTokenProvider??apiKey,baseURL,...opts,...dangerouslyAllowBrowser===void 0?{}:{dangerouslyAllowBrowser}}),this.apiVersion="",this.apiVersion=apiVersion,this.deploymentName=deployment}withOptions(options){return super.withOptions(options)}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=path`/deployments/${model}`+options.path)}let built=await super.buildRequest(options,props);return built.req.headers.has("api-key")&&(built.req.redirect="manual"),built}async fetchWithAuth(url,init,timeout,controller,schemes){return new Headers(init.headers).has("api-key")&&(init.redirect="manual"),super.fetchWithAuth(url,init,timeout,controller,schemes)}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"]);var brand_privateBedrockClient=Symbol.for("openai.privateBedrockClient");var _a4;_a4=brand_privateBedrockClient;export{OpenAI,AzureOpenAI};
|