pagegraph 0.13.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +48 -41
  2. package/dist/anthropic-messages-TqKpKmfW.js +1067 -0
  3. package/dist/anthropic-messages-TqKpKmfW.js.map +1 -0
  4. package/dist/audit.d.ts +2 -0
  5. package/dist/audit.js +1 -1
  6. package/dist/audit.js.map +1 -1
  7. package/dist/azure-openai-responses-DJjBLwoI.js +231 -0
  8. package/dist/azure-openai-responses-DJjBLwoI.js.map +1 -0
  9. package/dist/cli.js +10487 -38044
  10. package/dist/cli.js.map +1 -1
  11. package/dist/cloudflare-workers-ai-system-one-f3ZrvNYZ.js +41 -0
  12. package/dist/cloudflare-workers-ai-system-one-f3ZrvNYZ.js.map +1 -0
  13. package/dist/config.d.ts +6 -6
  14. package/dist/config.js.map +1 -1
  15. package/dist/diagnostics-Wt5faNDM.js +108 -0
  16. package/dist/diagnostics-Wt5faNDM.js.map +1 -0
  17. package/dist/dist-cFoAzruL.js +4794 -0
  18. package/dist/dist-cFoAzruL.js.map +1 -0
  19. package/dist/env-api-keys-C-OA0yM-.js +124 -0
  20. package/dist/env-api-keys-C-OA0yM-.js.map +1 -0
  21. package/dist/error-body-CyiejW4b.js +103 -0
  22. package/dist/error-body-CyiejW4b.js.map +1 -0
  23. package/dist/github-copilot-headers-CEpMOpQF.js +24 -0
  24. package/dist/github-copilot-headers-CEpMOpQF.js.map +1 -0
  25. package/dist/google-generative-ai-BxABKIKO.js +330 -0
  26. package/dist/google-generative-ai-BxABKIKO.js.map +1 -0
  27. package/dist/google-shared-0gpM2jFi.js +19471 -0
  28. package/dist/google-shared-0gpM2jFi.js.map +1 -0
  29. package/dist/google-vertex-D8Eb5cbu.js +376 -0
  30. package/dist/google-vertex-D8Eb5cbu.js.map +1 -0
  31. package/dist/hash-Dp7EzZUo.js +18 -0
  32. package/dist/hash-Dp7EzZUo.js.map +1 -0
  33. package/dist/headers-BRNMVpzu.js +19 -0
  34. package/dist/headers-BRNMVpzu.js.map +1 -0
  35. package/dist/json-parse-C10znB7l.js +383 -0
  36. package/dist/json-parse-C10znB7l.js.map +1 -0
  37. package/dist/mistral-conversations-CvaqBWjR.js +690 -0
  38. package/dist/mistral-conversations-CvaqBWjR.js.map +1 -0
  39. package/dist/models-DcT5qOEL.js +1203 -0
  40. package/dist/models-DcT5qOEL.js.map +1 -0
  41. package/dist/node-Ccvru9GE.js +26 -0
  42. package/dist/node-Ccvru9GE.js.map +1 -0
  43. package/dist/node-MEosBOF2.js +2403 -0
  44. package/dist/node-MEosBOF2.js.map +1 -0
  45. package/dist/openai-BCBEd2eO.js +17350 -0
  46. package/dist/openai-BCBEd2eO.js.map +1 -0
  47. package/dist/openai-codex-responses-vJqxeeRC.js +1268 -0
  48. package/dist/openai-codex-responses-vJqxeeRC.js.map +1 -0
  49. package/dist/openai-completions-Cb_fRAbI.js +989 -0
  50. package/dist/openai-completions-Cb_fRAbI.js.map +1 -0
  51. package/dist/openai-prompt-cache-Bc6qNWt0.js +10 -0
  52. package/dist/openai-prompt-cache-Bc6qNWt0.js.map +1 -0
  53. package/dist/openai-responses-sDuh82G5.js +268 -0
  54. package/dist/openai-responses-sDuh82G5.js.map +1 -0
  55. package/dist/openai-responses-shared-mhuo1Jov.js +599 -0
  56. package/dist/openai-responses-shared-mhuo1Jov.js.map +1 -0
  57. package/dist/openrouter-images-CRmBkzpX.js +127 -0
  58. package/dist/openrouter-images-CRmBkzpX.js.map +1 -0
  59. package/dist/pi-D3mMmYey.js +56805 -0
  60. package/dist/pi-D3mMmYey.js.map +1 -0
  61. package/dist/pi-messages-CejiVYvO.js +308 -0
  62. package/dist/pi-messages-CejiVYvO.js.map +1 -0
  63. package/dist/provider-env-t38GK5FF.js +39 -0
  64. package/dist/provider-env-t38GK5FF.js.map +1 -0
  65. package/dist/provider-retry-DzKoh1X7.js +80 -0
  66. package/dist/provider-retry-DzKoh1X7.js.map +1 -0
  67. package/dist/rolldown-runtime-B-lAHAz2.js +37 -0
  68. package/dist/sanitize-unicode-Ds14l9Om.js +28 -0
  69. package/dist/sanitize-unicode-Ds14l9Om.js.map +1 -0
  70. package/dist/sdk-C9_wiO6w.js +12503 -0
  71. package/dist/sdk-C9_wiO6w.js.map +1 -0
  72. package/dist/state-BuJP_3Lr.js +28102 -0
  73. package/dist/state-BuJP_3Lr.js.map +1 -0
  74. package/dist/system-one-shared-Dl10ZF7Z.js +167 -0
  75. package/dist/system-one-shared-Dl10ZF7Z.js.map +1 -0
  76. package/dist/transform-messages-BLJ8EfK6.js +468 -0
  77. package/dist/transform-messages-BLJ8EfK6.js.map +1 -0
  78. package/dist/typesafe-system-one-CwEWMV8P.js +25 -0
  79. package/dist/typesafe-system-one-CwEWMV8P.js.map +1 -0
  80. package/package.json +4 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-BCBEd2eO.js","names":["qs.stringify","scope","Shims.getDefaultFetch","findRegisteredX509Transport","rememberRegisteredX509Transport","markTransientX509ConnectionError","isTransientX509ConnectionError","markRetryableX509IssuerError","isRetryableX509IssuerError","markApprovedX509Client","isApprovedX509Client","rememberX509OAuthError","findX509OAuthError","rememberX509Credential","findX509Credential","nodeState","browserState","_a","arrayBufferByteLengthGetter","Messages","isAutoParsableTool","hasAutoParseableInput","parseToolCall","_a","isAutoParsableTool","isAutoParsableTool","hasAutoParseableInput","Completions","MessagesAPI.Messages","Messages","CompletionsAPI.Completions","Completions","Certificates","DataRetention","Roles","SpendAlerts","SpendLimit","Roles","Users","Groups","UsersAPI.Users","RolesAPI.Roles","Users","Roles","APIKeys","Roles","Roles","RolesAPI.Roles","Roles","APIKeysAPI.APIKeys","Roles","Users","RolesAPI.Roles","Roles","UsersAPI.Users","ServiceAccountsAPI.ServiceAccounts","APIKeysAPI.APIKeys","RateLimitsAPI.RateLimits","ModelPermissionsAPI.ModelPermissions","HostedToolPermissionsAPI.HostedToolPermissions","GroupsAPI.Groups","RolesAPI.Roles","DataRetentionAPI.DataRetention","SpendLimitAPI.SpendLimit","SpendAlertsAPI.SpendAlerts","CertificatesAPI.Certificates","Users","APIKeys","Roles","RolesAPI.Roles","AuditLogsAPI.AuditLogs","AdminAPIKeysAPI.AdminAPIKeys","UsageAPI.Usage","InvitesAPI.Invites","UsersAPI.Users","GroupsAPI.Groups","RolesAPI.Roles","DataRetentionAPI.DataRetention","SpendLimitAPI.SpendLimit","SpendAlertsAPI.SpendAlerts","CertificatesAPI.Certificates","ProjectsAPI.Projects","Groups","Roles","DataRetention","SpendLimit","SpendAlerts","Certificates","OrganizationAPI.Organization","TranscriptionsAPI.Transcriptions","TranslationsAPI.Translations","SpeechAPI.Speech","Sessions","Realtime","SessionsAPI.Sessions","TranscriptionSessionsAPI.TranscriptionSessions","Sessions","Files","FilesAPI.Files","TemplatesAPI.Templates","Files","Items","Turns","Items","Items","ItemsAPI.Items","Items","ItemsAPI.Items","TurnsAPI.Turns","Items","Sessions","SubagentsAPI.Subagents","ArtifactsAPI.Artifacts","ItemsAPI.Items","EventsAPI.Events","TurnsAPI.Turns","Items","Turns","CredentialsAPI.Credentials","EnvironmentsAPI.Environments","VaultsAPI.Vaults","SessionsAPI.Sessions","Sessions","Sessions","Threads","SessionsAPI.Sessions","ThreadsAPI.Threads","Sessions","Threads","InputItems","InputTokens","Responses","InputItemsAPI.InputItems","InputTokensAPI.InputTokens","InputItems","InputTokens","Runs","StepsAPI.Steps","RunsAPI.Runs","MessagesAPI.Messages","Runs","RealtimeAPI.Realtime","AgentsAPI.Agents","ResponsesAPI.Responses","ChatKitAPI.ChatKit","AssistantsAPI.Assistants","ThreadsAPI.Threads","Realtime","Responses","Content","Files","ContentAPI.Content","Content","FilesAPI.Files","Files","ItemsAPI.Items","OutputItemsAPI.OutputItems","RunsAPI.Runs","Files","Graders","GradersAPI.Graders","Graders","Checkpoints","PermissionsAPI.Permissions","CheckpointsAPI.Checkpoints","MethodsAPI.Methods","JobsAPI.Jobs","CheckpointsAPI.Checkpoints","AlphaAPI.Alpha","Checkpoints","GraderModelsAPI.GraderModels","SidebandAPI.Sideband","ForksAPI.Forks","SessionsAPI.Sessions","ClientSecretsAPI.ClientSecrets","CallsAPI.Calls","InputItemsAPI.InputItems","InputTokensAPI.InputTokens","AlertsAPI.Alerts","Content","ContentAPI.Content","ContentAPI.Content","VersionsAPI.Versions","Content","PartsAPI.Parts","FilesAPI.Files","FileBatchesAPI.FileBatches","EventTypesAPI.EventTypes","_a","API.Completions","API.Chat","API.Embeddings","API.Files","API.Images","API.ContentProvenanceChecks","API.Audio","API.Moderations","API.Models","API.FineTuning","API.Graders","API.VectorStores","API.Safety","API.Webhooks","API.Beta","API.Batches","API.Uploads","API.Admin","API.Responses","API.Live","API.Realtime","API.Conversations","API.Evals","API.Containers","API.Skills","API.Videos","Errors.OpenAIError","Shims.getDefaultFetch","Opts.FallbackEncoder","Errors.APIUserAbortError","Shims.CancelReadableStream","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Pagination.PagePromise","Shims.ReadableStreamFrom","Errors.APIError","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Errors.InvalidWebhookSignatureError","Uploads.toFile","Uploads.toStreamingFile","Files","UploadsAPIUploads","Pagination.ConversationCursorPage","Pagination.CursorPage","Pagination.NextCursorPage","Pagination.Page","Pagination.TokenPage","Errors.OpenAIError"],"sources":["../node_modules/openai/internal/tslib.mjs","../node_modules/openai/internal/utils/uuid.mjs","../node_modules/openai/internal/errors.mjs","../node_modules/openai/core/error.mjs","../node_modules/openai/internal/utils/values.mjs","../node_modules/openai/internal/utils/sleep.mjs","../node_modules/openai/internal/utils/abort.mjs","../node_modules/openai/internal/shims.mjs","../node_modules/openai/internal/utils/bytes.mjs","../node_modules/openai/internal/decoders/line.mjs","../node_modules/openai/internal/utils/log.mjs","../node_modules/openai/core/streaming.mjs","../node_modules/openai/internal/parse.mjs","../node_modules/openai/version.mjs","../node_modules/openai/internal/detect-platform.mjs","../node_modules/openai/internal/request-options.mjs","../node_modules/openai/internal/qs/formats.mjs","../node_modules/openai/internal/qs/utils.mjs","../node_modules/openai/internal/qs/stringify.mjs","../node_modules/openai/internal/utils/query.mjs","../node_modules/openai/internal/data-residency.mjs","../node_modules/openai/core/api-promise.mjs","../node_modules/openai/core/pagination.mjs","../node_modules/openai/auth/workload-identity-auth.mjs","../node_modules/openai/internal/auth/x509-api-origin.mjs","../node_modules/openai/internal/headers.mjs","../node_modules/openai/internal/auth/x509-transport-state-browser.mjs","../node_modules/openai/internal/auth/x509-transport-state.js","../node_modules/openai/internal/auth/x509-transport-state.mjs","../node_modules/openai/internal/auth/x509-transport-registry.mjs","../node_modules/openai/internal/auth/x509-workload-identity-auth.mjs","../node_modules/openai/internal/auth/x509-credential-options.mjs","../node_modules/openai/internal/uploads.mjs","../node_modules/openai/internal/to-file.mjs","../node_modules/openai/core/resource.mjs","../node_modules/openai/internal/utils/path.mjs","../node_modules/openai/resources/chat/completions/messages.mjs","../node_modules/openai/lib/parser.mjs","../node_modules/openai/lib/chatCompletionUtils.mjs","../node_modules/openai/lib/EventStream.mjs","../node_modules/openai/lib/RunnableFunction.mjs","../node_modules/openai/lib/AbstractChatCompletionRunner.mjs","../node_modules/openai/lib/ChatCompletionRunner.mjs","../node_modules/openai/_vendor/partial-json-parser/parser.mjs","../node_modules/openai/lib/ChatCompletionStream.mjs","../node_modules/openai/lib/ChatCompletionStreamingRunner.mjs","../node_modules/openai/resources/chat/completions/completions.mjs","../node_modules/openai/resources/chat/chat.mjs","../node_modules/openai/resources/admin/organization/admin-api-keys.mjs","../node_modules/openai/resources/admin/organization/audit-logs.mjs","../node_modules/openai/resources/admin/organization/certificates.mjs","../node_modules/openai/resources/admin/organization/data-retention.mjs","../node_modules/openai/resources/admin/organization/invites.mjs","../node_modules/openai/resources/admin/organization/roles.mjs","../node_modules/openai/resources/admin/organization/spend-alerts.mjs","../node_modules/openai/resources/admin/organization/spend-limit.mjs","../node_modules/openai/resources/admin/organization/usage.mjs","../node_modules/openai/resources/admin/organization/groups/roles.mjs","../node_modules/openai/resources/admin/organization/groups/users.mjs","../node_modules/openai/resources/admin/organization/groups/groups.mjs","../node_modules/openai/resources/admin/organization/projects/api-keys.mjs","../node_modules/openai/resources/admin/organization/projects/certificates.mjs","../node_modules/openai/resources/admin/organization/projects/data-retention.mjs","../node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.mjs","../node_modules/openai/resources/admin/organization/projects/model-permissions.mjs","../node_modules/openai/resources/admin/organization/projects/rate-limits.mjs","../node_modules/openai/resources/admin/organization/projects/roles.mjs","../node_modules/openai/resources/admin/organization/projects/spend-alerts.mjs","../node_modules/openai/resources/admin/organization/projects/spend-limit.mjs","../node_modules/openai/resources/admin/organization/projects/groups/roles.mjs","../node_modules/openai/resources/admin/organization/projects/groups/groups.mjs","../node_modules/openai/resources/admin/organization/projects/service-accounts/api-keys.mjs","../node_modules/openai/resources/admin/organization/projects/service-accounts/service-accounts.mjs","../node_modules/openai/resources/admin/organization/projects/users/roles.mjs","../node_modules/openai/resources/admin/organization/projects/users/users.mjs","../node_modules/openai/resources/admin/organization/projects/projects.mjs","../node_modules/openai/resources/admin/organization/users/roles.mjs","../node_modules/openai/resources/admin/organization/users/users.mjs","../node_modules/openai/resources/admin/organization/organization.mjs","../node_modules/openai/resources/admin/admin.mjs","../node_modules/openai/resources/audio/speech.mjs","../node_modules/openai/resources/audio/transcriptions.mjs","../node_modules/openai/resources/audio/translations.mjs","../node_modules/openai/resources/audio/audio.mjs","../node_modules/openai/resources/batches.mjs","../node_modules/openai/resources/beta/assistants.mjs","../node_modules/openai/resources/beta/realtime/sessions.mjs","../node_modules/openai/resources/beta/realtime/transcription-sessions.mjs","../node_modules/openai/resources/beta/realtime/realtime.mjs","../node_modules/openai/resources/beta/agents/environments/files.mjs","../node_modules/openai/resources/beta/agents/environments/templates.mjs","../node_modules/openai/resources/beta/agents/environments/environments.mjs","../node_modules/openai/lib/agents/turn-state.mjs","../node_modules/openai/lib/agents/agent-session-stream.mjs","../node_modules/openai/resources/beta/agents/sessions/artifacts.mjs","../node_modules/openai/resources/beta/agents/sessions/events.mjs","../node_modules/openai/resources/beta/agents/sessions/items.mjs","../node_modules/openai/resources/beta/agents/sessions/turns.mjs","../node_modules/openai/resources/beta/agents/sessions/subagents/items.mjs","../node_modules/openai/resources/beta/agents/sessions/subagents/turns/items.mjs","../node_modules/openai/resources/beta/agents/sessions/subagents/turns/turns.mjs","../node_modules/openai/resources/beta/agents/sessions/subagents/subagents.mjs","../node_modules/openai/resources/beta/agents/sessions/sessions.mjs","../node_modules/openai/resources/beta/agents/vaults/credentials.mjs","../node_modules/openai/resources/beta/agents/vaults/vaults.mjs","../node_modules/openai/resources/beta/agents/agents.mjs","../node_modules/openai/resources/beta/chatkit/sessions.mjs","../node_modules/openai/resources/beta/chatkit/threads.mjs","../node_modules/openai/resources/beta/chatkit/chatkit.mjs","../node_modules/openai/resources/beta/responses/input-items.mjs","../node_modules/openai/resources/beta/responses/input-tokens.mjs","../node_modules/openai/resources/beta/responses/responses.mjs","../node_modules/openai/resources/beta/threads/messages.mjs","../node_modules/openai/resources/beta/threads/runs/steps.mjs","../node_modules/openai/internal/utils/base64.mjs","../node_modules/openai/internal/utils/env.mjs","../node_modules/openai/internal/assistant-stream-delta.mjs","../node_modules/openai/lib/AssistantStream.mjs","../node_modules/openai/lib/polling.mjs","../node_modules/openai/lib/assistant-run-polling.mjs","../node_modules/openai/resources/beta/threads/runs/runs.mjs","../node_modules/openai/resources/beta/threads/threads.mjs","../node_modules/openai/resources/beta/beta.mjs","../node_modules/openai/resources/completions.mjs","../node_modules/openai/resources/containers/files/content.mjs","../node_modules/openai/resources/containers/files/files.mjs","../node_modules/openai/resources/containers/containers.mjs","../node_modules/openai/resources/content-provenance-checks.mjs","../node_modules/openai/resources/conversations/items.mjs","../node_modules/openai/resources/conversations/conversations.mjs","../node_modules/openai/lib/embeddings.mjs","../node_modules/openai/resources/embeddings.mjs","../node_modules/openai/resources/evals/runs/output-items.mjs","../node_modules/openai/resources/evals/runs/runs.mjs","../node_modules/openai/resources/evals/evals.mjs","../node_modules/openai/lib/file-processing.mjs","../node_modules/openai/resources/files.mjs","../node_modules/openai/resources/fine-tuning/methods.mjs","../node_modules/openai/resources/fine-tuning/alpha/graders.mjs","../node_modules/openai/resources/fine-tuning/alpha/alpha.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/jobs.mjs","../node_modules/openai/resources/fine-tuning/fine-tuning.mjs","../node_modules/openai/resources/graders/grader-models.mjs","../node_modules/openai/resources/graders/graders.mjs","../node_modules/openai/resources/images.mjs","../node_modules/openai/resources/live/sessions.mjs","../node_modules/openai/resources/live/forks/forks.mjs","../node_modules/openai/resources/live/sideband/sideband.mjs","../node_modules/openai/resources/live/live.mjs","../node_modules/openai/resources/models.mjs","../node_modules/openai/resources/moderations.mjs","../node_modules/openai/internal/multipart-encoding.mjs","../node_modules/openai/resources/realtime/calls.mjs","../node_modules/openai/resources/realtime/client-secrets.mjs","../node_modules/openai/resources/realtime/realtime.mjs","../node_modules/openai/lib/ResponsesParser.mjs","../node_modules/openai/internal/responses/output-text-index.mjs","../node_modules/openai/internal/responses/canonical-output-text.mjs","../node_modules/openai/internal/responses/response-accumulator.mjs","../node_modules/openai/lib/responses/ResponseStream.mjs","../node_modules/openai/resources/responses/input-items.mjs","../node_modules/openai/resources/responses/input-tokens.mjs","../node_modules/openai/resources/responses/responses.mjs","../node_modules/openai/resources/safety/alerts.mjs","../node_modules/openai/resources/safety/safety.mjs","../node_modules/openai/resources/skills/content.mjs","../node_modules/openai/resources/skills/versions/content.mjs","../node_modules/openai/resources/skills/versions/versions.mjs","../node_modules/openai/resources/skills/skills.mjs","../node_modules/openai/resources/uploads/parts.mjs","../node_modules/openai/resources/uploads/uploads.mjs","../node_modules/openai/lib/vector-store-polling.mjs","../node_modules/openai/lib/Util.mjs","../node_modules/openai/lib/vector-store-upload.mjs","../node_modules/openai/resources/vector-stores/file-batches.mjs","../node_modules/openai/resources/vector-stores/files.mjs","../node_modules/openai/resources/vector-stores/vector-stores.mjs","../node_modules/openai/resources/videos.mjs","../node_modules/openai/lib/webhook-signature.mjs","../node_modules/openai/resources/webhooks/event-types.mjs","../node_modules/openai/resources/webhooks/webhooks.mjs","../node_modules/openai/internal/realtime-credentials.mjs","../node_modules/openai/internal/provider.mjs","../node_modules/openai/client.mjs","../node_modules/openai/azure.mjs","../node_modules/openai/internal/bedrock.mjs","../node_modules/openai/bedrock.mjs"],"sourcesContent":["function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? (f.value = value) : state.set(receiver, value), value;\n}\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nfunction __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\"))\n throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\nexport { __classPrivateFieldSet, __classPrivateFieldGet, __classPrivateFieldIn };\n","/**\n * https://stackoverflow.com/a/2117523\n */\nexport let uuid4 = function () {\n const { crypto } = globalThis;\n if (crypto?.randomUUID) {\n uuid4 = crypto.randomUUID.bind(crypto);\n return crypto.randomUUID();\n }\n const u8 = new Uint8Array(1);\n const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));\n};\n//# sourceMappingURL=uuid.mjs.map","export function isAbortError(err) {\n return (typeof err === 'object' &&\n err !== null &&\n // Spec-compliant fetch implementations\n (('name' in err && err.name === 'AbortError') ||\n // Expo fetch\n ('message' in err && String(err.message).includes('FetchRequestCanceledException'))));\n}\nexport const castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n if (Object.prototype.toString.call(err) === '[object Error]') {\n const hasCause = 'cause' in err;\n // @ts-ignore - not all envs have native support for cause yet\n const error = new Error(err.message, hasCause ? { cause: err.cause } : {});\n if (err.stack)\n error.stack = err.stack;\n // @ts-ignore - not all envs have native support for cause yet\n if (hasCause && !Object.prototype.hasOwnProperty.call(error, 'cause'))\n error.cause = err.cause;\n if (err.name)\n error.name = err.name;\n return error;\n }\n }\n catch { }\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\n//# sourceMappingURL=errors.mjs.map","import { castToError } from \"../internal/errors.mjs\";\nexport class OpenAIError extends Error {\n}\nexport class APIError extends OpenAIError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.requestID = headers?.get('x-request-id');\n this.error = error;\n const data = error;\n this.code = data?.['code'];\n this.param = data?.['param'];\n this.type = data?.['type'];\n }\n static makeMessage(status, error, message) {\n const msg = error?.message\n ? typeof error.message === 'string'\n ? error.message\n : JSON.stringify(error.message)\n : error\n ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n const error = errorResponse?.['error'];\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexport class APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexport class APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexport class BadRequestError extends APIError {\n}\nexport class AuthenticationError extends APIError {\n}\nexport class PermissionDeniedError extends APIError {\n}\nexport class NotFoundError extends APIError {\n}\nexport class ConflictError extends APIError {\n}\nexport class UnprocessableEntityError extends APIError {\n}\nexport class RateLimitError extends APIError {\n}\nexport class InternalServerError extends APIError {\n}\nexport class LengthFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the length limit was reached`);\n }\n}\nexport class ContentFilterFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the request was rejected by the content filter`);\n }\n}\nexport class InvalidWebhookSignatureError extends Error {\n constructor(message) {\n super(message);\n }\n}\n/**\n * Error thrown by the API server during OAuth token exchange.\n * Can have status codes 400, 401, or 403.\n * Other status codes from OAuth endpoints are raised as normal APIError types.\n */\nexport class OAuthError extends APIError {\n constructor(status, error, headers) {\n let finalMessage = 'OAuth2 authentication error';\n let error_code = undefined;\n if (error && typeof error === 'object') {\n const errorData = error;\n error_code = errorData['error'];\n const description = errorData['error_description'];\n if (description && typeof description === 'string') {\n finalMessage = description;\n }\n else if (error_code) {\n finalMessage = error_code;\n }\n }\n super(status, error, finalMessage, headers);\n this.error_code = error_code;\n }\n}\nexport class SubjectTokenProviderError extends OpenAIError {\n constructor(message, provider, cause) {\n super(message);\n this.provider = provider;\n this.cause = cause;\n }\n}\n//# sourceMappingURL=error.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nexport const isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport let isArray = (val) => ((isArray = Array.isArray), isArray(val));\nexport let isReadonlyArray = isArray;\n/** Returns an object if the given value isn't an object, otherwise returns as-is */\nexport function maybeObj(x) {\n if (typeof x !== 'object') {\n return {};\n }\n return x ?? {};\n}\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport const ensurePresent = (value) => {\n if (value == null) {\n throw new OpenAIError(`Expected a value to be given but received ${value} instead.`);\n }\n return value;\n};\nexport const validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new OpenAIError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new OpenAIError(`${name} must be a positive integer`);\n }\n return n;\n};\nexport const coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexport const maybeCoerceInteger = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceInteger(value);\n};\nexport const maybeCoerceFloat = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceFloat(value);\n};\nexport const maybeCoerceBoolean = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceBoolean(value);\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n//# sourceMappingURL=values.mjs.map","export const sleep = (ms, ...signals) => new Promise((resolve, reject) => {\n const activeSignals = [...new Set(signals.filter((signal) => signal != null))];\n let timeout;\n let settled = false;\n const cleanup = () => {\n for (const signal of activeSignals) {\n try {\n signal.removeEventListener('abort', abort);\n }\n catch {\n // Structural signal cleanup must not prevent the promise from settling.\n }\n }\n };\n const settle = (callback) => {\n if (settled) {\n return;\n }\n settled = true;\n if (timeout !== undefined) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n cleanup();\n callback();\n };\n const abort = () => {\n settle(() => reject());\n };\n if (activeSignals.some((signal) => signal.aborted)) {\n abort();\n return;\n }\n timeout = setTimeout(() => {\n settle(resolve);\n }, ms);\n for (const signal of activeSignals) {\n if (settled) {\n break;\n }\n try {\n signal.addEventListener('abort', abort, { once: true });\n }\n catch (error) {\n settle(() => reject(error));\n }\n }\n if (activeSignals.some((signal) => signal.aborted)) {\n abort();\n }\n});\n//# sourceMappingURL=sleep.mjs.map","// Keep these optional runtime features out of the SDK's ES2020 type requirements.\n// SAFETY: These host features are optional and checked before use; the structural view avoids requiring newer ambient library declarations.\nconst weakGlobals = globalThis;\nconst finalizer = \n// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Weak references and finalizers are optional host capabilities, so probe them before constructing either.\ntypeof weakGlobals.FinalizationRegistry === 'function'\n ? new weakGlobals.FinalizationRegistry((cleanup) => {\n try {\n cleanup();\n }\n catch {\n // Caller-provided signal methods must not throw out of a GC callback.\n }\n })\n : undefined;\nconst callbackOwners = new WeakMap();\nconst subscriptions = new WeakMap();\n// This scope receives only a weak reference, so its closures cannot retain the callback.\nfunction subscribeWeakly(signal, reference, registry) {\n let subscription = subscriptions.get(signal);\n if (!subscription) {\n const callbacks = new Set();\n const abort = () => {\n subscriptions.delete(signal);\n for (const callback of callbacks) {\n registry.unregister(callback);\n callback.deref()?.();\n }\n callbacks.clear();\n };\n subscription = { callbacks, abort };\n signal.addEventListener('abort', abort, { once: true });\n subscriptions.set(signal, subscription);\n }\n const owner = subscription;\n owner.callbacks.add(reference);\n return () => {\n owner.callbacks.delete(reference);\n registry.unregister(reference);\n if (owner.callbacks.size === 0) {\n if (subscriptions.get(signal) === owner) {\n subscriptions.delete(signal);\n }\n signal.removeEventListener('abort', owner.abort);\n }\n };\n}\n// The listener must not retain the shared owner or its other request callbacks.\nfunction releaseOnAbort(signal, callbacks, abort) {\n signal.addEventListener('abort', () => callbacks.deref()?.delete(abort), { once: true });\n}\n/** Keep cancellation alive until abort or collection of the response body or bodyless custom response. */\nexport function retainRequestAbortCallback(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Abort callbacks are retained by any response-body or custom-response owner identity.\nowner, abort, requestSignal) {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Weak references and finalizers are optional host capabilities, so probe them before constructing either.\n if (typeof weakGlobals.WeakRef === 'function' && finalizer && !requestSignal.aborted) {\n let callbacks = callbackOwners.get(owner);\n if (!callbacks) {\n callbacks = new Set();\n callbackOwners.set(owner, callbacks);\n }\n callbacks.add(abort);\n releaseOnAbort(requestSignal, new weakGlobals.WeakRef(callbacks), abort);\n }\n}\n/**\n * Share one caller listener without it retaining completed requests. Collection removes\n * weak subscriptions eventually; a live response body or custom response retains its callback.\n * Runtimes without weak references keep the existing listener-based behavior.\n */\nexport function addRequestAbortListener(signal, abort, requestSignal) {\n if (signal.aborted) {\n abort();\n return () => {\n // No listener was installed for an already aborted signal.\n };\n }\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Weak references and finalizers are optional host capabilities, so probe them before constructing either.\n if (typeof weakGlobals.WeakRef !== 'function' || !finalizer) {\n signal.addEventListener('abort', abort, { once: true });\n return () => signal.removeEventListener('abort', abort);\n }\n const reference = new weakGlobals.WeakRef(abort);\n const cleanup = subscribeWeakly(signal, reference, finalizer);\n finalizer.register(abort, cleanup, reference);\n retainRequestAbortCallback(requestSignal, abort, requestSignal);\n return cleanup;\n}\n//# sourceMappingURL=abort.mjs.map","/**\n * This module provides internal shims and utility functions for environments where certain Node.js or global types may not be available.\n *\n * These are used to ensure we can provide a consistent behaviour between different JavaScript environments and good error\n * messages in cases where an environment isn't fully supported.\n */\nexport function getDefaultFetch() {\n if (typeof fetch !== 'undefined') {\n return fetch;\n }\n 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`');\n}\nexport function makeReadableStream(...args) {\n const ReadableStream = globalThis.ReadableStream;\n if (typeof ReadableStream === 'undefined') {\n // Note: All of the platforms / runtimes we officially support already define\n // `ReadableStream` as a global, so this should only ever be hit on unsupported runtimes.\n throw new Error('`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`');\n }\n return new ReadableStream(...args);\n}\nexport function ReadableStreamFrom(iterable) {\n let iter = Symbol.asyncIterator in iterable ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n return makeReadableStream({\n start() { },\n async pull(controller) {\n const { done, value } = await iter.next();\n if (done) {\n controller.close();\n }\n else {\n controller.enqueue(value);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n}\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nexport function ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n/**\n * Cancels a ReadableStream we don't need to consume.\n * See https://undici.nodejs.org/#/?id=garbage-collection\n */\nexport async function CancelReadableStream(stream) {\n if (stream === null || typeof stream !== 'object')\n return;\n if (stream[Symbol.asyncIterator]) {\n await stream[Symbol.asyncIterator]().return?.();\n return;\n }\n const reader = stream.getReader();\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n}\n//# sourceMappingURL=shims.mjs.map","/** Copies byte arrays into one contiguous `Uint8Array` while preserving their order. */\nexport function concatBytes(buffers) {\n let length = 0;\n for (const buffer of buffers) {\n length += buffer.length;\n }\n const output = new Uint8Array(length);\n let index = 0;\n for (const buffer of buffers) {\n output.set(buffer, index);\n index += buffer.length;\n }\n return output;\n}\nlet encodeUTF8_;\n/** Encodes text as UTF-8 bytes, reusing the platform encoder after its first call. */\nexport function encodeUTF8(str) {\n let encoder;\n // SAFETY: Supported runtimes provide the standard TextEncoder/TextDecoder globals; the cast keeps their ambient DOM declarations optional.\n return (encodeUTF8_ ??\n ((encoder = new globalThis.TextEncoder()), (encodeUTF8_ = encoder.encode.bind(encoder))))(str);\n}\nlet decodeUTF8_;\n/** Decodes UTF-8 bytes as text, reusing the platform decoder after its first call. */\nexport function decodeUTF8(bytes) {\n let decoder;\n // SAFETY: Supported runtimes provide the standard TextEncoder/TextDecoder globals; the cast keeps their ambient DOM declarations optional.\n return (decodeUTF8_ ??\n ((decoder = new globalThis.TextDecoder()), (decodeUTF8_ = decoder.decode.bind(decoder))))(bytes);\n}\n//# sourceMappingURL=bytes.mjs.map","var _LineDecoder_instances, _LineDecoder_buffer, _LineDecoder_start, _LineDecoder_end, _LineDecoder_searchIndex, _LineDecoder_skipLeadingLF, _LineDecoder_append;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../tslib.mjs\";\nimport { decodeUTF8, encodeUTF8 } from \"../utils/bytes.mjs\";\n/** Maximum backing-buffer capacity retained when completed lines leave little active data. */\nconst MAX_RETAINED_BUFFER_BYTES = 64 * 1024;\n/**\n * Incrementally decodes UTF-8 text into lines without losing partial characters\n * or newline sequences that span multiple chunks.\n *\n * Supports `\\n`, `\\r`, and `\\r\\n` line endings. Call {@link flush} after the\n * final chunk to emit a trailing line that does not end with a newline.\n *\n * Based on the line decoder used by the Python `httpx` project:\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nexport class LineDecoder {\n /** Creates a decoder with no buffered bytes or pending newline continuation. */\n constructor() {\n _LineDecoder_instances.add(this);\n _LineDecoder_buffer.set(this, void 0);\n _LineDecoder_start.set(this, void 0);\n _LineDecoder_end.set(this, void 0);\n _LineDecoder_searchIndex.set(this, void 0);\n _LineDecoder_skipLeadingLF.set(this, void 0);\n __classPrivateFieldSet(this, _LineDecoder_buffer, new Uint8Array(), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_start, 0, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_end, 0, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_searchIndex, 0, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_skipLeadingLF, false, \"f\");\n }\n /**\n * Appends a text or UTF-8 byte chunk and returns every newly completed line.\n *\n * Incomplete lines remain buffered for the next call. A trailing `\\r`\n * completes its line immediately, and a following `\\n` is consumed as its\n * continuation. `null` and `undefined` are ignored and do not flush buffered\n * content.\n */\n decode(chunk) {\n if (chunk == null) {\n return [];\n }\n let binaryChunk;\n if (chunk instanceof ArrayBuffer) {\n binaryChunk = new Uint8Array(chunk);\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- The line decoder accepts both text and binary chunks and must select the matching decoding path.\n }\n else if (typeof chunk === 'string') {\n binaryChunk = encodeUTF8(chunk);\n }\n else {\n binaryChunk = chunk;\n }\n if (binaryChunk.length === 0) {\n return [];\n }\n if (__classPrivateFieldGet(this, _LineDecoder_skipLeadingLF, \"f\")) {\n __classPrivateFieldSet(this, _LineDecoder_skipLeadingLF, false, \"f\");\n if (binaryChunk[0] === 0x0a) {\n binaryChunk = binaryChunk.subarray(1);\n }\n if (binaryChunk.length === 0) {\n return [];\n }\n }\n __classPrivateFieldGet(this, _LineDecoder_instances, \"m\", _LineDecoder_append).call(this, binaryChunk);\n const lines = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), __classPrivateFieldGet(this, _LineDecoder_searchIndex, \"f\"), __classPrivateFieldGet(this, _LineDecoder_end, \"f\"))) != null) {\n const line = decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(__classPrivateFieldGet(this, _LineDecoder_start, \"f\"), patternIndex.preceding));\n lines.push(line);\n __classPrivateFieldSet(this, _LineDecoder_start, patternIndex.index, \"f\");\n if (patternIndex.carriage) {\n if (__classPrivateFieldGet(this, _LineDecoder_start, \"f\") < __classPrivateFieldGet(this, _LineDecoder_end, \"f\") && __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\")[__classPrivateFieldGet(this, _LineDecoder_start, \"f\")] === 0x0a) {\n __classPrivateFieldSet(this, _LineDecoder_start, __classPrivateFieldGet(this, _LineDecoder_start, \"f\") + 1, \"f\");\n }\n else if (__classPrivateFieldGet(this, _LineDecoder_start, \"f\") === __classPrivateFieldGet(this, _LineDecoder_end, \"f\")) {\n __classPrivateFieldSet(this, _LineDecoder_skipLeadingLF, true, \"f\");\n }\n }\n __classPrivateFieldSet(this, _LineDecoder_searchIndex, __classPrivateFieldGet(this, _LineDecoder_start, \"f\"), \"f\");\n }\n __classPrivateFieldSet(this, _LineDecoder_searchIndex, __classPrivateFieldGet(this, _LineDecoder_end, \"f\"), \"f\");\n if (__classPrivateFieldGet(this, _LineDecoder_start, \"f\") === __classPrivateFieldGet(this, _LineDecoder_end, \"f\")) {\n __classPrivateFieldSet(this, _LineDecoder_start, 0, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_end, 0, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_searchIndex, 0, \"f\");\n if (__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length > MAX_RETAINED_BUFFER_BYTES) {\n __classPrivateFieldSet(this, _LineDecoder_buffer, new Uint8Array(), \"f\");\n }\n }\n else if (lines.length > 0 && __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length > MAX_RETAINED_BUFFER_BYTES) {\n const length = __classPrivateFieldGet(this, _LineDecoder_end, \"f\") - __classPrivateFieldGet(this, _LineDecoder_start, \"f\");\n if (length <= MAX_RETAINED_BUFFER_BYTES || __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length > length * 4) {\n const capacity = length <= MAX_RETAINED_BUFFER_BYTES\n ? Math.min(Math.max(length * 2, 256), MAX_RETAINED_BUFFER_BYTES)\n : length * 2;\n const buffer = new Uint8Array(capacity);\n buffer.set(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(__classPrivateFieldGet(this, _LineDecoder_start, \"f\"), __classPrivateFieldGet(this, _LineDecoder_end, \"f\")));\n __classPrivateFieldSet(this, _LineDecoder_buffer, buffer, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_start, 0, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_end, length, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_searchIndex, length, \"f\");\n }\n }\n return lines;\n }\n /** Emits the remaining unterminated line, or returns an empty array when idle. */\n flush() {\n __classPrivateFieldSet(this, _LineDecoder_skipLeadingLF, false, \"f\");\n if (__classPrivateFieldGet(this, _LineDecoder_start, \"f\") === __classPrivateFieldGet(this, _LineDecoder_end, \"f\")) {\n return [];\n }\n return this.decode('\\n');\n }\n}\n_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 _LineDecoder_append(chunk) {\n if (__classPrivateFieldGet(this, _LineDecoder_end, \"f\") + chunk.length > __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length) {\n const length = __classPrivateFieldGet(this, _LineDecoder_end, \"f\") - __classPrivateFieldGet(this, _LineDecoder_start, \"f\");\n if (__classPrivateFieldGet(this, _LineDecoder_start, \"f\") >= __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length / 2 && length + chunk.length <= __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length) {\n __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").copyWithin(0, __classPrivateFieldGet(this, _LineDecoder_start, \"f\"), __classPrivateFieldGet(this, _LineDecoder_end, \"f\"));\n }\n else {\n const capacity = Math.max(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length * 2, length + chunk.length, 256);\n const buffer = new Uint8Array(capacity);\n buffer.set(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(__classPrivateFieldGet(this, _LineDecoder_start, \"f\"), __classPrivateFieldGet(this, _LineDecoder_end, \"f\")));\n __classPrivateFieldSet(this, _LineDecoder_buffer, buffer, \"f\");\n }\n __classPrivateFieldSet(this, _LineDecoder_searchIndex, __classPrivateFieldGet(this, _LineDecoder_searchIndex, \"f\") - __classPrivateFieldGet(this, _LineDecoder_start, \"f\"), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_end, length, \"f\");\n __classPrivateFieldSet(this, _LineDecoder_start, 0, \"f\");\n }\n __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").set(chunk, __classPrivateFieldGet(this, _LineDecoder_end, \"f\"));\n __classPrivateFieldSet(this, _LineDecoder_end, __classPrivateFieldGet(this, _LineDecoder_end, \"f\") + chunk.length, \"f\");\n};\n// prettier-ignore\n/** Individual characters recognized as possible line terminators. */\nLineDecoder.NEWLINE_CHARS = new Set(['\\n', '\\r']);\n/** Matches complete CRLF terminators as well as standalone CR and LF characters. */\nLineDecoder.NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n/**\n * Searches the active buffer range for the next CR or LF byte and returns its\n * zero-based position, the position immediately after it, and whether the byte\n * was a carriage return. Returns `null` when the range contains no newline byte.\n *\n * ```ts\n * findNewlineIndex(new TextEncoder().encode('abc\\ndef'), 0, 7)\n * // => { preceding: 3, index: 4, carriage: false }\n * ```\n */\nfunction findNewlineIndex(buffer, start, end) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = start; i < end; i++) {\n if (buffer[i] === newline) {\n return { preceding: i, index: i + 1, carriage: false };\n }\n if (buffer[i] === carriage) {\n return { preceding: i, index: i + 1, carriage: true };\n }\n }\n return null;\n}\n/**\n * Finds the first blank-line separator used to delimit streamed event records.\n *\n * @returns The byte offset immediately after the first pair of consecutive\n * line endings, or `-1` when the buffer contains no complete separator.\n */\nexport function findDoubleNewlineIndex(buffer) {\n for (let i = 0; i < buffer.length - 1; i++) {\n const firstEndingLength = lineEndingLength(buffer, i);\n if (firstEndingLength > 0) {\n const secondEndingIndex = i + firstEndingLength;\n const secondEndingLength = lineEndingLength(buffer, secondEndingIndex);\n if (secondEndingLength > 0) {\n return secondEndingIndex + secondEndingLength;\n }\n }\n }\n return -1;\n}\nfunction lineEndingLength(buffer, index) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n if (buffer[index] === newline) {\n return 1;\n }\n if (buffer[index] === carriage) {\n return buffer[index + 1] === newline ? 2 : 1;\n }\n return 0;\n}\n//# sourceMappingURL=line.mjs.map","import { hasOwn } from \"./values.mjs\";\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\nexport const parseLogLevel = (maybeLevel, sourceName, client) => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);\n return undefined;\n};\nfunction noop() { }\nfunction makeLogFn(fnLevel, logger, logLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n }\n else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\nlet cachedLoggers = /* @__PURE__ */ new WeakMap();\nexport function loggerFor(client) {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\n const levelLogger = {\n error: makeLogFn('error', logger, logLevel),\n warn: makeLogFn('warn', logger, logLevel),\n info: makeLogFn('info', logger, logLevel),\n debug: makeLogFn('debug', logger, logLevel),\n };\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n return levelLogger;\n}\nconst sensitiveQueryNames = new Set([\n 'apikey',\n 'accesstoken',\n 'refreshtoken',\n 'sessiontoken',\n 'sessionid',\n 'idtoken',\n 'authtoken',\n 'authorization',\n 'token',\n 'password',\n 'clientsecret',\n 'signingsecret',\n 'xamzsecuritytoken',\n 'xamzsignature',\n 'xamzcredential',\n]);\n/** Recognizes credential-bearing query names across ordinary and provider authentication. */\nexport function isSensitiveQueryParameter(name) {\n const normalized = name.toLowerCase().replace(/[-_]/gu, '');\n return sensitiveQueryNames.has(normalized) || sensitiveQueryNames.has(normalized.replace(/^x/u, ''));\n}\nconst sensitiveHeaderNames = new Set([\n 'authorization',\n 'proxy-authorization',\n 'api-key',\n 'x-api-key',\n 'x-amz-security-token',\n 'cookie',\n 'set-cookie',\n 'x-session-token',\n 'x-session-id',\n 'x-auth-token',\n 'x-id-token',\n]);\n/** Recognizes credential-bearing request headers across provider and workload authentication. */\nexport function isSensitiveHeader(name) {\n return sensitiveHeaderNames.has(name.toLowerCase().replace(/_/gu, '-')) || isSensitiveQueryParameter(name);\n}\n/** Removes credential-valued query parameters before a request URL reaches any logger. */\nexport function redactURL(value) {\n const url = new URL(value);\n url.username = '';\n url.password = '';\n url.hash = '';\n for (const name of url.searchParams.keys()) {\n if (isSensitiveQueryParameter(name)) {\n url.searchParams.set(name, '***');\n }\n }\n return url.href;\n}\nexport const formatRequestDetails = (details) => {\n if (details.options) {\n details.options = { ...details.options };\n delete details.options['headers']; // redundant + leaks internals\n if (details.options.path) {\n const path = details.options.path;\n const redacted = new URL(redactURL(new URL(path, 'https://redacted.invalid').href));\n details.options.path =\n redacted.origin === 'https://redacted.invalid'\n ? `${path.startsWith('/') ? '/' : ''}${redacted.pathname.slice(1)}${redacted.search}`\n : redacted.href;\n }\n if (details.options.query) {\n details.options.query = Object.fromEntries(Object.entries(details.options.query).map(([name, value]) => [\n name,\n isSensitiveQueryParameter(name) ? '***' : value,\n ]));\n }\n }\n if (details.url) {\n details.url = redactURL(details.url);\n }\n if (details.headers) {\n details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [name, isSensitiveHeader(name) ? '***' : value]));\n }\n if ('retryOfRequestLogID' in details) {\n if (details.retryOfRequestLogID) {\n details.retryOf = details.retryOfRequestLogID;\n }\n delete details.retryOfRequestLogID;\n }\n return details;\n};\n//# sourceMappingURL=log.mjs.map","var _Stream_instances, _Stream_client, _Stream_isTeeBranch, _Stream_cancelIterator;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError, APIError } from \"./error.mjs\";\nimport { makeReadableStream, ReadableStreamToAsyncIterable } from \"../internal/shims.mjs\";\nimport { findDoubleNewlineIndex, LineDecoder } from \"../internal/decoders/line.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { encodeUTF8 } from \"../internal/utils/bytes.mjs\";\nimport { loggerFor } from \"../internal/utils/log.mjs\";\nfunction isTransportAbortError(error) {\n return !(error instanceof APIError) && isAbortError(error);\n}\nfunction createStreamTeeQueue() {\n let entries = [];\n let head = 0;\n let canceled = false;\n return {\n get length() {\n return entries.length - head;\n },\n get canceled() {\n return canceled;\n },\n enqueue(value) {\n if (!canceled) {\n entries.push(value);\n }\n },\n dequeue() {\n if (head === entries.length) {\n return undefined;\n }\n const value = entries[head];\n entries[head] = undefined;\n head += 1;\n if (head === entries.length) {\n entries = [];\n head = 0;\n }\n else if (head >= 1024 && head * 2 >= entries.length) {\n entries = entries.slice(head);\n head = 0;\n }\n return value;\n },\n cancel() {\n canceled = true;\n entries.length = 0;\n head = 0;\n },\n };\n}\n/**\n * A single-consumption asynchronous API response stream.\n *\n * Use {@link Stream.tee} when two consumers need the same events. Breaking out of\n * a response-backed stream early aborts its request; branches created by `tee()`\n * instead share {@link Stream.controller} for explicit cancellation.\n */\nexport class Stream {\n /** Wraps an asynchronous event iterator and the controller that owns its request. */\n constructor(iterator, controller, client) {\n _Stream_instances.add(this);\n _Stream_client.set(this, void 0);\n _Stream_isTeeBranch.set(this, false);\n this.iterator = iterator;\n this.controller = controller;\n __classPrivateFieldSet(this, _Stream_client, client, \"f\");\n }\n /**\n * Decodes an SSE response into parsed JSON events.\n *\n * The resulting stream can be consumed only once, ignores events after `[DONE]`, and\n * surfaces API error payloads as `APIError` instances. When\n * `synthesizeEventData` is enabled, each item also includes its SSE event name.\n */\n static fromSSEResponse(response, controller, client, synthesizeEventData) {\n let consumed = false;\n const logger = client ? loggerFor(client) : console;\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n let receivedCompletionSentinel = false;\n const messages = _iterSSEMessages(response, controller);\n const closeMessages = messages.return.bind(messages);\n messages.return = (value) => {\n // Abort before nested iterator cleanup can wait on the response body's cancellation.\n if (!receivedCompletionSentinel) {\n controller.abort();\n }\n return closeMessages(value);\n };\n try {\n for await (const sse of messages) {\n if (sse.data === '[DONE]') {\n receivedCompletionSentinel = true;\n break;\n }\n if (sse.event === null || !sse.event.startsWith('thread.')) {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch {\n logger.error(`Could not parse message into JSON:`);\n logger.error(`From chunk:`);\n throw new SyntaxError('Error reading response: malformed server-sent event JSON.');\n }\n if (sse.event === 'error') {\n throw new APIError(undefined, data?.error ?? data, undefined, response.headers);\n }\n if (data && data.error) {\n throw new APIError(undefined, data.error, undefined, response.headers);\n }\n yield synthesizeEventData ? { event: sse.event, data } : data;\n }\n else {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch {\n logger.error(`Could not parse message into JSON:`);\n logger.error(`From chunk:`);\n throw new SyntaxError('Error reading response: malformed server-sent event JSON.');\n }\n // SAFETY: Named SSE events use the public stream's event/data envelope; Item is the caller-selected API event contract.\n yield { event: sse.event, data };\n }\n }\n done = true;\n }\n catch (e) {\n // Abort errors and cleanup failures after the completion sentinel are non-fatal.\n if (receivedCompletionSentinel ||\n isTransportAbortError(e) ||\n (controller.signal.aborted && e === controller.signal.reason)) {\n return;\n }\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done) {\n controller.abort();\n }\n }\n }\n return new Stream(iterator, controller, client);\n }\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream(readableStream, controller, client) {\n let consumed = false;\n async function* iterLines() {\n const lineDecoder = new LineDecoder();\n const reader = readableStream.getReader();\n let closed = false;\n let cancelPromise;\n const cancel = () => {\n cancelPromise ?? (cancelPromise = reader.cancel());\n cancelPromise.catch(() => undefined);\n };\n controller.signal.addEventListener('abort', cancel, { once: true });\n try {\n if (controller.signal.aborted) {\n cancel();\n return;\n }\n while (true) {\n const { value: chunk, done } = await reader.read();\n if (done) {\n closed = true;\n break;\n }\n if (controller.signal.aborted) {\n return;\n }\n for (const line of lineDecoder.decode(chunk)) {\n if (controller.signal.aborted) {\n return;\n }\n yield line;\n }\n }\n if (controller.signal.aborted) {\n return;\n }\n for (const line of lineDecoder.flush()) {\n if (controller.signal.aborted) {\n return;\n }\n yield line;\n }\n }\n finally {\n controller.signal.removeEventListener('abort', cancel);\n if (!closed) {\n cancel();\n }\n reader.releaseLock();\n }\n }\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const line of iterLines()) {\n if (line) {\n let data;\n try {\n // SAFETY: Item is the caller's NDJSON response contract; JSON syntax is parsed here without a per-resource runtime schema.\n data = JSON.parse(line);\n }\n catch (error) {\n if (error instanceof SyntaxError) {\n throw new SyntaxError('Error reading response: malformed newline-delimited JSON.');\n }\n throw error;\n }\n yield data;\n }\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (controller.signal.aborted || isAbortError(e)) {\n return;\n }\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done) {\n controller.abort();\n }\n }\n }\n return new Stream(iterator, controller, client);\n }\n /** Starts consuming this stream; attempting to consume it again throws. */\n [(_Stream_client = new WeakMap(), _Stream_isTeeBranch = new WeakMap(), _Stream_instances = new WeakSet(), Symbol.asyncIterator)]() {\n return this.iterator();\n }\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n * Closing a branch discards its buffered events without stopping its sibling.\n * Future reads on that branch finish immediately; previously issued `next()`\n * promises remain shared with its sibling and may still resolve with events.\n * Closing both branches invokes the source iterator's `return()` when available.\n * For {@link Stream.fromReadableStream}, closing both branches before iteration\n * starts does not cancel the supplied readable; cancel that readable directly.\n */\n tee() {\n const { controller } = this;\n const left = createStreamTeeQueue();\n const right = createStreamTeeQueue();\n const iterator = this.iterator();\n const teeIterator = (queue) => ({\n next: () => {\n if (queue.canceled) {\n return Promise.resolve({ value: undefined, done: true });\n }\n if (queue.length === 0) {\n const result = iterator.next();\n left.enqueue(result);\n right.enqueue(result);\n }\n return queue.dequeue();\n },\n return: async () => {\n if (!queue.canceled) {\n queue.cancel();\n if (left.canceled && right.canceled) {\n await __classPrivateFieldGet(this, _Stream_instances, \"m\", _Stream_cancelIterator).call(this, iterator, controller);\n }\n }\n return { value: undefined, done: true };\n },\n });\n const branch = (queue) => {\n const stream = new Stream(() => teeIterator(queue), controller, __classPrivateFieldGet(this, _Stream_client, \"f\"));\n __classPrivateFieldSet(stream, _Stream_isTeeBranch, true, \"f\");\n return stream;\n };\n return [branch(left), branch(right)];\n }\n /**\n * Converts this stream to a newline-separated ReadableStream of\n * JSON stringified values in the stream\n * which can be turned back into a Stream with `Stream.fromReadableStream()`.\n * Canceling a response-backed readable aborts its request. Canceling a tee\n * branch discards its buffered events and leaves sibling consumers running.\n * Read or serialization failures also release the iterator without replacing the original error.\n */\n toReadableStream() {\n const { controller } = this;\n let iter;\n let cancellation;\n const cancel = () => (cancellation ?? (cancellation = __classPrivateFieldGet(this, _Stream_instances, \"m\", _Stream_cancelIterator).call(this, iter, controller)));\n return makeReadableStream({\n start: async () => {\n iter = this[Symbol.asyncIterator]();\n },\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done) {\n return ctrl.close();\n }\n const bytes = encodeUTF8(JSON.stringify(value) + '\\n');\n ctrl.enqueue(bytes);\n }\n catch (err) {\n ctrl.error(err);\n // An errored readable never invokes its cancel hook. Release the source ourselves,\n // without letting failed or stalled cleanup replace the read/serialization error.\n void cancel().catch(() => undefined);\n }\n },\n cancel,\n });\n }\n}\n_Stream_cancelIterator = async function _Stream_cancelIterator(iterator, controller) {\n const returnMethod = iterator.return;\n if (returnMethod) {\n if (!__classPrivateFieldGet(this, _Stream_isTeeBranch, \"f\")) {\n controller.abort();\n }\n // oxlint-disable-next-line anti-slop/no-reflect-apply -- Invoke the captured iterator method with its receiver even if a caller-supplied function shadows call.\n await Reflect.apply(returnMethod, iterator, []);\n }\n};\nfunction createAbortableSSESource(body, signal) {\n const reader = typeof body.getReader === 'function' ? body.getReader() : undefined;\n const source = reader\n ? {\n next: () => reader.read(),\n return: () => reader.cancel(),\n }\n : ReadableStreamToAsyncIterable(body)[Symbol.asyncIterator]();\n const ended = { value: undefined, done: true };\n let closed = false;\n let canceled = false;\n let cancellation;\n let interrupt;\n const waitForAbort = () => \n // oxlint-disable-next-line promise/avoid-new -- AbortSignal callbacks need a portable Promise bridge.\n new Promise((resolve) => {\n interrupt = resolve;\n });\n const cancel = () => {\n if (canceled || closed) {\n return cancellation;\n }\n canceled = true;\n try {\n cancellation = Promise.resolve(source.return?.());\n }\n catch (error) {\n cancellation = Promise.reject(error);\n }\n cancellation.catch(() => undefined);\n return cancellation;\n };\n const abort = () => {\n queueMicrotask(() => {\n interrupt?.();\n cancel();\n });\n };\n const iterator = {\n async next() {\n if (signal.aborted) {\n return ended;\n }\n const aborted = waitForAbort().then(() => ended);\n try {\n const result = await Promise.race([source.next(), aborted]);\n if (signal.aborted) {\n return ended;\n }\n if (result.done) {\n closed = true;\n return ended;\n }\n return { value: result.value, done: false };\n }\n catch (error) {\n if (signal.aborted && (isAbortError(error) || error === signal.reason)) {\n return ended;\n }\n throw error;\n }\n finally {\n interrupt = undefined;\n }\n },\n async return() {\n const pending = cancel();\n if (pending && !signal.aborted) {\n const aborted = waitForAbort();\n try {\n if (!signal.aborted) {\n await Promise.race([pending, aborted]);\n }\n }\n finally {\n interrupt = undefined;\n }\n }\n return ended;\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n return {\n iterator,\n start() {\n signal.addEventListener('abort', abort, { once: true });\n if (signal.aborted) {\n abort();\n }\n },\n async cleanup(failed) {\n let cleanupError;\n try {\n signal.removeEventListener('abort', abort);\n }\n catch (error) {\n cleanupError = error;\n }\n if (!closed) {\n const pending = cancel();\n if (pending && !failed && !signal.aborted) {\n try {\n await pending;\n }\n catch (error) {\n cleanupError ?? (cleanupError = error);\n }\n }\n }\n if (reader) {\n try {\n reader.releaseLock();\n }\n catch (error) {\n cleanupError ?? (cleanupError = error);\n }\n }\n if (cleanupError !== undefined && !failed && !signal.aborted) {\n throw cleanupError;\n }\n },\n };\n}\n/**\n * Decodes complete SSE records from a response and aborts when its body is absent.\n * Complete events are decoded on demand without imposing a line or event size limit.\n *\n * @yields {ServerSentEvent} Each decoded server-sent event in wire order.\n */\nexport async function* _iterSSEMessages(response, controller) {\n if (!response.body) {\n controller.abort();\n // SAFETY: navigator is optional across SDK runtimes; this compatibility branch checks its presence before identifying React Native.\n if (globalThis.navigator !== undefined &&\n globalThis.navigator.product === 'ReactNative') {\n throw 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`);\n }\n throw new OpenAIError(`Attempted to iterate over a response with no body`);\n }\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new LineDecoder();\n const { signal } = controller;\n const source = createAbortableSSESource(response.body, signal);\n let failed = false;\n try {\n source.start();\n for await (const sseChunk of iterSSEChunks(source.iterator)) {\n if (signal.aborted) {\n return;\n }\n for (const line of lineDecoder.decode(sseChunk)) {\n if (signal.aborted) {\n return;\n }\n const sse = sseDecoder.decode(line);\n if (sse) {\n yield sse;\n }\n }\n }\n if (signal.aborted) {\n return;\n }\n for (const line of lineDecoder.flush()) {\n if (signal.aborted) {\n return;\n }\n const sse = sseDecoder.decode(line);\n if (sse) {\n yield sse;\n }\n }\n // Servers sometimes omit the trailing blank line that normally\n // terminates the last event. Flush any in-progress event exactly once.\n if (signal.aborted) {\n return;\n }\n const pending = sseDecoder.flush();\n if (pending) {\n yield pending;\n }\n }\n catch (error) {\n failed = true;\n if (!signal.aborted || (!isAbortError(error) && error !== signal.reason)) {\n throw error;\n }\n }\n finally {\n await source.cleanup(failed);\n }\n}\n// A `\\r\\n\\r\\n` separator may retain up to three bytes from the previous chunk.\nconst DOUBLE_NEWLINE_DELIMITER_MAX_OVERLAP_BYTES = 3;\n/**\n * Given an async iterable iterator, iterates over it and yields full\n * SSE chunks, i.e. yields when a double new-line is encountered.\n *\n * @yields {Uint8Array} A complete SSE chunk.\n */\nasync function* iterSSEChunks(iterator) {\n let data = new Uint8Array();\n let dataStart = 0;\n let dataEnd = 0;\n let searchStartIndex = 0;\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n let binaryChunk;\n if (chunk instanceof ArrayBuffer) {\n binaryChunk = new Uint8Array(chunk);\n }\n else if (typeof chunk === 'string') {\n binaryChunk = encodeUTF8(chunk);\n }\n else {\n binaryChunk = chunk;\n }\n if (dataEnd + binaryChunk.length > data.length) {\n const bufferedLength = dataEnd - dataStart;\n // Compact only when it reclaims substantial space without moving a large live tail repeatedly.\n if (dataStart >= data.length / 2 && bufferedLength + binaryChunk.length <= data.length) {\n data.copyWithin(0, dataStart, dataEnd);\n }\n else {\n const newData = new Uint8Array(Math.max(data.length * 2, bufferedLength + binaryChunk.length));\n newData.set(data.subarray(dataStart, dataEnd));\n data = newData;\n }\n searchStartIndex -= dataStart;\n dataStart = 0;\n dataEnd = bufferedLength;\n }\n data.set(binaryChunk, dataEnd);\n dataEnd += binaryChunk.length;\n let patternIndex;\n while ((patternIndex = findDoubleNewlineIndex(data.subarray(searchStartIndex, dataEnd))) !== -1) {\n patternIndex += searchStartIndex;\n yield data.slice(dataStart, patternIndex);\n dataStart = patternIndex;\n searchStartIndex = dataStart;\n }\n searchStartIndex = Math.max(dataStart, dataEnd - DOUBLE_NEWLINE_DELIMITER_MAX_OVERLAP_BYTES);\n }\n if (dataEnd > dataStart) {\n yield data.slice(dataStart, dataEnd);\n }\n}\nclass SSEDecoder {\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n decode(line) {\n if (line.endsWith('\\r')) {\n line = line.slice(0, -1);\n }\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length) {\n return null;\n }\n const sse = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n this.event = null;\n this.data = [];\n this.chunks = [];\n return sse;\n }\n this.chunks.push(line);\n if (line.startsWith(':')) {\n return null;\n }\n const [fieldname, , initialValue] = partition(line, ':');\n let value = initialValue;\n if (value.startsWith(' ')) {\n value = value.slice(1);\n }\n if (fieldname === 'event') {\n this.event = value;\n }\n else if (fieldname === 'data') {\n this.data.push(value);\n }\n return null;\n }\n /**\n * Emits a pending event at EOF when the stream omitted the trailing blank\n * line. Returns `null` when no event is in progress so a record that already\n * ended with a blank line is not delivered twice.\n */\n flush() {\n return this.decode('');\n }\n}\nfunction partition(str, delimiter) {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.slice(0, index), delimiter, str.slice(index + delimiter.length)];\n }\n return [str, '', ''];\n}\n//# sourceMappingURL=streaming.mjs.map","import { Stream } from \"../core/streaming.mjs\";\nimport { isAbortError } from \"./errors.mjs\";\nimport { formatRequestDetails, loggerFor } from \"./utils/log.mjs\";\nexport async function defaultParseResponse(client, props) {\n const { response, requestLogID, retryOfRequestLogID, startTime } = props;\n let jsonBodyLength;\n const body = await (async () => {\n if (props.options.stream) {\n loggerFor(client).debug('response', response.status, response.url, response.headers, response.body);\n // Note: there is an invariant here that isn't represented in the type system\n // that if you set `stream: true` the response type must also be `Stream<T>`\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller, client, props.options.__synthesizeEventData);\n }\n return Stream.fromSSEResponse(response, props.controller, client, props.options.__synthesizeEventData);\n }\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim().toLowerCase();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const contentLength = response.headers.get('content-length');\n if (contentLength === '0') {\n // if there is no content we can't do anything\n return undefined;\n }\n const bodyText = await response.text();\n if (!bodyText) {\n // Some servers respond with an empty body and a JSON content-type but\n // without a `content-length: 0` header (e.g. over HTTP/2 or with chunked\n // transfer encoding). Treat this the same as an explicit `content-length: 0`\n // instead of letting `JSON.parse` throw an opaque `SyntaxError`.\n return undefined;\n }\n const json = JSON.parse(bodyText);\n jsonBodyLength = bodyText.length;\n return addRequestID(json, response);\n }\n const text = await response.text();\n return text;\n })().catch((error) => {\n throw asAbortError(error, props.controller.signal);\n });\n if (client.logLevel === 'debug') {\n loggerFor(client).debug(`[${requestLogID}] response parsed`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body: jsonBodyLength === undefined ? body : { type: 'json', length: jsonBodyLength },\n durationMs: Date.now() - startTime,\n }));\n }\n return body;\n}\nfunction asAbortError(error, signal) {\n if (!signal.aborted || error !== signal.reason || isAbortError(error)) {\n return error;\n }\n const message = 'This operation was aborted';\n const DOMExceptionConstructor = globalThis.DOMException;\n return typeof DOMExceptionConstructor === 'function'\n ? new DOMExceptionConstructor(message, 'AbortError')\n : Object.assign(new Error(message), { name: 'AbortError' });\n}\nexport function addRequestID(value, response) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('x-request-id'),\n enumerable: false,\n });\n}\n//# sourceMappingURL=parse.mjs.map","/** Version of the installed OpenAI SDK package. */\nexport const VERSION = '7.19.0'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","import { VERSION } from \"../version.mjs\";\nexport const isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\n/**\n * Note this does not detect 'browser'; for that, use getBrowserInfo().\n */\nfunction getDetectedPlatform() {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return 'deno';\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return 'edge';\n }\n if (Object.prototype.toString.call(typeof globalThis.process !== 'undefined' ? globalThis.process : 0) === '[object process]') {\n return 'node';\n }\n return 'unknown';\n}\nconst getPlatformProperties = () => {\n const detectedPlatform = getDetectedPlatform();\n if (detectedPlatform === 'deno') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : (Deno.version?.deno ?? 'unknown'),\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': globalThis.process?.version ?? 'unknown',\n };\n }\n // Check if Node.js\n if (detectedPlatform === 'node') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(globalThis.process.platform ?? 'unknown'),\n 'X-Stainless-Arch': normalizeArch(globalThis.process.arch ?? 'unknown'),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': globalThis.process.version ?? 'unknown',\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /\\bEdg(?:e|A|iOS)?\\b(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nexport const getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\n//# sourceMappingURL=detect-platform.mjs.map","const jsonRequestBodyObservers = new WeakMap();\n/** Observes values produced by the actual JSON request serializer without changing them. */\nexport function observeJSONRequestBody(body, observer) {\n let observers = jsonRequestBodyObservers.get(body);\n if (!observers) {\n observers = new Set();\n jsonRequestBodyObservers.set(body, observers);\n }\n observers.add(observer);\n return () => {\n const active = jsonRequestBodyObservers.get(body);\n if (!active) {\n return;\n }\n active.delete(observer);\n if (active.size === 0) {\n jsonRequestBodyObservers.delete(body);\n }\n };\n}\nexport const FallbackEncoder = ({ headers, body }) => {\n const observers = typeof body === 'object' && body !== null ? jsonRequestBodyObservers.get(body) : undefined;\n let encoded;\n if (!observers || observers.size === 0) {\n encoded = JSON.stringify(body);\n }\n else {\n const active = [...observers];\n encoded = JSON.stringify(body, function (key, value) {\n let observed = value;\n for (const observer of active) {\n const replacement = observer.value(this, key, observed);\n if (replacement !== undefined) {\n observed = replacement;\n }\n }\n return observed;\n });\n for (const observer of active) {\n observer.complete();\n }\n }\n return {\n bodyHeaders: {\n 'content-type': 'application/json',\n },\n body: encoded,\n };\n};\n//# sourceMappingURL=request-options.mjs.map","export const default_format = 'RFC3986';\nexport const default_formatter = String;\nexport const formatters = {\n RFC1738: (v) => String(v).replace(/%20/g, '+'),\n RFC3986: default_formatter,\n};\nexport const RFC1738 = 'RFC1738';\nexport const RFC3986 = 'RFC3986';\n//# sourceMappingURL=formats.mjs.map","import { RFC1738 } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\n// oxlint-disable-next-line anti-slop/no-object-parameters -- The cached own-property predicate accepts arrays, callable objects, and records.\nlet cachedHas;\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Own-property lookup is a generic object primitive and must preserve array and callable inputs.\nexport const has = (obj, key) => {\n // SAFETY: Object.hasOwn is an optional native capability; older runtimes use the bound hasOwnProperty fallback with the same own-key semantics.\n // oxlint-disable-next-line anti-slop/no-object-parameters -- The native or compatibility own-property predicate has the same generic object contract.\n const resolvedHas = cachedHas ?? Object.hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty);\n cachedHas = resolvedHas;\n return resolvedHas(obj, key);\n};\nfunction isUnsafePropertyKey(key) {\n return key === '__proto__' || key === 'constructor' || key === 'prototype';\n}\nconst maxAdoptedRecords = 10000;\nfunction isIntrinsicFunctionPrototype(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Prototype descriptors are inspected before deciding whether an arbitrary adopted value is callable.\nvalue, key, descriptor) {\n return (typeof value === 'function' && key === 'prototype' && !descriptor.enumerable && !descriptor.configurable);\n}\nfunction isObjectLike(value) {\n return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Adoption records retain arbitrary merge-target identities for later descriptor validation.\nfunction rememberAdoption(state, target, key, value) {\n if (!isObjectLike(value)) {\n return;\n }\n if (state.adopted.length >= maxAdoptedRecords) {\n throw new Error('Adopted record traversal exceeds the supported safety limit.');\n }\n state.adopted.push({ target, key });\n}\nfunction sanitizeAdoptions(state) {\n if (state.adopted.length === 0) {\n return;\n }\n const records = new WeakMap();\n const visited = [];\n const locations = [];\n let inspectedProperties = 0;\n // oxlint-disable-next-line anti-slop/no-object-parameters -- Adoption validation inspects arbitrary objects, including arrays and functions, before trusting their structure.\n function inspect(value) {\n const known = records.get(value);\n if (known) {\n return known;\n }\n if (visited.length >= maxAdoptedRecords) {\n throw new Error('Adopted record traversal exceeds the supported safety limit.');\n }\n const keys = Reflect.ownKeys(value);\n if (keys.length > maxAdoptedRecords - inspectedProperties) {\n throw new Error('Adopted record traversal exceeds the supported safety limit.');\n }\n inspectedProperties += keys.length;\n const descriptors = Object.create(null);\n for (const key of keys) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor) {\n Reflect.set(descriptors, key, descriptor);\n }\n }\n const prototype = Object.getPrototypeOf(value);\n const array = isArray(value);\n const extensible = Object.isExtensible(value);\n const ordinary = typeof value !== 'function' &&\n (array ? prototype === Array.prototype : prototype === Object.prototype || prototype === null);\n const record = {\n value,\n descriptors,\n keys,\n prototype,\n parents: new Set(),\n ordinary,\n array,\n detached: ordinary && (extensible || !Object.isFrozen(value)),\n unsafe: false,\n extensible,\n };\n records.set(value, record);\n visited.push(record);\n return record;\n }\n for (const { target, key } of state.adopted) {\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor && 'value' in descriptor && isObjectLike(descriptor.value)) {\n locations.push({ target, key, descriptor, record: inspect(descriptor.value) });\n }\n }\n const detached = [];\n for (const record of visited) {\n for (const key of record.keys) {\n const descriptor = record.descriptors[key];\n if (!descriptor) {\n continue;\n }\n if (isUnsafePropertyKey(key)) {\n if (record.ordinary) {\n record.detached = true;\n record.unsafe = true;\n }\n else if (!isIntrinsicFunctionPrototype(record.value, key, descriptor)) {\n throw new TypeError('Cannot safely sanitize an adopted callable or unsupported prototype.');\n }\n continue;\n }\n if (!record.ordinary && !descriptor.enumerable) {\n continue;\n }\n if ('value' in descriptor && isObjectLike(descriptor.value)) {\n inspect(descriptor.value).parents.add(record);\n }\n }\n if (record.detached) {\n detached.push(record);\n }\n }\n for (let index = visited.length - 1; index >= 0; index -= 1) {\n const record = visited[index];\n if (record.ordinary) {\n continue;\n }\n for (const key of ['__proto__', 'constructor', 'prototype']) {\n const descriptor = Object.getOwnPropertyDescriptor(record.value, key);\n if (descriptor && !isIntrinsicFunctionPrototype(record.value, key, descriptor)) {\n throw new TypeError('Cannot safely sanitize an adopted callable or unsupported prototype.');\n }\n }\n }\n const unsafe = visited.filter((record) => record.unsafe);\n for (const record of unsafe) {\n for (const parent of record.parents) {\n if (!parent.ordinary) {\n throw new TypeError('Cannot safely sanitize an adopted callable or unsupported prototype.');\n }\n if (!parent.unsafe) {\n parent.unsafe = true;\n unsafe.push(parent);\n }\n }\n }\n for (const record of detached) {\n for (const parent of record.parents) {\n if (!parent.ordinary) {\n continue;\n }\n if (!parent.detached) {\n parent.detached = true;\n detached.push(parent);\n }\n }\n }\n const copies = new WeakMap();\n for (const record of detached) {\n copies.set(record.value, record.array ? [] : Object.create(record.prototype));\n }\n for (const record of detached) {\n const copy = copies.get(record.value);\n for (const key of record.keys) {\n if (isUnsafePropertyKey(key)) {\n continue;\n }\n const descriptor = record.descriptors[key];\n if (!descriptor) {\n continue;\n }\n if ('value' in descriptor && isObjectLike(descriptor.value) && copies.has(descriptor.value)) {\n descriptor.value = copies.get(descriptor.value);\n }\n Object.defineProperty(copy, key, descriptor);\n }\n }\n for (const { target, key, descriptor, record } of locations) {\n const value = copies.get(record.value) ?? record.value;\n if (value !== descriptor.value) {\n Object.defineProperty(copies.get(target) ?? target, key, { ...descriptor, value });\n }\n }\n for (const record of detached) {\n if (!record.extensible) {\n Object.preventExtensions(copies.get(record.value));\n }\n }\n}\nfunction readPreparedTarget(state, target, key) {\n const prepared = state.preparedTargets.get(target);\n if (prepared?.has(key)) {\n const value = prepared.get(key);\n prepared.delete(key);\n return value;\n }\n return target[key];\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Merge targets may contain accessors or custom prototypes, so the preview preserves the generic object boundary.\nfunction previewTarget(state, target, key) {\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor && 'value' in descriptor) {\n return descriptor.value;\n }\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Generic query merging snapshots arbitrary inherited/accessor keys before mutation.\n const value = Reflect.get(target, key, target);\n let prepared = state.preparedTargets.get(target);\n if (!prepared) {\n prepared = new Map();\n state.preparedTargets.set(target, prepared);\n }\n prepared.set(key, value);\n return value;\n}\nfunction prepareMergeSource(target, source, state, assign = false) {\n if (!source || typeof source !== 'object' || !target || typeof target !== 'object') {\n return source;\n }\n let preparedTargets = state.preparedSources.get(source);\n if (!preparedTargets) {\n preparedTargets = new WeakMap();\n state.preparedSources.set(source, preparedTargets);\n }\n const existing = preparedTargets.get(target);\n if (existing) {\n return existing;\n }\n state.inspectedSources += 1;\n if (state.inspectedSources > maxAdoptedRecords) {\n throw new Error('Adopted record traversal exceeds the supported safety limit.');\n }\n const sourceKeys = Reflect.ownKeys(source);\n if (sourceKeys.length > maxAdoptedRecords - state.inspectedSourceProperties) {\n throw new Error('Adopted record traversal exceeds the supported safety limit.');\n }\n state.inspectedSourceProperties += sourceKeys.length;\n const sourceIsArray = isArray(source);\n // oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- The query merge graph preserves heterogeneous scalar, array, and object values under its existing merge contract.\n const prepared = sourceIsArray ? [] : Object.create(null);\n preparedTargets.set(target, prepared);\n if (isArray(target) && sourceIsArray && !assign) {\n const sourceLength = source.length;\n // SAFETY: prepared was constructed as an array when sourceIsArray is true, which this branch requires.\n prepared.length = sourceLength;\n for (let index = 0; index < sourceLength; index += 1) {\n if (!(index in source)) {\n continue;\n }\n const value = source[index];\n if (has(target, index)) {\n const targetValue = previewTarget(state, target, index);\n prepared[index] =\n targetValue && typeof targetValue === 'object' && value && typeof value === 'object'\n ? prepareMergeSource(targetValue, value, state)\n : value;\n }\n else {\n prepared[index] = value;\n }\n }\n return prepared;\n }\n const enumerableKeys = [];\n for (const key of sourceKeys) {\n if (typeof key === 'string' && Object.getOwnPropertyDescriptor(source, key)?.enumerable) {\n enumerableKeys.push(key);\n }\n }\n for (const key of enumerableKeys) {\n if (isUnsafePropertyKey(key)) {\n continue;\n }\n const value = source[key];\n prepared[key] =\n !assign && has(target, key) && value && typeof value === 'object'\n ? prepareMergeSource(previewTarget(state, target, key), value, state)\n : value;\n }\n return prepared;\n}\nfunction prepareSource(target, source, state, assign = false) {\n const holder = { value: prepareMergeSource(target, source, state, assign) };\n rememberAdoption(state, holder, 'value', holder.value);\n sanitizeAdoptions(state);\n return holder.value;\n}\nconst hex_table = /* @__PURE__ */ (() => {\n const array = [];\n for (let i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n return array;\n})();\nfunction compact_queue(queue) {\n while (queue.length > 1) {\n const item = queue.pop();\n if (!item) {\n continue;\n }\n const obj = item.obj[item.prop];\n if (isArray(obj)) {\n const compacted = [];\n for (const value of obj) {\n if (value !== undefined) {\n compacted.push(value);\n }\n }\n // @ts-ignore\n item.obj[item.prop] = compacted;\n }\n }\n}\nfunction array_to_object(source, options) {\n const obj = options && options.plainObjects ? Object.create(null) : {};\n for (let i = 0; i < source.length; ++i) {\n if (source[i] !== undefined) {\n obj[i] = source[i];\n }\n }\n return obj;\n}\nfunction mergeWithState(target, source, options, state) {\n if (!source) {\n return target;\n }\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n }\n else if (target && typeof target === 'object') {\n const propertyKey = typeof source === 'string' || typeof source === 'symbol'\n ? source\n : Reflect.ownKeys({ [source]: true })[0];\n if (!isUnsafePropertyKey(propertyKey) &&\n ((options && (options.plainObjects || options.allowPrototypes)) ||\n !has(Object.prototype, propertyKey))) {\n target[propertyKey] = true;\n }\n }\n else {\n return [target, source];\n }\n return target;\n }\n if (!target || typeof target !== 'object') {\n // oxlint-disable-next-line unicorn/prefer-spread -- concat intentionally preserves one-level flattening and sparse-array behavior.\n return [target].concat(source);\n }\n let mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n // @ts-ignore\n mergeTarget = array_to_object(target, options);\n }\n if (isArray(target) && isArray(source)) {\n const sourceLength = source.length;\n for (let i = 0; i < sourceLength; i += 1) {\n if (i in source) {\n const item = source[i];\n if (has(target, i)) {\n const targetItem = readPreparedTarget(state, target, i);\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n const merged = mergeWithState(targetItem, item, options, state);\n target[i] = merged;\n }\n else {\n const adopted = item;\n target.push(adopted);\n }\n }\n else {\n const adopted = item;\n target[i] = adopted;\n }\n }\n }\n return target;\n }\n for (const key of Object.keys(source)) {\n if (isUnsafePropertyKey(key)) {\n continue;\n }\n const value = source[key];\n const adopted = has(mergeTarget, key)\n ? mergeWithState(readPreparedTarget(state, mergeTarget, key), value, options, state)\n : value;\n mergeTarget[key] = adopted;\n }\n return mergeTarget;\n}\nexport function merge(target, source, options = {}) {\n const state = {\n adopted: [],\n preparedTargets: new WeakMap(),\n preparedSources: new WeakMap(),\n inspectedSources: 0,\n inspectedSourceProperties: 0,\n };\n return mergeWithState(target, prepareSource(target, source, state), options, state);\n}\nexport function assign_single_source(target, source) {\n const state = {\n adopted: [],\n preparedTargets: new WeakMap(),\n preparedSources: new WeakMap(),\n inspectedSources: 0,\n inspectedSourceProperties: 0,\n };\n const prepared = prepareSource(target, source, state, true);\n for (const key of Object.keys(prepared)) {\n if (isUnsafePropertyKey(key)) {\n continue;\n }\n target[key] = prepared[key];\n }\n return target;\n}\nexport function decode(str, _, charset) {\n const strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n }\n catch {\n return strWithoutPlus;\n }\n}\nconst limit = 1024;\nexport const encode = (str, _defaultEncoder, charset, _kind, format) => {\n // This code was originally written by Brian White for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n let string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n }\n else if (typeof str !== 'string') {\n string = String(str);\n }\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, ($0) => '%26%23' + Number.parseInt($0.slice(2), 16) + '%3B');\n }\n let out = '';\n for (let j = 0; j < string.length;) {\n let segmentEnd = Math.min((Math.floor(j / limit) + 1) * limit, string.length);\n if (segmentEnd < string.length && string.codePointAt(segmentEnd - 1) > 65535) {\n segmentEnd += 1;\n }\n const segment = string.length >= limit ? string.slice(j, segmentEnd) : string;\n const arr = [];\n for (let i = 0; i < segment.length; ++i) {\n // oxlint-disable-next-line unicorn/prefer-code-point -- combine UTF-16 surrogate code units below\n let c = segment.charCodeAt(i);\n if (c === 0x2d || // -\n c === 0x2e || // .\n c === 0x5f || // _\n c === 0x7e || // ~\n (c >= 0x30 && c <= 0x39) || // 0-9\n (c >= 0x41 && c <= 0x5a) || // a-z\n (c >= 0x61 && c <= 0x7a) || // A-Z\n (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n if (c < 0x80) {\n arr[arr.length] = hex_table[c];\n continue;\n }\n if (c < 2048) {\n arr[arr.length] = hex_table[0xc0 | (c >> 6)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n if (c < 55296 || c >= 57344) {\n arr[arr.length] =\n hex_table[0xe0 | (c >> 12)] + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n i += 1;\n // oxlint-disable-next-line unicorn/prefer-code-point -- combine UTF-16 surrogate code units manually\n c = 65536 + (((c & 1023) << 10) | (segment.charCodeAt(i) & 1023));\n arr[arr.length] =\n hex_table[0xf0 | (c >> 18)] +\n hex_table[0x80 | ((c >> 12) & 0x3f)] +\n hex_table[0x80 | ((c >> 6) & 0x3f)] +\n hex_table[0x80 | (c & 0x3f)];\n }\n out += arr.join('');\n j = segmentEnd;\n }\n return out;\n};\nexport function compact(value) {\n const queue = [{ obj: { o: value }, prop: 'o' }];\n const refs = [];\n for (const item of queue) {\n // @ts-ignore\n const obj = item.obj[item.prop];\n const keys = Object.keys(obj);\n for (const key of keys) {\n const val = obj[key];\n if (typeof val === 'object' && val !== null && !refs.includes(val)) {\n queue.push({ obj, prop: key });\n refs.push(val);\n }\n }\n }\n compact_queue(queue);\n return value;\n}\nexport function is_regexp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexport function is_buffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n}\nexport function combine(a, b) {\n // oxlint-disable-next-line unicorn/prefer-spread -- concat intentionally preserves one-level flattening and sparse-array behavior.\n return [].concat(a, b);\n}\nexport function maybe_map(val, fn) {\n if (isArray(val)) {\n const mapped = [];\n for (const item of val) {\n mapped.push(fn(item));\n }\n return mapped;\n }\n return fn(val);\n}\n//# sourceMappingURL=utils.mjs.map","import { encode, is_buffer, maybe_map, has } from \"./utils.mjs\";\nimport { default_format, default_formatter, formatters } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nconst array_prefix_generators = {\n brackets(prefix) {\n return String(prefix) + '[]';\n },\n comma: 'comma',\n indices(prefix, key) {\n return String(prefix) + '[' + key + ']';\n },\n repeat(prefix) {\n return String(prefix);\n },\n};\nconst push_to_array = function push_to_array(arr, value_or_array) {\n Array.prototype.push.apply(arr, isArray(value_or_array) ? value_or_array : [value_or_array]);\n};\nlet toISOString;\n// SAFETY: The defaults object supplies the serializer's established non-null option values and RFC formatter; callers still merge their overrides separately.\nconst defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: encode,\n encodeValuesOnly: false,\n format: default_format,\n formatter: default_formatter,\n /** @deprecated */\n indices: false,\n serializeDate(date) {\n return (toISOString ?? (toISOString = Function.prototype.call.bind(Date.prototype.toISOString)))(date);\n },\n skipNulls: false,\n strictNullHandling: false,\n};\nfunction is_non_nullish_primitive(v) {\n return (typeof v === 'string' ||\n typeof v === 'number' ||\n typeof v === 'boolean' ||\n typeof v === 'symbol' ||\n typeof v === 'bigint');\n}\nconst sentinel = {};\nfunction inner_stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n let obj = object;\n let tmp_sc = sideChannel;\n let step = 0;\n let find_flag = false;\n while ((tmp_sc = tmp_sc.get(sentinel)) !== undefined && !find_flag) {\n // Where object last appeared in the ref tree\n const pos = tmp_sc.get(object);\n step += 1;\n if (pos !== undefined) {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n }\n else {\n find_flag = true; // Break while\n }\n }\n if (tmp_sc.get(sentinel) === undefined) {\n step = 0;\n }\n }\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n }\n else if (obj instanceof Date) {\n obj = serializeDate?.(obj);\n }\n else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = maybe_map(obj, (value) => {\n if (value instanceof Date) {\n return serializeDate?.(value);\n }\n return value;\n });\n }\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly\n ? // @ts-expect-error\n encoder(prefix, defaults.encoder, charset, 'key', format)\n : prefix;\n }\n obj = '';\n }\n if (is_non_nullish_primitive(obj) || is_buffer(obj)) {\n if (encoder) {\n const key_value = encodeValuesOnly\n ? prefix\n : // @ts-expect-error\n encoder(prefix, defaults.encoder, charset, 'key', format);\n return [\n formatter?.(key_value) +\n '=' +\n // @ts-expect-error\n formatter?.(encoder(obj, defaults.encoder, charset, 'value', format)),\n ];\n }\n return [formatter?.(prefix) + '=' + formatter?.(String(obj))];\n }\n const values = [];\n if (obj === undefined) {\n return values;\n }\n let obj_keys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n // @ts-expect-error values only\n obj = maybe_map(obj, encoder);\n }\n obj_keys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n }\n else if (isArray(filter)) {\n obj_keys = filter;\n }\n else {\n const keys = Object.keys(obj);\n if (sort) {\n keys.sort(sort);\n }\n obj_keys = keys;\n }\n const encoded_prefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n const adjusted_prefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encoded_prefix + '[]' : encoded_prefix;\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjusted_prefix + '[]';\n }\n for (const key of obj_keys) {\n // SAFETY: The serializer supports its existing encoded-key wrapper or property key; the branch selects the wrapper value before indexing the object.\n const value = \n // @ts-ignore\n typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n if (skipNulls && value === null) {\n continue;\n }\n // SAFETY: Dot encoding applies the serializer's existing string-key protocol; this cast preserves its legacy mixed key representation.\n // @ts-ignore\n const encoded_key = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n let key_prefix;\n if (isArray(obj)) {\n key_prefix =\n typeof generateArrayPrefix === 'function'\n ? generateArrayPrefix(adjusted_prefix, encoded_key)\n : adjusted_prefix;\n }\n else {\n key_prefix = adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']');\n }\n sideChannel.set(object, step);\n const valueSideChannel = new WeakMap([[sentinel, sideChannel]]);\n push_to_array(values, inner_stringify(value, key_prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, \n // @ts-ignore\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n }\n return values;\n}\nfunction normalize_stringify_options(opts = defaults) {\n if (opts.allowEmptyArrays !== undefined && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n if (opts.encodeDotInKeys !== undefined && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n const charset = opts.charset || defaults.charset;\n if (opts.charset !== undefined && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n let format = default_format;\n if (opts.format !== undefined) {\n if (!has(formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n const formatter = formatters[format];\n let filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n let arrayFormat;\n if (opts.arrayFormat && opts.arrayFormat in array_prefix_generators) {\n arrayFormat = opts.arrayFormat;\n }\n else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n }\n else {\n arrayFormat = defaults.arrayFormat;\n }\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n let allowDots;\n if (opts.allowDots === undefined) {\n allowDots = !!opts.encodeDotInKeys === true ? true : defaults.allowDots;\n }\n else {\n allowDots = !!opts.allowDots;\n }\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n // @ts-ignore\n allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat,\n charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: opts.delimiter === undefined ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter,\n format,\n formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n // @ts-ignore\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n };\n}\nexport function stringify(object, opts = {}) {\n let obj = object;\n const options = normalize_stringify_options(opts);\n let obj_keys;\n let filter;\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n }\n else if (isArray(options.filter)) {\n filter = options.filter;\n obj_keys = filter;\n }\n const keys = [];\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n const generateArrayPrefix = array_prefix_generators[options.arrayFormat];\n const commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n if (!obj_keys) {\n obj_keys = Object.keys(obj);\n }\n if (options.sort) {\n obj_keys.sort(options.sort);\n }\n const sideChannel = new WeakMap();\n for (const key of obj_keys) {\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n push_to_array(keys, inner_stringify(obj[key], key, \n // @ts-expect-error\n 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));\n }\n const joined = keys.join(options.delimiter);\n let prefix = options.addQueryPrefix === true ? '?' : '';\n if (options.charsetSentinel) {\n prefix +=\n options.charset === 'iso-8859-1'\n ? // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n 'utf8=%26%2310003%3B&'\n : // encodeURIComponent('✓')\n 'utf8=%E2%9C%93&';\n }\n return joined.length > 0 ? prefix + joined : '';\n}\n//# sourceMappingURL=stringify.mjs.map","import * as qs from \"../qs/stringify.mjs\";\nexport function stringifyQuery(query) {\n return qs.stringify(query, { arrayFormat: 'brackets' });\n}\n//# sourceMappingURL=query.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../core/error.mjs\";\nimport { hasOwn } from \"./utils/values.mjs\";\nconst endpoints = new Map([\n ['global', 'https://api.openai.com/v1'],\n ['us', 'https://us.api.openai.com/v1'],\n ['eu', 'https://eu.api.openai.com/v1'],\n ['ae', 'https://ae.api.openai.com/v1'],\n]);\n/** Resolves an explicit residency selection before client options are inherited. */\nexport function resolveDataResidency(options) {\n if (options.dataResidency === null || options.dataResidency === undefined) {\n return undefined;\n }\n if (hasOwn(options, 'baseURL')) {\n throw new OpenAIError('The `dataResidency` and `baseURL` options are mutually exclusive.');\n }\n const endpoint = endpoints.get(options.dataResidency);\n if (endpoint === undefined) {\n throw new OpenAIError('Invalid `dataResidency`; expected one of: global, us, eu, ae.');\n }\n return endpoint;\n}\n/** Prevents legacy provider clients from selecting an OpenAI endpoint. */\nexport function assertNoDataResidency(dataResidency, clientName) {\n if (dataResidency !== null && dataResidency !== undefined) {\n throw new OpenAIError(`${clientName} does not support \\`dataResidency\\`.`);\n }\n}\n//# sourceMappingURL=data-residency.mjs.map","var _APIPromise_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { defaultParseResponse, addRequestID, } from \"../internal/parse.mjs\";\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(client, responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n _APIPromise_client.set(this, void 0);\n __classPrivateFieldSet(this, _APIPromise_client, client, \"f\");\n }\n _thenUnwrap(transform) {\n return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), this.responsePromise, async (client, props) => addRequestID(transform(await this.parseResponse(client, props), props), props.response));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data, the raw `Response` instance and the ID of the request,\n * returned via the X-Request-ID header which is useful for debugging requests and reporting\n * issues to OpenAI.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('x-request-id') };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), data));\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\n_APIPromise_client = new WeakMap();\n//# sourceMappingURL=api-promise.mjs.map","var _AbstractPage_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\nimport { APIPromise } from \"./api-promise.mjs\";\nimport { maybeObj } from \"../internal/utils/values.mjs\";\nexport class AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageRequestOptions() != null;\n }\n async getNextPage() {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nexport class PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(client, request, async (client, props) => new Page(client, props.response, await defaultParseResponse(client, props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nexport class Page extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.object = body.object;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n nextPageRequestOptions() {\n return null;\n }\n}\nexport class CursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const data = this.getPaginatedItems();\n const id = data[data.length - 1]?.id;\n if (!id) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: id,\n },\n };\n }\n}\nexport class ConversationCursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.last_id = body.last_id || '';\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const cursor = this.last_id;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: cursor,\n },\n };\n }\n}\nexport class NextCursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.next = body.next || null;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return this.nextPageRequestOptions() != null;\n }\n nextPageRequestOptions() {\n const cursor = this.next;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: cursor,\n },\n };\n }\n}\nexport class TokenPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.next = body.next || null;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return this.nextPageRequestOptions() != null;\n }\n nextPageRequestOptions() {\n const cursor = this.next;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n page: cursor,\n },\n };\n }\n}\n//# sourceMappingURL=pagination.mjs.map","import * as Shims from \"../internal/shims.mjs\";\nimport { APIError, OAuthError, OpenAIError } from \"../core/error.mjs\";\nconst SUBJECT_TOKEN_TYPES = {\n jwt: 'urn:ietf:params:oauth:token-type:jwt',\n id: 'urn:ietf:params:oauth:token-type:id_token',\n};\nconst TOKEN_EXCHANGE_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:token-exchange';\n// Cap the refresh buffer at half the actual token lifetime, matching the X.509\n// workload-identity path, so short-lived tokens keep a usable cache window.\nconst MAX_REFRESH_BUFFER_FRACTION = 0.5;\nfunction calculateExpiresAt(expiresIn, exchangeStartedAt) {\n if (typeof expiresIn !== 'number' || !Number.isFinite(expiresIn) || expiresIn <= 0) {\n throw new OpenAIError(\"Token exchange response has invalid 'expires_in' field\");\n }\n const now = Date.now();\n const fullLifetimeDeadline = now + expiresIn * 1000;\n if (!Number.isSafeInteger(fullLifetimeDeadline) || fullLifetimeDeadline <= now) {\n throw new OpenAIError(\"Token exchange response has invalid 'expires_in' field\");\n }\n const expiresAt = fullLifetimeDeadline - (performance.now() - exchangeStartedAt);\n if (expiresAt <= now) {\n throw new OpenAIError('Workload identity token expired before its exchange completed.');\n }\n return expiresAt;\n}\nfunction calculateRefreshAt(expiresAt, lifetimeSeconds, refreshBufferSeconds) {\n const configuredBufferMs = (refreshBufferSeconds ?? 1200) * 1000;\n const effectiveBufferMs = Math.min(configuredBufferMs, lifetimeSeconds * 1000 * MAX_REFRESH_BUFFER_FRACTION);\n return expiresAt - effectiveBufferMs;\n}\nconst NATIVE_RESPONSE_PROTOTYPE = Response.prototype;\nconst READ_NATIVE_RESPONSE_BODY = NATIVE_RESPONSE_PROTOTYPE.arrayBuffer;\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Custom fetch response prototypes are verified through descriptors before trusting their native contract.\nfunction isResponsePrototype(response, prototype) {\n const constructor = Object.getOwnPropertyDescriptor(prototype, 'constructor')?.value;\n if (prototype === response ||\n typeof constructor !== 'function' ||\n Object.getOwnPropertyDescriptor(constructor, 'name')?.value !== 'Response' ||\n Object.getOwnPropertyDescriptor(constructor, 'prototype')?.value !== prototype) {\n return false;\n }\n const tag = Object.getOwnPropertyDescriptor(prototype, Symbol.toStringTag);\n return ((tag?.value === 'Response' || typeof tag?.get === 'function') &&\n typeof Object.getOwnPropertyDescriptor(prototype, 'headers')?.get === 'function' &&\n typeof Object.getOwnPropertyDescriptor(prototype, 'ok')?.get === 'function' &&\n typeof Object.getOwnPropertyDescriptor(prototype, 'status')?.get === 'function');\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- The prototype walk compares untrusted cross-realm objects by identity and descriptor metadata.\nfunction isResponseBodyPrototype(prototype, responsePrototype) {\n if (prototype === responsePrototype) {\n return true;\n }\n const constructor = Object.getOwnPropertyDescriptor(prototype, 'constructor')?.value;\n return (responsePrototype !== null &&\n Object.getPrototypeOf(responsePrototype) === prototype &&\n typeof constructor === 'function' &&\n Object.getOwnPropertyDescriptor(constructor, 'name')?.value === 'Body' &&\n Object.getOwnPropertyDescriptor(constructor, 'prototype')?.value === prototype);\n}\nfunction decodeNativeResponseBody(body) {\n // SAFETY: Bun is an optional runtime global; its version is checked before selecting Bun-specific decoding behavior.\n const scope = globalThis;\n return new TextDecoder('utf-8', { ignoreBOM: typeof scope.Bun?.version === 'string' }).decode(body);\n}\n// oxlint-disable-next-line anti-slop/no-unknown-returns -- Decoded token JSON remains untrusted until the caller validates its fields.\nasync function parseOAuthTokenResponse(response) {\n let readText;\n let responsePrototype = null;\n for (let depth = 0, prototype = response; prototype !== null && depth < 16; prototype = Object.getPrototypeOf(prototype), depth += 1) {\n if (prototype === NATIVE_RESPONSE_PROTOTYPE) {\n break;\n }\n if (isResponsePrototype(response, prototype)) {\n responsePrototype = prototype;\n }\n const parser = Object.getOwnPropertyDescriptor(prototype, 'json');\n if (!parser) {\n continue;\n }\n if (typeof parser.value !== 'function') {\n break;\n }\n const bodyReader = Object.getOwnPropertyDescriptor(prototype, 'text')?.value;\n if (typeof bodyReader === 'function' && isResponseBodyPrototype(prototype, responsePrototype)) {\n readText = bodyReader;\n break;\n }\n // Custom parsers own their results and failures; rejection provenance cannot be inferred.\n return parser.value.call(response);\n }\n const body = readText === undefined\n ? decodeNativeResponseBody(await READ_NATIVE_RESPONSE_BODY.call(response))\n : await readText.call(response);\n try {\n return JSON.parse(body);\n }\n catch {\n throw new SyntaxError('Token exchange response contains invalid JSON');\n }\n}\nfunction isUnsafeAccessToken(accessToken) {\n // SAFETY: Bun is an optional runtime global; its version is checked before selecting Bun-specific decoding behavior.\n const scope = globalThis;\n if (typeof scope.Bun?.version === 'string') {\n return /[^\\t\\u0020-\\u007E]|^[\\t ]|[\\t ]$/u.test(accessToken);\n }\n return /[^\\t\\u0020-\\u007E\\u0080-\\u00FF]|^[\\t ]|[\\t ]$/u.test(accessToken);\n}\n/**\n * Exchanges external workload-identity tokens for cached OpenAI access tokens.\n *\n * Concurrent token exchanges are shared. Valid cached tokens are returned while\n * a proactive refresh runs in the background; expired or missing tokens wait\n * for a successful exchange before they are returned.\n */\nexport class WorkloadIdentityAuth {\n /**\n * Creates a workload-identity token cache and OAuth token-exchange client.\n *\n * @param config External identity provider, OpenAI service account, and refresh settings.\n * @param fetch Optional fetch implementation for calls to the OpenAI token endpoint.\n */\n constructor(config, fetch) {\n this.cachedToken = null;\n this.refreshPromise = null;\n this.tokenGeneration = 0;\n this.tokenExchangeUrl = 'https://auth.openai.com/oauth/token';\n const { identityProviderId, serviceAccountId, clientId, refreshBufferSeconds, provider } = config;\n this.config = {\n identityProviderId,\n serviceAccountId,\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(clientId === undefined ? {} : { clientId }),\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(refreshBufferSeconds === undefined ? {} : { refreshBufferSeconds }),\n provider: {\n tokenType: provider.tokenType,\n getToken: provider.getToken.bind(provider),\n },\n };\n this.fetch = fetch ?? Shims.getDefaultFetch();\n }\n /**\n * Returns a valid OpenAI access token, exchanging or refreshing credentials as needed.\n *\n * Cached tokens nearing expiration are returned immediately while a background\n * refresh runs. Concurrent callers share the same in-flight token exchange.\n *\n * @throws {OAuthError} When the token endpoint rejects the subject token or identity.\n * @throws {APIError} When another unsuccessful HTTP response prevents token exchange.\n * @throws {OpenAIError} When a successful exchange has an invalid access token or expiration.\n */\n async getToken() {\n if (!this.cachedToken || WorkloadIdentityAuth.isTokenExpired(this.cachedToken)) {\n if (this.refreshPromise) {\n return await this.refreshPromise;\n }\n const refreshPromise = this.refreshToken(this.tokenGeneration);\n this.refreshPromise = refreshPromise;\n try {\n return await refreshPromise;\n }\n finally {\n if (this.refreshPromise === refreshPromise) {\n this.refreshPromise = null;\n }\n }\n }\n if (WorkloadIdentityAuth.needsRefresh(this.cachedToken) && !this.refreshPromise) {\n const refreshPromise = this.refreshToken(this.tokenGeneration).finally(() => {\n if (this.refreshPromise === refreshPromise) {\n this.refreshPromise = null;\n }\n });\n this.refreshPromise = refreshPromise;\n void refreshPromise.catch(() => null);\n }\n return this.cachedToken.token;\n }\n async refreshToken(generation) {\n const subjectToken = await this.config.provider.getToken();\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The token-exchange field dictionary gains an optional client_id after its required fields are initialized.\n const body = {\n grant_type: TOKEN_EXCHANGE_GRANT_TYPE,\n subject_token: subjectToken,\n subject_token_type: SUBJECT_TOKEN_TYPES[this.config.provider.tokenType],\n identity_provider_id: this.config.identityProviderId,\n service_account_id: this.config.serviceAccountId,\n };\n if (this.config.clientId) {\n body['client_id'] = this.config.clientId;\n }\n // Exclude provider acquisition and measure delivery time independently of wall-clock changes.\n const exchangeStartedAt = performance.now();\n const response = await this.fetch(this.tokenExchangeUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n redirect: 'manual',\n });\n if (!response.ok) {\n const errorText = await response.text();\n let body = undefined;\n try {\n body = JSON.parse(errorText);\n }\n catch {\n // Ignore non-JSON error bodies.\n }\n if (response.status === 400 || response.status === 401 || response.status === 403) {\n throw new OAuthError(response.status, body, response.headers);\n }\n throw APIError.generate(response.status, body, `Token exchange failed with status ${response.status}`, response.headers);\n }\n const tokenResponse = await parseOAuthTokenResponse(response);\n const accessToken = typeof tokenResponse === 'object' && tokenResponse !== null && 'access_token' in tokenResponse\n ? tokenResponse.access_token\n : undefined;\n if (typeof accessToken !== 'string' ||\n accessToken.trim().length === 0 ||\n isUnsafeAccessToken(accessToken)) {\n throw new OpenAIError(\"Token exchange response missing 'access_token' field\");\n }\n // SAFETY: The token response was checked as an object with a valid access token; expires_in is still validated by calculateExpiresAt.\n const expiresIn = tokenResponse.expires_in ?? 3600;\n const expiresAt = calculateExpiresAt(expiresIn, exchangeStartedAt);\n if (this.tokenGeneration === generation) {\n this.cachedToken = {\n token: accessToken,\n expiresAt,\n refreshAt: calculateRefreshAt(expiresAt, expiresIn, this.config.refreshBufferSeconds),\n };\n }\n return accessToken;\n }\n static isTokenExpired(cachedToken) {\n return Date.now() >= cachedToken.expiresAt;\n }\n static needsRefresh(cachedToken) {\n return Date.now() >= cachedToken.refreshAt;\n }\n /** Discards the cached access token so the next request performs a fresh exchange. */\n invalidateToken() {\n this.tokenGeneration += 1;\n this.cachedToken = null;\n this.refreshPromise = null;\n }\n}\n//# sourceMappingURL=workload-identity-auth.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\nimport { isSensitiveQueryParameter } from \"../utils/log.mjs\";\n/** Sole API authority approved for OpenAI X.509 workload-identity federation. */\nexport const X509_API_BASE_URL = 'https://mtls.api.openai.com/v1';\n/** Validates the enrolled API authority and rejects credential-bearing query parameters. */\nexport function assertX509APIOrigin(value) {\n let target;\n try {\n target = new URL(value);\n }\n catch {\n throw new OpenAIError('X.509 workload identity requires the approved global mTLS API origin.');\n }\n if (target.origin !== 'https://mtls.api.openai.com' || target.username || target.password) {\n throw new OpenAIError('X.509 workload identity requires the approved global mTLS API origin.');\n }\n for (const name of target.searchParams.keys()) {\n if (isSensitiveQueryParameter(name)) {\n throw new OpenAIError('X.509 workload identity cannot send conflicting query authentication credentials.');\n }\n }\n return target;\n}\n//# sourceMappingURL=x509-api-origin.mjs.map","import { isReadonlyArray } from \"./utils/values.mjs\";\nconst brand_privateNullableHeaders = /* @__PURE__ */ Symbol('brand.privateNullableHeaders');\nconst httpTokenHeaderName = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\nfunction* iterateHeaders(headers) {\n if (!headers)\n return;\n if (brand_privateNullableHeaders in headers) {\n const { values, nulls } = headers;\n yield* values.entries();\n for (const name of nulls) {\n yield [name, null];\n }\n return;\n }\n let shouldClear = false;\n let iter;\n // Snapshot the iterable protocol across realms without rereading a caller-controlled getter.\n const iterator = Symbol.iterator in headers ? headers[Symbol.iterator] : undefined;\n if (typeof iterator === 'function') {\n iter = { [Symbol.iterator]: () => iterator.call(headers) };\n }\n else {\n shouldClear = true;\n iter = Object.entries(headers ?? {});\n }\n for (let row of iter) {\n const name = row[0];\n if (typeof name !== 'string')\n throw new TypeError('expected header name to be a string');\n const values = isReadonlyArray(row[1]) ? row[1] : [row[1]];\n let didClear = false;\n for (const value of values) {\n if (value === undefined)\n continue;\n // Objects keys always overwrite older headers, they never append.\n // Yield a null to clear the header before adding the new values.\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, null];\n }\n yield [name, value];\n }\n }\n}\nexport const buildHeaders = (newHeaders) => {\n const targetHeaders = new Headers();\n const nullHeaders = new Set();\n for (const headers of newHeaders) {\n const seenHeaders = new Set();\n for (const [name, value] of iterateHeaders(headers)) {\n if (!httpTokenHeaderName.test(name)) {\n throw new TypeError(`Header name must be a valid HTTP token [\"${name}\"]`);\n }\n const lowerName = name.toLowerCase();\n if (!seenHeaders.has(lowerName)) {\n targetHeaders.delete(lowerName);\n seenHeaders.add(lowerName);\n }\n if (value === null) {\n targetHeaders.delete(lowerName);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.append(lowerName, value);\n nullHeaders.delete(lowerName);\n }\n }\n }\n return { [brand_privateNullableHeaders]: true, values: targetHeaders, nulls: nullHeaders };\n};\nexport const isEmptyHeaders = (headers) => {\n for (const _ of iterateHeaders(headers))\n return false;\n return true;\n};\n//# sourceMappingURL=headers.mjs.map","/** Browser-safe capability state keeps CommonJS outside the ordinary SDK ESM graph. */\nconst registeredX509Transports = new WeakMap();\nconst transientX509ConnectionErrors = new WeakSet();\nconst retryableX509IssuerErrors = new WeakSet();\nconst approvedX509Clients = new WeakSet();\nconst approvedX509OAuthErrors = new WeakMap();\nconst approvedX509Credentials = new WeakMap();\n/** Looks up an opaque capability without exposing the registry itself. */\nexport const findRegisteredX509Transport = WeakMap.prototype.get.bind(registeredX509Transports);\n/** Records a capability only after its Node-only factory validates the private dispatcher. */\nexport const rememberRegisteredX509Transport = WeakMap.prototype.set.bind(registeredX509Transports);\n/** Privately classifies sanitized issuer errors without exposing transport details. */\nexport const markTransientX509ConnectionError = WeakSet.prototype.add.bind(transientX509ConnectionErrors);\n/** Checks the private transient classification without retaining caller-owned errors. */\nexport const isTransientX509ConnectionError = WeakSet.prototype.has.bind(transientX509ConnectionErrors);\n/** Privately brands retryable issuer failures without exposing classification state. */\nexport const markRetryableX509IssuerError = WeakSet.prototype.add.bind(retryableX509IssuerErrors);\n/** Recognizes trusted issuer failures without evaluating caller-controlled properties. */\nexport const isRetryableX509IssuerError = WeakSet.prototype.has.bind(retryableX509IssuerErrors);\n/** Brands validated clients without exposing their mutable options or authentication fields. */\nexport const markApprovedX509Client = WeakSet.prototype.add.bind(approvedX509Clients);\n/** Recognizes private client ownership without caller-visible markers. */\nexport const isApprovedX509Client = WeakSet.prototype.has.bind(approvedX509Clients);\n/** Stores trusted OAuth metadata without exposing it to unrelated callers. */\nexport const rememberX509OAuthError = WeakMap.prototype.set.bind(approvedX509OAuthErrors);\n/** Retrieves trusted metadata when public OAuth errors cross module formats. */\nexport const findX509OAuthError = WeakMap.prototype.get.bind(approvedX509OAuthErrors);\n/** Privately binds SDK-owned credentials without importing Node or optional transport peers. */\nexport const rememberX509Credential = WeakMap.prototype.set.bind(approvedX509Credentials);\n/** Resolves only credentials registered by the optional Node authentication helper. */\nexport const findX509Credential = WeakMap.prototype.get.bind(approvedX509Credentials);\n//# sourceMappingURL=x509-transport-state-browser.mjs.map","\"use strict\"; if (typeof module !== 'undefined' && module !== globalThis.module && typeof exports !== 'undefined' && module.exports === exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findX509Credential = exports.rememberX509Credential = exports.findX509OAuthError = exports.rememberX509OAuthError = exports.isApprovedX509Client = exports.markApprovedX509Client = exports.isRetryableX509IssuerError = exports.markRetryableX509IssuerError = exports.isTransientX509ConnectionError = exports.markTransientX509ConnectionError = exports.rememberRegisteredX509Transport = exports.findRegisteredX509Transport = void 0;\n/** One lexical capability registry remains authoritative across mixed module formats. */\nconst registeredX509Transports = new WeakMap();\nconst transientX509ConnectionErrors = new WeakSet();\nconst retryableX509IssuerErrors = new WeakSet();\nconst approvedX509Clients = new WeakSet();\nconst approvedX509OAuthErrors = new WeakMap();\nconst approvedX509Credentials = new WeakMap();\n/** Looks up an opaque capability without exposing the registry itself. */\nexports.findRegisteredX509Transport = WeakMap.prototype.get.bind(registeredX509Transports);\n/** Records a capability only after the Node-only factory verifies its genuine private dispatcher. */\nexports.rememberRegisteredX509Transport = WeakMap.prototype.set.bind(registeredX509Transports);\n/** Privately brands sanitized connection errors shared across CommonJS and ESM clients. */\nexports.markTransientX509ConnectionError = WeakSet.prototype.add.bind(transientX509ConnectionErrors);\n/** Recognizes a transient connection without trusting public error properties. */\nexports.isTransientX509ConnectionError = WeakSet.prototype.has.bind(transientX509ConnectionErrors);\n/** Privately brands issuer-generated retryable HTTP failures across module formats. */\nexports.markRetryableX509IssuerError = WeakSet.prototype.add.bind(retryableX509IssuerErrors);\n/** Recognizes only retryable HTTP errors produced by the trusted certificate exchange. */\nexports.isRetryableX509IssuerError = WeakSet.prototype.has.bind(retryableX509IssuerErrors);\n/** Brands only clients whose transport capability was successfully validated. */\nexports.markApprovedX509Client = WeakSet.prototype.add.bind(approvedX509Clients);\n/** Recognizes immutable client ownership across mixed CommonJS and ESM helpers. */\nexports.isApprovedX509Client = WeakSet.prototype.has.bind(approvedX509Clients);\n/** Records the sanitized OAuth response without trusting mutable public error properties. */\nexports.rememberX509OAuthError = WeakMap.prototype.set.bind(approvedX509OAuthErrors);\n/** Retrieves trusted OAuth metadata for public cross-module error normalization. */\nexports.findX509OAuthError = WeakMap.prototype.get.bind(approvedX509OAuthErrors);\n/** Privately binds SDK-owned credentials to their immutable identity and approved transport. */\nexports.rememberX509Credential = WeakMap.prototype.set.bind(approvedX509Credentials);\n/** Resolves only first-class credentials created by the optional Node transport helper. */\nexports.findX509Credential = WeakMap.prototype.get.bind(approvedX509Credentials);\n}\n//# sourceMappingURL=x509-transport-state.cjs.map","import * as browserState from './x509-transport-state-browser.mjs';\nimport * as nodeState from './x509-transport-state.js';\n\n// oxlint-disable-next-line anti-slop/no-runtime-typeof -- The package adapter probes the Node-only registry export before selecting the browser fallback.\nconst state = typeof nodeState.findRegisteredX509Transport === 'function' ? nodeState : browserState;\n\nexport const {\n findRegisteredX509Transport,\n rememberRegisteredX509Transport,\n markTransientX509ConnectionError,\n isTransientX509ConnectionError,\n markRetryableX509IssuerError,\n isRetryableX509IssuerError,\n markApprovedX509Client,\n isApprovedX509Client,\n rememberX509OAuthError,\n findX509OAuthError,\n rememberX509Credential,\n findX509Credential,\n} = state;\n","import { OpenAIError } from \"../../core/error.mjs\";\nimport { findRegisteredX509Transport } from './x509-transport-state.mjs';\nconst transientX509TransportCodes = new Set([\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'ENETUNREACH',\n 'EHOSTUNREACH',\n 'ENETDOWN',\n 'EPIPE',\n 'ETIMEDOUT',\n 'EAI_AGAIN',\n 'UND_ERR_CONNECT_TIMEOUT',\n 'UND_ERR_HEADERS_TIMEOUT',\n 'UND_ERR_BODY_TIMEOUT',\n 'UND_ERR_SOCKET',\n]);\n/** Retries only known temporary failures when neither error layer reports a permanent code. */\nexport function isRetryableX509TransportFailure(failure) {\n const cause = typeof failure === 'object' && failure !== null\n ? Object.getOwnPropertyDescriptor(failure, 'cause')?.value\n : undefined;\n let retryable = false;\n for (const candidate of [failure, cause]) {\n const code = typeof candidate === 'object' && candidate !== null\n ? Object.getOwnPropertyDescriptor(candidate, 'code')?.value\n : undefined;\n if (typeof code === 'string') {\n if (!transientX509TransportCodes.has(code)) {\n return false;\n }\n retryable = true;\n }\n }\n return retryable;\n}\nexport const x509TransportBrand = Symbol('X.509 transport capability');\n/** Resolves a previously registered opaque capability without importing an optional transport peer. */\nexport function resolveX509Transport(value) {\n if (!value || typeof value !== 'object') {\n throw new OpenAIError('X.509 workload identity requires an approved X.509 transport capability.');\n }\n const registered = findRegisteredX509Transport(value);\n if (!registered) {\n throw new OpenAIError('X.509 workload identity requires an approved X.509 transport capability.');\n }\n return registered;\n}\n//# sourceMappingURL=x509-transport-registry.mjs.map","var _X509WorkloadIdentityAuth_instances, _a, _X509WorkloadIdentityAuth_identityProviderId, _X509WorkloadIdentityAuth_serviceAccountId, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, _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;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../tslib.mjs\";\nimport { APIConnectionTimeoutError, APIUserAbortError, OAuthError, OpenAIError } from \"../../core/error.mjs\";\nimport { buildHeaders } from \"../headers.mjs\";\nimport { CancelReadableStream } from \"../shims.mjs\";\nimport { isSensitiveHeader } from \"../utils/log.mjs\";\nimport { hasOwn } from \"../utils/values.mjs\";\nimport { assertX509APIOrigin } from \"./x509-api-origin.mjs\";\nimport { resolveX509Transport } from \"./x509-transport-registry.mjs\";\nimport { isApprovedX509Client, findX509OAuthError, isRetryableX509IssuerError, isTransientX509ConnectionError, } from './x509-transport-state.mjs';\nconst FORBIDDEN_TRANSPORT_OPTIONS = ['dispatcher', 'agent', 'client', 'tls', 'proxy'];\nconst headerValue = (headers, name) => Headers.prototype.get.call(headers, name);\nconst DEFAULT_REFRESH_BUFFER_MS = 20 * 60 * 1000;\nconst FAILED_REFRESH_COOLDOWN_MS = 1000;\nconst userAbortError = (signal) => {\n const error = new APIUserAbortError();\n Object.defineProperty(error, 'cause', { value: signal.reason, writable: true, configurable: true });\n return error;\n};\nfunction assertSafeHeaders(headers) {\n for (const name of Headers.prototype.keys.call(headers)) {\n const canonical = name.toLowerCase().split('_').join('-');\n if ((canonical !== 'authorization' && isSensitiveHeader(canonical)) || canonical === 'host') {\n throw new OpenAIError('X.509 workload identity cannot send conflicting authentication credentials.');\n }\n }\n}\nfunction exchangeDeadline(timeout, callerSignal) {\n const deadline = new AbortController();\n const timer = timeout === undefined\n ? undefined\n : setTimeout(() => deadline.abort(new APIConnectionTimeoutError()), timeout);\n const timerHandle = timer;\n if (typeof timerHandle === 'object' &&\n timerHandle !== null &&\n 'unref' in timerHandle &&\n typeof timerHandle.unref === 'function') {\n timerHandle.unref();\n }\n const cancel = () => deadline.abort(callerSignal?.reason);\n callerSignal?.addEventListener('abort', cancel, { once: true });\n if (callerSignal?.aborted) {\n cancel();\n }\n return {\n signal: deadline.signal,\n dispose: () => {\n callerSignal?.removeEventListener('abort', cancel);\n if (timer) {\n clearTimeout(timer);\n }\n },\n };\n}\nfunction waitForRefresh(attempt, signal) {\n let abort;\n // AbortSignal remains callback-only on supported TypeScript/runtime combinations.\n // oxlint-disable-next-line promise/avoid-new -- A callback-only AbortSignal must race a shared refresh.\n const canceled = new Promise((_resolve, reject) => {\n abort = () => reject(signal.reason);\n signal.addEventListener('abort', abort, { once: true });\n if (signal.aborted) {\n abort();\n }\n });\n return {\n result: Promise.race([attempt.promise, canceled]),\n dispose: () => {\n if (abort) {\n signal.removeEventListener('abort', abort);\n }\n },\n };\n}\n/** Distinguishes true certificate identities from extensible legacy subject-token identities. */\nexport function isX509WorkloadIdentity(identity) {\n if (!identity || typeof identity !== 'object') {\n return false;\n }\n let providerOwner = identity;\n while (providerOwner !== null && providerOwner !== Object.prototype) {\n const provider = Object.getOwnPropertyDescriptor(providerOwner, 'provider');\n if (provider) {\n if (!('value' in provider) || provider.value !== undefined) {\n return false;\n }\n break;\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; the traversal checks descriptors rather than assuming a credential-provider subtype.\n providerOwner = Object.getPrototypeOf(providerOwner);\n }\n let current = identity;\n while (current !== null && current !== Object.prototype) {\n const discriminator = Object.getOwnPropertyDescriptor(current, 'type');\n if (discriminator) {\n if (!('value' in discriminator)) {\n throw new OpenAIError('X.509 workload identity type must be a plain data property.');\n }\n return discriminator.value === 'x509';\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; the traversal checks descriptors rather than assuming a credential-provider subtype.\n current = Object.getPrototypeOf(current);\n }\n return false;\n}\n/** Rejects unsupported WebSocket authentication before any connection or credential side effect. */\nexport function assertX509WebSocketSupported(client) {\n if (!client || typeof client !== 'object') {\n return;\n }\n if (isApprovedX509Client(client)) {\n throw new OpenAIError('X.509 workload identity does not support WebSocket connections.');\n }\n}\n/** Prevents caller options from replacing the immutable transport selected at construction. */\nexport function assertX509FetchOptions(options) {\n if (!options) {\n return;\n }\n for (const name of FORBIDDEN_TRANSPORT_OPTIONS) {\n if (hasOwn(options, name)) {\n throw new OpenAIError('X.509 workload identity cannot override its approved transport capability.');\n }\n }\n const redirect = Object.getOwnPropertyDescriptor(options, 'redirect')?.value;\n if (redirect !== undefined && redirect !== 'manual') {\n throw new OpenAIError('X.509 workload identity requests require manual redirects.');\n }\n}\n/** Rejects caller overrides while allowing the SDK-owned fields on the final RequestInit. */\nexport function assertX509RequestOptions(options) {\n assertX509FetchOptions(options);\n if (options && ['body', 'headers', 'method', 'signal'].some((name) => hasOwn(options, name))) {\n throw new OpenAIError('X.509 workload identity cannot override its request body, headers, method, or signal through fetch options.');\n }\n}\n/** Validates and snapshots the exact caller options that will reach authenticated dispatch. */\nexport function snapshotX509RequestOptions(options) {\n assertX509RequestOptions(options);\n const snapshot = { ...options };\n assertX509RequestOptions(snapshot);\n return snapshot;\n}\n/** Bridges certificate authentication into existing OpenAI auth and fetch hooks without optional peers. */\nexport class X509WorkloadIdentityAuth {\n /** Captures one registered, immutable certificate identity and its enrolled selectors. */\n constructor(identity, transport, organization, project) {\n _X509WorkloadIdentityAuth_instances.add(this);\n _X509WorkloadIdentityAuth_identityProviderId.set(this, void 0);\n _X509WorkloadIdentityAuth_serviceAccountId.set(this, void 0);\n _X509WorkloadIdentityAuth_configuredRefreshBufferMs.set(this, void 0);\n _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds.set(this, void 0);\n _X509WorkloadIdentityAuth_organization.set(this, void 0);\n _X509WorkloadIdentityAuth_project.set(this, void 0);\n _X509WorkloadIdentityAuth_transport.set(this, void 0);\n _X509WorkloadIdentityAuth_refreshBufferMs.set(this, void 0);\n _X509WorkloadIdentityAuth_cachedToken.set(this, void 0);\n _X509WorkloadIdentityAuth_refresh.set(this, void 0);\n _X509WorkloadIdentityAuth_tokenGeneration.set(this, 0);\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_transport, resolveX509Transport(transport), \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_identityProviderId, identity.identityProviderId, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_serviceAccountId, identity.serviceAccountId, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, identity.refreshBufferMs, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, identity.refreshBufferSeconds, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_organization, organization, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_project, project, \"f\");\n if (__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, \"f\") !== undefined && __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\") !== undefined) {\n throw new OpenAIError('X.509 workload identity cannot combine refreshBufferSeconds and refreshBufferMs.');\n }\n if (__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, \"f\") !== undefined &&\n (!Number.isSafeInteger(__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, \"f\")) || __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, \"f\") < 0)) {\n throw new OpenAIError('X.509 workload identity requires a nonnegative integer refreshBufferMs.');\n }\n if (__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\") !== undefined &&\n (!Number.isSafeInteger(__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\")) ||\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\") < 0 ||\n !Number.isSafeInteger(__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\") * 1000))) {\n throw new OpenAIError('X.509 workload identity requires a nonnegative integer refreshBufferSeconds.');\n }\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_refreshBufferMs, __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\") === undefined\n ? (__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, \"f\") ?? DEFAULT_REFRESH_BUFFER_MS)\n : __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\") * 1000, \"f\");\n }\n /** Reconstructs the immutable selectors captured before caller-owned identity mutation. */\n identitySnapshot() {\n return {\n type: 'x509',\n identityProviderId: __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_identityProviderId, \"f\"),\n serviceAccountId: __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_serviceAccountId, \"f\"),\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, \"f\") === undefined\n ? {}\n : { refreshBufferMs: __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferMs, \"f\") }),\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\") === undefined\n ? {}\n : { refreshBufferSeconds: __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds, \"f\") }),\n };\n }\n /** Preserves explicitly headerless requests without presenting a certificate to the issuer. */\n static shouldAuthenticate(options, defaultHeaders, requestHeaders = options.headers) {\n return !buildHeaders([defaultHeaders, requestHeaders]).nulls.has('authorization');\n }\n /** Snapshots each caller-owned header layer once while preserving nulls and precedence. */\n snapshotHeaders(defaultHeaders, requestHeaders) {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n scope.defaultHeaders ?? (scope.defaultHeaders = buildHeaders([defaultHeaders]));\n scope.requestHeaders ?? (scope.requestHeaders = buildHeaders([requestHeaders]));\n return this.headerSnapshots();\n }\n /** Returns the already rendered caller headers without touching mutable inputs again. */\n headerSnapshots() {\n const { defaultHeaders, requestHeaders } = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n if (!defaultHeaders || !requestHeaders) {\n throw new OpenAIError('X.509 workload identity requires snapshotted request headers.');\n }\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The exposed snapshot contract deliberately hides the private request-scope representation.\n return { defaultHeaders, requestHeaders };\n }\n /** Captures enrolled public tenant selectors once before certificate presentation. */\n snapshotTenant(organization, project) {\n if (organization !== __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_organization, \"f\") || project !== __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_project, \"f\")) {\n throw new OpenAIError('X.509 workload identity cannot override its enrolled organization or project.');\n }\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n scope.tenant = { organization, project };\n return scope.tenant;\n }\n /** Returns the tenant selectors already approved for this logical request. */\n tenantSnapshot() {\n const { tenant } = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n if (!tenant) {\n throw new OpenAIError('X.509 workload identity requires snapshotted tenant selectors.');\n }\n return tenant;\n }\n /** Validates and retains the exact destination that authenticated dispatch will use. */\n snapshotAPIURL(value) {\n assertX509APIOrigin(value);\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this).apiURL = value;\n }\n /** Reads the already-approved destination without rerendering caller-owned request options. */\n requestAPIURL() {\n const { apiURL } = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n if (apiURL === undefined) {\n throw new OpenAIError('X.509 workload identity requires a snapshotted API destination.');\n }\n return apiURL;\n }\n /** Captures the exact caller settings approved for authenticated dispatch. */\n snapshotRequest(signal, timeout, fetchOptions) {\n var _b;\n (_b = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this)).request ?? (_b.request = { signal, timeout, fetchOptions });\n }\n /** Returns immutable request settings without invoking caller-owned accessors again. */\n requestSnapshot() {\n const { request } = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n if (!request) {\n throw new OpenAIError('X.509 workload identity requires snapshotted request settings.');\n }\n return request;\n }\n /** Suspends an already-running network budget during retry-local asynchronous preparation. */\n beginRequestPreparation() {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n if (scope.deadlineArmed && scope.preparationStartedAt === undefined) {\n scope.preparationStartedAt = performance.now();\n scope.preparationWallStartedAt = Date.now();\n }\n }\n /** Begins local request construction without charging protected hook latency to the network. */\n beginRequestPlanning() {\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this).phase = 'planning';\n }\n /** Arms one absolute network deadline only after all local request preparation completes. */\n beginRequestNetwork() {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n if (!scope.deadlineArmed) {\n scope.wallStartedAt = Date.now();\n scope.monotonicStartedAt = performance.now();\n scope.deadlineArmed = true;\n }\n else if (scope.preparationStartedAt !== undefined) {\n scope.monotonicStartedAt += performance.now() - scope.preparationStartedAt;\n scope.wallStartedAt += Date.now() - (scope.preparationWallStartedAt ?? Date.now());\n delete scope.preparationStartedAt;\n delete scope.preparationWallStartedAt;\n }\n }\n /** Keeps certificate authentication outside overridable request construction. */\n isPlanningRequest() {\n return __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this).phase === 'planning';\n }\n /** Approves the final overridden destination and transport before minting a bearer. */\n authorizePlannedRequest(url, request, timeout, allowHookSignal = false) {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n const headers = Object.getOwnPropertyDescriptor(request, 'headers');\n const body = Object.getOwnPropertyDescriptor(request, 'body');\n const signal = Object.getOwnPropertyDescriptor(request, 'signal');\n const redirect = Object.getOwnPropertyDescriptor(request, 'redirect');\n if (scope.phase !== 'planning' ||\n !headers ||\n !(headers.value instanceof Headers) ||\n (!body && 'body' in request) ||\n [body, signal, redirect].some((descriptor) => descriptor && !('value' in descriptor))) {\n throw new OpenAIError('X.509 workload identity requires an approved final request.');\n }\n this.snapshotAPIURL(url);\n assertX509FetchOptions(request);\n try {\n assertSafeHeaders(headers.value);\n }\n catch {\n throw new OpenAIError('X.509 workload identity cannot use caller-supplied authentication credentials.');\n }\n if (headerValue(headers.value, 'Authorization') !== null) {\n throw new OpenAIError('X.509 workload identity cannot use caller-supplied authorization credentials.');\n }\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_assertTenantHeaders).call(this, headers.value);\n if (!allowHookSignal && (signal?.value ?? undefined) !== (this.requestSnapshot().signal ?? undefined)) {\n throw new OpenAIError('X.509 workload identity must preserve its approved request signal.');\n }\n const approved = this.requestSnapshot();\n scope.request = { ...approved, timeout: Math.min(approved.timeout, timeout) };\n scope.phase = 'authorizing';\n }\n /** Owns only SDK-created iterator adapters until authenticated dispatch takes responsibility. */\n ownRequestBody(body, source) {\n if (body instanceof ReadableStream && body !== source) {\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this).materializedBody = body;\n }\n }\n /** Recognizes every one-shot upload before issuer authentication or request replay. */\n static isStreamingRequestBody(body) {\n return ((globalThis.ReadableStream !== undefined && body instanceof globalThis.ReadableStream) ||\n (typeof body === 'object' &&\n body !== null &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))));\n }\n /** Retires abandoned upload adapters without masking or blocking their authentication failure. */\n retireRequestBody() {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n const body = scope.materializedBody;\n delete scope.materializedBody;\n if (body) {\n void __classPrivateFieldGet(_a, _a, \"m\", _X509WorkloadIdentityAuth_cancelRequestBody).call(_a, body);\n }\n }\n /** Transfers the dispatched upload while retiring any SDK-owned body replaced by a hook. */\n releaseRequestBody(body) {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n if (scope.materializedBody === body) {\n delete scope.materializedBody;\n }\n else {\n this.retireRequestBody();\n }\n }\n /** Retains caller-only cancellation separately from SDK-created deadline controllers. */\n setEffectiveSignal(signal) {\n if (signal) {\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this).effectiveSignal = signal;\n }\n else {\n delete __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this).effectiveSignal;\n }\n }\n /** Uses protected-hook cancellation when an authenticated attempt enters retry backoff. */\n effectiveSignal() {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n return scope.effectiveSignal ?? scope.request?.signal;\n }\n /** Establishes an independent scope even when concurrent requests share caller options. */\n // oxlint-disable-next-line anti-slop/no-object-parameters -- Logical request owners are opaque identity tokens; their properties are never read.\n runRequest(operation, requestOwner) {\n return __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").run(async () => {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").current();\n if (!scope) {\n throw new OpenAIError('X.509 workload identity requires an active certificate request scope.');\n }\n scope.owner = this;\n scope.requestOwner = requestOwner;\n try {\n return await operation();\n }\n finally {\n this.retireRequestBody();\n this.releaseRequestCredentials();\n delete scope.requestOwner;\n delete scope.owner;\n }\n });\n }\n /** Reports whether a public request-building call already belongs to an active logical operation. */\n // oxlint-disable-next-line anti-slop/no-object-parameters -- Request scope membership compares the opaque caller token by identity only.\n inRequest(requestOwner) {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").current();\n return scope?.owner === this && scope.requestOwner === requestOwner && scope.phase !== 'authorizing';\n }\n /** Shares a cache only when the complete, privately snapshotted credential identity matches. */\n matches(other) {\n return (__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\") === __classPrivateFieldGet(other, _X509WorkloadIdentityAuth_transport, \"f\") &&\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_identityProviderId, \"f\") === __classPrivateFieldGet(other, _X509WorkloadIdentityAuth_identityProviderId, \"f\") &&\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_serviceAccountId, \"f\") === __classPrivateFieldGet(other, _X509WorkloadIdentityAuth_serviceAccountId, \"f\") &&\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_organization, \"f\") === __classPrivateFieldGet(other, _X509WorkloadIdentityAuth_organization, \"f\") &&\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_project, \"f\") === __classPrivateFieldGet(other, _X509WorkloadIdentityAuth_project, \"f\") &&\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refreshBufferMs, \"f\") === __classPrivateFieldGet(other, _X509WorkloadIdentityAuth_refreshBufferMs, \"f\"));\n }\n /** Binds deferred response parsing to the original logical request and its unchanged deadline. */\n continuation() {\n const { wallStartedAt, monotonicStartedAt, deadlineArmed, request, requestOwner, effectiveSignal } = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n const scope = {\n wallStartedAt,\n monotonicStartedAt,\n owner: this,\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(deadlineArmed ? { deadlineArmed } : {}),\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(request ? { request } : {}),\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(effectiveSignal ? { effectiveSignal } : {}),\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(requestOwner ? { requestOwner } : {}),\n };\n return (operation) => __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").resume(scope, async () => {\n try {\n return await operation();\n }\n finally {\n this.releaseRequestCredentials();\n delete scope.requestOwner;\n delete scope.owner;\n }\n });\n }\n /** Removes dispatched bearer material before settled request promises can retain their scope. */\n releaseRequestCredentials() {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n delete scope.request;\n delete scope.phase;\n delete scope.deadlineArmed;\n delete scope.preparationStartedAt;\n delete scope.preparationWallStartedAt;\n delete scope.effectiveSignal;\n delete scope.materializedBody;\n delete scope.apiURL;\n delete scope.tenant;\n delete scope.token;\n delete scope.defaultHeaders;\n delete scope.requestHeaders;\n delete scope.tokenGeneration;\n delete scope.headers;\n delete scope.authorization;\n }\n /** Returns the original authentication start so response consumption shares its request deadline. */\n requestStartedAt(_options) {\n return __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").current()?.wallStartedAt;\n }\n /** Distinguishes issued workload credentials from independent admin or headerless requests. */\n usedWorkloadToken(_options) {\n return __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").current()?.token !== undefined;\n }\n /** Returns the budget left after certificate authentication without starting another timeout. */\n remainingTimeout(_options, timeout) {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").current();\n if (scope === undefined) {\n return timeout;\n }\n const remaining = timeout - (performance.now() - scope.monotonicStartedAt);\n if (remaining <= 0) {\n throw new APIConnectionTimeoutError();\n }\n return remaining;\n }\n /** Cancels active retry timers promptly without changing public caller-abort semantics. */\n async waitForRetry(duration, signal) {\n try {\n await __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").sleep(duration, signal);\n }\n catch (error) {\n if (signal?.aborted) {\n throw userAbortError(signal);\n }\n throw error;\n }\n }\n /** Trusts only issuer or connection failures privately branded by the approved transport. */\n static isRetryableFailure(error) {\n return (typeof error === 'object' &&\n error !== null &&\n (isTransientX509ConnectionError(error) || isRetryableX509IssuerError(error)));\n }\n /** Reads safe retry hints only from a privately branded, sanitized issuer response. */\n static retryHeaders(error) {\n if (!error || typeof error !== 'object' || !isRetryableX509IssuerError(error)) {\n return undefined;\n }\n const headers = Object.getOwnPropertyDescriptor(error, 'headers')?.value;\n return headers instanceof Headers ? headers : undefined;\n }\n /** Exchanges the exact certificate capability selected for the matching API dispatch. */\n async getToken(options, context) {\n const callerSignal = context ? context.signal : options?.signal;\n if (callerSignal?.aborted) {\n throw userAbortError(callerSignal);\n }\n if (options) {\n assertX509RequestOptions(context ? context.fetchOptions : options.fetchOptions);\n }\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_preflight).call(this, context);\n const scope = options ? __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this) : undefined;\n const cached = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_cachedToken, \"f\");\n if (cached && performance.now() < cached.refreshAt && Date.now() < cached.wallRefreshAt) {\n return __classPrivateFieldGet(_a, _a, \"m\", _X509WorkloadIdentityAuth_assignToken).call(_a, scope, cached);\n }\n const remaining = context && options ? this.remainingTimeout(options, context.timeout) : context?.timeout;\n const { signal, dispose } = exchangeDeadline(remaining, callerSignal);\n if (callerSignal?.aborted) {\n dispose();\n throw userAbortError(callerSignal);\n }\n const attempt = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refresh, \"f\") ?? __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_beginRefresh).call(this);\n attempt.waiters += 1;\n const waiter = waitForRefresh(attempt, signal);\n try {\n const exchanged = await waiter.result;\n const refreshed = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_cachedToken, \"f\");\n if (!refreshed || refreshed.accessToken !== exchanged.accessToken) {\n throw new APIUserAbortError();\n }\n return __classPrivateFieldGet(_a, _a, \"m\", _X509WorkloadIdentityAuth_assignToken).call(_a, scope, refreshed);\n }\n catch (error) {\n return await __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_recoverRefreshFailure).call(this, error, attempt, cached, scope, options, context);\n }\n finally {\n waiter.dispose();\n dispose();\n attempt.waiters -= 1;\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_retireRefresh).call(this, attempt);\n }\n }\n /** Invalidates only the workload-token generation actually rejected by the current request. */\n invalidateToken() {\n const rejected = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").current();\n if (!rejected?.token ||\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_cachedToken, \"f\")?.accessToken !== rejected.token ||\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_cachedToken, \"f\").generation !== rejected.tokenGeneration) {\n return;\n }\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_tokenGeneration, __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_tokenGeneration, \"f\") + 1, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_cachedToken, undefined, \"f\");\n const refresh = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refresh, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_refresh, undefined, \"f\");\n refresh?.controller.abort(new APIUserAbortError());\n }\n /** Binds the minted credential to the original headers before protected request hooks run. */\n bindRequest(options, request, adminAPIKey) {\n if (!(request.headers instanceof Headers)) {\n throw new OpenAIError('X.509 workload identity requires the original workload authorization headers.');\n }\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n const { token } = scope;\n const security = options.__security ?? { bearerAuth: true };\n let approvedAuthorization = token ? `Bearer ${token}` : null;\n if (!token &&\n security.adminAPIKeyAuth &&\n adminAPIKey !== null &&\n headerValue(request.headers, 'Authorization') !== null) {\n approvedAuthorization = new Headers({ Authorization: `Bearer ${adminAPIKey}` }).get('Authorization');\n }\n scope.headers = request.headers;\n scope.authorization = approvedAuthorization;\n this.assertRequest(request);\n }\n /** Rebinds an equivalent protected-hook container without relaxing final dispatch identity checks. */\n adoptRequestHeaders(request) {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_scope).call(this);\n const original = scope.headers;\n if (!(original instanceof Headers) || !(request.headers instanceof Headers)) {\n throw new OpenAIError('X.509 workload identity must preserve its issued workload authorization.');\n }\n scope.headers = request.headers;\n try {\n this.assertRequest(request);\n }\n catch (error) {\n scope.headers = original;\n throw error;\n }\n }\n /** Rejects request hooks that replace the selected bearer or its approved header identity. */\n assertRequest(request) {\n const { headers } = request;\n if (!(headers instanceof Headers)) {\n throw new OpenAIError('X.509 workload identity must preserve its issued workload authorization.');\n }\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").current();\n if (!scope ||\n scope.headers !== headers ||\n scope.authorization === undefined ||\n headerValue(headers, 'Authorization') !== scope.authorization) {\n throw new OpenAIError('X.509 workload identity must preserve its issued workload authorization.');\n }\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_assertTenantHeaders).call(this, headers);\n assertSafeHeaders(headers);\n }\n /** Returns a guarded final dispatcher while preserving all existing request hook object identities. */\n fetch() {\n return async (input, init = {}) => {\n const target = assertX509APIOrigin(typeof input === 'string' || input instanceof URL ? input : input.url);\n assertX509FetchOptions(init);\n this.assertRequest(init);\n const approved = init.headers;\n if (!(approved instanceof Headers)) {\n throw new OpenAIError('X.509 workload identity must preserve its issued workload authorization.');\n }\n const headers = new Headers([...Headers.prototype.entries.call(approved)]);\n assertSafeHeaders(headers);\n init.headers = headers;\n init.redirect = 'manual';\n return await __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").dispatch(target, init);\n };\n }\n}\n_a = X509WorkloadIdentityAuth, _X509WorkloadIdentityAuth_identityProviderId = new WeakMap(), _X509WorkloadIdentityAuth_serviceAccountId = new WeakMap(), _X509WorkloadIdentityAuth_configuredRefreshBufferMs = new WeakMap(), _X509WorkloadIdentityAuth_configuredRefreshBufferSeconds = 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 _X509WorkloadIdentityAuth_cancelRequestBody(body) {\n try {\n await CancelReadableStream(body);\n }\n catch {\n // Upload retirement must never replace the original authentication failure.\n }\n}, _X509WorkloadIdentityAuth_assignToken = function _X509WorkloadIdentityAuth_assignToken(scope, token) {\n if (scope) {\n scope.token = token.accessToken;\n scope.tokenGeneration = token.generation;\n }\n return token.accessToken;\n}, _X509WorkloadIdentityAuth_recoverRefreshFailure = async function _X509WorkloadIdentityAuth_recoverRefreshFailure(error, attempt, cached, scope, options, context) {\n const callerSignal = context ? context.signal : options?.signal;\n if (callerSignal?.aborted) {\n throw userAbortError(callerSignal);\n }\n if (attempt.controller.signal.aborted && attempt.generation !== __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_tokenGeneration, \"f\")) {\n return await this.getToken(options, context);\n }\n const fallback = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_fallbackToken).call(this, error, cached, scope);\n if (fallback !== undefined) {\n return fallback;\n }\n if (error && typeof error === 'object' && !(error instanceof OAuthError)) {\n const oauth = findX509OAuthError(error);\n if (oauth) {\n throw new OAuthError(oauth.status, oauth.error, oauth.headers);\n }\n }\n throw error;\n}, _X509WorkloadIdentityAuth_fallbackToken = function _X509WorkloadIdentityAuth_fallbackToken(error, cached, scope) {\n if (!cached ||\n cached !== __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_cachedToken, \"f\") ||\n performance.now() >= cached.expiresAt ||\n Date.now() >= cached.wallExpiresAt ||\n !_a.isRetryableFailure(error)) {\n return undefined;\n }\n const headers = _a.retryHeaders(error);\n const milliseconds = headers?.get('retry-after-ms');\n let requested = milliseconds ? Number(milliseconds) : undefined;\n const retryAfter = headers?.get('retry-after');\n if (retryAfter && (requested === undefined || Number.isNaN(requested))) {\n const seconds = Number(retryAfter);\n requested = Number.isNaN(seconds) ? Date.parse(retryAfter) - Date.now() : seconds * 1000;\n }\n const cooldown = requested !== undefined && Number.isFinite(requested) && requested >= 0 && requested <= 60000\n ? Math.max(FAILED_REFRESH_COOLDOWN_MS, requested)\n : FAILED_REFRESH_COOLDOWN_MS;\n cached.refreshAt = Math.min(cached.expiresAt, performance.now() + cooldown);\n cached.wallRefreshAt = Math.min(cached.wallExpiresAt, Date.now() + cooldown);\n return __classPrivateFieldGet(_a, _a, \"m\", _X509WorkloadIdentityAuth_assignToken).call(_a, scope, cached);\n}, _X509WorkloadIdentityAuth_retireRefresh = function _X509WorkloadIdentityAuth_retireRefresh(attempt) {\n if (attempt.waiters !== 0 || __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refresh, \"f\") !== attempt) {\n return;\n }\n queueMicrotask(() => {\n if (attempt.waiters === 0 && __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refresh, \"f\") === attempt) {\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_refresh, undefined, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_tokenGeneration, __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_tokenGeneration, \"f\") + 1, \"f\");\n attempt.controller.abort(new APIUserAbortError());\n }\n });\n}, _X509WorkloadIdentityAuth_beginRefresh = function _X509WorkloadIdentityAuth_beginRefresh() {\n const controller = new AbortController();\n const generation = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_tokenGeneration, \"f\");\n const attempt = {\n controller,\n generation,\n waiters: 0,\n promise: __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_instances, \"m\", _X509WorkloadIdentityAuth_refreshToken).call(this, controller, generation),\n };\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_refresh, attempt, \"f\");\n return attempt;\n}, _X509WorkloadIdentityAuth_refreshToken = async function _X509WorkloadIdentityAuth_refreshToken(controller, generation) {\n const startedAt = performance.now();\n const wallStartedAt = Date.now();\n try {\n const token = await __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").exchange(__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_identityProviderId, \"f\"), __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_serviceAccountId, \"f\"), controller.signal);\n const lifetime = token.expiresIn * 1000;\n const expiresAt = startedAt + lifetime;\n const wallExpiresAt = wallStartedAt + lifetime;\n if (performance.now() >= expiresAt || Date.now() >= wallExpiresAt) {\n throw new OpenAIError('X.509 workload identity token expired before its exchange completed.');\n }\n if (__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_tokenGeneration, \"f\") !== generation ||\n controller.signal.aborted ||\n __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refresh, \"f\")?.controller !== controller) {\n throw new APIUserAbortError();\n }\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_tokenGeneration, __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_tokenGeneration, \"f\") + 1, \"f\");\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_cachedToken, {\n accessToken: token.accessToken,\n generation: __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_tokenGeneration, \"f\"),\n expiresAt,\n refreshAt: expiresAt - Math.min(__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refreshBufferMs, \"f\"), lifetime / 2),\n wallExpiresAt,\n wallRefreshAt: wallExpiresAt - Math.min(__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refreshBufferMs, \"f\"), lifetime / 2),\n }, \"f\");\n return token;\n }\n finally {\n if (__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_refresh, \"f\")?.controller === controller) {\n __classPrivateFieldSet(this, _X509WorkloadIdentityAuth_refresh, undefined, \"f\");\n }\n }\n}, _X509WorkloadIdentityAuth_preflight = function _X509WorkloadIdentityAuth_preflight(context) {\n if (!context) {\n return;\n }\n if (context.organization !== __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_organization, \"f\") || context.project !== __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_project, \"f\")) {\n throw new OpenAIError('X.509 workload identity cannot override its enrolled organization or project.');\n }\n assertX509APIOrigin(context.apiURL);\n const supplied = buildHeaders([context.defaultHeaders, context.requestHeaders]);\n if ((__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_organization, \"f\") !== null && supplied.nulls.has('openai-organization')) ||\n (__classPrivateFieldGet(this, _X509WorkloadIdentityAuth_project, \"f\") !== null && supplied.nulls.has('openai-project'))) {\n throw new OpenAIError('X.509 workload identity cannot omit its enrolled organization or project.');\n }\n for (const name of supplied.values.keys()) {\n const canonical = name.toLowerCase().split('_').join('-');\n if ((canonical === 'openai-organization' || canonical === 'openai-project') &&\n (name !== canonical ||\n headerValue(supplied.values, name) !==\n (canonical === 'openai-organization' ? context.organization : context.project))) {\n throw new OpenAIError('X.509 workload identity cannot override its enrolled organization or project.');\n }\n if (isSensitiveHeader(canonical) || canonical === 'host') {\n throw new OpenAIError('X.509 workload identity cannot use caller-supplied authentication credentials.');\n }\n }\n}, _X509WorkloadIdentityAuth_scope = function _X509WorkloadIdentityAuth_scope() {\n const scope = __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_transport, \"f\").current();\n if (!scope || scope.owner !== this) {\n throw new OpenAIError('X.509 workload identity requires an active certificate request scope.');\n }\n return scope;\n}, _X509WorkloadIdentityAuth_assertTenantHeaders = function _X509WorkloadIdentityAuth_assertTenantHeaders(headers) {\n if (headerValue(headers, 'OpenAI-Organization') !== __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_organization, \"f\") ||\n headerValue(headers, 'OpenAI-Project') !== __classPrivateFieldGet(this, _X509WorkloadIdentityAuth_project, \"f\")) {\n throw new OpenAIError('X.509 workload identity cannot override its enrolled organization or project.');\n }\n for (const name of Headers.prototype.keys.call(headers)) {\n const canonical = name.toLowerCase().split('_').join('-');\n if ((canonical === 'openai-organization' || canonical === 'openai-project') && name !== canonical) {\n throw new OpenAIError('X.509 workload identity cannot override its enrolled organization or project.');\n }\n }\n};\n//# sourceMappingURL=x509-workload-identity-auth.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\nimport { hasOwn } from \"../utils/values.mjs\";\nimport { isX509WorkloadIdentity } from \"./x509-workload-identity-auth.mjs\";\nimport { findX509Credential } from './x509-transport-state.mjs';\n/** Validates one privately registered credential and suppresses ambient legacy authentication. */\nexport function normalizeX509CredentialOptions(options) {\n const { credential } = options;\n if (credential === undefined) {\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- Preserve the exported normalization contract when no X.509 credential is configured.\n return { credential, options };\n }\n const registered = findX509Credential(credential);\n if (!registered) {\n throw new OpenAIError('An X.509 credential must be created by the SDK authentication helper.');\n }\n const conflicting = ['apiKey', 'adminAPIKey', 'workloadIdentity', 'x509Transport'].filter((name) => {\n const value = options[name];\n return value !== null && value !== undefined;\n });\n if (conflicting.length > 0) {\n throw new OpenAIError(`The \\`credential\\` option cannot be combined with ${conflicting.map((name) => `\\`${name}\\``).join(', ')}.`);\n }\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The declared ClientOptions return contract supports both normalized and unchanged client options.\n return {\n credential,\n options: {\n ...options,\n apiKey: null,\n adminAPIKey: null,\n baseURL: options.baseURL ?? null,\n organization: options.organization ?? null,\n project: options.project ?? null,\n workloadIdentity: registered.identity,\n x509Transport: registered.transport,\n },\n };\n}\n/** Distinguishes explicitly supplied ordinary credentials from nullish inheritance. */\nfunction overridesOrdinaryAuthentication({ apiKey, adminAPIKey }) {\n return (apiKey !== null && apiKey !== undefined) || (adminAPIKey !== null && adminAPIKey !== undefined);\n}\n/** Keeps origin-bound configuration with its owning provider during a client clone. */\nfunction prepareProviderClone(inherited, overrides) {\n const inheritedProvider = inherited.provider;\n const replacingProvider = overrides.credential ?? overrides.workloadIdentity;\n const provider = overrides.provider ?? (replacingProvider ? undefined : inheritedProvider);\n if (provider !== inheritedProvider) {\n delete inherited.baseURL;\n delete inherited.organization;\n delete inherited.project;\n delete inherited.defaultHeaders;\n delete inherited.defaultQuery;\n delete inherited.fetchOptions;\n delete inherited.fetch;\n }\n if (provider) {\n delete inherited.apiKey;\n delete inherited.adminAPIKey;\n delete inherited.credential;\n delete inherited.workloadIdentity;\n delete inherited.x509Transport;\n delete inherited.baseURL;\n }\n return provider;\n}\n/** Reconciles one client's credential and provider ownership before cloning its options. */\nexport function prepareX509ClientClone(inherited, overrides, credential, currentlyX509) {\n const nextIdentity = hasOwn(overrides, 'workloadIdentity')\n ? overrides.workloadIdentity\n : inherited.workloadIdentity;\n const dropping = credential !== undefined &&\n ((overridesOrdinaryAuthentication(overrides) && overrides.workloadIdentity === undefined) ||\n overrides.provider !== undefined);\n if (credential !== undefined && hasOwn(overrides, 'workloadIdentity')) {\n delete inherited.x509Transport;\n }\n const inheritedCredential = credential !== undefined &&\n !dropping &&\n overrides.credential === undefined &&\n !hasOwn(overrides, 'workloadIdentity') &&\n !hasOwn(overrides, 'x509Transport')\n ? credential\n : undefined;\n const nextCredential = overrides.credential === undefined ? inheritedCredential : overrides.credential;\n const nextX509 = nextCredential !== undefined || (!dropping && isX509WorkloadIdentity(nextIdentity));\n if (currentlyX509 !== nextX509) {\n delete inherited.fetch;\n delete inherited.baseURL;\n delete inherited.organization;\n delete inherited.project;\n delete inherited.defaultHeaders;\n delete inherited.defaultQuery;\n delete inherited.fetchOptions;\n if (nextX509) {\n inherited.apiKey = null;\n }\n else {\n delete inherited.x509Transport;\n if (dropping) {\n delete inherited.workloadIdentity;\n }\n }\n }\n if (nextCredential !== undefined) {\n delete inherited.apiKey;\n delete inherited.adminAPIKey;\n delete inherited.workloadIdentity;\n delete inherited.x509Transport;\n inherited.credential = nextCredential;\n if (overrides.credential !== undefined) {\n delete inherited.organization;\n delete inherited.project;\n delete inherited.defaultHeaders;\n delete inherited.defaultQuery;\n delete inherited.fetchOptions;\n }\n }\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- Preserve the exported clone contract across inherited and replaced credentials and providers.\n return { credential: nextCredential, provider: prepareProviderClone(inherited, overrides) };\n}\n//# sourceMappingURL=x509-credential-options.mjs.map","import { buildHeaders } from \"./headers.mjs\";\nimport { ReadableStreamFrom, ReadableStreamToAsyncIterable } from \"./shims.mjs\";\nimport { encodeUTF8 } from \"./utils/bytes.mjs\";\nconst brand_privateStreamingFile = /* @__PURE__ */ Symbol('brand.privateStreamingFile');\n/**\n * Wrap a stream as an uploadable file without reading it into memory.\n *\n * Unlike {@link toFile}, this helper does not create a web `File`, because the `File` constructor\n * must consume all of its contents up front. The stream is instead encoded lazily as multipart\n * form data when the request is sent.\n *\n * @param data Async-iterable or readable-stream chunks containing text, binary data, or blobs.\n * @param name Non-empty logical/source filename. Ordinary uploads send only its basename; Skills\n * uploads may preserve a validated relative path with normalized forward slashes.\n * @param options Optional MIME type for the streaming file.\n * @throws {TypeError} If `name` is empty or the content type contains control characters.\n */\nexport function toStreamingFile(data, name, options) {\n if (typeof name !== 'string' || !name) {\n throw new TypeError('toStreamingFile requires a non-empty file name');\n }\n const type = options?.type;\n if (type) {\n validateStreamingFileType(type);\n }\n return {\n [brand_privateStreamingFile]: true,\n data,\n name,\n ...(type ? { type } : {}),\n };\n}\n/**\n * Verifies that the current runtime exposes the global `File` constructor.\n *\n * @throws {Error} If `File` is unavailable; older Node.js runtimes receive an\n * additional upgrade or `node:buffer` compatibility suggestion.\n */\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n // SAFETY: This optional Node global is inspected only to improve the missing-File diagnostic in runtimes without process.\n const { process } = globalThis;\n const isOldNode = typeof process?.versions?.node === 'string' &&\n Number.parseInt(process.versions.node.split('.'), 10) < 20;\n throw new Error('`File` is not defined as a global, which is required for file uploads.' +\n (isOldNode\n ? \" Update to a supported Node.js LTS release, or set `globalThis.File` to `import('node:buffer').File`.\"\n : ''));\n }\n};\n/**\n * Construct a `File` instance. This is used to ensure a helpful error is thrown\n * for environments that don't define a global `File` yet.\n *\n * A missing filename becomes `unknown_file`.\n */\nexport function makeFile(fileBits, fileName, options) {\n checkFileSupport();\n // SAFETY: The SDK BlobPart union supports Node and web binary inputs; the native File constructor handles those parts across their differing ambient types.\n return new File(fileBits, fileName ?? 'unknown_file', options);\n}\n/**\n * Infers a filename from an object's `name`, `url`, `filename`, or `path` value.\n *\n * Directory components separated by either `/` or `\\\\` are discarded unless an\n * explicitly supplied `name` or `filename` opts into preserving its path. Preserved\n * paths must be safe and relative, and use forward slashes. Paths inferred from URLs and filesystem streams\n * discard their directories.\n */\nexport function getName(value, options) {\n if (typeof value !== 'object' || value === null) {\n return undefined;\n }\n const name = 'name' in value ? value.name : undefined;\n const explicitName = (name && String(name)) || ('filename' in value && value.filename && String(value.filename));\n if (explicitName) {\n return options?.stripFilename === false ? normalizeFilenamePath(explicitName) : basename(explicitName);\n }\n const url = 'url' in value && value.url && String(value.url);\n if (url) {\n try {\n return basename(new URL(url).pathname);\n }\n catch {\n return basename(url);\n }\n }\n const path = 'path' in value && value.path && String(value.path);\n return path ? basename(path) : undefined;\n}\nfunction basename(value) {\n return value.split(/[\\\\/]/).pop() || undefined;\n}\nfunction normalizeFilenamePath(value) {\n const normalized = value.replace(/\\\\/g, '/');\n if (normalized.startsWith('/') || /^[A-Za-z]:/.test(normalized) || normalized.split('/').includes('..')) {\n throw new TypeError('Upload file name must be a safe relative path without parent directory segments');\n }\n return normalized;\n}\nconst arrayBufferByteLengthGetter = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength')?.get;\n/** Recognizes native ArrayBuffers across realms without trusting their prototype or string tag. */\nexport function isArrayBuffer(value) {\n try {\n return arrayBufferByteLengthGetter?.call(value) !== undefined;\n }\n catch {\n return false;\n }\n}\n/** Identifies objects that expose a callable `Symbol.asyncIterator` method. */\nexport const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n/**\n * Converts a request to multipart form data when its body contains an upload.\n *\n * Uploads include files, blobs, responses, async iterables, readable\n * streams, and {@link StreamingFile} values anywhere in a nested body. Bodies\n * containing streaming values are encoded lazily; other uploads use `FormData`.\n * Requests without uploads are returned unchanged.\n */\nexport const maybeMultipartFormRequestOptions = async (opts, fetch, formOptions) => {\n if (!hasUploadableValue(opts.body)) {\n return opts;\n }\n if (hasStreamingUploadableValue(opts.body)) {\n return createStreamingFormRequestOptions(opts, formOptions);\n }\n return { ...opts, body: await createForm(opts.body, fetch, formOptions) };\n};\n/**\n * Encodes a request body as multipart form data even when no file is present.\n *\n * Streaming uploads produce a lazy multipart `ReadableStream` and an explicit\n * boundary header; other values are materialized into platform `FormData`.\n */\nexport const multipartFormRequestOptions = async (opts, fetch, formOptions) => {\n if (hasStreamingUploadableValue(opts.body)) {\n return createStreamingFormRequestOptions(opts, formOptions);\n }\n return { ...opts, body: await createForm(opts.body, fetch, formOptions) };\n};\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap();\n/**\n * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending\n * properly-encoded form data, it just stringifies the object, resulting in a request body of \"[object FormData]\".\n * This function detects if the fetch function provided supports the global FormData object to avoid\n * confusing error messages later on.\n */\nfunction supportsFormData(fetchObject) {\n // SAFETY: The union has already excluded callable fetch values; the remaining OpenAI client owns the fetch implementation used by this probe.\n const fetch = typeof fetchObject === 'function' ? fetchObject : fetchObject.fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached) {\n return cached;\n }\n const promise = (async () => {\n try {\n let FetchResponse;\n if ('Response' in fetch) {\n // SAFETY: Custom fetch implementations may expose their matching Response constructor; the enclosing probe catches incompatible constructors.\n FetchResponse = fetch.Response;\n }\n else {\n const response = await fetch('data:,');\n await response.arrayBuffer();\n // SAFETY: The successful fetch response supplies the constructor used to test its own FormData support; failures remain inside the probe's catch.\n FetchResponse = response.constructor;\n }\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n }\n catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\n/**\n * Materializes an object into platform `FormData` after verifying fetch support.\n *\n * Strings, numbers, and booleans become text fields; responses, blobs,\n * and async byte sources become file fields. Arrays and nested objects use\n * bracketed field names, while `undefined` values are omitted.\n *\n * @throws {TypeError} If the fetch implementation cannot encode global\n * `FormData`, a field is `null`, or a field has an unsupported value.\n */\nexport const createForm = async (body, fetch, options = {}) => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError('The provided fetch function does not support file uploads with the current global FormData class.');\n }\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value, options)));\n return form;\n};\n// Native files, Bun files, and unnamed upload values all inherit from Blob.\nconst isBlob = (value) => value instanceof Blob;\nconst isReadableStream = (value) => typeof value === 'object' &&\n value !== null &&\n 'getReader' in value &&\n typeof value.getReader === 'function';\nconst isStreamingFile = (value) => typeof value === 'object' && value !== null && brand_privateStreamingFile in value;\nconst isUploadable = (value) => typeof value === 'object' &&\n value !== null &&\n (value instanceof Response ||\n isAsyncIterable(value) ||\n isReadableStream(value) ||\n isStreamingFile(value) ||\n isBlob(value));\n// SAFETY: The enclosing object guard and own-key enumeration allow reading these property values without assigning them a trusted value type.\nconst hasStreamingUploadableValue = (value) => {\n if (isStreamingFile(value) || isAsyncIterable(value) || isReadableStream(value)) {\n return true;\n }\n if (Array.isArray(value)) {\n return value.some(hasStreamingUploadableValue);\n }\n if (value && typeof value === 'object' && !isBlob(value) && !(value instanceof Response)) {\n // Own properties only, matching what form encoding serializes; inherited values are never encoded.\n for (const k of Object.keys(value)) {\n if (hasStreamingUploadableValue(value[k])) {\n return true;\n }\n }\n }\n return false;\n};\n// SAFETY: The enclosing object guard and own-key enumeration allow reading these property values without assigning them a trusted value type.\nconst hasUploadableValue = (value) => {\n if (isUploadable(value)) {\n return true;\n }\n if (Array.isArray(value)) {\n return value.some(hasUploadableValue);\n }\n if (value && typeof value === 'object') {\n // Own properties only, matching what form encoding serializes; inherited values are never encoded.\n for (const k of Object.keys(value)) {\n if (hasUploadableValue(value[k])) {\n return true;\n }\n }\n }\n return false;\n};\nconst snapshotPreservedUploadEntries = (entries, filenames) => {\n const snapshot = [];\n for (const entry of entries) {\n if (isUploadable(entry.value) && !filenames.has(entry.value)) {\n filenames.set(entry.value, getStreamingFileName(entry.value, { stripFilenames: false }));\n }\n snapshot.push(entry);\n }\n return snapshot;\n};\nconst createStreamingFormRequestOptions = (opts, options = {}) => {\n const entries = iterateFormEntries(opts.body);\n const preservedFilenames = options.stripFilenames === false ? new WeakMap() : undefined;\n const multipartEntries = preservedFilenames\n ? snapshotPreservedUploadEntries(entries, preservedFilenames)\n : entries;\n const boundary = `openai-${Math.random().toString(36).slice(2)}`;\n const body = ReadableStreamFrom(iterateMultipartBody(multipartEntries, boundary, options, preservedFilenames));\n return {\n ...opts,\n body,\n headers: buildHeaders([{ 'content-type': `multipart/form-data; boundary=${boundary}` }, opts.headers]),\n };\n};\nasync function* iterateMultipartBody(entries, boundary, options, preservedFilenames) {\n for await (const { key, value } of entries) {\n if (isUploadable(value)) {\n const filename = preservedFilenames?.get(value) ?? getStreamingFileName(value, options);\n const type = getStreamingFileType(value);\n yield encodeUTF8(`--${boundary}\\r\\n`);\n yield encodeUTF8(`Content-Disposition: form-data; name=\"${escapeHeaderValue(key)}\"; filename=\"${escapeHeaderValue(filename)}\"\\r\\nContent-Type: ${type}\\r\\n\\r\\n`);\n yield* iterateBytes(getStreamingFileData(value));\n }\n else {\n yield encodeUTF8(`--${boundary}\\r\\n`);\n yield encodeUTF8(`Content-Disposition: form-data; name=\"${escapeHeaderValue(key)}\"\\r\\n\\r\\n${String(value)}`);\n }\n yield encodeUTF8('\\r\\n');\n }\n yield encodeUTF8(`--${boundary}--\\r\\n`);\n}\nfunction* iterateFormEntries(body) {\n if (!body || typeof body !== 'object') {\n return;\n }\n for (const [key, value] of Object.entries(body)) {\n yield* iterateFormValue(key, value);\n }\n}\nfunction* iterateFormValue(key, value) {\n if (value === undefined) {\n return;\n }\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n if (typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n isUploadable(value)) {\n yield { key, value };\n }\n else if (Array.isArray(value)) {\n for (const entry of value) {\n yield* iterateFormValue(key + '[]', entry);\n }\n }\n else if (typeof value === 'object') {\n for (const [name, prop] of Object.entries(value)) {\n yield* iterateFormValue(`${key}[${name}]`, prop);\n }\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n}\nfunction getStreamingFileName(value, options) {\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The runtime guard validates JavaScript and custom upload values before trusting the StreamingFile brand.\n if (isStreamingFile(value)) {\n const { name } = value;\n if (typeof name !== 'string' || !name) {\n throw new TypeError('Streaming upload file name must be a non-empty string');\n }\n return options.stripFilenames === false\n ? normalizeFilenamePath(name)\n : (basename(name) ?? 'unknown_file');\n }\n return getName(value, { stripFilename: options.stripFilenames }) ?? 'unknown_file';\n}\nfunction getStreamingFileType(value) {\n let type;\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- Runtime upload-brand checks intentionally accept unknown inputs despite the static Uploadable annotation.\n if (isStreamingFile(value) || isBlob(value)) {\n ({ type } = value);\n }\n else if (value instanceof Response) {\n type = value.headers.get('content-type') ?? undefined;\n }\n return validateStreamingFileType(type || 'application/octet-stream');\n}\nfunction validateStreamingFileType(type) {\n if (typeof type !== 'string') {\n throw new TypeError('Streaming upload content type must be a string');\n }\n for (let index = 0; index < type.length; index += 1) {\n const character = type.codePointAt(index) ?? 0;\n if (character <= 0x1f || character === 0x7f) {\n throw new TypeError('Streaming upload content type must not contain control characters');\n }\n }\n return type;\n}\nfunction getStreamingFileData(value) {\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The runtime guard validates the streaming wrapper before accessing its potentially custom data.\n if (isStreamingFile(value)) {\n return value.data;\n }\n return value;\n}\nasync function* iterateBytes(value) {\n if (typeof value === 'string') {\n yield encodeUTF8(value);\n }\n else if (ArrayBuffer.isView(value)) {\n yield new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n }\n else if (isArrayBuffer(value)) {\n yield new Uint8Array(value);\n }\n else if (value instanceof Response) {\n yield* iterateBytes(value.body || (await value.blob()));\n }\n else if (value instanceof Blob) {\n if (typeof value.stream === 'function') {\n yield* iterateBytes(value.stream());\n }\n else {\n yield new Uint8Array(await value.arrayBuffer());\n }\n }\n else if (isReadableStream(value)) {\n for await (const chunk of ReadableStreamToAsyncIterable(value)) {\n yield* iterateBytes(chunk);\n }\n }\n else if (isAsyncIterable(value)) {\n for await (const chunk of value) {\n yield* iterateBytes(chunk);\n }\n }\n else {\n throw new TypeError(`Invalid streaming file chunk: ${String(value)}`);\n }\n}\nfunction escapeHeaderValue(value) {\n return Array.from(value, (character) => {\n const codePoint = character.codePointAt(0) ?? 0;\n return codePoint <= 0x1f || codePoint === 0x7f || character === '\"' || character === '\\\\'\n ? encodeURIComponent(character)\n : character;\n }).join('');\n}\nconst addFormValue = async (form, key, value, options) => {\n if (value === undefined) {\n return;\n }\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // Nested form keys use the current bracketed encoding.\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if (value instanceof Response) {\n const blob = await value.blob();\n form.append(key, makeFile([blob], getName(value, { stripFilename: options.stripFilenames }), { type: blob.type }));\n }\n else if (isAsyncIterable(value)) {\n form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value, { stripFilename: options.stripFilenames })));\n }\n else if (isBlob(value)) {\n const filename = getName(value, { stripFilename: options.stripFilenames });\n if (filename === undefined) {\n form.append(key, value);\n }\n else {\n form.append(key, value, filename);\n }\n }\n else if (Array.isArray(value)) {\n // Prepare array elements concurrently, then preserve their repeated-field order.\n const entries = await Promise.all(value.map(async (entry) => {\n const entryForm = new FormData();\n await addFormValue(entryForm, key + '[]', entry, options);\n return entryForm;\n }));\n for (const entryForm of entries) {\n if (!entryForm) {\n continue;\n }\n for (const [entryKey, entryValue] of entryForm.entries()) {\n form.append(entryKey, entryValue);\n }\n }\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop, options)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.mjs.map","import { getName, makeFile, isAsyncIterable, isArrayBuffer, checkFileSupport } from \"./uploads.mjs\";\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\nconst hasFilePropertyOverrides = (value, options) => (options?.type != null && options.type !== value.type) ||\n (options?.lastModified != null && options.lastModified !== value.lastModified) ||\n options?.endings != null;\nconst canReuseNativeFile = (value, name, options) => (name == null || name === value.name) && !hasFilePropertyOverrides(value, options);\n/**\n * Buffers compatible content into a native {@link File} for an SDK upload.\n *\n * Existing native `File` objects are returned unchanged when their effective\n * filename and metadata are unchanged. Renamed native files reuse the original\n * file contents without buffering and retain their MIME type and modification\n * time unless explicitly overridden. Other filenames are inferred from response\n * URLs or input metadata when omitted or null, falling back to `unknown_file`.\n * An explicit empty filename is preserved. Responses,\n * native or compatible `Blob` values, and compatible non-native files supply\n * their MIME type unless `options.type` provides an explicit override.\n *\n * @param value An existing file, response, binary buffer, Blob-like object, async\n * stream of file parts, or a promise resolving to one of those values.\n * @param name Optional filename overriding inferred metadata or an existing filename.\n * @param options Optional file metadata, including MIME type and modification time.\n * @returns A native `File` containing the complete buffered input.\n * @throws {Error} If the runtime lacks a global `File` constructor or the input\n * cannot be converted into file contents.\n */\nexport async function toFile(value, name, options) {\n checkFileSupport();\n // If it's a promise, resolve it.\n value = await value;\n if (isFileLike(value)) {\n const fileOptions = {\n ...options,\n type: options?.type ?? value.type,\n lastModified: options?.lastModified ?? value.lastModified,\n };\n if (value instanceof File) {\n if (canReuseNativeFile(value, name, options)) {\n return value;\n }\n return makeFile([value], name ?? value.name, fileOptions);\n }\n return makeFile([await value.arrayBuffer()], name ?? value.name, fileOptions);\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name ?? (name = getName(value));\n const responseOptions = options?.type === undefined && blob.type ? { ...options, type: blob.type } : options;\n return makeFile(await getBytes(blob), name, responseOptions);\n }\n const parts = await getBytes(value);\n name ?? (name = getName(value));\n if (options?.type === undefined) {\n const typedPart = parts.find((part) => typeof part === 'object' && 'type' in part && !!part.type);\n if (typedPart) {\n options = { ...options, type: typedPart.type };\n }\n }\n return makeFile(parts, name, options);\n}\nasync function getBytes(value) {\n const parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n isArrayBuffer(value)) {\n parts.push(value);\n }\n else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : new Blob([await value.arrayBuffer()], { type: value.type }));\n }\n else if (isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk)));\n }\n }\n else {\n const constructor = value?.constructor?.name;\n throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n if (typeof value !== 'object' || value === null) {\n return '';\n }\n const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n//# sourceMappingURL=to-file.mjs.map","export class APIResource {\n constructor(client) {\n this._client = client;\n }\n}\n//# sourceMappingURL=resource.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\n/**\n * Percent-encodes a single URI path parameter while preserving RFC 3986 path characters.\n *\n * Slash, question-mark, and hash characters are encoded so an interpolated value\n * cannot create another path segment, query string, or fragment.\n *\n * Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:\n * > unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * > sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n * > pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\nexport function encodeURIPath(str) {\n return str.replace(/[^A-Za-z0-9\\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);\n}\nconst EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));\n/**\n * Creates a template tag that safely interpolates SDK resource paths.\n *\n * Path values use the supplied encoder; values after a literal `?` or `#` use\n * `encodeURIComponent`. Nullish values, ordinary objects, and literal or\n * percent-encoded `.`/`..` path segments are rejected with an SDK error.\n */\n// SAFETY: This branch compares prototype methods to recognize cross-realm plain values; it does not call the optional hasOwnProperty member.\nexport const createPathTagFunction = (pathEncoder = encodeURIPath) => function path(statics, ...params) {\n // If there are no params, no processing is needed.\n if (statics.length === 1) {\n return statics[0];\n }\n let postPath = false;\n const invalidSegments = [];\n let path = '';\n for (let index = 0; index < statics.length; index += 1) {\n if (index in statics) {\n const currentValue = statics[index];\n if (/[?#]/.test(currentValue)) {\n postPath = true;\n }\n const value = params[index];\n let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);\n if (index !== params.length &&\n (value == null ||\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Path parameters may arrive from JavaScript callers and require runtime validation before URL encoding.\n (typeof value === 'object' &&\n // handle values from other realms\n value.toString ===\n Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty ?? EMPTY) ?? EMPTY)\n ?.toString))) {\n encoded = value + '';\n invalidSegments.push({\n start: path.length + currentValue.length,\n length: encoded.length,\n error: `Value of type ${Object.prototype.toString\n .call(value)\n .slice(8, -1)} is not a valid path parameter`,\n });\n }\n path += currentValue + (index === params.length ? '' : encoded);\n }\n }\n const pathOnly = path.split(/[?#]/, 1)[0];\n const invalidSegmentPattern = /(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)/gi;\n let match;\n // Find all invalid segments\n while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {\n invalidSegments.push({\n start: match.index,\n length: match[0].length,\n error: `Value \"${match[0]}\" can't be safely passed as a path parameter`,\n });\n }\n invalidSegments.sort((a, b) => a.start - b.start);\n if (invalidSegments.length > 0) {\n let lastEnd = 0;\n let underline = '';\n for (const segment of invalidSegments) {\n const spaces = ' '.repeat(segment.start - lastEnd);\n const arrows = '^'.repeat(segment.length);\n lastEnd = segment.start + segment.length;\n underline += spaces + arrows;\n }\n throw new OpenAIError(`Path parameters result in path with invalid segments:\\n${invalidSegments\n .map((e) => e.error)\n .join('\\n')}\\n${path}\\n${underline}`);\n }\n return path;\n};\n/**\n * Template tag that encodes resource-path parameters and rejects traversal segments.\n *\n * Values inside query strings and fragments are encoded as URI components.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n//# sourceMappingURL=path.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * Given a list of messages comprising a conversation, the model will return a response.\n */\nexport class Messages extends APIResource {\n /**\n * Get the messages in a stored chat completion. Only Chat Completions that have\n * been created with the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletionStoreMessage of client.chat.completions.messages.list(\n * 'completion_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(completionID, query = {}, options) {\n return this._client.getAPIList(path `/chat/completions/${completionID}/messages`, (CursorPage), { query, ...options, __security: { bearerAuth: true } });\n }\n}\n//# sourceMappingURL=messages.mjs.map","import { ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError } from \"../error.mjs\";\n/** Returns whether an optional chat completion tool contains a function-tool definition. */\nexport function isChatCompletionFunctionTool(tool) {\n return tool !== undefined && 'function' in tool && tool.function !== undefined;\n}\n/** Copies a JSON Schema response format and attaches a non-enumerable structured-output parser. */\nexport function makeParseableResponseFormat(response_format, parser) {\n const obj = { ...response_format, type: 'json_schema' };\n obj.json_schema = { ...obj.json_schema };\n // SAFETY: The fresh copy may retain a caller-provided toJSON property; deleting it prevents serialization from replacing the validated schema.\n delete obj.toJSON;\n // SAFETY: The fresh copy may retain a caller-provided toJSON property; deleting it prevents serialization from replacing the validated schema.\n delete obj.json_schema.toJSON;\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n // SAFETY: Object.defineProperties installed the parser brand and callbacks required by the returned helper type.\n return obj;\n}\n/** Copies a Responses API text format and attaches a non-enumerable structured-output parser. */\nexport function makeParseableTextFormat(response_format, parser) {\n const obj = { ...response_format, type: 'json_schema' };\n // SAFETY: The fresh copy may retain a caller-provided toJSON property; deleting it prevents serialization from replacing the validated schema.\n delete obj.toJSON;\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n // SAFETY: Object.defineProperties installed the parser brand and callbacks required by the returned helper type.\n return obj;\n}\n/**\n * Whether the given format was built by an SDK helper (e.g. `zodResponseFormat()`)\n * and therefore carries its own `$parseRaw` callback.\n *\n * Prefer {@link isParseableResponseFormat} when deciding whether output should be\n * parsed at all; raw `{ type: 'json_schema' }` formats are parsed too, but are not\n * branded.\n */\nexport function isAutoParsableResponseFormat(response_format) {\n return response_format?.['$brand'] === 'auto-parseable-response-format';\n}\n/**\n * The canonical definition of an auto-parseable response format, covering both the\n * Chat Completions `response_format` and the Responses `text.format` shapes.\n *\n * Every gate that decides whether output should be parsed must go through this\n * predicate so the runtime, the streaming events and\n * {@link ExtractParsedContentFromParams} cannot drift apart.\n */\nexport function isParseableResponseFormat(format) {\n // SAFETY: Only the optional discriminator is read; arbitrary input is not treated as a validated response-format schema.\n return isAutoParsableResponseFormat(format) || format?.type === 'json_schema';\n}\n/**\n * The canonical parser for auto-parseable response formats. This is the only place\n * that chooses between an existing `$parseRaw` callback and generic `JSON.parse()`.\n *\n * Returns `null` for formats that are not auto-parseable.\n */\nexport function parseResponseFormatContent(format, content) {\n if (!isParseableResponseFormat(format)) {\n return null;\n }\n if (typeof format === 'object' &&\n format !== null &&\n '$parseRaw' in format &&\n typeof format.$parseRaw === 'function') {\n // SAFETY: The format's captured parser owns the ParsedT output contract; this function forwards its result without coercion.\n return format.$parseRaw(content);\n }\n try {\n // SAFETY: ParsedT represents the caller's response schema; JSON syntax is checked here and schema validation remains with the configured format.\n return JSON.parse(content);\n }\n catch (error) {\n if (error instanceof SyntaxError) {\n throw new SyntaxError('Error reading response: invalid structured output JSON.');\n }\n throw error;\n }\n}\n/** Copies a function tool and attaches non-enumerable parsing and callback metadata. */\nexport function makeParseableTool(tool, { parser, callback }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n // SAFETY: Object.defineProperties installed the parser brand and callbacks required by the returned helper type.\n return obj;\n}\n/** Returns whether a Chat Completions tool carries the SDK's argument-parser marker. */\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\n/**\n * Adds parsed-content fields to a chat completion, invoking parsers only when the\n * request includes an auto-parseable response format or a strict function tool.\n */\nexport function maybeParseChatCompletion(completion, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...completion,\n choices: completion.choices.map((choice) => ({\n ...choice,\n message: {\n ...choice.message,\n parsed: null,\n ...(choice.message.tool_calls\n ? {\n tool_calls: choice.message.tool_calls,\n }\n : undefined),\n },\n })),\n };\n }\n return parseChatCompletion(completion, params);\n}\n/**\n * Parses structured assistant content and strict function-tool arguments.\n *\n * @throws {LengthFinishReasonError} If generation stopped at its token limit.\n * @throws {ContentFilterFinishReasonError} If generation stopped because of content filtering.\n * @throws {OpenAIError} If the completion contains an unsupported tool-call type.\n */\nexport function parseChatCompletion(completion, params) {\n const choices = completion.choices.map((choice) => {\n if (choice.finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (choice.finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n return {\n ...choice,\n message: {\n ...choice.message,\n ...(choice.message.tool_calls\n ? {\n tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall(params, toolCall)) ?? undefined,\n }\n : undefined),\n parsed: choice.message.content !== null &&\n choice.message.content !== undefined &&\n !choice.message.refusal &&\n (choice.message.content !== '' ||\n (!choice.message.tool_calls?.length && !choice.message.function_call))\n ? parseResponseFormat(params, choice.message.content)\n : null,\n },\n };\n });\n return { ...completion, choices };\n}\nfunction parseResponseFormat(params, content) {\n return parseResponseFormatContent(params.response_format, content);\n}\nfunction parseToolCall(params, toolCall) {\n if (toolCall.type === 'custom') {\n return toolCall;\n }\n if (toolCall.type !== 'function') {\n // SAFETY: This branch handles unsupported JavaScript discriminators that the current TypeScript union excludes; the value is only used in the error.\n const unsupportedType = toolCall.type;\n throw new OpenAIError(`Currently only \\`function\\` and \\`custom\\` tool calls are supported; Received \\`${unsupportedType}\\``);\n }\n // SAFETY: The find predicate checks the function-tool discriminator before matching its name; the cast retains that narrowing through find.\n const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name); // TS doesn't narrow based on isChatCompletionTool\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The parser callback may return any value; null only represents an unparsed tool call.\n let parsedArguments = null;\n if (isAutoParsableTool(inputTool)) {\n parsedArguments = inputTool.$parseRaw(toolCall.function.arguments);\n }\n else if (inputTool?.function.strict) {\n parsedArguments = parseResponseFormatContent({ type: 'json_schema', $parseRaw: undefined }, toolCall.function.arguments);\n }\n return {\n ...toolCall,\n function: {\n ...toolCall.function,\n parsed_arguments: parsedArguments,\n },\n };\n}\n/** Returns whether a tool call matches a strict or auto-parseable function in the request. */\nexport function shouldParseToolCall(params, \n// accepts partially accumulated tool calls so streaming snapshots can be checked as they build up\ntoolCall) {\n if (!params || !('tools' in params) || !params.tools || toolCall.type !== 'function') {\n return false;\n }\n const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function?.name);\n return (isChatCompletionFunctionTool(inputTool) &&\n (isAutoParsableTool(inputTool) || inputTool?.function.strict || false));\n}\n/** Returns whether the request contains an auto-parseable response format or strict function tool. */\nexport function hasAutoParseableInput(params) {\n if (isParseableResponseFormat(params.response_format)) {\n return true;\n }\n return (params.tools?.some((t) => isAutoParsableTool(t) || (t.type === 'function' && t.function.strict === true)) ?? false);\n}\n/**\n * Narrows completion tool calls to function calls supported by parsing helpers.\n *\n * @throws {OpenAIError} If any tool call has a non-function type.\n */\nexport function assertToolCallsAreChatCompletionFunctionToolCalls(toolCalls) {\n for (const toolCall of toolCalls || []) {\n if (toolCall.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool calls are supported; Received \\`${toolCall.type}\\``);\n }\n }\n}\n/**\n * Validates strict function tools while preserving supported custom tools.\n *\n * @throws {OpenAIError} If a tool is unsupported or a function is missing `strict: true`.\n */\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type === 'custom') {\n continue;\n }\n if (tool.type !== 'function') {\n // SAFETY: This branch handles unsupported JavaScript discriminators that the current TypeScript union excludes; the value is only used in the error.\n const unsupportedType = tool.type;\n throw new OpenAIError(`Currently only \\`function\\` and \\`custom\\` tool types are supported; Received \\`${unsupportedType}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\n//# sourceMappingURL=parser.mjs.map","/** Returns whether a conversation message was produced by the assistant. */\nexport const isAssistantMessage = (message) => message?.role === 'assistant';\n/** Returns whether a conversation message contains the result of a tool call. */\nexport const isToolMessage = (message) => message?.role === 'tool';\n/** Narrows a value by excluding both `null` and `undefined`. */\nexport function isPresent(obj) {\n return obj != null;\n}\n//# sourceMappingURL=chatCompletionUtils.mjs.map","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_terminalFailure, _EventStream_abortFromSignal, _EventStream_removeAbortListeners, _EventStream_onceForEmitted, _EventStream_removeEmittedListener, _EventStream_cleanupEmittedListeners, _EventStream_handleError, _EventStream_settleTerminalEvent;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { APIConnectionError, APIConnectionTimeoutError, APIError, APIUserAbortError, AuthenticationError, BadRequestError, ConflictError, ContentFilterFinishReasonError, InternalServerError, InvalidWebhookSignatureError, LengthFinishReasonError, NotFoundError, OAuthError, OpenAIError, PermissionDeniedError, RateLimitError, SubjectTokenProviderError, UnprocessableEntityError, } from \"../error.mjs\";\nconst MAX_BUFFERED_ITERATOR_EVENTS = 4096;\nconst MAX_BUFFERED_ITERATOR_BYTES = 8 * 1024 * 1024;\n// Typed-array own-key enumeration materializes every dense index before custom keys.\nconst MAX_INSPECTABLE_TYPED_ARRAY_ELEMENTS = 4096;\n// Structured JSON may nest 128 levels before stream-event wrappers are added.\nconst MAX_BUFFERED_EVENT_DEPTH = 256;\nconst bufferedJSONStringify = JSON.stringify;\nconst bufferedJSONParse = JSON.parse;\nconst sdkOwnedBufferedEventArguments = new WeakSet();\n// SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\nconst typedArrayBufferGetter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'buffer')?.get;\n// SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\nconst typedArrayLengthGetter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'length')?.get;\nconst dataViewBufferGetter = Object.getOwnPropertyDescriptor(DataView.prototype, 'buffer')?.get;\nconst symbolDescriptionGetter = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description')?.get;\nconst dateTimestampGetter = Date.prototype.getTime;\nconst arrayBufferByteLengthGetter = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength')?.get;\nconst sharedArrayBufferByteLengthGetter = typeof SharedArrayBuffer === 'function'\n ? Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength')?.get\n : undefined;\n// V8 uses the same trusted lazy-stack accessor pair for native Error instances.\nconst errorStackDescriptor = Object.getOwnPropertyDescriptor(new Error('native stack descriptor'), 'stack');\nconst functionToString = Function.prototype.toString;\nconst objectToString = Object.prototype.toString;\nconst errorBrandDescriptor = Object.getOwnPropertyDescriptor(Error, 'isError');\n// The native Error.isError predicate brands arbitrary values before an Error contract can be assumed.\n// SAFETY: The captured native Error.isError property was checked to be a function before it is used as a brand predicate.\nconst nativeErrorBrand = errorBrandDescriptor && 'value' in errorBrandDescriptor && typeof errorBrandDescriptor.value === 'function'\n ? errorBrandDescriptor.value\n : undefined;\nconst nativeErrorConstructorSource = functionToString.call(Error);\nconst nativeDateConstructorSource = functionToString.call(Date);\nconst nativeFunctionConstructorSource = functionToString.call(Function);\nconst trustedIntrinsicPrototypes = new Set([\n APIConnectionError.prototype,\n APIConnectionTimeoutError.prototype,\n APIError.prototype,\n OpenAIError.prototype,\n APIUserAbortError.prototype,\n AuthenticationError.prototype,\n BadRequestError.prototype,\n ConflictError.prototype,\n ContentFilterFinishReasonError.prototype,\n InternalServerError.prototype,\n InvalidWebhookSignatureError.prototype,\n LengthFinishReasonError.prototype,\n NotFoundError.prototype,\n OAuthError.prototype,\n PermissionDeniedError.prototype,\n RateLimitError.prototype,\n SubjectTokenProviderError.prototype,\n UnprocessableEntityError.prototype,\n]);\nconst trustedNativeConstructorSources = new Set();\nconst canonicalIntrinsicDescriptors = new Map();\nconst foreignErrorStackDescriptors = new WeakMap();\n// oxlint-disable-next-line anti-slop/no-object-parameters -- The native proxy predicate accepts arbitrary object identities without invoking their handlers.\nfunction captureNativeProxyDetector() {\n if (typeof process === 'undefined') {\n return undefined;\n }\n try {\n const loader = Object.getOwnPropertyDescriptor(process, 'getBuiltinModule');\n if (!loader || !('value' in loader) || typeof loader.value !== 'function') {\n return undefined;\n }\n // oxlint-disable-next-line anti-slop/no-reflect-apply -- Invoke the descriptor value without reading a potentially overridden call property.\n const util = Reflect.apply(loader.value, process, ['node:util']);\n if (typeof util !== 'object' || util === null) {\n return undefined;\n }\n const types = Object.getOwnPropertyDescriptor(util, 'types');\n if (!types || !('value' in types) || typeof types.value !== 'object' || types.value === null) {\n return undefined;\n }\n const detector = Object.getOwnPropertyDescriptor(types.value, 'isProxy');\n if (!detector || !('value' in detector) || typeof detector.value !== 'function') {\n return undefined;\n }\n // SAFETY: The native detector data property was checked to be callable; it is invoked only to test the corresponding intrinsic object brand.\n // oxlint-disable-next-line anti-slop/no-object-parameters -- The captured native predicate is called only for objects, before their properties are inspected.\n return detector.value;\n }\n catch {\n return undefined;\n }\n}\n// Transparent proxies have no portable ECMAScript brand. Newer Node runtimes\n// expose one without adding a Node-only import to browser-compatible bundles.\nconst nativeProxyDetector = captureNativeProxyDetector();\nfunction rememberTrustedIntrinsic(constructor) {\n if (typeof constructor !== 'function') {\n return;\n }\n const prototypeDescriptor = Object.getOwnPropertyDescriptor(constructor, 'prototype');\n if (!prototypeDescriptor ||\n !('value' in prototypeDescriptor) ||\n (typeof prototypeDescriptor.value !== 'object' && typeof prototypeDescriptor.value !== 'function')) {\n return;\n }\n // SAFETY: The prototype data descriptor was checked as a non-null object before adding its identity to the trusted-intrinsic set.\n trustedIntrinsicPrototypes.add(prototypeDescriptor.value);\n const source = functionToString.call(constructor);\n if (/^function [A-Za-z_$][\\w$]*\\(\\) \\{ \\[native code\\] \\}$/u.test(source) &&\n prototypeDescriptor.configurable === false &&\n prototypeDescriptor.writable === false) {\n trustedNativeConstructorSources.add(source);\n const descriptors = new Map();\n for (const key of Reflect.ownKeys(prototypeDescriptor.value)) {\n const descriptor = Object.getOwnPropertyDescriptor(prototypeDescriptor.value, key);\n if (descriptor) {\n descriptors.set(key, descriptor);\n }\n }\n canonicalIntrinsicDescriptors.set(source, descriptors);\n }\n}\nfor (const constructor of [\n Object,\n Function,\n Array,\n Date,\n Map,\n Set,\n ArrayBuffer,\n DataView,\n Error,\n EvalError,\n RangeError,\n ReferenceError,\n SyntaxError,\n TypeError,\n URIError,\n Uint8Array,\n Uint8ClampedArray,\n Uint16Array,\n Uint32Array,\n Int8Array,\n Int16Array,\n Int32Array,\n Float32Array,\n Float64Array,\n]) {\n rememberTrustedIntrinsic(constructor);\n}\nfor (const name of [\n 'SharedArrayBuffer',\n 'AggregateError',\n 'Float16Array',\n 'BigInt64Array',\n 'BigUint64Array',\n 'Blob',\n 'File',\n 'Headers',\n]) {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, name);\n if (descriptor && 'value' in descriptor) {\n rememberTrustedIntrinsic(descriptor.value);\n }\n}\n// SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\nconst typedArrayConstructorDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'constructor');\nif (typedArrayConstructorDescriptor && 'value' in typedArrayConstructorDescriptor) {\n rememberTrustedIntrinsic(typedArrayConstructorDescriptor.value);\n}\nif (typeof Buffer === 'function') {\n rememberTrustedIntrinsic(Buffer);\n}\nconst blobInternalHandlePrototype = (() => {\n if (typeof Blob !== 'function') {\n return undefined;\n }\n try {\n const blob = new Blob([]);\n for (const key of Object.getOwnPropertySymbols(blob)) {\n const descriptor = Object.getOwnPropertyDescriptor(blob, key);\n if (descriptor && 'value' in descriptor && typeof descriptor.value === 'object' && descriptor.value) {\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n return Object.getPrototypeOf(descriptor.value);\n }\n }\n }\n catch {\n return undefined;\n }\n return undefined;\n})();\nconst mapEntries = Map.prototype.entries;\nconst setValues = Set.prototype.values;\nconst headersEntriesDescriptor = typeof Headers === 'function' ? Object.getOwnPropertyDescriptor(Headers.prototype, 'entries') : undefined;\n// SAFETY: The own Headers entries data property was checked to be callable and retains the native method signature.\nconst headersEntries = headersEntriesDescriptor &&\n 'value' in headersEntriesDescriptor &&\n typeof headersEntriesDescriptor.value === 'function'\n ? headersEntriesDescriptor.value\n : undefined;\nconst retainedStorageBrands = new Set([\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'Blob',\n 'File',\n 'Map',\n 'Date',\n 'Set',\n 'Headers',\n]);\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Foreign prototypes are untrusted objects until their constructor descriptors are verified.\nfunction getTrustedForeignIntrinsic(prototype) {\n const descriptor = Object.getOwnPropertyDescriptor(prototype, 'constructor');\n if (!descriptor || !('value' in descriptor) || typeof descriptor.value !== 'function') {\n return undefined;\n }\n // SAFETY: The descriptor contains a function; the following native-source and prototype checks verify the Error constructor before use.\n const constructor = descriptor.value;\n const source = functionToString.call(constructor);\n const descriptors = canonicalIntrinsicDescriptors.get(source);\n if (!trustedNativeConstructorSources.has(source) || !descriptors) {\n return undefined;\n }\n const constructorPrototype = Object.getOwnPropertyDescriptor(constructor, 'prototype');\n if (!constructorPrototype ||\n !('value' in constructorPrototype) ||\n constructorPrototype.value !== prototype ||\n constructorPrototype.configurable !== false ||\n constructorPrototype.writable !== false) {\n return undefined;\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n return { constructor, descriptors, functionPrototype: Object.getPrototypeOf(constructor) };\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Intrinsic trust is established by object identity or verified cross-realm descriptors.\nfunction isTrustedIntrinsicPrototype(prototype) {\n return trustedIntrinsicPrototypes.has(prototype) || getTrustedForeignIntrinsic(prototype) !== undefined;\n}\nfunction isCanonicalIntrinsicFunction(value, canonical, \n// oxlint-disable-next-line anti-slop/no-object-parameters -- Cross-realm function prototypes are compared by identity without trusting a callable signature.\nfunctionPrototype) {\n if (canonical === undefined) {\n return value === undefined;\n }\n if (typeof value !== 'function' || typeof canonical !== 'function') {\n return false;\n }\n const source = functionToString.call(canonical);\n if (functionToString.call(value) !== source) {\n return false;\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n const actualFunctionPrototype = Object.getPrototypeOf(value);\n if (actualFunctionPrototype === functionPrototype) {\n return true;\n }\n if (!/^function [A-Za-z_$][\\w$]*\\(\\) \\{ \\[native code\\] \\}$/u.test(source)) {\n return false;\n }\n const intrinsic = getTrustedForeignIntrinsic(actualFunctionPrototype);\n return (intrinsic !== undefined &&\n functionToString.call(intrinsic.constructor) === nativeFunctionConstructorSource);\n}\nfunction isCanonicalIntrinsicDescriptor(descriptor, canonical, \n// oxlint-disable-next-line anti-slop/no-object-parameters -- Descriptor validation compares the verified function-prototype identity without reading its fields.\nfunctionPrototype) {\n if (!canonical ||\n descriptor.configurable !== canonical.configurable ||\n descriptor.enumerable !== canonical.enumerable ||\n 'value' in descriptor !== 'value' in canonical) {\n return false;\n }\n if ('value' in descriptor && 'value' in canonical) {\n if (descriptor.writable !== canonical.writable) {\n return false;\n }\n if (typeof canonical.value === 'function') {\n return isCanonicalIntrinsicFunction(descriptor.value, canonical.value, functionPrototype);\n }\n if (canonical.value !== null && typeof canonical.value === 'object') {\n return false;\n }\n return Object.is(descriptor.value, canonical.value);\n }\n return (isCanonicalIntrinsicFunction(descriptor.get, canonical.get, functionPrototype) &&\n isCanonicalIntrinsicFunction(descriptor.set, canonical.set, functionPrototype));\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Native error branding must inspect arbitrary objects before assuming an Error contract.\nfunction hasNativeErrorBrand(current) {\n if (nativeErrorBrand) {\n return nativeErrorBrand.call(Error, current);\n }\n let prototype = current;\n for (let depth = 0; prototype !== null && depth < MAX_BUFFERED_EVENT_DEPTH; depth += 1) {\n if (Object.getOwnPropertyDescriptor(prototype, Symbol.toStringTag)) {\n return false;\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n prototype = Object.getPrototypeOf(prototype);\n }\n return prototype === null && objectToString.call(current) === '[object Error]';\n}\nfunction getVerifiedForeignErrorConstructor(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Foreign error constructors are verified from descriptors of an otherwise untrusted object.\ncurrent, stackDescriptor) {\n if (typeof stackDescriptor.get !== 'function' || typeof stackDescriptor.set !== 'function') {\n return undefined;\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n let prototype = Object.getPrototypeOf(current);\n for (let depth = 0; prototype !== null && depth < MAX_BUFFERED_EVENT_DEPTH; depth += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(prototype, 'constructor');\n if (descriptor && 'value' in descriptor && typeof descriptor.value === 'function') {\n // SAFETY: The descriptor contains a function; the following intrinsic and constructor-prototype checks decide whether it is a trusted Error constructor.\n const constructor = descriptor.value;\n if (functionToString.call(constructor) === nativeErrorConstructorSource &&\n isTrustedIntrinsicPrototype(prototype)) {\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n const functionPrototype = Object.getPrototypeOf(constructor);\n if (Object.getPrototypeOf(stackDescriptor.get) === functionPrototype &&\n Object.getPrototypeOf(stackDescriptor.set) === functionPrototype) {\n return { constructor, prototype };\n }\n return undefined;\n }\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n prototype = Object.getPrototypeOf(prototype);\n }\n return undefined;\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Stack accessors are trusted only after the object passes native error branding.\nfunction isTrustedNativeErrorStack(current, descriptor) {\n if (!hasNativeErrorBrand(current)) {\n return false;\n }\n if (errorStackDescriptor &&\n !('value' in errorStackDescriptor) &&\n typeof errorStackDescriptor.get === 'function' &&\n Object.prototype.isPrototypeOf.call(Error.prototype, current) &&\n descriptor.get === errorStackDescriptor.get &&\n descriptor.set === errorStackDescriptor.set) {\n return true;\n }\n const verified = getVerifiedForeignErrorConstructor(current, descriptor);\n if (!verified) {\n return false;\n }\n let canonicalDescriptor = foreignErrorStackDescriptors.get(verified.prototype);\n if (!canonicalDescriptor) {\n // SAFETY: Reflect.construct returns an untyped value; unknown preserves that uncertainty for the descriptor checks below.\n const canonical = Reflect.construct(verified.constructor, []);\n if (typeof canonical !== 'object' ||\n canonical === null ||\n !hasNativeErrorBrand(canonical) ||\n Object.getPrototypeOf(canonical) !== verified.prototype) {\n return false;\n }\n canonicalDescriptor = Object.getOwnPropertyDescriptor(canonical, 'stack');\n if (!canonicalDescriptor ||\n 'value' in canonicalDescriptor ||\n typeof canonicalDescriptor.get !== 'function' ||\n typeof canonicalDescriptor.set !== 'function') {\n return false;\n }\n foreignErrorStackDescriptors.set(verified.prototype, canonicalDescriptor);\n }\n return descriptor.get === canonicalDescriptor.get && descriptor.set === canonicalDescriptor.set;\n}\nfunction createEventQueue() {\n let entries = [];\n let head = 0;\n return {\n get length() {\n return entries.length - head;\n },\n enqueue(value) {\n entries.push(value);\n },\n dequeue() {\n if (head === entries.length) {\n return undefined;\n }\n const value = entries[head];\n entries[head] = undefined;\n head += 1;\n if (head === entries.length) {\n entries = [];\n head = 0;\n }\n else if (head >= 1024 && head * 2 >= entries.length) {\n entries = entries.slice(head);\n head = 0;\n }\n return value;\n },\n clear() {\n entries = [];\n head = 0;\n },\n };\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Retained storage branding walks arbitrary object prototypes without assuming their native type.\nfunction getRetainedStorageBrand(current) {\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n let prototype = Object.getPrototypeOf(current);\n for (let depth = 0; prototype !== null && depth < MAX_BUFFERED_EVENT_DEPTH; depth += 1) {\n if (prototype === Date.prototype) {\n return 'Date';\n }\n if (!trustedIntrinsicPrototypes.has(prototype)) {\n const constructor = Object.getOwnPropertyDescriptor(prototype, 'constructor');\n if (constructor &&\n 'value' in constructor &&\n typeof constructor.value === 'function' &&\n functionToString.call(constructor.value) === nativeDateConstructorSource &&\n getTrustedForeignIntrinsic(prototype)) {\n return 'Date';\n }\n }\n const descriptor = Object.getOwnPropertyDescriptor(prototype, Symbol.toStringTag);\n if (descriptor &&\n 'value' in descriptor &&\n typeof descriptor.value === 'string' &&\n retainedStorageBrands.has(descriptor.value)) {\n return descriptor.value;\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n prototype = Object.getPrototypeOf(prototype);\n }\n return undefined;\n}\nfunction estimateRetainedBufferBytes(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Memory accounting inspects arbitrary retained objects and detects native backing storage at runtime.\ncurrent, visit, depth) {\n if (ArrayBuffer.isView(current)) {\n let buffer;\n let kind = 'typed-array';\n try {\n // SAFETY: The captured intrinsic getter performs its own receiver brand check; its result stays unknown until the ArrayBuffer validation below.\n buffer = typedArrayBufferGetter?.call(current);\n }\n catch {\n kind = 'data-view';\n // SAFETY: The DataView intrinsic getter performs its receiver brand check; its result stays unknown until the ArrayBuffer validation below.\n buffer = dataViewBufferGetter?.call(current);\n }\n if (typeof buffer !== 'object' || buffer === null) {\n return { bytes: Number.POSITIVE_INFINITY, kind };\n }\n // Even a one-byte cross-realm view retains its complete backing allocation.\n visit(buffer, depth + 1);\n return { bytes: 0, kind };\n }\n const brand = getRetainedStorageBrand(current);\n if (!brand) {\n return undefined;\n }\n // oxlint-disable-next-line anti-slop/no-unknown-returns -- Captured native accessors are checked for a finite numeric result before retained-size accounting.\n let getter;\n const kind = 'buffer';\n switch (brand) {\n case 'ArrayBuffer': {\n getter = arrayBufferByteLengthGetter;\n break;\n }\n case 'SharedArrayBuffer': {\n getter = sharedArrayBufferByteLengthGetter;\n break;\n }\n case 'Blob':\n case 'File': {\n // Blob slices can retain an arbitrarily larger native backing allocation,\n // and neither browser nor Node exposes its extent or ownership. Detached\n // queues must fail closed; waiting readers bypass retained-size inspection.\n return { bytes: Number.POSITIVE_INFINITY, kind: 'blob' };\n }\n case 'Map': {\n return { bytes: 0, kind: 'map' };\n }\n case 'Date': {\n // oxlint-disable-next-line anti-slop/no-reflect-apply -- Invoke the captured intrinsic without reading its mutable call property.\n Reflect.apply(dateTimestampGetter, current, []);\n return { bytes: 8, kind: 'date' };\n }\n case 'Set': {\n return { bytes: 0, kind: 'set' };\n }\n case 'Headers': {\n return { bytes: 0, kind: 'headers' };\n }\n default: {\n return undefined;\n }\n }\n const bytes = getter?.call(current);\n return {\n bytes: typeof bytes === 'number' && Number.isSafeInteger(bytes) && bytes >= 0\n ? bytes\n : Number.POSITIVE_INFINITY,\n kind,\n };\n}\nfunction visitHiddenEventValues(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Native collection contents are inspected only after storage branding, without trusting structural fields.\ncurrent, kind, visit) {\n if (kind === 'map') {\n for (const [key, entry] of mapEntries.call(current)) {\n if (!visit(key, 8) || !visit(entry, 8)) {\n return false;\n }\n }\n }\n if (kind === 'set') {\n for (const entry of setValues.call(current)) {\n if (!visit(entry, 8)) {\n return false;\n }\n }\n }\n if (kind === 'headers') {\n if (!headersEntries) {\n return false;\n }\n // SAFETY: The captured native Headers.entries method performs its receiver brand check inside the enclosing try/catch.\n for (const [name, value] of headersEntries.call(current)) {\n if (!visit(name, 8) || !visit(value, 8)) {\n return false;\n }\n }\n }\n return true;\n}\nfunction getInspectableEventKeys(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Event key inspection must accept arbitrary retained objects, arrays, and native storage views.\ncurrent, kind, availableBytes) {\n if (Array.isArray(current)) {\n const descriptor = Object.getOwnPropertyDescriptor(current, 'length');\n const length = descriptor && 'value' in descriptor ? descriptor.value : undefined;\n if (typeof length !== 'number' ||\n !Number.isSafeInteger(length) ||\n length < 0 ||\n length > Math.floor(availableBytes / 16)) {\n return undefined;\n }\n }\n if (kind !== 'typed-array') {\n return Reflect.ownKeys(current);\n }\n const length = typedArrayLengthGetter?.call(current);\n if (typeof length !== 'number' ||\n !Number.isSafeInteger(length) ||\n length < 0 ||\n length > MAX_INSPECTABLE_TYPED_ARRAY_ELEMENTS) {\n return undefined;\n }\n return Reflect.ownKeys(current).filter((key) => {\n if (typeof key !== 'string') {\n return true;\n }\n const index = Number(key);\n return !Number.isInteger(index) || index < 0 || index >= length || String(index) !== key;\n });\n}\nfunction visitInspectableEventProperties(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Retained event properties are inspected through descriptors on arbitrary object identities.\ncurrent, kind, depth, availableBytes, charge, visit) {\n const keys = getInspectableEventKeys(current, kind, availableBytes());\n if (keys === undefined) {\n return false;\n }\n for (const key of keys) {\n if (!charge(typeof key === 'string' ? key.length * 2 + 8 : 8)) {\n return false;\n }\n if (typeof key === 'symbol') {\n visit(key, depth + 1);\n }\n const descriptor = Object.getOwnPropertyDescriptor(current, key);\n if (!descriptor) {\n return false;\n }\n if (!('value' in descriptor)) {\n if (key === 'stack' && isTrustedNativeErrorStack(current, descriptor)) {\n continue;\n }\n return false;\n }\n visit(descriptor.value, depth + 1, kind === 'blob');\n }\n return true;\n}\nfunction visitRetainedEventPrototypes(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Retention accounting follows arbitrary object prototypes without assuming their properties.\ncurrent, depth, isBlobInternalHandle, visited, availableBytes, charge, visit, \n// oxlint-disable-next-line anti-slop/no-object-parameters -- The retention callback records prototype identity before inspecting its descriptors.\nretainPrototype) {\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n let prototype = Object.getPrototypeOf(current);\n for (let prototypeDepth = depth + 1; prototype !== null; prototypeDepth += 1) {\n if (prototypeDepth >= MAX_BUFFERED_EVENT_DEPTH) {\n return false;\n }\n if (trustedIntrinsicPrototypes.has(prototype) ||\n (isBlobInternalHandle && prototype === blobInternalHandlePrototype)) {\n return true;\n }\n if (visited.has(prototype)) {\n visit(prototype, prototypeDepth);\n return availableBytes() >= 0;\n }\n visited.add(prototype);\n const retainedPrototype = prototype;\n const retained = retainPrototype(retainedPrototype, () => {\n if (!charge(16)) {\n return false;\n }\n const intrinsic = getTrustedForeignIntrinsic(retainedPrototype);\n if (!intrinsic) {\n return visitInspectableEventProperties(retainedPrototype, undefined, prototypeDepth, availableBytes, charge, visit);\n }\n for (const key of Reflect.ownKeys(retainedPrototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(retainedPrototype, key);\n if (!descriptor) {\n return false;\n }\n if (isCanonicalIntrinsicDescriptor(descriptor, intrinsic.descriptors.get(key), intrinsic.functionPrototype)) {\n continue;\n }\n if (!charge(typeof key === 'string' ? key.length * 2 + 8 : 8) || !('value' in descriptor)) {\n return false;\n }\n if (typeof key === 'symbol') {\n visit(key, prototypeDepth + 1);\n }\n visit(descriptor.value, prototypeDepth + 1);\n }\n return availableBytes() >= 0;\n });\n if (!retained) {\n return false;\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; this native-prototype inspection does not assume an application-specific instance type.\n prototype = Object.getPrototypeOf(retainedPrototype);\n }\n return true;\n}\nconst BUFFERED_LEDGER_ENTRY_BYTES = 32;\nconst BUFFERED_LEDGER_NODE_BYTES = 32;\nconst BUFFERED_LEDGER_EDGE_BYTES = 8;\nconst BUFFERED_LEDGER_OWNER_BYTES = 16;\nconst MAX_BUFFERED_LEDGER_RECONCILIATION_WORK = 128 * 1024;\nfunction inspectBufferedEventGraph(value, remainingBytes) {\n let bytes = 0;\n let scalarBytes = 0;\n const visited = new WeakSet();\n const visitedSymbols = new Set();\n const roots = new Set();\n const nodes = new Map();\n let activeNode;\n const availableBytes = () => remainingBytes - bytes;\n const charge = (amount) => {\n if (!Number.isSafeInteger(amount) || amount < 0) {\n bytes = remainingBytes + 1;\n return false;\n }\n bytes += amount;\n if (activeNode) {\n activeNode.bytes += amount;\n }\n else {\n scalarBytes += amount;\n }\n return bytes <= remainingBytes;\n };\n // oxlint-disable-next-line anti-slop/no-object-parameters -- The ledger records object and symbol identities, which have no shared structural contract.\n const addIdentity = (identity) => {\n if (activeNode) {\n activeNode.edges.add(identity);\n }\n else {\n roots.add(identity);\n }\n };\n // oxlint-disable-next-line anti-slop/no-object-parameters -- Retained graph nodes are identified by object or symbol identity independently of their fields.\n const retainIdentity = (identity, inspect) => {\n addIdentity(identity);\n const node = { bytes: 0, edges: new Set() };\n nodes.set(identity, node);\n const previous = activeNode;\n activeNode = node;\n try {\n return inspect();\n }\n finally {\n activeNode = previous;\n }\n };\n const visitSymbol = (current) => {\n if (visitedSymbols.has(current)) {\n addIdentity(current);\n charge(8);\n return;\n }\n visitedSymbols.add(current);\n if (!retainIdentity(current, () => {\n if (!symbolDescriptionGetter) {\n return false;\n }\n // SAFETY: The captured Symbol description getter is called after the symbol branch and returns a string or undefined by its native contract.\n // oxlint-disable-next-line anti-slop/no-reflect-apply -- Invoke the captured intrinsic without reading its mutable call property.\n const description = Reflect.apply(symbolDescriptionGetter, current, []);\n return charge(8 + (description?.length ?? 0) * 2);\n })) {\n bytes = remainingBytes + 1;\n }\n };\n const visit = (current, depth, isBlobInternalHandle = false) => {\n if (bytes > remainingBytes) {\n return;\n }\n if (typeof current === 'string') {\n charge(current.length * 2);\n return;\n }\n if (typeof current === 'symbol') {\n visitSymbol(current);\n return;\n }\n if (typeof current === 'function') {\n bytes = remainingBytes + 1;\n return;\n }\n if (current === null || typeof current !== 'object') {\n charge(8);\n return;\n }\n if (nativeProxyDetector?.(current)) {\n bytes = remainingBytes + 1;\n return;\n }\n if (depth >= MAX_BUFFERED_EVENT_DEPTH) {\n bytes = remainingBytes + 1;\n return;\n }\n if (visited.has(current)) {\n addIdentity(current);\n charge(8);\n return;\n }\n visited.add(current);\n if (!retainIdentity(current, () => {\n if (!charge(16)) {\n return false;\n }\n const retainedStorage = estimateRetainedBufferBytes(current, visit, depth);\n if (!visitRetainedEventPrototypes(current, depth, isBlobInternalHandle, visited, availableBytes, charge, visit, retainIdentity)) {\n return false;\n }\n if (retainedStorage !== undefined && !charge(retainedStorage.bytes)) {\n return false;\n }\n if (!visitHiddenEventValues(current, retainedStorage?.kind, (hiddenValue, overhead) => {\n if (!charge(overhead)) {\n return false;\n }\n visit(hiddenValue, depth + 1);\n return bytes <= remainingBytes;\n })) {\n return false;\n }\n return visitInspectableEventProperties(current, retainedStorage?.kind, depth, availableBytes, charge, visit);\n })) {\n bytes = remainingBytes + 1;\n }\n };\n try {\n visit(value, 0);\n }\n catch {\n return undefined;\n }\n return bytes <= remainingBytes ? { scalarBytes, roots, nodes } : undefined;\n}\nfunction areBufferedRetainedEdgesEqual(first, second) {\n if (first.size !== second.size) {\n return false;\n }\n for (const identity of first) {\n if (!second.has(identity)) {\n return false;\n }\n }\n return true;\n}\nfunction getBufferedLedgerNodeBytes(node, owners) {\n return (node.bytes +\n BUFFERED_LEDGER_NODE_BYTES +\n node.edges.size * BUFFERED_LEDGER_EDGE_BYTES +\n owners * BUFFERED_LEDGER_OWNER_BYTES);\n}\nfunction getBufferedLedgerEntryBytes(entry) {\n return BUFFERED_LEDGER_ENTRY_BYTES + entry.scalarBytes + entry.roots.size * BUFFERED_LEDGER_EDGE_BYTES;\n}\nfunction collectBufferedLedgerIdentities(roots, candidate, records, work) {\n const identities = new Set();\n const pending = [...roots];\n while (pending.length) {\n work.remaining -= 1;\n if (work.remaining < 0) {\n return undefined;\n }\n const identity = pending.pop();\n if (identities.has(identity)) {\n continue;\n }\n const node = candidate.get(identity) ?? records.get(identity);\n if (!node) {\n return undefined;\n }\n identities.add(identity);\n for (const edge of node.edges) {\n pending.push(edge);\n }\n }\n return identities;\n}\nfunction getBufferedLedgerChange(\n// oxlint-disable-next-line anti-slop/no-object-parameters -- Ledger changes are keyed by object or symbol identity, not a structural event type.\nidentity, graph, records, changes, node) {\n const existing = changes.get(identity);\n if (existing) {\n if (node) {\n existing.node = node;\n }\n return existing;\n }\n const current = node ?? graph.nodes.get(identity) ?? records.get(identity);\n if (!current) {\n return undefined;\n }\n const update = { node: current, ownerDelta: 0 };\n changes.set(identity, update);\n return update;\n}\nfunction findBufferedLedgerAffectedOwners(entry, graph, records, changes, work) {\n const affected = new Set([entry]);\n for (const [identity, node] of graph.nodes) {\n work.remaining -= 1;\n if (work.remaining < 0) {\n return undefined;\n }\n const previous = records.get(identity);\n if (!previous) {\n continue;\n }\n const changedEdges = !areBufferedRetainedEdgesEqual(previous.edges, node.edges);\n if (previous.bytes !== node.bytes || changedEdges) {\n getBufferedLedgerChange(identity, graph, records, changes, node);\n }\n if (!changedEdges) {\n continue;\n }\n for (const owner of previous.owners) {\n work.remaining -= 1;\n if (work.remaining < 0) {\n return undefined;\n }\n affected.add(owner);\n }\n }\n return affected;\n}\nfunction updateBufferedLedgerMembershipChanges(owner, next, graph, records, changes, work) {\n for (const identity of owner.identities) {\n work.remaining -= 1;\n if (work.remaining < 0) {\n return false;\n }\n if (!next.has(identity)) {\n const update = getBufferedLedgerChange(identity, graph, records, changes);\n if (!update) {\n return false;\n }\n update.ownerDelta -= 1;\n }\n }\n for (const identity of next) {\n work.remaining -= 1;\n if (work.remaining < 0) {\n return false;\n }\n if (!owner.identities.has(identity)) {\n const update = getBufferedLedgerChange(identity, graph, records, changes);\n if (!update) {\n return false;\n }\n update.ownerDelta += 1;\n }\n }\n return true;\n}\nfunction collectBufferedLedgerMemberships(entry, graph, affected, records, changes, work) {\n const memberships = new Map();\n for (const owner of affected) {\n const roots = owner === entry ? graph.roots : owner.roots;\n const next = collectBufferedLedgerIdentities(roots, graph.nodes, records, work);\n if (!next || !updateBufferedLedgerMembershipChanges(owner, next, graph, records, changes, work)) {\n return undefined;\n }\n memberships.set(owner, next);\n }\n return memberships;\n}\nfunction projectBufferedLedgerBytes(currentBytes, entry, graph, isNew, changes, records) {\n let projected = currentBytes - (isNew ? 0 : getBufferedLedgerEntryBytes(entry)) + getBufferedLedgerEntryBytes(graph);\n for (const [identity, update] of changes) {\n const previous = records.get(identity);\n const owners = (previous?.owners.size ?? 0) + update.ownerDelta;\n if (owners < 0) {\n return undefined;\n }\n if (previous) {\n projected -= getBufferedLedgerNodeBytes(previous, previous.owners.size);\n }\n if (owners) {\n projected += getBufferedLedgerNodeBytes(update.node, owners);\n }\n }\n return Number.isSafeInteger(projected) && projected >= 0 && projected <= MAX_BUFFERED_ITERATOR_BYTES\n ? projected\n : undefined;\n}\nfunction applyBufferedLedgerChanges(records, changes, memberships) {\n for (const [identity, update] of changes) {\n const previous = records.get(identity);\n const owners = (previous?.owners.size ?? 0) + update.ownerDelta;\n if (!owners) {\n continue;\n }\n if (previous) {\n previous.bytes = update.node.bytes;\n previous.edges = update.node.edges;\n }\n else {\n records.set(identity, {\n bytes: update.node.bytes,\n edges: update.node.edges,\n owners: new Set(),\n });\n }\n }\n for (const [owner, next] of memberships) {\n for (const identity of owner.identities) {\n if (!next.has(identity)) {\n records.get(identity)?.owners.delete(owner);\n }\n }\n for (const identity of next) {\n if (!owner.identities.has(identity)) {\n records.get(identity).owners.add(owner);\n }\n }\n owner.identities = next;\n }\n for (const identity of changes.keys()) {\n if (records.get(identity)?.owners.size === 0) {\n records.delete(identity);\n }\n }\n}\n/**\n * Account for queue-owned identities once while charging bounded ownership and\n * edge metadata. Shared topology changes are reconciled for every queued owner.\n */\nfunction createBufferedEventLedger() {\n const records = new Map();\n let bytes = 0;\n const reconcile = (entry, graph, isNew) => {\n const work = { remaining: MAX_BUFFERED_LEDGER_RECONCILIATION_WORK };\n const changes = new Map();\n const affected = findBufferedLedgerAffectedOwners(entry, graph, records, changes, work);\n if (!affected) {\n return false;\n }\n const memberships = collectBufferedLedgerMemberships(entry, graph, affected, records, changes, work);\n if (!memberships) {\n return false;\n }\n const projectedBytes = projectBufferedLedgerBytes(bytes, entry, graph, isNew, changes, records);\n if (projectedBytes === undefined) {\n return false;\n }\n applyBufferedLedgerChanges(records, changes, memberships);\n entry.scalarBytes = graph.scalarBytes;\n entry.roots = graph.roots;\n bytes = projectedBytes;\n return true;\n };\n const release = (entry) => {\n bytes -= getBufferedLedgerEntryBytes(entry);\n for (const identity of entry.identities) {\n const record = records.get(identity);\n if (!record?.owners.delete(entry)) {\n continue;\n }\n bytes -= BUFFERED_LEDGER_OWNER_BYTES;\n if (record.owners.size === 0) {\n bytes -= getBufferedLedgerNodeBytes(record, 0);\n records.delete(identity);\n }\n }\n entry.identities.clear();\n };\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The ledger contract contextually types its callbacks and keeps retained-identity internals private.\n return {\n retain(graph) {\n const entry = { scalarBytes: 0, roots: new Set(), identities: new Set() };\n return reconcile(entry, graph, true) ? entry : undefined;\n },\n refresh(entry, graph) {\n return reconcile(entry, graph, false);\n },\n release,\n clear() {\n records.clear();\n bytes = 0;\n },\n };\n}\n/** An abortable event stream with typed listeners, asynchronous iteration, and lifecycle state. */\nexport class EventStream {\n /** Creates an unstarted stream with independent connection and completion lifecycle promises. */\n constructor() {\n _EventStream_instances.add(this);\n /** Controls the underlying request; aborting this controller cancels the stream. */\n this.controller = new AbortController();\n _EventStream_connectedPromise.set(this, void 0);\n // oxlint-disable class-methods-use-this -- Deferred promise resolvers are intentionally per-instance mutable callbacks.\n _EventStream_resolveConnectedPromise.set(this, () => undefined);\n _EventStream_rejectConnectedPromise.set(this, () => undefined);\n _EventStream_endPromise.set(this, void 0);\n _EventStream_resolveEndPromise.set(this, () => undefined);\n _EventStream_rejectEndPromise.set(this, () => undefined);\n // oxlint-enable class-methods-use-this\n _EventStream_listeners.set(this, Object.create(null));\n _EventStream_abortListeners.set(this, []);\n _EventStream_emittedListenerRegistrations.set(this, new WeakMap());\n _EventStream_pendingListenerCleanup.set(this, new Set());\n _EventStream_pendingBufferedEventChecks.set(this, new Set());\n _EventStream_listenerDispatchDepth.set(this, 0);\n _EventStream_ended.set(this, false);\n _EventStream_errored.set(this, false);\n _EventStream_aborted.set(this, false);\n _EventStream_catchingPromiseCreated.set(this, false);\n // Terminal failure recorded during settlement, before `end` is emitted, so\n // iterators can surface it even when a throwing user listener prevented\n // their internal failure listeners from running.\n _EventStream_terminalFailure.set(this, void 0);\n __classPrivateFieldSet(this, _EventStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _EventStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectEndPromise, reject, \"f\");\n }), \"f\");\n // Don't let these promises cause unhandled rejection errors.\n // we will manually cause an unhandled rejection error later\n // if the user hasn't registered any error listener or called\n // any promise-returning method.\n __classPrivateFieldGet(this, _EventStream_connectedPromise, \"f\").catch(() => undefined);\n __classPrivateFieldGet(this, _EventStream_endPromise, \"f\").catch(() => undefined);\n }\n _run(executor) {\n // Unfortunately if we call `executor()` immediately we get runtime errors about\n // references to `this` before the `super()` constructor call returns.\n setTimeout(() => {\n let failed = false;\n Promise.resolve()\n .then(executor)\n .catch((error) => {\n failed = true;\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).call(this, error);\n })\n .then(() => {\n if (failed) {\n return;\n }\n try {\n this._emitFinal();\n }\n catch (error) {\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).call(this, error);\n return;\n }\n this._emit('end');\n });\n }, 0);\n }\n _connected() {\n if (this.ended) {\n return;\n }\n __classPrivateFieldGet(this, _EventStream_resolveConnectedPromise, \"f\").call(this);\n this._emit('connect');\n }\n /** Whether the stream has finished successfully, failed, or been aborted. */\n get ended() {\n return __classPrivateFieldGet(this, _EventStream_ended, \"f\");\n }\n /** Whether an error or user cancellation has been observed. */\n get errored() {\n return __classPrivateFieldGet(this, _EventStream_errored, \"f\");\n }\n /** Whether the stream ended because its request was cancelled. */\n get aborted() {\n return __classPrivateFieldGet(this, _EventStream_aborted, \"f\");\n }\n /**\n * Cancels the underlying request; {@link done} and {@link events} observe cancellation.\n * Promises returned by {@link emitted} for other events may remain pending.\n */\n abort() {\n this.controller.abort();\n }\n /** Creates a user-abort error retaining this runner's cancellation reason. */\n _userAbortError() {\n const error = new APIUserAbortError();\n Object.defineProperty(error, 'cause', {\n value: this.controller.signal.reason,\n writable: true,\n configurable: true,\n });\n return error;\n }\n _listenForAbort(signal) {\n if (!signal || this.ended) {\n return;\n }\n if (signal.aborted) {\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_abortFromSignal).call(this, signal);\n return;\n }\n if (__classPrivateFieldGet(this, _EventStream_abortListeners, \"f\").some((registration) => registration.signal === signal)) {\n return;\n }\n const listener = () => __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_abortFromSignal).call(this, signal);\n signal.addEventListener('abort', listener, { once: true });\n __classPrivateFieldGet(this, _EventStream_abortListeners, \"f\").push({ signal, listener });\n }\n /**\n * Adds the listener function to the end of the listeners array for the event.\n * No checks are made to see if the listener has already been added. Multiple calls passing\n * the same combination of event and listener will result in the listener being added, and\n * called, multiple times.\n * @returns This stream, so that listener registration calls can be chained.\n */\n on(event, listener) {\n var _a;\n const listeners = ((_a = __classPrivateFieldGet(this, _EventStream_listeners, \"f\"))[event] || (_a[event] = []));\n listeners.push({ listener });\n return this;\n }\n /**\n * Removes the specified listener from the listener array for the event.\n * off() will remove, at most, one instance of a listener from the listener array. If any single\n * listener has been added multiple times to the listener array for the specified event, then\n * off() must be called multiple times to remove each instance.\n * @returns This stream, so that listener registration calls can be chained.\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (!listeners) {\n return this;\n }\n // SAFETY: Listener functions are object identities used as WeakMap keys; registration and removal use the same function instance.\n const emittedRegistration = __classPrivateFieldGet(this, _EventStream_emittedListenerRegistrations, \"f\").get(listener);\n if (emittedRegistration?.event === event &&\n !emittedRegistration.registration.removed &&\n !emittedRegistration.registration.detached) {\n // SAFETY: The stored registration event was compared with this event above, preserving the event/listener type correlation.\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_removeEmittedListener).call(this, event, emittedRegistration.registration);\n return this;\n }\n const index = listeners.findIndex((l) => !l.removed && l.listener === listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n return this;\n }\n /**\n * Adds a one-time listener function for the event. The next time the event is triggered,\n * this listener is removed and then invoked.\n * @returns This stream, so that listener registration calls can be chained.\n */\n once(event, listener) {\n var _a;\n const listeners = ((_a = __classPrivateFieldGet(this, _EventStream_listeners, \"f\"))[event] || (_a[event] = []));\n listeners.push({ listener, once: true });\n return this;\n }\n /**\n * This is similar to `.once()`, but returns a Promise that resolves the next time\n * the event is triggered, instead of calling a listener callback.\n * Events without arguments resolve to `undefined`, single-argument events resolve\n * to that argument, and events with multiple arguments resolve to an argument tuple.\n *\n * @returns A promise for the next event, or a rejection if an error occurs first.\n * Requesting the `error` event resolves with the emitted error instead.\n *\n * Example:\n *\n * const message = await stream.emitted('message') // rejects if the stream errors\n */\n emitted(event) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n const onError = (error) => {\n // SAFETY: This callback is paired with the same event when registered and removed; its variadic body forwards the event tuple or captured error.\n this.off(event, onEvent);\n reject(error);\n };\n const onEvent = (...values) => {\n if (event !== 'error') {\n this.off('error', onError);\n }\n // SAFETY: The emitted API returns the sole argument or the full tuple according to its existing EventTypes-dependent result contract.\n resolve((values.length > 1 ? values : values[0]));\n };\n if (event !== 'error') {\n // SAFETY: This callback is paired with the same event when registered and removed; its variadic body forwards the event tuple or captured error.\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_onceForEmitted).call(this, 'error', onError);\n }\n // SAFETY: This callback is paired with the same event when registered and removed; its variadic body forwards the event tuple or captured error.\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_onceForEmitted).call(this, event, onEvent);\n });\n }\n /**\n * Returns an async iterator that yields every time the event is triggered.\n * The iterator ends when the stream ends and rejects if the stream errors\n * or is aborted. If you request the 'error' or 'abort' event, the iterator\n * yields that event instead of rejecting.\n *\n * Example:\n *\n * for await (const [message] of stream.events('message')) {\n * await processMessage(message);\n * }\n */\n events(event) {\n return this._createIterator((push) => {\n const onEvent = (...args) => {\n sdkOwnedBufferedEventArguments.add(args);\n try {\n push(args);\n }\n finally {\n sdkOwnedBufferedEventArguments.delete(args);\n }\n };\n // SAFETY: This callback is paired with the same event when registered and removed; its variadic body forwards the event tuple or captured error.\n this.on(event, onEvent);\n // SAFETY: This callback is paired with the same event when registered and removed; its variadic body forwards the event tuple or captured error.\n return () => this.off(event, onEvent);\n }, {\n // When iterating the 'error' or 'abort' event itself, yield it as a\n // value instead of rejecting the iterator.\n rejectOnError: event !== 'error',\n rejectOnAbort: event !== 'abort',\n });\n }\n /**\n * Shared buffered async-iterator adapter over this stream's events.\n *\n * `attach` registers the producer listener(s) with the given `push` and\n * returns a cleanup function that removes them. Termination is handled\n * here: the iterator ends when the stream ends, listeners are removed on\n * end/return, and a terminal error is retained until buffered values have\n * drained so it is surfaced even when no reader was waiting when it fired.\n * Detached consumers have bounded event and byte queues; exceeding either\n * limit fails the stream and aborts its underlying request. Detached queues\n * also reject accessor-backed payloads because getter closures cannot be\n * safely sized without executing untrusted code.\n */\n _createIterator(attach, { rejectOnError = true, rejectOnAbort = true, onReturn, } = {}) {\n const pushQueue = createEventQueue();\n const bufferedEventSizes = createEventQueue();\n const readQueue = createEventQueue();\n const bufferedLedger = createBufferedEventLedger();\n let ended = this.ended;\n let failure;\n let failureDelivered = false;\n let detach = () => undefined;\n // SAFETY: A completed iterator result has no yielded value; never preserves the iterator public result type for done: true.\n const doneResult = () => ({ value: undefined, done: true });\n const finishReaders = () => {\n while (readQueue.length) {\n readQueue.dequeue().resolve(doneResult());\n }\n };\n const rejectReader = () => {\n if (!failure || failureDelivered || !readQueue.length) {\n return;\n }\n failureDelivered = true;\n readQueue.dequeue().reject(failure);\n };\n const cleanup = () => {\n detach();\n this.off('end', onEnd);\n if (rejectOnError) {\n this.off('error', onFailure);\n }\n if (rejectOnAbort) {\n this.off('abort', onFailure);\n }\n };\n const deactivateBufferedEvent = (entry) => {\n entry.active = false;\n if (entry.check) {\n __classPrivateFieldGet(this, _EventStream_pendingBufferedEventChecks, \"f\").delete(entry.check);\n entry.check = undefined;\n }\n };\n const failBufferedEvents = (discardRetained = false) => {\n if (discardRetained) {\n while (bufferedEventSizes.length) {\n deactivateBufferedEvent(bufferedEventSizes.dequeue());\n }\n pushQueue.clear();\n bufferedLedger.clear();\n }\n const 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.`);\n try {\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).call(this, error);\n }\n finally {\n this.controller.abort();\n }\n return error;\n };\n const revalidateBufferedEvent = (value, entry) => {\n if (!entry.active || __classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n return;\n }\n const graph = inspectBufferedEventGraph(value, MAX_BUFFERED_ITERATOR_BYTES);\n if (!graph || !bufferedLedger.refresh(entry.retention, graph)) {\n failBufferedEvents(true);\n }\n };\n const push = (value) => {\n if (ended) {\n return;\n }\n const reader = readQueue.dequeue();\n if (reader) {\n reader.resolve({ value, done: false });\n }\n else {\n if (pushQueue.length >= MAX_BUFFERED_ITERATOR_EVENTS) {\n failBufferedEvents();\n return;\n }\n const graph = inspectBufferedEventGraph(value, MAX_BUFFERED_ITERATOR_BYTES);\n const retention = graph && bufferedLedger.retain(graph);\n if (!retention) {\n failBufferedEvents();\n return;\n }\n if (typeof value === 'object' && value !== null && sdkOwnedBufferedEventArguments.has(value)) {\n // SAFETY: Only SDK-created argument tuples are inserted into this private WeakSet, so membership establishes the array identity.\n const argumentsTuple = value;\n for (let index = 0; index < argumentsTuple.length; index += 1) {\n const argument = argumentsTuple[index];\n if (typeof argument === 'string') {\n // SAFETY: The branch checked argument is a string; JSON stringify/parse returns that same string value while detaching retained storage.\n argumentsTuple[index] = bufferedJSONParse(bufferedJSONStringify(argument));\n }\n }\n }\n const entry = { retention, active: true, check: undefined };\n pushQueue.enqueue(value);\n bufferedEventSizes.enqueue(entry);\n const check = () => {\n entry.check = undefined;\n revalidateBufferedEvent(value, entry);\n };\n entry.check = check;\n __classPrivateFieldGet(this, _EventStream_pendingBufferedEventChecks, \"f\").add(check);\n }\n };\n const onFailure = (error) => {\n failure = error;\n if (!pushQueue.length) {\n rejectReader();\n }\n };\n // A throwing user listener registered before this iterator stops dispatch\n // before onFailure runs; adopt the failure the stream recorded during\n // settlement so terminal errors are never converted into clean completion.\n const adoptTerminalFailure = () => {\n if (failure) {\n return;\n }\n const terminal = __classPrivateFieldGet(this, _EventStream_terminalFailure, \"f\");\n if (!terminal) {\n return;\n }\n if (terminal.kind === 'error' ? rejectOnError : rejectOnAbort) {\n failure = terminal.error;\n }\n };\n const onEnd = () => {\n ended = true;\n adoptTerminalFailure();\n cleanup();\n if (!pushQueue.length) {\n rejectReader();\n finishReaders();\n }\n };\n if (!ended) {\n detach = attach(push);\n this.on('end', onEnd);\n if (rejectOnError) {\n this.on('error', onFailure);\n }\n if (rejectOnAbort) {\n this.on('abort', onFailure);\n }\n }\n return {\n next: () => {\n if (pushQueue.length) {\n const value = pushQueue.dequeue();\n const entry = bufferedEventSizes.dequeue();\n deactivateBufferedEvent(entry);\n const graph = inspectBufferedEventGraph(value, MAX_BUFFERED_ITERATOR_BYTES);\n if (!graph || !bufferedLedger.refresh(entry.retention, graph)) {\n const error = failBufferedEvents(true);\n failureDelivered = true;\n return Promise.reject(error);\n }\n bufferedLedger.release(entry.retention);\n return Promise.resolve({ value, done: false });\n }\n if (ended || this.ended) {\n adoptTerminalFailure();\n }\n if (failure && !failureDelivered) {\n failureDelivered = true;\n return Promise.reject(failure);\n }\n if (ended) {\n return Promise.resolve(doneResult());\n }\n return new Promise((resolve, reject) => {\n readQueue.enqueue({ resolve, reject });\n });\n },\n return: () => {\n ended = true;\n // The consumer walked away; terminal failures recorded later must not\n // resurface through this iterator.\n failureDelivered = true;\n while (bufferedEventSizes.length) {\n deactivateBufferedEvent(bufferedEventSizes.dequeue());\n }\n pushQueue.clear();\n bufferedLedger.clear();\n cleanup();\n finishReaders();\n if (onReturn) {\n // The consumer explicitly ended iteration, so any failure the\n // onReturn callback triggers (e.g. aborting the stream) is\n // self-inflicted; mark the stream's terminal promise as handled so\n // it does not surface as an unhandled rejection.\n void this.done().catch(() => undefined);\n onReturn();\n }\n return Promise.resolve(doneResult());\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n }\n /** Resolves when the stream ends successfully or rejects when it fails or is aborted. */\n async done() {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _EventStream_endPromise, \"f\");\n }\n /** Returns whether an event currently has one or more registered listeners. */\n _hasListeners(event) {\n return Boolean(__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event]?.some((listener) => !listener.removed));\n }\n /** Dispatches a stream event and performs the associated lifecycle transitions. */\n _emit(event, ...args) {\n // make sure we don't emit any events after end\n if (__classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n return;\n }\n if (event === 'end') {\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_removeAbortListeners).call(this);\n __classPrivateFieldSet(this, _EventStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _EventStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n let dispatchError;\n let dispatchThrew = false;\n try {\n if (listeners) {\n // SAFETY: Filtering only removes registrations from the same event bucket and preserves the listener signatures for that event.\n __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = listeners.filter((listener) => {\n if (listener.once) {\n listener.detached = true;\n }\n return !listener.once && !listener.removed;\n });\n __classPrivateFieldSet(this, _EventStream_listenerDispatchDepth, __classPrivateFieldGet(this, _EventStream_listenerDispatchDepth, \"f\") + 1, \"f\");\n try {\n // SAFETY: The listener bucket and argument tuple come from the same EventTypes key; this bridges TypeScript generic indexed-access correlation.\n for (const registration of listeners) {\n if (!registration.removed) {\n const { listener } = registration;\n // SAFETY: The listener bucket and argument tuple come from the same EventTypes key; this bridges TypeScript generic indexed-access correlation.\n listener(...args);\n }\n }\n }\n finally {\n __classPrivateFieldSet(this, _EventStream_listenerDispatchDepth, __classPrivateFieldGet(this, _EventStream_listenerDispatchDepth, \"f\") - 1, \"f\");\n if (__classPrivateFieldGet(this, _EventStream_listenerDispatchDepth, \"f\") === 0) {\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_cleanupEmittedListeners).call(this);\n for (const check of __classPrivateFieldGet(this, _EventStream_pendingBufferedEventChecks, \"f\")) {\n __classPrivateFieldGet(this, _EventStream_pendingBufferedEventChecks, \"f\").delete(check);\n if (!__classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n check();\n }\n }\n }\n }\n }\n }\n catch (error) {\n dispatchError = error;\n dispatchThrew = true;\n }\n try {\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_settleTerminalEvent).call(this, event, args, Boolean(listeners?.length));\n }\n catch (error) {\n if (!dispatchThrew) {\n dispatchError = error;\n dispatchThrew = true;\n }\n }\n if (dispatchThrew) {\n throw dispatchError;\n }\n }\n // oxlint-disable-next-line class-methods-use-this -- Subclasses override this instance hook.\n _emitFinal() {\n // Hook for subclasses.\n }\n}\n_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_terminalFailure = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_abortFromSignal = function _EventStream_abortFromSignal(signal) {\n try {\n this.controller.abort(signal.reason);\n }\n catch {\n this.controller.abort();\n }\n}, _EventStream_removeAbortListeners = function _EventStream_removeAbortListeners() {\n for (const { signal, listener } of __classPrivateFieldGet(this, _EventStream_abortListeners, \"f\").splice(0)) {\n signal.removeEventListener('abort', listener);\n }\n}, _EventStream_onceForEmitted = function _EventStream_onceForEmitted(event, listener) {\n const previousListeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n const previousLength = previousListeners?.length ?? 0;\n this.once(event, listener);\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n const [registration] = listeners?.slice(-1) ?? [];\n if ((previousListeners === undefined || listeners === previousListeners) &&\n listeners?.length === previousLength + 1 &&\n registration?.listener === listener &&\n registration.once) {\n // SAFETY: Listener functions are object identities used as WeakMap keys; registration and removal use the same function instance.\n __classPrivateFieldGet(this, _EventStream_emittedListenerRegistrations, \"f\").set(listener, { event, registration });\n }\n}, _EventStream_removeEmittedListener = function _EventStream_removeEmittedListener(event, registration) {\n if (registration.removed) {\n return;\n }\n registration.removed = true;\n // SAFETY: Listener functions are object identities used as WeakMap keys; registration and removal use the same function instance.\n __classPrivateFieldGet(this, _EventStream_emittedListenerRegistrations, \"f\").delete(registration.listener);\n __classPrivateFieldGet(this, _EventStream_pendingListenerCleanup, \"f\").add(event);\n if (__classPrivateFieldGet(this, _EventStream_listenerDispatchDepth, \"f\") === 0) {\n __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_cleanupEmittedListeners).call(this);\n }\n}, _EventStream_cleanupEmittedListeners = function _EventStream_cleanupEmittedListeners() {\n for (const event of __classPrivateFieldGet(this, _EventStream_pendingListenerCleanup, \"f\")) {\n // SAFETY: Pending cleanup keys are added only from registered EventTypes events; the key retains its event-map membership.\n const eventType = event;\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[eventType];\n if (listeners) {\n // SAFETY: Filtering only removes registrations from the same event bucket and preserves the listener signatures for that event.\n __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[eventType] = listeners.filter((listener) => !listener.removed);\n }\n }\n __classPrivateFieldGet(this, _EventStream_pendingListenerCleanup, \"f\").clear();\n}, _EventStream_handleError = function _EventStream_handleError(error) {\n __classPrivateFieldSet(this, _EventStream_errored, true, \"f\");\n if (error instanceof Error && error.name === 'AbortError') {\n error = this._userAbortError();\n }\n if (error instanceof APIUserAbortError) {\n __classPrivateFieldSet(this, _EventStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof OpenAIError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const openAIError = new OpenAIError(error.message);\n // @ts-ignore\n openAIError.cause = error;\n return this._emit('error', openAIError);\n }\n return this._emit('error', new OpenAIError(String(error)));\n}, _EventStream_settleTerminalEvent = function _EventStream_settleTerminalEvent(event, args, hasListeners) {\n if (event === 'abort') {\n // SAFETY: The abort event key selects the APIUserAbortError argument tuple established by the typed emit contract.\n const error = args[0];\n __classPrivateFieldSet(this, _EventStream_terminalFailure, __classPrivateFieldGet(this, _EventStream_terminalFailure, \"f\") ?? { kind: 'abort', error }, \"f\");\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !hasListeners) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n return;\n }\n if (event === 'error') {\n // NOTE: _emit('error', error) should only be called from #handleError().\n // SAFETY: The error event is emitted by the error-normalization path, which supplies an OpenAIError as its first argument.\n const error = args[0];\n __classPrivateFieldSet(this, _EventStream_terminalFailure, __classPrivateFieldGet(this, _EventStream_terminalFailure, \"f\") ?? { kind: 'error', error }, \"f\");\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !hasListeners) {\n // Trigger an unhandled rejection if the user hasn't registered any error handlers.\n // If you are seeing stack traces here, make sure to handle errors via either:\n // - runner.on('error', () => ...)\n // - await runner.done()\n // - await runner.finalChatCompletion()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n};\n//# sourceMappingURL=EventStream.mjs.map","/** Returns whether a runnable function provides a parser for its raw argument string. */\nexport function isRunnableFunctionWithParse(fn) {\n return typeof fn.parse === 'function';\n}\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n */\nexport class ParsingToolFunction {\n /** Wraps a parsed-argument function definition in the function-tool shape. */\n constructor(input) {\n /** Identifies the wrapped tool as a callable function. */\n this.type = 'function';\n this.function = input;\n }\n}\n//# sourceMappingURL=RunnableFunction.mjs.map","var _AbstractChatCompletionRunner_instances, _a, _AbstractChatCompletionRunner_completionArrivedBeforeAbort, _AbstractChatCompletionRunner_afterCompletionInvoked, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionToolCall, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_throwIfAborted, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"../error.mjs\";\nimport { uuid4 } from \"../internal/utils/uuid.mjs\";\nimport { isAutoParsableTool, parseChatCompletion } from \"../lib/parser.mjs\";\nimport { isAssistantMessage, isToolMessage } from \"./chatCompletionUtils.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isRunnableFunctionWithParse } from \"./RunnableFunction.mjs\";\nconst DEFAULT_MAX_CHAT_COMPLETIONS = 10;\nfunction normalizeToolCallIds(chatCompletion) {\n for (const choice of chatCompletion.choices) {\n for (const toolCall of choice.message.tool_calls ?? []) {\n // Some OpenAI-compatible providers omit tool call IDs or return an empty string.\n // Generate a unique ID before the completion is stored or emitted so the assistant\n // tool call and its result message always reference the same value.\n if (!toolCall.id) {\n toolCall.id = `call_${uuid4()}`;\n }\n }\n }\n}\n/**\n * Parsed completions contain response-only and helper-only fields. Keep those\n * on runner.messages for callers, but only replay valid request fields.\n */\nfunction toRequestMessage(message) {\n if (!isAssistantMessage(message)) {\n return message;\n }\n const requestMessage = { role: 'assistant' };\n if (message.audio != null) {\n requestMessage.audio = { id: message.audio.id };\n }\n if (message.content !== undefined) {\n requestMessage.content = message.content;\n }\n if (message.function_call != null) {\n requestMessage.function_call = message.function_call;\n }\n if (message.name !== undefined) {\n requestMessage.name = message.name;\n }\n if (message.refusal != null) {\n requestMessage.refusal = message.refusal;\n }\n if (message.tool_calls !== undefined) {\n requestMessage.tool_calls = message.tool_calls.map((toolCall) => {\n if (toolCall.type === 'custom') {\n return {\n id: toolCall.id,\n type: toolCall.type,\n custom: {\n input: toolCall.custom.input,\n name: toolCall.custom.name,\n },\n };\n }\n return {\n id: toolCall.id,\n type: toolCall.type,\n function: {\n arguments: toolCall.function.arguments,\n name: toolCall.function.name,\n },\n };\n });\n }\n return requestMessage;\n}\n/** Shared conversation, event, cancellation, and final-result behavior for chat completion runners. */\nexport class AbstractChatCompletionRunner extends EventStream {\n constructor() {\n super(...arguments);\n _AbstractChatCompletionRunner_instances.add(this);\n this._chatCompletions = [];\n _AbstractChatCompletionRunner_completionArrivedBeforeAbort.set(this, false);\n _AbstractChatCompletionRunner_afterCompletionInvoked.set(this, false);\n /** Mutable conversation history, including initial input, assistant replies, and tool results. */\n this.messages = [];\n }\n _addChatCompletion(chatCompletion) {\n __classPrivateFieldSet(this, _AbstractChatCompletionRunner_completionArrivedBeforeAbort, !this.controller.signal.aborted, \"f\");\n normalizeToolCallIds(chatCompletion);\n this._chatCompletions.push(chatCompletion);\n this._emit('chatCompletion', chatCompletion);\n const message = chatCompletion.choices[0]?.message;\n if (message) {\n // SAFETY: An API assistant message is also accepted as a subsequent conversation message; this preserves that existing input/output bridge.\n this._addMessage(message);\n }\n return chatCompletion;\n }\n _addMessage(message, emit = true, normalizeContent = true) {\n if (normalizeContent && !('content' in message)) {\n message.content = null;\n }\n this.messages.push(message);\n if (emit) {\n this._emit('message', message);\n if (isToolMessage(message) && message.content) {\n // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.\n // SAFETY: The legacy function-tool result event assumes textual tool output, as documented by the adjacent compatibility comment.\n this._emit('functionToolCallResult', message.content);\n }\n else if (isAssistantMessage(message) && message.tool_calls) {\n for (const tool_call of message.tool_calls) {\n if (tool_call.type === 'function') {\n this._emit('functionToolCall', tool_call.function);\n }\n }\n }\n }\n }\n /**\n * @returns a promise that resolves with the final ChatCompletion, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletion.\n */\n async finalChatCompletion() {\n await this.done();\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (!completion) {\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n }\n return completion;\n }\n /**\n * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalContent() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n }\n /**\n * @returns a promise that resolves with the final assistant ChatCompletionMessage response,\n * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n }\n /**\n * Waits for completion and returns the last function-tool call, or `undefined`\n * when no assistant message contains a function-tool call.\n */\n async finalFunctionToolCall() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n }\n /** Waits for completion and returns the last matching function-tool result, if any. */\n async finalFunctionToolCallResult() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n }\n /** Waits for completion and sums token usage across every chat completion in the run. */\n async totalUsage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);\n }\n /** Returns a copy of the chat completions received so far, in request order. */\n allChatCompletions() {\n return [...this._chatCompletions];\n }\n _emitFinal() {\n if (__classPrivateFieldGet(this, _AbstractChatCompletionRunner_afterCompletionInvoked, \"f\")) {\n __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_throwIfAborted).call(this);\n }\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (completion) {\n this._emit('finalChatCompletion', completion);\n }\n const finalMessage = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n if (finalMessage) {\n this._emit('finalMessage', finalMessage);\n }\n const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n if (finalContent) {\n this._emit('finalContent', finalContent);\n }\n const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n if (finalFunctionCall) {\n this._emit('finalFunctionToolCall', finalFunctionCall);\n }\n const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n if (finalFunctionCallResult != null) {\n this._emit('finalFunctionToolCallResult', finalFunctionCallResult);\n }\n if (this._chatCompletions.some((c) => c.usage)) {\n this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));\n }\n }\n async _createChatCompletion(client, params, options) {\n this._listenForAbort(options?.signal);\n __classPrivateFieldGet(_a, _a, \"m\", _AbstractChatCompletionRunner_validateParams).call(_a, params);\n const chatCompletion = await client.chat.completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });\n this._connected();\n return this._addChatCompletion(parseChatCompletion(chatCompletion, params));\n }\n async _runChatCompletion(client, params, options) {\n for (const message of params.messages) {\n this._addMessage(message, false, false);\n }\n return await this._createChatCompletion(client, params, options);\n }\n async _runTools(client, params, runner, options) {\n const role = 'tool';\n const { tool_choice = 'auto', stream, toolContext: inputToolContext, ...restParams } = params;\n // SAFETY: The generic runner parameters tie toolContext to ToolContext; undefined remains valid when the caller omits it under that contract.\n const toolContext = inputToolContext;\n const singleFunctionToCall = \n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Chat history and tool-choice inputs can contain runtime variants that select different runner behavior.\n typeof tool_choice !== 'string' && tool_choice.type === 'function' && tool_choice?.function?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS, afterCompletion } = options || {};\n const runAfterCompletion = async (completion) => {\n if (afterCompletion == null) {\n return;\n }\n __classPrivateFieldSet(this, _AbstractChatCompletionRunner_afterCompletionInvoked, true, \"f\");\n await afterCompletion(completion, runner);\n __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_throwIfAborted).call(this);\n };\n // Normalize tool definitions before invoking callbacks.\n const inputTools = params.tools.map((tool) => {\n if (isAutoParsableTool(tool)) {\n if (!tool.$callback) {\n throw new OpenAIError('Tool given to `.runTools()` that does not have an associated function');\n }\n // SAFETY: The auto-parseable tool supplies its own validated parameter schema and parser; this bridges the legacy runnable-tool parameter type.\n return {\n type: 'function',\n function: {\n function: tool.$callback,\n name: tool.function.name,\n description: tool.function.description || '',\n parameters: tool.function.parameters,\n parse: tool.$parseRaw,\n strict: true,\n },\n };\n }\n // SAFETY: Unbranded tools follow the existing runnable-tool contract; the function-tool branch below performs its normal dispatch.\n return tool;\n });\n const functionsByName = Object.create(null);\n for (const f of inputTools) {\n if (f.type === 'function') {\n functionsByName[f.function.name || f.function.function.name] = f.function;\n }\n }\n // SAFETY: The runnable function's parameter schema is forwarded as JSON keyword properties without changing or inspecting its values.\n // SAFETY: This is the intentional non-function tool pass-through; the runnable and wire types differ in index signatures, not the forwarded value.\n // SAFETY: Omitting the tools list preserves the optional wire field; the existing conditional result type is broader than the runnable helper's declaration.\n const tools = 'tools' in params\n ? inputTools.map((t) => t.type === 'function'\n ? {\n type: 'function',\n function: {\n name: t.function.name || t.function.function.name,\n // oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- Tool parameter schemas use the published open JSON Schema dictionary contract, including arbitrary extensions.\n parameters: t.function.parameters,\n description: t.function.description,\n strict: t.function.strict,\n },\n }\n : // oxlint-disable-next-line anti-slop/no-chained-type-assertions -- Preserve the existing non-function tool pass-through; runnable and wire schema interfaces have incompatible index signatures.\n t)\n : undefined;\n for (const message of params.messages) {\n this._addMessage(message, false, false);\n }\n let allowBufferedToolCall = false;\n const runToolCall = async (toolCall) => {\n const bufferedToolCall = allowBufferedToolCall;\n allowBufferedToolCall = false;\n if (toolCall.type !== 'function') {\n return { message: undefined, functionCalled: false };\n }\n const tool_call_id = toolCall.id;\n const { name, arguments: args } = toolCall.function;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName)\n .map((name) => JSON.stringify(name))\n .join(', ')}. Please try again`;\n return { message: { role, tool_call_id, content }, functionCalled: false };\n }\n if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n return { message: { role, tool_call_id, content }, functionCalled: false };\n }\n let rawContent;\n if (isRunnableFunctionWithParse(fn)) {\n let parsed;\n try {\n parsed = await fn.parse(args);\n }\n catch (error) {\n if (this.controller.signal.aborted) {\n throw this._userAbortError();\n }\n const content = error instanceof Error ? error.message : String(error);\n return { message: { role, tool_call_id, content }, functionCalled: false };\n }\n if (this.controller.signal.aborted) {\n throw this._userAbortError();\n }\n try {\n rawContent = await fn.function(parsed, runner, toolContext);\n }\n catch (error) {\n if (this.controller.signal.aborted && Object.is(error, this.controller.signal.reason)) {\n throw this._userAbortError();\n }\n throw error;\n }\n }\n else {\n if (this.controller.signal.aborted && !bufferedToolCall) {\n throw this._userAbortError();\n }\n try {\n rawContent = await fn.function(args, runner, toolContext);\n }\n catch (error) {\n if (this.controller.signal.aborted && Object.is(error, this.controller.signal.reason)) {\n throw this._userAbortError();\n }\n throw error;\n }\n }\n const content = __classPrivateFieldGet(_a, _a, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(_a, rawContent);\n return { message: { role, tool_call_id, content }, functionCalled: true };\n };\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n tool_choice,\n tools,\n messages: this.messages.map(toRequestMessage),\n }, options);\n // A completed buffered turn retains its first immediate callback for\n // compatibility; delayed parsed callbacks never inherit this exception.\n allowBufferedToolCall = this.controller.signal.aborted && __classPrivateFieldGet(this, _AbstractChatCompletionRunner_completionArrivedBeforeAbort, \"f\");\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.tool_calls?.length) {\n await runAfterCompletion(chatCompletion);\n return;\n }\n if (singleFunctionToCall || params.parallel_tool_calls === false) {\n for (const toolCall of message.tool_calls) {\n const result = await runToolCall(toolCall);\n if (result.message) {\n this._addMessage(result.message);\n }\n if (this.controller.signal.aborted) {\n throw this._userAbortError();\n }\n if (singleFunctionToCall && result.functionCalled) {\n await runAfterCompletion(chatCompletion);\n return;\n }\n }\n }\n else {\n const results = await Promise.allSettled(message.tool_calls.map(runToolCall));\n // Wait for all side effects. Ordinary failures retain their existing\n // behavior; cancellation preserves every callback that already finished.\n if (!this.controller.signal.aborted) {\n for (const result of results) {\n if (result.status === 'rejected') {\n throw result.reason;\n }\n }\n }\n // Promise.allSettled preserves input order, so the next request receives\n // tool result messages in the same order as the assistant's tool calls.\n for (const result of results) {\n if (result.status === 'fulfilled' && result.value.message) {\n this._addMessage(result.value.message);\n }\n }\n if (this.controller.signal.aborted) {\n throw this._userAbortError();\n }\n }\n await runAfterCompletion(chatCompletion);\n }\n }\n}\n_a = AbstractChatCompletionRunner, _AbstractChatCompletionRunner_completionArrivedBeforeAbort = new WeakMap(), _AbstractChatCompletionRunner_afterCompletionInvoked = new WeakMap(), _AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this).content ?? null;\n}, _AbstractChatCompletionRunner_getFinalMessage = function _AbstractChatCompletionRunner_getFinalMessage() {\n let i = this.messages.length;\n while (i-- > 0) {\n const message = this.messages[i];\n if (isAssistantMessage(message)) {\n // Audio is intentionally omitted from the final message snapshot.\n // SAFETY: The assistant-message branch normalizes missing content and refusal to null when constructing the completed message.\n const ret = {\n ...message,\n content: message.content ?? null,\n refusal: message.refusal ?? null,\n };\n return ret;\n }\n }\n throw new OpenAIError('stream ended without producing a ChatCompletionMessage with role=assistant');\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCall = function _AbstractChatCompletionRunner_getFinalFunctionToolCall() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isAssistantMessage(message) && message?.tool_calls?.length) {\n for (let j = message.tool_calls.length - 1; j >= 0; j--) {\n const toolCall = message.tool_calls[j];\n if (toolCall?.type === 'function') {\n return toolCall.function;\n }\n }\n }\n }\n return undefined;\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult = function _AbstractChatCompletionRunner_getFinalFunctionToolCallResult() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isToolMessage(message) &&\n message.content != null &&\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Chat history and tool-choice inputs can contain runtime variants that select different runner behavior.\n typeof message.content === 'string' &&\n this.messages.some((x) => x.role === 'assistant' &&\n x.tool_calls?.some((y) => y.type === 'function' && y.id === message.tool_call_id))) {\n return message.content;\n }\n }\n return undefined;\n}, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {\n const total = {\n completion_tokens: 0,\n prompt_tokens: 0,\n total_tokens: 0,\n };\n for (const { usage } of this._chatCompletions) {\n if (usage) {\n total.completion_tokens += usage.completion_tokens;\n total.prompt_tokens += usage.prompt_tokens;\n total.total_tokens += usage.total_tokens;\n }\n }\n return total;\n}, _AbstractChatCompletionRunner_throwIfAborted = function _AbstractChatCompletionRunner_throwIfAborted() {\n if (this.controller.signal.aborted) {\n throw this._userAbortError();\n }\n}, _AbstractChatCompletionRunner_validateParams = function _AbstractChatCompletionRunner_validateParams(params) {\n if (params.n != null && params.n > 1) {\n throw new OpenAIError('ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.');\n }\n}, _AbstractChatCompletionRunner_stringifyFunctionCallResult = function _AbstractChatCompletionRunner_stringifyFunctionCallResult(rawContent) {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Chat history and tool-choice inputs can contain runtime variants that select different runner behavior.\n if (typeof rawContent === 'string') {\n return rawContent;\n }\n if (rawContent === undefined) {\n return 'undefined';\n }\n return JSON.stringify(rawContent);\n};\n//# sourceMappingURL=AbstractChatCompletionRunner.mjs.map","import { AbstractChatCompletionRunner } from \"./AbstractChatCompletionRunner.mjs\";\nimport { isAssistantMessage } from \"./chatCompletionUtils.mjs\";\n/** Executes function tools and follows up with non-streaming chat completion requests. */\nexport class ChatCompletionRunner extends AbstractChatCompletionRunner {\n /** Starts a non-streaming tool loop and returns its event-driven conversation runner. */\n static runTools(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n __metadata: { ...options?.__metadata, helperMethod: 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, runner, opts));\n return runner;\n }\n /**\n * Appends a conversation message and emits text content for assistant replies.\n * @param normalizeContent Defaults to true; initial history passes false to preserve caller-owned messages.\n */\n _addMessage(message, emit = true, normalizeContent = true) {\n super._addMessage(message, emit, normalizeContent);\n if (emit && isAssistantMessage(message) && message.content) {\n // SAFETY: The runner's content event preserves the existing string-content contract for assistant messages supplied by the API or caller.\n this._emit('content', message.content);\n }\n }\n}\n//# sourceMappingURL=ChatCompletionRunner.mjs.map","const STR = 1;\nconst NUM = 2;\nconst ARR = 4;\nconst OBJ = 8;\nconst NULL = 16;\nconst BOOL = 32;\nconst NAN = 64;\nconst INFINITY = 128;\nconst MINUS_INFINITY = 256;\nconst INF = INFINITY | MINUS_INFINITY;\nconst SPECIAL = NULL | BOOL | INF | NAN;\nconst ATOM = STR | NUM | SPECIAL;\nconst COLLECTION = ARR | OBJ;\nconst ALL = ATOM | COLLECTION;\nconst Allow = {\n STR,\n NUM,\n ARR,\n OBJ,\n NULL,\n BOOL,\n NAN,\n INFINITY,\n MINUS_INFINITY,\n INF,\n SPECIAL,\n ATOM,\n COLLECTION,\n ALL,\n};\n// The JSON string segment was unable to be parsed completely\n// oxlint-disable-next-line unicorn/custom-error-definition -- preserve the vendored exported class name\nclass PartialJSON extends Error {\n}\n// oxlint-disable-next-line unicorn/custom-error-definition -- preserve the vendored exported class name\nclass MalformedJSON extends Error {\n}\n/**\n * Parse incomplete JSON\n * @param {string} jsonString Partial JSON to be parsed\n * @param {number} allowPartial Specify what types are allowed to be partial, see {@link Allow} for details\n * @returns The parsed JSON\n * @throws {PartialJSON} If the JSON is incomplete (related to the `allow` parameter)\n * @throws {MalformedJSON} If the JSON is malformed\n */\nfunction parseJSON(jsonString, allowPartial = Allow.ALL) {\n if (typeof jsonString !== 'string') {\n throw new TypeError(`expecting str, got ${typeof jsonString}`);\n }\n if (!jsonString.trim()) {\n throw new Error(`${jsonString} is empty`);\n }\n return _parseJSON(jsonString.trim(), allowPartial);\n}\nconst _parseJSON = (jsonString, allow) => {\n const length = jsonString.length;\n let index = 0;\n const markPartialJSON = (msg) => {\n throw new PartialJSON(`${msg} at position ${index}`);\n };\n const throwMalformedError = (msg) => {\n throw new MalformedJSON(`${msg} at position ${index}`);\n };\n const parseAny = () => {\n skipBlank();\n if (index >= length) {\n markPartialJSON('Unexpected end of input');\n }\n if (jsonString[index] === '\"') {\n return parseStr();\n }\n if (jsonString[index] === '{') {\n return parseObj();\n }\n if (jsonString[index] === '[') {\n return parseArr();\n }\n if (jsonString.substring(index, index + 4) === 'null' ||\n (Allow.NULL & allow && length - index < 4 && 'null'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return null;\n }\n if (jsonString.substring(index, index + 4) === 'true' ||\n (Allow.BOOL & allow && length - index < 4 && 'true'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return true;\n }\n if (jsonString.substring(index, index + 5) === 'false' ||\n (Allow.BOOL & allow && length - index < 5 && 'false'.startsWith(jsonString.substring(index)))) {\n index += 5;\n return false;\n }\n if (jsonString.substring(index, index + 8) === 'Infinity' ||\n (Allow.INFINITY & allow && length - index < 8 && 'Infinity'.startsWith(jsonString.substring(index)))) {\n index += 8;\n return Infinity;\n }\n if (jsonString.substring(index, index + 9) === '-Infinity' ||\n (Allow.MINUS_INFINITY & allow &&\n length - index > 1 &&\n length - index < 9 &&\n '-Infinity'.startsWith(jsonString.substring(index)))) {\n index += 9;\n return -Infinity;\n }\n if (jsonString.substring(index, index + 3) === 'NaN' ||\n (Allow.NAN & allow && length - index < 3 && 'NaN'.startsWith(jsonString.substring(index)))) {\n index += 3;\n return Number.NaN;\n }\n return parseNum();\n };\n const parseStr = () => {\n const start = index;\n let escape = false;\n index++; // skip initial quote\n while (index < length && (jsonString[index] !== '\"' || (escape && jsonString[index - 1] === '\\\\'))) {\n escape = jsonString[index] === '\\\\' ? !escape : false;\n index++;\n }\n if (jsonString.charAt(index) === '\"') {\n try {\n return JSON.parse(jsonString.substring(start, ++index - Number(escape)));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n else if (Allow.STR & allow) {\n try {\n return JSON.parse(jsonString.substring(start, index - Number(escape)) + '\"');\n }\n catch {\n // SyntaxError: Invalid escape sequence\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('\\\\')) + '\"');\n }\n }\n markPartialJSON('Unterminated string literal');\n };\n const parseObj = () => {\n index++; // skip initial brace\n skipBlank();\n const obj = {};\n try {\n while (jsonString[index] !== '}') {\n skipBlank();\n if (index >= length && Allow.OBJ & allow) {\n return obj;\n }\n const key = parseStr();\n skipBlank();\n index++; // skip colon\n try {\n const value = parseAny();\n Object.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });\n }\n catch (e) {\n if (Allow.OBJ & allow) {\n return obj;\n }\n throw e;\n }\n skipBlank();\n if (jsonString[index] === ',') {\n index++;\n } // skip comma\n }\n }\n catch {\n if (Allow.OBJ & allow) {\n return obj;\n }\n markPartialJSON(\"Expected '}' at end of object\");\n }\n index++; // skip final brace\n return obj;\n };\n const parseArr = () => {\n index++; // skip initial bracket\n const arr = [];\n try {\n while (jsonString[index] !== ']') {\n arr.push(parseAny());\n skipBlank();\n if (jsonString[index] === ',') {\n index++; // skip comma\n }\n }\n }\n catch {\n if (Allow.ARR & allow) {\n return arr;\n }\n markPartialJSON(\"Expected ']' at end of array\");\n }\n index++; // skip final bracket\n return arr;\n };\n const parseNum = () => {\n if (index === 0) {\n if (jsonString === '-' && Allow.NUM & allow) {\n markPartialJSON(\"Not sure what '-' is\");\n }\n try {\n return JSON.parse(jsonString);\n }\n catch (e) {\n if (Allow.NUM & allow) {\n try {\n if (jsonString[jsonString.length - 1] === '.') {\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('.')));\n }\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('e')));\n }\n catch {\n // Fall through to report malformed input below.\n }\n }\n throwMalformedError(String(e));\n }\n }\n const start = index;\n if (jsonString[index] === '-') {\n index++;\n }\n while (jsonString[index] && !',]}'.includes(jsonString[index])) {\n index++;\n }\n if (index === length && !(Allow.NUM & allow)) {\n markPartialJSON('Unterminated number literal');\n }\n const number = jsonString.substring(start, index);\n try {\n return JSON.parse(number);\n }\n catch {\n if (number === '-' && Allow.NUM & allow) {\n markPartialJSON(\"Not sure what '-' is\");\n }\n try {\n return JSON.parse(number.substring(0, number.lastIndexOf('e')));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n };\n const skipBlank = () => {\n while (index < length && ' \\n\\r\\t'.includes(jsonString[index])) {\n index++;\n }\n };\n return parseAny();\n};\n// using this function with malformed JSON is undefined behavior\nconst partialParse = (input) => parseJSON(input, Allow.ALL ^ Allow.NUM);\nexport { partialParse, PartialJSON, MalformedJSON };\n//# sourceMappingURL=parser.mjs.map","var _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_rejectsUnfinishedTurns, _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;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { MalformedJSON, partialParse } from \"../_vendor/partial-json-parser/parser.mjs\";\nimport { APIError, ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError } from \"../error.mjs\";\nimport { observeJSONRequestBody } from \"../internal/request-options.mjs\";\nimport { uuid4 } from \"../internal/utils/uuid.mjs\";\nimport { hasOwn } from \"../internal/utils/values.mjs\";\nimport { hasAutoParseableInput, isAutoParsableTool, isChatCompletionFunctionTool, isParseableResponseFormat, maybeParseChatCompletion, parseResponseFormatContent, shouldParseToolCall, } from \"../lib/parser.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { AbstractChatCompletionRunner } from \"./AbstractChatCompletionRunner.mjs\";\n// oxlint-disable-next-line anti-slop/no-unknown-returns -- Partial JSON may have any shape; callers validate or parse it against their response schema.\nfunction parseStructuredStreamingJSON(content) {\n try {\n return partialParse(content);\n }\n catch (error) {\n if (error instanceof MalformedJSON || error instanceof SyntaxError) {\n return parseResponseFormatContent({ type: 'json_schema', $parseRaw: undefined }, content);\n }\n throw error;\n }\n}\n// Keep message records readable as empty chunks by older SDKs. Their finalizer\n// overwrites `object`, so the encoded payload does not leak into completions.\nconst CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX = 'chat.completion.chunk.message:';\n/** Encodes a tool-result message as a backwards-compatible, empty completion chunk. */\nexport function makeChatCompletionReadableStreamMessageChunk(chunk, message, toolCallIds) {\n const payload = {\n type: 'message',\n message,\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(toolCallIds ? { tool_call_ids: toolCallIds } : {}),\n };\n return {\n id: chunk.id,\n choices: [],\n created: chunk.created,\n model: chunk.model,\n object: `${CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX}${JSON.stringify(payload)}`,\n };\n}\nfunction isChatCompletionReadableStreamMessage(item) {\n return (('type' in item && item.type === 'message' && 'message' in item) ||\n ('object' in item &&\n typeof item.object === 'string' &&\n item.object.startsWith(CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX)));\n}\nfunction getChatCompletionReadableStreamMessage(item) {\n if ('type' in item) {\n return item;\n }\n // SAFETY: This decoder reads the SDK's tagged readable-stream envelope; JSON parsing restores its serialized message fields for the stream accumulator.\n return JSON.parse(item.object.slice(CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX.length));\n}\n// The Chat Completions schema limits n to 128. Replayed streams do not retain\n// request parameters, so apply that choice limit independently and use the same\n// conservative ceiling to prevent sparse tool-call arrays from growing unbounded.\nconst MAX_STREAM_CHOICES = 128;\nconst MAX_STREAM_TOOL_CALLS = 128;\nconst MAX_PARTIAL_JSON_BYTES = 16 * 1024 * 1024;\nconst MAX_PARTIAL_JSON_FRAGMENTS = 65536;\nconst MAX_PARTIAL_JSON_DEPTH = 128;\nconst MAX_PARTIAL_JSON_PARSE_WORK = 64 * 1024 * 1024;\nconst EAGER_PARTIAL_JSON_BYTES = 1024;\nfunction createPartialJSONParseState() {\n return {\n bytes: 0,\n depth: 0,\n fragments: 0,\n work: 0,\n escaped: false,\n has_non_whitespace: false,\n in_string: false,\n last_parsed_bytes: 0,\n pending_high_surrogate: false,\n };\n}\nfunction recordPartialJSONFragment(state, budget, fragment, validationWorkBudget) {\n if (budget.fragments >= MAX_PARTIAL_JSON_FRAGMENTS) {\n throw new OpenAIError('Chat completion stream exceeded its structured JSON fragment limit');\n }\n let bytes = 0;\n let { depth, escaped, has_non_whitespace: hasNonWhitespace, in_string: inString } = state;\n let completed = false;\n let firstCharacter = true;\n for (const character of fragment) {\n const previousBytes = bytes;\n const codePoint = character.codePointAt(0);\n if (firstCharacter && state.pending_high_surrogate && codePoint >= 56320 && codePoint <= 57343) {\n bytes += 1;\n }\n else if (codePoint <= 0x7f) {\n bytes += 1;\n }\n else if (codePoint <= 2047) {\n bytes += 2;\n }\n else if (codePoint <= 65535) {\n bytes += 3;\n }\n else {\n bytes += 4;\n }\n firstCharacter = false;\n if (budget.bytes + bytes > MAX_PARTIAL_JSON_BYTES) {\n throw new OpenAIError('Chat completion stream exceeded its structured JSON byte limit');\n }\n if (validationWorkBudget && validationWorkBudget.work + bytes > MAX_PARTIAL_JSON_PARSE_WORK) {\n validationWorkBudget.work += previousBytes;\n throw new OpenAIError('Chat completion stream exceeded its structured JSON parse-work limit');\n }\n if (character !== ' ' && character !== '\\n' && character !== '\\r' && character !== '\\t') {\n hasNonWhitespace = true;\n }\n if (inString) {\n if (escaped) {\n escaped = false;\n }\n else if (character === '\\\\') {\n escaped = true;\n }\n else if (character === '\"') {\n inString = false;\n completed || (completed = depth === 0);\n }\n continue;\n }\n if (character === '\"') {\n inString = true;\n }\n else if (character === '{' || character === '[') {\n depth += 1;\n if (depth > MAX_PARTIAL_JSON_DEPTH) {\n throw new OpenAIError('Chat completion stream exceeded its structured JSON nesting depth limit');\n }\n }\n else if ((character === '}' || character === ']') && depth > 0) {\n depth -= 1;\n completed || (completed = depth === 0);\n }\n }\n state.bytes += bytes;\n state.fragments += 1;\n state.depth = depth;\n state.escaped = escaped;\n state.has_non_whitespace = hasNonWhitespace;\n state.in_string = inString;\n if (fragment.length > 0) {\n const finalCodeUnit = fragment.codePointAt(fragment.length - 1) ?? 0;\n state.pending_high_surrogate = finalCodeUnit >= 55296 && finalCodeUnit <= 56319;\n }\n budget.bytes += bytes;\n budget.fragments += 1;\n if (validationWorkBudget) {\n validationWorkBudget.work += bytes;\n }\n if (!hasNonWhitespace || bytes === 0) {\n return false;\n }\n const minimumGrowth = Math.max(EAGER_PARTIAL_JSON_BYTES, Math.floor(state.last_parsed_bytes / 2));\n if (state.bytes > EAGER_PARTIAL_JSON_BYTES &&\n !completed &&\n state.bytes - state.last_parsed_bytes < minimumGrowth) {\n return false;\n }\n return true;\n}\nfunction reservePartialJSONParse(state, budget) {\n if (budget.work + state.bytes > MAX_PARTIAL_JSON_PARSE_WORK) {\n return false;\n }\n budget.work += state.bytes;\n state.work += state.bytes;\n state.last_parsed_bytes = state.bytes;\n return true;\n}\nfunction captureStructuredJSONSnapshot(snapshot, property) {\n const descriptor = Object.getOwnPropertyDescriptor(snapshot, property);\n if (!descriptor) {\n // SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.\n let prototype = Object.getPrototypeOf(snapshot);\n for (let depth = 0; prototype !== null; depth += 1) {\n if (depth >= MAX_PARTIAL_JSON_DEPTH || Object.getOwnPropertyDescriptor(prototype, property)) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.\n prototype = Object.getPrototypeOf(prototype);\n }\n return undefined;\n }\n if (!('value' in descriptor) ||\n (typeof descriptor.value !== 'string' && descriptor.value !== null && descriptor.value !== undefined)) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n // SAFETY: The own data descriptor was explicitly checked to contain only a string, null, or undefined.\n return descriptor.value;\n}\nfunction captureStructuredMessageSnapshot(choice) {\n const descriptor = Object.getOwnPropertyDescriptor(choice, 'message');\n if (!descriptor ||\n !('value' in descriptor) ||\n typeof descriptor.value !== 'object' ||\n descriptor.value === null) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n // SAFETY: The choice contract supplies a message; the own data descriptor check prevents getters from changing which object is captured.\n return descriptor.value;\n}\nfunction captureSnapshotArray(snapshot, property, maximum, kind) {\n const descriptor = Object.getOwnPropertyDescriptor(snapshot, property);\n if (!descriptor) {\n // SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.\n let prototype = Object.getPrototypeOf(snapshot);\n for (let depth = 0; prototype !== null; depth += 1) {\n if (depth >= MAX_PARTIAL_JSON_DEPTH || Object.getOwnPropertyDescriptor(prototype, property)) {\n throw new OpenAIError(`Chat completion stream contains an unsafe snapshot ${kind} collection`);\n }\n // SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.\n prototype = Object.getPrototypeOf(prototype);\n }\n return undefined;\n }\n if (!('value' in descriptor) || !Array.isArray(descriptor.value)) {\n throw new OpenAIError(`Chat completion stream contains an unsafe snapshot ${kind} collection`);\n }\n const length = Object.getOwnPropertyDescriptor(descriptor.value, 'length');\n if (!length || !('value' in length) || !Number.isSafeInteger(length.value) || length.value > maximum) {\n throw new OpenAIError(`Chat completion stream exceeded its snapshot ${kind} limit`);\n }\n // SAFETY: The captured data property is an array with a checked bounded length; Item comes from the owning snapshot collection's contract.\n return descriptor.value;\n}\nfunction captureSnapshotArrayItem(array, index) {\n const descriptor = Object.getOwnPropertyDescriptor(array, index);\n if (!descriptor) {\n return undefined;\n }\n if (!('value' in descriptor)) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n // SAFETY: The descriptor is a data property of the typed Item array, so its value retains that array's element contract.\n return descriptor.value;\n}\nfunction mapCapturedSnapshotArray(array, maximum, kind, map) {\n const descriptor = Object.getOwnPropertyDescriptor(array, 'length');\n const length = descriptor && 'value' in descriptor ? descriptor.value : undefined;\n if (typeof length !== 'number' || !Number.isSafeInteger(length) || length < 0 || length > maximum) {\n throw new OpenAIError(`Chat completion stream exceeded its snapshot ${kind} limit`);\n }\n const mapped = [];\n mapped.length = length;\n for (let index = 0; index < length; index += 1) {\n const item = Object.getOwnPropertyDescriptor(array, index);\n if (!item) {\n continue;\n }\n if (!('value' in item)) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n // SAFETY: The descriptor is a data property of the typed Item array, so its value retains that array's element contract.\n mapped[index] = map(item.value, index);\n }\n return mapped;\n}\nfunction validateStructuredJSONSnapshot(value, budget, validationWorkBudget) {\n const state = createPartialJSONParseState();\n const parseBudget = budget ?? { bytes: 0, fragments: 0, work: 0 };\n recordPartialJSONFragment(state, parseBudget, value, validationWorkBudget);\n if (!reservePartialJSONParse(state, parseBudget)) {\n throw new OpenAIError('Chat completion stream exceeded its structured JSON parse-work limit');\n }\n return value;\n}\nfunction ownFunctionToolIdentity(toolCall) {\n const type = Object.getOwnPropertyDescriptor(toolCall, 'type');\n const fn = Object.getOwnPropertyDescriptor(toolCall, 'function');\n if (!type || !('value' in type) || type.value !== 'function' || !fn || !('value' in fn)) {\n return undefined;\n }\n if (typeof fn.value !== 'object' || fn.value === null) {\n return undefined;\n }\n const name = Object.getOwnPropertyDescriptor(fn.value, 'name');\n if (!name || !('value' in name) || typeof name.value !== 'string' || name.value.length === 0) {\n return undefined;\n }\n return { type: 'function', name: name.value };\n}\nfunction assertBoundToolCallIdentity(toolCall, identity) {\n const current = ownFunctionToolIdentity(toolCall);\n if (!current || current.name !== identity.name || current.type !== identity.type) {\n throw new OpenAIError('Chat completion stream contains a changed tool call identity');\n }\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- This assignment primitive copies own properties from heterogeneous snapshot and delta objects.\nfunction assignOwnProperties(target, source) {\n if (Object.prototype.propertyIsEnumerable.call(source, '__proto__') && !hasOwn(target, '__proto__')) {\n Object.defineProperty(target, '__proto__', {\n value: undefined,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n return Object.assign(target, source);\n}\nfunction cloneParserConfigObject(value, stableFields = []) {\n const descriptors = Object.getOwnPropertyDescriptors(value);\n for (const field of stableFields) {\n const descriptor = descriptors[field];\n if (!descriptor && !(field in value)) {\n continue;\n }\n descriptors[field] = {\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Generic config cloning must resolve inherited/accessor keys outside the declared config shape.\n value: descriptor && 'value' in descriptor ? descriptor.value : Reflect.get(value, field, value),\n enumerable: descriptor?.enumerable ?? false,\n configurable: descriptor?.configurable ?? true,\n writable: descriptor && 'writable' in descriptor ? descriptor.writable : false,\n };\n }\n // SAFETY: The clone preserves the original prototype and descriptors, replacing only the parser metadata captured from that same value.\n return Object.create(Object.getPrototypeOf(value), descriptors);\n}\nfunction snapshotChatCompletionParserParams(params) {\n const snapshot = cloneParserConfigObject(params);\n if (params.tools) {\n const stableTools = [];\n const lengthDescriptor = Object.getOwnPropertyDescriptor(params.tools, 'length');\n const length = lengthDescriptor && 'value' in lengthDescriptor ? lengthDescriptor.value : undefined;\n const toolCount = typeof length === 'number' && Number.isSafeInteger(length) && length >= 0\n ? Math.min(length, MAX_STREAM_TOOL_CALLS)\n : 0;\n for (let index = 0; index < toolCount; index += 1) {\n const item = Object.getOwnPropertyDescriptor(params.tools, String(index));\n if (!item || !('value' in item)) {\n stableTools.length = index + 1;\n continue;\n }\n // SAFETY: This own data descriptor comes from the request's typed tools array; the following code captures its parser metadata.\n const tool = item.value;\n const stableTool = cloneParserConfigObject(tool, [\n 'type',\n '$brand',\n '$parseRaw',\n '$callback',\n 'function',\n ]);\n const descriptors = Object.getOwnPropertyDescriptors(stableTool);\n if (isChatCompletionFunctionTool(stableTool)) {\n const descriptor = descriptors.function;\n descriptors.function = {\n ...(descriptor && 'value' in descriptor\n ? descriptor\n : { configurable: true, enumerable: true, writable: true }),\n value: cloneParserConfigObject(stableTool.function, ['name', 'strict']),\n };\n }\n // SAFETY: The cloned tool retains the original prototype and descriptors while substituting its captured parser configuration.\n stableTools[index] = Object.create(Object.getPrototypeOf(tool), descriptors);\n }\n snapshot.tools = stableTools;\n }\n if (params.response_format) {\n snapshot.response_format = cloneParserConfigObject(params.response_format, [\n 'type',\n '$brand',\n '$parseRaw',\n ]);\n }\n return snapshot;\n}\nconst MAX_SERIALIZED_PARSER_SCHEMA_NODES = 4096;\nconst stringifyParserSchemaValue = JSON.stringify;\nconst MAX_SERIALIZED_PARSER_SCHEMA_BYTES = 1024 * 1024;\nconst MAX_SERIALIZED_PARSER_SCHEMA_DEPTH = 64;\nconst OMITTED_SERIALIZED_PARSER_VALUE = Symbol('omitted serialized parser value');\nconst UNSAFE_SERIALIZED_PARSER_VALUE = Symbol('unsafe serialized parser value');\nfunction canonicalSerializedParserSchema(value, budget) {\n const ancestors = new WeakSet();\n const charge = (bytes) => {\n if (!Number.isSafeInteger(bytes) ||\n bytes < 0 ||\n budget.bytes + bytes > MAX_SERIALIZED_PARSER_SCHEMA_BYTES) {\n return false;\n }\n budget.bytes += bytes;\n return true;\n };\n // SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.\n const visit = (current, depth) => {\n if (depth > MAX_SERIALIZED_PARSER_SCHEMA_DEPTH || budget.nodes >= MAX_SERIALIZED_PARSER_SCHEMA_NODES) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n budget.nodes += 1;\n if (current === undefined || typeof current === 'function' || typeof current === 'symbol') {\n return OMITTED_SERIALIZED_PARSER_VALUE;\n }\n if (typeof current === 'bigint') {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n if (current === null || typeof current === 'boolean' || typeof current === 'number') {\n const serialized = stringifyParserSchemaValue(current);\n return typeof serialized === 'string' && charge(serialized.length)\n ? serialized\n : UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n if (typeof current === 'string') {\n if (!charge(current.length * 6 + 2)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n return stringifyParserSchemaValue(current);\n }\n if (typeof current !== 'object' || ancestors.has(current)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n const array = Array.isArray(current);\n // SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.\n const prototype = Object.getPrototypeOf(current);\n if ((array && prototype !== Array.prototype) ||\n (!array && prototype !== null && prototype !== Object.prototype)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n for (let owner = current; owner !== null; owner = Object.getPrototypeOf(owner)) {\n const serializer = Object.getOwnPropertyDescriptor(owner, 'toJSON');\n if (!serializer) {\n continue;\n }\n if (!('value' in serializer) || typeof serializer.value === 'function') {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n break;\n }\n ancestors.add(current);\n try {\n if (!charge(2)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n if (array) {\n const lengthDescriptor = Object.getOwnPropertyDescriptor(current, 'length');\n const length = lengthDescriptor && 'value' in lengthDescriptor ? lengthDescriptor.value : undefined;\n if (typeof length !== 'number' ||\n !Number.isSafeInteger(length) ||\n length < 0 ||\n length > MAX_SERIALIZED_PARSER_SCHEMA_NODES - budget.nodes) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n const items = [];\n for (let index = 0; index < length; index += 1) {\n const key = String(index);\n const descriptor = Object.getOwnPropertyDescriptor(current, key);\n if (!descriptor) {\n if (Object.getOwnPropertyDescriptor(Array.prototype, key) ||\n Object.getOwnPropertyDescriptor(Object.prototype, key)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n budget.nodes += 1;\n if (!charge(4)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n items.push('null');\n continue;\n }\n if (!('value' in descriptor)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n const item = visit(descriptor.value, depth + 1);\n if (item === UNSAFE_SERIALIZED_PARSER_VALUE) {\n return item;\n }\n items.push(item === OMITTED_SERIALIZED_PARSER_VALUE ? 'null' : item);\n }\n return `[${items.join(',')}]`;\n }\n const keys = Reflect.ownKeys(current);\n if (keys.length > MAX_SERIALIZED_PARSER_SCHEMA_NODES - budget.nodes) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n const entries = [];\n for (const key of keys) {\n if (typeof key !== 'string') {\n continue;\n }\n const descriptor = Object.getOwnPropertyDescriptor(current, key);\n if (!descriptor) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n if (!descriptor.enumerable) {\n continue;\n }\n if (!('value' in descriptor)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n entries.push([key, descriptor.value]);\n }\n entries.sort(([left], [right]) => {\n if (left === right) {\n return 0;\n }\n return left < right ? -1 : 1;\n });\n const fields = [];\n for (const [key, entry] of entries) {\n const normalized = visit(entry, depth + 1);\n if (normalized === UNSAFE_SERIALIZED_PARSER_VALUE) {\n return normalized;\n }\n if (normalized === OMITTED_SERIALIZED_PARSER_VALUE) {\n continue;\n }\n if (!charge(key.length * 6 + 3)) {\n return UNSAFE_SERIALIZED_PARSER_VALUE;\n }\n fields.push(`${stringifyParserSchemaValue(key)}:${normalized}`);\n }\n return `{${fields.join(',')}}`;\n }\n finally {\n ancestors.delete(current);\n }\n };\n try {\n const normalized = visit(value, 0);\n return typeof normalized === 'string' ? normalized : undefined;\n }\n catch {\n return undefined;\n }\n}\nfunction rememberSerializedParserSchema(signatures, \n// oxlint-disable-next-line anti-slop/no-object-parameters -- Parser owners are tracked by identity before their metadata descriptors are validated.\nsource, \n// oxlint-disable-next-line anti-slop/no-object-parameters -- Serialized schema holders may be arbitrary objects with hostile accessors or prototypes.\nholder, key) {\n const parser = Object.getOwnPropertyDescriptor(source, '$parseRaw');\n const schema = Object.getOwnPropertyDescriptor(holder, key);\n if (!parser ||\n !('value' in parser) ||\n typeof parser.value !== 'function' ||\n !schema ||\n !('value' in schema)) {\n return;\n }\n const normalized = canonicalSerializedParserSchema(schema.value, { nodes: 0, bytes: 0 });\n if (normalized !== undefined) {\n signatures.set(source, normalized);\n }\n}\nfunction hasMatchingSerializedParserSchema(signatures, \n// oxlint-disable-next-line anti-slop/no-object-parameters -- Parser signatures belong to the original object identity, independent of its fields.\nsource, \n// oxlint-disable-next-line anti-slop/no-object-parameters -- The schema holder is inspected through own descriptors before its contents are trusted.\nholder, key, value) {\n const expected = source && signatures.get(source);\n const descriptor = Object.getOwnPropertyDescriptor(holder, key);\n return (expected !== undefined &&\n descriptor !== undefined &&\n 'value' in descriptor &&\n canonicalSerializedParserSchema(value, { nodes: 0, bytes: 0 }) === expected);\n}\nfunction serializedParserDescriptor(descriptor, value) {\n return descriptor && 'value' in descriptor\n ? { ...descriptor, value }\n : { configurable: true, enumerable: true, writable: true, value };\n}\nfunction shadowSerializedParserMetadata(descriptors, source, fields) {\n for (const field of fields) {\n const descriptor = descriptors[field];\n if (!descriptor && !(field in source)) {\n continue;\n }\n descriptors[field] =\n descriptor && 'value' in descriptor\n ? { ...descriptor, value: undefined }\n : {\n configurable: descriptor?.configurable ?? true,\n enumerable: descriptor?.enumerable ?? false,\n writable: false,\n value: undefined,\n };\n }\n}\nfunction snapshotSerializedParserTool(serialized) {\n // SAFETY: The fallback is a serialization scaffold: the code below installs the captured wire fields before the tool is returned.\n const source = serialized.source ??\n {\n type: serialized.type,\n ...(serialized.type === 'function' ? { function: {} } : {}),\n };\n const descriptors = Object.getOwnPropertyDescriptors(source);\n descriptors.type = serializedParserDescriptor(descriptors.type, serialized.type);\n if (serialized.type !== 'function' || !serialized.function) {\n if (descriptors.function) {\n descriptors.function = serializedParserDescriptor(descriptors.function, undefined);\n }\n shadowSerializedParserMetadata(descriptors, source, ['$brand', '$parseRaw', '$callback']);\n // SAFETY: The descriptors reconstruct the tool's captured serialized fields and shadow parser metadata while retaining its original prototype.\n return Object.create(Object.getPrototypeOf(source), descriptors);\n }\n const descriptor = descriptors.function;\n // SAFETY: The preceding guard proves this data descriptor contains a non-null object; no more specific type is assumed.\n const original = descriptor && 'value' in descriptor && typeof descriptor.value === 'object' && descriptor.value !== null\n ? descriptor.value\n : {};\n const functionDescriptors = Object.getOwnPropertyDescriptors(original);\n functionDescriptors['name'] = serializedParserDescriptor(functionDescriptors['name'], serialized.function.name);\n functionDescriptors['strict'] = serializedParserDescriptor(functionDescriptors['strict'], serialized.function.strict);\n descriptors.function = serializedParserDescriptor(descriptor, Object.create(Object.getPrototypeOf(original), functionDescriptors));\n if (!serialized.function.schemaMatches) {\n shadowSerializedParserMetadata(descriptors, source, ['$brand', '$parseRaw', '$callback']);\n }\n // SAFETY: The descriptors reconstruct the tool's captured serialized fields and shadow parser metadata while retaining its original prototype.\n return Object.create(Object.getPrototypeOf(source), descriptors);\n}\nfunction snapshotSerializedResponseFormat(serialized) {\n // SAFETY: The fallback seeds only the discriminator; the captured response-format fields are installed below before returning it.\n const source = serialized.source ?? { type: serialized.type };\n const descriptors = Object.getOwnPropertyDescriptors(source);\n descriptors.type = serializedParserDescriptor(descriptors.type, serialized.type);\n if (serialized.type !== 'json_schema' || !serialized.source || !serialized.schemaMatches) {\n shadowSerializedParserMetadata(descriptors, source, ['$brand', '$parseRaw']);\n }\n // SAFETY: The descriptors restore the captured response-format fields and parser metadata on the original prototype.\n return Object.create(Object.getPrototypeOf(source), descriptors);\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- The serialization visitor accepts arbitrary object and array holders, inspecting own descriptors only.\nfunction ownSerializedParserObject(holder, key) {\n const descriptor = Object.getOwnPropertyDescriptor(holder, key);\n if (!descriptor || !('value' in descriptor)) {\n return undefined;\n }\n const { value } = descriptor;\n return typeof value === 'object' && value !== null ? value : undefined;\n}\nfunction observeSerializedChatCompletionParserParams(body, initial, update) {\n const originalToolOwners = new WeakMap();\n const originalSchemaSignatures = new WeakMap();\n // At most 128 tools plus one response format each receive an independent\n // 4,096-node/1 MiB source and wire allowance (129 MiB maximum per pass).\n if (body.tools) {\n for (let index = 0; index < body.tools.length && index < MAX_STREAM_TOOL_CALLS; index += 1) {\n const owner = ownSerializedParserObject(body.tools, String(index));\n const source = initial.tools?.[index];\n if (owner && source) {\n originalToolOwners.set(owner, source);\n const originalFunction = ownSerializedParserObject(source, 'function');\n if (originalFunction) {\n rememberSerializedParserSchema(originalSchemaSignatures, source, originalFunction, 'parameters');\n }\n }\n }\n }\n if (initial.response_format) {\n rememberSerializedParserSchema(originalSchemaSignatures, initial.response_format, initial.response_format, 'json_schema');\n }\n let root;\n let tools;\n let responseFormat;\n let responseFrame;\n let frames = [];\n let toolFrames = new WeakMap();\n let actualToolOwners = new Map();\n let functionFrames = new WeakMap();\n return observeJSONRequestBody(body, {\n value(holder, key, value) {\n if (!root && key === '' && typeof value === 'object' && value !== null) {\n root = value;\n tools = undefined;\n responseFormat = undefined;\n responseFrame = undefined;\n frames = [];\n toolFrames = new WeakMap();\n actualToolOwners = new Map();\n functionFrames = new WeakMap();\n return;\n }\n if (holder === root && key === 'response_format') {\n if (typeof value === 'object' && value !== null) {\n responseFormat = value;\n const owner = ownSerializedParserObject(holder, key);\n responseFrame = {\n source: owner === body.response_format ? initial.response_format : undefined,\n schemaMatches: false,\n };\n }\n return;\n }\n if (holder === root && key === 'tools') {\n if (Array.isArray(value)) {\n tools = new Proxy(value, {\n get(target, property) {\n // SAFETY: Proxy property values may be arbitrary; unknown preserves that uncertainty before the property-specific checks below.\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys with the original target as accessor receiver.\n const actual = Reflect.get(target, property, target);\n if (typeof property === 'string') {\n const index = Number(property);\n if (Number.isSafeInteger(index) &&\n index >= 0 &&\n index < MAX_STREAM_TOOL_CALLS &&\n String(index) === property) {\n actualToolOwners.set(index, typeof actual === 'object' && actual !== null ? actual : undefined);\n }\n }\n return actual;\n },\n });\n return tools;\n }\n return;\n }\n if (holder === tools) {\n const index = Number(key);\n if (!Number.isSafeInteger(index) ||\n index < 0 ||\n index >= MAX_STREAM_TOOL_CALLS ||\n typeof value !== 'object' ||\n value === null) {\n return;\n }\n const owner = actualToolOwners.get(index);\n const source = owner ? originalToolOwners.get(owner) : undefined;\n const frame = { source };\n frames[index] = frame;\n toolFrames.set(value, frame);\n return;\n }\n const tool = toolFrames.get(holder);\n if (tool) {\n if (key === 'type' && typeof value === 'string') {\n tool.type = value;\n }\n else if (key === 'function' && typeof value === 'object' && value !== null) {\n const fn = { source: tool.source, schemaMatches: false };\n tool.function = fn;\n functionFrames.set(value, fn);\n }\n return;\n }\n if (holder === responseFormat && responseFrame) {\n if (key === 'type' && typeof value === 'string') {\n responseFrame.type = value;\n }\n else if (key === 'json_schema') {\n responseFrame.schemaMatches = hasMatchingSerializedParserSchema(originalSchemaSignatures, responseFrame.source, holder, key, value);\n }\n return;\n }\n const fn = functionFrames.get(holder);\n if (fn) {\n if (key === 'name' && typeof value === 'string') {\n fn.name = value;\n }\n else if (key === 'strict' && typeof value === 'boolean') {\n fn.strict = value;\n }\n else if (key === 'parameters') {\n fn.schemaMatches = hasMatchingSerializedParserSchema(originalSchemaSignatures, fn.source, holder, key, value);\n }\n }\n return undefined;\n },\n complete() {\n if (!root) {\n return;\n }\n const snapshot = cloneParserConfigObject(initial);\n if (tools) {\n const serializedTools = [];\n for (let index = 0; index < frames.length; index += 1) {\n const frame = frames[index];\n if (frame) {\n serializedTools[index] = snapshotSerializedParserTool(frame);\n }\n }\n snapshot.tools = serializedTools;\n }\n else {\n delete snapshot.tools;\n }\n if (responseFrame) {\n snapshot.response_format = snapshotSerializedResponseFormat(responseFrame);\n }\n else {\n delete snapshot.response_format;\n }\n update(snapshot);\n root = undefined;\n tools = undefined;\n responseFormat = undefined;\n responseFrame = undefined;\n frames = [];\n toolFrames = new WeakMap();\n actualToolOwners = new Map();\n functionFrames = new WeakMap();\n },\n });\n}\n/** Streams chat completion chunks while accumulating snapshots, parsed output, and events. */\nexport class ChatCompletionStream extends AbstractChatCompletionRunner {\n /** Creates an unstarted stream, retaining request parameters for structured-output parsing. */\n constructor(params) {\n super();\n _ChatCompletionStream_instances.add(this);\n _ChatCompletionStream_params.set(this, void 0);\n _ChatCompletionStream_rejectsUnfinishedTurns.set(this, false);\n _ChatCompletionStream_audioDoneChoiceIndexes.set(this, void 0);\n _ChatCompletionStream_choiceEventStates.set(this, void 0);\n _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);\n _ChatCompletionStream_hasAutoParseableTool.set(this, void 0);\n _ChatCompletionStream_partialJSONParseBudget.set(this, void 0);\n __classPrivateFieldSet(this, _ChatCompletionStream_params, params, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_audioDoneChoiceIndexes, new Set(), \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_hasAutoParseableTool, false, \"f\");\n const tools = params?.tools;\n const lengthDescriptor = tools && Object.getOwnPropertyDescriptor(tools, 'length');\n const length = lengthDescriptor && 'value' in lengthDescriptor ? lengthDescriptor.value : undefined;\n if (tools && typeof length === 'number' && Number.isSafeInteger(length) && length >= 0) {\n for (let index = 0; index < Math.min(length, MAX_STREAM_TOOL_CALLS); index += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(tools, String(index));\n if (!descriptor || !('value' in descriptor)) {\n continue;\n }\n // SAFETY: The descriptor is read from the typed request tools array and checked as an own data property before accessing the tool.\n const tool = descriptor.value;\n if (isChatCompletionFunctionTool(tool) &&\n (isAutoParsableTool(tool) || tool.function.strict === true)) {\n __classPrivateFieldSet(this, _ChatCompletionStream_hasAutoParseableTool, true, \"f\");\n break;\n }\n }\n }\n __classPrivateFieldSet(this, _ChatCompletionStream_partialJSONParseBudget, { bytes: 0, fragments: 0, work: 0 }, \"f\");\n }\n /** The latest accumulated completion, or `undefined` before a chunk arrives or after finalization. */\n get currentChatCompletionSnapshot() {\n return __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Original input messages are not included in the serialized stream. Tool-result\n * messages explicitly serialized by a streaming tool runner are replayed.\n */\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n /** Starts a streaming chat completion request and returns its event-driven helper. */\n static createChatCompletion(client, params, options) {\n // SAFETY: The runner forces stream: true when sending this request; the same parameters retain the caller's parsing configuration.\n const runner = new ChatCompletionStream(params);\n runner._run(() => runner._runChatCompletion(client, { ...params, stream: true }, { ...options, __metadata: { ...options?.__metadata, helperMethod: 'stream' } }));\n return runner;\n }\n /** Rejects unfinished turns before tool callbacks while preserving ordinary stream and replay behavior. */\n _runTools(client, params, runner, options) {\n __classPrivateFieldSet(this, _ChatCompletionStream_rejectsUnfinishedTurns, true, \"f\");\n return super._runTools(client, params, runner, options);\n }\n async _createChatCompletion(client, params, options) {\n this._listenForAbort(options?.signal);\n const requestParams = { ...params, stream: true };\n __classPrivateFieldSet(this, _ChatCompletionStream_params, requestParams, \"f\");\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n const parserParams = snapshotChatCompletionParserParams(requestParams);\n __classPrivateFieldSet(this, _ChatCompletionStream_params, parserParams, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_hasAutoParseableTool, parserParams.tools?.some((tool) => isChatCompletionFunctionTool(tool) && (isAutoParsableTool(tool) || tool.function.strict === true)) ?? false, \"f\");\n const stopObserving = requestParams.tools || requestParams.response_format\n ? observeSerializedChatCompletionParserParams(requestParams, parserParams, (serialized) => {\n __classPrivateFieldSet(this, _ChatCompletionStream_params, serialized, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_hasAutoParseableTool, serialized.tools?.some((tool) => isChatCompletionFunctionTool(tool) &&\n (isAutoParsableTool(tool) || tool.function.strict === true)) ?? false, \"f\");\n })\n : undefined;\n const stream = await client.chat.completions\n .create(requestParams, {\n ...options,\n signal: this.controller.signal,\n })\n .finally(stopObserving);\n this._connected();\n for await (const chunk of stream) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n }\n if (stream.controller.signal?.aborted) {\n throw this._userAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n async _fromReadableStream(readableStream, options) {\n this._listenForAbort(options?.signal);\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n let chatId;\n for await (const item of stream) {\n if ('error' in item && hasOwn(item, 'error') && typeof item.error === 'object' && item.error !== null) {\n throw new APIError(undefined, item.error, undefined, undefined);\n }\n if (isChatCompletionReadableStreamMessage(item)) {\n const message = getChatCompletionReadableStreamMessage(item);\n if (__classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\")) {\n const toolCalls = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\").choices[0]?.message.tool_calls;\n for (const [index, id] of message.tool_call_ids?.entries() ?? []) {\n const toolCall = toolCalls?.[index];\n if (toolCall && id) {\n toolCall.id = id;\n }\n }\n this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n chatId = undefined;\n }\n this._addMessage(message.message);\n continue;\n }\n const chunk = item;\n if (chatId && chunk.id && chatId !== chunk.id) {\n // A new request has been made.\n this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n if (chunk.id) {\n chatId = chunk.id;\n }\n }\n if (stream.controller.signal?.aborted) {\n throw this._userAbortError();\n }\n if (__classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\")) {\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n const lastChatCompletion = this._chatCompletions[this._chatCompletions.length - 1];\n if (lastChatCompletion) {\n return lastChatCompletion;\n }\n throw new OpenAIError(`request ended without sending any chunks`);\n }\n /** Iterates over raw API chunks; stopping iteration early aborts the underlying request. */\n [(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_rejectsUnfinishedTurns = 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 _ChatCompletionStream_beginRequest() {\n if (this.ended) {\n return;\n }\n __classPrivateFieldSet(this, _ChatCompletionStream_audioDoneChoiceIndexes, new Set(), \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_partialJSONParseBudget, { bytes: 0, fragments: 0, work: 0 }, \"f\");\n }, _ChatCompletionStream_getChoiceEventState = function _ChatCompletionStream_getChoiceEventState(choice) {\n let state = __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index];\n if (state) {\n return state;\n }\n state = {\n content_done: false,\n content_parse_state: undefined,\n refusal_done: false,\n logprobs_content_done: false,\n logprobs_refusal_done: false,\n done_tool_calls: new Set(),\n current_tool_call_index: null,\n tool_call_parse_states: new Map(),\n tool_call_identities: new Map(),\n };\n __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index] = state;\n return state;\n }, _ChatCompletionStream_addChunk = function _ChatCompletionStream_addChunk(chunk) {\n if (this.ended) {\n return;\n }\n const capturedChoiceFrames = new WeakMap();\n const completion = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_accumulateChatCompletion).call(this, chunk, capturedChoiceFrames);\n this._emit('chunk', chunk, completion);\n for (const choice of chunk.choices) {\n const capturedChoice = capturedChoiceFrames.get(choice);\n const choiceSnapshot = completion.choices[capturedChoice?.index ?? choice.index];\n const capturedToolCalls = capturedChoice?.tool_calls ?? [];\n const { delta } = choice;\n const structuredResponse = isParseableResponseFormat(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format);\n const boundedSnapshot = structuredResponse || __classPrivateFieldGet(this, _ChatCompletionStream_hasAutoParseableTool, \"f\");\n const messageSnapshot = boundedSnapshot\n ? captureStructuredMessageSnapshot(choiceSnapshot)\n : choiceSnapshot.message;\n const refusal = boundedSnapshot\n ? captureStructuredJSONSnapshot(messageSnapshot, 'refusal')\n : messageSnapshot.refusal;\n const parseableContent = !refusal && structuredResponse;\n const messageContent = parseableContent\n ? captureStructuredJSONSnapshot(messageSnapshot, 'content')\n : messageSnapshot.content;\n if (delta?.content != null && messageSnapshot.role === 'assistant' && messageContent) {\n this._emit('content', delta.content, messageContent);\n this._emit('content.delta', {\n delta: delta.content,\n snapshot: messageContent,\n parsed: messageSnapshot.parsed,\n });\n }\n if (delta?.refusal != null && messageSnapshot.role === 'assistant' && refusal) {\n this._emit('refusal.delta', {\n delta: delta.refusal,\n snapshot: refusal,\n });\n }\n if (choice.logprobs?.content != null && messageSnapshot.role === 'assistant') {\n this._emit('logprobs.content.delta', {\n content: choice.logprobs?.content,\n snapshot: choiceSnapshot.logprobs?.content ?? [],\n });\n }\n if (choice.logprobs?.refusal != null && messageSnapshot.role === 'assistant') {\n this._emit('logprobs.refusal.delta', {\n refusal: choice.logprobs?.refusal,\n snapshot: choiceSnapshot.logprobs?.refusal ?? [],\n });\n }\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.finish_reason) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n for (const toolCall of capturedToolCalls) {\n if (state.current_tool_call_index !== toolCall.index) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n // new tool call started, the previous one is done\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n state.current_tool_call_index = toolCall.index;\n }\n for (const toolCallDelta of capturedToolCalls) {\n const toolCallSnapshot = messageSnapshot.tool_calls?.[toolCallDelta.index];\n if (!toolCallSnapshot?.type) {\n continue;\n }\n if (toolCallSnapshot.type === 'function') {\n const boundIdentity = state.tool_call_identities.get(toolCallDelta.index);\n let argumentsSnapshot;\n if (boundIdentity?.parseable) {\n const capturedArguments = captureStructuredJSONSnapshot(toolCallSnapshot.function, 'arguments');\n if (typeof capturedArguments !== 'string') {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n argumentsSnapshot = capturedArguments;\n }\n else {\n argumentsSnapshot = toolCallSnapshot.function.arguments;\n }\n this._emit('tool_calls.function.arguments.delta', {\n name: toolCallSnapshot.function.name,\n index: toolCallDelta.index,\n arguments: argumentsSnapshot,\n parsed_arguments: toolCallSnapshot.function.parsed_arguments,\n arguments_delta: toolCallDelta.arguments_delta,\n });\n }\n else if (toolCallSnapshot.type !== 'custom') {\n assertNever(toolCallSnapshot);\n }\n }\n }\n }, _ChatCompletionStream_emitToolCallDoneEvent = function _ChatCompletionStream_emitToolCallDoneEvent(choiceSnapshot, toolCallIndex) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (state.done_tool_calls.has(toolCallIndex)) {\n // we've already fired the done event\n return;\n }\n const messageSnapshot = __classPrivateFieldGet(this, _ChatCompletionStream_hasAutoParseableTool, \"f\")\n ? captureStructuredMessageSnapshot(choiceSnapshot)\n : choiceSnapshot.message;\n const toolCallSnapshot = messageSnapshot.tool_calls?.[toolCallIndex];\n if (!toolCallSnapshot) {\n throw new Error('no tool call snapshot');\n }\n const boundIdentity = state.tool_call_identities.get(toolCallIndex);\n if (boundIdentity) {\n assertBoundToolCallIdentity(toolCallSnapshot, boundIdentity);\n }\n if (!toolCallSnapshot.type) {\n throw new Error('tool call snapshot missing `type`');\n }\n if (toolCallSnapshot.type === 'function') {\n // SAFETY: The find predicate verifies the function-tool discriminator before matching its name; the cast carries that refinement through find.\n const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.tools?.find((tool) => isChatCompletionFunctionTool(tool) && tool.function.name === toolCallSnapshot.function.name); // TS doesn't narrow based on isChatCompletionTool\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The initial null is replaced with an arbitrary tool-parser result after snapshot validation.\n let parsedArguments = null;\n const parseable = isAutoParsableTool(inputTool) || inputTool?.function.strict === true;\n let argumentsSnapshot;\n if (parseable) {\n if (__classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\")) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_validateStructuredSnapshots).call(this, __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\"));\n }\n const capturedArguments = captureStructuredJSONSnapshot(toolCallSnapshot.function, 'arguments');\n if (typeof capturedArguments !== 'string') {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n argumentsSnapshot = capturedArguments;\n }\n else {\n argumentsSnapshot = toolCallSnapshot.function.arguments;\n }\n if (isAutoParsableTool(inputTool)) {\n parsedArguments = inputTool.$parseRaw(validateStructuredJSONSnapshot(argumentsSnapshot));\n }\n else if (inputTool?.function.strict) {\n parsedArguments = parseResponseFormatContent({ type: 'json_schema', $parseRaw: undefined }, validateStructuredJSONSnapshot(argumentsSnapshot));\n }\n if (choiceSnapshot.finish_reason) {\n state.done_tool_calls.add(toolCallIndex);\n }\n this._emit('tool_calls.function.arguments.done', {\n name: toolCallSnapshot.function.name,\n index: toolCallIndex,\n arguments: argumentsSnapshot,\n parsed_arguments: parsedArguments,\n });\n }\n else if (toolCallSnapshot.type !== 'custom') {\n assertNever(toolCallSnapshot);\n }\n }, _ChatCompletionStream_emitContentDoneEvents = function _ChatCompletionStream_emitContentDoneEvents(choiceSnapshot) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n const structuredResponse = isParseableResponseFormat(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format);\n const boundedSnapshot = structuredResponse || __classPrivateFieldGet(this, _ChatCompletionStream_hasAutoParseableTool, \"f\");\n const messageSnapshot = boundedSnapshot\n ? captureStructuredMessageSnapshot(choiceSnapshot)\n : choiceSnapshot.message;\n const refusal = boundedSnapshot\n ? captureStructuredJSONSnapshot(messageSnapshot, 'refusal')\n : messageSnapshot.refusal;\n const parseableContent = !refusal && structuredResponse;\n const content = parseableContent\n ? captureStructuredJSONSnapshot(messageSnapshot, 'content')\n : messageSnapshot.content;\n if (content != null &&\n (content !== '' ||\n (!refusal && !messageSnapshot.tool_calls?.length && !messageSnapshot.function_call)) &&\n !state.content_done) {\n if (parseableContent && __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\")) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_validateStructuredSnapshots).call(this, __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\"));\n }\n state.content_done = true;\n this._emit('content.done', {\n content,\n parsed: refusal\n ? null\n : parseResponseFormatContent(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format, parseableContent ? validateStructuredJSONSnapshot(content) : content),\n });\n }\n if (refusal && !state.refusal_done) {\n state.refusal_done = true;\n this._emit('refusal.done', { refusal });\n }\n if (choiceSnapshot.logprobs?.content && !state.logprobs_content_done) {\n state.logprobs_content_done = true;\n this._emit('logprobs.content.done', { content: choiceSnapshot.logprobs.content });\n }\n if (choiceSnapshot.logprobs?.refusal && !state.logprobs_refusal_done) {\n state.logprobs_refusal_done = true;\n this._emit('logprobs.refusal.done', { refusal: choiceSnapshot.logprobs.refusal });\n }\n }, _ChatCompletionStream_validateStructuredSnapshots = function _ChatCompletionStream_validateStructuredSnapshots(snapshot) {\n const finalJSONBudget = { bytes: 0, fragments: 0, work: 0 };\n const parseableContent = isParseableResponseFormat(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format);\n const validatedMessages = new WeakMap();\n const choices = captureSnapshotArray(snapshot, 'choices', MAX_STREAM_CHOICES, 'choice');\n if (!choices) {\n throw new OpenAIError('Chat completion stream contains an unsafe snapshot choice collection');\n }\n for (let choiceIndex = 0; choiceIndex < choices.length; choiceIndex += 1) {\n const choice = captureSnapshotArrayItem(choices, choiceIndex);\n if (!choice) {\n continue;\n }\n const message = captureStructuredMessageSnapshot(choice);\n const refusal = captureStructuredJSONSnapshot(message, 'refusal');\n const content = captureStructuredJSONSnapshot(message, 'content');\n const validatedTools = new Map();\n const toolCalls = captureSnapshotArray(message, 'tool_calls', MAX_STREAM_TOOL_CALLS, 'tool-call');\n validatedMessages.set(choice, Object.freeze({\n message,\n content,\n refusal,\n toolCallCollection: toolCalls,\n toolCalls: validatedTools,\n }));\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index];\n if (parseableContent && !refusal && typeof content === 'string') {\n validateStructuredJSONSnapshot(content, finalJSONBudget, __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\"));\n }\n for (const [index, identity] of state?.tool_call_identities ?? []) {\n const toolCall = toolCalls && captureSnapshotArrayItem(toolCalls, index);\n if (!toolCall) {\n throw new OpenAIError('Chat completion stream contains a changed tool call identity');\n }\n assertBoundToolCallIdentity(toolCall, identity);\n }\n if (!__classPrivateFieldGet(this, _ChatCompletionStream_hasAutoParseableTool, \"f\")) {\n continue;\n }\n for (let toolCallIndex = 0; toolCallIndex < (toolCalls?.length ?? 0); toolCallIndex += 1) {\n const toolCall = captureSnapshotArrayItem(toolCalls, toolCallIndex);\n if (!toolCall) {\n continue;\n }\n const identity = ownFunctionToolIdentity(toolCall);\n if (!identity) {\n const type = Object.getOwnPropertyDescriptor(toolCall, 'type');\n if (type && !('value' in type)) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n if (type?.value !== 'function') {\n continue;\n }\n const fn = Object.getOwnPropertyDescriptor(toolCall, 'function');\n if (fn && !('value' in fn)) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n if (fn && typeof fn.value === 'object' && fn.value !== null) {\n const name = Object.getOwnPropertyDescriptor(fn.value, 'name');\n if (name && !('value' in name)) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n }\n continue;\n }\n if (!shouldParseToolCall(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), {\n type: identity.type,\n function: { name: identity.name },\n })) {\n continue;\n }\n const descriptor = Object.getOwnPropertyDescriptor(toolCall, 'function');\n if (!descriptor || !('value' in descriptor)) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n // SAFETY: The tool-call function is captured through an own data descriptor; its fields are subsequently checked by the structured snapshot reader.\n const fn = descriptor.value;\n const argumentsSnapshot = captureStructuredJSONSnapshot(fn, 'arguments');\n if (typeof argumentsSnapshot !== 'string') {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n validateStructuredJSONSnapshot(argumentsSnapshot, finalJSONBudget, __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\"));\n validatedTools.set(toolCallIndex, Object.freeze({\n tool: toolCall,\n function: fn,\n type: identity.type,\n name: identity.name,\n arguments: argumentsSnapshot,\n }));\n }\n }\n return validatedMessages;\n }, _ChatCompletionStream_endRequest = function _ChatCompletionStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any chunks`);\n }\n const validatedMessages = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_validateStructuredSnapshots).call(this, snapshot);\n const audioDoneChoiceIndexes = __classPrivateFieldGet(this, _ChatCompletionStream_audioDoneChoiceIndexes, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_audioDoneChoiceIndexes, new Set(), \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n return finalizeChatCompletion(snapshot, __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), audioDoneChoiceIndexes, validatedMessages);\n }, _ChatCompletionStream_accumulateChatCompletion = function _ChatCompletionStream_accumulateChatCompletion(chunk, capturedChoiceFrames) {\n var _a, _b, _c, _d, _e;\n let snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n const { choices, obfuscation: _obfuscation, ...rest } = chunk;\n if (!snapshot) {\n const newSnapshot = {\n ...rest,\n choices: [],\n };\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, newSnapshot, \"f\");\n snapshot = newSnapshot;\n }\n else if (chunk.id) {\n assignOwnProperties(snapshot, rest);\n }\n const requestedChoiceCount = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.n;\n const maxChoices = typeof requestedChoiceCount === 'number' &&\n Number.isSafeInteger(requestedChoiceCount) &&\n requestedChoiceCount > 0\n ? Math.min(requestedChoiceCount, MAX_STREAM_CHOICES)\n : MAX_STREAM_CHOICES;\n for (const chunkChoice of chunk.choices) {\n const { delta, finish_reason, index, logprobs = null, ...other } = chunkChoice;\n const capturedToolCalls = [];\n capturedChoiceFrames.set(chunkChoice, Object.freeze({ index, tool_calls: capturedToolCalls }));\n if (!Number.isSafeInteger(index) || index < 0 || index >= maxChoices) {\n throw new OpenAIError(`Chat completion stream contains an invalid choice index: ${index}`);\n }\n let choice = snapshot.choices[index];\n if (!choice) {\n const newChoice = { finish_reason, index, message: {}, logprobs: null, ...other };\n snapshot.choices[index] = newChoice;\n choice = newChoice;\n }\n if (isParseableResponseFormat(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format) || __classPrivateFieldGet(this, _ChatCompletionStream_hasAutoParseableTool, \"f\")) {\n captureStructuredJSONSnapshot(captureStructuredMessageSnapshot(choice), 'refusal');\n }\n if (logprobs) {\n if (choice.logprobs) {\n const { content, refusal, ...rest } = logprobs;\n assertIsEmpty(rest);\n assignOwnProperties(choice.logprobs, rest);\n if (content) {\n (_a = choice.logprobs).content ?? (_a.content = []);\n choice.logprobs.content.push(...content);\n }\n if (refusal) {\n (_b = choice.logprobs).refusal ?? (_b.refusal = []);\n choice.logprobs.refusal.push(...refusal);\n }\n }\n else {\n choice.logprobs = { ...logprobs };\n if (logprobs.content) {\n choice.logprobs.content = [...logprobs.content];\n }\n if (logprobs.refusal) {\n choice.logprobs.refusal = [...logprobs.refusal];\n }\n }\n }\n if (finish_reason) {\n choice.finish_reason = finish_reason;\n if (__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\") && (__classPrivateFieldGet(this, _ChatCompletionStream_rejectsUnfinishedTurns, \"f\") || hasAutoParseableInput(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")))) {\n if (finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n }\n }\n assignOwnProperties(choice, other);\n if (!delta) {\n Object.freeze(capturedToolCalls);\n continue;\n } // Shouldn't happen; just in case.\n __classPrivateFieldGet(this, _ChatCompletionStream_audioDoneChoiceIndexes, \"f\").delete(index);\n // SAFETY: Streaming audio fields arrive incrementally even though the generated delta type omits them; each present field is merged below.\n const { audio, content, refusal, function_call, role, ...capturedDeltaFields } = delta;\n const { tool_calls: capturedToolCallDelta, ...rest } = capturedDeltaFields;\n const tool_calls = hasOwn(capturedDeltaFields, 'tool_calls') ? capturedToolCallDelta : delta.tool_calls;\n assertIsEmpty(rest);\n assignOwnProperties(choice.message, rest);\n if (audio?.expires_at != null &&\n audio.id == null &&\n audio.data == null &&\n audio.transcript == null &&\n content == null &&\n refusal == null &&\n function_call == null &&\n role == null &&\n tool_calls == null &&\n Object.keys(rest).length === 0) {\n __classPrivateFieldGet(this, _ChatCompletionStream_audioDoneChoiceIndexes, \"f\").add(index);\n }\n if (refusal) {\n choice.message.refusal = (choice.message.refusal || '') + refusal;\n }\n if (role) {\n choice.message.role = role;\n }\n if (audio) {\n const audioSnapshot = ((_c = choice.message).audio ?? (_c.audio = {}));\n if (audio.id != null) {\n audioSnapshot.id = audio.id;\n }\n if (audio.data != null) {\n audioSnapshot.data = (audioSnapshot.data ?? '') + audio.data;\n }\n if (audio.transcript != null) {\n audioSnapshot.transcript = (audioSnapshot.transcript ?? '') + audio.transcript;\n }\n if (audio.expires_at != null) {\n audioSnapshot.expires_at = audio.expires_at;\n }\n }\n if (function_call) {\n if (choice.message.function_call) {\n if (function_call.name) {\n choice.message.function_call.name = function_call.name;\n }\n if (function_call.arguments) {\n (_d = choice.message.function_call).arguments ?? (_d.arguments = '');\n choice.message.function_call.arguments += function_call.arguments;\n }\n }\n else {\n choice.message.function_call = function_call;\n }\n }\n if (content != null) {\n if (!choice.message.refusal && isParseableResponseFormat(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format)) {\n const eventState = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choice);\n const parseState = (eventState.content_parse_state ?? (eventState.content_parse_state = createPartialJSONParseState()));\n const shouldParse = recordPartialJSONFragment(parseState, __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\"), content);\n choice.message.content = (captureStructuredJSONSnapshot(choice.message, 'content') || '') + content;\n // The partial parser does not accept whitespace-only input. Once output\n // grows, coalesce prefix reparses while preserving every raw snapshot.\n if (!parseState.has_non_whitespace) {\n choice.message.parsed = null;\n }\n else if (shouldParse && reservePartialJSONParse(parseState, __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\"))) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_validateStructuredSnapshots).call(this, snapshot);\n choice.message.parsed = parseStructuredStreamingJSON(validateStructuredJSONSnapshot(choice.message.content));\n }\n else if (content.length > 0) {\n choice.message.parsed = null;\n }\n }\n else {\n choice.message.content = (choice.message.content || '') + content;\n }\n }\n if (tool_calls) {\n // Tool calls are built up across chunks, so while the stream is in progress the\n // entries are only partially filled in; they match `ChatCompletionSnapshot.Choice.Message.ToolCall`\n // once every delta for them has been accumulated.\n // SAFETY: This SDK-owned collection holds partial tool calls during accumulation; finalization checks required fields before exposing completed calls.\n const toolCallSnapshots = ((_e = choice.message).tool_calls ?? (_e.tool_calls = []));\n for (const toolCallDelta of tool_calls) {\n const { index, id, type, function: fn, custom, ...rest } = toolCallDelta;\n if (!Number.isSafeInteger(index) || index < 0 || index >= MAX_STREAM_TOOL_CALLS) {\n throw new OpenAIError(`Chat completion stream contains an invalid tool call index: ${index}`);\n }\n let argumentsDelta = '';\n const tool_call = (toolCallSnapshots[index] ?? (toolCallSnapshots[index] = {}));\n const functionName = fn?.name;\n const eventState = __classPrivateFieldGet(this, _ChatCompletionStream_hasAutoParseableTool, \"f\") ? __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choice) : undefined;\n let boundIdentity = eventState?.tool_call_identities.get(index);\n if (boundIdentity) {\n assertBoundToolCallIdentity(tool_call, boundIdentity);\n if ((type !== undefined && type !== boundIdentity.type) ||\n (functionName !== undefined && functionName !== boundIdentity.name)) {\n throw new OpenAIError('Chat completion stream contains a changed tool call identity');\n }\n }\n assignOwnProperties(tool_call, rest);\n if (id) {\n tool_call.id = id;\n }\n if (type) {\n tool_call.type = type;\n }\n if (custom) {\n const customSnapshot = (tool_call.custom ?? (tool_call.custom = { name: custom.name ?? '', input: '' }));\n if (custom.name) {\n customSnapshot.name = custom.name;\n }\n if (custom.input) {\n customSnapshot.input += custom.input;\n }\n }\n if (fn) {\n const functionSnapshot = (tool_call.function ?? (tool_call.function = { name: functionName ?? '', arguments: '' }));\n if (functionName) {\n functionSnapshot.name = functionName;\n }\n if (eventState && !boundIdentity) {\n const identity = ownFunctionToolIdentity(tool_call);\n const configuredTool = identity &&\n __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.tools?.find((tool) => isChatCompletionFunctionTool(tool) && tool.function.name === identity.name);\n if (identity) {\n boundIdentity = {\n ...identity,\n parseable: configuredTool !== undefined &&\n shouldParseToolCall(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), {\n type: identity.type,\n function: { name: identity.name },\n }),\n };\n eventState.tool_call_identities.set(index, boundIdentity);\n if (!boundIdentity.parseable) {\n const provisionalState = eventState.tool_call_parse_states.get(index);\n if (provisionalState) {\n __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\").bytes -= provisionalState.bytes;\n __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\").fragments -= provisionalState.fragments;\n __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\").work -= provisionalState.work;\n eventState.tool_call_parse_states.delete(index);\n }\n }\n }\n }\n const argumentFragment = fn.arguments;\n if (argumentFragment != null) {\n argumentsDelta = argumentFragment;\n if (eventState && boundIdentity?.parseable !== false) {\n let parseState = eventState.tool_call_parse_states.get(index);\n if (!parseState) {\n parseState = createPartialJSONParseState();\n eventState.tool_call_parse_states.set(index, parseState);\n }\n const shouldParse = recordPartialJSONFragment(parseState, __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\"), argumentFragment);\n const previousArguments = captureStructuredJSONSnapshot(functionSnapshot, 'arguments');\n if (typeof previousArguments !== 'string') {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n functionSnapshot.arguments = previousArguments + argumentFragment;\n if (shouldParse &&\n boundIdentity?.parseable === true &&\n reservePartialJSONParse(parseState, __classPrivateFieldGet(this, _ChatCompletionStream_partialJSONParseBudget, \"f\"))) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_validateStructuredSnapshots).call(this, snapshot);\n functionSnapshot.parsed_arguments = parseStructuredStreamingJSON(validateStructuredJSONSnapshot(functionSnapshot.arguments));\n }\n else if (argumentFragment.length > 0 && hasOwn(functionSnapshot, 'parsed_arguments')) {\n functionSnapshot.parsed_arguments = undefined;\n }\n }\n else {\n functionSnapshot.arguments += argumentFragment;\n }\n }\n }\n capturedToolCalls.push(Object.freeze({ index, arguments_delta: argumentsDelta }));\n }\n }\n Object.freeze(capturedToolCalls);\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n return this._createIterator((push) => {\n const onChunk = (chunk) => push(chunk);\n this.on('chunk', onChunk);\n return () => this.off('chunk', onChunk);\n }, { onReturn: () => this.abort() });\n }\n /** Serializes raw completion chunks into a readable stream for transfer to another runtime. */\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\nfunction finalizeChatCompletion(snapshot, params, audioDoneChoiceIndexes, validatedMessages) {\n const { id, choices, created, model, system_fingerprint, ...rest } = snapshot;\n const completion = {\n ...rest,\n id,\n choices: mapCapturedSnapshotArray(choices, MAX_STREAM_CHOICES, 'choice', (choice) => {\n const validated = validatedMessages.get(choice);\n if (!validated) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n const stableChoice = new Proxy(choice, {\n get(target, property, receiver) {\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys and the original accessor receiver.\n return property === 'message' ? validated.message : Reflect.get(target, property, receiver);\n },\n });\n const { message: sourceMessage, finish_reason, index, logprobs, ...choiceRest } = stableChoice;\n const message = new Proxy(sourceMessage, {\n get(target, property, receiver) {\n if (property === 'content') {\n return validated.content;\n }\n if (property === 'refusal') {\n return validated.refusal;\n }\n if (property === 'tool_calls') {\n return validated.toolCallCollection;\n }\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys and the original accessor receiver.\n return Reflect.get(target, property, receiver);\n },\n });\n const { content = null, function_call, tool_calls, audio, ...messageRest } = message;\n // Audio streams can end with an expires_at-only chunk after the\n // generated audio, without a separate finish_reason.\n const finishReason = finish_reason ?? (audioDoneChoiceIndexes.has(index) && isCompleteAudio(audio) ? 'stop' : null);\n if (!finishReason) {\n throw new OpenAIError(`missing finish_reason for choice ${index}`);\n }\n // SAFETY: The completed API response contract supplies the audio fields; this preserves the existing pass-through behavior at finalization.\n const audioResponse = audio ? { audio: audio } : {};\n // SAFETY: The API completion contract uses assistant role; retaining the wire role preserves existing behavior without adding runtime rejection.\n const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.\n if (!role) {\n throw new OpenAIError(`missing role for choice ${index}`);\n }\n if (function_call) {\n const { arguments: args, name } = function_call;\n if (args == null) {\n throw new OpenAIError(`missing function_call.arguments for choice ${index}`);\n }\n if (!name) {\n throw new OpenAIError(`missing function_call.name for choice ${index}`);\n }\n return {\n ...choiceRest,\n message: {\n ...audioResponse,\n content,\n function_call: { arguments: args, name },\n role,\n refusal: message.refusal ?? null,\n },\n finish_reason: finishReason,\n index,\n logprobs,\n };\n }\n if (tool_calls) {\n return {\n ...choiceRest,\n index,\n finish_reason: finishReason,\n logprobs,\n message: {\n ...messageRest,\n ...audioResponse,\n role,\n content,\n refusal: message.refusal ?? null,\n tool_calls: mapCapturedSnapshotArray(tool_calls, MAX_STREAM_TOOL_CALLS, 'tool-call', (tool_call, i) => {\n const captured = validated.toolCalls.get(i);\n if (!captured) {\n const identity = ownFunctionToolIdentity(tool_call);\n if (identity &&\n shouldParseToolCall(params, {\n type: identity.type,\n function: { name: identity.name },\n })) {\n throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');\n }\n }\n if (captured && captured.tool !== tool_call) {\n throw new OpenAIError('Chat completion stream contains a changed tool call identity');\n }\n const stableFunction = captured &&\n new Proxy(captured.function, {\n get(target, property, receiver) {\n if (property === 'arguments') {\n return captured.arguments;\n }\n if (property === 'name') {\n return captured.name;\n }\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys and the original accessor receiver.\n return Reflect.get(target, property, receiver);\n },\n });\n const stableTool = captured && stableFunction\n ? new Proxy(tool_call, {\n get(target, property, receiver) {\n if (property === 'type') {\n return captured.type;\n }\n if (property === 'function') {\n return stableFunction;\n }\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys and the original accessor receiver.\n return Reflect.get(target, property, receiver);\n },\n })\n : tool_call;\n if (stableTool.type == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].type`);\n }\n if (stableTool.type === 'custom') {\n const { custom, type, id, ...toolRest } = stableTool;\n const { input = '', name, ...customRest } = custom || {};\n if (name == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].custom.name`);\n }\n return {\n ...toolRest,\n id: id || `call_${uuid4()}`,\n type,\n custom: { ...customRest, name, input },\n };\n }\n const { function: fn, type, id, ...toolRest } = stableTool;\n const { arguments: args, name, ...fnRest } = fn || {};\n if (name == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name`);\n }\n if (args == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments`);\n }\n return {\n ...toolRest,\n id: id || `call_${uuid4()}`,\n type,\n function: { ...fnRest, name, arguments: args },\n };\n }),\n },\n };\n }\n return {\n ...choiceRest,\n message: { ...messageRest, ...audioResponse, content, role, refusal: message.refusal ?? null },\n finish_reason: finishReason,\n index,\n logprobs,\n };\n }),\n created,\n model,\n object: 'chat.completion',\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(system_fingerprint ? { system_fingerprint } : {}),\n };\n return maybeParseChatCompletion(completion, params);\n}\nfunction isCompleteAudio(audio) {\n return audio?.id != null && audio.data != null && audio.transcript != null && audio.expires_at != null;\n}\n/**\n * Ensures the given argument is an empty object, useful for\n * asserting that all known properties on an object have been\n * destructured.\n */\nfunction assertIsEmpty(obj) {\n void obj;\n}\nfunction assertNever(_x) {\n return _x;\n}\n//# sourceMappingURL=ChatCompletionStream.mjs.map","import { ChatCompletionStream, makeChatCompletionReadableStreamMessageChunk } from \"./ChatCompletionStream.mjs\";\nimport { OpenAIError } from \"../error.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { isAssistantMessage, isToolMessage } from \"./chatCompletionUtils.mjs\";\n/** Executes function tools while streaming every intermediate chat completion. */\nexport class ChatCompletionStreamingRunner extends ChatCompletionStream {\n /** Restores a serialized tool run, including intermediate completions and tool-result messages. */\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStreamingRunner(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n /** Serializes completion chunks and tool-result messages for replay in another runtime. */\n toReadableStream() {\n let lastChunk;\n let toolCallIds;\n const iterator = this._createIterator((push) => {\n const onChunk = (chunk) => {\n lastChunk = chunk;\n push(chunk);\n };\n const onMessage = (message) => {\n if (isAssistantMessage(message)) {\n toolCallIds = message.tool_calls?.map((toolCall) => toolCall.id);\n return;\n }\n if (isToolMessage(message)) {\n if (!lastChunk) {\n throw new OpenAIError('cannot serialize a tool message before receiving any chunks');\n }\n push(makeChatCompletionReadableStreamMessageChunk(lastChunk, message, toolCallIds));\n toolCallIds = undefined;\n }\n };\n this.on('chunk', onChunk);\n this.on('message', onMessage);\n return () => {\n this.off('chunk', onChunk);\n this.off('message', onMessage);\n };\n }, { onReturn: () => this.abort() });\n const stream = new Stream(() => iterator, this.controller);\n return stream.toReadableStream();\n }\n /** Starts a streaming tool loop and returns its event-driven conversation runner. */\n static runTools(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(\n // @ts-expect-error TODO these types are incompatible\n params);\n const opts = {\n ...options,\n __metadata: { ...options?.__metadata, helperMethod: 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, runner, opts));\n return runner;\n }\n}\n//# sourceMappingURL=ChatCompletionStreamingRunner.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages } from \"./messages.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nimport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nimport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nimport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nimport { parseChatCompletion, validateInputTools } from \"../../../lib/parser.mjs\";\n/**\n * Given a list of messages comprising a conversation, the model will return a response.\n */\nexport class Completions extends APIResource {\n constructor() {\n super(...arguments);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body, options) {\n return this._client.post('/chat/completions', {\n body,\n ...options,\n stream: body.stream ?? false,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Get a stored chat completion. Only Chat Completions that have been created with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * const chatCompletion =\n * await client.chat.completions.retrieve('completion_id');\n * ```\n */\n retrieve(completionID, options) {\n return this._client.get(path `/chat/completions/${completionID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Modify a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be modified. Currently, the only\n * supported modification is to update the `metadata` field.\n *\n * @example\n * ```ts\n * const chatCompletion = await client.chat.completions.update(\n * 'completion_id',\n * { metadata: { foo: 'string' } },\n * );\n * ```\n */\n update(completionID, body, options) {\n return this._client.post(path `/chat/completions/${completionID}`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * List stored Chat Completions. Only Chat Completions that have been stored with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletion of client.chat.completions.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chat/completions', (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be deleted.\n *\n * @example\n * ```ts\n * const chatCompletionDeleted =\n * await client.chat.completions.delete('completion_id');\n * ```\n */\n delete(completionID, options) {\n return this._client.delete(path `/chat/completions/${completionID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n parse(body, options) {\n validateInputTools(body.tools);\n return this._client.chat.completions\n .create(body, {\n ...options,\n __metadata: { ...options?.__metadata, helperMethod: 'chat.completions.parse' },\n })\n ._thenUnwrap((completion) => parseChatCompletion(completion, body));\n }\n runTools(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner.runTools(this._client, body, options);\n }\n return ChatCompletionRunner.runTools(this._client, body, options);\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ChatCompletionStream.createChatCompletion(this._client, body, options);\n }\n}\nexport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nexport { ParsingToolFunction, } from \"../../../lib/RunnableFunction.mjs\";\nexport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nexport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nCompletions.Messages = Messages;\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CompletionsAPI from \"./completions/completions.mjs\";\nimport { Completions, } from \"./completions/completions.mjs\";\nexport class Chat extends APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nChat.Completions = Completions;\n//# sourceMappingURL=chat.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class AdminAPIKeys extends APIResource {\n /**\n * Create an organization admin API key\n *\n * @example\n * ```ts\n * const adminAPIKey =\n * await client.admin.organization.adminAPIKeys.create({\n * name: 'New Admin Key',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/organization/admin_api_keys', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieve a single organization API key\n *\n * @example\n * ```ts\n * const adminAPIKey =\n * await client.admin.organization.adminAPIKeys.retrieve(\n * 'key_id',\n * );\n * ```\n */\n retrieve(keyID, options) {\n return this._client.get(path `/organization/admin_api_keys/${keyID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * List organization API keys\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const adminAPIKey of client.admin.organization.adminAPIKeys.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/admin_api_keys', (CursorPage), {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Delete an organization admin API key\n *\n * @example\n * ```ts\n * const adminAPIKey =\n * await client.admin.organization.adminAPIKeys.delete(\n * 'key_id',\n * );\n * ```\n */\n delete(keyID, options) {\n return this._client.delete(path `/organization/admin_api_keys/${keyID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=admin-api-keys.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../core/pagination.mjs\";\n/**\n * List user actions and configuration changes within this organization.\n */\nexport class AuditLogs extends APIResource {\n /**\n * List user actions and configuration changes within this organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const auditLogListResponse of client.admin.organization.auditLogs.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/audit_logs', (ConversationCursorPage), {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=audit-logs.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, Page, } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Certificates extends APIResource {\n /**\n * Upload a certificate to the organization. This does **not** automatically\n * activate the certificate.\n *\n * Organizations can upload up to 50 certificates.\n *\n * @example\n * ```ts\n * const certificate =\n * await client.admin.organization.certificates.create({\n * certificate: 'certificate',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/organization/certificates', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get a certificate that has been uploaded to the organization.\n *\n * You can get a certificate regardless of whether it is active or not.\n *\n * @example\n * ```ts\n * const certificate =\n * await client.admin.organization.certificates.retrieve(\n * 'certificate_id',\n * );\n * ```\n */\n retrieve(certificateID, query = {}, options) {\n return this._client.get(path `/organization/certificates/${certificateID}`, {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Modify a certificate. Note that only the name can be modified.\n *\n * @example\n * ```ts\n * const certificate =\n * await client.admin.organization.certificates.update(\n * 'certificate_id',\n * );\n * ```\n */\n update(certificateID, body, options) {\n return this._client.post(path `/organization/certificates/${certificateID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * List uploaded certificates for this organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const certificateListResponse of client.admin.organization.certificates.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/certificates', (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Delete a certificate from the organization.\n *\n * The certificate must be inactive for the organization and all projects.\n *\n * @example\n * ```ts\n * const certificate =\n * await client.admin.organization.certificates.delete(\n * 'certificate_id',\n * );\n * ```\n */\n delete(certificateID, options) {\n return this._client.delete(path `/organization/certificates/${certificateID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Activate certificates at the organization level.\n *\n * You can atomically and idempotently activate up to 10 certificates at a time.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const certificateActivateResponse of client.admin.organization.certificates.activate(\n * { certificate_ids: ['cert_abc'] },\n * )) {\n * // ...\n * }\n * ```\n */\n activate(body, options) {\n return this._client.getAPIList('/organization/certificates/activate', (Page), {\n body,\n method: 'post',\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Deactivate certificates at the organization level.\n *\n * You can atomically and idempotently deactivate up to 10 certificates at a time.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const certificateDeactivateResponse of client.admin.organization.certificates.deactivate(\n * { certificate_ids: ['cert_abc'] },\n * )) {\n * // ...\n * }\n * ```\n */\n deactivate(body, options) {\n return this._client.getAPIList('/organization/certificates/deactivate', (Page), { body, method: 'post', ...options, __security: { adminAPIKeyAuth: true } });\n }\n}\n//# sourceMappingURL=certificates.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class DataRetention extends APIResource {\n /**\n * Retrieves organization data retention controls.\n *\n * @example\n * ```ts\n * const organizationDataRetention =\n * await client.admin.organization.dataRetention.retrieve();\n * ```\n */\n retrieve(options) {\n return this._client.get('/organization/data_retention', {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates organization data retention controls.\n *\n * @example\n * ```ts\n * const organizationDataRetention =\n * await client.admin.organization.dataRetention.update({\n * retention_type: 'zero_data_retention',\n * });\n * ```\n */\n update(body, options) {\n return this._client.post('/organization/data_retention', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=data-retention.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Invites extends APIResource {\n /**\n * Create an invite for a user to the organization. The invite must be accepted by\n * the user before they have access to the organization.\n *\n * @example\n * ```ts\n * const invite =\n * await client.admin.organization.invites.create({\n * email: 'email',\n * role: 'reader',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/organization/invites', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves an invite.\n *\n * @example\n * ```ts\n * const invite =\n * await client.admin.organization.invites.retrieve(\n * 'invite_id',\n * );\n * ```\n */\n retrieve(inviteID, options) {\n return this._client.get(path `/organization/invites/${inviteID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Returns a list of invites in the organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const invite of client.admin.organization.invites.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/invites', (ConversationCursorPage), {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Delete an invite. If the invite has already been accepted, it cannot be deleted.\n *\n * @example\n * ```ts\n * const invite =\n * await client.admin.organization.invites.delete(\n * 'invite_id',\n * );\n * ```\n */\n delete(inviteID, options) {\n return this._client.delete(path `/organization/invites/${inviteID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=invites.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { NextCursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Roles extends APIResource {\n /**\n * Creates a custom role for the organization.\n *\n * @example\n * ```ts\n * const role = await client.admin.organization.roles.create({\n * permissions: ['string'],\n * role_name: 'role_name',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/organization/roles', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves an organization role.\n *\n * @example\n * ```ts\n * const role = await client.admin.organization.roles.retrieve(\n * 'role_id',\n * );\n * ```\n */\n retrieve(roleID, options) {\n return this._client.get(path `/organization/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates an existing organization role.\n *\n * @example\n * ```ts\n * const role = await client.admin.organization.roles.update(\n * 'role_id',\n * );\n * ```\n */\n update(roleID, body, options) {\n return this._client.post(path `/organization/roles/${roleID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists the roles configured for the organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const role of client.admin.organization.roles.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/roles', (NextCursorPage), {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Deletes a custom role from the organization.\n *\n * @example\n * ```ts\n * const role = await client.admin.organization.roles.delete(\n * 'role_id',\n * );\n * ```\n */\n delete(roleID, options) {\n return this._client.delete(path `/organization/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=roles.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class SpendAlerts extends APIResource {\n /**\n * Creates an organization spend alert.\n *\n * @example\n * ```ts\n * const organizationSpendAlert =\n * await client.admin.organization.spendAlerts.create({\n * currency: 'USD',\n * interval: 'month',\n * notification_channel: {\n * recipients: ['string'],\n * type: 'email',\n * },\n * threshold_amount: 0,\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/organization/spend_alerts', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves an organization spend alert.\n *\n * @example\n * ```ts\n * const organizationSpendAlert =\n * await client.admin.organization.spendAlerts.retrieve(\n * 'alert_id',\n * );\n * ```\n */\n retrieve(alertID, options) {\n return this._client.get(path `/organization/spend_alerts/${alertID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates an organization spend alert.\n *\n * @example\n * ```ts\n * const organizationSpendAlert =\n * await client.admin.organization.spendAlerts.update(\n * 'alert_id',\n * {\n * currency: 'USD',\n * interval: 'month',\n * notification_channel: {\n * recipients: ['string'],\n * type: 'email',\n * },\n * threshold_amount: 0,\n * },\n * );\n * ```\n */\n update(alertID, body, options) {\n return this._client.post(path `/organization/spend_alerts/${alertID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists organization spend alerts.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const organizationSpendAlert of client.admin.organization.spendAlerts.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/spend_alerts', (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Deletes an organization spend alert.\n *\n * @example\n * ```ts\n * const organizationSpendAlertDeleted =\n * await client.admin.organization.spendAlerts.delete(\n * 'alert_id',\n * );\n * ```\n */\n delete(alertID, options) {\n return this._client.delete(path `/organization/spend_alerts/${alertID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=spend-alerts.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class SpendLimit extends APIResource {\n /**\n * Get the organization's hard spend limit.\n *\n * @example\n * ```ts\n * const organizationSpendLimit =\n * await client.admin.organization.spendLimit.retrieve();\n * ```\n */\n retrieve(options) {\n return this._client.get('/organization/spend_limit', {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Create or replace the organization's hard spend limit.\n *\n * @example\n * ```ts\n * const organizationSpendLimit =\n * await client.admin.organization.spendLimit.update({\n * currency: 'USD',\n * interval: 'month',\n * threshold_amount: 1,\n * });\n * ```\n */\n update(body, options) {\n return this._client.post('/organization/spend_limit', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Delete the organization's hard spend limit.\n *\n * @example\n * ```ts\n * const organizationSpendLimitDeleted =\n * await client.admin.organization.spendLimit.delete();\n * ```\n */\n delete(options) {\n return this._client.delete('/organization/spend_limit', {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=spend-limit.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class Usage extends APIResource {\n /**\n * Get audio speeches usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.audioSpeeches({\n * start_time: 0,\n * });\n * ```\n */\n audioSpeeches(query, options) {\n return this._client.get('/organization/usage/audio_speeches', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get audio transcriptions usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.audioTranscriptions(\n * { start_time: 0 },\n * );\n * ```\n */\n audioTranscriptions(query, options) {\n return this._client.get('/organization/usage/audio_transcriptions', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get code interpreter sessions usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.codeInterpreterSessions(\n * { start_time: 0 },\n * );\n * ```\n */\n codeInterpreterSessions(query, options) {\n return this._client.get('/organization/usage/code_interpreter_sessions', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get completions usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.completions({\n * start_time: 0,\n * });\n * ```\n */\n completions(query, options) {\n return this._client.get('/organization/usage/completions', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get costs details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.costs({\n * start_time: 0,\n * });\n * ```\n */\n costs(query, options) {\n return this._client.get('/organization/costs', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get embeddings usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.embeddings({\n * start_time: 0,\n * });\n * ```\n */\n embeddings(query, options) {\n return this._client.get('/organization/usage/embeddings', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get file search calls usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.fileSearchCalls({\n * start_time: 0,\n * });\n * ```\n */\n fileSearchCalls(query, options) {\n return this._client.get('/organization/usage/file_search_calls', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get images usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.images({\n * start_time: 0,\n * });\n * ```\n */\n images(query, options) {\n return this._client.get('/organization/usage/images', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get moderations usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.moderations({\n * start_time: 0,\n * });\n * ```\n */\n moderations(query, options) {\n return this._client.get('/organization/usage/moderations', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get vector stores usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.vectorStores({\n * start_time: 0,\n * });\n * ```\n */\n vectorStores(query, options) {\n return this._client.get('/organization/usage/vector_stores', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Get web search calls usage details for the organization.\n *\n * @example\n * ```ts\n * const response =\n * await client.admin.organization.usage.webSearchCalls({\n * start_time: 0,\n * });\n * ```\n */\n webSearchCalls(query, options) {\n return this._client.get('/organization/usage/web_search_calls', {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=usage.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { NextCursorPage } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Roles extends APIResource {\n /**\n * Assigns an organization role to a group within the organization.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.groups.roles.create(\n * 'group_id',\n * { role_id: 'role_id' },\n * );\n * ```\n */\n create(groupID, body, options) {\n return this._client.post(path `/organization/groups/${groupID}/roles`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves an organization role assigned to a group.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.groups.roles.retrieve(\n * 'role_id',\n * { group_id: 'group_id' },\n * );\n * ```\n */\n retrieve(roleID, params, options) {\n const { group_id } = params;\n return this._client.get(path `/organization/groups/${group_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists the organization roles assigned to a group within the organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const roleListResponse of client.admin.organization.groups.roles.list(\n * 'group_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(groupID, query = {}, options) {\n return this._client.getAPIList(path `/organization/groups/${groupID}/roles`, (NextCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Unassigns an organization role from a group within the organization.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.groups.roles.delete(\n * 'role_id',\n * { group_id: 'group_id' },\n * );\n * ```\n */\n delete(roleID, params, options) {\n const { group_id } = params;\n return this._client.delete(path `/organization/groups/${group_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=roles.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { NextCursorPage } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Users extends APIResource {\n /**\n * Adds a user to a group.\n *\n * @example\n * ```ts\n * const user =\n * await client.admin.organization.groups.users.create(\n * 'group_id',\n * { user_id: 'user_id' },\n * );\n * ```\n */\n create(groupID, body, options) {\n return this._client.post(path `/organization/groups/${groupID}/users`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a user in a group.\n *\n * @example\n * ```ts\n * const user =\n * await client.admin.organization.groups.users.retrieve(\n * 'user_id',\n * { group_id: 'group_id' },\n * );\n * ```\n */\n retrieve(userID, params, options) {\n const { group_id } = params;\n return this._client.get(path `/organization/groups/${group_id}/users/${userID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists the users assigned to a group.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const organizationGroupUser of client.admin.organization.groups.users.list(\n * 'group_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(groupID, query = {}, options) {\n return this._client.getAPIList(path `/organization/groups/${groupID}/users`, (NextCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Removes a user from a group.\n *\n * @example\n * ```ts\n * const user =\n * await client.admin.organization.groups.users.delete(\n * 'user_id',\n * { group_id: 'group_id' },\n * );\n * ```\n */\n delete(userID, params, options) {\n const { group_id } = params;\n return this._client.delete(path `/organization/groups/${group_id}/users/${userID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=users.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as RolesAPI from \"./roles.mjs\";\nimport { Roles, } from \"./roles.mjs\";\nimport * as UsersAPI from \"./users.mjs\";\nimport { Users, } from \"./users.mjs\";\nimport { NextCursorPage } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Groups extends APIResource {\n constructor() {\n super(...arguments);\n this.users = new UsersAPI.Users(this._client);\n this.roles = new RolesAPI.Roles(this._client);\n }\n /**\n * Creates a new group in the organization.\n *\n * @example\n * ```ts\n * const group = await client.admin.organization.groups.create(\n * { name: 'x' },\n * );\n * ```\n */\n create(body, options) {\n return this._client.post('/organization/groups', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a group.\n *\n * @example\n * ```ts\n * const group =\n * await client.admin.organization.groups.retrieve(\n * 'group_id',\n * );\n * ```\n */\n retrieve(groupID, options) {\n return this._client.get(path `/organization/groups/${groupID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates a group's information.\n *\n * @example\n * ```ts\n * const group = await client.admin.organization.groups.update(\n * 'group_id',\n * { name: 'x' },\n * );\n * ```\n */\n update(groupID, body, options) {\n return this._client.post(path `/organization/groups/${groupID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists all groups in the organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const group of client.admin.organization.groups.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/groups', (NextCursorPage), {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Deletes a group from the organization.\n *\n * @example\n * ```ts\n * const group = await client.admin.organization.groups.delete(\n * 'group_id',\n * );\n * ```\n */\n delete(groupID, options) {\n return this._client.delete(path `/organization/groups/${groupID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\nGroups.Users = Users;\nGroups.Roles = Roles;\n//# sourceMappingURL=groups.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class APIKeys extends APIResource {\n /**\n * Retrieves an API key in the project.\n *\n * @example\n * ```ts\n * const projectAPIKey =\n * await client.admin.organization.projects.apiKeys.retrieve(\n * 'api_key_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n retrieve(apiKeyID, params, options) {\n const { project_id } = params;\n return this._client.get(path `/organization/projects/${project_id}/api_keys/${apiKeyID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Returns a list of API keys in the project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const projectAPIKey of client.admin.organization.projects.apiKeys.list(\n * 'project_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(projectID, query = {}, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/api_keys`, (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Deletes an API key from the project.\n *\n * Returns confirmation of the key deletion, or an error if the key belonged to a\n * service account.\n *\n * @example\n * ```ts\n * const apiKey =\n * await client.admin.organization.projects.apiKeys.delete(\n * 'api_key_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n delete(apiKeyID, params, options) {\n const { project_id } = params;\n return this._client.delete(path `/organization/projects/${project_id}/api_keys/${apiKeyID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=api-keys.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { ConversationCursorPage, Page, } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Certificates extends APIResource {\n /**\n * List certificates for this project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const certificateListResponse of client.admin.organization.projects.certificates.list(\n * 'project_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(projectID, query = {}, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/certificates`, (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Activate certificates at the project level.\n *\n * You can atomically and idempotently activate up to 10 certificates at a time.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const certificateActivateResponse of client.admin.organization.projects.certificates.activate(\n * 'project_id',\n * { certificate_ids: ['cert_abc'] },\n * )) {\n * // ...\n * }\n * ```\n */\n activate(projectID, body, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/certificates/activate`, (Page), { body, method: 'post', ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Deactivate certificates at the project level. You can atomically and\n * idempotently deactivate up to 10 certificates at a time.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const certificateDeactivateResponse of client.admin.organization.projects.certificates.deactivate(\n * 'project_id',\n * { certificate_ids: ['cert_abc'] },\n * )) {\n * // ...\n * }\n * ```\n */\n deactivate(projectID, body, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/certificates/deactivate`, (Page), { body, method: 'post', ...options, __security: { adminAPIKeyAuth: true } });\n }\n}\n//# sourceMappingURL=certificates.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class DataRetention extends APIResource {\n /**\n * Retrieves project data retention controls.\n *\n * @example\n * ```ts\n * const projectDataRetention =\n * await client.admin.organization.projects.dataRetention.retrieve(\n * 'project_id',\n * );\n * ```\n */\n retrieve(projectID, options) {\n return this._client.get(path `/organization/projects/${projectID}/data_retention`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates project data retention controls.\n *\n * @example\n * ```ts\n * const projectDataRetention =\n * await client.admin.organization.projects.dataRetention.update(\n * 'project_id',\n * { retention_type: 'organization_default' },\n * );\n * ```\n */\n update(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}/data_retention`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=data-retention.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class HostedToolPermissions extends APIResource {\n /**\n * Returns hosted tool permissions for a project.\n *\n * @example\n * ```ts\n * const projectHostedToolPermissions =\n * await client.admin.organization.projects.hostedToolPermissions.retrieve(\n * 'project_id',\n * );\n * ```\n */\n retrieve(projectID, options) {\n return this._client.get(path `/organization/projects/${projectID}/hosted_tool_permissions`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates hosted tool permissions for a project.\n *\n * @example\n * ```ts\n * const projectHostedToolPermissions =\n * await client.admin.organization.projects.hostedToolPermissions.update(\n * 'project_id',\n * );\n * ```\n */\n update(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}/hosted_tool_permissions`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=hosted-tool-permissions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class ModelPermissions extends APIResource {\n /**\n * Returns model permissions for a project.\n *\n * @example\n * ```ts\n * const projectModelPermissions =\n * await client.admin.organization.projects.modelPermissions.retrieve(\n * 'project_id',\n * );\n * ```\n */\n retrieve(projectID, options) {\n return this._client.get(path `/organization/projects/${projectID}/model_permissions`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates model permissions for a project.\n *\n * @example\n * ```ts\n * const projectModelPermissions =\n * await client.admin.organization.projects.modelPermissions.update(\n * 'project_id',\n * { mode: 'allow_list', model_ids: ['string'] },\n * );\n * ```\n */\n update(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}/model_permissions`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Deletes model permissions for a project.\n *\n * @example\n * ```ts\n * const projectModelPermissionsDeleted =\n * await client.admin.organization.projects.modelPermissions.delete(\n * 'project_id',\n * );\n * ```\n */\n delete(projectID, options) {\n return this._client.delete(path `/organization/projects/${projectID}/model_permissions`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=model-permissions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class RateLimits extends APIResource {\n /**\n * Returns the rate limits per model for a project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const projectRateLimit of client.admin.organization.projects.rateLimits.listRateLimits(\n * 'project_id',\n * )) {\n * // ...\n * }\n * ```\n */\n listRateLimits(projectID, query = {}, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/rate_limits`, (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Updates a project rate limit.\n *\n * @example\n * ```ts\n * const projectRateLimit =\n * await client.admin.organization.projects.rateLimits.updateRateLimit(\n * 'rate_limit_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n updateRateLimit(rateLimitID, params, options) {\n const { project_id, ...body } = params;\n return this._client.post(path `/organization/projects/${project_id}/rate_limits/${rateLimitID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=rate-limits.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { NextCursorPage } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Roles extends APIResource {\n /**\n * Creates a custom role for a project.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.roles.create(\n * 'project_id',\n * { permissions: ['string'], role_name: 'role_name' },\n * );\n * ```\n */\n create(projectID, body, options) {\n return this._client.post(path `/projects/${projectID}/roles`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a project role.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.roles.retrieve(\n * 'role_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n retrieve(roleID, params, options) {\n const { project_id } = params;\n return this._client.get(path `/projects/${project_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates an existing project role.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.roles.update(\n * 'role_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n update(roleID, params, options) {\n const { project_id, ...body } = params;\n return this._client.post(path `/projects/${project_id}/roles/${roleID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists the roles configured for a project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const role of client.admin.organization.projects.roles.list(\n * 'project_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(projectID, query = {}, options) {\n return this._client.getAPIList(path `/projects/${projectID}/roles`, (NextCursorPage), {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Deletes a custom role from a project.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.roles.delete(\n * 'role_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n delete(roleID, params, options) {\n const { project_id } = params;\n return this._client.delete(path `/projects/${project_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=roles.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class SpendAlerts extends APIResource {\n /**\n * Creates a project spend alert.\n *\n * @example\n * ```ts\n * const projectSpendAlert =\n * await client.admin.organization.projects.spendAlerts.create(\n * 'project_id',\n * {\n * currency: 'USD',\n * interval: 'month',\n * notification_channel: {\n * recipients: ['string'],\n * type: 'email',\n * },\n * threshold_amount: 0,\n * },\n * );\n * ```\n */\n create(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}/spend_alerts`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a project spend alert.\n *\n * @example\n * ```ts\n * const projectSpendAlert =\n * await client.admin.organization.projects.spendAlerts.retrieve(\n * 'alert_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n retrieve(alertID, params, options) {\n const { project_id } = params;\n return this._client.get(path `/organization/projects/${project_id}/spend_alerts/${alertID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates a project spend alert.\n *\n * @example\n * ```ts\n * const projectSpendAlert =\n * await client.admin.organization.projects.spendAlerts.update(\n * 'alert_id',\n * {\n * project_id: 'project_id',\n * currency: 'USD',\n * interval: 'month',\n * notification_channel: {\n * recipients: ['string'],\n * type: 'email',\n * },\n * threshold_amount: 0,\n * },\n * );\n * ```\n */\n update(alertID, params, options) {\n const { project_id, ...body } = params;\n return this._client.post(path `/organization/projects/${project_id}/spend_alerts/${alertID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists project spend alerts.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const projectSpendAlert of client.admin.organization.projects.spendAlerts.list(\n * 'project_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(projectID, query = {}, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/spend_alerts`, (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Deletes a project spend alert.\n *\n * @example\n * ```ts\n * const projectSpendAlertDeleted =\n * await client.admin.organization.projects.spendAlerts.delete(\n * 'alert_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n delete(alertID, params, options) {\n const { project_id } = params;\n return this._client.delete(path `/organization/projects/${project_id}/spend_alerts/${alertID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=spend-alerts.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class SpendLimit extends APIResource {\n /**\n * Get a project's hard spend limit.\n *\n * @example\n * ```ts\n * const projectSpendLimit =\n * await client.admin.organization.projects.spendLimit.retrieve(\n * 'proj_123',\n * );\n * ```\n */\n retrieve(projectID, options) {\n return this._client.get(path `/organization/projects/${projectID}/spend_limit`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Create or replace a project's hard spend limit.\n *\n * @example\n * ```ts\n * const projectSpendLimit =\n * await client.admin.organization.projects.spendLimit.update(\n * 'proj_123',\n * {\n * currency: 'USD',\n * interval: 'month',\n * threshold_amount: 1,\n * },\n * );\n * ```\n */\n update(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}/spend_limit`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Delete a project's hard spend limit.\n *\n * @example\n * ```ts\n * const projectSpendLimitDeleted =\n * await client.admin.organization.projects.spendLimit.delete(\n * 'proj_123',\n * );\n * ```\n */\n delete(projectID, options) {\n return this._client.delete(path `/organization/projects/${projectID}/spend_limit`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=spend-limit.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport { NextCursorPage } from \"../../../../../core/pagination.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class Roles extends APIResource {\n /**\n * Assigns a project role to a group within a project.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.groups.roles.create(\n * 'group_id',\n * { project_id: 'project_id', role_id: 'role_id' },\n * );\n * ```\n */\n create(groupID, params, options) {\n const { project_id, ...body } = params;\n return this._client.post(path `/projects/${project_id}/groups/${groupID}/roles`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a project role assigned to a group.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.groups.roles.retrieve(\n * 'role_id',\n * { project_id: 'project_id', group_id: 'group_id' },\n * );\n * ```\n */\n retrieve(roleID, params, options) {\n const { project_id, group_id } = params;\n return this._client.get(path `/projects/${project_id}/groups/${group_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists the project roles assigned to a group within a project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const roleListResponse of client.admin.organization.projects.groups.roles.list(\n * 'group_id',\n * { project_id: 'project_id' },\n * )) {\n * // ...\n * }\n * ```\n */\n list(groupID, params, options) {\n const { project_id, ...query } = params;\n return this._client.getAPIList(path `/projects/${project_id}/groups/${groupID}/roles`, (NextCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Unassigns a project role from a group within a project.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.groups.roles.delete(\n * 'role_id',\n * { project_id: 'project_id', group_id: 'group_id' },\n * );\n * ```\n */\n delete(roleID, params, options) {\n const { project_id, group_id } = params;\n return this._client.delete(path `/projects/${project_id}/groups/${group_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=roles.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport * as RolesAPI from \"./roles.mjs\";\nimport { Roles, } from \"./roles.mjs\";\nimport { NextCursorPage } from \"../../../../../core/pagination.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class Groups extends APIResource {\n constructor() {\n super(...arguments);\n this.roles = new RolesAPI.Roles(this._client);\n }\n /**\n * Grants a group access to a project.\n *\n * @example\n * ```ts\n * const projectGroup =\n * await client.admin.organization.projects.groups.create(\n * 'project_id',\n * { group_id: 'group_id', role: 'role' },\n * );\n * ```\n */\n create(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}/groups`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a project's group.\n *\n * @example\n * ```ts\n * const projectGroup =\n * await client.admin.organization.projects.groups.retrieve(\n * 'group_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n retrieve(groupID, params, options) {\n const { project_id, ...query } = params;\n return this._client.get(path `/organization/projects/${project_id}/groups/${groupID}`, {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists the groups that have access to a project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const projectGroup of client.admin.organization.projects.groups.list(\n * 'project_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(projectID, query = {}, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/groups`, (NextCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Revokes a group's access to a project.\n *\n * @example\n * ```ts\n * const group =\n * await client.admin.organization.projects.groups.delete(\n * 'group_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n delete(groupID, params, options) {\n const { project_id } = params;\n return this._client.delete(path `/organization/projects/${project_id}/groups/${groupID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\nGroups.Roles = Roles;\n//# sourceMappingURL=groups.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class APIKeys extends APIResource {\n /**\n * Creates an API key for a service account in the project.\n *\n * @example\n * ```ts\n * const apiKey =\n * await client.admin.organization.projects.serviceAccounts.apiKeys.create(\n * 'service_account_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n create(serviceAccountID, params, options) {\n const { project_id, ...body } = params;\n return this._client.post(path `/organization/projects/${project_id}/service_accounts/${serviceAccountID}/api_keys`, { body, ...options, __security: { adminAPIKeyAuth: true } });\n }\n}\n//# sourceMappingURL=api-keys.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport * as APIKeysAPI from \"./api-keys.mjs\";\nimport { APIKeys } from \"./api-keys.mjs\";\nimport { ConversationCursorPage, } from \"../../../../../core/pagination.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class ServiceAccounts extends APIResource {\n constructor() {\n super(...arguments);\n this.apiKeys = new APIKeysAPI.APIKeys(this._client);\n }\n /**\n * Creates a new service account in the project. By default, this also returns an\n * unredacted API key for the service account.\n *\n * @example\n * ```ts\n * const serviceAccount =\n * await client.admin.organization.projects.serviceAccounts.create(\n * 'project_id',\n * { name: 'name' },\n * );\n * ```\n */\n create(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}/service_accounts`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a service account in the project.\n *\n * @example\n * ```ts\n * const projectServiceAccount =\n * await client.admin.organization.projects.serviceAccounts.retrieve(\n * 'service_account_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n retrieve(serviceAccountID, params, options) {\n const { project_id } = params;\n return this._client.get(path `/organization/projects/${project_id}/service_accounts/${serviceAccountID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Updates a service account in the project.\n *\n * @example\n * ```ts\n * const projectServiceAccount =\n * await client.admin.organization.projects.serviceAccounts.update(\n * 'service_account_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n update(serviceAccountID, params, options) {\n const { project_id, ...body } = params;\n return this._client.post(path `/organization/projects/${project_id}/service_accounts/${serviceAccountID}`, { body, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Returns a list of service accounts in the project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const projectServiceAccount of client.admin.organization.projects.serviceAccounts.list(\n * 'project_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(projectID, query = {}, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/service_accounts`, (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Deletes a service account from the project.\n *\n * Returns confirmation of service account deletion, or an error if the project is\n * archived (archived projects have no service accounts).\n *\n * @example\n * ```ts\n * const serviceAccount =\n * await client.admin.organization.projects.serviceAccounts.delete(\n * 'service_account_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n delete(serviceAccountID, params, options) {\n const { project_id } = params;\n return this._client.delete(path `/organization/projects/${project_id}/service_accounts/${serviceAccountID}`, { ...options, __security: { adminAPIKeyAuth: true } });\n }\n}\nServiceAccounts.APIKeys = APIKeys;\n//# sourceMappingURL=service-accounts.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport { NextCursorPage } from \"../../../../../core/pagination.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class Roles extends APIResource {\n /**\n * Assigns a project role to a user within a project.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.users.roles.create(\n * 'user_id',\n * { project_id: 'project_id', role_id: 'role_id' },\n * );\n * ```\n */\n create(userID, params, options) {\n const { project_id, ...body } = params;\n return this._client.post(path `/projects/${project_id}/users/${userID}/roles`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a project role assigned to a user.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.users.roles.retrieve(\n * 'role_id',\n * { project_id: 'project_id', user_id: 'user_id' },\n * );\n * ```\n */\n retrieve(roleID, params, options) {\n const { project_id, user_id } = params;\n return this._client.get(path `/projects/${project_id}/users/${user_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists the project roles assigned to a user within a project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const roleListResponse of client.admin.organization.projects.users.roles.list(\n * 'user_id',\n * { project_id: 'project_id' },\n * )) {\n * // ...\n * }\n * ```\n */\n list(userID, params, options) {\n const { project_id, ...query } = params;\n return this._client.getAPIList(path `/projects/${project_id}/users/${userID}/roles`, (NextCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Unassigns a project role from a user within a project.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.projects.users.roles.delete(\n * 'role_id',\n * { project_id: 'project_id', user_id: 'user_id' },\n * );\n * ```\n */\n delete(roleID, params, options) {\n const { project_id, user_id } = params;\n return this._client.delete(path `/projects/${project_id}/users/${user_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=roles.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport * as RolesAPI from \"./roles.mjs\";\nimport { Roles, } from \"./roles.mjs\";\nimport { ConversationCursorPage, } from \"../../../../../core/pagination.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class Users extends APIResource {\n constructor() {\n super(...arguments);\n this.roles = new RolesAPI.Roles(this._client);\n }\n /**\n * Adds a user to the project. Users must already be members of the organization to\n * be added to a project.\n *\n * @example\n * ```ts\n * const projectUser =\n * await client.admin.organization.projects.users.create(\n * 'project_id',\n * { role: 'role' },\n * );\n * ```\n */\n create(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}/users`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a user in the project.\n *\n * @example\n * ```ts\n * const projectUser =\n * await client.admin.organization.projects.users.retrieve(\n * 'user_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n retrieve(userID, params, options) {\n const { project_id } = params;\n return this._client.get(path `/organization/projects/${project_id}/users/${userID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Modifies a user's role in the project.\n *\n * @example\n * ```ts\n * const projectUser =\n * await client.admin.organization.projects.users.update(\n * 'user_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n update(userID, params, options) {\n const { project_id, ...body } = params;\n return this._client.post(path `/organization/projects/${project_id}/users/${userID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Returns a list of users in the project.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const projectUser of client.admin.organization.projects.users.list(\n * 'project_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(projectID, query = {}, options) {\n return this._client.getAPIList(path `/organization/projects/${projectID}/users`, (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Deletes a user from the project.\n *\n * Returns confirmation of project user deletion, or an error if the project is\n * archived (archived projects have no users).\n *\n * @example\n * ```ts\n * const user =\n * await client.admin.organization.projects.users.delete(\n * 'user_id',\n * { project_id: 'project_id' },\n * );\n * ```\n */\n delete(userID, params, options) {\n const { project_id } = params;\n return this._client.delete(path `/organization/projects/${project_id}/users/${userID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\nUsers.Roles = Roles;\n//# sourceMappingURL=users.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as APIKeysAPI from \"./api-keys.mjs\";\nimport { APIKeys, } from \"./api-keys.mjs\";\nimport * as CertificatesAPI from \"./certificates.mjs\";\nimport { Certificates, } from \"./certificates.mjs\";\nimport * as DataRetentionAPI from \"./data-retention.mjs\";\nimport { DataRetention } from \"./data-retention.mjs\";\nimport * as HostedToolPermissionsAPI from \"./hosted-tool-permissions.mjs\";\nimport { HostedToolPermissions, } from \"./hosted-tool-permissions.mjs\";\nimport * as ModelPermissionsAPI from \"./model-permissions.mjs\";\nimport { ModelPermissions, } from \"./model-permissions.mjs\";\nimport * as RateLimitsAPI from \"./rate-limits.mjs\";\nimport { RateLimits, } from \"./rate-limits.mjs\";\nimport * as RolesAPI from \"./roles.mjs\";\nimport { Roles, } from \"./roles.mjs\";\nimport * as SpendAlertsAPI from \"./spend-alerts.mjs\";\nimport { SpendAlerts, } from \"./spend-alerts.mjs\";\nimport * as SpendLimitAPI from \"./spend-limit.mjs\";\nimport { SpendLimit, } from \"./spend-limit.mjs\";\nimport * as GroupsAPI from \"./groups/groups.mjs\";\nimport { Groups, } from \"./groups/groups.mjs\";\nimport * as ServiceAccountsAPI from \"./service-accounts/service-accounts.mjs\";\nimport { ServiceAccounts, } from \"./service-accounts/service-accounts.mjs\";\nimport * as UsersAPI from \"./users/users.mjs\";\nimport { Users, } from \"./users/users.mjs\";\nimport { ConversationCursorPage, } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Projects extends APIResource {\n constructor() {\n super(...arguments);\n this.users = new UsersAPI.Users(this._client);\n this.serviceAccounts = new ServiceAccountsAPI.ServiceAccounts(this._client);\n this.apiKeys = new APIKeysAPI.APIKeys(this._client);\n this.rateLimits = new RateLimitsAPI.RateLimits(this._client);\n this.modelPermissions = new ModelPermissionsAPI.ModelPermissions(this._client);\n this.hostedToolPermissions = new HostedToolPermissionsAPI.HostedToolPermissions(this._client);\n this.groups = new GroupsAPI.Groups(this._client);\n this.roles = new RolesAPI.Roles(this._client);\n this.dataRetention = new DataRetentionAPI.DataRetention(this._client);\n this.spendLimit = new SpendLimitAPI.SpendLimit(this._client);\n this.spendAlerts = new SpendAlertsAPI.SpendAlerts(this._client);\n this.certificates = new CertificatesAPI.Certificates(this._client);\n }\n /**\n * Create a new project in the organization. Projects can be created and archived,\n * but cannot be deleted.\n *\n * @example\n * ```ts\n * const project =\n * await client.admin.organization.projects.create({\n * name: 'name',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/organization/projects', {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves a project.\n *\n * @example\n * ```ts\n * const project =\n * await client.admin.organization.projects.retrieve(\n * 'project_id',\n * );\n * ```\n */\n retrieve(projectID, options) {\n return this._client.get(path `/organization/projects/${projectID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Modifies a project in the organization.\n *\n * @example\n * ```ts\n * const project =\n * await client.admin.organization.projects.update(\n * 'project_id',\n * );\n * ```\n */\n update(projectID, body, options) {\n return this._client.post(path `/organization/projects/${projectID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Returns a list of projects.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const project of client.admin.organization.projects.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/projects', (ConversationCursorPage), {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Archives a project in the organization. Archived projects cannot be used or\n * updated.\n *\n * @example\n * ```ts\n * const project =\n * await client.admin.organization.projects.archive(\n * 'project_id',\n * );\n * ```\n */\n archive(projectID, options) {\n return this._client.post(path `/organization/projects/${projectID}/archive`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\nProjects.Users = Users;\nProjects.ServiceAccounts = ServiceAccounts;\nProjects.APIKeys = APIKeys;\nProjects.RateLimits = RateLimits;\nProjects.ModelPermissions = ModelPermissions;\nProjects.HostedToolPermissions = HostedToolPermissions;\nProjects.Groups = Groups;\nProjects.Roles = Roles;\nProjects.DataRetention = DataRetention;\nProjects.SpendLimit = SpendLimit;\nProjects.SpendAlerts = SpendAlerts;\nProjects.Certificates = Certificates;\n//# sourceMappingURL=projects.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { NextCursorPage } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Roles extends APIResource {\n /**\n * Assigns an organization role to a user within the organization.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.users.roles.create(\n * 'user_id',\n * { role_id: 'role_id' },\n * );\n * ```\n */\n create(userID, body, options) {\n return this._client.post(path `/organization/users/${userID}/roles`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Retrieves an organization role assigned to a user.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.users.roles.retrieve(\n * 'role_id',\n * { user_id: 'user_id' },\n * );\n * ```\n */\n retrieve(roleID, params, options) {\n const { user_id } = params;\n return this._client.get(path `/organization/users/${user_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists the organization roles assigned to a user within the organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const roleListResponse of client.admin.organization.users.roles.list(\n * 'user_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(userID, query = {}, options) {\n return this._client.getAPIList(path `/organization/users/${userID}/roles`, (NextCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * Unassigns an organization role from a user within the organization.\n *\n * @example\n * ```ts\n * const role =\n * await client.admin.organization.users.roles.delete(\n * 'role_id',\n * { user_id: 'user_id' },\n * );\n * ```\n */\n delete(roleID, params, options) {\n const { user_id } = params;\n return this._client.delete(path `/organization/users/${user_id}/roles/${roleID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\n//# sourceMappingURL=roles.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as RolesAPI from \"./roles.mjs\";\nimport { Roles, } from \"./roles.mjs\";\nimport { ConversationCursorPage, } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Users extends APIResource {\n constructor() {\n super(...arguments);\n this.roles = new RolesAPI.Roles(this._client);\n }\n /**\n * Retrieves a user by their identifier.\n *\n * @example\n * ```ts\n * const organizationUser =\n * await client.admin.organization.users.retrieve('user_id');\n * ```\n */\n retrieve(userID, options) {\n return this._client.get(path `/organization/users/${userID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Modifies a user's role in the organization.\n *\n * @example\n * ```ts\n * const organizationUser =\n * await client.admin.organization.users.update('user_id');\n * ```\n */\n update(userID, body, options) {\n return this._client.post(path `/organization/users/${userID}`, {\n body,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Lists all of the users in the organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const organizationUser of client.admin.organization.users.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/organization/users', (ConversationCursorPage), {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * Deletes a user from the organization.\n *\n * @example\n * ```ts\n * const user = await client.admin.organization.users.delete(\n * 'user_id',\n * );\n * ```\n */\n delete(userID, options) {\n return this._client.delete(path `/organization/users/${userID}`, {\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n}\nUsers.Roles = Roles;\n//# sourceMappingURL=users.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as AdminAPIKeysAPI from \"./admin-api-keys.mjs\";\nimport { AdminAPIKeys, } from \"./admin-api-keys.mjs\";\nimport * as AuditLogsAPI from \"./audit-logs.mjs\";\nimport { AuditLogs } from \"./audit-logs.mjs\";\nimport * as CertificatesAPI from \"./certificates.mjs\";\nimport { Certificates, } from \"./certificates.mjs\";\nimport * as DataRetentionAPI from \"./data-retention.mjs\";\nimport { DataRetention } from \"./data-retention.mjs\";\nimport * as InvitesAPI from \"./invites.mjs\";\nimport { Invites, } from \"./invites.mjs\";\nimport * as RolesAPI from \"./roles.mjs\";\nimport { Roles, } from \"./roles.mjs\";\nimport * as SpendAlertsAPI from \"./spend-alerts.mjs\";\nimport { SpendAlerts, } from \"./spend-alerts.mjs\";\nimport * as SpendLimitAPI from \"./spend-limit.mjs\";\nimport { SpendLimit, } from \"./spend-limit.mjs\";\nimport * as UsageAPI from \"./usage.mjs\";\nimport { Usage, } from \"./usage.mjs\";\nimport * as GroupsAPI from \"./groups/groups.mjs\";\nimport { Groups, } from \"./groups/groups.mjs\";\nimport * as ProjectsAPI from \"./projects/projects.mjs\";\nimport { Projects, } from \"./projects/projects.mjs\";\nimport * as UsersAPI from \"./users/users.mjs\";\nimport { Users, } from \"./users/users.mjs\";\nexport class Organization extends APIResource {\n constructor() {\n super(...arguments);\n this.auditLogs = new AuditLogsAPI.AuditLogs(this._client);\n this.adminAPIKeys = new AdminAPIKeysAPI.AdminAPIKeys(this._client);\n this.usage = new UsageAPI.Usage(this._client);\n this.invites = new InvitesAPI.Invites(this._client);\n this.users = new UsersAPI.Users(this._client);\n this.groups = new GroupsAPI.Groups(this._client);\n this.roles = new RolesAPI.Roles(this._client);\n this.dataRetention = new DataRetentionAPI.DataRetention(this._client);\n this.spendLimit = new SpendLimitAPI.SpendLimit(this._client);\n this.spendAlerts = new SpendAlertsAPI.SpendAlerts(this._client);\n this.certificates = new CertificatesAPI.Certificates(this._client);\n this.projects = new ProjectsAPI.Projects(this._client);\n }\n}\nOrganization.AuditLogs = AuditLogs;\nOrganization.AdminAPIKeys = AdminAPIKeys;\nOrganization.Usage = Usage;\nOrganization.Invites = Invites;\nOrganization.Users = Users;\nOrganization.Groups = Groups;\nOrganization.Roles = Roles;\nOrganization.DataRetention = DataRetention;\nOrganization.SpendLimit = SpendLimit;\nOrganization.SpendAlerts = SpendAlerts;\nOrganization.Certificates = Certificates;\nOrganization.Projects = Projects;\n//# sourceMappingURL=organization.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as OrganizationAPI from \"./organization/organization.mjs\";\nimport { Organization } from \"./organization/organization.mjs\";\nexport class Admin extends APIResource {\n constructor() {\n super(...arguments);\n this.organization = new OrganizationAPI.Organization(this._client);\n }\n}\nAdmin.Organization = Organization;\n//# sourceMappingURL=admin.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\n/**\n * Turn audio into text or text into audio.\n */\nexport class Speech extends APIResource {\n /**\n * Generates audio from the input text.\n *\n * Returns the audio file content, or a stream of audio events.\n *\n * @example\n * ```ts\n * const speech = await client.audio.speech.create({\n * input: 'input',\n * model: 'tts-1',\n * voice: 'alloy',\n * });\n *\n * const content = await speech.blob();\n * console.log(content);\n * ```\n */\n create(body, options) {\n return this._client.post('/audio/speech', {\n body,\n ...options,\n headers: buildHeaders([{ Accept: 'application/octet-stream' }, options?.headers]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=speech.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\n/**\n * Turn audio into text or text into audio.\n */\nexport class Transcriptions extends APIResource {\n create(body, options) {\n return this._client.post('/audio/transcriptions', multipartFormRequestOptions({\n body,\n ...options,\n stream: body.stream ?? false,\n __metadata: { model: body.model },\n __security: { bearerAuth: true },\n }, this._client));\n }\n}\n//# sourceMappingURL=transcriptions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\n/**\n * Turn audio into text or text into audio.\n */\nexport class Translations extends APIResource {\n create(body, options) {\n return this._client.post('/audio/translations', multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model }, __security: { bearerAuth: true } }, this._client));\n }\n}\n//# sourceMappingURL=translations.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as SpeechAPI from \"./speech.mjs\";\nimport { Speech } from \"./speech.mjs\";\nimport * as TranscriptionsAPI from \"./transcriptions.mjs\";\nimport { Transcriptions, } from \"./transcriptions.mjs\";\nimport * as TranslationsAPI from \"./translations.mjs\";\nimport { Translations, } from \"./translations.mjs\";\nexport class Audio extends APIResource {\n constructor() {\n super(...arguments);\n this.transcriptions = new TranscriptionsAPI.Transcriptions(this._client);\n this.translations = new TranslationsAPI.Translations(this._client);\n this.speech = new SpeechAPI.Speech(this._client);\n }\n}\nAudio.Transcriptions = Transcriptions;\nAudio.Translations = Translations;\nAudio.Speech = Speech;\n//# sourceMappingURL=audio.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\n/**\n * Create large batches of API requests to run asynchronously.\n */\nexport class Batches extends APIResource {\n /**\n * Creates and executes a batch from an uploaded file of requests\n */\n create(body, options) {\n return this._client.post('/batches', { body, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Retrieves a batch.\n */\n retrieve(batchID, options) {\n return this._client.get(path `/batches/${batchID}`, { ...options, __security: { bearerAuth: true } });\n }\n /**\n * List your organization's batches.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/batches', (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Cancels an in-progress batch. The batch will be in status `cancelling` for up to\n * 10 minutes, before changing to `cancelled`, where it will have partial results\n * (if any) available in the output file.\n */\n cancel(batchID, options) {\n return this._client.post(path `/batches/${batchID}/cancel`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=batches.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\n/**\n * Build Assistants that can call models and use tools.\n */\nexport class Assistants extends APIResource {\n /**\n * Create an assistant with a model and instructions.\n *\n * @deprecated\n */\n create(body, options) {\n return this._client.post('/assistants', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves an assistant.\n *\n * @deprecated\n */\n retrieve(assistantID, options) {\n return this._client.get(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Modifies an assistant.\n *\n * @deprecated\n */\n update(assistantID, body, options) {\n return this._client.post(path `/assistants/${assistantID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Returns a list of assistants.\n *\n * @deprecated\n */\n list(query = {}, options) {\n return this._client.getAPIList('/assistants', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete an assistant.\n *\n * @deprecated\n */\n delete(assistantID, options) {\n return this._client.delete(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=assistants.mjs.map","import { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API. Can be configured with the same session parameters as the\n * `session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const session =\n * await client.beta.realtime.sessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","import { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class TranscriptionSessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API specifically for realtime transcriptions. Can be configured with\n * the same session parameters as the `transcription_session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const transcriptionSession =\n * await client.beta.realtime.transcriptionSessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/transcription_sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=transcription-sessions.mjs.map","import { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions, } from \"./sessions.mjs\";\nimport * as TranscriptionSessionsAPI from \"./transcription-sessions.mjs\";\nimport { TranscriptionSessions, } from \"./transcription-sessions.mjs\";\n/**\n * @deprecated Realtime has now launched and is generally available. The old beta API is now deprecated.\n */\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.transcriptionSessions = new TranscriptionSessionsAPI.TranscriptionSessions(this._client);\n }\n}\nRealtime.Sessions = Sessions;\nRealtime.TranscriptionSessions = TranscriptionSessions;\n//# sourceMappingURL=realtime.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { TokenPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Copies inline bytes or a Files API file into a connected execution environment.\n * See\n * [environment files](https://developers.openai.com/api/docs/guides/agents-api/environments/files).\n *\n * @example\n * ```ts\n * const environmentFile =\n * await client.beta.agents.environments.files.create(\n * 'environment_id',\n * {\n * type: 'inline',\n * path: '/workspace/example.txt',\n * data: 'SGVsbG8K',\n * },\n * );\n * ```\n */\n create(environmentID, body, options) {\n return this._client.post(path `/agents/environments/${environmentID}/files`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists live files on a connected execution environment with optional directory\n * filtering and opaque cursor pagination. See\n * [environment files](https://developers.openai.com/api/docs/guides/agents-api/environments/files).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const environmentFile of client.beta.agents.environments.files.list(\n * 'environment_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(environmentID, query = {}, options) {\n return this._client.getAPIList(path `/agents/environments/${environmentID}/files`, (TokenPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Templates extends APIResource {\n /**\n * Creates reusable environment configuration without returning confidential setup\n * commands or environment values. See\n * [reusing a hosted setup](https://developers.openai.com/api/docs/guides/agents-api/tools#reuse-a-hosted-plugin-setup).\n *\n * @example\n * ```ts\n * const environmentTemplate =\n * await client.beta.agents.environments.templates.create();\n * ```\n */\n create(body = {}, options) {\n return this._client.post('/agents/environments/templates', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves reusable environment configuration without returning confidential\n * values. See\n * [reusing a hosted setup](https://developers.openai.com/api/docs/guides/agents-api/tools#reuse-a-hosted-plugin-setup).\n *\n * @example\n * ```ts\n * const environmentTemplate =\n * await client.beta.agents.environments.templates.retrieve(\n * 'environment_template_id',\n * );\n * ```\n */\n retrieve(environmentTemplateID, options) {\n return this._client.get(path `/agents/environments/templates/${environmentTemplateID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Updates reusable environment configuration without returning confidential\n * values. See\n * [reusing a hosted setup](https://developers.openai.com/api/docs/guides/agents-api/tools#reuse-a-hosted-plugin-setup).\n *\n * @example\n * ```ts\n * const environmentTemplate =\n * await client.beta.agents.environments.templates.update(\n * 'environment_template_id',\n * );\n * ```\n */\n update(environmentTemplateID, body = {}, options) {\n return this._client.post(path `/agents/environments/templates/${environmentTemplateID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists reusable environment templates without returning confidential values. See\n * [reusing a hosted setup](https://developers.openai.com/api/docs/guides/agents-api/tools#reuse-a-hosted-plugin-setup).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const environmentTemplate of client.beta.agents.environments.templates.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/agents/environments/templates', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Deletes reusable environment configuration and all confidential template inputs.\n * See\n * [reusing a hosted setup](https://developers.openai.com/api/docs/guides/agents-api/tools#reuse-a-hosted-plugin-setup).\n *\n * @example\n * ```ts\n * const environmentTemplateDeleted =\n * await client.beta.agents.environments.templates.delete(\n * 'environment_template_id',\n * );\n * ```\n */\n delete(environmentTemplateID, options) {\n return this._client.delete(path `/agents/environments/templates/${environmentTemplateID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=templates.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as FilesAPI from \"./files.mjs\";\nimport { Files } from \"./files.mjs\";\nimport * as TemplatesAPI from \"./templates.mjs\";\nimport { Templates, } from \"./templates.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Environments extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n this.templates = new TemplatesAPI.Templates(this._client);\n }\n /**\n * Retrieves an execution environment's connection status and safe installed\n * metadata. See\n * [environment lifecycle](https://developers.openai.com/api/docs/guides/agents-api/environments/lifecycle).\n *\n * @example\n * ```ts\n * const environmentInfo =\n * await client.beta.agents.environments.retrieve(\n * 'environment_id',\n * );\n * ```\n */\n retrieve(environmentID, options) {\n return this._client.get(path `/agents/environments/${environmentID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nEnvironments.Files = Files;\nEnvironments.Templates = Templates;\n//# sourceMappingURL=environments.mjs.map","var _TurnState_turnID, _TurnState_turnEnded, _TurnState_eventIDs, _TurnState_calls;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\n/** Tracks one helper invocation's coordinator turn and duplicate deliveries.\n * @internal\n */\nexport class TurnState {\n constructor() {\n _TurnState_turnID.set(this, void 0);\n _TurnState_turnEnded.set(this, false);\n _TurnState_eventIDs.set(this, new Set());\n _TurnState_calls.set(this, new Set());\n }\n /** Records a delivery unless its event ID is in the bounded recent window. */\n accept(event) {\n if (__classPrivateFieldGet(this, _TurnState_eventIDs, \"f\").has(event.event_id)) {\n return false;\n }\n if (__classPrivateFieldGet(this, _TurnState_eventIDs, \"f\").size === 1024) {\n const oldest = __classPrivateFieldGet(this, _TurnState_eventIDs, \"f\").values().next();\n if (!oldest.done) {\n __classPrivateFieldGet(this, _TurnState_eventIDs, \"f\").delete(oldest.value);\n }\n }\n __classPrivateFieldGet(this, _TurnState_eventIDs, \"f\").add(event.event_id);\n if (event.type === 'agent.session.turn.created' &&\n event.turn.subagent_id === null &&\n __classPrivateFieldGet(this, _TurnState_turnID, \"f\") === undefined) {\n __classPrivateFieldSet(this, _TurnState_turnID, event.turn_id, \"f\");\n }\n if ((event.type === 'agent.session.turn.completed' ||\n event.type === 'agent.session.turn.failed' ||\n event.type === 'agent.session.turn.cancelled') &&\n __classPrivateFieldGet(this, _TurnState_turnID, \"f\") !== undefined &&\n event.turn_id === __classPrivateFieldGet(this, _TurnState_turnID, \"f\")) {\n __classPrivateFieldSet(this, _TurnState_turnEnded, true, \"f\");\n }\n return true;\n }\n /** Checks session termination after updating the selected turn state. */\n terminal(event) {\n return event.type === 'agent.session.failed' || (event.type === 'agent.session.idle' && __classPrivateFieldGet(this, _TurnState_turnEnded, \"f\"));\n }\n /** Returns each tool call once for the full invocation, including subagent turns. */\n call(event) {\n if (event.type !== 'agent.session.turn.item.added' || event.item.type !== 'function_call') {\n return;\n }\n const call = event.item;\n const key = JSON.stringify([call.turn_id, call.call_id]);\n if (__classPrivateFieldGet(this, _TurnState_calls, \"f\").has(key)) {\n return;\n }\n __classPrivateFieldGet(this, _TurnState_calls, \"f\").add(key);\n return call;\n }\n}\n_TurnState_turnID = new WeakMap(), _TurnState_turnEnded = new WeakMap(), _TurnState_eventIDs = new WeakMap(), _TurnState_calls = new WeakMap();\n//# sourceMappingURL=turn-state.mjs.map","var _AgentSessionStream_instances, _AgentSessionStream_consumed, _AgentSessionStream_stream, _AgentSessionStream_response, _AgentSessionStream_reading, _AgentSessionStream_sessions, _AgentSessionStream_sessionID, _AgentSessionStream_input, _AgentSessionStream_handlers, _AgentSessionStream_inputKey, _AgentSessionStream_options, _AgentSessionStream_iterate, _AgentSessionStream_result, _AgentSessionStream_checkAbort, _AgentSessionStream_abortError, _AgentSessionStream_wait, _AgentSessionStream_submit;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { TurnState } from \"./turn-state.mjs\";\nimport { APIUserAbortError, BadRequestError, OpenAIError } from \"../../core/error.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { uuid4 } from \"../../internal/utils/uuid.mjs\";\nimport { hasOwn, isObj } from \"../../internal/utils/values.mjs\";\nfunction isInputContent(value) {\n if (!isObj(value)) {\n return false;\n }\n const content = value;\n let field;\n if (content['type'] === 'input_text') {\n field = 'text';\n }\n else if (content['type'] === 'input_image') {\n field = 'image_url';\n }\n else {\n return false;\n }\n return hasOwn(content, 'type') && hasOwn(content, field) && typeof content[field] === 'string';\n}\nfunction normalizedOutput(value) {\n if (value === null) {\n return null;\n }\n if (typeof value === 'string' || (Array.isArray(value) && value.every(isInputContent))) {\n return value;\n }\n throw new OpenAIError('Tool output must be text, content, a JSON object, or null');\n}\n// oxlint-disable-next-line anti-slop/no-object-parameters -- The public AgentToolOutput contract accepts arbitrary JSON-serializable object results.\nfunction toolResult(call, value) {\n const output = isObj(value) ? JSON.stringify(value) : value;\n // Detect unserializable callback results inside the redacted failure boundary.\n const serialized = JSON.stringify(output);\n if (serialized === undefined) {\n throw new OpenAIError('Tool output must be JSON serializable');\n }\n return {\n type: 'agent.session.input.tool_result',\n turn_id: call.turn_id,\n call_id: call.call_id,\n success: true,\n output: normalizedOutput(typeof output === 'string' ? output : JSON.parse(serialized)),\n };\n}\nasync function cancelBody(response) {\n try {\n await response?.body?.cancel();\n }\n catch {\n // The response may already be cancelled or owned by its stream reader.\n }\n}\n/**\n * A single-use, lazy async iterable of original session events for one turn.\n * Requires an idle session and a single input writer: the input endpoint does not\n * return a turn ID. Subscribe-before-input avoids losing events; the first\n * coordinator turn selects the turn to follow. Initial idle events and subagent\n * completion do not end iteration. A selected turn's terminal event followed by\n * session.idle, or session.failed, ends iteration. Unexpected EOF throws.\n *\n * Tool handlers run sequentially during iteration. Handler failures submit a\n * generic error without exception text. Each submission has a distinct retry-safe\n * idempotency key. Breaking iteration or calling abort closes local requests;\n * neither cancels the backend turn. No work starts until iteration begins.\n */\nexport class AgentSessionStream {\n /** Creates an unstarted helper. Prefer client.beta.agents.sessions.stream(). */\n constructor(sessions, sessionID, params, options) {\n _AgentSessionStream_instances.add(this);\n /** Aborts local requests and iteration without cancelling the backend turn. */\n this.controller = new AbortController();\n _AgentSessionStream_consumed.set(this, false);\n _AgentSessionStream_stream.set(this, void 0);\n _AgentSessionStream_response.set(this, void 0);\n _AgentSessionStream_reading.set(this, false);\n _AgentSessionStream_sessions.set(this, void 0);\n _AgentSessionStream_sessionID.set(this, void 0);\n _AgentSessionStream_input.set(this, void 0);\n _AgentSessionStream_handlers.set(this, void 0);\n _AgentSessionStream_inputKey.set(this, void 0);\n _AgentSessionStream_options.set(this, void 0);\n const input = typeof params.input === 'string'\n ? [{ role: 'user', content: [{ type: 'input_text', text: params.input }] }]\n : params.input;\n if (params.input.length === 0) {\n throw new OpenAIError('input must not be empty');\n }\n __classPrivateFieldSet(this, _AgentSessionStream_sessions, sessions, \"f\");\n __classPrivateFieldSet(this, _AgentSessionStream_sessionID, sessionID, \"f\");\n __classPrivateFieldSet(this, _AgentSessionStream_input, { type: 'agent.session.input.message', input }, \"f\");\n __classPrivateFieldSet(this, _AgentSessionStream_handlers, new Map(Object.entries(params.toolHandlers ?? {})), \"f\");\n const headers = buildHeaders([options?.headers]);\n __classPrivateFieldSet(this, _AgentSessionStream_inputKey, headers.nulls.has('idempotency-key')\n ? undefined\n : (headers.values.get('idempotency-key') ??\n params.idempotencyKey ??\n options?.idempotencyKey ??\n uuid4()), \"f\");\n headers.values.delete('idempotency-key');\n headers.nulls.delete('idempotency-key');\n const { idempotencyKey: _key, ...rest } = options ?? {};\n __classPrivateFieldSet(this, _AgentSessionStream_options, { ...rest, headers }, \"f\");\n }\n /** Closes local requests without cancelling the turn; an optional reason becomes the abort error's cause. */\n abort(reason) {\n this.controller.abort(reason);\n __classPrivateFieldGet(this, _AgentSessionStream_stream, \"f\")?.controller.abort(this.controller.signal.reason);\n if (!__classPrivateFieldGet(this, _AgentSessionStream_reading, \"f\")) {\n void cancelBody(__classPrivateFieldGet(this, _AgentSessionStream_response, \"f\"));\n }\n }\n /** Starts iteration once; use for await to ensure early exits close the connection. */\n [(_AgentSessionStream_consumed = new WeakMap(), _AgentSessionStream_stream = new WeakMap(), _AgentSessionStream_response = new WeakMap(), _AgentSessionStream_reading = new WeakMap(), _AgentSessionStream_sessions = new WeakMap(), _AgentSessionStream_sessionID = new WeakMap(), _AgentSessionStream_input = new WeakMap(), _AgentSessionStream_handlers = new WeakMap(), _AgentSessionStream_inputKey = new WeakMap(), _AgentSessionStream_options = new WeakMap(), _AgentSessionStream_instances = new WeakSet(), Symbol.asyncIterator)]() {\n if (__classPrivateFieldGet(this, _AgentSessionStream_consumed, \"f\")) {\n throw new OpenAIError('An AgentSessionStream can only be consumed once');\n }\n __classPrivateFieldSet(this, _AgentSessionStream_consumed, true, \"f\");\n return __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_iterate).call(this);\n }\n}\n_AgentSessionStream_iterate = async function* _AgentSessionStream_iterate() {\n const externalSignal = __classPrivateFieldGet(this, _AgentSessionStream_options, \"f\").signal;\n const abort = () => this.abort(externalSignal?.aborted ? externalSignal.reason : this.controller.signal.reason);\n externalSignal?.addEventListener('abort', abort, { once: true });\n this.controller.signal.addEventListener('abort', abort, { once: true });\n const options = { ...__classPrivateFieldGet(this, _AgentSessionStream_options, \"f\"), signal: this.controller.signal };\n const state = new TurnState();\n try {\n if (externalSignal?.aborted) {\n this.abort(externalSignal.reason);\n }\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n const session = await __classPrivateFieldGet(this, _AgentSessionStream_sessions, \"f\").retrieve(__classPrivateFieldGet(this, _AgentSessionStream_sessionID, \"f\"), options);\n if (session.status !== 'idle') {\n throw new OpenAIError('sessions.stream requires an idle session; use sessions.events.stream for active sessions');\n }\n const subscription = await __classPrivateFieldGet(this, _AgentSessionStream_sessions, \"f\").events.stream(__classPrivateFieldGet(this, _AgentSessionStream_sessionID, \"f\"), options).withResponse();\n __classPrivateFieldSet(this, _AgentSessionStream_stream, subscription.data, \"f\");\n __classPrivateFieldSet(this, _AgentSessionStream_response, subscription.response, \"f\");\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n await __classPrivateFieldGet(this, _AgentSessionStream_sessions, \"f\").events.create(__classPrivateFieldGet(this, _AgentSessionStream_sessionID, \"f\"), {\n events: [__classPrivateFieldGet(this, _AgentSessionStream_input, \"f\")],\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(__classPrivateFieldGet(this, _AgentSessionStream_inputKey, \"f\") === undefined ? {} : { 'Idempotency-Key': __classPrivateFieldGet(this, _AgentSessionStream_inputKey, \"f\") }),\n }, {\n ...options,\n headers: buildHeaders([options.headers, { 'Idempotency-Key': __classPrivateFieldGet(this, _AgentSessionStream_inputKey, \"f\") ?? null }]),\n });\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n __classPrivateFieldSet(this, _AgentSessionStream_reading, true, \"f\");\n for await (const event of __classPrivateFieldGet(this, _AgentSessionStream_stream, \"f\")) {\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n if (!state.accept(event)) {\n continue;\n }\n const terminal = state.terminal(event);\n const pendingCall = state.call(event);\n const handler = pendingCall && __classPrivateFieldGet(this, _AgentSessionStream_handlers, \"f\").get(pendingCall.name);\n // Freeze dispatch identity and arguments before exposing the original event.\n const call = pendingCall && handler ? structuredClone(pendingCall) : undefined;\n if (terminal) {\n __classPrivateFieldGet(this, _AgentSessionStream_stream, \"f\").controller.abort();\n }\n yield event;\n if (terminal) {\n return;\n }\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n if (!call || !handler) {\n continue;\n }\n const result = await __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_result).call(this, call, handler);\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n await __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_submit).call(this, result, options);\n }\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n throw new OpenAIError('Session event stream ended before the turn reached idle or failed');\n }\n finally {\n externalSignal?.removeEventListener('abort', abort);\n this.controller.signal.removeEventListener('abort', abort);\n this.abort();\n }\n}, _AgentSessionStream_result = async function _AgentSessionStream_result(call, handler) {\n try {\n const args = typeof call.arguments === 'string' ? JSON.parse(call.arguments) : call.arguments;\n if (!isObj(args)) {\n throw new OpenAIError('Function arguments must be a JSON object');\n }\n // SAFETY: Arguments were parsed as JSON and checked to be a non-null non-array object before invoking the handler.\n return toolResult(call, await __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_wait).call(this, () => handler(args)));\n }\n catch {\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n return {\n type: 'agent.session.input.tool_result',\n turn_id: call.turn_id,\n call_id: call.call_id,\n success: false,\n error: 'Tool handler failed.',\n };\n }\n}, _AgentSessionStream_checkAbort = function _AgentSessionStream_checkAbort() {\n if (this.controller.signal.aborted) {\n throw __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_abortError).call(this);\n }\n}, _AgentSessionStream_abortError = function _AgentSessionStream_abortError() {\n const error = new APIUserAbortError();\n Object.defineProperty(error, 'cause', {\n value: this.controller.signal.reason,\n writable: true,\n configurable: true,\n });\n return error;\n}, _AgentSessionStream_wait = async function _AgentSessionStream_wait(action) {\n let onAbort;\n // oxlint-disable-next-line promise/avoid-new -- Bridge the caller's AbortSignal while a handler or registration delay is pending.\n const aborted = new Promise((_resolve, reject) => {\n onAbort = () => reject(__classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_abortError).call(this));\n this.controller.signal.addEventListener('abort', onAbort, { once: true });\n });\n try {\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n // Capture synchronous throws before racing cancellation, so both promises\n // always have rejection handlers even if the callback aborts and throws.\n const invoke = async () => await action();\n return await Promise.race([invoke(), aborted]);\n }\n finally {\n if (onAbort) {\n this.controller.signal.removeEventListener('abort', onAbort);\n }\n }\n}, _AgentSessionStream_submit = async function _AgentSessionStream_submit(result, options, key = uuid4(), attempt = 0) {\n __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_checkAbort).call(this);\n try {\n await __classPrivateFieldGet(this, _AgentSessionStream_sessions, \"f\").events.create(__classPrivateFieldGet(this, _AgentSessionStream_sessionID, \"f\"), { events: [result], 'Idempotency-Key': key }, options);\n }\n catch (error) {\n const delay = [100, 300, 600][attempt];\n if (delay === undefined ||\n !(error instanceof BadRequestError) ||\n error.code !== 'invalid_request_error' ||\n !error.error ||\n !('message' in error.error) ||\n error.error.message !== `Unknown pending tool call: ${result.call_id}`) {\n throw error;\n }\n let timer;\n try {\n await __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_wait).call(this, () => \n // oxlint-disable-next-line promise/avoid-new -- Own the registration timer so cancellation clears it promptly.\n new Promise((resolve) => {\n timer = setTimeout(resolve, delay);\n }));\n }\n finally {\n if (timer !== undefined) {\n clearTimeout(timer);\n }\n }\n await __classPrivateFieldGet(this, _AgentSessionStream_instances, \"m\", _AgentSessionStream_submit).call(this, result, options, key, attempt + 1);\n }\n};\n//# sourceMappingURL=agent-session-stream.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Artifacts extends APIResource {\n /**\n * Retrieves immutable metadata for one durable session artifact. See\n * [session artifacts](https://developers.openai.com/api/docs/guides/agents-api/environments/files#openai-hosted-artifacts).\n *\n * @example\n * ```ts\n * const sessionArtifact =\n * await client.beta.agents.sessions.artifacts.retrieve(\n * 'artifact_id',\n * { session_id: 'session_id' },\n * );\n * ```\n */\n retrieve(artifactID, params, options) {\n const { session_id } = params;\n return this._client.get(path `/agents/sessions/${session_id}/artifacts/${artifactID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists immutable artifacts published by completed hosted session turns. See\n * [session artifacts](https://developers.openai.com/api/docs/guides/agents-api/environments/files#openai-hosted-artifacts).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const sessionArtifact of client.beta.agents.sessions.artifacts.list(\n * 'session_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(sessionID, query = {}, options) {\n return this._client.getAPIList(path `/agents/sessions/${sessionID}/artifacts`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Deletes an immutable session artifact without deleting its live environment file\n * or original Files API object. See\n * [session artifacts](https://developers.openai.com/api/docs/guides/agents-api/environments/files#openai-hosted-artifacts).\n *\n * @example\n * ```ts\n * const sessionArtifactDeleted =\n * await client.beta.agents.sessions.artifacts.delete(\n * 'artifact_id',\n * { session_id: 'session_id' },\n * );\n * ```\n */\n delete(artifactID, params, options) {\n const { session_id } = params;\n return this._client.delete(path `/agents/sessions/${session_id}/artifacts/${artifactID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Downloads immutable session artifact bytes after the execution environment\n * expires. See\n * [session artifacts](https://developers.openai.com/api/docs/guides/agents-api/environments/files#openai-hosted-artifacts).\n *\n * @example\n * ```ts\n * const response =\n * await client.beta.agents.sessions.artifacts.content(\n * 'artifact_id',\n * { session_id: 'session_id' },\n * );\n *\n * const content = await response.blob();\n * console.log(content);\n * ```\n */\n content(artifactID, params, options) {\n const { session_id } = params;\n return this._client.get(path `/agents/sessions/${session_id}/artifacts/${artifactID}/content`, {\n ...options,\n headers: buildHeaders([\n { 'OpenAI-Beta': 'agents=v1', Accept: 'application/octet-stream' },\n options?.headers,\n ]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=artifacts.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Events extends APIResource {\n /**\n * Submits message, cancellation, or tool-result events to a managed agent session.\n * Cancellation can recover a still-open turn whose backend execution has ended by\n * marking it cancelled and abandoning unpublished outputs. Saved results,\n * published files, and existing terminal outcomes are preserved. HTTP 202 confirms\n * acceptance, not durable completion. See\n * [session events](https://developers.openai.com/api/docs/guides/agents-api/sessions/events).\n *\n * @example\n * ```ts\n * await client.beta.agents.sessions.events.create(\n * 'session_id',\n * {\n * events: [\n * {\n * input: [\n * {\n * content: [{ text: 'text', type: 'input_text' }],\n * role: 'user',\n * },\n * ],\n * type: 'agent.session.input.message',\n * },\n * ],\n * },\n * );\n * ```\n */\n create(sessionID, params, options) {\n const { 'Idempotency-Key': idempotencyKey, ...body } = params;\n return this._client.post(path `/agents/sessions/${sessionID}/events`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'OpenAI-Beta': 'agents=v1',\n Accept: '*/*',\n ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),\n },\n options?.headers,\n ]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Streams live events for an agent session. See\n * [session events](https://developers.openai.com/api/docs/guides/agents-api/sessions/events).\n *\n * @example\n * ```ts\n * const agentSessionEvent =\n * await client.beta.agents.sessions.events.stream(\n * 'session_id',\n * );\n * ```\n */\n stream(sessionID, options) {\n return this._client.get(path `/agents/sessions/${sessionID}/events`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1', Accept: 'text/event-stream' }, options?.headers]),\n stream: true,\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=events.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Items extends APIResource {\n /**\n * Lists items produced by the session's root agent, including its interactions\n * with subagents. Each subagent has its own item history. See\n * [inspecting agent output](https://developers.openai.com/api/docs/guides/agents-api/observability).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const agentSessionItem of client.beta.agents.sessions.items.list(\n * 'session_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(sessionID, query = {}, options) {\n return this._client.getAPIList(path `/agents/sessions/${sessionID}/items`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=items.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Turns extends APIResource {\n /**\n * Retrieves a turn's current status, timestamps, usage, and error. Returns 404 if\n * the turn does not belong to the session. See\n * [session turns](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage#inspect-session-turns).\n *\n * @example\n * ```ts\n * const turn =\n * await client.beta.agents.sessions.turns.retrieve(\n * 'turn_id',\n * { session_id: 'session_id' },\n * );\n * ```\n */\n retrieve(turnID, params, options) {\n const { session_id } = params;\n return this._client.get(path `/agents/sessions/${session_id}/turns/${turnID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists turns by creation time and turn ID. The after cursor is exclusive in the\n * selected order. See\n * [session turns](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage#inspect-session-turns).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const turn of client.beta.agents.sessions.turns.list(\n * 'session_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(sessionID, query = {}, options) {\n return this._client.getAPIList(path `/agents/sessions/${sessionID}/turns`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=turns.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../../internal/headers.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class Items extends APIResource {\n /**\n * Lists this subagent's own items across all of its turns. See\n * [subagent workflows](https://developers.openai.com/api/docs/guides/agents-api/multi-agent).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const agentSessionItem of client.beta.agents.sessions.subagents.items.list(\n * 'subagent_id',\n * { session_id: 'session_id' },\n * )) {\n * // ...\n * }\n * ```\n */\n list(subagentID, params, options) {\n const { session_id, ...query } = params;\n return this._client.getAPIList(path `/agents/sessions/${session_id}/subagents/${subagentID}/items`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=items.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../../../internal/headers.mjs\";\nimport { path } from \"../../../../../../internal/utils/path.mjs\";\nexport class Items extends APIResource {\n /**\n * Lists items belonging to one turn of this subagent. See\n * [subagent workflows](https://developers.openai.com/api/docs/guides/agents-api/multi-agent).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const agentSessionItem of client.beta.agents.sessions.subagents.turns.items.list(\n * 'turn_id',\n * { session_id: 'session_id', subagent_id: 'subagent_id' },\n * )) {\n * // ...\n * }\n * ```\n */\n list(turnID, params, options) {\n const { session_id, subagent_id, ...query } = params;\n return this._client.getAPIList(path `/agents/sessions/${session_id}/subagents/${subagent_id}/turns/${turnID}/items`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=items.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../../core/resource.mjs\";\nimport * as ItemsAPI from \"./items.mjs\";\nimport { Items } from \"./items.mjs\";\nimport { CursorPage } from \"../../../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../../../internal/headers.mjs\";\nimport { path } from \"../../../../../../internal/utils/path.mjs\";\nexport class Turns extends APIResource {\n constructor() {\n super(...arguments);\n this.items = new ItemsAPI.Items(this._client);\n }\n /**\n * Retrieves a turn belonging to this subagent. See\n * [subagent workflows](https://developers.openai.com/api/docs/guides/agents-api/multi-agent).\n *\n * @example\n * ```ts\n * const turn =\n * await client.beta.agents.sessions.subagents.turns.retrieve(\n * 'turn_id',\n * {\n * session_id: 'session_id',\n * subagent_id: 'subagent_id',\n * },\n * );\n * ```\n */\n retrieve(turnID, params, options) {\n const { session_id, subagent_id } = params;\n return this._client.get(path `/agents/sessions/${session_id}/subagents/${subagent_id}/turns/${turnID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists all turns of this subagent, including turns after a resume. See\n * [subagent workflows](https://developers.openai.com/api/docs/guides/agents-api/multi-agent).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const turn of client.beta.agents.sessions.subagents.turns.list(\n * 'subagent_id',\n * { session_id: 'session_id' },\n * )) {\n * // ...\n * }\n * ```\n */\n list(subagentID, params, options) {\n const { session_id, ...query } = params;\n return this._client.getAPIList(path `/agents/sessions/${session_id}/subagents/${subagentID}/turns`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nTurns.Items = Items;\n//# sourceMappingURL=turns.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport * as ItemsAPI from \"./items.mjs\";\nimport { Items } from \"./items.mjs\";\nimport * as TurnsAPI from \"./turns/turns.mjs\";\nimport { Turns } from \"./turns/turns.mjs\";\nimport { CursorPage } from \"../../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../../internal/headers.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class Subagents extends APIResource {\n constructor() {\n super(...arguments);\n this.items = new ItemsAPI.Items(this._client);\n this.turns = new TurnsAPI.Turns(this._client);\n }\n /**\n * Retrieves a subagent belonging to this session. See\n * [subagent workflows](https://developers.openai.com/api/docs/guides/agents-api/multi-agent).\n *\n * @example\n * ```ts\n * const subagent =\n * await client.beta.agents.sessions.subagents.retrieve(\n * 'subagent_id',\n * { session_id: 'session_id' },\n * );\n * ```\n */\n retrieve(subagentID, params, options) {\n const { session_id } = params;\n return this._client.get(path `/agents/sessions/${session_id}/subagents/${subagentID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists subagents in a session, including nested and closed subagents. See\n * [subagent workflows](https://developers.openai.com/api/docs/guides/agents-api/multi-agent).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const subagent of client.beta.agents.sessions.subagents.list(\n * 'session_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(sessionID, query = {}, options) {\n return this._client.getAPIList(path `/agents/sessions/${sessionID}/subagents`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nSubagents.Items = Items;\nSubagents.Turns = Turns;\n//# sourceMappingURL=subagents.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { AgentSessionStream, } from \"../../../../lib/agents/agent-session-stream.mjs\";\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as ArtifactsAPI from \"./artifacts.mjs\";\nimport { Artifacts, } from \"./artifacts.mjs\";\nimport * as EventsAPI from \"./events.mjs\";\nimport { Events } from \"./events.mjs\";\nimport * as ItemsAPI from \"./items.mjs\";\nimport { Items } from \"./items.mjs\";\nimport * as TurnsAPI from \"./turns.mjs\";\nimport { Turns } from \"./turns.mjs\";\nimport * as SubagentsAPI from \"./subagents/subagents.mjs\";\nimport { Subagents } from \"./subagents/subagents.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Sessions extends APIResource {\n constructor() {\n super(...arguments);\n this.subagents = new SubagentsAPI.Subagents(this._client);\n this.artifacts = new ArtifactsAPI.Artifacts(this._client);\n this.items = new ItemsAPI.Items(this._client);\n this.events = new EventsAPI.Events(this._client);\n this.turns = new TurnsAPI.Turns(this._client);\n }\n /** Stream one turn on an idle session with a single input writer. See AgentSessionStream for lifecycle and tool handling. */\n stream(sessionID, params, options) {\n return new AgentSessionStream(this, sessionID, params, options);\n }\n create(body, options) {\n return this._client.post('/agents/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n stream: body.stream ?? false,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves the current state of a managed agent session. See\n * [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).\n *\n * @example\n * ```ts\n * const agentSession =\n * await client.beta.agents.sessions.retrieve('session_id');\n * ```\n */\n retrieve(sessionID, options) {\n return this._client.get(path `/agents/sessions/${sessionID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Updates session metadata, model, reasoning effort, or service tier. Model\n * settings apply to subsequent turns. Omitted fields are unchanged. See\n * [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).\n *\n * @example\n * ```ts\n * const agentSession =\n * await client.beta.agents.sessions.update('session_id');\n * ```\n */\n update(sessionID, body = {}, options) {\n return this._client.post(path `/agents/sessions/${sessionID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists managed agent sessions using ID-based pagination and the requested sort\n * order. See\n * [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const agentSession of client.beta.agents.sessions.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/agents/sessions', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Removes a managed agent session from the public API and returns a deletion\n * confirmation. If backend execution has ended, deletion can cancel a still-open\n * public turn and abandon unpublished outputs. Running execution must be cancelled\n * first. Physical cleanup may continue asynchronously. See\n * [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).\n *\n * @example\n * ```ts\n * const agentSessionDeleted =\n * await client.beta.agents.sessions.delete('session_id');\n * ```\n */\n delete(sessionID, options) {\n return this._client.delete(path `/agents/sessions/${sessionID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nSessions.Subagents = Subagents;\nSessions.Artifacts = Artifacts;\nSessions.Items = Items;\nSessions.Events = Events;\nSessions.Turns = Turns;\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Credentials extends APIResource {\n /**\n * Creates a vault credential. Secret values are write-only and are never returned.\n * See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * const credential =\n * await client.beta.agents.vaults.credentials.create(\n * 'vault_id',\n * {\n * auth: {\n * access_token: 'access_token',\n * mcp_server_url: 'mcp_server_url',\n * type: 'mcp_oauth',\n * },\n * name: 'x',\n * },\n * );\n * ```\n */\n create(vaultID, body, options) {\n return this._client.post(path `/vaults/${vaultID}/credentials`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves vault credential metadata without returning secret values. See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * const credential =\n * await client.beta.agents.vaults.credentials.retrieve(\n * 'credential_id',\n * { vault_id: 'vault_id' },\n * );\n * ```\n */\n retrieve(credentialID, params, options) {\n const { vault_id } = params;\n return this._client.get(path `/vaults/${vault_id}/credentials/${credentialID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Rotates a vault credential's write-only secret and returns only credential\n * metadata. See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * const credential =\n * await client.beta.agents.vaults.credentials.update(\n * 'credential_id',\n * {\n * vault_id: 'vault_id',\n * auth: { type: 'mcp_oauth' },\n * },\n * );\n * ```\n */\n update(credentialID, params, options) {\n const { vault_id, ...body } = params;\n return this._client.post(path `/vaults/${vault_id}/credentials/${credentialID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists a vault's credentials using ID-based pagination without returning secret\n * values. See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const credential of client.beta.agents.vaults.credentials.list(\n * 'vault_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(vaultID, query = {}, options) {\n return this._client.getAPIList(path `/vaults/${vaultID}/credentials`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Deletes a vault credential. See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * const credentialDeleted =\n * await client.beta.agents.vaults.credentials.delete(\n * 'credential_id',\n * { vault_id: 'vault_id' },\n * );\n * ```\n */\n delete(credentialID, params, options) {\n const { vault_id } = params;\n return this._client.delete(path `/vaults/${vault_id}/credentials/${credentialID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=credentials.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as CredentialsAPI from \"./credentials.mjs\";\nimport { Credentials, } from \"./credentials.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Vaults extends APIResource {\n constructor() {\n super(...arguments);\n this.credentials = new CredentialsAPI.Credentials(this._client);\n }\n /**\n * Creates a vault for the current project. See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * const vault = await client.beta.agents.vaults.create();\n * ```\n */\n create(body = {}, options) {\n return this._client.post('/vaults', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves a vault by its ID. See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * const vault = await client.beta.agents.vaults.retrieve(\n * 'vault_id',\n * );\n * ```\n */\n retrieve(vaultID, options) {\n return this._client.get(path `/vaults/${vaultID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists vaults using ID-based pagination. See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const vault of client.beta.agents.vaults.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/vaults', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Deletes a vault and all its credentials. See\n * [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).\n *\n * @example\n * ```ts\n * const vaultDeleted = await client.beta.agents.vaults.delete(\n * 'vault_id',\n * );\n * ```\n */\n delete(vaultID, options) {\n return this._client.delete(path `/vaults/${vaultID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nVaults.Credentials = Credentials;\n//# sourceMappingURL=vaults.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as EnvironmentsAPI from \"./environments/environments.mjs\";\nimport { Environments } from \"./environments/environments.mjs\";\nimport * as SessionsAPI from \"./sessions/sessions.mjs\";\nimport { Sessions, } from \"./sessions/sessions.mjs\";\nimport * as VaultsAPI from \"./vaults/vaults.mjs\";\nimport { Vaults, } from \"./vaults/vaults.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Agents extends APIResource {\n constructor() {\n super(...arguments);\n this.environments = new EnvironmentsAPI.Environments(this._client);\n this.vaults = new VaultsAPI.Vaults(this._client);\n this.sessions = new SessionsAPI.Sessions(this._client);\n }\n /**\n * Creates a reusable agent without storing credentials. See\n * [agent configuration](https://developers.openai.com/api/docs/guides/agents-api/configuration).\n *\n * @example\n * ```ts\n * const agent = await client.beta.agents.create({\n * model: 'model',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/agents', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves a reusable agent by ID. See\n * [agent configuration](https://developers.openai.com/api/docs/guides/agents-api/configuration).\n *\n * @example\n * ```ts\n * const agent = await client.beta.agents.retrieve('agent_id');\n * ```\n */\n retrieve(agentID, options) {\n return this._client.get(path `/agents/${agentID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Updates a reusable agent. See\n * [agent configuration](https://developers.openai.com/api/docs/guides/agents-api/configuration).\n *\n * @example\n * ```ts\n * const agent = await client.beta.agents.update('agent_id');\n * ```\n */\n update(agentID, body = {}, options) {\n return this._client.post(path `/agents/${agentID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Lists reusable agents in the current project. See\n * [agent configuration](https://developers.openai.com/api/docs/guides/agents-api/configuration).\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const agent of client.beta.agents.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/agents', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Deletes a reusable agent. See\n * [agent configuration](https://developers.openai.com/api/docs/guides/agents-api/configuration).\n *\n * @example\n * ```ts\n * const agentDeleted = await client.beta.agents.delete(\n * 'agent_id',\n * );\n * ```\n */\n delete(agentID, options) {\n return this._client.delete(path `/agents/${agentID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'agents=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nAgents.Environments = Environments;\nAgents.Vaults = Vaults;\nAgents.Sessions = Sessions;\n//# sourceMappingURL=agents.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create a ChatKit session.\n *\n * @example\n * ```ts\n * const chatSession =\n * await client.beta.chatkit.sessions.create({\n * user: 'x',\n * workflow: { id: 'id' },\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/chatkit/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Cancel an active ChatKit session and return its most recent metadata.\n *\n * Cancelling prevents new requests from using the issued client secret.\n *\n * @example\n * ```ts\n * const chatSession =\n * await client.beta.chatkit.sessions.cancel('cksess_123');\n * ```\n */\n cancel(sessionID, options) {\n return this._client.post(path `/chatkit/sessions/${sessionID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Threads extends APIResource {\n /**\n * Retrieve a ChatKit thread by its identifier.\n *\n * @example\n * ```ts\n * const chatkitThread =\n * await client.beta.chatkit.threads.retrieve('cthr_123');\n * ```\n */\n retrieve(threadID, options) {\n return this._client.get(path `/chatkit/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * List ChatKit threads with optional pagination and user filters.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatkitThread of client.beta.chatkit.threads.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chatkit/threads', (ConversationCursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a ChatKit thread along with its items and stored attachments.\n *\n * @example\n * ```ts\n * const thread = await client.beta.chatkit.threads.delete(\n * 'cthr_123',\n * );\n * ```\n */\n delete(threadID, options) {\n return this._client.delete(path `/chatkit/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * List items that belong to a ChatKit thread.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const thread of client.beta.chatkit.threads.listItems(\n * 'cthr_123',\n * )) {\n * // ...\n * }\n * ```\n */\n listItems(threadID, query = {}, options) {\n return this._client.getAPIList(path `/chatkit/threads/${threadID}/items`, (ConversationCursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions } from \"./sessions.mjs\";\nimport * as ThreadsAPI from \"./threads.mjs\";\nimport { Threads, } from \"./threads.mjs\";\nexport class ChatKit extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nChatKit.Sessions = Sessions;\nChatKit.Threads = Threads;\n//# sourceMappingURL=chatkit.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class InputItems extends APIResource {\n /**\n * Returns a list of input items for a given response.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaResponseItem of client.beta.responses.inputItems.list(\n * 'response_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(responseID, params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList(path `/responses/${responseID}/input_items?beta=true`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'openai-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=input-items.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class InputTokens extends APIResource {\n /**\n * Returns input token counts of the request.\n *\n * Returns an object with `object` set to `response.input_tokens` and an\n * `input_tokens` count.\n *\n * @example\n * ```ts\n * const response =\n * await client.beta.responses.inputTokens.count();\n * ```\n */\n count(params = {}, options) {\n const { betas, ...body } = params ?? {};\n return this._client.post('/responses/input_tokens?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'openai-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=input-tokens.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as InputItemsAPI from \"./input-items.mjs\";\nimport { InputItems } from \"./input-items.mjs\";\nimport * as InputTokensAPI from \"./input-tokens.mjs\";\nimport { InputTokens } from \"./input-tokens.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Responses extends APIResource {\n constructor() {\n super(...arguments);\n this.inputItems = new InputItemsAPI.InputItems(this._client);\n this.inputTokens = new InputTokensAPI.InputTokens(this._client);\n }\n create(params, options) {\n const { betas, ...body } = params;\n return this._client.post('/responses?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'openai-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n stream: params.stream ?? false,\n __security: { bearerAuth: true },\n });\n }\n retrieve(responseID, params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.get(path `/responses/${responseID}?beta=true`, {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'openai-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n stream: params?.stream ?? false,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Deletes a model response with the given ID.\n *\n * @example\n * ```ts\n * await client.beta.responses.delete(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n delete(responseID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.delete(path `/responses/${responseID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { Accept: '*/*', ...(betas?.toString() != null ? { 'openai-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Cancels a model response with the given ID. Only responses created with the\n * `background` parameter set to `true` can be cancelled.\n * [Learn more](https://developers.openai.com/api/docs/guides/background).\n *\n * @example\n * ```ts\n * const betaResponse = await client.beta.responses.cancel(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n cancel(responseID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.post(path `/responses/${responseID}/cancel?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'openai-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Compact a conversation. Returns a compacted response object.\n *\n * Learn when and how to compact long-running conversations in the\n * [conversation state guide](https://developers.openai.com/api/docs/guides/conversation-state#managing-the-context-window).\n * For ZDR-compatible compaction details, see\n * [Compaction (advanced)](https://developers.openai.com/api/docs/guides/conversation-state#compaction-advanced).\n *\n * @example\n * ```ts\n * const betaCompactedResponse =\n * await client.beta.responses.compact({\n * model: 'gpt-6-astra',\n * });\n * ```\n */\n compact(params, options) {\n const { betas, ...body } = params;\n return this._client.post('/responses/compact?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'openai-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n __security: { bearerAuth: true },\n });\n }\n}\nResponses.InputItems = InputItems;\nResponses.InputTokens = InputTokens;\n//# sourceMappingURL=responses.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * Build Assistants that can call models and use tools.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Messages extends APIResource {\n /**\n * Create a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}/messages`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieve a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(messageID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Modifies a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(messageID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/messages/${messageID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Returns a list of messages for a given thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/messages`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Deletes a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(messageID, params, options) {\n const { thread_id } = params;\n return this._client.delete(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=messages.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * Build Assistants that can call models and use tools.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Steps extends APIResource {\n /**\n * Retrieves a run step.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(stepID, params, options) {\n const { thread_id, run_id, ...query } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${run_id}/steps/${stepID}`, {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Returns a list of run steps belonging to a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(runID, params, options) {\n const { thread_id, ...query } = params;\n return this._client.getAPIList(path `/threads/${thread_id}/runs/${runID}/steps`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=steps.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\nimport { encodeUTF8 } from \"./bytes.mjs\";\nexport const toBase64 = (data) => {\n if (!data)\n return '';\n if (typeof globalThis.Buffer !== 'undefined') {\n return globalThis.Buffer.from(data).toString('base64');\n }\n if (typeof data === 'string') {\n data = encodeUTF8(data);\n }\n if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, data));\n }\n throw new OpenAIError('Cannot generate base64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexport const fromBase64 = (str) => {\n if (typeof globalThis.Buffer !== 'undefined') {\n const buf = globalThis.Buffer.from(str, 'base64');\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n if (typeof atob !== 'undefined') {\n const bstr = atob(str);\n const buf = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n buf[i] = bstr.charCodeAt(i);\n }\n return buf;\n }\n throw new OpenAIError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');\n};\n/**\n * Converts a Base64 encoded string to a Float32Array.\n * @param base64Str - The Base64 encoded string.\n * @returns An Array of numbers interpreted as Float32 values.\n */\nexport const toFloat32Array = (base64Str) => {\n if (typeof Buffer !== 'undefined') {\n // for Node.js environment\n const buf = Buffer.from(base64Str, 'base64');\n if (buf.length % Float32Array.BYTES_PER_ELEMENT !== 0) {\n throw new RangeError('Invalid base64-encoded float32 array: byte length must be a multiple of 4');\n }\n return Array.from(new Float32Array(buf.buffer, buf.byteOffset, buf.length / Float32Array.BYTES_PER_ELEMENT));\n }\n else {\n // for legacy web platform APIs\n const binaryStr = atob(base64Str);\n const len = binaryStr.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryStr.charCodeAt(i);\n }\n return Array.from(new Float32Array(bytes.buffer));\n }\n};\n//# sourceMappingURL=base64.mjs.map","/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nexport const readEnv = (env) => {\n try {\n if (typeof globalThis.process !== 'undefined') {\n return globalThis.process.env?.[env]?.trim() || undefined;\n }\n if (typeof globalThis.Deno !== 'undefined') {\n return globalThis.Deno.env?.get?.(env)?.trim() || undefined;\n }\n }\n catch {\n return undefined;\n }\n return undefined;\n};\n//# sourceMappingURL=env.mjs.map","import { OpenAIError } from \"../error.mjs\";\nimport { hasOwn, isObj } from \"./utils.mjs\";\nconst MAX_ASSISTANT_STREAM_ARRAY_GROWTH = 1024;\nconst MAX_EXTERNALLY_MUTABLE_ASSISTANT_STREAM_ARRAY_LENGTH = 65536;\nfunction getAssistantStreamDiagnosticProperty(property) {\n switch (property) {\n case 'value':\n case 'arguments':\n case 'input':\n case 'text':\n case 'content':\n case 'annotations':\n case 'metadata':\n case 'name':\n case 'role':\n case 'status':\n case 'tool_calls':\n case 'step_details': {\n return property;\n }\n default: {\n return 'unknown';\n }\n }\n}\nconst assistantStreamArrayStates = new WeakMap();\nconst externallyMutableAssistantStreamValues = new WeakSet();\nfunction createAssistantStreamDeltaProjection(cacheArrays) {\n return { arrays: new Map(), cacheArrays, records: new WeakMap() };\n}\nfunction commitAssistantStreamArrayProjection(projection) {\n for (const [array, projected] of projection.arrays) {\n if (projected.cacheable && !externallyMutableAssistantStreamValues.has(array)) {\n assistantStreamArrayStates.set(array, {\n length: projected.length,\n ownEntryCount: projected.ownEntryCount,\n });\n }\n else {\n assistantStreamArrayStates.delete(array);\n }\n }\n}\nfunction isPrimitiveAssistantStreamValue(value) {\n return typeof value === 'string' || typeof value === 'number';\n}\nfunction isPrimitiveAssistantStreamArrayDelta(accumulator, delta) {\n return delta.every(isPrimitiveAssistantStreamValue) && accumulator.every(isPrimitiveAssistantStreamValue);\n}\nfunction countOwnAssistantStreamArrayEntries(accumulator) {\n let count = 0;\n for (const key of Object.keys(accumulator)) {\n const index = Number(key);\n if (Number.isSafeInteger(index) && index >= 0 && index < accumulator.length && String(index) === key) {\n count += 1;\n }\n }\n return count;\n}\nfunction getAssistantStreamArrayOwnEntryCount(accumulator, enforceSparseHoleBudget, cachedState) {\n if (!enforceSparseHoleBudget) {\n return 0;\n }\n if (cachedState?.length === accumulator.length) {\n return cachedState.ownEntryCount;\n }\n return countOwnAssistantStreamArrayEntries(accumulator);\n}\nfunction getAssistantStreamDeltaIndex(deltaEntry, kind, baselineLength) {\n const { index } = deltaEntry;\n if (kind === 'array' && (index === null || index === undefined)) {\n throw new Error('Expected array delta entry to have an `index` property');\n }\n if (kind === 'array' && typeof index !== 'number') {\n throw new TypeError('Expected array delta entry `index` property to be a number but got an invalid value');\n }\n // SAFETY: Number.isSafeInteger rejects non-numbers before numeric comparisons; the remaining checks enforce the permitted index range.\n if (!Number.isSafeInteger(index) ||\n index < 0 ||\n index >= baselineLength + MAX_ASSISTANT_STREAM_ARRAY_GROWTH ||\n index >= MAX_EXTERNALLY_MUTABLE_ASSISTANT_STREAM_ARRAY_LENGTH) {\n const safeIndex = typeof index === 'number' ? index : 'unknown';\n throw new OpenAIError(`Assistant stream delta contains an invalid ${kind} index: ${safeIndex}`);\n }\n // SAFETY: Number.isSafeInteger rejects non-numbers before numeric comparisons; the remaining checks enforce the permitted index range.\n return index;\n}\nfunction assertValidAssistantStreamArrayDelta(accumulator, delta, kind, projection, validateRecord) {\n let projectedArray = projection.arrays.get(accumulator);\n if (!projectedArray) {\n const enforceSparseHoleBudget = projection.cacheArrays && !externallyMutableAssistantStreamValues.has(accumulator);\n const cachedState = enforceSparseHoleBudget ? assistantStreamArrayStates.get(accumulator) : undefined;\n projectedArray = {\n baselineLength: accumulator.length,\n cacheable: enforceSparseHoleBudget,\n enforceSparseHoleBudget,\n entries: new Map(),\n length: accumulator.length,\n ownEntryCount: getAssistantStreamArrayOwnEntryCount(accumulator, enforceSparseHoleBudget, cachedState),\n };\n projection.arrays.set(accumulator, projectedArray);\n }\n for (const deltaEntry of delta) {\n if (!isObj(deltaEntry)) {\n throw new Error('Expected array delta entry to be an object but got an invalid value');\n }\n const validatedIndex = getAssistantStreamDeltaIndex(deltaEntry, kind, projectedArray.baselineLength);\n let accumulatedEntry;\n if (projectedArray.entries.has(validatedIndex)) {\n accumulatedEntry = projectedArray.entries.get(validatedIndex);\n }\n else if (hasOwn(accumulator, validatedIndex)) {\n accumulatedEntry = accumulator[validatedIndex];\n if (accumulatedEntry === null || accumulatedEntry === undefined) {\n projectedArray.entries.set(validatedIndex, deltaEntry);\n }\n }\n else {\n projectedArray.entries.set(validatedIndex, deltaEntry);\n projectedArray.ownEntryCount += 1;\n }\n const projectedLength = Math.max(projectedArray.length, validatedIndex + 1);\n if (projectedArray.enforceSparseHoleBudget &&\n projectedLength - projectedArray.ownEntryCount > MAX_ASSISTANT_STREAM_ARRAY_GROWTH) {\n throw new OpenAIError(`Assistant stream delta contains an invalid ${kind} index: ${validatedIndex}`);\n }\n if (isObj(accumulatedEntry)) {\n validateRecord(accumulatedEntry, deltaEntry, projection);\n }\n projectedArray.length = projectedLength;\n }\n}\nfunction assertValidAssistantStreamDeltaIndices(accumulator, delta, projection) {\n let projectedValues = projection.records.get(accumulator);\n for (const [key, deltaValue] of Object.entries(delta)) {\n if (key === 'index' || key === 'type') {\n continue;\n }\n let accumulatedValue;\n if (projectedValues?.has(key)) {\n accumulatedValue = projectedValues.get(key);\n }\n else if (hasOwn(accumulator, key)) {\n accumulatedValue = accumulator[key];\n }\n if (accumulatedValue === null || accumulatedValue === undefined) {\n if (!projectedValues) {\n projectedValues = new Map();\n projection.records.set(accumulator, projectedValues);\n }\n projectedValues.set(key, deltaValue);\n continue;\n }\n if (isObj(accumulatedValue) && isObj(deltaValue)) {\n assertValidAssistantStreamDeltaIndices(accumulatedValue, deltaValue, projection);\n }\n else if (Array.isArray(accumulatedValue) &&\n Array.isArray(deltaValue) &&\n !isPrimitiveAssistantStreamArrayDelta(accumulatedValue, deltaValue)) {\n assertValidAssistantStreamArrayDelta(accumulatedValue, deltaValue, 'array', projection, assertValidAssistantStreamDeltaIndices);\n }\n }\n}\nexport function isAssistantStreamValueExternallyMutable(value) {\n return (isObj(value) || Array.isArray(value)) && externallyMutableAssistantStreamValues.has(value);\n}\nexport function markAssistantStreamValueExternallyMutable(value) {\n if ((!isObj(value) && !Array.isArray(value)) || externallyMutableAssistantStreamValues.has(value)) {\n return;\n }\n externallyMutableAssistantStreamValues.add(value);\n if (Array.isArray(value)) {\n assistantStreamArrayStates.delete(value);\n }\n for (const key of Reflect.ownKeys(value)) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor && 'value' in descriptor) {\n markAssistantStreamValueExternallyMutable(descriptor.value);\n }\n }\n}\nexport function defineAssistantStreamArrayEntry(accumulator, index, value) {\n if (externallyMutableAssistantStreamValues.has(accumulator)) {\n markAssistantStreamValueExternallyMutable(value);\n }\n Object.defineProperty(accumulator, index, {\n configurable: true,\n enumerable: true,\n value,\n writable: true,\n });\n}\nfunction getRequiredAssistantStreamArrayIndex(deltaEntry) {\n const { index } = deltaEntry;\n if (index === null || index === undefined) {\n throw new Error('Expected array delta entry to have an `index` property');\n }\n if (typeof index !== 'number') {\n throw new TypeError('Expected array delta entry `index` property to be a number but got an invalid value');\n }\n return index;\n}\nfunction applyAssistantStreamArrayDelta(accumulator, delta, applyRecord) {\n if (isPrimitiveAssistantStreamArrayDelta(accumulator, delta)) {\n accumulator.push(...delta);\n assistantStreamArrayStates.delete(accumulator);\n return;\n }\n for (const deltaEntry of delta) {\n if (!isObj(deltaEntry)) {\n throw new Error('Expected array delta entry to be an object but got an invalid value');\n }\n const index = getRequiredAssistantStreamArrayIndex(deltaEntry);\n if (hasOwn(accumulator, index)) {\n const accumulatedEntry = accumulator[index];\n if (accumulatedEntry === null || accumulatedEntry === undefined) {\n if (externallyMutableAssistantStreamValues.has(accumulator)) {\n markAssistantStreamValueExternallyMutable(deltaEntry);\n }\n accumulator[index] = deltaEntry;\n }\n else {\n // SAFETY: The preceding validation accepts this accumulated record before recursively merging the matching delta entry.\n accumulator[index] = applyRecord(accumulatedEntry, deltaEntry);\n }\n }\n else {\n defineAssistantStreamArrayEntry(accumulator, index, deltaEntry);\n }\n }\n}\nfunction applyAssistantStreamDelta(accumulator, delta) {\n const externallyMutable = externallyMutableAssistantStreamValues.has(accumulator);\n for (const [key, deltaValue] of Object.entries(delta)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n throw new OpenAIError(`Assistant stream delta contains an unsafe property: ${key}`);\n }\n if (!hasOwn(accumulator, key)) {\n if (externallyMutable) {\n markAssistantStreamValueExternallyMutable(deltaValue);\n }\n accumulator[key] = deltaValue;\n continue;\n }\n let accumulatedValue = accumulator[key];\n if (accumulatedValue === null || accumulatedValue === undefined) {\n if (externallyMutable) {\n markAssistantStreamValueExternallyMutable(deltaValue);\n }\n accumulator[key] = deltaValue;\n continue;\n }\n if (key === 'index' || key === 'type') {\n accumulator[key] = deltaValue;\n continue;\n }\n if (typeof accumulatedValue === 'string' && typeof deltaValue === 'string') {\n accumulatedValue += deltaValue;\n }\n else if (typeof accumulatedValue === 'number' && typeof deltaValue === 'number') {\n accumulatedValue += deltaValue;\n }\n else if (isObj(accumulatedValue) && isObj(deltaValue)) {\n accumulatedValue = applyAssistantStreamDelta(accumulatedValue, deltaValue);\n }\n else if (Array.isArray(accumulatedValue) && Array.isArray(deltaValue)) {\n applyAssistantStreamArrayDelta(accumulatedValue, deltaValue, applyAssistantStreamDelta);\n continue;\n }\n else {\n throw new TypeError(`Unhandled record type: ${getAssistantStreamDiagnosticProperty(key)}`);\n }\n accumulator[key] = accumulatedValue;\n }\n return accumulator;\n}\nexport function assertSafeAssistantStreamDelta(value) {\n if (!isObj(value) && !Array.isArray(value)) {\n return;\n }\n for (const [key, nestedValue] of Object.entries(value)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n throw new OpenAIError(`Assistant stream delta contains an unsafe property: ${key}`);\n }\n assertSafeAssistantStreamDelta(nestedValue);\n }\n}\nexport function accumulateAssistantStreamDelta(accumulator, \n// oxlint-disable-next-line anti-slop/no-object-parameters -- This exported accumulator accepts heterogeneous partial SDK deltas and validates their properties at runtime.\ndelta, cacheArrays = false) {\n assertSafeAssistantStreamDelta(delta);\n // SAFETY: The generic accumulator uses record entries after delta validation; recursive merge retains the original accumulator's public type.\n const accumulatorRecord = accumulator;\n // SAFETY: The generic accumulator uses record entries after delta validation; recursive merge retains the original accumulator's public type.\n const deltaRecord = delta;\n const projection = createAssistantStreamDeltaProjection(cacheArrays && !isAssistantStreamValueExternallyMutable(accumulator));\n assertValidAssistantStreamDeltaIndices(accumulatorRecord, deltaRecord, projection);\n applyAssistantStreamDelta(accumulatorRecord, deltaRecord);\n commitAssistantStreamArrayProjection(projection);\n return accumulator;\n}\nexport function createAssistantStreamArrayDeltaCommit(accumulator, delta, kind, cacheArrays = true) {\n assertSafeAssistantStreamDelta(delta);\n const projection = createAssistantStreamDeltaProjection(cacheArrays && !isAssistantStreamValueExternallyMutable(accumulator));\n assertValidAssistantStreamArrayDelta(accumulator, delta, kind, projection, assertValidAssistantStreamDeltaIndices);\n return () => commitAssistantStreamArrayProjection(projection);\n}\n//# sourceMappingURL=assistant-stream-delta.mjs.map","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;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { APIError, OpenAIError } from \"../error.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { hasOwn } from \"../internal/utils.mjs\";\nimport { accumulateAssistantStreamDelta, assertSafeAssistantStreamDelta, createAssistantStreamArrayDeltaCommit, defineAssistantStreamArrayEntry, isAssistantStreamValueExternallyMutable, markAssistantStreamValueExternallyMutable, } from \"../internal/assistant-stream-delta.mjs\";\nfunction stabilizeAssistantStreamEvent(event) {\n const eventDescriptor = Object.getOwnPropertyDescriptor(event, 'event');\n const dataDescriptor = Object.getOwnPropertyDescriptor(event, 'data');\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Reflective wire reads reject primitive frames and preserve the original event receiver.\n const eventType = Reflect.get(event, 'event', event);\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Keep the paired wire-data read on the original receiver after reading the event discriminator.\n const data = Reflect.get(event, 'data', event);\n let stableData = data;\n if (eventType === 'thread.message.created' ||\n eventType === 'thread.message.in_progress' ||\n eventType === 'thread.message.delta' ||\n eventType === 'thread.message.completed' ||\n eventType === 'thread.message.incomplete' ||\n eventType === 'thread.run.step.created' ||\n eventType === 'thread.run.step.in_progress' ||\n eventType === 'thread.run.step.delta' ||\n eventType === 'thread.run.step.completed' ||\n eventType === 'thread.run.step.failed' ||\n eventType === 'thread.run.step.cancelled' ||\n eventType === 'thread.run.step.expired') {\n const messageID = Object.getOwnPropertyDescriptor(data, 'id');\n if (messageID &&\n 'value' in messageID &&\n // SAFETY: The own id descriptor was found above; keep its live read unknown while comparing it with the captured descriptor value.\n data.id !== messageID.value) {\n // SAFETY: Descriptor values are untyped; retaining this value as unknown avoids trusting a mutable message identifier.\n const canonicalID = messageID.value;\n // SAFETY: The proxy retains the event data and substitutes only its captured own id; all other properties forward to the original receiver.\n stableData = new Proxy(data, {\n get(target, property) {\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys with the original target as accessor receiver.\n return property === 'id' ? canonicalID : Reflect.get(target, property, target);\n },\n });\n }\n }\n // SAFETY: The captured event discriminator and data originate from the same event; TypeScript loses their correlation when constructing the stabilized copy.\n const stableEvent = Object.freeze({ event: eventType, data: stableData });\n const ordinaryEvent = eventDescriptor !== undefined &&\n 'value' in eventDescriptor &&\n eventDescriptor.value === eventType &&\n dataDescriptor !== undefined &&\n 'value' in dataDescriptor &&\n dataDescriptor.value === data &&\n stableData === data;\n // SAFETY: The captured event discriminator and data originate from the same event; TypeScript loses their correlation when constructing the stabilized copy.\n return {\n event: stableEvent,\n exposedEvent: ordinaryEvent ? event : { event: eventType, data: stableData },\n };\n}\n/** Streams assistant-run events while accumulating messages, run steps, and tool-call snapshots. */\nexport class AssistantStream extends EventStream {\n constructor() {\n super(...arguments);\n _AssistantStream_instances.add(this);\n //Used to accumulate deltas\n //We are accumulating many types so the value here is not strict\n _AssistantStream_runStepSnapshots.set(this, Object.create(null));\n _AssistantStream_runStepIDOwners.set(this, new Map());\n _AssistantStream_activeRunStepID.set(this, void 0);\n _AssistantStream_messageSnapshots.set(this, Object.create(null));\n _AssistantStream_messageIDOwners.set(this, new Map());\n _AssistantStream_messageSnapshot.set(this, void 0);\n _AssistantStream_activeMessageID.set(this, void 0);\n _AssistantStream_finalRun.set(this, void 0);\n _AssistantStream_currentContentIndex.set(this, void 0);\n _AssistantStream_currentContent.set(this, void 0);\n _AssistantStream_currentToolCallIndex.set(this, void 0);\n _AssistantStream_currentToolCall.set(this, void 0);\n //For current snapshot methods\n _AssistantStream_currentEvent.set(this, void 0);\n _AssistantStream_currentRunSnapshot.set(this, void 0);\n _AssistantStream_currentRunStepSnapshot.set(this, void 0);\n }\n /** Iterates over cloned raw assistant events; stopping early aborts the underlying request. */\n [(_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)]() {\n return this._createIterator((push) => {\n //Catch all for passing along all events\n const onEvent = (event) => push(structuredClone(event));\n this.on('event', onEvent);\n return () => this.off('event', onEvent);\n }, { onReturn: () => this.abort() });\n }\n /** Restores an assistant stream from events serialized by `toReadableStream()`. */\n static fromReadableStream(stream) {\n const runner = new AssistantStream();\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n async _fromReadableStream(readableStream, options) {\n this._listenForAbort(options?.signal);\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw this._userAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n /** Serializes assistant events into a readable stream for transfer to another runtime. */\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n /** Submits tool outputs and starts streaming the continuation of an existing assistant run. */\n static createToolAssistantStream(runId, runs, params, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._runToolAssistantStream(runId, runs, params, {\n ...options,\n __metadata: { ...options?.__metadata, helperMethod: 'stream' },\n }));\n return runner;\n }\n async _createToolAssistantStream(run, runId, params, options) {\n this._listenForAbort(options?.signal);\n const body = { ...params, stream: true };\n const stream = await run.submitToolOutputs(runId, body, {\n ...options,\n signal: this.controller.signal,\n });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw this._userAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n /** Creates an assistant thread and starts streaming its newly created run. */\n static createThreadAssistantStream(params, thread, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._threadAssistantStream(params, thread, {\n ...options,\n __metadata: { ...options?.__metadata, helperMethod: 'stream' },\n }));\n return runner;\n }\n /** Creates a run on an existing assistant thread and starts streaming its events. */\n static createAssistantStream(threadId, runs, params, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._runAssistantStream(threadId, runs, params, {\n ...options,\n __metadata: { ...options?.__metadata, helperMethod: 'stream' },\n }));\n return runner;\n }\n /** Returns the most recent raw event, or `undefined` before any event arrives. */\n currentEvent() {\n markAssistantStreamValueExternallyMutable(__classPrivateFieldGet(this, _AssistantStream_currentEvent, \"f\"));\n return __classPrivateFieldGet(this, _AssistantStream_currentEvent, \"f\");\n }\n /** Returns the latest run snapshot, or `undefined` before a run event arrives. */\n currentRun() {\n markAssistantStreamValueExternallyMutable(__classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, \"f\"));\n return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, \"f\");\n }\n /** Returns the message currently being accumulated, or `undefined` before message creation. */\n currentMessageSnapshot() {\n markAssistantStreamValueExternallyMutable(__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\");\n }\n /** Returns the run step currently being accumulated, or `undefined` before a step begins. */\n currentRunStepSnapshot() {\n markAssistantStreamValueExternallyMutable(__classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\"));\n return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\");\n }\n /** Waits for successful completion and returns the final snapshot of every observed run step. */\n async finalRunSteps() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"));\n }\n /**\n * Waits for successful completion and returns the final snapshot of every observed message.\n * Terminal message events replace accumulated snapshots without mutating earlier snapshots.\n */\n async finalMessages() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\"));\n }\n /** Waits for completion and returns the final run, or rejects if no terminal run was received. */\n async finalRun() {\n await this.done();\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\")) {\n throw new Error('Final run was not received.');\n }\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n }\n async _createThreadAssistantStream(thread, params, options) {\n this._listenForAbort(options?.signal);\n const body = { ...params, stream: true };\n const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw this._userAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n async _createAssistantStream(run, threadId, params, options) {\n this._listenForAbort(options?.signal);\n const body = { ...params, stream: true };\n const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw this._userAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n /**\n * Applies an assistant delta to its mutable snapshot, concatenating text and\n * merging nested objects and indexed array entries.\n */\n static accumulateDelta(acc, delta) {\n return accumulateAssistantStreamDelta(acc, delta);\n }\n _addRun(run) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'run', run);\n return run;\n }\n async _threadAssistantStream(params, thread, options) {\n return await this._createThreadAssistantStream(thread, params, options);\n }\n async _runAssistantStream(threadId, runs, params, options) {\n return await this._createAssistantStream(runs, threadId, params, options);\n }\n async _runToolAssistantStream(runId, runs, params, options) {\n return await this._createToolAssistantStream(runs, runId, params, options);\n }\n}\n_AssistantStream_addEvent = function _AssistantStream_addEvent(event) {\n if (this.ended) {\n return;\n }\n const { event: stableEvent, exposedEvent } = stabilizeAssistantStreamEvent(event);\n let messageID;\n let messageData;\n let runStepID;\n let runStepData;\n switch (stableEvent.event) {\n case 'thread.message.created':\n case 'thread.message.in_progress':\n case 'thread.message.delta':\n case 'thread.message.completed':\n case 'thread.message.incomplete': {\n messageID = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_validateMessageEvent).call(this, stableEvent);\n messageData = stableEvent.data;\n break;\n }\n case 'thread.run.step.created':\n case 'thread.run.step.in_progress':\n case 'thread.run.step.delta':\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired': {\n runStepID = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_validateRunStepEvent).call(this, stableEvent);\n runStepData = stableEvent.data;\n break;\n }\n }\n __classPrivateFieldSet(this, _AssistantStream_currentEvent, exposedEvent, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleEvent).call(this, exposedEvent);\n if (messageID !== undefined && messageData !== undefined) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveMessageAlias).call(this, messageData, messageID);\n }\n if (runStepID !== undefined && runStepData !== undefined) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveRunStepAlias).call(this, runStepData, runStepID);\n }\n if (runStepID === undefined && __classPrivateFieldGet(this, _AssistantStream_activeRunStepID, \"f\") !== undefined && __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\")) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveRunStepAlias).call(this, __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\"), __classPrivateFieldGet(this, _AssistantStream_activeRunStepID, \"f\"));\n }\n switch (stableEvent.event) {\n case 'thread.created': {\n //No action on this event.\n break;\n }\n case 'thread.run.created':\n case 'thread.run.queued':\n case 'thread.run.in_progress':\n case 'thread.run.requires_action':\n case 'thread.run.completed':\n case 'thread.run.incomplete':\n case 'thread.run.failed':\n case 'thread.run.cancelling':\n case 'thread.run.cancelled':\n case 'thread.run.expired': {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRun).call(this, stableEvent);\n break;\n }\n case 'thread.run.step.created':\n case 'thread.run.step.in_progress':\n case 'thread.run.step.delta':\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired': {\n if (runStepID === undefined) {\n throw new OpenAIError('Received assistant run-step event without a canonical run-step ID');\n }\n const activeRunStep = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID];\n if (activeRunStep) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveRunStepAlias).call(this, activeRunStep, runStepID);\n }\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRunStep).call(this, stableEvent, runStepID);\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveRunStepAlias).call(this, stableEvent.data, runStepID);\n const retainedRunStep = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID];\n if (retainedRunStep) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveRunStepAlias).call(this, retainedRunStep, runStepID);\n }\n break;\n }\n case 'thread.message.created':\n case 'thread.message.in_progress':\n case 'thread.message.delta':\n case 'thread.message.completed':\n case 'thread.message.incomplete': {\n if (messageID !== undefined && __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveMessageAlias).call(this, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"), messageID);\n }\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleMessage).call(this, stableEvent);\n if (messageID !== undefined) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveMessageAlias).call(this, stableEvent.data, messageID);\n const retainedMessage = __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\")[messageID];\n if (retainedMessage) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_reserveMessageAlias).call(this, retainedMessage, messageID);\n }\n }\n break;\n }\n case 'error': {\n throw new APIError(undefined, stableEvent.data, undefined, undefined);\n }\n default: {\n assertNever(stableEvent);\n }\n }\n}, _AssistantStream_endRequest = function _AssistantStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\")) {\n throw new Error('Final run has not been received');\n }\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n}, _AssistantStream_validateRunStepEvent = function _AssistantStream_validateRunStepEvent(event) {\n const descriptor = Object.getOwnPropertyDescriptor(event.data, 'id');\n const runStepID = descriptor && 'value' in descriptor ? descriptor.value : undefined;\n if (typeof runStepID !== 'string' || runStepID.length === 0) {\n throw new OpenAIError('Received assistant run-step event with an invalid run-step ID');\n }\n if (event.event === 'thread.run.step.delta') {\n const delta = event.data.delta;\n if (delta && hasOwn(delta, 'id')) {\n throw new OpenAIError('Run-step deltas must not contain an id field');\n }\n }\n if (event.event === 'thread.run.step.created') {\n if (__classPrivateFieldGet(this, _AssistantStream_activeRunStepID, \"f\") !== undefined) {\n throw new OpenAIError(`Received run-step creation for \"${runStepID}\" before the active run step \"${__classPrivateFieldGet(this, _AssistantStream_activeRunStepID, \"f\")}\" reached a terminal state`);\n }\n if (hasOwn(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"), runStepID) || __classPrivateFieldGet(this, _AssistantStream_runStepIDOwners, \"f\").has(runStepID)) {\n throw new OpenAIError(`Received run-step creation for run step \"${runStepID}\", which has already been created`);\n }\n __classPrivateFieldSet(this, _AssistantStream_activeRunStepID, runStepID, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_runStepIDOwners, \"f\").set(runStepID, runStepID);\n return runStepID;\n }\n if (__classPrivateFieldGet(this, _AssistantStream_activeRunStepID, \"f\") !== undefined) {\n if (runStepID !== __classPrivateFieldGet(this, _AssistantStream_activeRunStepID, \"f\")) {\n throw new OpenAIError(`Received ${event.event} for run step \"${runStepID}\", which does not match the active run step \"${__classPrivateFieldGet(this, _AssistantStream_activeRunStepID, \"f\")}\"`);\n }\n return runStepID;\n }\n if (event.event === 'thread.run.step.delta') {\n if (!hasOwn(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"), runStepID)) {\n throw new OpenAIError('Received a RunStepDelta before creation of a snapshot');\n }\n throw new OpenAIError(`Received run-step delta for \"${runStepID}\" with no active run step`);\n }\n if (hasOwn(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"), runStepID) || __classPrivateFieldGet(this, _AssistantStream_runStepIDOwners, \"f\").has(runStepID)) {\n throw new OpenAIError(`Received run-step event for run step \"${runStepID}\", which has already been created`);\n }\n __classPrivateFieldGet(this, _AssistantStream_runStepIDOwners, \"f\").set(runStepID, runStepID);\n if (event.event === 'thread.run.step.in_progress') {\n __classPrivateFieldSet(this, _AssistantStream_activeRunStepID, runStepID, \"f\");\n }\n return runStepID;\n}, _AssistantStream_reserveRunStepAlias = function _AssistantStream_reserveRunStepAlias(data, canonicalID) {\n const descriptor = Object.getOwnPropertyDescriptor(data, 'id');\n const runStepID = descriptor && 'value' in descriptor ? descriptor.value : undefined;\n if (typeof runStepID !== 'string' || runStepID.length === 0) {\n throw new OpenAIError('Received assistant run-step event with an invalid run-step ID');\n }\n const owner = __classPrivateFieldGet(this, _AssistantStream_runStepIDOwners, \"f\").get(runStepID);\n if (owner !== undefined && owner !== canonicalID) {\n throw new OpenAIError(`Received run-step creation for run step \"${runStepID}\", which has already been created`);\n }\n __classPrivateFieldGet(this, _AssistantStream_runStepIDOwners, \"f\").set(runStepID, canonicalID);\n}, _AssistantStream_validateMessageEvent = function _AssistantStream_validateMessageEvent(event) {\n const descriptor = Object.getOwnPropertyDescriptor(event.data, 'id');\n const messageID = descriptor && 'value' in descriptor ? descriptor.value : undefined;\n if (typeof messageID !== 'string' || messageID.length === 0) {\n throw new OpenAIError('Received assistant message event with an invalid message ID');\n }\n if (event.event === 'thread.message.created') {\n if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n throw new OpenAIError(`Received message creation for \"${messageID}\" before the active message \"${__classPrivateFieldGet(this, _AssistantStream_activeMessageID, \"f\")}\" reached a terminal state`);\n }\n if (hasOwn(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\"), messageID) || __classPrivateFieldGet(this, _AssistantStream_messageIDOwners, \"f\").has(messageID)) {\n throw new OpenAIError(`Received message creation for message \"${messageID}\", which has already been created`);\n }\n __classPrivateFieldSet(this, _AssistantStream_activeMessageID, messageID, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_messageIDOwners, \"f\").set(messageID, messageID);\n return messageID;\n }\n if (!__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n if (event.event === 'thread.message.delta') {\n throw new OpenAIError('Received a delta with no existing snapshot (there should be one from message creation)');\n }\n throw new OpenAIError('Received thread message event with no existing snapshot');\n }\n if (messageID !== __classPrivateFieldGet(this, _AssistantStream_activeMessageID, \"f\")) {\n throw new OpenAIError(`Received ${event.event} for message \"${messageID}\", which does not match the active message \"${__classPrivateFieldGet(this, _AssistantStream_activeMessageID, \"f\")}\"`);\n }\n return messageID;\n}, _AssistantStream_reserveMessageAlias = function _AssistantStream_reserveMessageAlias(data, canonicalID) {\n const descriptor = Object.getOwnPropertyDescriptor(data, 'id');\n const messageID = descriptor && 'value' in descriptor ? descriptor.value : undefined;\n if (typeof messageID !== 'string' || messageID.length === 0) {\n throw new OpenAIError('Received assistant message event with an invalid message ID');\n }\n const owner = __classPrivateFieldGet(this, _AssistantStream_messageIDOwners, \"f\").get(messageID);\n if (owner !== undefined && owner !== canonicalID) {\n throw new OpenAIError(`Received message creation for message \"${messageID}\", which has already been created`);\n }\n __classPrivateFieldGet(this, _AssistantStream_messageIDOwners, \"f\").set(messageID, canonicalID);\n}, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {\n const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, \"f\");\n if (!__classPrivateFieldGet(this, _AssistantStream_activeMessageID, \"f\")) {\n throw new OpenAIError('Received thread message event with no active message ID');\n }\n __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\")[__classPrivateFieldGet(this, _AssistantStream_activeMessageID, \"f\")] = accumulatedMessage;\n for (const content of newContent) {\n const snapshotContent = accumulatedMessage.content[content.index];\n if (snapshotContent?.type === 'text') {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'textCreated', snapshotContent.text);\n }\n }\n switch (event.event) {\n case 'thread.message.created': {\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, undefined, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentContent, undefined, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'messageCreated', event.data);\n break;\n }\n case 'thread.message.in_progress': {\n break;\n }\n case 'thread.message.delta': {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'messageDelta', event.data.delta, accumulatedMessage);\n if (event.data.delta.content) {\n for (const content of event.data.delta.content) {\n //If it is text delta, emit a text delta event\n if (content.type === 'text' && content.text) {\n const textDelta = content.text;\n const snapshot = accumulatedMessage.content[content.index];\n if (snapshot && snapshot.type === 'text') {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'textDelta', textDelta, snapshot.text);\n }\n else {\n throw new Error('The snapshot associated with this text delta is not text or missing');\n }\n }\n if (content.index !== __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")) {\n //See if we have in progress content\n if (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\")) {\n switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").type) {\n case 'text': {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n case 'image_file': {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, \"f\");\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], \"f\");\n }\n }\n break;\n }\n case 'thread.message.completed':\n case 'thread.message.incomplete': {\n //We emit the latest content we were working on on completion (including incomplete)\n if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\") !== undefined) {\n const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")];\n if (currentContent) {\n switch (currentContent.type) {\n case 'image_file': {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n case 'text': {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n }\n }\n if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'messageDone', event.data);\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, undefined, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentContent, undefined, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_activeMessageID, undefined, \"f\");\n }\n }\n}, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event, runStepID) {\n const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateRunStep).call(this, event, runStepID);\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, \"f\");\n switch (event.event) {\n case 'thread.run.step.created': {\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, undefined, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'runStepCreated', event.data);\n break;\n }\n case 'thread.run.step.delta': {\n const delta = event.data.delta;\n if (delta.step_details &&\n delta.step_details.type === 'tool_calls' &&\n delta.step_details.tool_calls &&\n accumulatedRunStep.step_details.type === 'tool_calls') {\n for (const toolCall of delta.step_details.tool_calls) {\n if (toolCall.index === __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, \"f\")) {\n // SAFETY: The indexed tool call comes from this run-step snapshot after applying the delta for the same tool-call index.\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);\n }\n else {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n }\n }\n }\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'runStepDelta', event.data.delta, accumulatedRunStep);\n break;\n }\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired': {\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_activeRunStepID, undefined, \"f\");\n const details = event.data.step_details;\n if (details.type === 'tool_calls' && __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'runStepDone', event.data, accumulatedRunStep);\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, undefined, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n break;\n }\n case 'thread.run.step.in_progress': {\n break;\n }\n }\n}, _AssistantStream_emitExposed = function _AssistantStream_emitExposed(event, ...args) {\n if (this._hasListeners(event)) {\n for (const value of args) {\n markAssistantStreamValueExternallyMutable(value);\n }\n }\n this._emit(event, ...args);\n}, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'event', event);\n}, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event, runStepID) {\n switch (event.event) {\n case 'thread.run.step.created': {\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID] = event.data;\n return event.data;\n }\n case 'thread.run.step.delta': {\n // SAFETY: Run-step snapshots are stored by their canonical run-step id; the delta path checks that the snapshot exists before updating it.\n const snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID];\n if (!snapshot) {\n throw new Error('Received a RunStepDelta before creation of a snapshot');\n }\n const delta = event.data.delta;\n if (delta) {\n // Raw-event listeners can replace or modify the delta after initial validation.\n if (hasOwn(delta, 'id')) {\n throw new OpenAIError('Run-step deltas must not contain an id field');\n }\n const accumulated = accumulateAssistantStreamDelta(snapshot, delta, true);\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID] = accumulated;\n }\n // SAFETY: Run-step snapshots are stored by their canonical run-step id; the delta path checks that the snapshot exists before updating it.\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID];\n }\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n case 'thread.run.step.in_progress': {\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID] = event.data;\n break;\n }\n }\n if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID]) {\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[runStepID];\n }\n throw new Error('No snapshot available');\n}, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {\n const newContent = [];\n switch (event.event) {\n case 'thread.message.created': {\n //On creation the snapshot is just the initial message\n return [event.data, newContent];\n }\n case 'thread.message.delta': {\n if (!snapshot) {\n throw new Error('Received a delta with no existing snapshot (there should be one from message creation)');\n }\n const data = event.data;\n //If this delta does not have content, nothing to process\n if (data.delta.content) {\n assertSafeAssistantStreamDelta(data.delta);\n const cacheArrays = !isAssistantStreamValueExternallyMutable(snapshot);\n const commitProjection = createAssistantStreamArrayDeltaCommit(snapshot.content, data.delta.content, 'content', cacheArrays);\n for (const contentElement of data.delta.content) {\n if (hasOwn(snapshot.content, contentElement.index)) {\n const currentContent = snapshot.content[contentElement.index];\n snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateContent).call(this, contentElement, currentContent, cacheArrays);\n }\n else {\n defineAssistantStreamArrayEntry(snapshot.content, contentElement.index, contentElement);\n // This is a new element\n newContent.push(contentElement);\n }\n }\n commitProjection();\n }\n return [snapshot, newContent];\n }\n case 'thread.message.in_progress':\n case 'thread.message.completed':\n case 'thread.message.incomplete': {\n //Terminal events provide the authoritative message snapshot.\n if (snapshot) {\n return [event.event === 'thread.message.in_progress' ? snapshot : event.data, newContent];\n }\n throw new Error('Received thread message event with no existing snapshot');\n }\n }\n throw new Error('Tried to accumulate a non-message event');\n}, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent, cacheArrays) {\n // SAFETY: The accumulator merges the matching message-content delta into its existing block; the public return remains the text/image block union.\n return accumulateAssistantStreamDelta(currentContent, contentElement, cacheArrays);\n}, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {\n __classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, \"f\");\n switch (event.event) {\n case 'thread.run.created': {\n break;\n }\n case 'thread.run.queued': {\n break;\n }\n case 'thread.run.in_progress': {\n break;\n }\n case 'thread.run.requires_action':\n case 'thread.run.cancelled':\n case 'thread.run.failed':\n case 'thread.run.completed':\n case 'thread.run.expired':\n case 'thread.run.incomplete': {\n __classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_emitExposed).call(this, 'toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, undefined, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n break;\n }\n case 'thread.run.cancelling': {\n break;\n }\n }\n};\nfunction assertNever(_x) {\n return _x;\n}\n//# sourceMappingURL=AssistantStream.mjs.map","import { APIUserAbortError } from \"../core/error.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { sleep } from \"../internal/utils/sleep.mjs\";\nfunction sleepUntilAborted(milliseconds, signal) {\n // oxlint-disable-next-line promise/avoid-new -- Timer and abort callbacks need a portable Promise bridge.\n return new Promise((resolve, reject) => {\n let timer;\n let registered;\n let settled = false;\n const removeAbortListener = (listener) => {\n try {\n signal.removeEventListener('abort', listener);\n }\n catch {\n // Caller-controlled cleanup must never prevent the polling promise from settling.\n }\n };\n const cleanup = () => {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n if (registered) {\n const listener = registered;\n registered = undefined;\n removeAbortListener(listener);\n }\n };\n const abort = () => {\n if (settled) {\n return;\n }\n settled = true;\n cleanup();\n try {\n const error = new APIUserAbortError();\n Object.defineProperty(error, 'cause', {\n value: signal.reason,\n writable: true,\n configurable: true,\n });\n reject(error);\n }\n catch (error) {\n reject(error);\n }\n };\n if (signal.aborted) {\n abort();\n return;\n }\n timer = setTimeout(() => {\n if (settled) {\n return;\n }\n settled = true;\n cleanup();\n resolve();\n }, milliseconds);\n registered = abort;\n try {\n signal.addEventListener('abort', abort, { once: true });\n if (settled) {\n removeAbortListener(abort);\n }\n else if (signal.aborted) {\n abort();\n }\n }\n catch (error) {\n if (settled) {\n removeAbortListener(abort);\n }\n else {\n settled = true;\n cleanup();\n reject(error);\n }\n }\n });\n}\n/**\n * Repeatedly retrieves a lifecycle resource using the existing polling-helper\n * headers. Intermediate states wait for the explicit interval (including zero),\n * the server interval, or five-second default; terminal states return the same parsed object.\n * The caller's signal interrupts intermediate waits, unknown states retry\n * immediately, and retrieval errors propagate unchanged.\n *\n * @internal\n */\nexport async function pollWithResponse(retrieve, intermediateStatuses, terminalStatuses, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n // oxlint-disable-next-line no-await-in-loop -- Each poll depends on the previous response.\n const { data, response } = await retrieve(headers).withResponse();\n const { status } = data;\n if (intermediateStatuses.includes(status)) {\n let sleepInterval = 5000;\n const pollIntervalMs = options?.pollIntervalMs;\n if (pollIntervalMs || pollIntervalMs === 0) {\n sleepInterval = pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n // oxlint-disable-next-line radix -- Preserve the existing decimal and hexadecimal header parsing.\n const headerIntervalMs = Number.parseInt(headerInterval);\n if (!Number.isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n const signal = options && Object.prototype.propertyIsEnumerable.call(options, 'signal') ? options.signal : undefined;\n // oxlint-disable-next-line no-await-in-loop -- Each poll waits or aborts before the next request.\n await (signal ? sleepUntilAborted(sleepInterval, signal) : sleep(sleepInterval));\n }\n else if (terminalStatuses.includes(status)) {\n return data;\n }\n }\n}\n//# sourceMappingURL=polling.mjs.map","import { pollWithResponse } from \"./polling.mjs\";\n/**\n * Polls an assistant run through the resource's retrieve method, preserving the\n * original params object, request-header merge, and terminal run states.\n *\n * @internal\n */\nexport function pollAssistantRun(resource, runID, params, options) {\n return pollWithResponse((headers) => resource.retrieve(runID, params, {\n ...options,\n headers: { ...options?.headers, ...headers },\n }), ['queued', 'in_progress', 'cancelling'], ['requires_action', 'incomplete', 'cancelled', 'completed', 'failed', 'expired'], options);\n}\n//# sourceMappingURL=assistant-run-polling.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as StepsAPI from \"./steps.mjs\";\nimport { Steps, } from \"./steps.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../../lib/AssistantStream.mjs\";\nimport { pollAssistantRun } from \"../../../../lib/assistant-run-polling.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * Build Assistants that can call models and use tools.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.steps = new StepsAPI.Steps(this._client);\n }\n create(threadID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/threads/${threadID}/runs`, {\n query: { include },\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n __synthesizeEventData: true,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(runID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${runID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Modifies a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Returns a list of runs belonging to a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/runs`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Cancels a run that is `in_progress`.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n cancel(runID, params, options) {\n const { thread_id } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * A helper to create a run an poll for a terminal state. More information on Run\n * lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndPoll(threadId, body, options) {\n const run = await this.create(threadId, body, options);\n return await this.poll(run.id, { thread_id: threadId }, options);\n }\n /**\n * Create a Run stream\n *\n * @deprecated use `stream` instead\n */\n createAndStream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n /**\n * A helper to poll a run status until it reaches a terminal state. More\n * information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async poll(runId, params, options) {\n return await pollAssistantRun(this, runId, params, options);\n }\n /**\n * Create a Run stream\n */\n stream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n submitToolOutputs(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/submit_tool_outputs`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n __synthesizeEventData: true,\n __security: { bearerAuth: true },\n });\n }\n /**\n * A helper to submit a tool output to a run and poll for a terminal run state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async submitToolOutputsAndPoll(runId, params, options) {\n const run = await this.submitToolOutputs(runId, params, options);\n return await this.poll(run.id, params, options);\n }\n /**\n * Submit the tool outputs from a previous run and stream the run to a terminal\n * state. More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n submitToolOutputsStream(runId, params, options) {\n return AssistantStream.createToolAssistantStream(runId, this._client.beta.threads.runs, params, options);\n }\n}\nRuns.Steps = Steps;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages, } from \"./messages.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../lib/AssistantStream.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * Build Assistants that can call models and use tools.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Threads extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n /**\n * Create a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(body = {}, options) {\n return this._client.post('/threads', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(threadID, options) {\n return this._client.get(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Modifies a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(threadID, options) {\n return this._client.delete(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n createAndRun(body, options) {\n return this._client.post('/threads/runs', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: body.stream ?? false,\n __synthesizeEventData: true,\n __security: { bearerAuth: true },\n });\n }\n /**\n * A helper to create a thread, start a run and then poll for a terminal state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndRunPoll(body, options) {\n const run = await this.createAndRun(body, options);\n return await this.runs.poll(run.id, { thread_id: run.thread_id }, options);\n }\n /**\n * Create a thread and stream the run back\n */\n createAndRunStream(body, options) {\n return AssistantStream.createThreadAssistantStream(body, this._client.beta.threads, options);\n }\n}\nThreads.Runs = Runs;\nThreads.Messages = Messages;\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as AssistantsAPI from \"./assistants.mjs\";\nimport { Assistants, } from \"./assistants.mjs\";\nimport * as RealtimeAPI from \"./realtime/realtime.mjs\";\nimport { Realtime, } from \"./realtime/realtime.mjs\";\nimport * as AgentsAPI from \"./agents/agents.mjs\";\nimport { Agents, } from \"./agents/agents.mjs\";\nimport * as ChatKitAPI from \"./chatkit/chatkit.mjs\";\nimport { ChatKit } from \"./chatkit/chatkit.mjs\";\nimport * as ResponsesAPI from \"./responses/responses.mjs\";\nimport { Responses, } from \"./responses/responses.mjs\";\nimport * as ThreadsAPI from \"./threads/threads.mjs\";\nimport { Threads, } from \"./threads/threads.mjs\";\nexport class Beta extends APIResource {\n constructor() {\n super(...arguments);\n this.realtime = new RealtimeAPI.Realtime(this._client);\n this.agents = new AgentsAPI.Agents(this._client);\n this.responses = new ResponsesAPI.Responses(this._client);\n this.chatkit = new ChatKitAPI.ChatKit(this._client);\n this.assistants = new AssistantsAPI.Assistants(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nBeta.Realtime = Realtime;\nBeta.Agents = Agents;\nBeta.Responses = Responses;\nBeta.ChatKit = ChatKit;\nBeta.Assistants = Assistants;\nBeta.Threads = Threads;\n//# sourceMappingURL=beta.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\n/**\n * Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.\n */\nexport class Completions extends APIResource {\n create(body, options) {\n return this._client.post('/completions', {\n body,\n ...options,\n stream: body.stream ?? false,\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Content extends APIResource {\n /**\n * Retrieve Container File Content\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=content.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as ContentAPI from \"./content.mjs\";\nimport { Content } from \"./content.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { maybeMultipartFormRequestOptions } from \"../../../internal/uploads.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n constructor() {\n super(...arguments);\n this.content = new ContentAPI.Content(this._client);\n }\n /**\n * Create a Container File\n *\n * You can send either a multipart/form-data request with the raw file content, or\n * a JSON request with a file ID.\n */\n create(containerID, body, options) {\n return this._client.post(path `/containers/${containerID}/files`, maybeMultipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n /**\n * Retrieve Container File\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * List Container files\n */\n list(containerID, query = {}, options) {\n return this._client.getAPIList(path `/containers/${containerID}/files`, (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete Container File\n */\n delete(fileID, params, options) {\n const { container_id } = params;\n return this._client.delete(path `/containers/${container_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nFiles.Content = Content;\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FilesAPI from \"./files/files.mjs\";\nimport { Files, } from \"./files/files.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Containers extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n }\n /**\n * Create Container\n */\n create(body, options) {\n return this._client.post('/containers', { body, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Retrieve Container\n */\n retrieve(containerID, options) {\n return this._client.get(path `/containers/${containerID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * List Containers\n */\n list(query = {}, options) {\n return this._client.getAPIList('/containers', (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete Container\n */\n delete(containerID, options) {\n return this._client.delete(path `/containers/${containerID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nContainers.Files = Files;\n//# sourceMappingURL=containers.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nexport class ContentProvenanceChecks extends APIResource {\n /**\n * Check whether an image or audio file contains known OpenAI provenance signals.\n * [Learn more about content provenance](https://developers.openai.com/api/docs/guides/content-provenance).\n *\n * If `not_detected`, it means the tool did not find supported signals in the\n * uploaded file. The content could still have been generated by OpenAI if the\n * metadata was stripped or has evidence of tampering, the watermark was degraded,\n * it comes from a legacy generation model, or it was created before provenance\n * signals were available. Content could also still be AI-generated by another\n * company's model, which the tool currently does not detect.\n */\n create(body, options) {\n return this._client.post('/content_provenance_checks', multipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n}\n//# sourceMappingURL=content-provenance-checks.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\n/**\n * Manage conversations and conversation items.\n */\nexport class Items extends APIResource {\n /**\n * Create items in a conversation with the given ID.\n */\n create(conversationID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/conversations/${conversationID}/items`, {\n query: { include },\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Get a single item from a conversation with the given IDs.\n */\n retrieve(itemID, params, options) {\n const { conversation_id, ...query } = params;\n return this._client.get(path `/conversations/${conversation_id}/items/${itemID}`, {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * List all items for a conversation with the given ID.\n */\n list(conversationID, query = {}, options) {\n return this._client.getAPIList(path `/conversations/${conversationID}/items`, (ConversationCursorPage), { query, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Delete an item from a conversation with the given IDs.\n */\n delete(itemID, params, options) {\n const { conversation_id } = params;\n return this._client.delete(path `/conversations/${conversation_id}/items/${itemID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=items.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as ItemsAPI from \"./items.mjs\";\nimport { Items, } from \"./items.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\n/**\n * Manage conversations and conversation items.\n */\nexport class Conversations extends APIResource {\n constructor() {\n super(...arguments);\n this.items = new ItemsAPI.Items(this._client);\n }\n /**\n * Create a conversation.\n */\n create(body = {}, options) {\n return this._client.post('/conversations', { body, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Get a conversation\n */\n retrieve(conversationID, options) {\n return this._client.get(path `/conversations/${conversationID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Update a conversation\n */\n update(conversationID, body, options) {\n return this._client.post(path `/conversations/${conversationID}`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a conversation. Items in the conversation will not be deleted.\n */\n delete(conversationID, options) {\n return this._client.delete(path `/conversations/${conversationID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\nConversations.Items = Items;\n//# sourceMappingURL=conversations.mjs.map","import { loggerFor, toFloat32Array } from \"../internal/utils.mjs\";\n/**\n * Sends the optimized embeddings request while preserving explicit encodings and\n * the original APIPromise response accessors.\n *\n * @internal\n */\nexport function createEmbedding(client, body, options) {\n const hasUserProvidedEncodingFormat = !!body.encoding_format;\n // No encoding_format specified, defaulting to base64 for performance reasons.\n // See https://github.com/openai/openai-node/pull/1312.\n const encodingFormat = hasUserProvidedEncodingFormat ? body.encoding_format : 'base64';\n if (hasUserProvidedEncodingFormat) {\n loggerFor(client).debug('embeddings/user defined encoding_format:', body.encoding_format);\n }\n const optimizedBody = { ...body, encoding_format: encodingFormat };\n const requestOptions = {\n body: optimizedBody,\n ...options,\n __security: { bearerAuth: true },\n };\n const response = client.post('/embeddings', requestOptions);\n // Explicit encodings return the original response promise unchanged.\n if (hasUserProvidedEncodingFormat) {\n return response;\n }\n // Preserve numeric output for default requests, including body overrides that\n // change the encoding used on the wire.\n loggerFor(client).debug('embeddings/decoding base64 embeddings from base64');\n return response._thenUnwrap((data) => {\n const embeddings = data?.data;\n if (embeddings !== undefined) {\n if (!Array.isArray(embeddings)) {\n throw new TypeError('Expected embeddings response data to be an array');\n }\n const { length } = embeddings;\n // Preserve the original iteration length and skip sparse-array holes.\n for (let index = 0; index < length; index += 1) {\n if (index in embeddings) {\n // SAFETY: This indexed entry belongs to the API embedding data array; sparse entries are skipped by the preceding membership check.\n const embeddingBase64Obj = embeddings[index];\n const { embedding } = embeddingBase64Obj;\n // Request hooks and serialization can also select float embeddings.\n if (Array.isArray(embedding)) {\n continue;\n }\n // SAFETY: The Array.isArray branch already handled decoded vectors; this request explicitly asked the server for base64 encoding.\n embeddingBase64Obj.embedding = toFloat32Array(embedding);\n }\n }\n }\n return data;\n });\n}\n//# sourceMappingURL=embeddings.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { createEmbedding } from \"../lib/embeddings.mjs\";\n/**\n * Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.\n */\nexport class Embeddings extends APIResource {\n create(body, options) {\n return createEmbedding(this._client, body, options);\n }\n}\n//# sourceMappingURL=embeddings.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * Manage and run evals in the OpenAI platform.\n */\nexport class OutputItems extends APIResource {\n /**\n * Get an evaluation run output item by ID.\n */\n retrieve(outputItemID, params, options) {\n const { eval_id, run_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${run_id}/output_items/${outputItemID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Get a list of output items for an evaluation run.\n */\n list(runID, params, options) {\n const { eval_id, ...query } = params;\n return this._client.getAPIList(path `/evals/${eval_id}/runs/${runID}/output_items`, (CursorPage), { query, ...options, __security: { bearerAuth: true } });\n }\n}\n//# sourceMappingURL=output-items.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as OutputItemsAPI from \"./output-items.mjs\";\nimport { OutputItems, } from \"./output-items.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * Manage and run evals in the OpenAI platform.\n */\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.outputItems = new OutputItemsAPI.OutputItems(this._client);\n }\n /**\n * Kicks off a new run for a given evaluation, specifying the data source, and what\n * model configuration to use to test. The datasource will be validated against the\n * schema specified in the config of the evaluation.\n */\n create(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}/runs`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Get an evaluation run by ID.\n */\n retrieve(runID, params, options) {\n const { eval_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${runID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Get a list of runs for an evaluation.\n */\n list(evalID, query = {}, options) {\n return this._client.getAPIList(path `/evals/${evalID}/runs`, (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete an eval run.\n */\n delete(runID, params, options) {\n const { eval_id } = params;\n return this._client.delete(path `/evals/${eval_id}/runs/${runID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Cancel an ongoing evaluation run.\n */\n cancel(runID, params, options) {\n const { eval_id } = params;\n return this._client.post(path `/evals/${eval_id}/runs/${runID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\nRuns.OutputItems = OutputItems;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\n/**\n * Manage and run evals in the OpenAI platform.\n */\nexport class Evals extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n }\n /**\n * Create the structure of an evaluation that can be used to test a model's\n * performance. An evaluation is a set of testing criteria and the config for a\n * data source, which dictates the schema of the data used in the evaluation. After\n * creating an evaluation, you can run it on different models and model parameters.\n * We support several types of graders and datasources. For more information, see\n * the [Evals guide](https://developers.openai.com/api/docs/guides/evals).\n */\n create(body, options) {\n return this._client.post('/evals', { body, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Get an evaluation by ID.\n */\n retrieve(evalID, options) {\n return this._client.get(path `/evals/${evalID}`, { ...options, __security: { bearerAuth: true } });\n }\n /**\n * Update certain properties of an evaluation.\n */\n update(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}`, { body, ...options, __security: { bearerAuth: true } });\n }\n /**\n * List evaluations for a project.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/evals', (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete an evaluation.\n */\n delete(evalID, options) {\n return this._client.delete(path `/evals/${evalID}`, { ...options, __security: { bearerAuth: true } });\n }\n}\nEvals.Runs = Runs;\n//# sourceMappingURL=evals.mjs.map","import { APIConnectionTimeoutError } from \"../error.mjs\";\nimport { sleep } from \"../internal/utils/sleep.mjs\";\n/**\n * Waits for file processing through the resource's retrieve method. Elapsed time\n * uses a monotonic clock so system clock changes do not affect the timeout,\n * which is checked after each subsequent retrieval, preserving the existing behavior\n * for an initially terminal file and for a terminal response received too late.\n *\n * @internal\n */\nexport async function waitForFileProcessing(resource, id, pollInterval, maxWait) {\n const terminalStates = new Set(['processed', 'error', 'deleted']);\n const start = performance.now();\n let file = await resource.retrieve(id);\n while (!file.status || !terminalStates.has(file.status)) {\n // oxlint-disable-next-line no-await-in-loop -- Wait before issuing the next processing-status request.\n await sleep(pollInterval);\n // oxlint-disable-next-line no-await-in-loop -- The timeout and next iteration depend on this response.\n file = await resource.retrieve(id);\n if (performance.now() - start > maxWait) {\n throw new APIConnectionTimeoutError({\n message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,\n });\n }\n }\n return file;\n}\n//# sourceMappingURL=file-processing.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { waitForFileProcessing } from \"../lib/file-processing.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\n/**\n * Files are used to upload documents that can be used with features like Assistants and Fine-tuning.\n */\nexport class Files extends APIResource {\n /**\n * Upload a file that can be used across various endpoints. Individual files can be\n * up to 512 MB, and each project can store up to 2.5 TB of files in total. There\n * is no organization-wide storage limit. Uploads to this endpoint are rate-limited\n * to 1,000 requests per minute per authenticated user.\n *\n * - The Assistants API supports files up to 2 million tokens and of specific file\n * types. See the\n * [Assistants Tools guide](https://developers.openai.com/api/docs/guides/tools)\n * for details.\n * - The Fine-tuning API only supports `.jsonl` files. The input also has certain\n * required formats for fine-tuning\n * [chat](https://developers.openai.com/api/docs/guides/supervised-fine-tuning#formatting-your-data)\n * or\n * [completions](https://developers.openai.com/api/docs/guides/supervised-fine-tuning#formatting-your-data)\n * models.\n * - The Batch API only supports `.jsonl` files up to 200 MB in size. The input\n * also has a specific required\n * [format](https://developers.openai.com/api/docs/guides/batch#1-prepare-your-batch-file).\n * - For Retrieval or `file_search` ingestion, upload files here first. If you need\n * to attach multiple uploaded files to the same vector store, use\n * [`/vector_stores/{vector_store_id}/file_batches`](https://developers.openai.com/api/reference/resources/vector_stores/subresources/file_batches/methods/create)\n * instead of attaching them one by one. Vector store attachment has separate\n * limits from file upload, including 2,000 attached files per minute per\n * organization.\n *\n * Please [contact us](https://help.openai.com/) if you need to increase these\n * storage limits.\n */\n create(body, options) {\n return this._client.post('/files', multipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n /**\n * Returns information about a specific file.\n */\n retrieve(fileID, options) {\n return this._client.get(path `/files/${fileID}`, { ...options, __security: { bearerAuth: true } });\n }\n /**\n * Returns a list of files.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/files', (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a file and remove it from all vector stores.\n */\n delete(fileID, options) {\n return this._client.delete(path `/files/${fileID}`, { ...options, __security: { bearerAuth: true } });\n }\n /**\n * Returns a response containing the contents of the specified file.\n */\n content(fileID, options) {\n return this._client.get(path `/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n });\n }\n /**\n * Waits for the given file to be processed, default timeout is 30 mins.\n */\n async waitForProcessing(id, { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}) {\n return await waitForFileProcessing(this, id, pollInterval, maxWait);\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class Methods extends APIResource {\n}\n//# sourceMappingURL=methods.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\n/**\n * Manage fine-tuning jobs to tailor a model to your specific training data.\n */\nexport class Graders extends APIResource {\n /**\n * Run a grader.\n *\n * @example\n * ```ts\n * const response = await client.fineTuning.alpha.graders.run({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * model_sample: 'model_sample',\n * });\n * ```\n */\n run(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/run', {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Validate a grader.\n *\n * @example\n * ```ts\n * const response =\n * await client.fineTuning.alpha.graders.validate({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * });\n * ```\n */\n validate(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/validate', {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as GradersAPI from \"./graders.mjs\";\nimport { Graders, } from \"./graders.mjs\";\nexport class Alpha extends APIResource {\n constructor() {\n super(...arguments);\n this.graders = new GradersAPI.Graders(this._client);\n }\n}\nAlpha.Graders = Graders;\n//# sourceMappingURL=alpha.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, Page, } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * Manage fine-tuning jobs to tailor a model to your specific training data.\n */\nexport class Permissions extends APIResource {\n /**\n * **NOTE:** Calling this endpoint requires an\n * [admin API key](https://developers.openai.com/api/reference/resources/admin/subresources/organization/subresources/admin_api_keys).\n *\n * This enables organization owners to share fine-tuned models with other projects\n * in their organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const permissionCreateResponse of client.fineTuning.checkpoints.permissions.create(\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * { project_ids: ['string'] },\n * )) {\n * // ...\n * }\n * ```\n */\n create(fineTunedModelCheckpoint, body, options) {\n return this._client.getAPIList(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, (Page), { body, method: 'post', ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * **NOTE:** This endpoint requires an\n * [admin API key](https://developers.openai.com/api/reference/resources/admin/subresources/organization/subresources/admin_api_keys).\n *\n * Organization owners can use this endpoint to view all permissions for a\n * fine-tuned model checkpoint.\n *\n * @deprecated Retrieve is deprecated. Please swap to the paginated list method instead.\n */\n retrieve(fineTunedModelCheckpoint, query = {}, options) {\n return this._client.get(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, {\n query,\n ...options,\n __security: { adminAPIKeyAuth: true },\n });\n }\n /**\n * **NOTE:** This endpoint requires an\n * [admin API key](https://developers.openai.com/api/reference/resources/admin/subresources/organization/subresources/admin_api_keys).\n *\n * Organization owners can use this endpoint to view all permissions for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const permissionListResponse of client.fineTuning.checkpoints.permissions.list(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n list(fineTunedModelCheckpoint, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, (ConversationCursorPage), { query, ...options, __security: { adminAPIKeyAuth: true } });\n }\n /**\n * **NOTE:** This endpoint requires an\n * [admin API key](https://developers.openai.com/api/reference/resources/admin/subresources/organization/subresources/admin_api_keys).\n *\n * Organization owners can use this endpoint to delete a permission for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.delete(\n * 'cp_zc4Q7MP6XxulcVzj4MZdwsAB',\n * {\n * fine_tuned_model_checkpoint:\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * },\n * );\n * ```\n */\n delete(permissionID, params, options) {\n const { fine_tuned_model_checkpoint } = params;\n return this._client.delete(path `/fine_tuning/checkpoints/${fine_tuned_model_checkpoint}/permissions/${permissionID}`, { ...options, __security: { adminAPIKeyAuth: true } });\n }\n}\n//# sourceMappingURL=permissions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as PermissionsAPI from \"./permissions.mjs\";\nimport { Permissions, } from \"./permissions.mjs\";\nexport class Checkpoints extends APIResource {\n constructor() {\n super(...arguments);\n this.permissions = new PermissionsAPI.Permissions(this._client);\n }\n}\nCheckpoints.Permissions = Permissions;\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * Manage fine-tuning jobs to tailor a model to your specific training data.\n */\nexport class Checkpoints extends APIResource {\n /**\n * List checkpoints for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobCheckpoint of client.fineTuning.jobs.checkpoints.list(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n list(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/checkpoints`, (CursorPage), { query, ...options, __security: { bearerAuth: true } });\n }\n}\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints.mjs\";\nimport { Checkpoints, } from \"./checkpoints.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * Manage fine-tuning jobs to tailor a model to your specific training data.\n */\nexport class Jobs extends APIResource {\n constructor() {\n super(...arguments);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n }\n /**\n * Creates a fine-tuning job which begins the process of creating a new model from\n * a given dataset.\n *\n * Response includes details of the enqueued job including job status and the name\n * of the fine-tuned models once complete.\n *\n * [Learn more about fine-tuning](https://developers.openai.com/api/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.create({\n * model: 'gpt-4o-mini',\n * training_file: 'file-abc123',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/fine_tuning/jobs', { body, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Get info about a fine-tuning job.\n *\n * [Learn more about fine-tuning](https://developers.openai.com/api/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTuningJobID, options) {\n return this._client.get(path `/fine_tuning/jobs/${fineTuningJobID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * List your organization's fine-tuning jobs\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJob of client.fineTuning.jobs.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/fine_tuning/jobs', (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Immediately cancel a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.cancel(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n cancel(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/cancel`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Get status updates for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobEvent of client.fineTuning.jobs.listEvents(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n listEvents(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/events`, (CursorPage), { query, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Pause a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.pause(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n pause(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/pause`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Resume a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.resume(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n resume(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/resume`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\nJobs.Checkpoints = Checkpoints;\n//# sourceMappingURL=jobs.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as MethodsAPI from \"./methods.mjs\";\nimport { Methods, } from \"./methods.mjs\";\nimport * as AlphaAPI from \"./alpha/alpha.mjs\";\nimport { Alpha } from \"./alpha/alpha.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints/checkpoints.mjs\";\nimport { Checkpoints } from \"./checkpoints/checkpoints.mjs\";\nimport * as JobsAPI from \"./jobs/jobs.mjs\";\nimport { Jobs, } from \"./jobs/jobs.mjs\";\nexport class FineTuning extends APIResource {\n constructor() {\n super(...arguments);\n this.methods = new MethodsAPI.Methods(this._client);\n this.jobs = new JobsAPI.Jobs(this._client);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n this.alpha = new AlphaAPI.Alpha(this._client);\n }\n}\nFineTuning.Methods = Methods;\nFineTuning.Jobs = Jobs;\nFineTuning.Checkpoints = Checkpoints;\nFineTuning.Alpha = Alpha;\n//# sourceMappingURL=fine-tuning.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class GraderModels extends APIResource {\n}\n//# sourceMappingURL=grader-models.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as GraderModelsAPI from \"./grader-models.mjs\";\nimport { GraderModels, } from \"./grader-models.mjs\";\nexport class Graders extends APIResource {\n constructor() {\n super(...arguments);\n this.graderModels = new GraderModelsAPI.GraderModels(this._client);\n }\n}\nGraders.GraderModels = GraderModels;\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\n/**\n * Given a prompt and/or an input image, the model will generate a new image.\n */\nexport class Images extends APIResource {\n /**\n * Creates a variation of a given image. This endpoint only supports `dall-e-2`.\n *\n * @example\n * ```ts\n * const imagesResponse = await client.images.createVariation({\n * image: fs.createReadStream('otter.png'),\n * });\n * ```\n */\n createVariation(body, options) {\n return this._client.post('/images/variations', multipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n edit(body, options) {\n return this._client.post('/images/edits', multipartFormRequestOptions({\n body,\n ...options,\n stream: body.stream ?? false,\n __metadata: { ...options?.__metadata, ...(body.model == null ? {} : { model: body.model }) },\n __security: { bearerAuth: true },\n }, this._client));\n }\n generate(body, options) {\n return this._client.post('/images/generations', {\n body,\n ...options,\n stream: body.stream ?? false,\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=images.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Accept an incoming SIP call. Supply session with type live, the model, and\n * startup configuration. Before accepting calls, follow the\n * [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting)\n * to write frontend conversation instructions and a separate backend prompt. SIP\n * media format is negotiated; omit audio.format.\n *\n * @example\n * ```ts\n * await client.live.sessions.accept('session_id', {\n * session: { model: 'gpt-live-1', type: 'live' },\n * });\n * ```\n */\n accept(sessionID, body, options) {\n return this._client.post(path `/live/sessions/${sessionID}/accept`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Get Live session content\n *\n * @example\n * ```ts\n * const response =\n * await client.live.sessions.downloadRecording('live_SQ');\n *\n * const content = await response.blob();\n * console.log(content);\n * ```\n */\n downloadRecording(sessionID, options) {\n return this._client.get(path `/live/sessions/${sessionID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n });\n }\n /**\n * Fork a stored Live session onto a new WebRTC connection.\n *\n * @example\n * ```ts\n * const response = await client.live.sessions.fork(\n * 'session_id',\n * { transport: { sdp: 'x', type: 'webrtc' } },\n * );\n * ```\n */\n fork(sessionID, body, options) {\n return this._client.post(path `/live/sessions/${sessionID}/fork`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * End a SIP call identified by session_id.\n *\n * @example\n * ```ts\n * await client.live.sessions.hangup('session_id');\n * ```\n */\n hangup(sessionID, options) {\n return this._client.post(path `/live/sessions/${sessionID}/hangup`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Transfer a SIP call to another destination. Supply a nonblank target_uri for the\n * SIP Refer-To header.\n *\n * @example\n * ```ts\n * await client.live.sessions.refer('session_id', {\n * target_uri: 'tel:+14155550123',\n * });\n * ```\n */\n refer(sessionID, body, options) {\n return this._client.post(path `/live/sessions/${sessionID}/refer`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Reject an incoming SIP call. Send a required SIP rejection status_code between\n * 300 and 699.\n *\n * @example\n * ```ts\n * await client.live.sessions.reject('session_id', {\n * status_code: 486,\n * });\n * ```\n */\n reject(sessionID, body, options) {\n return this._client.post(path `/live/sessions/${sessionID}/reject`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class Forks extends APIResource {\n}\n//# sourceMappingURL=forks.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class Sideband extends APIResource {\n}\n//# sourceMappingURL=sideband.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions, } from \"./sessions.mjs\";\nimport * as ForksAPI from \"./forks/forks.mjs\";\nimport { Forks } from \"./forks/forks.mjs\";\nimport * as SidebandAPI from \"./sideband/sideband.mjs\";\nimport { Sideband } from \"./sideband/sideband.mjs\";\nexport class Live extends APIResource {\n constructor() {\n super(...arguments);\n this.sideband = new SidebandAPI.Sideband(this._client);\n this.forks = new ForksAPI.Forks(this._client);\n this.sessions = new SessionsAPI.Sessions(this._client);\n }\n /**\n * Create a Live WebRTC session. Start with the\n * [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting).\n *\n * @example\n * ```ts\n * const live = await client.live.create({\n * session: { model: 'gpt-live-1' },\n * transport: { sdp: 'x', type: 'webrtc' },\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/live/sessions', { body, ...options, __security: { bearerAuth: true } });\n }\n}\nLive.Sideband = Sideband;\nLive.Forks = Forks;\nLive.Sessions = Sessions;\n//# sourceMappingURL=live.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { Page } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\n/**\n * List and describe the various models available in the API.\n */\nexport class Models extends APIResource {\n /**\n * Retrieves a model instance, providing basic information about the model such as\n * the owner and permissioning.\n */\n retrieve(model, options) {\n return this._client.get(path `/models/${model}`, { ...options, __security: { bearerAuth: true } });\n }\n /**\n * Lists the currently available models, and provides basic information about each\n * one such as the owner and availability.\n */\n list(options) {\n return this._client.getAPIList('/models', (Page), { ...options, __security: { bearerAuth: true } });\n }\n /**\n * Delete a fine-tuned model. You must have the Owner role in your organization to\n * delete a model.\n */\n delete(model, options) {\n return this._client.delete(path `/models/${model}`, { ...options, __security: { bearerAuth: true } });\n }\n}\n//# sourceMappingURL=models.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\n/**\n * Given text and/or image inputs, classifies if those inputs are potentially harmful.\n */\nexport class Moderations extends APIResource {\n /**\n * Classifies if text and/or image inputs are potentially harmful. Learn more in\n * the\n * [moderation guide](https://developers.openai.com/api/docs/guides/moderation).\n */\n create(body, options) {\n return this._client.post('/moderations', { body, ...options, __security: { bearerAuth: true } });\n }\n}\n//# sourceMappingURL=moderations.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { multipartFormRequestOptions, makeFile } from \"./uploads.mjs\";\nimport { buildHeaders } from \"./headers.mjs\";\n/** Encode explicitly typed fields as single, filename-less multipart parts. */\nexport async function encodedMultipartFormRequestOptions(options, client, encodings, rawBodyField = null) {\n if (options.body === null || typeof options.body !== 'object' || Array.isArray(options.body)) {\n throw new TypeError('Multipart request body must be an object');\n }\n const body = Object.fromEntries(Object.entries(options.body).filter(([, value]) => value !== undefined));\n if (rawBodyField !== null &&\n Object.keys(body).length === 1 &&\n Object.prototype.hasOwnProperty.call(body, rawBodyField)) {\n const value = body[rawBodyField];\n if (typeof value !== 'string')\n throw new TypeError('Raw multipart alternative must be a string');\n return {\n ...options,\n body: value,\n headers: buildHeaders([options.headers, { 'content-type': encodings[rawBodyField].content_type }]),\n };\n }\n const encoded = [];\n for (const [name, encoding] of Object.entries(encodings)) {\n if (!Object.prototype.hasOwnProperty.call(body, name))\n continue;\n const value = body[name];\n const data = encoding.json ? JSON.stringify(value) : value;\n if (typeof data !== 'string')\n throw new TypeError(`Multipart field ${name} must encode as a string`);\n encoded.push([name, makeFile([data], '', { type: encoding.content_type })]);\n delete body[name];\n }\n const multipart = await multipartFormRequestOptions({ ...options, body }, client);\n const form = multipart.body;\n // Declared upload fields are rejected during code generation. Defend against untyped body overrides.\n if (!(form instanceof FormData)) {\n await form.cancel();\n throw new TypeError('Unexpected streaming upload in typed multipart request body');\n }\n for (const [name, part] of encoded)\n form.append(name, part, '');\n return {\n ...options,\n body: form,\n headers: buildHeaders([options.headers, { 'content-type': null }]),\n };\n}\n//# sourceMappingURL=multipart-encoding.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nimport { encodedMultipartFormRequestOptions } from \"../../internal/multipart-encoding.mjs\";\nexport class Calls extends APIResource {\n /**\n * Create a new Realtime API call over WebRTC and receive the SDP answer needed to\n * complete the peer connection.\n *\n * @example\n * ```ts\n * await client.realtime.calls.create({\n * sdp: 'sdp',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/calls', encodedMultipartFormRequestOptions({\n body,\n ...options,\n headers: buildHeaders([{ Accept: 'application/sdp' }, options?.headers]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n }, this._client, {\n sdp: { content_type: 'application/sdp', json: false },\n session: { content_type: 'application/json', json: true },\n }, 'sdp'));\n }\n /**\n * Accept an incoming SIP call and configure the realtime session that will handle\n * it.\n *\n * @example\n * ```ts\n * await client.realtime.calls.accept('call_id', {\n * type: 'realtime',\n * });\n * ```\n */\n accept(callID, body, options) {\n return this._client.post(path `/realtime/calls/${callID}/accept`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * End an active Realtime API call, whether it was initiated over SIP or WebRTC.\n *\n * @example\n * ```ts\n * await client.realtime.calls.hangup('call_id');\n * ```\n */\n hangup(callID, options) {\n return this._client.post(path `/realtime/calls/${callID}/hangup`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Transfer an active SIP call to a new destination using the SIP REFER verb.\n *\n * @example\n * ```ts\n * await client.realtime.calls.refer('call_id', {\n * target_uri: 'tel:+14155550123',\n * });\n * ```\n */\n refer(callID, body, options) {\n return this._client.post(path `/realtime/calls/${callID}/refer`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Decline an incoming SIP call by returning a SIP status code to the caller.\n *\n * @example\n * ```ts\n * await client.realtime.calls.reject('call_id');\n * ```\n */\n reject(callID, body = {}, options) {\n return this._client.post(path `/realtime/calls/${callID}/reject`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=calls.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class ClientSecrets extends APIResource {\n /**\n * Create a Realtime client secret with an associated session configuration.\n *\n * Client secrets are short-lived tokens that can be passed to a client app, such\n * as a web frontend or mobile client, which grants access to the Realtime API\n * without leaking your main API key. You can configure a custom TTL for each\n * client secret.\n *\n * You can also attach session configuration options to the client secret, which\n * will be applied to any sessions created using that client secret, but these can\n * also be overridden by the client connection.\n *\n * [Learn more about authentication with client secrets over WebRTC](https://developers.openai.com/api/docs/guides/realtime-webrtc).\n *\n * Returns the created client secret and the effective session object. The client\n * secret is a string that looks like `ek_1234`.\n *\n * @example\n * ```ts\n * const clientSecret =\n * await client.realtime.clientSecrets.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/client_secrets', {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=client-secrets.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CallsAPI from \"./calls.mjs\";\nimport { Calls } from \"./calls.mjs\";\nimport * as ClientSecretsAPI from \"./client-secrets.mjs\";\nimport { ClientSecrets, } from \"./client-secrets.mjs\";\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.clientSecrets = new ClientSecretsAPI.ClientSecrets(this._client);\n this.calls = new CallsAPI.Calls(this._client);\n }\n}\nRealtime.ClientSecrets = ClientSecrets;\nRealtime.Calls = Calls;\n//# sourceMappingURL=realtime.mjs.map","import { OpenAIError } from \"../error.mjs\";\nimport { isParseableResponseFormat, parseResponseFormatContent } from \"../lib/parser.mjs\";\n/**\n * Adds parsed-output fields to a response, invoking parsers only when its request\n * includes an auto-parseable text format or strict function tool.\n */\nexport function maybeParseResponse(response, params) {\n if (!params || !hasAutoParseableInput(params)) {\n const parsed = {\n ...response,\n output_parsed: null,\n output: response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: null,\n };\n }\n if (item.type === 'message') {\n return {\n ...item,\n content: item.content.map((content) => ({\n ...content,\n parsed: null,\n })),\n };\n }\n return item;\n }),\n };\n if (needsOutputText(response, parsed)) {\n // SAFETY: The copy retains every response field and only adds parsed metadata; addOutputText accepts that original response structure.\n addOutputText(parsed);\n }\n return parsed;\n }\n return parseResponse(response, params);\n}\n/**\n * Parses completed response text and strict function-tool arguments, matching\n * namespaced functions by both namespace and name.\n *\n * Incomplete or nonterminal responses keep their parsed values as `null`, and\n * `output_parsed` returns the first successfully parsed output-text item.\n */\nexport function parseResponse(response, params) {\n const shouldParse = !response.status || response.status === 'completed';\n const output = response.output.map((item) => {\n if (item.type === 'function_call') {\n return shouldParse ? parseToolCall(params, item) : { ...item, parsed_arguments: null };\n }\n if (item.type === 'message') {\n const content = item.content.map((content) => {\n if (content.type === 'output_text') {\n return {\n ...content,\n parsed: shouldParse ? parseTextFormat(params, content.text) : null,\n };\n }\n return content;\n });\n return {\n ...item,\n content,\n };\n }\n return item;\n });\n const parsed = { ...response, output };\n if (needsOutputText(response, parsed)) {\n addOutputText(parsed);\n }\n Object.defineProperty(parsed, 'output_parsed', {\n enumerable: true,\n get() {\n for (const output of parsed.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text' && content.parsed !== null) {\n return content.parsed;\n }\n }\n }\n return null;\n },\n });\n // SAFETY: The output_parsed getter was installed immediately above and returns the first parsed content or null.\n return parsed;\n}\nfunction parseTextFormat(params, content) {\n return parseResponseFormatContent(params.text?.format, content);\n}\n/** Returns whether the request includes an auto-parseable text format or strict function tool. */\nexport function hasAutoParseableInput(params) {\n if (isParseableResponseFormat(params.text?.format)) {\n return true;\n }\n return (Array.isArray(params.tools) &&\n params.tools.some((tool) => isAutoParsableTool(tool) ||\n (tool.type === 'function' && tool.strict === true) ||\n (tool.type === 'namespace' &&\n tool.tools.some((nested) => nested.type === 'function' && (isAutoParsableTool(nested) || nested.strict === true)))));\n}\n/** Copies a Responses API function tool and attaches non-enumerable parser and callback metadata. */\nexport function makeParseableResponseTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n // SAFETY: The non-enumerable parser brand and callbacks were installed on this copied tool immediately above.\n return obj;\n}\n/** Returns whether a Responses API tool carries the SDK's argument-parser marker. */\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nfunction getInputToolByName(input_tools, name, namespace) {\n for (const tool of input_tools) {\n if (namespace == null) {\n if (tool.type === 'function' && tool.name === name) {\n return tool;\n }\n }\n else if (tool.type === 'namespace' && tool.name === namespace) {\n return tool.tools.find((nested) => nested.type === 'function' && nested.name === name);\n }\n }\n return undefined;\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name, toolCall.namespace);\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- Parsing replaces the initial null with an arbitrary caller-parser result, so unknown is required.\n let parsedArguments = null;\n if (isAutoParsableTool(inputTool)) {\n parsedArguments = inputTool.$parseRaw(toolCall.arguments);\n }\n else if (inputTool?.strict) {\n parsedArguments = parseResponseFormatContent({ type: 'json_schema', $parseRaw: undefined }, toolCall.arguments);\n }\n return {\n ...toolCall,\n parsed_arguments: parsedArguments,\n };\n}\n/** Matches a response function call to a strict or auto-parseable tool by namespace and name. */\nexport function shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name, toolCall.namespace);\n return isAutoParsableTool(inputTool) || inputTool?.strict || false;\n}\n/**\n * Validates that compatible chat completion tools can be automatically parsed.\n *\n * @throws {OpenAIError} If a tool is not a function or is missing `strict: true`.\n */\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nfunction needsOutputText(response, target) {\n return !Object.getOwnPropertyDescriptor(response, 'output_text') || target.output_text == null;\n}\n/** Replaces `output_text` with the concatenated text from every response output message. */\nexport function addOutputText(rsp) {\n const texts = [];\n for (const output of rsp.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text') {\n texts.push(content.text);\n }\n }\n }\n rsp.output_text = texts.join('');\n}\n//# sourceMappingURL=ResponsesParser.mjs.map","/**\n * Stores output text lengths in a complete binary segment tree.\n *\n * Leaves begin at `capacity`; each parent contains the sum of its children.\n * Rebuilding when capacity doubles preserves every existing contribution and\n * makes growth linear in the total number of appended outputs.\n */\nexport class OutputTextIndex {\n constructor() {\n this.capacity = 1;\n this.values = [0, 0];\n this.size = 0;\n }\n get length() {\n return this.size;\n }\n append(value) {\n if (this.size === this.capacity) {\n this.grow();\n }\n const index = this.size;\n this.size += 1;\n this.update(index, value);\n }\n update(index, value) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= this.size) {\n throw new RangeError(`missing output at index ${index}`);\n }\n let node = this.capacity + index;\n const difference = value - (this.values[node] ?? 0);\n if (difference === 0) {\n return;\n }\n while (node >= 1) {\n this.values[node] = (this.values[node] ?? 0) + difference;\n node = Math.floor(node / 2);\n }\n }\n prefixSum(end) {\n if (!Number.isSafeInteger(end) || end < 0 || end > this.size) {\n throw new RangeError(`missing output at index ${end}`);\n }\n let start = this.capacity;\n let stop = this.capacity + end;\n let sum = 0;\n while (start < stop) {\n if (start % 2 === 1) {\n sum += this.values[start] ?? 0;\n start += 1;\n }\n if (stop % 2 === 1) {\n stop -= 1;\n sum += this.values[stop] ?? 0;\n }\n start = Math.floor(start / 2);\n stop = Math.floor(stop / 2);\n }\n return sum;\n }\n grow() {\n const previousCapacity = this.capacity;\n this.capacity *= 2;\n const values = Array.from({ length: this.capacity * 2 }, () => 0);\n for (let index = 0; index < this.size; index += 1) {\n values[this.capacity + index] = this.values[previousCapacity + index] ?? 0;\n }\n for (let index = this.capacity - 1; index > 0; index -= 1) {\n values[index] = (values[index * 2] ?? 0) + (values[index * 2 + 1] ?? 0);\n }\n this.values = values;\n }\n}\n//# sourceMappingURL=output-text-index.mjs.map","import { OutputTextIndex } from \"./output-text-index.mjs\";\nexport function createCanonicalResponseContext() {\n return {\n canonicalSnapshot: undefined,\n outputTextLengths: new WeakMap(),\n outputTextIndex: new OutputTextIndex(),\n };\n}\nexport function getOutputText(context, output) {\n if (output.type !== 'message') {\n return '';\n }\n let text = '';\n for (const content of output.content) {\n if (content.type === 'output_text') {\n text += content.text;\n }\n }\n context.outputTextLengths.set(output, text.length);\n return text;\n}\nexport function ensureCanonicalOutputText(context, snapshot) {\n if (context.canonicalSnapshot === snapshot) {\n return;\n }\n const outputTextIndex = new OutputTextIndex();\n let text = '';\n for (const output of snapshot.output) {\n const outputText = getOutputText(context, output);\n text += outputText;\n outputTextIndex.append(outputText.length);\n }\n // Comparing independently accumulated strings can scan all preceding text on\n // every delta. The recount is authoritative, so assign it without comparing.\n snapshot.output_text = text;\n context.outputTextIndex = outputTextIndex;\n context.canonicalSnapshot = snapshot;\n}\nexport function cloneResponse(context, response) {\n context.canonicalSnapshot = undefined;\n context.outputTextLengths = new WeakMap();\n context.outputTextIndex = new OutputTextIndex();\n const snapshot = structuredClone(response);\n if (!Object.getOwnPropertyDescriptor(snapshot, 'output_text') ||\n snapshot.output_text === null ||\n snapshot.output_text === undefined) {\n ensureCanonicalOutputText(context, snapshot);\n }\n else if (snapshot.output.length === 0 && snapshot.output_text === '') {\n context.canonicalSnapshot = snapshot;\n }\n return snapshot;\n}\nexport function updateCachedOutputTextLength(context, output, outputIndex, previousText, nextText) {\n const length = context.outputTextLengths.get(output);\n if (length !== undefined) {\n const nextLength = length - previousText.length + nextText.length;\n context.outputTextLengths.set(output, nextLength);\n context.outputTextIndex.update(outputIndex, nextLength);\n }\n}\nfunction replaceOutputTextSuffix(snapshot, previousText, nextText) {\n if (previousText.length === 0) {\n snapshot.output_text += nextText;\n return;\n }\n snapshot.output_text =\n snapshot.output_text.slice(0, snapshot.output_text.length - previousText.length) + nextText;\n}\nfunction getPrecedingContentTextLength(context, output, contentIndex, nextText) {\n if (contentIndex === undefined || output?.type !== 'message') {\n return 0;\n }\n if (contentIndex < output.content.length - contentIndex - 1) {\n let precedingContentLength = 0;\n for (let index = 0; index < contentIndex; index += 1) {\n const precedingContent = output.content[index];\n if (precedingContent?.type === 'output_text') {\n precedingContentLength += precedingContent.text.length;\n }\n }\n return precedingContentLength;\n }\n let followingContentLength = 0;\n for (let index = contentIndex + 1; index < output.content.length; index += 1) {\n const followingContent = output.content[index];\n if (followingContent?.type === 'output_text') {\n followingContentLength += followingContent.text.length;\n }\n }\n const outputTextLength = context.outputTextLengths.get(output) ?? getOutputText(context, output).length;\n return outputTextLength - followingContentLength - nextText.length;\n}\nexport function updateOutputText(context, snapshot, outputIndex, previousText, nextText, contentIndex) {\n if (previousText === nextText) {\n return;\n }\n const output = snapshot.output[outputIndex];\n if (outputIndex === snapshot.output.length - 1 &&\n (contentIndex === undefined || (output?.type === 'message' && contentIndex === output.content.length - 1))) {\n replaceOutputTextSuffix(snapshot, previousText, nextText);\n return;\n }\n const precedingContentLength = getPrecedingContentTextLength(context, output, contentIndex, nextText);\n const offset = context.outputTextIndex.prefixSum(outputIndex) + precedingContentLength;\n if (offset + previousText.length === snapshot.output_text.length) {\n replaceOutputTextSuffix(snapshot, previousText, nextText);\n return;\n }\n snapshot.output_text =\n snapshot.output_text.slice(0, offset) +\n nextText +\n snapshot.output_text.slice(offset + previousText.length);\n}\n//# sourceMappingURL=canonical-output-text.mjs.map","import { OpenAIError } from \"../../error.mjs\";\nimport { hasOwn } from \"../utils.mjs\";\nimport { cloneResponse, createCanonicalResponseContext, ensureCanonicalOutputText, getOutputText, updateCachedOutputTextLength, updateOutputText, } from \"./canonical-output-text.mjs\";\nconst responseOutputIdentityIndexes = new WeakMap();\nfunction validateArrayIndex(collection, index, kind, allowAppend = false) {\n if (!Array.isArray(collection) ||\n !Number.isSafeInteger(index) ||\n index < 0 ||\n index > collection.length ||\n (index === collection.length ? !allowAppend || index in collection : !hasOwn(collection, index))) {\n throw new OpenAIError(`missing ${kind} at index ${index}`);\n }\n}\nfunction validateArrayAppend(collection, index, kind) {\n if (index !== collection.length) {\n throw new OpenAIError(`missing ${kind} at index ${index}`);\n }\n validateArrayIndex(collection, index, kind, true);\n}\nfunction getOutput(snapshot, outputIndex) {\n validateArrayIndex(snapshot.output, outputIndex, 'output');\n const output = snapshot.output[outputIndex];\n if (!output) {\n throw new OpenAIError(`missing output at index ${outputIndex}`);\n }\n return output;\n}\nfunction hasRoutedOutputCallIdentity(output) {\n return (output.type === 'function_call' ||\n output.type === 'custom_tool_call' ||\n output.type === 'shell_call' ||\n output.type === 'shell_call_output');\n}\nfunction getOutputItemIdentityKeys(output, eventType) {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Validate untrusted streamed item identifiers and discriminators before mutating the response snapshot.\n if (!hasOwn(output, 'type') || typeof output.type !== 'string') {\n throw new OpenAIError(`expected an own output item type for ${eventType}`);\n }\n const optionalPlatformID = output.type === 'function_call' || output.type === 'custom_tool_call';\n const identities = [];\n if (hasOwn(output, 'id')) {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Validate untrusted streamed item identifiers and discriminators before mutating the response snapshot.\n if (typeof output.id !== 'string' || output.id.length === 0) {\n throw new OpenAIError(`expected a non-empty output item id for ${eventType}`);\n }\n identities.push(`id:${output.id}`);\n }\n else if (!optionalPlatformID) {\n throw new OpenAIError(`expected a non-empty output item id for ${eventType}`);\n }\n if (hasRoutedOutputCallIdentity(output)) {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Validate untrusted streamed item identifiers and discriminators before mutating the response snapshot.\n if (!hasOwn(output, 'call_id') || typeof output.call_id !== 'string' || output.call_id.length === 0) {\n throw new OpenAIError(`expected a non-empty output item call_id for ${eventType}`);\n }\n identities.push(`call:${output.type}:${output.call_id}`);\n }\n return identities;\n}\nfunction assertOutputItemIdentitiesAvailable(identities, keys) {\n for (const key of keys) {\n if (identities.has(key)) {\n throw new OpenAIError(`duplicate output item identity '${key}'`);\n }\n }\n}\nfunction addOutputItemIdentities(identities, keys) {\n assertOutputItemIdentitiesAvailable(identities, keys);\n for (const key of keys) {\n identities.add(key);\n }\n}\nfunction createResponseOutputIdentityIndex(snapshot) {\n const identityIndex = {\n snapshot,\n output: snapshot.output,\n length: snapshot.output.length,\n identities: new Set(),\n };\n for (let index = 0; index < snapshot.output.length; index += 1) {\n const output = getOutput(snapshot, index);\n addOutputItemIdentities(identityIndex.identities, getOutputItemIdentityKeys(output, 'response snapshot'));\n }\n return identityIndex;\n}\nfunction getResponseOutputIdentityIndex(context, snapshot) {\n const cached = responseOutputIdentityIndexes.get(context);\n if (cached &&\n cached.snapshot === snapshot &&\n cached.output === snapshot.output &&\n cached.length === snapshot.output.length) {\n return cached;\n }\n const identityIndex = createResponseOutputIdentityIndex(snapshot);\n responseOutputIdentityIndexes.set(context, identityIndex);\n return identityIndex;\n}\nfunction cloneValidatedResponse(context, response) {\n const nextContext = createCanonicalResponseContext();\n const snapshot = cloneResponse(nextContext, response);\n const identityIndex = createResponseOutputIdentityIndex(snapshot);\n context.canonicalSnapshot = nextContext.canonicalSnapshot;\n context.outputTextLengths = nextContext.outputTextLengths;\n context.outputTextIndex = nextContext.outputTextIndex;\n responseOutputIdentityIndexes.set(context, identityIndex);\n return snapshot;\n}\nconst expectedOutputItemTypes = {\n 'response.output_text.delta': 'message',\n 'response.output_text.done': 'message',\n 'response.output_text.annotation.added': 'message',\n 'response.refusal.delta': 'message',\n 'response.refusal.done': 'message',\n 'response.function_call_arguments.delta': 'function_call',\n 'response.function_call_arguments.done': 'function_call',\n 'response.custom_tool_call_input.delta': 'custom_tool_call',\n 'response.custom_tool_call_input.done': 'custom_tool_call',\n 'response.mcp_call_arguments.delta': 'mcp_call',\n 'response.mcp_call_arguments.done': 'mcp_call',\n 'response.mcp_call.in_progress': 'mcp_call',\n 'response.mcp_call.completed': 'mcp_call',\n 'response.mcp_call.failed': 'mcp_call',\n 'response.shell_call_output_content.delta': 'shell_call_output',\n 'response.shell_call_output_content.done': 'shell_call_output',\n 'response.reasoning_text.delta': 'reasoning',\n 'response.reasoning_text.done': 'reasoning',\n 'response.reasoning_summary_part.added': 'reasoning',\n 'response.reasoning_summary_part.done': 'reasoning',\n 'response.reasoning_summary_text.delta': 'reasoning',\n 'response.reasoning_summary_text.done': 'reasoning',\n 'response.code_interpreter_call_code.delta': 'code_interpreter_call',\n 'response.code_interpreter_call_code.done': 'code_interpreter_call',\n 'response.code_interpreter_call.in_progress': 'code_interpreter_call',\n 'response.code_interpreter_call.interpreting': 'code_interpreter_call',\n 'response.code_interpreter_call.completed': 'code_interpreter_call',\n 'response.file_search_call.in_progress': 'file_search_call',\n 'response.file_search_call.searching': 'file_search_call',\n 'response.file_search_call.completed': 'file_search_call',\n 'response.web_search_call.in_progress': 'web_search_call',\n 'response.web_search_call.searching': 'web_search_call',\n 'response.web_search_call.completed': 'web_search_call',\n 'response.image_generation_call.in_progress': 'image_generation_call',\n 'response.image_generation_call.generating': 'image_generation_call',\n 'response.image_generation_call.completed': 'image_generation_call',\n 'response.image_generation_call.partial_image': 'image_generation_call',\n 'response.mcp_list_tools.in_progress': 'mcp_list_tools',\n 'response.mcp_list_tools.completed': 'mcp_list_tools',\n 'response.mcp_list_tools.failed': 'mcp_list_tools',\n 'response.compaction.compacting': 'compaction',\n};\nfunction getExpectedOutputItemType(event) {\n if (event.type === 'response.content_part.added' || event.type === 'response.content_part.done') {\n return event.part.type === 'reasoning_text' ? 'reasoning' : 'message';\n }\n return expectedOutputItemTypes[event.type];\n}\nfunction validateCompletedOutputItemIdentity(event, snapshot) {\n const output = getOutput(snapshot, event.output_index);\n const replacement = event.item;\n getOutputItemIdentityKeys(output, event.type);\n getOutputItemIdentityKeys(replacement, event.type);\n if (!hasOwn(replacement, 'type') || output.type !== replacement.type) {\n throw new OpenAIError(`expected output item type '${output.type}', got '${replacement.type}'`);\n }\n const outputID = hasOwn(output, 'id') ? output.id : undefined;\n const replacementID = hasOwn(replacement, 'id') ? replacement.id : undefined;\n if (outputID !== replacementID) {\n throw new OpenAIError(`expected output item id '${outputID}', got '${replacementID}'`);\n }\n if (hasRoutedOutputCallIdentity(output) &&\n hasRoutedOutputCallIdentity(replacement) &&\n output.call_id !== replacement.call_id) {\n throw new OpenAIError(`expected output item call_id '${output.call_id}', got '${replacement.call_id}'`);\n }\n}\nfunction validateOutputItemIdentity(event, snapshot, rejectInvalidShellTargets) {\n if (event.type === 'response.output_item.done') {\n validateCompletedOutputItemIdentity(event, snapshot);\n return;\n }\n if (rejectInvalidShellTargets &&\n (event.type === 'response.shell_call_command.added' ||\n event.type === 'response.shell_call_command.delta' ||\n event.type === 'response.shell_call_command.done')) {\n const output = getOutput(snapshot, event.output_index);\n if (!hasOwn(output, 'type') || output.type !== 'shell_call') {\n throw new OpenAIError(`expected output item type 'shell_call', got '${output.type}'`);\n }\n return;\n }\n if (event.type !== 'response.content_part.added' &&\n event.type !== 'response.content_part.done' &&\n !hasOwn(expectedOutputItemTypes, event.type)) {\n return;\n }\n // SAFETY: The event type was classified as item-scoped; the following checks validate its own item_id before use.\n const itemEvent = event;\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Validate untrusted streamed item identifiers and discriminators before mutating the response snapshot.\n if (!hasOwn(event, 'item_id') || typeof itemEvent.item_id !== 'string' || itemEvent.item_id.length === 0) {\n throw new OpenAIError(`expected a non-empty item_id for ${event.type}`);\n }\n const output = getOutput(snapshot, itemEvent.output_index);\n const outputID = hasOwn(output, 'id') ? output.id : undefined;\n if (outputID !== itemEvent.item_id) {\n throw new OpenAIError(`expected item_id '${outputID}', got '${itemEvent.item_id}'`);\n }\n const expectedType = getExpectedOutputItemType(itemEvent);\n if (output.type !== expectedType) {\n throw new OpenAIError(`expected output item type '${expectedType}', got '${output.type}'`);\n }\n}\nfunction getContent(content, contentIndex) {\n validateArrayIndex(content, contentIndex, 'content');\n const part = content[contentIndex];\n if (!part) {\n throw new OpenAIError(`missing content at index ${contentIndex}`);\n }\n return part;\n}\nfunction getShellOutputContent(snapshot, output, commandIndex) {\n const shellCall = snapshot.output.find((item) => item.type === 'shell_call' && item.call_id === output.call_id);\n if (shellCall) {\n validateArrayIndex(shellCall.action.commands, commandIndex, 'command');\n }\n else {\n validateArrayIndex(output.output, commandIndex, 'content', true);\n }\n while (output.output.length <= commandIndex) {\n output.output.push({\n stdout: '',\n stderr: '',\n outcome: { type: 'exit', exit_code: 0 },\n });\n }\n return getContent(output.output, commandIndex);\n}\nfunction createSupportedResponseEventTypes(eventTypes) {\n return new Set(eventTypes);\n}\nconst supportedResponseEventTypes = createSupportedResponseEventTypes([\n 'response.output_item.added',\n 'response.output_item.done',\n 'response.content_part.added',\n 'response.content_part.done',\n 'response.output_text.delta',\n 'response.output_text.done',\n 'response.output_text.annotation.added',\n 'response.refusal.delta',\n 'response.refusal.done',\n 'response.function_call_arguments.delta',\n 'response.function_call_arguments.done',\n 'response.custom_tool_call_input.delta',\n 'response.custom_tool_call_input.done',\n 'response.mcp_call_arguments.delta',\n 'response.mcp_call_arguments.done',\n 'response.shell_call_command.added',\n 'response.shell_call_command.done',\n 'response.shell_call_command.delta',\n 'response.shell_call_output_content.delta',\n 'response.shell_call_output_content.done',\n 'response.reasoning_text.delta',\n 'response.reasoning_text.done',\n 'response.reasoning_summary_part.added',\n 'response.reasoning_summary_part.done',\n 'response.reasoning_summary_text.delta',\n 'response.reasoning_summary_text.done',\n 'response.code_interpreter_call_code.delta',\n 'response.code_interpreter_call_code.done',\n 'response.code_interpreter_call.in_progress',\n 'response.code_interpreter_call.interpreting',\n 'response.code_interpreter_call.completed',\n 'response.file_search_call.in_progress',\n 'response.file_search_call.searching',\n 'response.file_search_call.completed',\n 'response.web_search_call.in_progress',\n 'response.web_search_call.searching',\n 'response.web_search_call.completed',\n 'response.image_generation_call.in_progress',\n 'response.image_generation_call.generating',\n 'response.image_generation_call.completed',\n 'response.mcp_call.in_progress',\n 'response.mcp_call.completed',\n 'response.mcp_call.failed',\n 'response.created',\n 'response.queued',\n 'response.in_progress',\n 'response.completed',\n 'response.failed',\n 'response.incomplete',\n 'response.audio.delta',\n 'response.audio.done',\n 'response.audio.transcript.delta',\n 'response.audio.transcript.done',\n 'response.compaction.compacting',\n 'response.image_generation_call.partial_image',\n 'response.mcp_list_tools.in_progress',\n 'response.mcp_list_tools.completed',\n 'response.mcp_list_tools.failed',\n 'keepalive',\n 'error',\n]);\nfunction assertNever(_value) {\n throw new OpenAIError('Unhandled response stream event: unknown');\n}\nconst responseEventRoutingFields = [\n 'item_id',\n 'output_index',\n 'content_index',\n 'annotation_index',\n 'command_index',\n 'summary_index',\n];\nfunction sanitizeResponseEvent(event) {\n let descriptor;\n try {\n descriptor = Object.getOwnPropertyDescriptor(event, 'type');\n }\n catch {\n // SAFETY: assertNever always throws; the cast routes invalid runtime events through the existing unsupported-event error path.\n return assertNever(event);\n }\n const type = descriptor?.value;\n // SAFETY: The string is used only as a Set lookup key; membership performs the supported-event check.\n if (\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Validate untrusted streamed item identifiers and discriminators before mutating the response snapshot.\n typeof type !== 'string' ||\n !supportedResponseEventTypes.has(type)) {\n // SAFETY: assertNever always throws; the cast routes invalid runtime events through the existing unsupported-event error path.\n return assertNever(event);\n }\n const stableValues = new Map([['type', type]]);\n const itemScoped = type === 'response.output_item.added' ||\n type === 'response.output_item.done' ||\n type === 'response.content_part.added' ||\n type === 'response.content_part.done' ||\n type === 'response.shell_call_command.added' ||\n type === 'response.shell_call_command.delta' ||\n type === 'response.shell_call_command.done' ||\n hasOwn(expectedOutputItemTypes, type);\n if (itemScoped) {\n try {\n for (const field of responseEventRoutingFields) {\n const routingDescriptor = Object.getOwnPropertyDescriptor(event, field);\n stableValues.set(field, routingDescriptor ? event[field] : undefined);\n }\n if (type === 'response.output_item.done') {\n stableValues.set('item', structuredClone(event.item));\n }\n else if (type === 'response.content_part.added' || type === 'response.content_part.done') {\n stableValues.set('part', structuredClone(event.part));\n }\n }\n catch {\n // SAFETY: assertNever always throws; the cast routes invalid runtime events through the existing unsupported-event error path.\n return assertNever(event);\n }\n }\n return new Proxy(event, {\n get(target, property) {\n // oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys with the original target as accessor receiver.\n return stableValues.has(property) ? stableValues.get(property) : Reflect.get(target, property, target);\n },\n });\n}\nfunction accumulateOutputItemEvent(event, snapshot, context) {\n switch (event.type) {\n case 'response.output_item.added': {\n validateArrayAppend(snapshot.output, event.output_index, 'output');\n const identityIndex = getResponseOutputIdentityIndex(context, snapshot);\n const output = structuredClone(event.item);\n const identities = getOutputItemIdentityKeys(output, event.type);\n assertOutputItemIdentitiesAvailable(identityIndex.identities, identities);\n if (output.type === 'message') {\n ensureCanonicalOutputText(context, snapshot);\n }\n snapshot.output.push(output);\n addOutputItemIdentities(identityIndex.identities, identities);\n identityIndex.length = snapshot.output.length;\n const text = getOutputText(context, output);\n if (context.canonicalSnapshot === snapshot) {\n context.outputTextIndex.append(text.length);\n }\n if (text) {\n snapshot.output_text += text;\n }\n return true;\n }\n case 'response.output_item.done': {\n const output = getOutput(snapshot, event.output_index);\n const previousText = getOutputText(context, output);\n const replacement = event.item;\n if (output.type === 'message' || replacement.type === 'message') {\n ensureCanonicalOutputText(context, snapshot);\n }\n snapshot.output[event.output_index] = replacement;\n const nextText = getOutputText(context, replacement);\n if (context.canonicalSnapshot === snapshot) {\n context.outputTextIndex.update(event.output_index, nextText.length);\n }\n updateOutputText(context, snapshot, event.output_index, previousText, nextText);\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateContentPartAddedEvent(event, snapshot, context) {\n switch (event.type) {\n case 'response.content_part.added': {\n const output = getOutput(snapshot, event.output_index);\n const { type } = output;\n const { part } = event;\n if (type === 'message' && part.type !== 'reasoning_text') {\n validateArrayAppend(output.content, event.content_index, 'content');\n const content = part;\n if (content.type === 'output_text') {\n ensureCanonicalOutputText(context, snapshot);\n }\n output.content.push(content);\n if (content.type === 'output_text') {\n updateCachedOutputTextLength(context, output, event.output_index, '', content.text);\n updateOutputText(context, snapshot, event.output_index, '', content.text, event.content_index);\n }\n }\n else if (type === 'reasoning' && part.type === 'reasoning_text') {\n const content = output.content ?? [];\n validateArrayAppend(content, event.content_index, 'content');\n if (!output.content) {\n output.content = content;\n }\n content.push(part);\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateContentPartDoneEvent(event, snapshot, context) {\n switch (event.type) {\n case 'response.content_part.done': {\n const output = getOutput(snapshot, event.output_index);\n const { part } = event;\n if (output.type === 'message' && part.type !== 'reasoning_text') {\n const content = getContent(output.content, event.content_index);\n const previousText = content.type === 'output_text' ? content.text : '';\n const replacement = part;\n if (content.type === 'output_text' || replacement.type === 'output_text') {\n ensureCanonicalOutputText(context, snapshot);\n }\n output.content[event.content_index] = replacement;\n const nextText = replacement.type === 'output_text' ? replacement.text : '';\n updateCachedOutputTextLength(context, output, event.output_index, previousText, nextText);\n updateOutputText(context, snapshot, event.output_index, previousText, nextText, event.content_index);\n }\n else if (output.type === 'reasoning' && part.type === 'reasoning_text') {\n const { content } = output;\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n getContent(content, event.content_index);\n content[event.content_index] = part;\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateOutputTextEvent(event, snapshot, context) {\n switch (event.type) {\n case 'response.output_text.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'message') {\n const content = getContent(output.content, event.content_index);\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n const previousText = content.text;\n ensureCanonicalOutputText(context, snapshot);\n content.text = previousText + event.delta;\n updateCachedOutputTextLength(context, output, event.output_index, previousText, content.text);\n if (event.output_index === snapshot.output.length - 1 &&\n event.content_index === output.content.length - 1) {\n snapshot.output_text += event.delta;\n }\n else {\n updateOutputText(context, snapshot, event.output_index, previousText, content.text, event.content_index);\n }\n }\n return true;\n }\n case 'response.output_text.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'message') {\n const content = getContent(output.content, event.content_index);\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n const previousText = content.text;\n ensureCanonicalOutputText(context, snapshot);\n content.text = event.text;\n updateCachedOutputTextLength(context, output, event.output_index, previousText, event.text);\n updateOutputText(context, snapshot, event.output_index, previousText, event.text, event.content_index);\n }\n return true;\n }\n case 'response.output_text.annotation.added': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'message') {\n const content = getContent(output.content, event.content_index);\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n validateArrayIndex(content.annotations, event.annotation_index, 'annotation', true);\n // SAFETY: The output_text discriminator and annotation index were checked; the annotation is cloned from the corresponding API event contract.\n content.annotations[event.annotation_index] = structuredClone(event.annotation);\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateRefusalAndArgumentsEvent(event, snapshot) {\n switch (event.type) {\n case 'response.refusal.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'message') {\n const content = getContent(output.content, event.content_index);\n if (content.type !== 'refusal') {\n throw new OpenAIError(`expected content to be 'refusal', got ${content.type}`);\n }\n content.refusal += event.delta;\n }\n return true;\n }\n case 'response.refusal.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'message') {\n const content = getContent(output.content, event.content_index);\n if (content.type !== 'refusal') {\n throw new OpenAIError(`expected content to be 'refusal', got ${content.type}`);\n }\n content.refusal = event.refusal;\n }\n return true;\n }\n case 'response.function_call_arguments.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'function_call') {\n output.arguments += event.delta;\n }\n return true;\n }\n case 'response.function_call_arguments.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'function_call') {\n output.arguments = event.arguments;\n }\n return true;\n }\n case 'response.custom_tool_call_input.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'custom_tool_call') {\n output.input += event.delta;\n }\n return true;\n }\n case 'response.custom_tool_call_input.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'custom_tool_call') {\n output.input = event.input;\n }\n return true;\n }\n case 'response.mcp_call_arguments.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'mcp_call') {\n output.arguments += event.delta;\n }\n return true;\n }\n case 'response.mcp_call_arguments.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'mcp_call') {\n output.arguments = event.arguments;\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateShellEvent(event, snapshot) {\n switch (event.type) {\n case 'response.shell_call_command.added':\n case 'response.shell_call_command.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'shell_call') {\n const allowAppend = event.type === 'response.shell_call_command.added';\n validateArrayIndex(output.action.commands, event.command_index, 'command', allowAppend);\n output.action.commands[event.command_index] = event.command;\n }\n return true;\n }\n case 'response.shell_call_command.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'shell_call') {\n validateArrayIndex(output.action.commands, event.command_index, 'command');\n output.action.commands[event.command_index] += event.delta;\n }\n return true;\n }\n case 'response.shell_call_output_content.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'shell_call_output') {\n const content = getShellOutputContent(snapshot, output, event.command_index);\n content.stdout += event.delta.stdout ?? '';\n content.stderr += event.delta.stderr ?? '';\n }\n return true;\n }\n case 'response.shell_call_output_content.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'shell_call_output') {\n const content = getContent(event.output, 0);\n getShellOutputContent(snapshot, output, event.command_index);\n output.output[event.command_index] = structuredClone(content);\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateReasoningEvent(event, snapshot) {\n switch (event.type) {\n case 'response.reasoning_text.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'reasoning') {\n if (!output.content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n const content = getContent(output.content, event.content_index);\n if (content.type !== 'reasoning_text') {\n throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n return true;\n }\n case 'response.reasoning_text.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'reasoning') {\n if (!output.content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n const content = getContent(output.content, event.content_index);\n if (content.type !== 'reasoning_text') {\n throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);\n }\n content.text = event.text;\n }\n return true;\n }\n case 'response.reasoning_summary_part.added': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'reasoning') {\n validateArrayAppend(output.summary, event.summary_index, 'content');\n output.summary.push(structuredClone(event.part));\n }\n return true;\n }\n case 'response.reasoning_summary_part.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'reasoning') {\n getContent(output.summary, event.summary_index);\n output.summary[event.summary_index] = structuredClone(event.part);\n }\n return true;\n }\n case 'response.reasoning_summary_text.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'reasoning') {\n const part = getContent(output.summary, event.summary_index);\n part.text += event.delta;\n }\n return true;\n }\n case 'response.reasoning_summary_text.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'reasoning') {\n const part = getContent(output.summary, event.summary_index);\n part.text = event.text;\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateCodeInterpreterEvent(event, snapshot) {\n switch (event.type) {\n case 'response.code_interpreter_call_code.delta': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'code_interpreter_call') {\n output.code = (output.code ?? '') + event.delta;\n }\n return true;\n }\n case 'response.code_interpreter_call_code.done': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'code_interpreter_call') {\n output.code = event.code;\n }\n return true;\n }\n case 'response.code_interpreter_call.in_progress': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'code_interpreter_call') {\n output.status = 'in_progress';\n }\n return true;\n }\n case 'response.code_interpreter_call.interpreting': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'code_interpreter_call') {\n output.status = 'interpreting';\n }\n return true;\n }\n case 'response.code_interpreter_call.completed': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'code_interpreter_call') {\n output.status = 'completed';\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateSearchStatusEvent(event, snapshot) {\n switch (event.type) {\n case 'response.file_search_call.in_progress': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'file_search_call') {\n output.status = 'in_progress';\n }\n return true;\n }\n case 'response.file_search_call.searching': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'file_search_call') {\n output.status = 'searching';\n }\n return true;\n }\n case 'response.file_search_call.completed': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'file_search_call') {\n output.status = 'completed';\n }\n return true;\n }\n case 'response.web_search_call.in_progress': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'web_search_call') {\n output.status = 'in_progress';\n }\n return true;\n }\n case 'response.web_search_call.searching': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'web_search_call') {\n output.status = 'searching';\n }\n return true;\n }\n case 'response.web_search_call.completed': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'web_search_call') {\n output.status = 'completed';\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction accumulateImageAndMcpStatusEvent(event, snapshot) {\n switch (event.type) {\n case 'response.image_generation_call.in_progress': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'image_generation_call') {\n output.status = 'in_progress';\n }\n return true;\n }\n case 'response.image_generation_call.generating': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'image_generation_call') {\n output.status = 'generating';\n }\n return true;\n }\n case 'response.image_generation_call.completed': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'image_generation_call') {\n output.status = 'completed';\n }\n return true;\n }\n case 'response.mcp_call.in_progress': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'mcp_call') {\n output.status = 'in_progress';\n }\n return true;\n }\n case 'response.mcp_call.completed': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'mcp_call') {\n output.status = 'completed';\n }\n return true;\n }\n case 'response.mcp_call.failed': {\n const output = getOutput(snapshot, event.output_index);\n if (output.type === 'mcp_call') {\n output.status = 'failed';\n }\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction isResponseLifecycleEvent(event) {\n switch (event.type) {\n case 'response.created':\n case 'response.queued':\n case 'response.in_progress':\n case 'response.completed':\n case 'response.failed':\n case 'response.incomplete': {\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction isIgnoredResponseEvent(event) {\n switch (event.type) {\n case 'response.audio.delta':\n case 'response.audio.done':\n case 'response.audio.transcript.delta':\n case 'response.audio.transcript.done':\n case 'response.compaction.compacting':\n case 'response.image_generation_call.partial_image':\n case 'response.mcp_list_tools.in_progress':\n case 'response.mcp_list_tools.completed':\n case 'response.mcp_list_tools.failed':\n case 'keepalive':\n case 'error': {\n return true;\n }\n default: {\n return false;\n }\n }\n}\nexport function createResponseContext() {\n return createCanonicalResponseContext();\n}\nexport function accumulateResponseWithContext(event, snapshot, context, rejectInvalidShellTargets = false, onSanitizedEvent) {\n const dispatchEvent = sanitizeResponseEvent(event);\n if (onSanitizedEvent && dispatchEvent.type !== 'keepalive') {\n onSanitizedEvent(dispatchEvent);\n }\n if (!snapshot) {\n if (dispatchEvent.type !== 'response.created') {\n throw new OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${dispatchEvent.type}`);\n }\n return cloneValidatedResponse(context, dispatchEvent.response);\n }\n validateOutputItemIdentity(dispatchEvent, snapshot, rejectInvalidShellTargets);\n if (accumulateOutputItemEvent(dispatchEvent, snapshot, context)) {\n return snapshot;\n }\n if (accumulateContentPartAddedEvent(dispatchEvent, snapshot, context)) {\n return snapshot;\n }\n if (accumulateContentPartDoneEvent(dispatchEvent, snapshot, context)) {\n return snapshot;\n }\n if (accumulateOutputTextEvent(dispatchEvent, snapshot, context)) {\n return snapshot;\n }\n if (accumulateRefusalAndArgumentsEvent(dispatchEvent, snapshot)) {\n return snapshot;\n }\n if (accumulateShellEvent(dispatchEvent, snapshot)) {\n return snapshot;\n }\n if (accumulateReasoningEvent(dispatchEvent, snapshot)) {\n return snapshot;\n }\n if (accumulateCodeInterpreterEvent(dispatchEvent, snapshot)) {\n return snapshot;\n }\n if (accumulateSearchStatusEvent(dispatchEvent, snapshot)) {\n return snapshot;\n }\n if (accumulateImageAndMcpStatusEvent(dispatchEvent, snapshot)) {\n return snapshot;\n }\n if (isResponseLifecycleEvent(dispatchEvent)) {\n return cloneValidatedResponse(context, dispatchEvent.response);\n }\n if (isIgnoredResponseEvent(dispatchEvent)) {\n return snapshot;\n }\n return assertNever(dispatchEvent);\n}\n//# sourceMappingURL=response-accumulator.mjs.map","var _ResponseStream_instances, _ResponseStream_params, _ResponseStream_currentResponseSnapshot, _ResponseStream_finalResponse, _ResponseStream_accumulatorContext, _ResponseStream_beginRequest, _ResponseStream_addEvent, _ResponseStream_endRequest;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { APIError, OpenAIError } from \"../../error.mjs\";\nimport { EventStream } from \"../EventStream.mjs\";\nimport { accumulateResponseWithContext, createResponseContext, } from \"../../internal/responses/response-accumulator.mjs\";\nimport { maybeParseResponse } from \"../ResponsesParser.mjs\";\nimport { Stream } from \"../../streaming.mjs\";\n/** Streams Responses API events while accumulating the latest response and parsed output. */\nexport class ResponseStream extends EventStream {\n /** Creates an unstarted stream, retaining request parameters for structured-output parsing. */\n constructor(params) {\n super();\n _ResponseStream_instances.add(this);\n _ResponseStream_params.set(this, void 0);\n _ResponseStream_currentResponseSnapshot.set(this, void 0);\n _ResponseStream_finalResponse.set(this, void 0);\n _ResponseStream_accumulatorContext.set(this, createResponseContext());\n __classPrivateFieldSet(this, _ResponseStream_params, params, \"f\");\n }\n /** Starts a new response stream or replays an existing response by its identifier. */\n static createResponse(client, params, options) {\n // SAFETY: The runner's request path forces stream: true; the constructor retains the same caller parameters for parsing metadata.\n const runner = new ResponseStream(params);\n runner._run(() => runner._createOrRetrieveResponse(client, params, {\n ...options,\n __metadata: { ...options?.__metadata, helperMethod: 'stream' },\n }));\n return runner;\n }\n /** Consumes serialized response events from a readable stream in another runtime. */\n static fromReadableStream(stream) {\n const runner = new ResponseStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n async _createOrRetrieveResponse(client, params, options) {\n this._listenForAbort(options?.signal);\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_beginRequest).call(this);\n let stream;\n let starting_after = null;\n if ('response_id' in params) {\n // Keep the full replay so that `accumulateResponse()` sees `response.created` and can build\n // complete snapshots before locally filtering events at `starting_after`.\n stream = await client.responses.retrieve(params.response_id, { stream: true }, { ...options, signal: this.controller.signal, stream: true });\n starting_after = params.starting_after ?? null;\n }\n else {\n stream = await client.responses.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n }\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_addEvent).call(this, event, starting_after);\n }\n if (stream.controller.signal?.aborted) {\n throw this._userAbortError();\n }\n return __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_endRequest).call(this);\n }\n async _fromReadableStream(readableStream, options) {\n this._listenForAbort(options?.signal);\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_beginRequest).call(this);\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_addEvent).call(this, event, null);\n }\n if (stream.controller.signal?.aborted) {\n throw this._userAbortError();\n }\n return __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_endRequest).call(this);\n }\n /** Iterates over response events; stopping iteration early aborts the underlying request. */\n [(_ResponseStream_params = new WeakMap(), _ResponseStream_currentResponseSnapshot = new WeakMap(), _ResponseStream_finalResponse = new WeakMap(), _ResponseStream_accumulatorContext = new WeakMap(), _ResponseStream_instances = new WeakSet(), _ResponseStream_beginRequest = function _ResponseStream_beginRequest() {\n if (this.ended) {\n return;\n }\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ResponseStream_accumulatorContext, createResponseContext(), \"f\");\n }, _ResponseStream_addEvent = function _ResponseStream_addEvent(event, starting_after) {\n if (this.ended) {\n return;\n }\n const maybeEmit = (name, event) => {\n if (starting_after == null || event.sequence_number > starting_after) {\n // SAFETY: The caller derives the event name from the dispatched event discriminator; this bridge preserves the corresponding payload.\n this._emit(name, event);\n }\n };\n if (event.type === 'error') {\n // First-party providers nest their error payload; retain flat compatibility for\n // serialized events matching the currently published event schema.\n const error = \n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- An error event can contain malformed server data; validate its container before extracting error details.\n 'error' in event && typeof event.error === 'object' && event.error !== null ? event.error : event;\n throw new APIError(undefined, error, event.message, undefined);\n }\n let dispatchEvent = event;\n const response = accumulateResponseWithContext(event, __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\"), __classPrivateFieldGet(this, _ResponseStream_accumulatorContext, \"f\"), true, (sanitizedEvent) => {\n dispatchEvent = sanitizedEvent;\n });\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, response, \"f\");\n maybeEmit('event', event);\n switch (dispatchEvent.type) {\n case 'response.output_text.delta': {\n const output = response.output[dispatchEvent.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${dispatchEvent.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[dispatchEvent.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${dispatchEvent.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n maybeEmit('response.output_text.delta', {\n ...dispatchEvent,\n type: dispatchEvent.type,\n item_id: dispatchEvent.item_id,\n output_index: dispatchEvent.output_index,\n content_index: dispatchEvent.content_index,\n snapshot: content.text,\n });\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = response.output[dispatchEvent.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${dispatchEvent.output_index}`);\n }\n if (output.type === 'function_call') {\n maybeEmit('response.function_call_arguments.delta', {\n ...dispatchEvent,\n type: dispatchEvent.type,\n item_id: dispatchEvent.item_id,\n output_index: dispatchEvent.output_index,\n snapshot: output.arguments,\n });\n }\n break;\n }\n default: {\n maybeEmit(dispatchEvent.type, event);\n break;\n }\n }\n }, _ResponseStream_endRequest = function _ResponseStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any events`);\n }\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ResponseStream_accumulatorContext, createResponseContext(), \"f\");\n const parsedResponse = finalizeResponse(snapshot, __classPrivateFieldGet(this, _ResponseStream_params, \"f\"));\n __classPrivateFieldSet(this, _ResponseStream_finalResponse, parsedResponse, \"f\");\n return parsedResponse;\n }, Symbol.asyncIterator)]() {\n return this._createIterator((push) => {\n const onEvent = (event) => push(event);\n this.on('event', onEvent);\n return () => this.off('event', onEvent);\n }, { onReturn: () => this.abort() });\n }\n /**\n * Waits for the stream to end and returns its latest accumulated response.\n *\n * A clean end after at least one response event resolves even when the response is\n * incomplete. Network errors, cancellation, and streams without a response reject.\n */\n async finalResponse() {\n await this.done();\n const response = __classPrivateFieldGet(this, _ResponseStream_finalResponse, \"f\");\n if (!response) {\n throw new OpenAIError('stream ended without producing a Response');\n }\n return response;\n }\n}\nfunction finalizeResponse(snapshot, params) {\n return maybeParseResponse(snapshot, params);\n}\n//# sourceMappingURL=ResponseStream.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class InputItems extends APIResource {\n /**\n * Returns a list of input items for a given response.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const responseItem of client.responses.inputItems.list(\n * 'response_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(responseID, query = {}, options) {\n return this._client.getAPIList(path `/responses/${responseID}/input_items`, (CursorPage), { query, ...options, __security: { bearerAuth: true } });\n }\n}\n//# sourceMappingURL=input-items.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class InputTokens extends APIResource {\n /**\n * Returns input token counts of the request.\n *\n * Returns an object with `object` set to `response.input_tokens` and an\n * `input_tokens` count.\n *\n * @example\n * ```ts\n * const response = await client.responses.inputTokens.count();\n * ```\n */\n count(body = {}, options) {\n return this._client.post('/responses/input_tokens', {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=input-tokens.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { parseResponse, addOutputText, } from \"../../lib/ResponsesParser.mjs\";\nimport { ResponseStream } from \"../../lib/responses/ResponseStream.mjs\";\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as InputItemsAPI from \"./input-items.mjs\";\nimport { InputItems } from \"./input-items.mjs\";\nimport * as InputTokensAPI from \"./input-tokens.mjs\";\nimport { InputTokens } from \"./input-tokens.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Responses extends APIResource {\n constructor() {\n super(...arguments);\n this.inputItems = new InputItemsAPI.InputItems(this._client);\n this.inputTokens = new InputTokensAPI.InputTokens(this._client);\n }\n create(body, options) {\n return this._client.post('/responses', {\n body,\n ...options,\n stream: body.stream ?? false,\n __security: { bearerAuth: true },\n })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n retrieve(responseID, query = {}, options) {\n return this._client.get(path `/responses/${responseID}`, {\n query,\n ...options,\n stream: query?.stream ?? false,\n __security: { bearerAuth: true },\n })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n /**\n * Deletes a model response with the given ID.\n *\n * @example\n * ```ts\n * await client.responses.delete(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n delete(responseID, options) {\n return this._client.delete(path `/responses/${responseID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n parse(body, options) {\n return this._client.responses\n .create(body, options)\n ._thenUnwrap((response) => parseResponse(response, body));\n }\n /**\n * Creates a model response stream\n */\n stream(body, options) {\n return ResponseStream.createResponse(this._client, body, options);\n }\n /**\n * Cancels a model response with the given ID. Only responses created with the\n * `background` parameter set to `true` can be cancelled.\n * [Learn more](https://developers.openai.com/api/docs/guides/background).\n *\n * @example\n * ```ts\n * const response = await client.responses.cancel(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n cancel(responseID, options) {\n return this._client.post(path `/responses/${responseID}/cancel`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Compact a conversation. Returns a compacted response object.\n *\n * Learn when and how to compact long-running conversations in the\n * [conversation state guide](https://developers.openai.com/api/docs/guides/conversation-state#managing-the-context-window).\n * For ZDR-compatible compaction details, see\n * [Compaction (advanced)](https://developers.openai.com/api/docs/guides/conversation-state#compaction-advanced).\n *\n * @example\n * ```ts\n * const compactedResponse = await client.responses.compact({\n * model: 'gpt-6-astra',\n * });\n * ```\n */\n compact(body, options) {\n return this._client.post('/responses/compact', { body, ...options, __security: { bearerAuth: true } });\n }\n}\nResponses.InputItems = InputItems;\nResponses.InputTokens = InputTokens;\n//# sourceMappingURL=responses.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Alerts extends APIResource {\n /**\n * Get a safety alert belonging to the authenticated API project.\n */\n retrieve(id, options) {\n return this._client.get(path `/safety/alerts/${id}`, { ...options, __security: { bearerAuth: true } });\n }\n}\n//# sourceMappingURL=alerts.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as AlertsAPI from \"./alerts.mjs\";\nimport { Alerts } from \"./alerts.mjs\";\nexport class Safety extends APIResource {\n constructor() {\n super(...arguments);\n this.alerts = new AlertsAPI.Alerts(this._client);\n }\n}\nSafety.Alerts = Alerts;\n//# sourceMappingURL=safety.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Content extends APIResource {\n /**\n * Download a skill zip bundle by its ID.\n */\n retrieve(skillID, options) {\n return this._client.get(path `/skills/${skillID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=content.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Content extends APIResource {\n /**\n * Download a skill version zip bundle.\n */\n retrieve(version, params, options) {\n const { skill_id } = params;\n return this._client.get(path `/skills/${skill_id}/versions/${version}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=content.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as ContentAPI from \"./content.mjs\";\nimport { Content } from \"./content.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { maybeMultipartFormRequestOptions } from \"../../../internal/uploads.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Versions extends APIResource {\n constructor() {\n super(...arguments);\n this.content = new ContentAPI.Content(this._client);\n }\n /**\n * Create a new immutable skill version.\n */\n create(skillID, body = {}, options) {\n return this._client.post(path `/skills/${skillID}/versions`, maybeMultipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client, {\n stripFilenames: false,\n }));\n }\n /**\n * Get a specific skill version.\n */\n retrieve(version, params, options) {\n const { skill_id } = params;\n return this._client.get(path `/skills/${skill_id}/versions/${version}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * List skill versions for a skill.\n */\n list(skillID, query = {}, options) {\n return this._client.getAPIList(path `/skills/${skillID}/versions`, (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a skill version.\n */\n delete(version, params, options) {\n const { skill_id } = params;\n return this._client.delete(path `/skills/${skill_id}/versions/${version}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\nVersions.Content = Content;\n//# sourceMappingURL=versions.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as ContentAPI from \"./content.mjs\";\nimport { Content } from \"./content.mjs\";\nimport * as VersionsAPI from \"./versions/versions.mjs\";\nimport { Versions, } from \"./versions/versions.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { maybeMultipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Skills extends APIResource {\n constructor() {\n super(...arguments);\n this.content = new ContentAPI.Content(this._client);\n this.versions = new VersionsAPI.Versions(this._client);\n }\n /**\n * Create a new skill.\n */\n create(body = {}, options) {\n return this._client.post('/skills', maybeMultipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client, {\n stripFilenames: false,\n }));\n }\n /**\n * Get a skill by its ID.\n */\n retrieve(skillID, options) {\n return this._client.get(path `/skills/${skillID}`, { ...options, __security: { bearerAuth: true } });\n }\n /**\n * Update the default version pointer for a skill.\n */\n update(skillID, body, options) {\n return this._client.post(path `/skills/${skillID}`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * List all skills for the current project.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/skills', (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a skill by its ID.\n */\n delete(skillID, options) {\n return this._client.delete(path `/skills/${skillID}`, { ...options, __security: { bearerAuth: true } });\n }\n}\nSkills.Content = Content;\nSkills.Versions = Versions;\n//# sourceMappingURL=skills.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\n/**\n * Use Uploads to upload large files in multiple parts.\n */\nexport class Parts extends APIResource {\n /**\n * Adds a\n * [Part](https://developers.openai.com/api/reference/resources/uploads/subresources/parts)\n * to an [Upload](https://developers.openai.com/api/reference/resources/uploads)\n * object. A Part represents a chunk of bytes from the file you are trying to\n * upload.\n *\n * Each Part can be at most 64 MB, and you can add Parts until you hit the Upload\n * maximum of 8 GB.\n *\n * It is possible to add multiple Parts in parallel. You can decide the intended\n * order of the Parts when you\n * [complete the Upload](https://developers.openai.com/api/reference/resources/uploads/methods/complete).\n */\n create(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/parts`, multipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n}\n//# sourceMappingURL=parts.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as PartsAPI from \"./parts.mjs\";\nimport { Parts } from \"./parts.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\n/**\n * Use Uploads to upload large files in multiple parts.\n */\nexport class Uploads extends APIResource {\n constructor() {\n super(...arguments);\n this.parts = new PartsAPI.Parts(this._client);\n }\n /**\n * Creates an intermediate\n * [Upload](https://developers.openai.com/api/reference/resources/uploads) object\n * that you can add\n * [Parts](https://developers.openai.com/api/reference/resources/uploads/subresources/parts)\n * to. Currently, an Upload can accept at most 8 GB in total and expires after an\n * hour after you create it.\n *\n * Once you complete the Upload, we will create a\n * [File](https://developers.openai.com/api/reference/resources/files) object that\n * contains all the parts you uploaded. This File is usable in the rest of our\n * platform as a regular File object.\n *\n * For certain `purpose` values, the correct `mime_type` must be specified. Please\n * refer to documentation for the\n * [supported MIME types for your use case](https://developers.openai.com/api/docs/guides/tools-file-search#supported-files).\n *\n * For guidance on the proper filename extensions for each purpose, please follow\n * the documentation on\n * [creating a File](https://developers.openai.com/api/reference/resources/files/methods/create).\n *\n * Returns the Upload object with status `pending`.\n */\n create(body, options) {\n return this._client.post('/uploads', { body, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Cancels the Upload. No Parts may be added after an Upload is cancelled.\n *\n * Returns the Upload object with status `cancelled`.\n */\n cancel(uploadID, options) {\n return this._client.post(path `/uploads/${uploadID}/cancel`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Completes the\n * [Upload](https://developers.openai.com/api/reference/resources/uploads).\n *\n * Within the returned Upload object, there is a nested\n * [File](https://developers.openai.com/api/reference/resources/files) object that\n * is ready to use in the rest of the platform.\n *\n * You can specify the order of the Parts by passing in an ordered list of the Part\n * IDs.\n *\n * The number of bytes uploaded upon completion must match the number of bytes\n * initially specified when creating the Upload object. No Parts may be added after\n * an Upload is completed. Returns the Upload object with status `completed`,\n * including an additional `file` property containing the created usable File\n * object.\n */\n complete(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/complete`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n}\nUploads.Parts = Parts;\n//# sourceMappingURL=uploads.mjs.map","import { pollWithResponse } from \"./polling.mjs\";\n/**\n * Polls an attached file through the resource's retrieve method until it completes,\n * fails, or is cancelled. Retrieval errors are propagated unchanged.\n *\n * @internal\n */\nexport function pollVectorStoreFile(resource, vectorStoreID, fileID, options) {\n return pollWithResponse((headers) => resource.retrieve(fileID, { vector_store_id: vectorStoreID }, { ...options, headers }), ['in_progress'], ['failed', 'cancelled', 'completed'], options);\n}\n/**\n * Polls a file batch through the resource's retrieve method until it completes,\n * fails, or is cancelled. Retrieval errors are propagated unchanged.\n *\n * @internal\n */\nexport function pollVectorStoreFileBatch(resource, vectorStoreID, batchID, options) {\n return pollWithResponse((headers) => resource.retrieve(batchID, { vector_store_id: vectorStoreID }, { ...options, headers }), ['in_progress'], ['failed', 'cancelled', 'completed'], options);\n}\n//# sourceMappingURL=vector-store-polling.mjs.map","/**\n * Like `Promise.allSettled()` but throws an error if any promises are rejected.\n * Rejection reasons remain available on the thrown error's non-enumerable `rejections`\n * property without being written to the global console.\n */\nexport const allSettledWithThrow = async (promises) => {\n const results = await Promise.allSettled(promises);\n const rejected = results.filter((result) => result.status === 'rejected');\n if (rejected.length) {\n throw Object.defineProperty(new Error(`${rejected.length} promise(s) failed`), 'rejections', {\n configurable: true,\n value: rejected.map(({ reason }) => reason),\n writable: true,\n });\n }\n // Note: TS was complaining about using `.filter().map()` here for some reason\n const values = [];\n for (const result of results) {\n if (result.status === 'fulfilled') {\n values.push(result.value);\n }\n }\n return values;\n};\n//# sourceMappingURL=Util.mjs.map","import { allSettledWithThrow } from \"./Util.mjs\";\n/**\n * Uploads files with a shared iterator, then creates and polls the batch. Every\n * worker settles before upload failures are propagated. Zero concurrency is\n * rejected before any upload or batch-creation request.\n *\n * @internal\n */\nexport async function uploadAndPollVectorStoreFileBatch(resource, client, vectorStoreId, files, fileIds, options) {\n if (files === null || files === undefined || files.length === 0) {\n throw new Error(\"No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead\");\n }\n const configuredConcurrency = options?.maxConcurrency ?? 5;\n const concurrencyLimit = Math.min(configuredConcurrency, files.length);\n if (concurrencyLimit === 0) {\n throw new RangeError('maxConcurrency must be greater than 0');\n }\n const fileIterator = files.values();\n const allFileIds = [...fileIds];\n // This code is based on this design. The libraries don't accommodate our environment limits.\n // https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all\n async function processFiles(iterator) {\n for (const item of iterator) {\n // oxlint-disable-next-line no-await-in-loop -- Each worker uploads one file at a time.\n const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options);\n allFileIds.push(fileObj.id);\n }\n }\n // Assigning length preserves native validation of invalid concurrency values.\n const workers = [];\n workers.length = concurrencyLimit;\n for (let index = 0; index < workers.length; index += 1) {\n workers[index] = processFiles(fileIterator);\n }\n await allSettledWithThrow(workers);\n return await resource.createAndPoll(vectorStoreId, { file_ids: allFileIds }, options);\n}\n//# sourceMappingURL=vector-store-upload.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { pollVectorStoreFileBatch } from \"../../lib/vector-store-polling.mjs\";\nimport { uploadAndPollVectorStoreFileBatch } from \"../../lib/vector-store-upload.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class FileBatches extends APIResource {\n /**\n * Create a vector store file batch.\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/file_batches`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves a vector store file batch.\n */\n retrieve(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/file_batches/${batchID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Cancel a vector store file batch. This attempts to cancel the processing of\n * files in this batch as soon as possible.\n */\n cancel(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Create a vector store batch and poll until all files have been processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const batch = await this.create(vectorStoreId, body, options);\n return await this.poll(vectorStoreId, batch.id, options);\n }\n /**\n * Returns a list of vector store files in a batch.\n */\n listFiles(batchID, params, options) {\n const { vector_store_id, ...query } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/files`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Wait for the given file batch to be processed.\n *\n * Note: this will return even if one of the files failed to process, you need to\n * check batch.file_counts.failed_count to handle this case.\n */\n async poll(vectorStoreID, batchID, options) {\n return await pollVectorStoreFileBatch(this, vectorStoreID, batchID, options);\n }\n /**\n * Uploads the given files concurrently and then creates a vector store file batch.\n *\n * The concurrency limit is configurable using the `maxConcurrency` parameter.\n */\n async uploadAndPoll(vectorStoreId, { files, fileIds = [] }, options) {\n return await uploadAndPollVectorStoreFileBatch(this, this._client, vectorStoreId, files, fileIds, options);\n }\n}\n//# sourceMappingURL=file-batches.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { pollVectorStoreFile } from \"../../lib/vector-store-polling.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Create a vector store file by attaching a\n * [File](https://developers.openai.com/api/reference/resources/files) to a\n * [vector store](https://developers.openai.com/api/reference/resources/vector_stores).\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/files`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves a vector store file.\n */\n retrieve(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Update attributes on a vector store file.\n */\n update(fileID, params, options) {\n const { vector_store_id, ...body } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Returns a list of vector store files.\n */\n list(vectorStoreID, query = {}, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/files`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a vector store file. This will remove the file from the vector store but\n * the file itself will not be deleted. To delete the file, use the\n * [delete file](https://developers.openai.com/api/reference/resources/files/methods/delete)\n * endpoint.\n */\n delete(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.delete(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Attach a file to the given vector store and wait for it to be processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const file = await this.create(vectorStoreId, body, options);\n return await this.poll(vectorStoreId, file.id, options);\n }\n /**\n * Wait for the vector store file to finish processing.\n *\n * Note: this will return even if the file failed to process, you need to check\n * file.last_error and file.status to handle these cases\n */\n async poll(vectorStoreID, fileID, options) {\n return await pollVectorStoreFile(this, vectorStoreID, fileID, options);\n }\n /**\n * Upload a file to the `files` API and then attach it to the given vector store.\n *\n * Note the file will be asynchronously processed (you can use the alternative\n * polling helper method to wait for processing to complete).\n */\n async upload(vectorStoreId, file, options) {\n const fileInfo = await this._client.files.create({ file: file, purpose: 'assistants' }, options);\n return this.create(vectorStoreId, { file_id: fileInfo.id }, options);\n }\n /**\n * Add a file to a vector store and poll until processing is complete.\n */\n async uploadAndPoll(vectorStoreId, file, options) {\n const fileInfo = await this.upload(vectorStoreId, file, options);\n return await this.poll(vectorStoreId, fileInfo.id, options);\n }\n /**\n * Retrieve the parsed contents of a vector store file.\n */\n content(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/files/${fileID}/content`, (Page), {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FileBatchesAPI from \"./file-batches.mjs\";\nimport { FileBatches, } from \"./file-batches.mjs\";\nimport * as FilesAPI from \"./files.mjs\";\nimport { Files, } from \"./files.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class VectorStores extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n this.fileBatches = new FileBatchesAPI.FileBatches(this._client);\n }\n /**\n * Create a vector store.\n */\n create(body, options) {\n return this._client.post('/vector_stores', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Retrieves a vector store.\n */\n retrieve(vectorStoreID, options) {\n return this._client.get(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Modifies a vector store.\n */\n update(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Returns a list of vector stores.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/vector_stores', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Delete a vector store.\n */\n delete(vectorStoreID, options) {\n return this._client.delete(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n /**\n * Search a vector store for relevant chunks based on a query and file attributes\n * filter.\n */\n search(vectorStoreID, body, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/search`, (Page), {\n body,\n method: 'post',\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n __security: { bearerAuth: true },\n });\n }\n}\nVectorStores.Files = Files;\nVectorStores.FileBatches = FileBatches;\n//# sourceMappingURL=vector-stores.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { ConversationCursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { maybeMultipartFormRequestOptions, multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\n/**\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\nexport class Videos extends APIResource {\n /**\n * Create a new video generation job from a prompt and optional reference assets.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n create(body, options) {\n return this._client.post('/videos', multipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n /**\n * Fetch the latest metadata for a generated video.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n retrieve(videoID, options) {\n return this._client.get(path `/videos/${videoID}`, { ...options, __security: { bearerAuth: true } });\n }\n /**\n * List recently generated videos for the current project.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/videos', (ConversationCursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Permanently delete a completed or failed video and its stored assets.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n delete(videoID, options) {\n return this._client.delete(path `/videos/${videoID}`, { ...options, __security: { bearerAuth: true } });\n }\n /**\n * Create a character from an uploaded video.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n createCharacter(body, options) {\n return this._client.post('/videos/characters', multipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n /**\n * Download the generated video bytes or a derived preview asset.\n *\n * Streams the rendered video content for the specified video job.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n downloadContent(videoID, query = {}, options) {\n return this._client.get(path `/videos/${videoID}/content`, {\n query,\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __security: { bearerAuth: true },\n __binaryResponse: true,\n });\n }\n /**\n * Create a new video generation job by editing a source video or existing\n * generated video.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n edit(body, options) {\n return this._client.post('/videos/edits', multipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n /**\n * Create an extension of a completed video.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n extend(body, options) {\n return this._client.post('/videos/extensions', multipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n /**\n * Fetch a character.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n getCharacter(characterID, options) {\n return this._client.get(path `/videos/characters/${characterID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Create a remix of a completed video using a refreshed prompt.\n *\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n remix(videoID, body, options) {\n return this._client.post(path `/videos/${videoID}/remix`, maybeMultipartFormRequestOptions({ body, ...options, __security: { bearerAuth: true } }, this._client));\n }\n}\n//# sourceMappingURL=videos.mjs.map","import { InvalidWebhookSignatureError } from \"../error.mjs\";\nimport { fromBase64 } from \"../internal/utils/base64.mjs\";\nimport { encodeUTF8 } from \"../internal/utils/bytes.mjs\";\nconst MAX_DIRECT_WEBHOOK_VERIFICATIONS = 32;\nconst SHA256_SIGNATURE_LENGTH = 32;\n/**\n * Checks whether a webhook header requires constant-work HMAC signing without\n * retaining an unbounded number of signature candidates.\n *\n * @internal\n */\nexport function webhookSignatureRequiresSigning(signatureHeader) {\n return (signatureHeader.split(' ', MAX_DIRECT_WEBHOOK_VERIFICATIONS + 1).length > MAX_DIRECT_WEBHOOK_VERIFICATIONS);\n}\nfunction* signatureCandidates(signatureHeader) {\n let start = 0;\n while (start <= signatureHeader.length) {\n const separator = signatureHeader.indexOf(' ', start);\n const candidate = signatureHeader.slice(start, separator === -1 ? undefined : separator);\n yield candidate.startsWith('v1,') ? candidate.slice(3) : candidate;\n if (separator === -1) {\n break;\n }\n start = separator + 1;\n }\n}\nfunction decodeSignature(signature) {\n try {\n const signatureBytes = fromBase64(signature);\n return signatureBytes.byteLength === SHA256_SIGNATURE_LENGTH ? signatureBytes : undefined;\n }\n catch {\n // Invalid base64 does not prevent trying the next value.\n return undefined;\n }\n}\nfunction firstValidLengthSignature(signatureHeader) {\n for (const signature of signatureCandidates(signatureHeader)) {\n const signatureBytes = decodeSignature(signature);\n if (signatureBytes) {\n return signatureBytes;\n }\n }\n return undefined;\n}\nfunction selectMatchingSignature(signatureHeader, expectedSignature, firstSignature) {\n let matchingSignature = firstSignature;\n for (const signature of signatureCandidates(signatureHeader)) {\n const signatureBytes = decodeSignature(signature);\n if (!signatureBytes) {\n continue;\n }\n let difference = 0;\n for (const [index, byte] of signatureBytes.entries()) {\n // oxlint-disable-next-line no-bitwise -- Compare every HMAC byte without short-circuiting on shared prefixes.\n difference |= byte ^ (expectedSignature[index] ?? 0);\n }\n if (difference === 0) {\n matchingSignature = signatureBytes;\n }\n }\n return matchingSignature;\n}\n/**\n * Checks the timestamp and HMAC signatures after the resource has validated its\n * crypto capabilities, secret, and required headers.\n *\n * @internal\n */\nexport async function verifyWebhookSignature(payload, signatureHeader, timestamp, webhookId, secret, tolerance) {\n // oxlint-disable-next-line unicorn/prefer-number-coercion -- Preserve numeric-prefix parsing while signing the original timestamp text.\n const timestampSeconds = Number.parseInt(timestamp, 10);\n if (Number.isNaN(timestampSeconds)) {\n throw new InvalidWebhookSignatureError('Invalid webhook timestamp format');\n }\n const nowSeconds = Math.floor(Date.now() / 1000);\n if (nowSeconds - timestampSeconds > tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too old');\n }\n if (timestampSeconds > nowSeconds + tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too new');\n }\n // Multiple signatures are space-separated; accept a matching value at any position.\n const useBoundedVerification = webhookSignatureRequiresSigning(signatureHeader);\n const firstSignature = useBoundedVerification ? firstValidLengthSignature(signatureHeader) : undefined;\n if (useBoundedVerification && !firstSignature) {\n throw new InvalidWebhookSignatureError('The given webhook signature does not match the expected signature');\n }\n const decodedSecret = Uint8Array.from(secret.startsWith('whsec_') ? fromBase64(secret.slice('whsec_'.length)) : encodeUTF8(secret));\n const signedPayload = webhookId ? `${webhookId}.${timestamp}.${payload}` : `${timestamp}.${payload}`;\n const signedPayloadBytes = Uint8Array.from(encodeUTF8(signedPayload));\n const key = await crypto.subtle.importKey('raw', decodedSecret, { name: 'HMAC', hash: 'SHA-256' }, false, useBoundedVerification ? ['sign', 'verify'] : ['verify']);\n if (useBoundedVerification && firstSignature) {\n const expectedSignature = new Uint8Array(await crypto.subtle.sign('HMAC', key, signedPayloadBytes));\n const signatureToVerify = selectMatchingSignature(signatureHeader, expectedSignature, firstSignature);\n try {\n if (await crypto.subtle.verify('HMAC', key, Uint8Array.from(signatureToVerify), signedPayloadBytes)) {\n return;\n }\n }\n catch {\n // Provider verification failures have the same typed mismatch as the direct path.\n }\n throw new InvalidWebhookSignatureError('The given webhook signature does not match the expected signature');\n }\n for (const signature of signatureCandidates(signatureHeader)) {\n try {\n const signatureBytes = Uint8Array.from(fromBase64(signature));\n // oxlint-disable-next-line no-await-in-loop -- Check signatures in order and stop at the first match.\n const isValid = await crypto.subtle.verify('HMAC', key, signatureBytes, signedPayloadBytes);\n if (isValid) {\n return;\n }\n }\n catch {\n // Invalid base64 or signature format does not prevent trying the next value.\n }\n }\n throw new InvalidWebhookSignatureError('The given webhook signature does not match the expected signature');\n}\n//# sourceMappingURL=webhook-signature.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class EventTypes extends APIResource {\n /**\n * Returns webhook event types visible to the authenticated project.\n *\n * @example\n * ```ts\n * const webhookEventTypeList =\n * await client.webhooks.eventTypes.list();\n * ```\n */\n list(options) {\n return this._client.get('/webhook_event_types', { ...options, __security: { bearerAuth: true } });\n }\n}\n//# sourceMappingURL=event-types.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nvar _Webhooks_instances, _Webhooks_validateSecret, _Webhooks_getRequiredHeader;\nimport { __classPrivateFieldGet } from \"../../internal/tslib.mjs\";\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { verifyWebhookSignature, webhookSignatureRequiresSigning } from \"../../lib/webhook-signature.mjs\";\nimport * as EventTypesAPI from \"./event-types.mjs\";\nimport { EventTypes } from \"./event-types.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Webhooks extends APIResource {\n constructor() {\n super(...arguments);\n _Webhooks_instances.add(this);\n this.eventTypes = new EventTypesAPI.EventTypes(this._client);\n }\n /**\n * Creates a webhook endpoint for the authenticated project.\n *\n * @example\n * ```ts\n * const webhookEndpointWithSecret =\n * await client.webhooks.create({\n * event_types: ['batch.completed'],\n * name: 'x',\n * url: 'https://',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/webhook_endpoints', { body, ...options, __security: { bearerAuth: true } });\n }\n /**\n * Retrieves a webhook endpoint for the authenticated project.\n *\n * @example\n * ```ts\n * const webhookEndpoint = await client.webhooks.retrieve(\n * 'whe_123',\n * );\n * ```\n */\n retrieve(webhookEndpointID, options) {\n return this._client.get(path `/webhook_endpoints/${webhookEndpointID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Updates a webhook endpoint for the authenticated project.\n *\n * @example\n * ```ts\n * const webhookEndpoint = await client.webhooks.update('whe_123');\n * ```\n */\n update(webhookEndpointID, body = {}, options) {\n return this._client.post(path `/webhook_endpoints/${webhookEndpointID}`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Returns webhook endpoints for the authenticated project in newest-first order.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const webhookEndpoint of client.webhooks.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/webhook_endpoints', (CursorPage), {\n query,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Deletes a webhook endpoint for the authenticated project.\n *\n * @example\n * ```ts\n * const deletedWebhookEndpoint = await client.webhooks.delete(\n * 'whe_123',\n * );\n * ```\n */\n delete(webhookEndpointID, options) {\n return this._client.delete(path `/webhook_endpoints/${webhookEndpointID}`, {\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Rotates the signing secret for a webhook endpoint in the authenticated project.\n *\n * @example\n * ```ts\n * const webhookEndpointWithSecret =\n * await client.webhooks.rotateSecret('whe_123');\n * ```\n */\n rotateSecret(webhookEndpointID, body = {}, options) {\n return this._client.post(path `/webhook_endpoints/${webhookEndpointID}/rotate_secret`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Sends a sample event to a webhook endpoint for the authenticated project.\n *\n * @example\n * ```ts\n * const webhookEndpointTestResult =\n * await client.webhooks.test('whe_123', {\n * event_type: 'batch.completed',\n * });\n * ```\n */\n test(webhookEndpointID, body, options) {\n return this._client.post(path `/webhook_endpoints/${webhookEndpointID}/test`, {\n body,\n ...options,\n __security: { bearerAuth: true },\n });\n }\n /**\n * Validates that the given payload was sent by OpenAI and parses the payload.\n */\n async unwrap(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n await this.verifySignature(payload, headers, secret, tolerance);\n return JSON.parse(payload);\n }\n /**\n * Validates whether or not the webhook payload was sent by OpenAI.\n *\n * An error will be raised if the webhook payload was not sent by OpenAI.\n *\n * @param payload - The webhook payload\n * @param headers - The webhook headers\n * @param secret - The webhook secret (optional, will use client secret if not provided)\n * @param tolerance - Maximum age of the webhook in seconds (default: 300 = 5 minutes)\n */\n async verifySignature(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n if (typeof crypto === 'undefined' ||\n typeof crypto.subtle?.importKey !== 'function' ||\n typeof crypto.subtle.verify !== 'function') {\n throw new Error('Webhook signature verification is only supported when the `crypto` global is defined');\n }\n __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_validateSecret).call(this, secret);\n const headersObj = buildHeaders([headers]).values;\n const signatureHeader = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-signature');\n const timestamp = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-timestamp');\n const webhookId = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-id');\n if (webhookSignatureRequiresSigning(signatureHeader) && typeof crypto.subtle.sign !== 'function') {\n throw new Error('Webhook signature verification is only supported when the `crypto` global is defined');\n }\n return await verifyWebhookSignature(payload, signatureHeader, timestamp, webhookId, secret, tolerance);\n }\n}\n_Webhooks_instances = new WeakSet(), _Webhooks_validateSecret = function _Webhooks_validateSecret(secret) {\n if (typeof secret !== 'string' || secret.length === 0) {\n 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`);\n }\n}, _Webhooks_getRequiredHeader = function _Webhooks_getRequiredHeader(headers, name) {\n if (!headers) {\n throw new Error(`Headers are required`);\n }\n const value = headers.get(name);\n if (value === null || value === undefined) {\n throw new Error(`Missing required header: ${name}`);\n }\n return value;\n};\nWebhooks.EventTypes = EventTypes;\n//# sourceMappingURL=webhooks.mjs.map","/** Selects a captured credential without treating an explicit null as absent. @internal */\nexport function getRealtimeAPIKey(client, captured) {\n return captured === undefined ? client?.apiKey : captured;\n}\n/**\n * Captures the key belonging to this request or factory invocation while retaining the\n * existing boolean credential-hook contract. Legacy overrides that do not\n * capture a key keep their shared-property behavior and remain responsible for\n * synchronizing concurrent credential updates.\n * @internal\n */\nexport async function resolveRealtimeAPIKey(client) {\n let apiKey;\n const isProvider = await client._callApiKey((resolved) => {\n apiKey = resolved;\n });\n return { apiKey: apiKey === undefined ? client.apiKey : apiKey, isProvider };\n}\n//# sourceMappingURL=realtime-credentials.mjs.map","/**\n * A provider factory such as `bedrock(options)` captures configuration in a\n * definition, while every OpenAI client receives a fresh runtime from\n * `definition.configure()`. Keeping definitions out of the provider object\n * makes providers opaque and prevents arbitrary objects from imitating one.\n * It also leaves provider-specific dependencies outside the core SDK.\n *\n * The registry lives on `globalThis` under a global symbol so a provider made\n * by one copy of the package still works with another copy, including mixed\n * CommonJS and ESM installations. The WeakMap avoids retaining discarded\n * provider configurations.\n */\nconst providerDefinitionsKey = Symbol.for('openai.node.providerDefinitions.v1');\n// SAFETY: This versioned global symbol is the SDK-owned cross-copy WeakMap registry; no provider object fields are trusted through it.\nconst providerGlobal = globalThis;\n// SAFETY: This versioned global symbol is the SDK-owned cross-copy WeakMap registry; no provider object fields are trusted through it.\nconst existingProviderDefinitions = providerGlobal[providerDefinitionsKey];\nconst providerDefinitions = existingProviderDefinitions ?? new WeakMap();\nif (!existingProviderDefinitions) {\n Object.defineProperty(providerGlobal, providerDefinitionsKey, { value: providerDefinitions });\n}\n/**\n * Creates an opaque, immutable provider handle for a runtime definition.\n *\n * The definition is registered out of band and can be resolved by another\n * installed copy of the SDK in the same JavaScript realm.\n */\nexport function createProvider(definition) {\n // SAFETY: This function creates the opaque handle and immediately registers its identity in the private WeakMap, which is the runtime brand check.\n const provider = Object.freeze({});\n providerDefinitions.set(provider, definition);\n return provider;\n}\n/**\n * Creates a new client-specific runtime from a previously registered provider.\n *\n * @throws {Error} If the value was not created with {@link createProvider}.\n */\nexport function configureProvider(provider) {\n const definition = providerDefinitions.get(provider);\n if (!definition) {\n throw new Error('Invalid provider. Providers must be created with createProvider().');\n }\n return definition.configure();\n}\n//# sourceMappingURL=provider.mjs.map","// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.\nvar _OpenAI_instances, _a, _OpenAI_encoder, _OpenAI_x509Authentication, _OpenAI_x509Credential, _OpenAI_x509Fetch, _OpenAI_explicitDataResidency, _OpenAI_responseAttempts, _OpenAI_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON, hasOwn } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { addRequestAbortListener, retainRequestAbortCallback } from \"./internal/utils/abort.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { addRequestID, defaultParseResponse } from \"./internal/parse.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport * as Shims from \"./internal/shims.mjs\";\nimport * as Opts from \"./internal/request-options.mjs\";\nimport { stringifyQuery } from \"./internal/utils/query.mjs\";\nimport { VERSION } from \"./version.mjs\";\nimport { resolveDataResidency } from \"./internal/data-residency.mjs\";\nimport * as Errors from \"./core/error.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport { WorkloadIdentityAuth } from \"./auth/workload-identity-auth.mjs\";\nimport { X509_API_BASE_URL, assertX509APIOrigin } from \"./internal/auth/x509-api-origin.mjs\";\nimport { X509WorkloadIdentityAuth, assertX509RequestOptions, isX509WorkloadIdentity, snapshotX509RequestOptions, } from \"./internal/auth/x509-workload-identity-auth.mjs\";\nimport { normalizeX509CredentialOptions, prepareX509ClientClone, } from \"./internal/auth/x509-credential-options.mjs\";\nimport { isTransientX509ConnectionError, markApprovedX509Client } from './internal/auth/x509-transport-state.mjs';\nimport { OAuthError, SubjectTokenProviderError } from \"./core/error.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { resolveRealtimeAPIKey } from \"./internal/realtime-credentials.mjs\";\nimport { Batches, } from \"./resources/batches.mjs\";\nimport { Completions, } from \"./resources/completions.mjs\";\nimport { ContentProvenanceChecks, } from \"./resources/content-provenance-checks.mjs\";\nimport { Embeddings, } from \"./resources/embeddings.mjs\";\nimport { Files, } from \"./resources/files.mjs\";\nimport { Images, } from \"./resources/images.mjs\";\nimport { Models } from \"./resources/models.mjs\";\nimport { Moderations, } from \"./resources/moderations.mjs\";\nimport { Videos, } from \"./resources/videos.mjs\";\nimport { Admin } from \"./resources/admin/admin.mjs\";\nimport { Audio } from \"./resources/audio/audio.mjs\";\nimport { Beta } from \"./resources/beta/beta.mjs\";\nimport { Chat } from \"./resources/chat/chat.mjs\";\nimport { Containers, } from \"./resources/containers/containers.mjs\";\nimport { Conversations } from \"./resources/conversations/conversations.mjs\";\nimport { Evals, } from \"./resources/evals/evals.mjs\";\nimport { FineTuning } from \"./resources/fine-tuning/fine-tuning.mjs\";\nimport { Graders } from \"./resources/graders/graders.mjs\";\nimport { Live } from \"./resources/live/live.mjs\";\nimport { Realtime } from \"./resources/realtime/realtime.mjs\";\nimport { Responses } from \"./resources/responses/responses.mjs\";\nimport { Safety } from \"./resources/safety/safety.mjs\";\nimport { Skills, } from \"./resources/skills/skills.mjs\";\nimport { Uploads as UploadsAPIUploads, } from \"./resources/uploads/uploads.mjs\";\nimport { VectorStores, } from \"./resources/vector-stores/vector-stores.mjs\";\nimport { Webhooks } from \"./resources/webhooks/webhooks.mjs\";\nimport { isRunningInBrowser } from \"./internal/detect-platform.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { configureProvider } from \"./internal/provider.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { formatRequestDetails, loggerFor, parseLogLevel, redactURL, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\nfunction isRunningInBrowserOrBrowserWorker() {\n if (isRunningInBrowser())\n return true;\n const scope = globalThis;\n return (typeof scope.WorkerGlobalScope === 'function' &&\n scope instanceof scope.WorkerGlobalScope &&\n typeof scope.WorkerNavigator === 'function' &&\n scope.navigator instanceof scope.WorkerNavigator &&\n typeof scope.navigator?.userAgent === 'string' &&\n scope.navigator.userAgent !== 'Cloudflare-Workers' &&\n scope.process?.versions?.node === undefined &&\n scope.Deno === undefined &&\n scope.Bun === undefined &&\n scope.EdgeRuntime === undefined &&\n scope.WebSocketPair === undefined);\n}\nconst WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER = 'workload-identity-auth';\nconst inheritedDataResidencySelection = Symbol('inheritedDataResidencySelection');\n/**\n * API Client for interfacing with the OpenAI API.\n */\nexport class OpenAI {\n /**\n * API Client for interfacing with the OpenAI API.\n *\n * @param {string | null | undefined} [opts.apiKey=process.env['OPENAI_API_KEY'] ?? null]\n * @param {string | null | undefined} [opts.adminAPIKey=process.env['OPENAI_ADMIN_KEY'] ?? null]\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string | null | undefined} [opts.project=process.env['OPENAI_PROJECT_ID'] ?? null]\n * @param {string | null | undefined} [opts.webhookSecret=process.env['OPENAI_WEBHOOK_SECRET'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL'] ?? https://api.openai.com/v1] - Override the default base URL for the API.\n * @param {Provider} [opts.provider] - Configure a third-party API provider. Mutually exclusive with top-level authentication and base URL options.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor(clientOptions = {}) {\n _OpenAI_instances.add(this);\n _OpenAI_encoder.set(this, void 0);\n _OpenAI_x509Authentication.set(this, void 0);\n _OpenAI_x509Credential.set(this, void 0);\n _OpenAI_x509Fetch.set(this, void 0);\n // Preserve an explicit global selection without storing a second routing URL.\n _OpenAI_explicitDataResidency.set(this, false);\n _OpenAI_responseAttempts.set(this, new WeakMap());\n /**\n * Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.\n */\n this.completions = new API.Completions(this);\n this.chat = new API.Chat(this);\n /**\n * Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.\n */\n this.embeddings = new API.Embeddings(this);\n /**\n * Files are used to upload documents that can be used with features like Assistants and Fine-tuning.\n */\n this.files = new API.Files(this);\n /**\n * Given a prompt and/or an input image, the model will generate a new image.\n */\n this.images = new API.Images(this);\n this.contentProvenanceChecks = new API.ContentProvenanceChecks(this);\n this.audio = new API.Audio(this);\n /**\n * Given text and/or image inputs, classifies if those inputs are potentially harmful.\n */\n this.moderations = new API.Moderations(this);\n /**\n * List and describe the various models available in the API.\n */\n this.models = new API.Models(this);\n this.fineTuning = new API.FineTuning(this);\n this.graders = new API.Graders(this);\n this.vectorStores = new API.VectorStores(this);\n this.safety = new API.Safety(this);\n this.webhooks = new API.Webhooks(this);\n this.beta = new API.Beta(this);\n /**\n * Create large batches of API requests to run asynchronously.\n */\n this.batches = new API.Batches(this);\n /**\n * Use Uploads to upload large files in multiple parts.\n */\n this.uploads = new API.Uploads(this);\n this.admin = new API.Admin(this);\n this.responses = new API.Responses(this);\n this.live = new API.Live(this);\n this.realtime = new API.Realtime(this);\n /**\n * Manage conversations and conversation items.\n */\n this.conversations = new API.Conversations(this);\n /**\n * Manage and run evals in the OpenAI platform.\n */\n this.evals = new API.Evals(this);\n this.containers = new API.Containers(this);\n this.skills = new API.Skills(this);\n /**\n * @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.\n */\n this.videos = new API.Videos(this);\n const { credential, options: normalizedOptions } = normalizeX509CredentialOptions(clientOptions);\n clientOptions = normalizedOptions;\n const residencyBaseURL = resolveDataResidency(clientOptions);\n const provider = clientOptions.provider;\n const { baseURL = provider ? null : readEnv('OPENAI_BASE_URL'), dataResidency: _dataResidency, [inheritedDataResidencySelection]: inheritedResidencySelection = false, 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, credential: _credential, ...opts } = clientOptions;\n if (provider) {\n const conflictingOptions = ['apiKey', 'adminAPIKey', 'workloadIdentity', 'x509Transport', 'baseURL', 'dataResidency'].filter((key) => (key === 'workloadIdentity' ? workloadIdentity : clientOptions[key]) != null);\n if (conflictingOptions.length) {\n throw new Errors.OpenAIError(`The \\`provider\\` option cannot be used with ${conflictingOptions\n .map((key) => `\\`${key}\\``)\n .join(', ')}. Configure authentication and the base URL through the provider instead.`);\n }\n }\n const identity = isX509WorkloadIdentity(workloadIdentity)\n ? { x509: workloadIdentity, legacy: undefined }\n : { x509: undefined, legacy: workloadIdentity };\n const x509Identity = identity.x509;\n const usesX509Identity = x509Identity !== undefined;\n const providerRuntime = provider ? configureProvider(provider) : undefined;\n const options = {\n apiKey,\n adminAPIKey,\n organization,\n project,\n webhookSecret,\n workloadIdentity,\n x509Transport,\n provider,\n ...opts,\n baseURL: providerRuntime?.baseURL ??\n residencyBaseURL ??\n (baseURL || (usesX509Identity ? X509_API_BASE_URL : `https://api.openai.com/v1`)),\n };\n if (x509Transport && !usesX509Identity) {\n throw new Errors.OpenAIError('An X.509 transport requires an X.509 workload identity.');\n }\n if (usesX509Identity) {\n if (residencyBaseURL !== undefined || inheritedResidencySelection) {\n throw new Errors.OpenAIError('X.509 workload identity does not support data residency selection.');\n }\n if (clientOptions.fetch !== undefined) {\n throw new Errors.OpenAIError('X.509 workload identity does not support a custom fetch implementation.');\n }\n assertX509APIOrigin(options.baseURL);\n assertX509RequestOptions(options.fetchOptions);\n if (this.fetchWithAuth !== _a.prototype.fetchWithAuth ||\n this.fetchWithTimeout !== _a.prototype.fetchWithTimeout) {\n throw new Errors.OpenAIError('X.509 workload identity does not support overridden fetch dispatch hooks.');\n }\n }\n if (apiKey && workloadIdentity) {\n throw new Errors.OpenAIError('The `apiKey` and `workloadIdentity` options are mutually exclusive');\n }\n if (!providerRuntime && !apiKey && !adminAPIKey && !workloadIdentity) {\n throw new Errors.OpenAIError('Missing credentials. Please pass an `apiKey`, `workloadIdentity`, `adminAPIKey`, or set the `OPENAI_API_KEY` or `OPENAI_ADMIN_KEY` environment variable.');\n }\n if (!options.dangerouslyAllowBrowser && isRunningInBrowserOrBrowserWorker()) {\n throw new Errors.OpenAIError(\"It looks like you're running in a browser-like environment.\\n\\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\\nIf you understand the risks and have appropriate mitigations in place,\\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\\n\\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\\n\\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\\n\");\n }\n this.baseURL = options.baseURL;\n __classPrivateFieldSet(this, _OpenAI_explicitDataResidency, residencyBaseURL !== undefined || inheritedResidencySelection, \"f\");\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT; /* 10 minutes */\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('OPENAI_LOG'), \"process.env['OPENAI_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _OpenAI_encoder, Opts.FallbackEncoder, \"f\");\n const customHeadersEnv = provider || credential ? undefined : readEnv('OPENAI_CUSTOM_HEADERS');\n if (customHeadersEnv) {\n const parsed = {};\n for (const line of customHeadersEnv.split('\\n')) {\n const colon = line.indexOf(':');\n if (colon >= 0) {\n parsed[line.substring(0, colon).trim()] = line.substring(colon + 1).trim();\n }\n }\n options.defaultHeaders = buildHeaders([parsed, options.defaultHeaders]);\n }\n this._options = options;\n this._provider = providerRuntime;\n if (x509Identity) {\n const authentication = new X509WorkloadIdentityAuth(x509Identity, x509Transport, organization, project);\n this._workloadIdentityAuth = authentication;\n __classPrivateFieldSet(this, _OpenAI_x509Authentication, authentication, \"f\");\n __classPrivateFieldSet(this, _OpenAI_x509Credential, credential, \"f\");\n __classPrivateFieldSet(this, _OpenAI_x509Fetch, authentication.fetch(), \"f\");\n this.fetch = __classPrivateFieldGet(this, _OpenAI_x509Fetch, \"f\");\n markApprovedX509Client(this);\n }\n else if (identity.legacy) {\n this._workloadIdentityAuth = new WorkloadIdentityAuth(identity.legacy, this.fetch);\n }\n this.apiKey = typeof apiKey === 'string' ? apiKey : null;\n this.adminAPIKey = adminAPIKey;\n this.organization = organization;\n this.project = project;\n this.webhookSecret = webhookSecret;\n }\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options) {\n const residencyBaseURL = resolveDataResidency(options);\n const x509Authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\");\n const inheritedOptions = {\n ...this._options,\n baseURL: this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\") ? undefined : this.fetch,\n fetchOptions: this.fetchOptions,\n apiKey: this._options.apiKey,\n adminAPIKey: this.adminAPIKey,\n workloadIdentity: x509Authentication?.identitySnapshot() ?? this._options.workloadIdentity,\n x509Transport: this._options.x509Transport,\n organization: this.organization,\n project: this.project,\n webhookSecret: this.webhookSecret,\n };\n const { credential, provider } = prepareX509ClientClone(inheritedOptions, options, __classPrivateFieldGet(this, _OpenAI_x509Credential, \"f\"), x509Authentication !== undefined);\n if (residencyBaseURL !== undefined) {\n delete inheritedOptions.baseURL;\n }\n const clientOptions = {\n ...inheritedOptions,\n ...options,\n credential,\n provider,\n [inheritedDataResidencySelection]: __classPrivateFieldGet(this, _OpenAI_explicitDataResidency, \"f\") &&\n residencyBaseURL === undefined &&\n !hasOwn(options, 'baseURL') &&\n options.credential === undefined &&\n !provider,\n };\n const client = new this.constructor(clientOptions);\n if (provider && new URL(client.baseURL).origin !== new URL(this.baseURL).origin) {\n Object.assign(client._options, {\n defaultHeaders: options.defaultHeaders,\n defaultQuery: options.defaultQuery,\n fetchOptions: options.fetchOptions,\n fetch: options.fetch,\n });\n client.fetchOptions = options.fetchOptions;\n client.fetch = options.fetch ?? Shims.getDefaultFetch();\n client.organization = options.organization ?? null;\n client.project = options.project ?? null;\n }\n if (__classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\") &&\n __classPrivateFieldGet(client, _OpenAI_x509Authentication, \"f\") &&\n this.baseURL === client.baseURL &&\n __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\").matches(__classPrivateFieldGet(client, _OpenAI_x509Authentication, \"f\"))) {\n client._workloadIdentityAuth = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\");\n __classPrivateFieldSet(client, _OpenAI_x509Authentication, __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\"), \"f\");\n __classPrivateFieldSet(client, _OpenAI_x509Fetch, __classPrivateFieldGet(this, _OpenAI_x509Fetch, \"f\"), \"f\");\n }\n return client;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n /** @internal Client request headers for each new WebSocket handshake. */\n _buildWebSocketHeaders(authHeaders) {\n return Object.fromEntries(buildHeaders([\n {\n 'User-Agent': this.getUserAgent(),\n 'OpenAI-Organization': this.organization,\n 'OpenAI-Project': this.project,\n },\n authHeaders,\n this._options.defaultHeaders,\n ]).values);\n }\n validateHeaders({ values, nulls }, schemes = {\n bearerAuth: true,\n adminAPIKeyAuth: true,\n }) {\n if (values.get('authorization') || values.get('api-key')) {\n return;\n }\n if (nulls.has('authorization') || nulls.has('api-key')) {\n return;\n }\n if (this._workloadIdentityAuth && schemes.bearerAuth) {\n return;\n }\n 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');\n }\n async authHeaders(opts, schemes = {\n bearerAuth: true,\n adminAPIKeyAuth: true,\n }) {\n const authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\") ?? this._workloadIdentityAuth;\n if (authentication instanceof X509WorkloadIdentityAuth &&\n schemes.adminAPIKeyAuth &&\n this.adminAPIKey !== null) {\n return await this.adminAPIKeyAuth(opts);\n }\n return buildHeaders([\n schemes.bearerAuth ? await this.bearerAuth(opts) : null,\n schemes.adminAPIKeyAuth ? await this.adminAPIKeyAuth(opts) : null,\n ]);\n }\n async bearerAuth(opts) {\n const authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\") ?? this._workloadIdentityAuth;\n if (authentication) {\n if (authentication instanceof X509WorkloadIdentityAuth) {\n if (authentication === this._workloadIdentityAuth &&\n (this.fetchWithAuth !== _a.prototype.fetchWithAuth ||\n this.fetchWithTimeout !== _a.prototype.fetchWithTimeout)) {\n throw new Errors.OpenAIError('X.509 workload identity does not support overridden fetch dispatch hooks.');\n }\n const snapshots = authentication.headerSnapshots();\n if (!X509WorkloadIdentityAuth.shouldAuthenticate(opts, snapshots.defaultHeaders, snapshots.requestHeaders)) {\n return undefined;\n }\n }\n const token = authentication instanceof X509WorkloadIdentityAuth\n ? await authentication.getToken(opts, {\n apiURL: authentication.requestAPIURL(),\n ...authentication.headerSnapshots(),\n ...authentication.requestSnapshot(),\n signal: authentication.effectiveSignal(),\n ...authentication.tenantSnapshot(),\n })\n : await authentication.getToken();\n return buildHeaders([{ Authorization: `Bearer ${token}` }]);\n }\n const { apiKey } = await resolveRealtimeAPIKey(this);\n if (apiKey == null) {\n return undefined;\n }\n return buildHeaders([{ Authorization: `Bearer ${apiKey}` }]);\n }\n async adminAPIKeyAuth(opts) {\n if (this.adminAPIKey == null) {\n return undefined;\n }\n return buildHeaders([{ Authorization: `Bearer ${this.adminAPIKey}` }]);\n }\n stringifyQuery(query) {\n return stringifyQuery(query);\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n const normalizedError = error && typeof error === 'object' && error.error == null ? { error } : error;\n return Errors.APIError.generate(status, normalizedError, message, headers);\n }\n _hasApiKeyProvider() {\n return typeof this._options.apiKey === 'function';\n }\n /**\n * Resolves a function-based API key and retains the resolved value on this client.\n * Returns whether a provider was invoked. Internal callers can capture this\n * invocation's key before another request updates the shared `apiKey` property.\n * Overrides should forward `capture` or invoke it with their own resolved key\n * to preserve invocation-local credentials in concurrent requests and Realtime factories.\n * @internal\n */\n async _callApiKey(capture) {\n if (this._provider) {\n capture?.(this.apiKey);\n return false;\n }\n const apiKey = this._options.apiKey;\n if (typeof apiKey !== 'function') {\n capture?.(this.apiKey);\n return false;\n }\n let token;\n try {\n token = await apiKey();\n }\n catch (err) {\n if (err instanceof Errors.OpenAIError)\n throw err;\n throw new Errors.OpenAIError(`Failed to get token from 'apiKey' function: ${err.message}`, \n // @ts-ignore\n { cause: err });\n }\n if (typeof token !== 'string' || !token) {\n throw new Errors.OpenAIError(`Expected 'apiKey' function argument to return a string but it returned ${token}`);\n }\n this.apiKey = token;\n capture?.(this.apiKey);\n return true;\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _OpenAI_instances, \"m\", _OpenAI_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL;\n const url = isAbsoluteURL(path)\n ? new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n const pathQuery = Object.fromEntries(url.searchParams);\n if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) {\n query = { ...pathQuery, ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n * Function-based credentials are resolved later, when building authentication\n * headers, including for direct `buildRequest()` calls. Overriding this hook\n * does not bypass that resolution.\n */\n async prepareOptions(options) { }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }));\n }\n request(options, remainingRetries = null) {\n const authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\") ?? this._workloadIdentityAuth;\n const request = authentication instanceof X509WorkloadIdentityAuth\n ? Promise.resolve(options).then((resolved) => authentication.runRequest(() => this.makeRequest(resolved, remainingRetries, undefined), this))\n : this.makeRequest(options, remainingRetries, undefined);\n return this.responsePromise(request);\n }\n responsePromise(request, parse = (client, props) => this.parseResponseWithTimeout(client, props)) {\n const promise = new APIPromise(this, request, (client, props) => {\n const resume = __classPrivateFieldGet(this, _OpenAI_responseAttempts, \"f\").get(props.controller)?.continueRequest;\n return resume ? resume(() => parse(client, props)) : parse(client, props);\n });\n // A body timeout can retry after the original raw response has arrived. Wait for\n // parsing before selecting the response so withResponse() reports the retry.\n promise.withResponse = async () => {\n const data = await promise;\n const { response } = await request;\n return { data, response, request_id: response.headers.get('x-request-id') };\n };\n promise._thenUnwrap = (transform) => this.responsePromise(request, async (client, props) => addRequestID(transform(await parse(client, props), props), props.response));\n return promise;\n }\n async parseResponseWithTimeout(client, props) {\n if (props.options.stream ||\n props.options.__binaryResponse ||\n props.response.status === 204 ||\n props.response.headers.get('content-length') === '0') {\n return defaultParseResponse(client, props);\n }\n while (true) {\n const attempt = __classPrivateFieldGet(this, _OpenAI_responseAttempts, \"f\").get(props.controller);\n const timeout = attempt?.timeout ?? props.options.timeout ?? this.timeout;\n const x509Authentication = attempt?.authentication;\n const callerSignal = x509Authentication ? props.controller.signal : props.options.signal;\n const abortError = () => x509Authentication && callerSignal\n ? this._makeUserAbortError(callerSignal)\n : new Errors.APIUserAbortError();\n let remaining;\n try {\n remaining =\n x509Authentication?.remainingTimeout(props.options, timeout) ??\n Math.max(0, props.startTime + timeout - Date.now());\n }\n catch (error) {\n const cancellation = callerSignal?.aborted ? abortError() : undefined;\n props.controller.abort();\n void Shims.CancelReadableStream(props.response.body).catch(() => undefined);\n throw cancellation ?? error;\n }\n let timer;\n let abortListener;\n let timedOut = false;\n try {\n // Tool runners preserve a completed buffered turn before cancellation stops the next request.\n if (callerSignal?.aborted && attempt?.helperMethod !== 'runTools') {\n throw abortError();\n }\n const timeoutPromise = new Promise((_, reject) => {\n timer = setTimeout(() => {\n timedOut = true;\n props.controller.abort();\n reject(new Errors.APIConnectionTimeoutError());\n }, remaining);\n if (callerSignal) {\n abortListener = () => {\n if (!timedOut)\n reject(abortError());\n };\n callerSignal.addEventListener('abort', abortListener, { once: true });\n }\n });\n return await Promise.race([defaultParseResponse(client, props), timeoutPromise]);\n }\n catch (error) {\n if (callerSignal?.aborted && !timedOut) {\n throw abortError();\n }\n if (!timedOut) {\n if (x509Authentication && error instanceof SyntaxError) {\n throw new SyntaxError('X.509 workload identity API response contains invalid JSON.');\n }\n if (x509Authentication && !(error instanceof Errors.OpenAIError)) {\n throw new Errors.APIConnectionError({\n message: 'X.509 workload identity API response body could not be read.',\n });\n }\n throw error;\n }\n const retriesRemaining = attempt?.retriesRemaining ?? 0;\n if (!retriesRemaining ||\n attempt?.hasStreamingBody ||\n props.options.__metadata?.['hasStreamingBody'] ||\n (globalThis.ReadableStream &&\n props.options.body instanceof globalThis.ReadableStream) ||\n (typeof props.options.body === 'object' &&\n props.options.body !== null &&\n (Symbol.asyncIterator in props.options.body ||\n (Symbol.iterator in props.options.body &&\n 'next' in props.options.body &&\n typeof props.options.body.next === 'function')))) {\n throw new Errors.APIConnectionTimeoutError();\n }\n if (timer !== undefined)\n clearTimeout(timer);\n if (abortListener)\n callerSignal?.removeEventListener('abort', abortListener);\n abortListener = undefined;\n const next = await this.retryRequest(props.options, retriesRemaining, props.retryOfRequestLogID ?? props.requestLogID, undefined, props.requestSignal);\n Object.assign(props, next);\n }\n finally {\n if (timer !== undefined)\n clearTimeout(timer);\n if (abortListener)\n callerSignal?.removeEventListener('abort', abortListener);\n }\n }\n }\n /** Keeps terminal X.509 error-body consumption inside the original logical request deadline. */\n async readX509ResponseError(response, options, timeout, controller, authentication) {\n const deadline = new AbortController();\n const callerSignal = controller.signal;\n let timedOut = false;\n const cancel = () => deadline.abort(callerSignal.reason);\n callerSignal.addEventListener('abort', cancel, { once: true });\n if (callerSignal.aborted) {\n cancel();\n }\n try {\n const remaining = authentication.remainingTimeout(options, timeout);\n const expiration = authentication.waitForRetry(remaining, deadline.signal).then(() => {\n throw new Errors.APIConnectionTimeoutError();\n });\n const body = await Promise.race([\n response.text().catch(() => 'X.509 workload identity API response body could not be read.'),\n expiration,\n ]);\n if (callerSignal.aborted) {\n throw this._makeUserAbortError(callerSignal);\n }\n return body;\n }\n catch (error) {\n if (error instanceof Errors.APIConnectionTimeoutError) {\n timedOut = !callerSignal.aborted;\n controller.abort();\n void Shims.CancelReadableStream(response.body).catch(() => undefined);\n }\n if (callerSignal.aborted && !timedOut) {\n throw this._makeUserAbortError(callerSignal);\n }\n throw error;\n }\n finally {\n callerSignal.removeEventListener('abort', cancel);\n deadline.abort();\n }\n }\n async makeRequest(optionsInput, retriesRemaining, retryOfRequestLogID) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n const x509Authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\");\n x509Authentication?.beginRequestPreparation();\n await this.prepareOptions(options);\n x509Authentication?.beginRequestPlanning();\n let built;\n try {\n const candidate = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n built = { req: candidate.req, url: candidate.url, timeout: candidate.timeout };\n if (x509Authentication) {\n validatePositiveInteger('timeout', built.timeout);\n x509Authentication.authorizePlannedRequest(built.url, built.req, built.timeout);\n if (X509WorkloadIdentityAuth.isStreamingRequestBody(built.req.body)) {\n options.__metadata = { ...options.__metadata, hasStreamingBody: true };\n }\n await this.prepareRequest(built.req, { url: built.url, options });\n await this._provider?.prepareRequest?.(built.req, { url: built.url, options });\n x509Authentication.beginRequestPlanning();\n x509Authentication.authorizePlannedRequest(built.url, built.req, built.timeout, true);\n if (X509WorkloadIdentityAuth.isStreamingRequestBody(built.req.body)) {\n options.__metadata = { ...options.__metadata, hasStreamingBody: true };\n }\n const callerSignal = x509Authentication.requestSnapshot().signal;\n if (callerSignal?.aborted || built.req.signal?.aborted) {\n throw this._makeUserAbortError(callerSignal?.aborted ? callerSignal : built.req.signal);\n }\n x509Authentication.setEffectiveSignal(built.req.signal || callerSignal\n ? createRequestController(built.req.signal ?? callerSignal, callerSignal).signal\n : undefined);\n x509Authentication.beginRequestNetwork();\n const security = options.__security ?? { bearerAuth: true };\n const authenticationHeaders = await this.authHeaders(options, security);\n const suppliedHeaders = x509Authentication.headerSnapshots();\n const supplied = buildHeaders([suppliedHeaders.defaultHeaders, suppliedHeaders.requestHeaders]);\n for (const [name, value] of authenticationHeaders?.values ?? []) {\n if (!supplied.nulls.has(name) && !built.req.headers.has(name)) {\n built.req.headers.set(name, value);\n }\n }\n this.validateHeaders(buildHeaders([supplied, built.req.headers]), security);\n }\n }\n catch (error) {\n x509Authentication?.retireRequestBody();\n if (x509Authentication &&\n retriesRemaining &&\n !options.__metadata?.['hasStreamingBody'] &&\n X509WorkloadIdentityAuth.isRetryableFailure(error)) {\n return await this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? 'x509-token-exchange', X509WorkloadIdentityAuth.retryHeaders(error));\n }\n throw error;\n }\n const { req, url } = built;\n const timeout = x509Authentication\n ? Math.min(built.timeout, x509Authentication.requestSnapshot().timeout)\n : built.timeout;\n x509Authentication?.bindRequest(options, req, this.adminAPIKey);\n let hasStreamingBody = options.__metadata?.['hasStreamingBody'] === true;\n if (!x509Authentication) {\n await this.prepareRequest(req, { url, options });\n await this._provider?.prepareRequest?.(req, { url, options });\n }\n x509Authentication?.adoptRequestHeaders(req);\n if (x509Authentication && X509WorkloadIdentityAuth.isStreamingRequestBody(req.body)) {\n hasStreamingBody = true;\n }\n /** Not an API request ID, just for correlating local log entries. */\n const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0');\n const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`;\n const startTime = x509Authentication?.requestStartedAt(options) ?? Date.now();\n if (this.logLevel === 'debug') {\n // Summarize serialized strings without reparsing or re-running caller serialization hooks.\n const body = typeof req.body === 'string' ? { type: 'string', length: req.body.length } : req.body;\n loggerFor(this).debug(`[${requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options: x509Authentication\n ? { body, ...x509Authentication.requestSnapshot() }\n : { ...options, body },\n headers: req.headers,\n }));\n }\n const callerSignal = x509Authentication ? x509Authentication.requestSnapshot().signal : options.signal;\n if (callerSignal?.aborted || req.signal?.aborted) {\n throw this._makeUserAbortError(callerSignal?.aborted ? callerSignal : req.signal);\n }\n const security = options.__security ?? { bearerAuth: true };\n // Request hooks may replace the caller signal before it reaches fetch.\n const controller = x509Authentication || this.fetchWithTimeout === _a.prototype.fetchWithTimeout\n ? createRequestController(req.signal ?? (x509Authentication ? callerSignal : undefined), x509Authentication ? callerSignal : undefined)\n : new AbortController();\n const remainingTimeout = x509Authentication?.remainingTimeout(options, timeout) ?? timeout;\n const fetchWithAuth = x509Authentication ? _a.prototype.fetchWithAuth : this.fetchWithAuth;\n x509Authentication?.releaseRequestBody(req.body);\n const response = await fetchWithAuth\n .call(this, url, req, remainingTimeout, controller, security)\n .catch(castToError);\n const headersTime = Date.now();\n if (response instanceof globalThis.Error) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (callerSignal?.aborted || req.signal?.aborted) {\n throw this._makeUserAbortError(callerSignal?.aborted ? callerSignal : req.signal);\n }\n // detect native connection timeout errors\n // deno throws \"TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)\"\n // undici throws \"TypeError: fetch failed\" with cause \"ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)\"\n // others do not provide enough information to distinguish timeouts from other connection errors\n const isTimeout = isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining &&\n !hasStreamingBody &&\n (!x509Authentication || isTransientX509ConnectionError(response))) {\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: x509Authentication ? 'X.509 workload identity API connection failed.' : response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, undefined, req.signal);\n }\n const terminalMessage = hasStreamingBody\n ? 'error; streaming body cannot be retried'\n : 'error; no more retries left';\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${terminalMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${terminalMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: x509Authentication ? 'X.509 workload identity API connection failed.' : response.message,\n }));\n if (response instanceof OAuthError || response instanceof SubjectTokenProviderError) {\n throw response;\n }\n if (isTimeout) {\n const transportCause = 'cause' in response ? response.cause : undefined;\n const isHeadersTimeout = typeof transportCause === 'object' &&\n transportCause !== null &&\n 'code' in transportCause &&\n transportCause.code === 'UND_ERR_HEADERS_TIMEOUT';\n const timeoutError = isHeadersTimeout\n ? new Errors.APIConnectionTimeoutError({\n message: 'Request timed out. Node.js fetch timed out waiting for response headers; ' +\n 'configure a matching undici fetch and fetchOptions.dispatcher with an Agent whose headersTimeout is at least the SDK timeout.',\n })\n : new Errors.APIConnectionTimeoutError();\n if (x509Authentication) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw Object.assign(timeoutError, { cause: response });\n }\n if (x509Authentication) {\n throw new Errors.APIConnectionError({ message: 'X.509 workload identity API connection failed.' });\n }\n throw new Errors.APIConnectionError({\n message: getConnectionErrorMessage(response),\n cause: response,\n });\n }\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'x-request-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${redactURL(url)} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const rejectedX509Credential = response.status === 401 &&\n x509Authentication &&\n security.bearerAuth &&\n x509Authentication.usedWorkloadToken(options);\n if (rejectedX509Credential) {\n x509Authentication.invalidateToken();\n }\n if (response.status === 401 &&\n (x509Authentication || this._workloadIdentityAuth) &&\n security.bearerAuth &&\n (!x509Authentication || x509Authentication.usedWorkloadToken(options)) &&\n (!x509Authentication || retriesRemaining > 0) &&\n !hasStreamingBody &&\n !options.__metadata?.['workloadIdentityTokenRefreshed']) {\n if (x509Authentication) {\n void Shims.CancelReadableStream(response.body).catch(() => undefined);\n }\n else {\n await Shims.CancelReadableStream(response.body);\n this._workloadIdentityAuth?.invalidateToken();\n }\n const replayOptions = {\n ...options,\n __metadata: {\n ...options.__metadata,\n workloadIdentityTokenRefreshed: true,\n },\n };\n return this.makeRequest(replayOptions, x509Authentication ? retriesRemaining - 1 : retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n const shouldRetry = rejectedX509Credential && options.__metadata?.['workloadIdentityTokenRefreshed']\n ? false\n : await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry && !hasStreamingBody) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n if (x509Authentication) {\n void Shims.CancelReadableStream(response.body).catch(() => undefined);\n }\n else {\n await Shims.CancelReadableStream(response.body);\n }\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers, req.signal);\n }\n const retryMessage = shouldRetry\n ? hasStreamingBody\n ? `error; streaming body cannot be retried`\n : `error; no more retries left`\n : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = x509Authentication\n ? await this.readX509ResponseError(response, options, timeout, controller, x509Authentication)\n : await response.text().catch((err) => castToError(err).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n message: errMessage,\n durationMs: Date.now() - startTime,\n }));\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(`[${requestLogID}] response start`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n const continueRequest = x509Authentication?.continuation();\n x509Authentication?.releaseRequestCredentials();\n __classPrivateFieldGet(this, _OpenAI_responseAttempts, \"f\").set(controller, {\n timeout,\n retriesRemaining,\n hasStreamingBody,\n ...(x509Authentication ? { authentication: x509Authentication } : {}),\n helperMethod: options.__metadata?.['helperMethod'],\n ...(continueRequest ? { continueRequest } : {}),\n });\n return {\n response,\n options,\n controller,\n requestSignal: req.signal,\n requestLogID,\n retryOfRequestLogID,\n startTime,\n };\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, opts && 'then' in opts\n ? opts.then((opts) => ({ method: 'get', path, ...opts }))\n : { method: 'get', path, ...opts });\n }\n requestAPIList(Page, options) {\n const authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\") ?? this._workloadIdentityAuth;\n const request = authentication instanceof X509WorkloadIdentityAuth\n ? Promise.resolve(options).then((resolved) => authentication.runRequest(() => this.makeRequest(resolved, null, undefined), this))\n : this.makeRequest(options, null, undefined);\n const page = new Pagination.PagePromise(this, request, Page);\n const guarded = this.responsePromise(request, async (client, props) => {\n const body = await this.parseResponseWithTimeout(client, props);\n return new Page(client, props.response, body, props.options);\n });\n page.then = guarded.then.bind(guarded);\n page.catch = guarded.catch.bind(guarded);\n page.finally = guarded.finally.bind(guarded);\n page.withResponse = guarded.withResponse.bind(guarded);\n page._thenUnwrap = guarded._thenUnwrap.bind(guarded);\n return page;\n }\n async fetchWithAuth(url, init, timeout, controller, schemes = {\n bearerAuth: true,\n adminAPIKeyAuth: true,\n }) {\n if (this._workloadIdentityAuth && !__classPrivateFieldGet(this, _OpenAI_x509Fetch, \"f\") && schemes.bearerAuth) {\n const headers = init.headers;\n const authHeader = headers.get('Authorization');\n if (authHeader === `Bearer ${WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER}`) {\n const token = await this._workloadIdentityAuth.getToken();\n headers.set('Authorization', `Bearer ${token}`);\n }\n }\n const fetchWithTimeout = __classPrivateFieldGet(this, _OpenAI_x509Fetch, \"f\") ? _a.prototype.fetchWithTimeout : this.fetchWithTimeout;\n const response = await fetchWithTimeout.call(this, url, init, timeout, controller);\n return response;\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, method, ...options } = init || {};\n const abort = this._makeAbort(controller);\n const composed = !!signal && composedCallerSignals.get(controller) === signal;\n const cleanup = signal && !composed ? addRequestAbortListener(signal, abort, controller.signal) : undefined;\n const timeout = setTimeout(abort, ms);\n const isReadableBody = (globalThis.ReadableStream && options.body instanceof globalThis.ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n const fetchOptions = {\n signal: controller.signal,\n ...(isReadableBody ? { duplex: 'half' } : {}),\n method: 'GET',\n ...options,\n };\n if (method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = method.toUpperCase();\n }\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n const response = await (__classPrivateFieldGet(this, _OpenAI_x509Fetch, \"f\") ?? this.fetch).call(undefined, url, fetchOptions);\n if (cleanup) {\n retainRequestAbortCallback(response.body ?? response, abort, controller.signal);\n }\n return response;\n }\n catch (err) {\n cleanup?.();\n throw err;\n }\n finally {\n clearTimeout(timeout);\n }\n }\n async shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, requestLogID, responseHeaders, requestSignal = options.signal) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.get('retry-after');\n if (retryAfterHeader && timeoutMillis === undefined) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time, just do what it\n // says, but otherwise calculate a default\n if (timeoutMillis === undefined ||\n !Number.isFinite(timeoutMillis) ||\n timeoutMillis < 0 ||\n timeoutMillis > 60 * 1000) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n const x509Authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\");\n if (x509Authentication) {\n const remaining = x509Authentication.remainingTimeout(options, x509Authentication.requestSnapshot().timeout);\n if (timeoutMillis >= remaining) {\n throw new Errors.APIConnectionTimeoutError();\n }\n }\n if (x509Authentication) {\n await x509Authentication.waitForRetry(timeoutMillis, x509Authentication.effectiveSignal());\n }\n else {\n const retrySignals = requestSignal === options.signal ? [requestSignal] : [requestSignal, options.signal];\n try {\n await sleep(timeoutMillis, ...retrySignals);\n }\n catch (error) {\n const abortedSignal = retrySignals.find((signal) => signal?.aborted);\n if (abortedSignal) {\n throw this._makeUserAbortError(abortedSignal);\n }\n throw error;\n }\n }\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n /**\n * Builds a request, resolving callback credentials when constructing authentication\n * headers, after any subclass request-option rewrites. Calling this method directly\n * also resolves credentials. Complete replacement builders own authentication and\n * can call `this.authHeaders()` to resolve headers with request-local credentials.\n */\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n if (__classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\") && !__classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\").inRequest(this)) {\n const authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\");\n return await authentication.runRequest(async () => {\n const built = await _a.prototype.buildRequest.call(this, inputOptions, { retryCount });\n authentication.releaseRequestBody(built.req.body);\n return built;\n }, this);\n }\n const options = { ...inputOptions };\n const x509Authentication = __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\");\n const x509Tenant = x509Authentication?.snapshotTenant(this.organization, this.project);\n const x509Headers = x509Authentication?.snapshotHeaders(this._options.defaultHeaders, options.headers);\n if (x509Headers) {\n options.headers = x509Headers.requestHeaders;\n }\n const x509ClientFetchOptions = x509Authentication\n ? snapshotX509RequestOptions(this.fetchOptions)\n : undefined;\n const x509RequestFetchOptions = x509Authentication\n ? snapshotX509RequestOptions(options.fetchOptions)\n : undefined;\n const { method, path, query, defaultBaseURL } = options;\n const url = this.buildURL(path, query, defaultBaseURL);\n x509Authentication?.snapshotAPIURL(url);\n const explicitTimeout = 'timeout' in options;\n if (explicitTimeout)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n if (x509Authentication && x509RequestFetchOptions) {\n x509Authentication.snapshotRequest(options.signal, options.timeout, x509RequestFetchOptions);\n }\n if (x509Authentication) {\n const snapshot = x509Authentication.requestSnapshot();\n options.timeout = snapshot.timeout;\n if (snapshot.signal === undefined) {\n delete options.signal;\n }\n else {\n options.signal = snapshot.signal;\n }\n }\n const authenticationHeaders = this._provider || x509Authentication\n ? undefined\n : await this.authHeaders(inputOptions, inputOptions.__security ?? { bearerAuth: true });\n const { bodyHeaders, body, isStreamingBody } = this.buildBody({ options });\n if (isStreamingBody) {\n inputOptions.__metadata = {\n ...inputOptions.__metadata,\n hasStreamingBody: true,\n };\n x509Authentication?.ownRequestBody(body, options.body);\n }\n const reqHeaders = await this.buildHeaders({\n options: inputOptions,\n method,\n bodyHeaders,\n authenticationHeaders,\n retryCount,\n x509Headers,\n x509Timeout: explicitTimeout ? options.timeout : undefined,\n x509Tenant,\n });\n const req = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...(globalThis.ReadableStream &&\n body instanceof globalThis.ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...((x509Authentication ? x509ClientFetchOptions : this.fetchOptions) ?? {}),\n ...((x509Authentication ? x509RequestFetchOptions : options.fetchOptions) ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, authenticationHeaders, retryCount, x509Headers, x509Timeout, x509Tenant, }) {\n let idempotencyHeaders = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\n const helperMethod = options.__metadata?.['helperMethod'];\n const timeout = x509Headers ? x509Timeout : options.timeout;\n const headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n ...(!isRunningInBrowserOrBrowserWorker() ? { 'User-Agent': this.getUserAgent() } : undefined),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(timeout ? { 'X-Stainless-Timeout': String(Math.trunc(timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n ...(typeof helperMethod === 'string' ? { 'X-Stainless-Helper-Method': helperMethod } : {}),\n 'OpenAI-Organization': x509Tenant ? x509Tenant.organization : this.organization,\n 'OpenAI-Project': x509Tenant ? x509Tenant.project : this.project,\n },\n // X.509 owns streaming uploads before authentication so it can retire them on failure.\n __classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\") && !__classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\").isPlanningRequest()\n ? await this.authHeaders(options, options.__security ?? { bearerAuth: true })\n : authenticationHeaders,\n x509Headers?.defaultHeaders ?? this._options.defaultHeaders,\n bodyHeaders,\n x509Headers?.requestHeaders ?? options.headers,\n ]);\n if (!this._provider && !__classPrivateFieldGet(this, _OpenAI_x509Authentication, \"f\")?.isPlanningRequest()) {\n this.validateHeaders(headers, options.__security ?? { bearerAuth: true });\n }\n return headers.values;\n }\n _makeAbort(controller) {\n // note: we can't just inline this method inside `fetchWithTimeout()` because then the closure\n // would capture all request options, and cause a memory leak.\n return () => controller.abort();\n }\n _makeUserAbortError(signal) {\n const error = new Errors.APIUserAbortError();\n Object.defineProperty(error, 'cause', { value: signal.reason, writable: true, configurable: true });\n return error;\n }\n buildBody({ options }) {\n const { body, headers: rawHeaders } = options;\n if (!body) {\n // A resource method always passes a `body` key when its operation defines a\n // request body, even if the caller omitted an optional body param. Keep the\n // content-type for those, and only elide it for operations with no body at\n // all (e.g. GET/DELETE).\n if (body === undefined && 'body' in options) {\n return { ...__classPrivateFieldGet(this, _OpenAI_encoder, \"f\").call(this, { body, headers: buildHeaders([rawHeaders]) }), isStreamingBody: false };\n }\n return { bodyHeaders: undefined, body: undefined, isStreamingBody: false };\n }\n const headers = buildHeaders([rawHeaders]);\n const isReadableStream = typeof globalThis.ReadableStream !== 'undefined' &&\n body instanceof globalThis.ReadableStream;\n const isRetryableBody = !isReadableStream &&\n (typeof body === 'string' ||\n body instanceof ArrayBuffer ||\n ArrayBuffer.isView(body) ||\n (typeof globalThis.Blob !== 'undefined' && body instanceof globalThis.Blob) ||\n body instanceof URLSearchParams ||\n body instanceof FormData);\n if (\n // Pass raw type verbatim\n ArrayBuffer.isView(body) ||\n body instanceof ArrayBuffer ||\n body instanceof DataView ||\n (typeof body === 'string' &&\n // Preserve legacy string encoding behavior for now\n headers.values.has('content-type')) ||\n // `Blob` is superset of `File`\n (globalThis.Blob && body instanceof globalThis.Blob) ||\n // `FormData` -> `multipart/form-data`\n body instanceof FormData ||\n // `URLSearchParams` -> `application/x-www-form-urlencoded`\n body instanceof URLSearchParams ||\n // Send chunked stream (each chunk has own `length`)\n isReadableStream) {\n return { bodyHeaders: undefined, body: body, isStreamingBody: !isRetryableBody };\n }\n else if (typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {\n return {\n bodyHeaders: undefined,\n body: Shims.ReadableStreamFrom(body),\n isStreamingBody: true,\n };\n }\n else if (typeof body === 'object' &&\n headers.values.get('content-type') === 'application/x-www-form-urlencoded') {\n return {\n bodyHeaders: { 'content-type': 'application/x-www-form-urlencoded' },\n body: this.stringifyQuery(body),\n isStreamingBody: false,\n };\n }\n else {\n return { ...__classPrivateFieldGet(this, _OpenAI_encoder, \"f\").call(this, { body, headers }), isStreamingBody: false };\n }\n }\n}\n_a = OpenAI, _OpenAI_encoder = new WeakMap(), _OpenAI_x509Authentication = new WeakMap(), _OpenAI_x509Credential = new WeakMap(), _OpenAI_x509Fetch = new WeakMap(), _OpenAI_explicitDataResidency = new WeakMap(), _OpenAI_responseAttempts = new WeakMap(), _OpenAI_instances = new WeakSet(), _OpenAI_baseURLOverridden = function _OpenAI_baseURLOverridden() {\n return (__classPrivateFieldGet(this, _OpenAI_explicitDataResidency, \"f\") ||\n this._provider !== undefined ||\n this.baseURL !== 'https://api.openai.com/v1');\n};\nOpenAI.OpenAI = _a;\nOpenAI.DEFAULT_TIMEOUT = 600000; // 10 minutes\nOpenAI.OpenAIError = Errors.OpenAIError;\nOpenAI.APIError = Errors.APIError;\nOpenAI.APIConnectionError = Errors.APIConnectionError;\nOpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nOpenAI.APIUserAbortError = Errors.APIUserAbortError;\nOpenAI.NotFoundError = Errors.NotFoundError;\nOpenAI.ConflictError = Errors.ConflictError;\nOpenAI.RateLimitError = Errors.RateLimitError;\nOpenAI.BadRequestError = Errors.BadRequestError;\nOpenAI.AuthenticationError = Errors.AuthenticationError;\nOpenAI.InternalServerError = Errors.InternalServerError;\nOpenAI.PermissionDeniedError = Errors.PermissionDeniedError;\nOpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;\nOpenAI.InvalidWebhookSignatureError = Errors.InvalidWebhookSignatureError;\nOpenAI.toFile = Uploads.toFile;\nOpenAI.toStreamingFile = Uploads.toStreamingFile;\nOpenAI.Completions = Completions;\nOpenAI.Chat = Chat;\nOpenAI.Embeddings = Embeddings;\nOpenAI.Files = Files;\nOpenAI.Images = Images;\nOpenAI.ContentProvenanceChecks = ContentProvenanceChecks;\nOpenAI.Audio = Audio;\nOpenAI.Moderations = Moderations;\nOpenAI.Models = Models;\nOpenAI.FineTuning = FineTuning;\nOpenAI.Graders = Graders;\nOpenAI.VectorStores = VectorStores;\nOpenAI.Safety = Safety;\nOpenAI.Webhooks = Webhooks;\nOpenAI.Beta = Beta;\nOpenAI.Batches = Batches;\nOpenAI.Uploads = UploadsAPIUploads;\nOpenAI.Admin = Admin;\nOpenAI.Responses = Responses;\nOpenAI.Live = Live;\nOpenAI.Realtime = Realtime;\nOpenAI.Conversations = Conversations;\nOpenAI.Evals = Evals;\nOpenAI.Containers = Containers;\nOpenAI.Skills = Skills;\nOpenAI.Videos = Videos;\nOpenAI.ConversationCursorPage = Pagination.ConversationCursorPage;\nOpenAI.CursorPage = Pagination.CursorPage;\nOpenAI.NextCursorPage = Pagination.NextCursorPage;\nOpenAI.Page = Pagination.Page;\nOpenAI.TokenPage = Pagination.TokenPage;\nconst composedCallerSignals = new WeakMap();\nfunction createRequestController(callerSignal, originalSignal) {\n const controller = new AbortController();\n if (!callerSignal)\n return controller;\n const nativeAbortSignal = globalThis.AbortSignal;\n if (typeof nativeAbortSignal?.any !== 'function' || !(callerSignal instanceof nativeAbortSignal)) {\n return controller;\n }\n try {\n // Native composition keeps cancellation active after response headers without\n // retaining an abort listener on the caller's signal or changing its reason.\n const signals = [controller.signal, callerSignal];\n if (originalSignal && originalSignal !== callerSignal) {\n signals.push(originalSignal);\n }\n const composed = nativeAbortSignal.any(signals);\n Object.defineProperty(controller, 'signal', { value: composed, configurable: true });\n composedCallerSignals.set(controller, callerSignal);\n }\n catch {\n // Older or incompatible runtimes retain the existing listener-based fallback.\n }\n return controller;\n}\nfunction getConnectionErrorMessage(error) {\n if (isUndiciDispatcherVersionMismatchError(error)) {\n 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(...) } });`;\n }\n return undefined;\n}\nfunction isUndiciDispatcherVersionMismatchError(error) {\n let current = error;\n for (let i = 0; i < 8 && current && typeof current === 'object'; i++) {\n const err = current;\n if (err.code === 'UND_ERR_INVALID_ARG' &&\n typeof err.message === 'string' &&\n err.message.includes('invalid onRequestStart method')) {\n return true;\n }\n current = err.cause;\n }\n return false;\n}\n//# sourceMappingURL=client.mjs.map","import { buildHeaders } from \"./internal/headers.mjs\";\nimport * as Errors from \"./error.mjs\";\nimport { hasOwn, isObj, readEnv } from \"./internal/utils.mjs\";\nimport { path } from \"./internal/utils/path.mjs\";\nimport { OpenAI } from \"./client.mjs\";\nimport { assertNoDataResidency } from \"./internal/data-residency.mjs\";\n/** API Client for interfacing with the Azure OpenAI API. */\nexport class AzureOpenAI extends OpenAI {\n /**\n * API Client for interfacing with the Azure OpenAI API.\n *\n * @param {string | undefined} [opts.apiVersion] - Defaults to `process.env['OPENAI_API_VERSION'] ?? undefined`.\n * @param {string | undefined} [opts.endpoint] - Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`. Defaults to `process.env['AZURE_OPENAI_ENDPOINT'] ?? undefined`.\n * @param {string | undefined} [opts.apiKey] - Defaults to `process.env['AZURE_OPENAI_API_KEY'] ?? undefined`.\n * @param {string | undefined} opts.deployment - Azure model deployment inserted into supported deployment-scoped request paths.\n * @param {string | null | undefined} [opts.organization] - Defaults to `process.env['OPENAI_ORG_ID'] ?? null`.\n * @param {string} [opts.baseURL] - Sets the base URL for the API, e.g. `https://example-resource.azure.openai.com/openai/`. Defaults to `process.env['OPENAI_BASE_URL']`.\n * @param {number} [opts.timeout] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out. Defaults to 10 minutes.\n * @param {() => Promise<string>} [opts.azureADTokenProvider] - Returns a fresh Microsoft Entra access token for each request; cannot be combined with `apiKey`.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries] - The maximum number of times the client will retry a request. Defaults to `2`.\n * @param {Headers} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers. Defaults to `false`.\n */\n constructor({ baseURL = readEnv('OPENAI_BASE_URL'), apiKey = readEnv('AZURE_OPENAI_API_KEY'), apiVersion = readEnv('OPENAI_API_VERSION'), endpoint, deployment, azureADTokenProvider, dangerouslyAllowBrowser, dataResidency, ...opts } = {}) {\n assertNoDataResidency(dataResidency, 'AzureOpenAI');\n if (!apiVersion) {\n throw new Errors.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' }).\");\n }\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Azure accepts JavaScript credential configuration; distinguish static keys from callable token providers.\n if (typeof azureADTokenProvider === 'function') {\n dangerouslyAllowBrowser ?? (dangerouslyAllowBrowser = true);\n }\n if (!azureADTokenProvider && !apiKey) {\n throw new Errors.OpenAIError('Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.');\n }\n if (azureADTokenProvider && apiKey) {\n throw new Errors.OpenAIError('The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.');\n }\n opts.defaultQuery = { ...opts.defaultQuery, 'api-version': apiVersion };\n if (!baseURL) {\n if (!endpoint) {\n endpoint = process.env['AZURE_OPENAI_ENDPOINT'];\n }\n if (!endpoint) {\n throw new Errors.OpenAIError('Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable');\n }\n let endpointEnd = endpoint.length;\n while (endpointEnd > 0 && endpoint[endpointEnd - 1] === '/') {\n endpointEnd--;\n }\n baseURL = `${endpoint.slice(0, endpointEnd)}/openai`;\n }\n else if (endpoint) {\n throw new Errors.OpenAIError('baseURL and endpoint are mutually exclusive');\n }\n super({\n apiKey: azureADTokenProvider ?? apiKey,\n baseURL,\n ...opts,\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),\n });\n /** Azure OpenAI API version included in requests made by this client. */\n this.apiVersion = '';\n this.apiVersion = apiVersion;\n this.deploymentName = deployment;\n }\n /** Clones this client with Azure options; OpenAI data residency remains unsupported. */\n withOptions(options) {\n // `OpenAI.withOptions` rebuilds the clone from `this._options`, which never holds the\n // Azure-only construction options, so they are re-injected here the same way the Bedrock\n // client re-injects its own subclass-only field.\n const azureOptions = {\n apiVersion: this.apiVersion,\n deployment: this.deploymentName,\n ...options,\n };\n // The inherited base URL is always carried into the clone, so an `endpoint` override would\n // otherwise collide with it; let the endpoint rebuild the base URL instead. Both tests read\n // own properties, so an option bag that passed neither field keeps the inherited base URL.\n if (hasOwn(options, 'endpoint') && options.endpoint !== undefined && !hasOwn(options, 'baseURL')) {\n azureOptions.baseURL = undefined;\n }\n return super.withOptions(azureOptions);\n }\n /** Builds an Azure request and inserts its deployment into model-scoped endpoint paths. */\n async buildRequest(options, props = {}) {\n if (_deployments_endpoints.has(options.path) && options.method === 'post' && options.body !== undefined) {\n if (!isObj(options.body)) {\n throw new Error('Expected request body to be an object');\n }\n const model = this.deploymentName || options.body['model'] || options.__metadata?.['model'];\n if (model !== undefined && !hasDeploymentPathSegment(this.baseURL)) {\n options.path = path `/deployments/${model}` + options.path;\n }\n }\n const built = await super.buildRequest(options, props);\n if (built.req.headers.has('api-key')) {\n built.req.redirect = 'manual';\n }\n return built;\n }\n async fetchWithAuth(url, init, timeout, controller, schemes) {\n if (new Headers(init.headers).has('api-key')) {\n init.redirect = 'manual';\n }\n return super.fetchWithAuth(url, init, timeout, controller, schemes);\n }\n async authHeaders(opts, schemes) {\n const security = schemes ?? { bearerAuth: true, adminAPIKeyAuth: true };\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Azure accepts JavaScript credential configuration; distinguish static keys from callable token providers.\n if (security.bearerAuth && typeof this._options.apiKey === 'string') {\n return buildHeaders([{ 'api-key': this.apiKey }]);\n }\n return super.authHeaders(opts, security);\n }\n}\n/**\n * Reports whether the base URL already routes through a `/deployments` path segment, so the\n * deployment must not be inserted again. A substring test would also match an unrelated segment\n * such as `/deployments-proxy/`, or a host like `deployments.example.com`.\n */\nfunction hasDeploymentPathSegment(baseURL) {\n try {\n return new URL(baseURL).pathname.split('/').includes('deployments');\n }\n catch {\n // A base URL that is not an absolute URL has no path segments to read. Report none, the way\n // the previous substring test did, and let joining the request path reject it as it did before.\n return false;\n }\n}\nconst _deployments_endpoints = new Set([\n '/completions',\n '/chat/completions',\n '/embeddings',\n '/audio/transcriptions',\n '/audio/translations',\n '/audio/speech',\n '/images/generations',\n '/batches',\n '/images/edits',\n]);\n//# sourceMappingURL=azure.mjs.map","import * as Errors from \"../error.mjs\";\nimport { readEnv } from \"./utils.mjs\";\n/** Identifies legacy Bedrock clients without importing the client class into WebSocket modules. */\nexport const brand_privateBedrockClient = Symbol.for('openai.privateBedrockClient');\n/** Wraps a provider failure in an SDK error while preserving its original cause. */\nexport function errorWithCause(message, cause) {\n // SAFETY: This SDK error is created locally and receives its optional cause immediately below; no existing error shape is trusted.\n const error = new Errors.OpenAIError(message);\n error.cause = cause;\n return error;\n}\n/** Trims a configuration string, treating missing and whitespace-only values as absent. */\nexport function normalizeOptionalString(value) {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Bedrock credential and origin checks validate JavaScript configuration before any credential is sent.\n const normalized = typeof value === 'string' ? value.trim() : undefined;\n return normalized || undefined;\n}\nfunction normalizeBaseURL(baseURL) {\n const url = new URL(baseURL);\n const responsesMatch = url.pathname.match(/\\/responses(?:\\/.*)?$/);\n if (responsesMatch?.index !== undefined) {\n url.pathname = url.pathname.slice(0, responsesMatch.index) || '/';\n }\n return url.toString().replace(/\\/$/, '');\n}\nfunction resolveRuntimeDnsSuffixes(region) {\n if (region.startsWith('cn-')) {\n return ['amazonaws.com.cn', 'api.amazonwebservices.com.cn'];\n }\n if (region.startsWith('eusc-')) {\n return ['amazonaws.eu', 'api.amazonwebservices.eu'];\n }\n if (region.startsWith('us-iso-')) {\n return ['c2s.ic.gov', 'api.aws.ic.gov'];\n }\n if (region.startsWith('us-isob-')) {\n return ['sc2s.sgov.gov', 'api.aws.scloud'];\n }\n if (region.startsWith('eu-isoe-')) {\n return ['cloud.adc-e.uk', 'api.cloud-aws.adc-e.uk'];\n }\n if (region.startsWith('us-isof-')) {\n return ['csp.hci.ic.gov', 'api.aws.hci.ic.gov'];\n }\n return ['amazonaws.com', 'api.aws'];\n}\n/** Identifies a canonical Amazon Bedrock hostname and its embedded AWS region. */\nexport function parseBedrockEndpointHostname(hostname) {\n const canonicalHostname = hostname.endsWith('.') ? hostname.slice(0, -1) : hostname;\n const [service, region, ...suffixParts] = canonicalHostname.toLowerCase().split('.');\n const suffix = suffixParts.join('.');\n if (service === 'bedrock-mantle' && region && /^[a-z0-9-]+$/.test(region) && suffix === 'api.aws') {\n return { endpoint: 'mantle', region };\n }\n if ((service === 'bedrock-runtime' || service === 'bedrock-runtime-fips') && region) {\n const [standardSuffix, dualStackSuffix] = resolveRuntimeDnsSuffixes(region);\n if (suffix === standardSuffix || suffix === dualStackSuffix) {\n return { endpoint: 'runtime', region };\n }\n }\n return undefined;\n}\n/** Rejects insecure or mismatched canonical Amazon Bedrock endpoint overrides. */\nfunction validateCanonicalBedrockEndpoint(baseURL, endpoint, region) {\n const parsedBaseURL = new URL(baseURL);\n const canonicalEndpoint = parseBedrockEndpointHostname(parsedBaseURL.hostname);\n if (canonicalEndpoint && parsedBaseURL.protocol !== 'https:') {\n throw new Errors.OpenAIError('Canonical Amazon Bedrock endpoints require HTTPS.');\n }\n if (canonicalEndpoint && canonicalEndpoint.endpoint !== endpoint) {\n throw new Errors.OpenAIError(`The Bedrock ${canonicalEndpoint.endpoint} hostname does not match the selected \\`${endpoint}\\` endpoint. Set \\`endpoint: '${canonicalEndpoint.endpoint}'\\` to use this hostname.`);\n }\n if (canonicalEndpoint && region && canonicalEndpoint.region !== region) {\n throw new Errors.OpenAIError(`The Bedrock endpoint region \\`${canonicalEndpoint.region}\\` does not match the configured AWS region \\`${region}\\`.`);\n }\n}\nfunction validateBedrockEndpointSelection(endpoint) {\n if (endpoint !== undefined && endpoint !== 'mantle' && endpoint !== 'runtime') {\n throw new Errors.OpenAIError('The Bedrock `endpoint` must be either `mantle` or `runtime`.');\n }\n}\n/**\n * Resolves the Bedrock endpoint family, region, and API root from configuration.\n *\n * Region precedence is `region`, `AWS_REGION`, then `AWS_DEFAULT_REGION`.\n * Endpoint precedence is `baseURL`, `AWS_BEDROCK_BASE_URL`, then the regional\n * selected endpoint; an explicit `null` base URL skips the environment override.\n * Existing `/responses` suffixes and trailing slashes are removed. Canonical\n * AWS hostnames infer the endpoint family when none is selected explicitly.\n * Other configured URLs and derived endpoints default to Mantle.\n *\n * @throws {Errors.OpenAIError} If an option is invalid, a canonical hostname\n * conflicts with the endpoint family, or the default endpoint needs a region.\n */\nexport function resolveBedrockEndpoint(options) {\n validateBedrockEndpointSelection(options.endpoint);\n if (options.region !== undefined && !normalizeOptionalString(options.region)) {\n throw new Errors.OpenAIError('The Bedrock AWS `region` must not be empty.');\n }\n if (options.baseURL !== undefined &&\n options.baseURL !== null &&\n !normalizeOptionalString(options.baseURL)) {\n throw new Errors.OpenAIError('The Bedrock `baseURL` must not be empty.');\n }\n const region = normalizeOptionalString(options.region) ??\n normalizeOptionalString(readEnv('AWS_REGION')) ??\n normalizeOptionalString(readEnv('AWS_DEFAULT_REGION'));\n if (region && !/^[a-z]{2,8}(?:-[a-z0-9]+)+-\\d+$/.test(region)) {\n throw new Errors.OpenAIError('The Bedrock AWS `region` is invalid. Use a standard AWS region such as `us-east-1`.');\n }\n const configuredBaseURL = options.baseURL === undefined\n ? normalizeOptionalString(readEnv('AWS_BEDROCK_BASE_URL'))\n : normalizeOptionalString(options.baseURL);\n if (configuredBaseURL) {\n const baseURL = normalizeBaseURL(configuredBaseURL);\n const endpoint = options.endpoint ?? parseBedrockEndpointHostname(new URL(baseURL).hostname)?.endpoint ?? 'mantle';\n validateCanonicalBedrockEndpoint(baseURL, endpoint, region);\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- Preserve the declared endpoint resolver contract across configured URLs and inferred regions.\n return { endpoint, region, baseURL };\n }\n const endpoint = options.endpoint ?? 'mantle';\n if (!region) {\n throw new Errors.OpenAIError('Bedrock requires an AWS region. Pass `region` to `bedrock(...)`, or set `AWS_REGION` or `AWS_DEFAULT_REGION`.');\n }\n const hostname = endpoint === 'runtime'\n ? `bedrock-runtime.${region}.${resolveRuntimeDnsSuffixes(region)[0]}`\n : `bedrock-mantle.${region}.api.aws`;\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The resolver intentionally returns its declared endpoint contract across all configuration paths.\n return { endpoint, region, baseURL: `https://${hostname}/openai/v1` };\n}\n/**\n * Ensures Bedrock credentials are only attached to the configured endpoint origin.\n *\n * @throws {Errors.OpenAIError} If either URL is not HTTP(S) or the request targets a different origin.\n */\nexport function assertBedrockRequestOrigin(baseURL, requestURL) {\n const expectedURL = new URL(baseURL);\n const request = new URL(requestURL);\n const expectedOrigin = expectedURL.origin;\n const requestOrigin = request.origin;\n if ((expectedURL.protocol !== 'http:' && expectedURL.protocol !== 'https:') ||\n (request.protocol !== 'http:' && request.protocol !== 'https:') ||\n requestOrigin !== expectedOrigin) {\n throw new Errors.OpenAIError(`Bedrock request origin \\`${requestOrigin}\\` does not match the configured base URL origin \\`${expectedOrigin}\\`.`);\n }\n}\n/** Validates a final WebSocket URL before a legacy Bedrock client resolves or attaches credentials. */\n// oxlint-disable-next-line anti-slop/no-unknown-parameters -- The WebSocket authentication boundary verifies the caller client at runtime before trusting provider metadata.\nexport function assertBedrockWebSocketOrigin(client, requestURL) {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Bedrock credential and origin checks validate JavaScript configuration before any credential is sent.\n if (typeof client !== 'object' || client === null || !(brand_privateBedrockClient in client)) {\n return;\n }\n const normalizedRequestURL = new URL(requestURL);\n if (normalizedRequestURL.protocol === 'wss:') {\n normalizedRequestURL.protocol = 'https:';\n }\n else if (normalizedRequestURL.protocol === 'ws:') {\n normalizedRequestURL.protocol = 'http:';\n }\n // SAFETY: The private Bedrock brand checked above identifies the client whose baseURL is validated against the finalized request origin.\n assertBedrockRequestOrigin(\n // oxlint-disable-next-line anti-slop/no-chained-type-assertions -- The private Bedrock client brand checked above identifies the client baseURL contract.\n client.baseURL, normalizedRequestURL.toString());\n}\n/**\n * Rejects caller-provided authorization headers that conflict with provider authentication.\n *\n * @throws {Errors.OpenAIError} If an `Authorization` header is already present.\n */\nexport function assertProviderOwnsAuthorization(headers) {\n if (headers.has('authorization')) {\n throw new Errors.OpenAIError('Bedrock provider authentication cannot be combined with a custom `Authorization` header.');\n }\n}\n/** Rejects non-HTTP field bytes without retaining or exposing a bearer credential. */\nexport function assertValidBedrockBearerCredential(credential) {\n if (/^[\\t ]|[\\t ]$/.test(credential)) {\n throw new TypeError('Bedrock bearer credential contains an invalid HTTP header value.');\n }\n for (const character of credential) {\n const value = character.codePointAt(0) ?? 0;\n if ((value < 0x20 && value !== 0x09) || value === 0x7f || value > 0xff) {\n throw new TypeError('Bedrock bearer credential contains an invalid HTTP header value.');\n }\n }\n}\nfunction createBedrockUserAbortError(signal) {\n const error = new Errors.APIUserAbortError();\n Object.defineProperty(error, 'cause', {\n value: signal.reason,\n writable: true,\n configurable: true,\n });\n return error;\n}\nfunction removeBedrockAbortListener(signal, listener) {\n try {\n signal.removeEventListener('abort', listener);\n }\n catch {\n // A nonstandard AbortSignal must not replace the actual request outcome.\n }\n}\nfunction resolveAbortableBedrockAuth(operation, signals, failure) {\n // oxlint-disable-next-line promise/avoid-new -- AbortSignal events require a Promise callback bridge.\n return new Promise((resolve, reject) => {\n let settled = false;\n const listeners = [];\n const removeListeners = () => {\n while (listeners.length > 0) {\n const registered = listeners.pop();\n if (registered) {\n removeBedrockAbortListener(registered.signal, registered.listener);\n }\n }\n };\n failure.removeListeners = removeListeners;\n const settle = (result) => {\n if (settled) {\n return;\n }\n settled = true;\n if ('value' in result) {\n resolve(result.value);\n }\n else {\n removeListeners();\n reject(result.error);\n }\n };\n // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Failures and rejection reasons can be arbitrary JavaScript values; preserve them until inspection or forwarding.\n const rejectSignalFailure = (error) => {\n if (failure.error) {\n return;\n }\n failure.error = { value: error };\n settle({ error });\n };\n const registerAbortListener = (signal) => {\n const onAbort = () => {\n if (failure.error) {\n return;\n }\n try {\n rejectSignalFailure(createBedrockUserAbortError(signal));\n }\n catch (error) {\n rejectSignalFailure(error);\n }\n };\n try {\n if (signal.aborted) {\n onAbort();\n return false;\n }\n listeners.push({ signal, listener: onAbort });\n signal.addEventListener('abort', onAbort, { once: true });\n if (settled) {\n removeBedrockAbortListener(signal, onAbort);\n return false;\n }\n if (signal.aborted) {\n onAbort();\n return false;\n }\n }\n catch (error) {\n if (settled) {\n removeBedrockAbortListener(signal, onAbort);\n }\n else {\n rejectSignalFailure(error);\n }\n return false;\n }\n return true;\n };\n for (const signal of signals) {\n if (!registerAbortListener(signal)) {\n return;\n }\n }\n let pending;\n try {\n pending = operation();\n }\n catch (error) {\n settle({ error });\n return;\n }\n const observeResult = async () => {\n try {\n settle({ value: await pending });\n }\n catch (error) {\n settle({ error });\n }\n };\n // Observe the result even if the provider synchronously triggered cancellation.\n void observeResult();\n });\n}\n/**\n * Resolves Bedrock authentication work with caller cancellation, then applies\n * its result synchronously after the final cancellation checks.\n *\n * @internal\n */\nexport async function prepareBedrockAuth(request, context, operation) {\n const signals = [];\n for (const signal of [context.options.signal, request.signal]) {\n if (signal != null && !signals.includes(signal)) {\n signals.push(signal);\n }\n }\n const signalFailure = {};\n let value;\n try {\n try {\n value =\n signals.length > 0\n ? await resolveAbortableBedrockAuth(operation.resolve, signals, signalFailure)\n : await operation.resolve();\n }\n catch (cause) {\n if (signalFailure.error && Object.is(cause, signalFailure.error.value)) {\n throw cause;\n }\n throw errorWithCause(operation.failureMessage, cause);\n }\n if (signalFailure.error) {\n throw signalFailure.error.value;\n }\n for (const signal of signals) {\n if (signal.aborted) {\n throw createBedrockUserAbortError(signal);\n }\n }\n }\n finally {\n signalFailure.removeListeners?.();\n }\n operation.apply(value);\n}\nclass BedrockBearerAuth {\n constructor(tokenProvider) {\n this.tokenProvider = tokenProvider;\n }\n async prepareRequest(request, context) {\n const headers = new Headers(request.headers);\n assertProviderOwnsAuthorization(headers);\n await prepareBedrockAuth(request, context, {\n resolve: () => this.tokenProvider(),\n failureMessage: 'Failed to resolve a bearer credential for Bedrock.',\n apply: (token) => {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Bedrock credential and origin checks validate JavaScript configuration before any credential is sent.\n if (typeof token !== 'string' || !token.trim()) {\n throw new Errors.OpenAIError('The Bedrock bearer credential provider must return a non-empty string.');\n }\n assertValidBedrockBearerCredential(token);\n try {\n headers.set('authorization', `Bearer ${token}`);\n }\n catch (error) {\n if (error instanceof TypeError) {\n // oxlint-disable-next-line eslint/preserve-caught-error -- The original error contains the bearer credential.\n throw new TypeError('Bedrock bearer credential contains an invalid HTTP header value.');\n }\n throw error;\n }\n request.redirect = 'manual';\n request.headers = headers;\n },\n });\n }\n}\n/**\n * Resolves a bearer-authentication factory without calling token providers eagerly.\n *\n * Explicit `tokenProvider` and `apiKey` options are mutually exclusive. When\n * neither is set, `AWS_BEARER_TOKEN_BEDROCK` is used unless environment\n * credentials are disabled or `apiKey` is explicitly `null`.\n *\n * @throws {Errors.OpenAIError} If an explicit key is empty or multiple bearer\n * credential sources are configured.\n */\nexport function resolveBedrockBearerAuth(options, { allowEnvironment = true, } = {}) {\n if (options.apiKey !== undefined &&\n options.apiKey !== null &&\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Bedrock credential and origin checks validate JavaScript configuration before any credential is sent.\n (typeof options.apiKey !== 'string' || !options.apiKey.trim())) {\n throw new Errors.OpenAIError('The Bedrock bearer credential must not be empty.');\n }\n if (options.apiKey != null && options.tokenProvider) {\n throw new Errors.OpenAIError('The `apiKey` and `tokenProvider` options are mutually exclusive. Configure only one.');\n }\n if (options.tokenProvider) {\n const tokenProvider = options.tokenProvider;\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The declared bearer-auth contract hides concrete authenticator implementations behind their factory.\n return { factory: () => new BedrockBearerAuth(tokenProvider), explicit: true };\n }\n if (options.apiKey != null) {\n const apiKey = options.apiKey;\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- Explicit API keys use the same declared auth-factory contract as token providers.\n return { factory: () => new BedrockBearerAuth(async () => apiKey), explicit: true };\n }\n if (allowEnvironment && options.apiKey !== null && readEnv('AWS_BEARER_TOKEN_BEDROCK')) {\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- Environment credentials must preserve the same declared auth-factory contract as explicit options.\n return {\n explicit: false,\n factory: () => new BedrockBearerAuth(async () => {\n const token = readEnv('AWS_BEARER_TOKEN_BEDROCK');\n if (!token) {\n throw new Errors.OpenAIError('Could not find credentials for Bedrock. Set `AWS_BEARER_TOKEN_BEDROCK` or configure AWS credential authentication.');\n }\n return token;\n }),\n };\n }\n // oxlint-disable-next-line anti-slop/no-known-value-widening -- The declared optional factory contract also represents the absence of bearer credentials.\n return { factory: undefined, explicit: false };\n}\n//# sourceMappingURL=bedrock.mjs.map","var _a;\nimport * as Errors from \"./error.mjs\";\nimport { OpenAI } from \"./client.mjs\";\nimport { resolveRealtimeAPIKey } from \"./internal/realtime-credentials.mjs\";\nimport { assertNoDataResidency } from \"./internal/data-residency.mjs\";\nimport { assertBedrockRequestOrigin, assertValidBedrockBearerCredential, brand_privateBedrockClient, } from \"./internal/bedrock.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils.mjs\";\nimport { addOutputText } from \"./lib/ResponsesParser.mjs\";\nimport * as API from \"./resources/index.mjs\";\n/** Resolve the default Bedrock Mantle API root from the configured AWS region. */\nfunction deriveBedrockBaseURL(awsRegion) {\n const region = awsRegion?.trim();\n if (!region) {\n throw new Errors.OpenAIError('Must provide one of the `baseURL` or `awsRegion` arguments, or set the `AWS_BEDROCK_BASE_URL`, `AWS_REGION`, or `AWS_DEFAULT_REGION` environment variable.');\n }\n if (!/^[a-z]{2,8}(?:-[a-z0-9]+)+-\\d+$/u.test(region)) {\n throw new Errors.OpenAIError('The Bedrock AWS `region` is invalid. Use a standard AWS region such as `us-east-1`.');\n }\n return `https://bedrock-mantle.${region}.api.aws/openai/v1`;\n}\n/** Normalize a Bedrock Responses URL variant back to the provider API root. */\nfunction normalizeBedrockBaseURL(baseURL) {\n const url = new URL(baseURL);\n const responsesMatch = url.pathname.match(/\\/responses(?:\\/.*)?$/);\n if (responsesMatch?.index !== undefined) {\n url.pathname = url.pathname.slice(0, responsesMatch.index) || '/';\n }\n return url.toString().replace(/\\/$/, '');\n}\n/** Restore the SDK convenience property when Bedrock omits it from a streamed final response. */\nfunction addBedrockOutputText(response) {\n if (!Object.getOwnPropertyDescriptor(response, 'output_text')) {\n addOutputText(response);\n }\n return response;\n}\n/** Keep the standard Responses surface while repairing Bedrock streamed final responses. */\nfunction restoreBedrockStreamOutputText(responses) {\n const stream = responses.stream.bind(responses);\n // SAFETY: The wrapper forwards the original stream parameters and preserves its generic result, only repairing the final response's output_text property.\n responses.stream = ((body, options) => {\n const responseStream = stream(body, options);\n const finalResponse = responseStream.finalResponse.bind(responseStream);\n responseStream.finalResponse = async () => addBedrockOutputText(await finalResponse());\n return responseStream;\n });\n return responses;\n}\n/** API Client for interfacing with Amazon Bedrock's OpenAI-compatible endpoint. */\nexport class BedrockOpenAI extends OpenAI {\n /**\n * API Client for interfacing with Amazon Bedrock's OpenAI-compatible endpoint.\n *\n * @param {string | null | undefined} [opts.apiKey] - Defaults to `process.env['AWS_BEARER_TOKEN_BEDROCK'] ?? null`.\n * @param {string | null | undefined} [opts.baseURL] - Defaults to `process.env['AWS_BEDROCK_BASE_URL']`, or is derived from `opts.awsRegion`, `AWS_REGION`, or `AWS_DEFAULT_REGION`.\n * @param {string | undefined} [opts.awsRegion] - Defaults to `process.env['AWS_REGION'] ?? process.env['AWS_DEFAULT_REGION'] ?? undefined`.\n * @param {ApiKeySetter | undefined} opts.bedrockTokenProvider - A function that returns a Bedrock bearer token and is invoked before each request.\n */\n constructor({ baseURL = readEnv('AWS_BEDROCK_BASE_URL'), apiKey, awsRegion = readEnv('AWS_REGION') ?? readEnv('AWS_DEFAULT_REGION'), bedrockTokenProvider, adminAPIKey, workloadIdentity, x509Transport, dataResidency, ...opts } = {}) {\n assertNoDataResidency(dataResidency, 'BedrockOpenAI');\n if (adminAPIKey || workloadIdentity || x509Transport) {\n throw new Errors.OpenAIError('BedrockOpenAI only supports Bedrock bearer token authentication.');\n }\n if (apiKey === undefined && !bedrockTokenProvider) {\n apiKey = readEnv('AWS_BEARER_TOKEN_BEDROCK') ?? null;\n }\n // SAFETY: The widening keeps a runtime guard for JavaScript callers that supply an API-key function despite the declared string contract.\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Reject a JavaScript function supplied as a static Bedrock API key before it can become a credential.\n if (typeof apiKey === 'function') {\n throw new Errors.OpenAIError('Pass refreshable Bedrock credentials via `bedrockTokenProvider`, not `apiKey`.');\n }\n if (apiKey && bedrockTokenProvider) {\n throw new Errors.OpenAIError('The `apiKey` and `bedrockTokenProvider` arguments are mutually exclusive; only one can be passed at a time.');\n }\n if (!apiKey && !bedrockTokenProvider) {\n throw new Errors.OpenAIError('Missing credentials. Please pass an `apiKey` or `bedrockTokenProvider`, or set the `AWS_BEARER_TOKEN_BEDROCK` environment variable.');\n }\n const configuredBaseURL = baseURL?.trim() ? baseURL : deriveBedrockBaseURL(awsRegion);\n super({\n apiKey: bedrockTokenProvider ?? apiKey,\n adminAPIKey: null,\n baseURL: normalizeBedrockBaseURL(configuredBaseURL),\n ...opts,\n });\n /**\n * Identifies this client to credential-bearing WebSocket helpers.\n *\n * @internal\n */\n this[_a] = true;\n let currentApiKey = this.apiKey;\n Object.defineProperty(this, 'apiKey', {\n enumerable: true,\n configurable: true,\n get() {\n if (currentApiKey !== null) {\n assertValidBedrockBearerCredential(currentApiKey);\n }\n return currentApiKey;\n },\n set(nextApiKey) {\n currentApiKey = nextApiKey;\n },\n });\n const trustedBaseURL = this.baseURL;\n let currentBaseURL = trustedBaseURL;\n Object.defineProperty(this, 'baseURL', {\n enumerable: true,\n configurable: false,\n get() {\n return currentBaseURL;\n },\n set(nextBaseURL) {\n assertBedrockRequestOrigin(trustedBaseURL, nextBaseURL);\n currentBaseURL = nextBaseURL;\n },\n });\n this.bedrockTokenProvider = bedrockTokenProvider;\n this.responses = restoreBedrockStreamOutputText(new API.Responses(this));\n }\n async prepareOptions(options) {\n const configuredBaseURL = this._options.baseURL ?? this.baseURL;\n assertBedrockRequestOrigin(configuredBaseURL, this.buildURL(options.path, null, options.defaultBaseURL));\n await super.prepareOptions(options);\n assertBedrockRequestOrigin(configuredBaseURL, this.buildURL(options.path, null, options.defaultBaseURL));\n }\n async prepareRequest(request, context) {\n assertBedrockRequestOrigin(this._options.baseURL ?? this.baseURL, context.url);\n await super.prepareRequest(request, context);\n assertBedrockRequestOrigin(this._options.baseURL ?? this.baseURL, this.buildURL(context.options.path, null, context.options.defaultBaseURL));\n request.redirect = 'manual';\n }\n async authHeaders(opts, schemes) {\n const security = schemes ?? { bearerAuth: true, adminAPIKeyAuth: true };\n if (security.bearerAuth || security.adminAPIKeyAuth) {\n assertBedrockRequestOrigin(this._options.baseURL ?? this.baseURL, this.buildURL(opts.path, null, opts.defaultBaseURL));\n const { apiKey: credential } = await resolveRealtimeAPIKey(this);\n assertBedrockRequestOrigin(this._options.baseURL ?? this.baseURL, this.buildURL(opts.path, null, opts.defaultBaseURL));\n if (credential === null) {\n return undefined;\n }\n assertValidBedrockBearerCredential(credential);\n try {\n return buildHeaders([{ Authorization: `Bearer ${credential}` }]);\n }\n catch (error) {\n if (error instanceof TypeError) {\n // oxlint-disable-next-line eslint/preserve-caught-error -- The original error contains the bearer credential.\n throw new TypeError('Bedrock bearer credential contains an invalid HTTP header value.');\n }\n throw error;\n }\n }\n return super.authHeaders(opts, security);\n }\n /** Clones this client while preserving its refreshable Bedrock token provider when appropriate. */\n withOptions(options) {\n const bedrockTokenProvider = options.apiKey === undefined ? (options.bedrockTokenProvider ?? this.bedrockTokenProvider) : undefined;\n // SAFETY: Bedrock options extend the base client options; forwarding them preserves the subclass's existing withOptions construction behavior.\n return super.withOptions({\n ...options,\n // Spread creates an own data property without invoking inherited setters or changing the object prototype.\n ...(bedrockTokenProvider ? { apiKey: undefined, bedrockTokenProvider } : {}),\n });\n }\n}\n_a = brand_privateBedrockClient;\n//# sourceMappingURL=bedrock.mjs.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189],"mappings":"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"}