pagegraph 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -41
- package/dist/anthropic-messages-TqKpKmfW.js +1067 -0
- package/dist/anthropic-messages-TqKpKmfW.js.map +1 -0
- package/dist/audit.d.ts +2 -0
- package/dist/audit.js +1 -1
- package/dist/audit.js.map +1 -1
- package/dist/azure-openai-responses-DJjBLwoI.js +231 -0
- package/dist/azure-openai-responses-DJjBLwoI.js.map +1 -0
- package/dist/cli.js +10487 -38044
- package/dist/cli.js.map +1 -1
- package/dist/cloudflare-workers-ai-system-one-f3ZrvNYZ.js +41 -0
- package/dist/cloudflare-workers-ai-system-one-f3ZrvNYZ.js.map +1 -0
- package/dist/config.d.ts +6 -6
- package/dist/config.js.map +1 -1
- package/dist/diagnostics-Wt5faNDM.js +108 -0
- package/dist/diagnostics-Wt5faNDM.js.map +1 -0
- package/dist/dist-B6zg_Z3Z.js +4794 -0
- package/dist/dist-B6zg_Z3Z.js.map +1 -0
- package/dist/env-api-keys-C-OA0yM-.js +124 -0
- package/dist/env-api-keys-C-OA0yM-.js.map +1 -0
- package/dist/error-body-CyiejW4b.js +103 -0
- package/dist/error-body-CyiejW4b.js.map +1 -0
- package/dist/github-copilot-headers-CEpMOpQF.js +24 -0
- package/dist/github-copilot-headers-CEpMOpQF.js.map +1 -0
- package/dist/google-generative-ai-BxABKIKO.js +330 -0
- package/dist/google-generative-ai-BxABKIKO.js.map +1 -0
- package/dist/google-shared-0gpM2jFi.js +19471 -0
- package/dist/google-shared-0gpM2jFi.js.map +1 -0
- package/dist/google-vertex-D8Eb5cbu.js +376 -0
- package/dist/google-vertex-D8Eb5cbu.js.map +1 -0
- package/dist/hash-Dp7EzZUo.js +18 -0
- package/dist/hash-Dp7EzZUo.js.map +1 -0
- package/dist/headers-BRNMVpzu.js +19 -0
- package/dist/headers-BRNMVpzu.js.map +1 -0
- package/dist/json-parse-C10znB7l.js +383 -0
- package/dist/json-parse-C10znB7l.js.map +1 -0
- package/dist/mistral-conversations-CvaqBWjR.js +690 -0
- package/dist/mistral-conversations-CvaqBWjR.js.map +1 -0
- package/dist/models-DcT5qOEL.js +1203 -0
- package/dist/models-DcT5qOEL.js.map +1 -0
- package/dist/node-Ccvru9GE.js +26 -0
- package/dist/node-Ccvru9GE.js.map +1 -0
- package/dist/node-MEosBOF2.js +2403 -0
- package/dist/node-MEosBOF2.js.map +1 -0
- package/dist/openai-BCBEd2eO.js +17350 -0
- package/dist/openai-BCBEd2eO.js.map +1 -0
- package/dist/openai-codex-responses-vJqxeeRC.js +1268 -0
- package/dist/openai-codex-responses-vJqxeeRC.js.map +1 -0
- package/dist/openai-completions-Cb_fRAbI.js +989 -0
- package/dist/openai-completions-Cb_fRAbI.js.map +1 -0
- package/dist/openai-prompt-cache-Bc6qNWt0.js +10 -0
- package/dist/openai-prompt-cache-Bc6qNWt0.js.map +1 -0
- package/dist/openai-responses-sDuh82G5.js +268 -0
- package/dist/openai-responses-sDuh82G5.js.map +1 -0
- package/dist/openai-responses-shared-mhuo1Jov.js +599 -0
- package/dist/openai-responses-shared-mhuo1Jov.js.map +1 -0
- package/dist/openrouter-images-CRmBkzpX.js +127 -0
- package/dist/openrouter-images-CRmBkzpX.js.map +1 -0
- package/dist/pi-Bvw6J0gh.js +56795 -0
- package/dist/pi-Bvw6J0gh.js.map +1 -0
- package/dist/pi-messages-CejiVYvO.js +308 -0
- package/dist/pi-messages-CejiVYvO.js.map +1 -0
- package/dist/provider-env-t38GK5FF.js +39 -0
- package/dist/provider-env-t38GK5FF.js.map +1 -0
- package/dist/provider-retry-DzKoh1X7.js +80 -0
- package/dist/provider-retry-DzKoh1X7.js.map +1 -0
- package/dist/rolldown-runtime-B-lAHAz2.js +37 -0
- package/dist/sanitize-unicode-Ds14l9Om.js +28 -0
- package/dist/sanitize-unicode-Ds14l9Om.js.map +1 -0
- package/dist/sdk-C9_wiO6w.js +12503 -0
- package/dist/sdk-C9_wiO6w.js.map +1 -0
- package/dist/state-BuJP_3Lr.js +28102 -0
- package/dist/state-BuJP_3Lr.js.map +1 -0
- package/dist/system-one-shared-Dl10ZF7Z.js +167 -0
- package/dist/system-one-shared-Dl10ZF7Z.js.map +1 -0
- package/dist/transform-messages-BLJ8EfK6.js +468 -0
- package/dist/transform-messages-BLJ8EfK6.js.map +1 -0
- package/dist/typesafe-system-one-CwEWMV8P.js +25 -0
- package/dist/typesafe-system-one-CwEWMV8P.js.map +1 -0
- package/package.json +4 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-C9_wiO6w.js","names":["qs.stringify","Files","Models","exports","Webhook","Versions","VersionsAPI.Versions","Versions","backoff","expBackoff","backoff","WorkAPI.Work","MemoriesAPI.Memories","MemoryVersionsAPI.MemoryVersions","Batches","getOutputFormat","tracksToolInput","DEPRECATED_MODELS","MODELS_TO_WARN_WITH_THINKING_ENABLED","Messages","BatchesAPI.Batches","Batches","RateLimits","Workspaces","WorkspacesAPI.Workspaces","Workspaces","IssuersAPI.Issuers","RulesAPI.Rules","Workspaces","ServiceAccounts","WorkspacesAPI.Workspaces","Workspaces","RateLimitsAPI.RateLimits","MembersAPI.Members","ServiceAccountsAPI.ServiceAccounts","APIKeysAPI.APIKeys","ExternalKeysAPI.ExternalKeys","FederationAPI.Federation","InvitesAPI.Invites","ServiceAccountsAPI.ServiceAccounts","UsersAPI.Users","WorkspacesAPI.Workspaces","RateLimitsAPI.RateLimits","ComplianceSettingsAPI.ComplianceSettings","ServiceAccounts","RateLimits","Events","ThreadsEventsAPI.Events","EventsAPI.Events","ResourcesAPI.Resources","ThreadsAPI.Threads","Events","Versions","Skills","VersionsAPI.Versions","Versions","CertificatesAPI.Certificates","CredentialsAPI.Credentials","ModelsAPI.Models","MessagesAPI.Messages","AgentsAPI.Agents","EnvironmentsAPI.Environments","SessionsAPI.Sessions","DeploymentsAPI.Deployments","DeploymentRunsAPI.DeploymentRuns","VaultsAPI.Vaults","MemoryStoresAPI.MemoryStores","FilesAPI.Files","SkillsAPI.Skills","WebhooksAPI.Webhooks","UserProfilesAPI.UserProfiles","DreamsAPI.Dreams","TunnelsAPI.Tunnels","OrganizationAPI.Organization","Models","Messages","Files","Skills","BatchesAPI.Batches","VersionsAPI.Versions","Errors.AnthropicError","Shims.getDefaultFetch","Opts.FallbackEncoder","Errors.APIUserAbortError","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Shims.CancelReadableStream","Pagination.PagePromise","Shims.ReadableStreamFrom","Errors.APIError","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Uploads.toFile","API.Completions","API.Messages","API.Models","API.Files","API.Skills","API.Beta"],"sources":["../node_modules/@anthropic-ai/sdk/internal/tslib.mjs","../node_modules/@anthropic-ai/sdk/internal/errors.mjs","../node_modules/@anthropic-ai/sdk/core/error.mjs","../node_modules/@anthropic-ai/sdk/lib/tools/ToolError.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/uuid.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/values.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs","../node_modules/@anthropic-ai/sdk/version.mjs","../node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs","../node_modules/@anthropic-ai/sdk/internal/request-signal.mjs","../node_modules/@anthropic-ai/sdk/internal/shims.mjs","../node_modules/@anthropic-ai/sdk/internal/request-options.mjs","../node_modules/@anthropic-ai/sdk/internal/qs/formats.mjs","../node_modules/@anthropic-ai/sdk/internal/qs/utils.mjs","../node_modules/@anthropic-ai/sdk/internal/qs/stringify.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/query.mjs","../node_modules/@anthropic-ai/sdk/lib/credentials/types.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/time.mjs","../node_modules/@anthropic-ai/sdk/lib/credentials/token-cache.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/env.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/bytes.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/base64.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/log.mjs","../node_modules/@anthropic-ai/sdk/core/credentials.mjs","../node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.mjs","../node_modules/@anthropic-ai/sdk/lib/credentials/oidc-federation.mjs","../node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.mjs","../node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.mjs","../node_modules/@anthropic-ai/sdk/internal/decoders/line.mjs","../node_modules/@anthropic-ai/sdk/core/streaming.mjs","../node_modules/@anthropic-ai/sdk/internal/parse.mjs","../node_modules/@anthropic-ai/sdk/core/middleware.mjs","../node_modules/@anthropic-ai/sdk/core/api-promise.mjs","../node_modules/@anthropic-ai/sdk/core/pagination.mjs","../node_modules/@anthropic-ai/sdk/internal/uploads.mjs","../node_modules/@anthropic-ai/sdk/internal/to-file.mjs","../node_modules/@anthropic-ai/sdk/core/resource.mjs","../node_modules/@anthropic-ai/sdk/internal/headers.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/path.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/deployments.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/dreams.mjs","../node_modules/@anthropic-ai/sdk/internal/stainless-helper-header.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/files.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/models.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.mjs","../node_modules/@stablelib/base64/lib/base64.js","../node_modules/fast-sha256/sha256.js","../node_modules/standardwebhooks/dist/timing_safe_equal.js","../node_modules/standardwebhooks/dist/index.js","../node_modules/@anthropic-ai/sdk/resources/beta/webhooks.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/agents/versions.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/abort.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/backoff.mjs","../node_modules/@anthropic-ai/sdk/lib/helper-client.mjs","../node_modules/@anthropic-ai/sdk/lib/environments/poller.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/async-queue.mjs","../node_modules/@anthropic-ai/sdk/lib/tools/BetaRunnableTool.mjs","../node_modules/@anthropic-ai/sdk/lib/tools/SessionToolRunner.mjs","../node_modules/@anthropic-ai/sdk/tools/agent-toolset/sync-interval.mjs","../node_modules/@anthropic-ai/sdk/lib/environments/worker.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/environments/work.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.mjs","../node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.mjs","../node_modules/@anthropic-ai/sdk/internal/constants.mjs","../node_modules/@anthropic-ai/sdk/lib/beta-parser.mjs","../node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.mjs","../node_modules/@anthropic-ai/sdk/internal/message-stream-utils.mjs","../node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs","../node_modules/@anthropic-ai/sdk/internal/utils/promise.mjs","../node_modules/@anthropic-ai/sdk/lib/tools/CompactionControl.mjs","../node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/users.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/sessions/resources.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/events.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/tunnels/certificates.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/tunnels/tunnels.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.mjs","../node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs","../node_modules/@anthropic-ai/sdk/resources/completions.mjs","../node_modules/@anthropic-ai/sdk/resources/files.mjs","../node_modules/@anthropic-ai/sdk/lib/parser.mjs","../node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs","../node_modules/@anthropic-ai/sdk/resources/messages/batches.mjs","../node_modules/@anthropic-ai/sdk/resources/messages/messages.mjs","../node_modules/@anthropic-ai/sdk/resources/models.mjs","../node_modules/@anthropic-ai/sdk/resources/skills/versions.mjs","../node_modules/@anthropic-ai/sdk/resources/skills/skills.mjs","../node_modules/@anthropic-ai/sdk/client.mjs","../node_modules/@anthropic-ai/sdk/lib/middleware.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}\nexport { __classPrivateFieldSet, __classPrivateFieldGet };\n","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport 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 const tag = Object.prototype.toString.call(err);\n // cross-realm errors (e.g. undici's abort `DOMException` under jest) fail `instanceof Error`\n if (tag === '[object Error]' || tag === '[object DOMException]') {\n // @ts-ignore - not all envs have native support for cause yet\n const error = new Error(err.message, err.cause ? { 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 (err.cause && !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","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"../internal/errors.mjs\";\nexport class AnthropicError extends Error {\n}\nexport class APIError extends AnthropicError {\n constructor(status, error, message, headers, type) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.requestID = headers?.get('request-id');\n this.workspaceID = headers?.get('anthropic-workspace-id');\n this.error = error;\n this.type = type ?? null;\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 ? 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;\n const type = error?.['error']?.['type'];\n if (status === 400) {\n return new BadRequestError(status, error, message, headers, type);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers, type);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers, type);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers, type);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers, type);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers, type);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers, type);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers, type);\n }\n return new APIError(status, error, message, headers, type);\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}\n/**\n * An error that opts into the SDK's retry policy: throw it (e.g. from\n * middleware) to have the attempt retried.\n *\n * Note that the request will only be retried when `maxRetries` has not been exhausted.\n */\nexport class RetryableError extends AnthropicError {\n constructor(message, { cause } = {}) {\n super(message ?? 'Retryable error.');\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause !== undefined)\n this.cause = cause;\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}\n//# sourceMappingURL=error.mjs.map","/**\n * An error that can be thrown from a tool's `run` method to return structured\n * content blocks as the error result, rather than just a string message.\n *\n * When the ToolRunner catches this error, it will use the `content` property\n * as the tool result with `is_error: true`.\n *\n * @example\n * ```ts\n * const tool = {\n * name: 'my_tool',\n * run: async (input) => {\n * if (somethingWentWrong) {\n * throw new ToolError([\n * { type: 'text', text: 'Error details here' },\n * { type: 'image', source: { type: 'base64', data: '...', media_type: 'image/png' } },\n * ]);\n * }\n * return 'success';\n * },\n * };\n * ```\n */\nexport class ToolError extends Error {\n constructor(content) {\n const message = typeof content === 'string' ? content : (content\n .map((block) => {\n if (block.type === 'text')\n return block.text;\n return `[${block.type}]`;\n })\n .join(' '));\n super(message);\n this.name = 'ToolError';\n this.content = content;\n }\n}\n//# sourceMappingURL=ToolError.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\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","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { AnthropicError } 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 AnthropicError(`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 AnthropicError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new AnthropicError(`${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 AnthropicError(`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 AnthropicError(`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// Gets a value from an object, deletes the key, and returns the value (or undefined if not found)\nexport const pop = (obj, key) => {\n const value = obj[key];\n delete obj[key];\n return value;\n};\n/**\n * Compile-time exhaustiveness check: passing a value here only type-checks once every\n * member of its union has been handled. Does nothing at runtime, so unknown values from a\n * newer API version fall through instead of throwing.\n */\nexport function checkNever(_value) { }\n//# sourceMappingURL=values.mjs.map","/**\n * Resolve after `ms`, or immediately when `signal` aborts.\n *\n * When a `signal` is passed the abort listener is always removed so repeated\n * calls do not accumulate listeners on a long-lived signal. Resolves (rather\n * than rejects) on abort — callers treat abort as \"wake up early,\" not as a\n * failure; callers that want to unwind should check the signal themselves.\n */\nexport const sleep = (ms, signal) => new Promise((resolve) => {\n if (signal?.aborted)\n return resolve();\n const onAbort = () => {\n clearTimeout(timer);\n resolve();\n };\n const timer = setTimeout(() => {\n signal?.removeEventListener('abort', onAbort);\n resolve();\n }, ms);\n // `{ once: true }` auto-removes the listener if abort fires first,\n // so we only need an explicit remove on the timer-wins path above.\n signal?.addEventListener('abort', onAbort, { once: true });\n});\n//# sourceMappingURL=sleep.mjs.map","export const VERSION = '0.124.0'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { 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: /Edge(?:\\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","/**\n * Tracks the removal of the per-request abort listener that\n * `fetchWithTimeout` attaches to a caller-provided signal, so the listener's\n * lifetime matches the request instead of the signal.\n *\n * Without removal, a long-lived signal (e.g. one AbortController reused for\n * a whole session) accumulates one `{ once: true }` listener plus its bound\n * AbortController per HTTP attempt until the signal fires or is collected,\n * and Node warns at the 11th listener. The listener must survive until the\n * response body is settled - removing it when fetch resolves (headers) would\n * break aborting an in-flight body read - so the code that finishes the body\n * (response parsing, stream teardown, retry/error handling) calls\n * `releaseRequestSignal` with the request's controller.\n */\nconst cleanups = new WeakMap();\nconst registry = typeof globalThis.FinalizationRegistry === 'function' ?\n new globalThis.FinalizationRegistry((controller) => releaseRequestSignal(controller))\n : null;\n// Module-scope factory so the cleanup closure captures exactly the signal and\n// the listener - built at the `fetchWithTimeout` call site it would share that\n// scope's context and retain the request body for as long as the cleanup is\n// held (same reason `_makeAbort` exists in client.ts).\nfunction makeCleanup(signal, listener) {\n return () => signal.removeEventListener('abort', listener);\n}\nexport function registerRequestSignalCleanup(controller, signal, listener) {\n cleanups.set(controller, makeCleanup(signal, listener));\n}\n// The registered target is the response BODY, not the Response: a caller can\n// keep a reader on the body and drop the Response wrapper (`.asResponse()`),\n// and the listener must survive for as long as anything can still read - the\n// body is what a live read keeps alive.\nexport function armAbandonmentBackstop(body, controller) {\n if (cleanups.has(controller))\n registry?.register(body, controller, controller);\n}\nexport function releaseRequestSignal(controller) {\n const cleanup = cleanups.get(controller);\n if (cleanup) {\n cleanups.delete(controller);\n registry?.unregister(controller);\n cleanup();\n }\n}\n//# sourceMappingURL=request-signal.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\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 Anthropic({ 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","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * Tracks which fallback a sequence of requests is pinned to.\n *\n * Create one (`new BetaFallbackState()`) and pass it via the `fallbackState`\n * request option on every request that should share the pin — the turns of one\n * conversation, or any wider scope the stickiness should apply to;\n * `betaRefusalFallbackMiddleware` mutates it in place when a model refuses.\n */\nexport class BetaFallbackState {\n}\nexport const FallbackEncoder = ({ headers, body }) => {\n return {\n bodyHeaders: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n };\n};\n//# sourceMappingURL=request-options.mjs.map","export const default_format = 'RFC3986';\nexport const default_formatter = (v) => String(v);\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\";\nexport let has = (obj, key) => ((has = Object.hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty)),\n has(obj, key));\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 const obj = item.obj[item.prop];\n if (isArray(obj)) {\n const compacted = [];\n for (let j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\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 (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n return obj;\n}\nexport function merge(target, source, options = {}) {\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 if ((options && (options.plainObjects || options.allowPrototypes)) || !has(Object.prototype, source)) {\n target[source] = true;\n }\n }\n else {\n return [target, source];\n }\n return target;\n }\n if (!target || typeof target !== 'object') {\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 source.forEach(function (item, i) {\n if (has(target, i)) {\n const targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n }\n else {\n target.push(item);\n }\n }\n else {\n target[i] = item;\n }\n });\n return target;\n }\n return Object.keys(source).reduce(function (acc, key) {\n const value = source[key];\n if (has(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n}\nexport function assign_single_source(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, 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 (e) {\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, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n let out = '';\n for (let j = 0; j < string.length; j += limit) {\n const segment = string.length >= limit ? string.slice(j, j + limit) : string;\n const arr = [];\n for (let i = 0; i < segment.length; ++i) {\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 < 0x800) {\n arr[arr.length] = hex_table[0xc0 | (c >> 6)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n if (c < 0xd800 || c >= 0xe000) {\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 c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));\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 }\n return out;\n};\nexport function compact(value) {\n const queue = [{ obj: { o: value }, prop: 'o' }];\n const refs = [];\n for (let i = 0; i < queue.length; ++i) {\n const item = queue[i];\n // @ts-ignore\n const obj = item.obj[item.prop];\n const keys = Object.keys(obj);\n for (let j = 0; j < keys.length; ++j) {\n const key = keys[j];\n const val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: 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 return [].concat(a, b);\n}\nexport function maybe_map(val, fn) {\n if (isArray(val)) {\n const mapped = [];\n for (let i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\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 (arr, value_or_array) {\n Array.prototype.push.apply(arr, isArray(value_or_array) ? value_or_array : [value_or_array]);\n};\nlet toISOString;\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)) !== void undefined && !find_flag) {\n // Where object last appeared in the ref tree\n const pos = tmp_sc.get(object);\n step += 1;\n if (typeof 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 (typeof 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, function (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 ? 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 (typeof 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 : void undefined }];\n }\n else if (isArray(filter)) {\n obj_keys = filter;\n }\n else {\n const keys = Object.keys(obj);\n obj_keys = sort ? keys.sort(sort) : 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 (let j = 0; j < obj_keys.length; ++j) {\n const key = obj_keys[j];\n const value = \n // @ts-ignore\n typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n if (skipNulls && value === null) {\n continue;\n }\n // @ts-ignore\n const encoded_key = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n const key_prefix = isArray(obj) ?\n typeof generateArrayPrefix === 'function' ?\n generateArrayPrefix(adjusted_prefix, encoded_key)\n : adjusted_prefix\n : adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']');\n sideChannel.set(object, step);\n const valueSideChannel = new WeakMap();\n valueSideChannel.set(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 (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n if (typeof 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 && typeof 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 (typeof 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 (typeof 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 const allowDots = typeof opts.allowDots === 'undefined' ?\n !!opts.encodeDotInKeys === true ?\n true\n : defaults.allowDots\n : !!opts.allowDots;\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n // @ts-ignore\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof 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: filter,\n format: format,\n formatter: 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 (let i = 0; i < obj_keys.length; ++i) {\n const key = obj_keys[i];\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 if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n }\n else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n return joined.length > 0 ? prefix + joined : '';\n}\n//# sourceMappingURL=stringify.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport * as qs from \"../qs/stringify.mjs\";\nexport function stringifyQuery(query) {\n return qs.stringify(query, { arrayFormat: 'brackets' });\n}\n//# sourceMappingURL=query.mjs.map","import { AnthropicError } from \"../../core/error.mjs\";\nexport const GRANT_TYPE_JWT_BEARER = 'urn:ietf:params:oauth:grant-type:jwt-bearer';\nexport const GRANT_TYPE_REFRESH_TOKEN = 'refresh_token';\nexport const TOKEN_ENDPOINT = '/v1/oauth/token';\n/**\n * `anthropic-beta` value required on authenticated API requests using an\n * OAuth bearer token, and on `refresh_token` grants against the token endpoint.\n */\nexport const OAUTH_API_BETA_HEADER = 'oauth-2025-04-20';\n/**\n * `anthropic-beta` value required on jwt-bearer exchanges against the token\n * endpoint. It routes the request to the federation service; it must NOT be\n * sent on `refresh_token` grants, which are handled by a different backend.\n */\nexport const FEDERATION_BETA_HEADER = 'oidc-federation-2026-04-01';\nexport const ADVISORY_REFRESH_THRESHOLD_IN_SECONDS = 120;\nexport const MANDATORY_REFRESH_THRESHOLD_IN_SECONDS = 30;\nexport const ADVISORY_REFRESH_BACKOFF_IN_SECONDS = 5;\nconst MAX_TOKEN_RESPONSE_BYTES = 1 << 20;\n/**\n * Rejects base URLs that would cause a JWT assertion or refresh token to be\n * sent over cleartext HTTP. Loopback hosts are allowed for local development.\n */\nexport function requireSecureTokenEndpoint(baseURL) {\n if (!baseURL)\n return;\n let u;\n try {\n u = new URL(baseURL);\n }\n catch (err) {\n throw new WorkloadIdentityError(`Invalid token endpoint base URL \"${baseURL}\": ${err}`);\n }\n if (u.protocol === 'https:')\n return;\n // WHATWG URL.hostname returns bracketed IPv6 (\"[::1]\"); Go's net/url strips them.\n const host = u.hostname.toLowerCase().replace(/^\\[|\\]$/g, '');\n if (u.protocol === 'http:' && (host === 'localhost' || host === '127.0.0.1' || host === '::1')) {\n return;\n }\n throw new WorkloadIdentityError(`Refusing to send credential over non-https token endpoint \"${baseURL}\"`);\n}\n/**\n * Reads the response body as text, parses it as a token-endpoint JSON\n * response, validates `access_token` is present, and rejects a non-Bearer\n * `token_type` when one is provided. Reads at most\n * {@link MAX_TOKEN_RESPONSE_BYTES} from the body stream.\n */\nexport async function parseTokenResponse(resp, requestId) {\n const text = await readLimitedText(resp);\n let data;\n try {\n data = JSON.parse(text);\n }\n catch {\n throw new WorkloadIdentityError(`Token endpoint returned non-JSON response (status ${resp.status})`, resp.status, redactSensitive(text), requestId);\n }\n if (!data.access_token) {\n throw new WorkloadIdentityError(`Token endpoint response missing access_token: ${JSON.stringify(redactSensitive(data))}`, resp.status, redactSensitive(data), requestId);\n }\n if (data.token_type && data.token_type.toLowerCase() !== 'bearer') {\n throw new WorkloadIdentityError(`Token endpoint response: unsupported token_type \"${data.token_type}\" (want Bearer)`, resp.status, redactSensitive(data), requestId);\n }\n return data;\n}\nconst MAX_ERROR_BODY_CHARS = 2000;\n// RFC 6749 §5.2 standard error-response fields. Anything else in a token\n// endpoint error body is potentially echoed input (assertion, refresh_token,\n// access_token, …) and is dropped rather than allowlisted-with-exceptions.\nconst SAFE_ERROR_KEYS = new Set(['error', 'error_description', 'error_uri']);\n/**\n * Returns a redacted copy of a token-endpoint error body for safe inclusion\n * in an exception. Strings are truncated; objects keep only the RFC 6749\n * §5.2 error fields.\n */\nexport function redactSensitive(body) {\n if (body == null)\n return body;\n if (typeof body === 'string') {\n let parsed;\n try {\n parsed = JSON.parse(body);\n }\n catch {\n if (body.length <= MAX_ERROR_BODY_CHARS)\n return body;\n return body.slice(0, MAX_ERROR_BODY_CHARS) + `... <${body.length - MAX_ERROR_BODY_CHARS} more chars>`;\n }\n return JSON.stringify(redactSensitive(parsed));\n }\n if (typeof body === 'object' && !Array.isArray(body)) {\n const out = {};\n for (const [k, v] of Object.entries(body)) {\n if (SAFE_ERROR_KEYS.has(k))\n out[k] = v;\n }\n return out;\n }\n return null;\n}\n/**\n * Best-effort safety check on a credentials file before reading it.\n *\n * On POSIX: resolves symlinks (so containerized deployments that mount the\n * credential as a symlink to a tmpfs-backed file keep working), then rejects\n * the resolved target if it is group- or world- readable or writable. A uid\n * mismatch on the resolved target is surfaced via `onWarn` since\n * root-written/app-read is common in init-container setups. No-op on Windows.\n */\nexport async function checkCredentialsFileSafety(path, onWarn = (m) => console.warn(`anthropic-sdk: ${m}`)) {\n if (typeof process === 'undefined' || process.platform === 'win32')\n return;\n const { fs } = await import(\"../../internal/node.mjs\");\n let resolved = path;\n let st;\n try {\n resolved = await fs.promises.realpath(path);\n st = await fs.promises.stat(resolved);\n }\n catch {\n return; // ENOENT etc — let the subsequent read surface a precise error\n }\n const mode = st.mode & 0o777;\n // 0o022 = group/world write; 0o044 = group/world read.\n if (mode & 0o022) {\n throw new WorkloadIdentityError(`Credentials file at ${resolved} is group/world-writable (mode 0o${mode.toString(8)}); ` +\n `this allows other local users to plant tokens. Run \\`chmod 600 ${resolved}\\`.`);\n }\n if (mode & 0o044) {\n throw new WorkloadIdentityError(`Credentials file at ${resolved} is group/world-readable (mode 0o${mode.toString(8)}); ` +\n `run \\`chmod 600 ${resolved}\\` before retrying.`);\n }\n if (typeof process.getuid === 'function' && st.uid !== process.getuid()) {\n onWarn(`credentials file at ${resolved} is owned by uid ${st.uid} (current process uid ${process.getuid()}); ` + `verify this is intentional.`);\n }\n}\n/**\n * Atomically writes JSON to `targetPath` via a `.tmp` sibling + rename,\n * with fsync on the file and (best-effort) on the parent directory.\n * Creates the parent directory with mode 0700 and the file with mode 0600.\n */\nexport async function writeCredentialsFileAtomic(targetPath, data) {\n const { fs, path } = await import(\"../../internal/node.mjs\");\n const dir = path.dirname(targetPath);\n await fs.promises.mkdir(dir, { recursive: true, mode: 0o700 });\n // Unique temp name avoids two concurrent writers (different processes or\n // SDK instances) racing on the same '.tmp' sibling and corrupting each\n // other's bytes mid-write before the rename.\n const tmpPath = `${targetPath}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;\n try {\n const fh = await fs.promises.open(tmpPath, 'w', 0o600);\n try {\n await fh.writeFile(JSON.stringify(data, null, 2));\n await fh.sync();\n }\n finally {\n await fh.close();\n }\n await fs.promises.rename(tmpPath, targetPath);\n }\n catch (err) {\n // Don't leak the temp file if anything between create and rename failed.\n await fs.promises.unlink(tmpPath).catch(() => { });\n throw err;\n }\n // fsync the parent directory so the rename survives a crash.\n try {\n const dirFh = await fs.promises.open(dir, 'r');\n try {\n await dirFh.sync();\n }\n finally {\n await dirFh.close();\n }\n }\n catch {\n // Directory fsync is best-effort (unsupported on some platforms, e.g. Windows).\n }\n}\nasync function readLimitedText(resp) {\n if (!resp.body) {\n return '';\n }\n const reader = resp.body.getReader();\n const chunks = [];\n let received = 0;\n for (;;) {\n const { done, value } = await reader.read();\n if (done)\n break;\n if (received + value.length > MAX_TOKEN_RESPONSE_BYTES) {\n const remaining = MAX_TOKEN_RESPONSE_BYTES - received;\n if (remaining > 0)\n chunks.push(value.subarray(0, remaining));\n await reader.cancel();\n break;\n }\n chunks.push(value);\n received += value.length;\n }\n let merged;\n if (chunks.length === 1) {\n merged = chunks[0];\n }\n else {\n merged = new Uint8Array(chunks.reduce((n, c) => n + c.length, 0));\n let offset = 0;\n for (const c of chunks) {\n merged.set(c, offset);\n offset += c.length;\n }\n }\n return new TextDecoder('utf-8').decode(merged);\n}\nexport class WorkloadIdentityError extends AnthropicError {\n constructor(message, statusCode = null, body = null, requestId = null) {\n super(message);\n this.statusCode = statusCode;\n this.body = body;\n this.requestId = requestId;\n }\n}\n//# sourceMappingURL=types.mjs.map","/** Current time as unix epoch seconds. */\nexport function nowAsSeconds() {\n return Math.floor(Date.now() / 1000);\n}\n//# sourceMappingURL=time.mjs.map","import { ADVISORY_REFRESH_BACKOFF_IN_SECONDS, ADVISORY_REFRESH_THRESHOLD_IN_SECONDS, MANDATORY_REFRESH_THRESHOLD_IN_SECONDS, } from \"./types.mjs\";\nimport { nowAsSeconds } from \"../../internal/utils/time.mjs\";\n/**\n * Wraps an {@link AccessTokenProvider} with two-tier proactive refresh\n * and concurrent deduplication.\n *\n * Refresh policy on each {@link getToken} call:\n *\n * - No cached token → call provider (blocking), cache, return.\n * - Cached with `expiresAt == null` → return cached forever.\n * - More than 120s remaining → return cached.\n * - 30–120s remaining (advisory window) → return stale token immediately,\n * kick off background refresh. On failure, log and keep stale.\n * - Less than 30s remaining or expired (mandatory) → block and refresh.\n * On failure, throw.\n *\n * Concurrent mandatory callers coalesce into a single provider call.\n */\nexport class TokenCache {\n constructor(provider, onAdvisoryRefreshError) {\n this.cached = null;\n this.pendingRefresh = null;\n this.nextForce = false;\n this.lastAdvisoryError = 0;\n this.provider = provider;\n this.onAdvisoryRefreshError = onAdvisoryRefreshError;\n }\n async getToken() {\n const force = this.nextForce;\n this.nextForce = false;\n const cached = this.cached;\n if (force || cached == null) {\n const token = await this.refresh(force);\n return token.token;\n }\n if (cached.expiresAt == null) {\n return cached.token;\n }\n const remaining = cached.expiresAt - nowAsSeconds();\n if (remaining > ADVISORY_REFRESH_THRESHOLD_IN_SECONDS) {\n return cached.token;\n }\n if (remaining > MANDATORY_REFRESH_THRESHOLD_IN_SECONDS) {\n this.backgroundRefresh();\n return cached.token;\n }\n const token = await this.refresh();\n return token.token;\n }\n /**\n * Clears the cached token and marks the next {@link getToken} as a forced\n * refresh, so the underlying provider bypasses any on-disk freshness check.\n * Called after a 401 — the server has just told us the token is bad even\n * if its `expires_at` still looks fresh.\n */\n invalidate() {\n this.cached = null;\n this.nextForce = true;\n }\n /**\n * Mandatory refresh. Joins any in-flight refresh unless forced — a forced\n * refresh must not coalesce into a non-forced one that may re-serve the\n * same stale disk token.\n */\n refresh(force = false) {\n if (this.pendingRefresh && !force) {\n return this.pendingRefresh;\n }\n return this.doRefresh(force);\n }\n /**\n * Advisory background refresh. Shares the same in-flight promise as\n * mandatory refreshes for deduplication, but swallows errors so the\n * stale cached token keeps being served. Backs off for\n * {@link ADVISORY_REFRESH_BACKOFF_IN_SECONDS} after a failure so an\n * outage during the advisory window doesn't hammer the token endpoint.\n */\n backgroundRefresh() {\n if (this.pendingRefresh) {\n return;\n }\n if (nowAsSeconds() - this.lastAdvisoryError < ADVISORY_REFRESH_BACKOFF_IN_SECONDS) {\n return;\n }\n this.doRefresh().catch((err) => {\n this.lastAdvisoryError = nowAsSeconds();\n // Advisory failure: keep serving the stale cached token, but surface\n // the error to the caller-provided hook so it can be logged.\n this.onAdvisoryRefreshError?.(err);\n });\n }\n /**\n * Core refresh. Sets {@link pendingRefresh} so concurrent callers\n * (both advisory and mandatory) coalesce into a single provider call.\n */\n doRefresh(force = false) {\n this.pendingRefresh = this.provider(force ? { forceRefresh: true } : undefined).then((token) => {\n this.cached = token;\n this.pendingRefresh = null;\n return token;\n }, (err) => {\n this.pendingRefresh = null;\n throw err;\n });\n return this.pendingRefresh;\n }\n}\n//# sourceMappingURL=token-cache.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\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 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 return undefined;\n};\n//# sourceMappingURL=env.mjs.map","export 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_;\nexport function encodeUTF8(str) {\n let encoder;\n return (encodeUTF8_ ??\n ((encoder = new globalThis.TextEncoder()), (encodeUTF8_ = encoder.encode.bind(encoder))))(str);\n}\nlet decodeUTF8_;\nexport function decodeUTF8(bytes) {\n let decoder;\n return (decodeUTF8_ ??\n ((decoder = new globalThis.TextDecoder()), (decodeUTF8_ = decoder.decode.bind(decoder))))(bytes);\n}\n//# sourceMappingURL=bytes.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { AnthropicError } 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 AnthropicError('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 AnthropicError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');\n};\n//# sourceMappingURL=base64.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { hasOwn } from \"./values.mjs\";\nimport { readEnv } from \"./env.mjs\";\nexport const defaultLogLevel = 'warn';\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\nexport const parseLogLevel = (maybeLevel, sourceName, logger) => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n logger.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();\nfunction filterLogger(logger, logLevel) {\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}\nexport function loggerFor(client) {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n return filterLogger(logger, logLevel);\n}\nlet lastEnvLevel;\nlet cachedDefaultLogger;\n/**\n * A logger matching the client defaults — `console`, filtered to\n * `ANTHROPIC_LOG` or {@link defaultLogLevel} — for contexts with no client to\n * read the configured `logger`/`logLevel` from.\n *\n * Cached per `ANTHROPIC_LOG` value so an invalid value warns once, like a\n * client construction does, rather than on every request.\n */\nexport function defaultLogger() {\n const envLevel = readEnv('ANTHROPIC_LOG');\n if (!cachedDefaultLogger || envLevel !== lastEnvLevel) {\n lastEnvLevel = envLevel;\n cachedDefaultLogger = filterLogger(console, parseLogLevel(envLevel, \"process.env['ANTHROPIC_LOG']\", filterLogger(console, defaultLogLevel)) ??\n defaultLogLevel);\n }\n return cachedDefaultLogger;\n}\nexport const formatRequestDetails = (details) => {\n if (details.options) {\n details.options = { ...details.options };\n delete details.options['headers']; // redundant + leaks internals\n }\n if (details.headers) {\n details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [\n name,\n (name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'api-key' ||\n name.toLowerCase() === 'x-api-key' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie') ?\n '***'\n : value,\n ]));\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","import { getPlatformHeaders } from \"../internal/detect-platform.mjs\";\nimport { readEnv } from \"../internal/utils.mjs\";\n/** Current schema version written to `configs/<profile>.json`. Absent on read ⇒ \"1.0\". */\nexport const CONFIG_FILE_VERSION = '1.0';\n/** Current schema version written to `credentials/<profile>.json`. Absent on read ⇒ \"1.0\". */\nexport const CREDENTIALS_FILE_VERSION = '1.0';\nconst PROFILE_NAME_PATTERN = /^[A-Za-z0-9_.-]+$/;\nfunction validateProfileName(name) {\n if (!name) {\n throw new Error('profile name is empty');\n }\n if (name === '.' || name === '..') {\n throw new Error(`profile name \"${name}\" is not allowed`);\n }\n if (name.includes('/') || name.includes('\\\\')) {\n throw new Error(`profile name \"${name}\" must not contain path separators`);\n }\n if (!PROFILE_NAME_PATTERN.test(name)) {\n throw new Error(`profile name \"${name}\" contains disallowed characters (allowed: letters, digits, '_', '.', '-')`);\n }\n}\n/**\n * Loads the Anthropic configuration for the given (or active) profile.\n *\n * Returns `null` when running in a browser or no configuration can be resolved.\n * Otherwise, returns the configuration based on the config file and environment variables.\n *\n * **Profile resolution** (first match wins):\n * 1. Explicit `profile` argument\n * 2. `ANTHROPIC_PROFILE` environment variable\n * 3. Contents of `<config_dir>/active_config` file\n * 4. `\"default\"`\n *\n * **Config resolution:**\n * - If `<config_dir>/configs/<profile>.json` exists, it is loaded and\n * missing fields are filled from environment variables. Values present\n * in the file take precedence — env vars only fill gaps:\n * - `ANTHROPIC_BASE_URL` → `base_url`\n * - `ANTHROPIC_ORGANIZATION_ID` → `organization_id`\n * - `ANTHROPIC_WORKSPACE_ID` → `workspace_id`\n * - `ANTHROPIC_SCOPE` → `authentication.scope`\n * - `ANTHROPIC_FEDERATION_RULE_ID` → `authentication.federation_rule_id` (oidc_federation)\n * - `ANTHROPIC_IDENTITY_TOKEN_FILE` → `authentication.identity_token` (oidc_federation)\n * - `ANTHROPIC_SERVICE_ACCOUNT_ID` → `authentication.service_account_id` (oidc_federation)\n * - If no config file exists, an `oidc_federation` config is synthesized\n * entirely from environment variables when both `ANTHROPIC_FEDERATION_RULE_ID`\n * and `ANTHROPIC_ORGANIZATION_ID` are set.\n */\nexport const loadConfig = async (profile) => {\n return (await loadConfigWithSource(profile))?.config ?? null;\n};\n/**\n * Same as {@link loadConfig}, but also reports whether the config was loaded\n * from a profile file on disk (`fromFile: true`) or synthesized entirely from\n * environment variables (`fromFile: false`).\n */\nexport const loadConfigWithSource = async (profile) => {\n var _a, _b;\n const rootConfigPath = await getRootConfigPath();\n if (rootConfigPath === null) {\n return null;\n }\n const profileName = profile ?? (await getActiveProfileName());\n if (profileName === null) {\n return null;\n }\n validateProfileName(profileName);\n const { fs, path } = await import(\"../internal/node.mjs\");\n const configPath = path.join(rootConfigPath, 'configs', `${profileName}.json`);\n let configRaw;\n try {\n configRaw = await fs.promises.readFile(configPath, 'utf-8');\n }\n catch (err) {\n if (err?.code !== 'ENOENT') {\n throw new Error(`failed to read config file ${configPath}: ${err}`);\n }\n configRaw = null;\n }\n if (configRaw === null) {\n const organizationId = readEnv('ANTHROPIC_ORGANIZATION_ID');\n const identityTokenFile = readEnv('ANTHROPIC_IDENTITY_TOKEN_FILE');\n const federationRuleId = readEnv('ANTHROPIC_FEDERATION_RULE_ID');\n if (federationRuleId && organizationId) {\n return {\n fromFile: false,\n config: {\n organization_id: organizationId,\n // A defaulted-but-empty CI variable (`ANTHROPIC_WORKSPACE_ID=\"\"`) is\n // treated as unset — readEnv coerces empty to undefined, and the body\n // builder's truthy check skips it — so `\"workspace_id\": \"\"` never goes\n // on the wire.\n workspace_id: readEnv('ANTHROPIC_WORKSPACE_ID'),\n base_url: readEnv('ANTHROPIC_BASE_URL'),\n authentication: {\n type: 'oidc_federation',\n federation_rule_id: federationRuleId,\n service_account_id: readEnv('ANTHROPIC_SERVICE_ACCOUNT_ID'),\n identity_token: identityTokenFile ? { source: 'file', path: identityTokenFile } : undefined,\n scope: readEnv('ANTHROPIC_SCOPE'),\n },\n },\n };\n }\n return null;\n }\n let config;\n try {\n config = JSON.parse(configRaw);\n }\n catch (err) {\n throw new Error(`failed to parse config file ${configPath}: ${err}`);\n }\n if (!config.authentication) {\n throw new Error(`config file ${configPath} is missing \"authentication\"`);\n }\n const authType = config.authentication.type;\n if (authType !== 'oidc_federation' && authType !== 'user_oauth') {\n throw new Error(`authentication.type \"${authType}\" is not a known authentication type`);\n }\n // File values are authoritative; env vars only fill fields the file left unset.\n config.organization_id ?? (config.organization_id = readEnv('ANTHROPIC_ORGANIZATION_ID'));\n config.workspace_id ?? (config.workspace_id = readEnv('ANTHROPIC_WORKSPACE_ID'));\n config.base_url ?? (config.base_url = readEnv('ANTHROPIC_BASE_URL'));\n (_a = config.authentication).scope ?? (_a.scope = readEnv('ANTHROPIC_SCOPE'));\n if (config.authentication.type === 'oidc_federation') {\n if (!config.authentication.identity_token) {\n const identityTokenFile = readEnv('ANTHROPIC_IDENTITY_TOKEN_FILE');\n if (identityTokenFile) {\n config.authentication.identity_token = {\n source: 'file',\n path: identityTokenFile,\n };\n }\n }\n // Unlike siblings using `??= readEnv()` (which leaves `undefined`), coerce\n // to '' so the type stays `string` (always set). The downstream required\n // check in credential-chain rejects empty, so semantics match but types are\n // cleaner.\n if (!config.authentication.federation_rule_id) {\n config.authentication.federation_rule_id = readEnv('ANTHROPIC_FEDERATION_RULE_ID') ?? '';\n }\n (_b = config.authentication).service_account_id ?? (_b.service_account_id = readEnv('ANTHROPIC_SERVICE_ACCOUNT_ID'));\n }\n return { config, fromFile: true };\n};\n/**\n * Loads the credential material for the active profile.\n *\n * Returns the parsed credentials or `null` when running in a browser or\n * no credentials file can be found.\n *\n * **Profile resolution** (first match wins):\n * 1. `ANTHROPIC_PROFILE` environment variable\n * 2. Contents of `<config_dir>/active_config` file\n * 3. `\"default\"`\n *\n * **Credentials path resolution** (first match wins):\n * 1. `authentication.credentials_path` from the active profile's config (via {@link loadConfig})\n * 2. `<config_dir>/credentials/<profile>.json`\n */\nexport const loadCredentials = async () => {\n const config = await loadConfig();\n const credentialsPath = await getCredentialsPath(config);\n if (!credentialsPath) {\n return null;\n }\n const { fs } = await import(\"../internal/node.mjs\");\n let raw;\n try {\n raw = await fs.promises.readFile(credentialsPath, 'utf-8');\n }\n catch (err) {\n if (err?.code !== 'ENOENT') {\n throw new Error(`failed to read credentials file ${credentialsPath}: ${err}`);\n }\n return null;\n }\n let creds;\n try {\n creds = JSON.parse(raw);\n }\n catch (err) {\n throw new Error(`failed to parse credentials file ${credentialsPath}: ${err}`);\n }\n if (creds.type && creds.type !== 'oauth_token') {\n throw new Error(`credentials file ${credentialsPath} has unsupported type \"${creds.type}\" (want \"oauth_token\")`);\n }\n return creds;\n};\n/**\n * Resolves the credentials file path for the given config.\n *\n * Uses `authentication.credentials_path` from the config if set, otherwise\n * falls back to `<config_dir>/credentials/<profile>.json`.\n *\n * Returns `null` when running in a browser or the path cannot be resolved.\n */\nexport const getCredentialsPath = async (config, profile) => {\n if (config?.authentication.credentials_path) {\n return config.authentication.credentials_path;\n }\n const rootConfigPath = await getRootConfigPath();\n if (!rootConfigPath) {\n return null;\n }\n const profileName = profile ?? (await getActiveProfileName());\n if (!profileName) {\n return null;\n }\n validateProfileName(profileName);\n const { path } = await import(\"../internal/node.mjs\");\n return path.join(rootConfigPath, 'credentials', `${profileName}.json`);\n};\nconst getRootConfigPath = async () => {\n if (!supportsLocalConfigFiles()) {\n return null;\n }\n const { path } = await import(\"../internal/node.mjs\");\n // ANTHROPIC_CONFIG_DIR is treated as a trusted path: it is set by the\n // process operator, not by remote input, so it is not validated.\n const configDir = readEnv('ANTHROPIC_CONFIG_DIR');\n if (configDir) {\n return configDir;\n }\n const os = getPlatformHeaders()['X-Stainless-OS'];\n if (os === 'Windows') {\n const appData = readEnv('APPDATA');\n if (appData) {\n return path.join(appData, 'Anthropic');\n }\n const userProfile = readEnv('USERPROFILE');\n if (userProfile) {\n return path.join(userProfile, 'AppData', 'Roaming', 'Anthropic');\n }\n // No usable Windows config root — return null so callers fall through to\n // \"no config available\" rather than silently writing under C:\\.\n return null;\n }\n const xdgConfigHome = readEnv('XDG_CONFIG_HOME');\n if (xdgConfigHome) {\n return path.join(xdgConfigHome, 'anthropic');\n }\n const home = readEnv('HOME');\n if (home) {\n return path.join(home, '.config', 'anthropic');\n }\n return null;\n};\nconst supportsLocalConfigFiles = () => {\n const runtime = getPlatformHeaders()['X-Stainless-Runtime'];\n return runtime === 'node' || runtime === 'deno';\n};\nconst getActiveProfileName = async () => {\n const rootConfigPath = await getRootConfigPath();\n if (!rootConfigPath) {\n return null;\n }\n const profileName = readEnv('ANTHROPIC_PROFILE');\n if (profileName) {\n return profileName;\n }\n const { fs, path } = await import(\"../internal/node.mjs\");\n const filePath = path.join(rootConfigPath, 'active_config');\n try {\n return (await fs.promises.readFile(filePath, 'utf-8')).trim() || 'default';\n }\n catch (err) {\n if (err?.code !== 'ENOENT') {\n throw new Error(`failed to read ${filePath}: ${err}`);\n }\n return 'default';\n }\n};\n//# sourceMappingURL=credentials.mjs.map","import { AnthropicError } from \"../../core/error.mjs\";\n/**\n * Reads a JWT from a file on every call. Supports automatic rotation\n * (e.g. Kubernetes projected service-account tokens).\n */\nexport function identityTokenFromFile(path) {\n if (!path) {\n throw new AnthropicError('Identity token file path is empty');\n }\n return async () => {\n const { fs } = await import(\"../../internal/node.mjs\");\n let content;\n try {\n content = await fs.promises.readFile(path, 'utf-8');\n }\n catch (err) {\n throw new AnthropicError(`Failed to read identity token file at ${path}: ${err}`);\n }\n const token = content.trim();\n if (!token) {\n throw new AnthropicError(`Identity token file at ${path} is empty`);\n }\n return token;\n };\n}\n/**\n * Wraps a static JWT string as an {@link IdentityTokenProvider}.\n */\nexport function identityTokenFromValue(token) {\n if (!token) {\n throw new AnthropicError('Identity token value is empty');\n }\n return () => token;\n}\n//# sourceMappingURL=identity-token.mjs.map","import { FEDERATION_BETA_HEADER, GRANT_TYPE_JWT_BEARER, OAUTH_API_BETA_HEADER, TOKEN_ENDPOINT, WorkloadIdentityError, parseTokenResponse, redactSensitive, requireSecureTokenEndpoint, } from \"./types.mjs\";\nimport { nowAsSeconds } from \"../../internal/utils/time.mjs\";\nimport { VERSION } from \"../../version.mjs\";\n/**\n * Exchanges an external OIDC JWT for an Anthropic access token via the\n * RFC 7523 jwt-bearer grant.\n *\n * Each invocation performs a fresh token exchange. Wrap in a\n * {@link TokenCache} to avoid exchanging on every request.\n *\n * Federation grants do not return a refresh token — callers re-exchange\n * their assertion on expiry.\n */\nexport function oidcFederationProvider(config) {\n return async () => {\n requireSecureTokenEndpoint(config.baseURL);\n const jwt = await config.identityTokenProvider();\n // The token endpoint enforces a 16 KiB assertion limit; surface a clear\n // client-side error so misconfigured projected-token sources are\n // diagnosable without a server round-trip.\n if (jwt.length > 16 * 1024) {\n throw new WorkloadIdentityError(`Identity token is ${Math.ceil(jwt.length / 1024)} KiB, exceeds the 16 KiB assertion limit`);\n }\n const body = {\n grant_type: GRANT_TYPE_JWT_BEARER,\n assertion: jwt,\n federation_rule_id: config.federationRuleId,\n organization_id: config.organizationId,\n };\n if (config.serviceAccountId) {\n body['service_account_id'] = config.serviceAccountId;\n }\n if (config.workspaceId) {\n body['workspace_id'] = config.workspaceId;\n }\n const url = `${config.baseURL}${TOKEN_ENDPOINT}`;\n let resp;\n try {\n resp = await config.fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'anthropic-beta': `${OAUTH_API_BETA_HEADER},${FEDERATION_BETA_HEADER}`,\n 'User-Agent': config.userAgent || `anthropic-sdk-typescript/${VERSION} oidcFederationProvider`,\n },\n body: JSON.stringify(body),\n });\n }\n catch (err) {\n throw new WorkloadIdentityError(`Failed to reach token endpoint ${url}: ${err}`);\n }\n const requestId = resp.headers.get('Request-Id');\n if (!resp.ok) {\n const text = await resp.text().catch(() => '');\n const redacted = redactSensitive(text);\n // A 401 is hard to debug from the status code alone, so surface\n // guidance: check the federation rule, optionally set a workspace ID\n // (the most common fix when no workspaceId is configured), and point at\n // the Workload identity page in Claude Console for the server-side\n // authentication event log. Other statuses (5xx, 400, ...) get no hint.\n let hint = '';\n if (resp.status === 401) {\n const hintMiddle = config.workspaceId ? '' : (\"If your federation rule is scoped to multiple workspaces, set the ANTHROPIC_WORKSPACE_ID environment variable, the 'workspace_id' config key, or the `workspaceId` option. \");\n hint = ` Ensure your federation rule matches your identity token. ${hintMiddle}View your authentication events in the Workload identity page of Claude Console for more details.`;\n }\n throw new WorkloadIdentityError(`Token exchange failed with status ${resp.status}${requestId ? ` (request-id ${requestId})` : ''}: ${redacted}${hint}`, resp.status, redacted, requestId);\n }\n const data = await parseTokenResponse(resp, requestId);\n const expiresIn = Number(data.expires_in);\n if (!Number.isFinite(expiresIn)) {\n throw new WorkloadIdentityError(`Token endpoint response missing required fields: ${JSON.stringify(redactSensitive(data))}`, resp.status, redactSensitive(data), requestId);\n }\n return {\n token: data.access_token,\n expiresAt: nowAsSeconds() + expiresIn,\n };\n };\n}\n//# sourceMappingURL=oidc-federation.mjs.map","import { CREDENTIALS_FILE_VERSION } from \"../../core/credentials.mjs\";\nimport { GRANT_TYPE_REFRESH_TOKEN, MANDATORY_REFRESH_THRESHOLD_IN_SECONDS, OAUTH_API_BETA_HEADER, TOKEN_ENDPOINT, WorkloadIdentityError, checkCredentialsFileSafety, parseTokenResponse, redactSensitive, requireSecureTokenEndpoint, writeCredentialsFileAtomic, } from \"./types.mjs\";\nimport { nowAsSeconds } from \"../../internal/utils/time.mjs\";\nimport { VERSION } from \"../../version.mjs\";\n/**\n * Reads a user-oauth credential file. Returns the cached access token while\n * fresh; on expiry performs a `refresh_token` grant and writes the new\n * tokens back to the credentials file (atomic replace, fsync'd).\n *\n * If `clientId` is empty, the access token is treated as static — the\n * credentials file is read on every call but no refresh is attempted, and\n * an expired token without a `refresh_token` raises.\n */\nexport function userOAuthProvider(config) {\n return async (opts) => {\n const { fs } = await import(\"../../internal/node.mjs\");\n await checkCredentialsFileSafety(config.credentialsPath, config.onSafetyWarning);\n let raw;\n try {\n raw = await fs.promises.readFile(config.credentialsPath, 'utf-8');\n }\n catch (err) {\n throw new WorkloadIdentityError(`Credentials file not found at ${config.credentialsPath}: ${err}`);\n }\n let creds;\n try {\n creds = JSON.parse(raw);\n }\n catch (err) {\n throw new WorkloadIdentityError(`Credentials file at ${config.credentialsPath} is not valid JSON: ${err}`);\n }\n const accessToken = creds.access_token;\n if (!accessToken) {\n throw new WorkloadIdentityError(`Credentials file at ${config.credentialsPath} must include 'access_token'`);\n }\n // Return cached token if still fresh (or no expiry info), unless the\n // caller is forcing a refresh after a 401 — then go straight to refresh\n // even if the file's expires_at still looks valid.\n const expiresAt = creds.expires_at;\n if (!opts?.forceRefresh &&\n (expiresAt == null || nowAsSeconds() < expiresAt - MANDATORY_REFRESH_THRESHOLD_IN_SECONDS)) {\n return { token: accessToken, expiresAt: expiresAt ?? null };\n }\n const refreshToken = creds.refresh_token;\n if (!config.clientId || !refreshToken) {\n throw new WorkloadIdentityError(`Access token at ${config.credentialsPath} has expired and no refresh is available ` +\n `(client_id ${config.clientId ? 'set' : 'empty'}, refresh_token ${refreshToken ? 'set' : 'empty'})`);\n }\n requireSecureTokenEndpoint(config.baseURL);\n const body = {\n grant_type: GRANT_TYPE_REFRESH_TOKEN,\n refresh_token: refreshToken,\n client_id: config.clientId,\n };\n const url = `${config.baseURL}${TOKEN_ENDPOINT}`;\n let resp;\n try {\n resp = await config.fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'anthropic-beta': OAUTH_API_BETA_HEADER,\n 'User-Agent': config.userAgent || `anthropic-sdk-typescript/${VERSION} userOAuthProvider`,\n },\n body: JSON.stringify(body),\n });\n }\n catch (err) {\n throw new WorkloadIdentityError(`User OAuth refresh failed to reach token endpoint: ${err}`);\n }\n const requestId = resp.headers.get('Request-Id');\n if (!resp.ok) {\n const text = await resp.text().catch(() => '');\n throw new WorkloadIdentityError(`User OAuth refresh failed (HTTP ${resp.status}): ${redactSensitive(text)}`, resp.status, redactSensitive(text), requestId);\n }\n const data = await parseTokenResponse(resp, requestId);\n const expiresIn = Number(data.expires_in);\n if (!Number.isFinite(expiresIn)) {\n throw new WorkloadIdentityError(`User OAuth refresh response missing or invalid expires_in: ${JSON.stringify(redactSensitive(data))}`, resp.status, redactSensitive(data), requestId);\n }\n const newExpiresAt = nowAsSeconds() + expiresIn;\n const newRefreshToken = data.refresh_token || refreshToken;\n await writeCredentialsFileAtomic(config.credentialsPath, {\n ...creds,\n version: CREDENTIALS_FILE_VERSION,\n type: 'oauth_token',\n access_token: data.access_token,\n expires_at: newExpiresAt,\n refresh_token: newRefreshToken,\n });\n return { token: data.access_token, expiresAt: newExpiresAt };\n };\n}\n//# sourceMappingURL=user-oauth.mjs.map","import { readEnv } from \"../../internal/utils/env.mjs\";\nimport { CREDENTIALS_FILE_VERSION, loadConfigWithSource, getCredentialsPath, } from \"../../core/credentials.mjs\";\nimport { MANDATORY_REFRESH_THRESHOLD_IN_SECONDS, WorkloadIdentityError, checkCredentialsFileSafety, writeCredentialsFileAtomic, } from \"./types.mjs\";\nimport { nowAsSeconds } from \"../../internal/utils/time.mjs\";\nimport { identityTokenFromFile, identityTokenFromValue } from \"./identity-token.mjs\";\nimport { oidcFederationProvider } from \"./oidc-federation.mjs\";\nimport { userOAuthProvider } from \"./user-oauth.mjs\";\nexport function resolveCredentialsFromConfig(config, options) {\n const credentialsPath = config.authentication.credentials_path ?? null;\n const effectiveBaseURL = (config.base_url || options.baseURL).replace(/\\/+$/, '');\n const provider = buildProvider(config, credentialsPath, effectiveBaseURL, options);\n const extraHeaders = {};\n // For federation profiles workspace_id is sent in the jwt-bearer exchange\n // body, not as a request header (the minted token is already\n // workspace-scoped, so the header would be ignored).\n if (config.workspace_id && config.authentication.type === 'user_oauth') {\n extraHeaders['anthropic-workspace-id'] = config.workspace_id;\n }\n // Surface the profile's own base_url (not the options.baseURL fallback) so\n // the client can adopt it for outbound API requests when the caller didn't\n // pin one explicitly. Echoing options.baseURL back would defeat precedence.\n return { provider, extraHeaders, baseURL: config.base_url || undefined };\n}\n/**\n * Resolves a {@link CredentialResult} from the environment. Returns `null`\n * when no credentials can be resolved.\n *\n * Resolution order:\n *\n * 1. Config file for the active profile (or the explicit `profile` argument)\n * → dispatch on `authentication.type` (`oidc_federation`, `user_oauth`)\n * 2. Environment variables `ANTHROPIC_FEDERATION_RULE_ID` +\n * `ANTHROPIC_ORGANIZATION_ID` (+ identity token) → OIDC federation\n * 3. Nothing matches → `null`\n *\n * Passing `profile` selects `<config_dir>/configs/<profile>.json` directly,\n * skipping `ANTHROPIC_PROFILE` / `active_config` resolution.\n */\nexport async function defaultCredentials(options, profile) {\n const loaded = await loadConfigWithSource(profile);\n if (!loaded) {\n return null;\n }\n const { config, fromFile } = loaded;\n // For file-loaded configs, default credentials_path to the per-profile\n // location so user_oauth and federation caching work. Shallow-clone first\n // so callers that retain a reference to the loaded config don't observe the\n // patched-in default.\n //\n // Env-only credentials (no profile file on disk) skip the disk cache —\n // matching the other SDKs. A disk cache keyed by profile path would\n // re-serve a stale token after a change to ANTHROPIC_WORKSPACE_ID (or\n // ANTHROPIC_ORGANIZATION_ID / ANTHROPIC_FEDERATION_RULE_ID) until the\n // cached token expired, so the env-only chain stays in-memory only.\n const withPath = config.authentication.credentials_path || !fromFile ?\n config\n : {\n ...config,\n authentication: {\n ...config.authentication,\n credentials_path: (await getCredentialsPath(config, profile)) ?? undefined,\n },\n };\n return resolveCredentialsFromConfig(withPath, options);\n}\nfunction buildProvider(config, credentialsPath, baseURL, options) {\n switch (config.authentication.type) {\n case 'oidc_federation': {\n const auth = config.authentication;\n const identityProvider = resolveIdentityTokenProvider(auth);\n if (!identityProvider) {\n throw new WorkloadIdentityError('oidc_federation config requires an identity token (set authentication.identity_token, ' +\n 'ANTHROPIC_IDENTITY_TOKEN_FILE, or ANTHROPIC_IDENTITY_TOKEN)');\n }\n if (!auth.federation_rule_id) {\n throw new WorkloadIdentityError(\"oidc_federation config requires 'federation_rule_id'. Set it in authentication.federation_rule_id in your profile, or via ANTHROPIC_FEDERATION_RULE_ID (profile takes precedence).\");\n }\n if (!config.organization_id) {\n throw new WorkloadIdentityError('oidc_federation config requires organization_id (set ANTHROPIC_ORGANIZATION_ID or config.organization_id)');\n }\n const exchange = oidcFederationProvider({\n identityTokenProvider: identityProvider,\n federationRuleId: auth.federation_rule_id,\n organizationId: config.organization_id,\n serviceAccountId: auth.service_account_id,\n workspaceId: config.workspace_id,\n baseURL,\n fetch: options.fetch,\n userAgent: options.userAgent,\n });\n // If there's a credentials file path, wrap the exchange with file caching\n // (check file for fresh token before exchanging, write back after).\n if (credentialsPath) {\n return cachedExchangeProvider(exchange, credentialsPath, options.onCacheWriteError, options.onSafetyWarning);\n }\n return exchange;\n }\n case 'user_oauth': {\n if (!credentialsPath) {\n throw new WorkloadIdentityError('user_oauth config requires authentication.credentials_path ' +\n '(or load via a profile so it defaults to <config_dir>/credentials/<profile>.json)');\n }\n return userOAuthProvider({\n credentialsPath,\n clientId: config.authentication.client_id,\n baseURL,\n fetch: options.fetch,\n userAgent: options.userAgent,\n onSafetyWarning: options.onSafetyWarning,\n });\n }\n default: {\n const t = config.authentication.type;\n throw new WorkloadIdentityError(`authentication.type \"${t}\" is not a known authentication type`);\n }\n }\n}\n/**\n * Resolves the identity token provider from config fields or environment variables.\n *\n * Resolution order:\n * 1. `identity_token.path` from the config (source: \"file\")\n * 2. `ANTHROPIC_IDENTITY_TOKEN_FILE` env var\n * 3. `ANTHROPIC_IDENTITY_TOKEN` env var (static value)\n */\nfunction resolveIdentityTokenProvider(auth) {\n if (auth.identity_token) {\n // Cast needed to stringify an unknown source value for the error message:\n // the on-disk JSON may contain a source this SDK version doesn't know about.\n const source = auth.identity_token.source;\n if (source !== 'file') {\n throw new WorkloadIdentityError(`identity_token.source \"${source}\" is not supported by this SDK version (only \"file\")`);\n }\n if (!auth.identity_token.path) {\n throw new WorkloadIdentityError(`identity_token.source \"file\" requires a non-empty path`);\n }\n return identityTokenFromFile(auth.identity_token.path);\n }\n const tokenFile = readEnv('ANTHROPIC_IDENTITY_TOKEN_FILE');\n if (tokenFile) {\n return identityTokenFromFile(tokenFile);\n }\n const tokenValue = readEnv('ANTHROPIC_IDENTITY_TOKEN');\n if (tokenValue) {\n return identityTokenFromValue(tokenValue);\n }\n return null;\n}\n/**\n * Wraps a federation exchange provider with credential file caching.\n * Checks the file for a fresh token before exchanging, and writes the\n * result back after a successful exchange (best-effort, atomic replace).\n *\n * Note: this is not cross-process serialized — two SDK instances that\n * miss the cache simultaneously will both perform a full exchange and\n * the last writer wins. That is acceptable: federation exchanges are\n * idempotent and the cache is an optimization, not a correctness gate.\n */\nfunction cachedExchangeProvider(exchange, credentialsPath, onCacheWriteError, onSafetyWarning) {\n return async (opts) => {\n const { fs } = await import(\"../../internal/node.mjs\");\n await checkCredentialsFileSafety(credentialsPath, onSafetyWarning);\n // Try cached credentials file\n let existing;\n try {\n const raw = await fs.promises.readFile(credentialsPath, 'utf-8');\n existing = JSON.parse(raw);\n const token = existing?.['access_token'];\n if (token && !opts?.forceRefresh) {\n const expiresAt = existing?.['expires_at'];\n if (expiresAt == null || nowAsSeconds() < expiresAt - MANDATORY_REFRESH_THRESHOLD_IN_SECONDS) {\n return { token, expiresAt: expiresAt ?? null };\n }\n }\n }\n catch (err) {\n // ENOENT or invalid-JSON → no usable cache, exchange fresh. Other\n // errors (EACCES, EISDIR, …) indicate a broken cache path; surface to\n // the optional hook so they're at least debuggable, then proceed.\n const code = err?.code;\n if (code !== 'ENOENT' && !(err instanceof SyntaxError)) {\n onCacheWriteError?.(err);\n }\n }\n // Exchange for a new token\n const result = await exchange(opts);\n // Write cache back (best-effort). Preserve any unknown keys from the\n // existing file (notably refresh_token, in the unlikely case this path\n // is shared with a user_oauth profile) so the federation cache writer\n // doesn't clobber material it didn't own.\n try {\n await writeCredentialsFileAtomic(credentialsPath, {\n ...(existing ?? {}),\n version: CREDENTIALS_FILE_VERSION,\n type: 'oauth_token',\n access_token: result.token,\n expires_at: result.expiresAt,\n });\n }\n catch (err) {\n // Best-effort caching: surface to the optional hook but never fail\n // the exchange itself.\n onCacheWriteError?.(err);\n }\n return result;\n };\n}\n//# sourceMappingURL=credential-chain.mjs.map","var _LineDecoder_buffer, _LineDecoder_carriageReturnIndex;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../tslib.mjs\";\nimport { concatBytes, decodeUTF8, encodeUTF8 } from \"../utils/bytes.mjs\";\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nexport class LineDecoder {\n constructor() {\n _LineDecoder_buffer.set(this, void 0);\n _LineDecoder_carriageReturnIndex.set(this, void 0);\n __classPrivateFieldSet(this, _LineDecoder_buffer, new Uint8Array(), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n decode(chunk) {\n if (chunk == null) {\n return [];\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n __classPrivateFieldSet(this, _LineDecoder_buffer, concatBytes([__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), binaryChunk]), \"f\");\n const lines = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"))) != null) {\n if (patternIndex.carriage && __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") == null) {\n // skip until we either get a corresponding `\\n`, a new `\\r` or nothing\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, patternIndex.index, \"f\");\n continue;\n }\n // we got double \\r or \\rtext\\n\n if (__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") != null &&\n (patternIndex.index !== __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") + 1 || patternIndex.carriage)) {\n lines.push(decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") - 1)));\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\")), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n continue;\n }\n const endIndex = __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") !== null ? patternIndex.preceding - 1 : patternIndex.preceding;\n const line = decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, endIndex));\n lines.push(line);\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(patternIndex.index), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n return lines;\n }\n flush() {\n if (!__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length) {\n return [];\n }\n return this.decode('\\n');\n }\n}\n_LineDecoder_buffer = new WeakMap(), _LineDecoder_carriageReturnIndex = new WeakMap();\n// prettier-ignore\nLineDecoder.NEWLINE_CHARS = new Set(['\\n', '\\r']);\nLineDecoder.NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n/**\n * This function searches the buffer for the end patterns, (\\r or \\n)\n * and returns an object with the index preceding the matched newline and the\n * index after the newline char. `null` is returned if no new line is found.\n *\n * ```ts\n * findNewLineIndex('abc\\ndef') -> { preceding: 2, index: 3 }\n * ```\n */\nfunction findNewlineIndex(buffer, startIndex) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = startIndex ?? 0; i < buffer.length; 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}\nexport function findDoubleNewlineIndex(buffer) {\n // This function searches the buffer for the end patterns (\\r\\r, \\n\\n, \\r\\n\\r\\n)\n // and returns the index right after the first occurrence of any pattern,\n // or -1 if none of the patterns are found.\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = 0; i < buffer.length - 1; i++) {\n if (buffer[i] === newline && buffer[i + 1] === newline) {\n // \\n\\n\n return i + 2;\n }\n if (buffer[i] === carriage && buffer[i + 1] === carriage) {\n // \\r\\r\n return i + 2;\n }\n if (buffer[i] === carriage &&\n buffer[i + 1] === newline &&\n i + 3 < buffer.length &&\n buffer[i + 2] === carriage &&\n buffer[i + 3] === newline) {\n // \\r\\n\\r\\n\n return i + 4;\n }\n }\n return -1;\n}\n//# sourceMappingURL=line.mjs.map","var _Stream_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { AnthropicError } from \"./error.mjs\";\nimport { makeReadableStream } from \"../internal/shims.mjs\";\nimport { findDoubleNewlineIndex, LineDecoder } from \"../internal/decoders/line.mjs\";\nimport { ReadableStreamToAsyncIterable } from \"../internal/shims.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { safeJSON } from \"../internal/utils/values.mjs\";\nimport { encodeUTF8 } from \"../internal/utils/bytes.mjs\";\nimport { loggerFor } from \"../internal/utils/log.mjs\";\nimport { APIError } from \"./error.mjs\";\nimport { releaseRequestSignal } from \"../internal/request-signal.mjs\";\nexport class Stream {\n constructor(iterator, controller, client) {\n this.iterator = iterator;\n _Stream_client.set(this, void 0);\n this.controller = controller;\n __classPrivateFieldSet(this, _Stream_client, client, \"f\");\n }\n /**\n * Iterate the raw Server-Sent Events from `response` — `{event, data, raw}`\n * objects, before any JSON parsing or event-name filtering.\n *\n * This reads `response.body` directly (not a clone), so the response is\n * consumed. Use this in middleware that fully replaces the stream body; for\n * read-only observation of parsed events, use `ctx.parse()` instead.\n */\n static rawEvents(response, controller = new AbortController()) {\n return _iterSSEMessages(response, controller);\n }\n static fromSSEResponse(response, controller, client) {\n let consumed = false;\n const logger = client ? loggerFor(client) : console;\n async function* iterator() {\n if (consumed) {\n throw new AnthropicError('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 sse of _iterSSEMessages(response, controller)) {\n if (sse.event === 'completion') {\n try {\n yield JSON.parse(sse.data);\n }\n catch (e) {\n logger.error(`Could not parse message into JSON:`, sse.data);\n logger.error(`From chunk:`, sse.raw);\n throw e;\n }\n }\n if (sse.event === 'message_start' ||\n sse.event === 'message_delta' ||\n sse.event === 'message_stop' ||\n sse.event === 'content_block_start' ||\n sse.event === 'content_block_delta' ||\n sse.event === 'content_block_stop' ||\n sse.event === 'message' ||\n sse.event === 'user.message' ||\n sse.event === 'user.interrupt' ||\n sse.event === 'user.tool_confirmation' ||\n sse.event === 'user.custom_tool_result' ||\n sse.event === 'user.tool_result' ||\n sse.event === 'agent.message' ||\n sse.event === 'agent.thinking' ||\n sse.event === 'agent.tool_use' ||\n sse.event === 'agent.tool_result' ||\n sse.event === 'agent.mcp_tool_use' ||\n sse.event === 'agent.mcp_tool_result' ||\n sse.event === 'agent.custom_tool_use' ||\n sse.event === 'agent.thread_context_compacted' ||\n sse.event === 'session.status_running' ||\n sse.event === 'session.status_idle' ||\n sse.event === 'session.status_rescheduled' ||\n sse.event === 'session.status_terminated' ||\n sse.event === 'session.error' ||\n sse.event === 'session.deleted' ||\n sse.event === 'session.updated' ||\n sse.event === 'span.model_request_start' ||\n sse.event === 'span.model_request_end' ||\n sse.event === 'span.outcome_evaluation_start' ||\n sse.event === 'span.outcome_evaluation_ongoing' ||\n sse.event === 'span.outcome_evaluation_end' ||\n sse.event === 'user.define_outcome' ||\n sse.event === 'agent.thread_message_received' ||\n sse.event === 'agent.thread_message_sent' ||\n sse.event === 'agent.session_thread_message_received' ||\n sse.event === 'agent.session_thread_message_sent' ||\n sse.event === 'session.thread_created' ||\n sse.event === 'session.thread_status_created' ||\n sse.event === 'session.thread_status_running' ||\n sse.event === 'session.thread_status_idle' ||\n sse.event === 'session.thread_status_rescheduled' ||\n sse.event === 'session.thread_status_terminated' ||\n sse.event === 'event_start' ||\n sse.event === 'event_delta' ||\n sse.event === 'system.message') {\n try {\n yield JSON.parse(sse.data);\n }\n catch (e) {\n logger.error(`Could not parse message into JSON:`, sse.data);\n logger.error(`From chunk:`, sse.raw);\n throw e;\n }\n }\n if (sse.event === 'ping') {\n continue;\n }\n if (sse.event === 'error') {\n const body = safeJSON(sse.data) ?? sse.data;\n const type = body?.error?.type;\n throw new APIError(undefined, body, undefined, response.headers, type);\n }\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n releaseRequestSignal(controller);\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 iter = ReadableStreamToAsyncIterable(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n async function* iterator() {\n if (consumed) {\n throw new AnthropicError('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 (done)\n continue;\n if (line)\n yield JSON.parse(line);\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n releaseRequestSignal(controller);\n }\n }\n return new Stream(iterator, controller, client);\n }\n [(_Stream_client = new WeakMap(), 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 */\n tee() {\n const left = [];\n const right = [];\n const iterator = this.iterator();\n const teeIterator = (queue) => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next();\n left.push(result);\n right.push(result);\n }\n return queue.shift();\n },\n };\n };\n return [\n new Stream(() => teeIterator(left), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n new Stream(() => teeIterator(right), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n ];\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 */\n toReadableStream() {\n const self = this;\n let iter;\n return makeReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done)\n return ctrl.close();\n const bytes = encodeUTF8(JSON.stringify(value) + '\\n');\n ctrl.enqueue(bytes);\n }\n catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\nexport async function* _iterSSEMessages(response, controller) {\n if (!response.body) {\n controller.abort();\n if (typeof globalThis.navigator !== 'undefined' &&\n globalThis.navigator.product === 'ReactNative') {\n throw new AnthropicError(`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 AnthropicError(`Attempted to iterate over a response with no body`);\n }\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(response.body);\n for await (const sseChunk of iterSSEChunks(iter)) {\n for (const line of lineDecoder.decode(sseChunk)) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n }\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n}\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 */\nasync function* iterSSEChunks(iterator) {\n let data = new Uint8Array();\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n // Yield views, not copies, so a chunk holding many events is not re-copied\n // once per event. This relies on newData never being written again.\n let patternIndex;\n while ((patternIndex = findDoubleNewlineIndex(data)) !== -1) {\n yield data.subarray(0, patternIndex);\n data = data.subarray(patternIndex);\n }\n }\n if (data.length > 0) {\n yield data;\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.substring(0, line.length - 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 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 let [fieldname, _, value] = partition(line, ':');\n if (value.startsWith(' ')) {\n value = value.substring(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}\nfunction partition(str, delimiter) {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n return [str, '', ''];\n}\n//# sourceMappingURL=streaming.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { Stream } from \"../core/streaming.mjs\";\nimport { formatRequestDetails, loggerFor } from \"./utils/log.mjs\";\nimport { releaseRequestSignal } from \"./request-signal.mjs\";\nexport async function defaultParseResponse(client, props) {\n const { response, requestLogID, retryOfRequestLogID, startTime } = props;\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 return Stream.fromSSEResponse(response, props.controller, client);\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();\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 json = await response.json();\n return addResponseIDs(json, response);\n }\n const text = await response.text();\n return text;\n })().finally(() => {\n // The body is settled (or parsing threw), so the caller-signal abort\n // listener has nothing left to cancel. Streams release in their own\n // teardown; a raw Response (`__binaryResponse`) keeps the listener so\n // aborting an in-flight download still works.\n if (!props.options.stream && !props.options.__binaryResponse) {\n releaseRequestSignal(props.controller);\n }\n });\n loggerFor(client).debug(`[${requestLogID}] response parsed`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }));\n return body;\n}\nexport function addResponseIDs(value, response) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n return Object.defineProperties(value, {\n _request_id: { value: response.headers.get('request-id'), enumerable: false },\n _workspace_id: { value: response.headers.get('anthropic-workspace-id'), enumerable: false },\n });\n}\n//# sourceMappingURL=parse.mjs.map","import { castToError, isAbortError } from \"../internal/errors.mjs\";\nimport { addResponseIDs } from \"../internal/parse.mjs\";\nimport { defaultLogger, loggerFor } from \"../internal/utils/log.mjs\";\nimport { AnthropicError, APIConnectionError, RetryableError } from \"./error.mjs\";\nimport { Stream } from \"./streaming.mjs\";\n/**\n * Errors thrown by the underlying `fetch`, as opposed to by a middleware.\n *\n * Tracked so the client can apply its connection-error retry policy to\n * transport failures while letting errors thrown by middleware propagate to\n * the caller untouched.\n */\nconst fetchOriginErrors = new WeakSet();\n/** Whether `err` was thrown by the underlying `fetch` rather than by a middleware. */\nexport function isFetchOriginError(err) {\n return typeof err === 'object' && err !== null && fetchOriginErrors.has(err);\n}\n/**\n * Whether an error thrown by middleware should stay on the SDK's\n * connection-error retry policy: fetch-origin, abort, `APIConnectionError`, or\n * `RetryableError` — checked through the error's `cause` chain.\n */\nexport function isRetryableError(err) {\n const seen = new Set(); // guard against `cause` cycles\n while (typeof err === 'object' && err !== null && !seen.has(err)) {\n seen.add(err);\n if (isFetchOriginError(err) ||\n isAbortError(err) ||\n err instanceof APIConnectionError ||\n err instanceof RetryableError) {\n return true;\n }\n err = err.cause;\n }\n return false;\n}\n/**\n * Wraps `fetchFn` so each call runs through `middleware`, keeping the same\n * call signature as `fetch` itself.\n *\n * With no middleware, calls are passed straight through to `fetchFn`.\n * Otherwise the arguments are normalized into an {@link APIRequest} (headers\n * coerced to a `Headers` instance, URL stringified) before entering the\n * chain. The chain is composed per call, so mutations of a `middleware`\n * array are picked up by later requests.\n *\n * `options` — the SDK request options behind this call, when there are any —\n * is surfaced to middleware as `ctx.options` and drives `ctx.parse`.\n *\n * `client` supplies `ctx.logger` (the client's level-filtered logger);\n * without it, `ctx.logger` falls back to the client defaults: `console`,\n * filtered to `ANTHROPIC_LOG` or `'warn'`.\n */\nexport function wrapFetchWithMiddleware(fetchFn, middleware, options, client) {\n return async (url, init = {}) => {\n if (middleware.length === 0) {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return fetchFn.call(undefined, url, init);\n }\n const headers = init.headers instanceof Headers ? init.headers : new Headers(init.headers);\n const response = await applyMiddleware(fetchFn, middleware, options, client)({\n ...init,\n headers,\n url: typeof url === 'string' ? url\n : url instanceof URL ? url.href\n : url.url,\n });\n // Catch a footgun before the client tries to read the body itself and\n // fails with a confusing low-level stream error.\n if (response.bodyUsed || response.body?.locked) {\n throw new AnthropicError('middleware consumed the response body; use response.clone() to inspect it, ' +\n 'or return new Response(body, response) to consume and replace it');\n }\n return response;\n };\n}\n/**\n * Creates the {@link MiddlewareContext} shared by every middleware in one chain.\n */\nfunction createMiddlewareContext(options, client) {\n // Keyed on the Response so each `next()` call's response (e.g. with custom\n // retries, or a middleware swapping in a replacement) parses independently,\n // while several middleware parsing the same response share a single read.\n const cache = new WeakMap();\n return {\n options,\n // Resolved per chain, so changes to the client's `logLevel`/`logger`\n // apply to subsequent requests.\n logger: client ? loggerFor(client) : defaultLogger(),\n parse(response) {\n // Streams are single-consumer, so caching one would hand later callers\n // an already-consumed stream; every call gets a fresh clone-backed one.\n if (options?.stream && response.ok) {\n return parseMiddlewareResponse(response, options, client);\n }\n let parsed = cache.get(response);\n if (!parsed) {\n parsed = parseMiddlewareResponse(response, options, client);\n cache.set(response, parsed);\n }\n return parsed;\n },\n };\n}\n/**\n * Mirrors the client's own response parsing (`defaultParseResponse` in\n * `internal/parse.ts`), reading through a clone so the body stays available\n * to the rest of the chain and the client itself.\n */\nasync function parseMiddlewareResponse(response, options, client) {\n if (response.bodyUsed || response.body?.locked) {\n throw new AnthropicError('cannot ctx.parse() a response whose body was already consumed; ' +\n 'call ctx.parse() instead of reading the body, or read via response.clone()');\n }\n // Error responses parse as JSON/text below — the SDK only stream-parses\n // successful responses, and middleware typically wants the error body.\n if (options?.stream && response.ok) {\n // A fresh controller rather than the request's own: aborting (or\n // `break`ing out of) the middleware's stream must not cancel the\n // in-flight request the client is still reading.\n return Stream.fromSSEResponse(response.clone(), new AbortController(), client);\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 (options?.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n if (response.headers.get('content-length') === '0') {\n // if there is no content we can't do anything\n return undefined;\n }\n return addResponseIDs(await response.clone().json(), response);\n }\n return await response.clone().text();\n}\n/**\n * Composes `middleware` around `fetchFn` and returns the entry point of the chain.\n */\nexport function applyMiddleware(fetchFn, middleware, options, client) {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n let next = async ({ url, ...init }) => {\n try {\n return await fetchFn.call(undefined, url, init);\n }\n catch (err) {\n // Brand the error as fetch-origin, normalizing with `castToError` first since a\n // WeakSet can't hold primitives and the brand must be on the same object the\n // client's own `castToError` will later pass through.\n const error = castToError(err);\n fetchOriginErrors.add(error);\n throw error;\n }\n };\n const ctx = createMiddlewareContext(options, client);\n for (let i = middleware.length - 1; i >= 0; i--) {\n const mw = middleware[i];\n const nextInner = next;\n next = async (request) => mw(request, nextInner, ctx);\n }\n return next;\n}\n//# sourceMappingURL=middleware.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _APIPromise_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { defaultParseResponse, addResponseIDs, } 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) => addResponseIDs(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 `request-id` header which is useful for debugging requests and resporting\n * issues to Anthropic.\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 {\n data,\n response,\n request_id: response.headers.get('request-id'),\n workspace_id: response.headers.get('anthropic-workspace-id'),\n };\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","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _AbstractPage_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { AnthropicError } 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 AnthropicError('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}\nexport class Page 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.first_id = body.first_id || null;\n this.last_id = body.last_id || null;\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 if (this.options.query?.['before_id']) {\n // in reverse\n const first_id = this.first_id;\n if (!first_id) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n before_id: first_id,\n },\n };\n }\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_id: 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_page = body.next_page || null;\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.next_page;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n page_token: cursor,\n },\n };\n }\n}\nexport class PageCursor extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.next_page = body.next_page || null;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n nextPageRequestOptions() {\n const cursor = this.next_page;\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}\nexport class BidirectionalPageCursor extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.next_page = body.next_page || null;\n this.prev_page = body.prev_page || null;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n nextPageRequestOptions() {\n const cursor = this.next_page;\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 { ReadableStreamFrom } from \"./shims.mjs\";\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis;\n const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error('`File` is not defined as a global, which is required for file uploads.' +\n (isOldNode ?\n \" Update to Node 20 LTS or newer, 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 */\nexport function makeFile(fileBits, fileName, options) {\n checkFileSupport();\n return new File(fileBits, fileName ?? 'unknown_file', options);\n}\nexport function getName(value, stripPath) {\n const val = (typeof value === 'object' &&\n value !== null &&\n (('name' in value && value.name && String(value.name)) ||\n ('url' in value && value.url && String(value.url)) ||\n ('filename' in value && value.filename && String(value.filename)) ||\n ('path' in value && value.path && String(value.path)))) ||\n '';\n return stripPath ? val.split(/[\\\\/]/).pop() || undefined : val;\n}\nexport const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nexport const maybeMultipartFormRequestOptions = async (opts, fetch) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nexport const multipartFormRequestOptions = async (opts, fetch, stripFilenames = true) => {\n return { ...opts, body: await createForm(opts.body, fetch, stripFilenames) };\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 const fetch = typeof fetchObject === 'function' ? fetchObject : fetchObject.fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached)\n return cached;\n const promise = (async () => {\n try {\n const FetchResponse = ('Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor);\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}\nexport const createForm = async (body, fetch, stripFilenames = true) => {\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, stripFilenames)));\n return form;\n};\n// Blob, not File: bare Blobs and Bun.file() results don't inherit from File.\nconst isUploadable = (value) => typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || value instanceof Blob);\nconst hasUploadableValue = (value) => {\n if (isUploadable(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value, stripFilenames) => {\n if (value === undefined)\n return;\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 // TODO: make nested formats configurable\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 let options = {};\n const contentType = value.headers.get('Content-Type');\n if (contentType) {\n options = { type: contentType };\n }\n form.append(key, makeFile([await value.blob()], getName(value, stripFilenames), options));\n }\n else if (isAsyncIterable(value)) {\n form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value, stripFilenames)));\n }\n else if (value instanceof Blob) {\n form.append(key, makeFile([value], getName(value, stripFilenames) || undefined, { type: value.type }));\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry, stripFilenames)));\n }\n else if (typeof value.then === 'function') {\n throw new TypeError(`Received a Promise for \"${key}\"; await it first, e.g. \\`await toFile(...)\\``);\n }\n else if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {\n throw new TypeError(`Received ${value.constructor.name} for \"${key}\"; to upload raw bytes, wrap them with \\`await toFile(bytes, 'filename')\\``);\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop, stripFilenames)));\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 } from \"./uploads.mjs\";\nimport { 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';\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, BlobLikePart, or AsyncIterable of BlobLikeParts\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nexport async function toFile(value, name, options) {\n checkFileSupport();\n // If it's a promise, resolve it.\n value = await value;\n name || (name = getName(value, true));\n // If we've been given a `File` we don't need to do anything if the name / options\n // have not been customised.\n if (isFileLike(value)) {\n if (value instanceof File && name == null && options == null) {\n return value;\n }\n return makeFile([await value.arrayBuffer()], name ?? value.name, {\n type: value.type,\n lastModified: value.lastModified,\n ...options,\n });\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop());\n return makeFile(await getBytes(blob), name, options);\n }\n const parts = await getBytes(value);\n if (!options?.type) {\n const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return makeFile(parts, name, options);\n}\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : await value.arrayBuffer());\n }\n else if (isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk))); // TODO, consider validating?\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 const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n//# sourceMappingURL=to-file.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport class APIResource {\n constructor(client) {\n this._client = client;\n }\n}\n//# sourceMappingURL=resource.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { isReadonlyArray } from \"./utils/values.mjs\";\nconst brand_privateNullableHeaders = Symbol.for('brand.privateNullableHeaders');\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 if (headers instanceof Headers) {\n iter = headers.entries();\n }\n else if (isReadonlyArray(headers)) {\n iter = 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 the clear sentinel before adding the new values, so the\n // consumer can tell this synthetic \"clear-before-set\" apart from a\n // user's explicit `null` (= remove).\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, clearSentinel];\n }\n yield [name, value];\n }\n }\n}\n/** Distinguishes iterateHeaders' synthetic clear-before-set from a user `null`. */\nconst clearSentinel = Symbol('clear');\n/**\n * Headers whose values accumulate across {@link buildHeaders} sources instead\n * of the later source's value replacing the earlier one. Values are\n * comma-appended (deduplicated, order-preserving) into a single header line.\n */\nexport const APPEND_HEADERS = new Set(['x-stainless-helper']);\nexport const appendHeaderValue = (existing, addition) => {\n const tokens = existing ?\n existing\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean)\n : [];\n for (const tok of addition.split(',').map((t) => t.trim())) {\n if (tok && !tokens.includes(tok))\n tokens.push(tok);\n }\n return tokens.join(', ');\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 const lowerName = name.toLowerCase();\n if (APPEND_HEADERS.has(lowerName)) {\n // Accumulating headers ignore the synthetic clear-before-set; an\n // explicit `null` (any source shape) is honored as removal.\n if (value === clearSentinel)\n continue;\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.set(name, appendHeaderValue(targetHeaders.get(name), value));\n nullHeaders.delete(lowerName);\n }\n continue;\n }\n if (value === clearSentinel || !seenHeaders.has(lowerName)) {\n targetHeaders.delete(name);\n seenHeaders.add(lowerName);\n if (value === clearSentinel)\n continue;\n }\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.append(name, 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","import { AnthropicError } from \"../../core/error.mjs\";\n/**\n * Percent-encode everything that isn't safe to have in a path without encoding safe chars.\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));\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 let postPath = false;\n const invalidSegments = [];\n const path = statics.reduce((previousValue, currentValue, 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 (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: previousValue.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 return previousValue + currentValue + (index === params.length ? '' : encoded);\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 const underline = invalidSegments.reduce((acc, segment) => {\n const spaces = ' '.repeat(segment.start - lastEnd);\n const arrows = '^'.repeat(segment.length);\n lastEnd = segment.start + segment.length;\n return acc + spaces + arrows;\n }, '');\n throw new AnthropicError(`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 * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n//# sourceMappingURL=path.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { PageCursor } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class DeploymentRuns extends APIResource {\n /**\n * Get Deployment Run\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeploymentRun =\n * await client.beta.deploymentRuns.retrieve(\n * 'deployment_run_id',\n * );\n * ```\n */\n retrieve(deploymentRunID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/deployment_runs/${deploymentRunID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Deployment Runs\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsDeploymentRun of client.beta.deploymentRuns.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/deployment_runs?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=deployment-runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { PageCursor } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Deployments extends APIResource {\n /**\n * Create Deployment\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeployment =\n * await client.beta.deployments.create({\n * agent: 'string',\n * environment_id: 'x',\n * initial_events: [\n * {\n * content: [\n * {\n * text: 'Where is my order #1234?',\n * type: 'text',\n * },\n * ],\n * type: 'user.message',\n * },\n * ],\n * name: 'x',\n * });\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/deployments?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Get Deployment\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeployment =\n * await client.beta.deployments.retrieve(\n * 'depl_011CZkZcDH3vPqd7xnEfwTai',\n * );\n * ```\n */\n retrieve(deploymentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/deployments/${deploymentID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update Deployment\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeployment =\n * await client.beta.deployments.update(\n * 'depl_011CZkZcDH3vPqd7xnEfwTai',\n * );\n * ```\n */\n update(deploymentID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/deployments/${deploymentID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Deployments\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsDeployment of client.beta.deployments.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/deployments?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive Deployment\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeployment =\n * await client.beta.deployments.archive(\n * 'depl_011CZkZcDH3vPqd7xnEfwTai',\n * );\n * ```\n */\n archive(deploymentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/deployments/${deploymentID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Pause Deployment\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeployment =\n * await client.beta.deployments.pause(\n * 'depl_011CZkZcDH3vPqd7xnEfwTai',\n * );\n * ```\n */\n pause(deploymentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/deployments/${deploymentID}/pause?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Run Deployment Now\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeploymentRun =\n * await client.beta.deployments.run(\n * 'depl_011CZkZcDH3vPqd7xnEfwTai',\n * );\n * ```\n */\n run(deploymentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/deployments/${deploymentID}/run?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Unpause Deployment\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeployment =\n * await client.beta.deployments.unpause(\n * 'depl_011CZkZcDH3vPqd7xnEfwTai',\n * );\n * ```\n */\n unpause(deploymentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/deployments/${deploymentID}/unpause?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=deployments.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { PageCursor } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Dreams extends APIResource {\n /**\n * Create a Dream\n *\n * @example\n * ```ts\n * const betaDream = await client.beta.dreams.create({\n * inputs: [{ memory_store_id: 'x', type: 'memory_store' }],\n * model: 'string',\n * });\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/dreams?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'dreaming-2026-04-21'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Get a Dream\n *\n * @example\n * ```ts\n * const betaDream = await client.beta.dreams.retrieve(\n * 'dream_id',\n * );\n * ```\n */\n retrieve(dreamID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/dreams/${dreamID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'dreaming-2026-04-21'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Dreams\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaDream of client.beta.dreams.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/dreams?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'dreaming-2026-04-21'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive a Dream\n *\n * @example\n * ```ts\n * const betaDream = await client.beta.dreams.archive(\n * 'dream_id',\n * );\n * ```\n */\n archive(dreamID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/dreams/${dreamID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'dreaming-2026-04-21'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Cancel a Dream\n *\n * @example\n * ```ts\n * const betaDream = await client.beta.dreams.cancel(\n * 'dream_id',\n * );\n * ```\n */\n cancel(dreamID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/dreams/${dreamID}/cancel?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'dreaming-2026-04-21'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=dreams.mjs.map","/**\n * Single source of truth for the `x-stainless-helper` telemetry header — the\n * key, the closed value vocabulary, and per-object helper tagging. The\n * append-don't-clobber merge for the header itself lives in\n * {@link import('../internal/headers').buildHeaders} via `APPEND_HEADERS`.\n */\n/**\n * Telemetry header naming the SDK helper(s) a request came from. Always this\n * lowercase form; `buildHeaders` matches it case-insensitively for its append\n * semantics, but a single canonical casing keeps every call site greppable.\n */\nexport const STAINLESS_HELPER_HEADER = 'x-stainless-helper';\n/** Telemetry header naming the SDK method (e.g. `stream`) in use. */\nexport const STAINLESS_HELPER_METHOD_HEADER = 'x-stainless-helper-method';\n/**\n * The `{ 'x-stainless-helper': value }` header dict, for passing into\n * `buildHeaders` (which comma-appends `x-stainless-helper` across sources)\n * or as `defaultHeaders`/per-request `headers`.\n */\nexport function helperHeader(value) {\n return { [STAINLESS_HELPER_HEADER]: value };\n}\n/**\n * Symbol used to mark objects created by SDK helpers for tracking.\n * The value is the helper name (e.g., 'mcpTool', 'betaZodTool').\n */\nexport const SDK_HELPER_SYMBOL = Symbol('anthropic.sdk.stainlessHelper');\nexport function wasCreatedByStainlessHelper(value) {\n return typeof value === 'object' && value !== null && SDK_HELPER_SYMBOL in value;\n}\n/**\n * Collects helper names from tools and messages arrays.\n * Returns a deduplicated array of helper names found.\n */\nexport function collectStainlessHelpers(tools, messages) {\n const helpers = new Set();\n // Collect from tools\n if (tools) {\n for (const tool of tools) {\n if (wasCreatedByStainlessHelper(tool)) {\n helpers.add(tool[SDK_HELPER_SYMBOL]);\n }\n }\n }\n // Collect from messages and their content blocks\n if (messages) {\n for (const message of messages) {\n if (wasCreatedByStainlessHelper(message)) {\n helpers.add(message[SDK_HELPER_SYMBOL]);\n }\n const content = message.content;\n if (Array.isArray(content)) {\n for (const block of content) {\n if (wasCreatedByStainlessHelper(block)) {\n helpers.add(block[SDK_HELPER_SYMBOL]);\n }\n }\n }\n }\n }\n return Array.from(helpers);\n}\n/**\n * Builds x-stainless-helper header value from tools and messages.\n * Returns an empty object if no helpers are found.\n */\nexport function stainlessHelperHeader(tools, messages) {\n const helpers = collectStainlessHelpers(tools, messages);\n if (helpers.length === 0)\n return {};\n return { [STAINLESS_HELPER_HEADER]: helpers.join(', ') };\n}\n/**\n * Builds x-stainless-helper header value from a file object.\n * Returns an empty object if the file is not marked with a helper.\n */\nexport function stainlessHelperHeaderFromFile(file) {\n if (wasCreatedByStainlessHelper(file)) {\n return { [STAINLESS_HELPER_HEADER]: file[SDK_HELPER_SYMBOL] };\n }\n return {};\n}\n//# sourceMappingURL=stainless-helper-header.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { PageCursor } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { stainlessHelperHeaderFromFile } from \"../../internal/stainless-helper-header.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * List Files\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaFileMetadata of client.beta.files.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/files?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete File\n *\n * @example\n * ```ts\n * const betaDeletedFile = await client.beta.files.delete(\n * 'file_id',\n * );\n * ```\n */\n delete(fileID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.delete(path `/v1/files/${fileID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Download File\n *\n * @example\n * ```ts\n * const response = await client.beta.files.download(\n * 'file_id',\n * );\n *\n * const content = await response.blob();\n * console.log(content);\n * ```\n */\n download(fileID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/files/${fileID}/content?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n Accept: 'application/binary',\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n __binaryResponse: true,\n });\n }\n /**\n * Get File Metadata\n *\n * @example\n * ```ts\n * const betaFileMetadata =\n * await client.beta.files.retrieveMetadata('file_id');\n * ```\n */\n retrieveMetadata(fileID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/files/${fileID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Upload File\n *\n * @example\n * ```ts\n * const betaFileMetadata = await client.beta.files.upload({\n * file: fs.createReadStream('path/to/file'),\n * });\n * ```\n */\n upload(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/files?beta=true', multipartFormRequestOptions({\n body,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n stainlessHelperHeaderFromFile(body.file),\n options?.headers,\n ]),\n }, this._client));\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Models extends APIResource {\n /**\n * Get a specific model.\n *\n * The Models API response can be used to determine information about a specific\n * model or resolve a model alias to a model ID.\n *\n * @example\n * ```ts\n * const betaModelInfo = await client.beta.models.retrieve(\n * 'model_id',\n * );\n * ```\n */\n retrieve(modelID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/models/${modelID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List available models.\n *\n * The Models API response can be used to determine which models are available for\n * use in the API. More recently released models are listed first.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaModelInfo of client.beta.models.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/models?beta=true', (Page), {\n query,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { PageCursor } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class UserProfiles extends APIResource {\n /**\n * Create User Profile\n *\n * @example\n * ```ts\n * const betaUserProfile =\n * await client.beta.userProfiles.create();\n * ```\n */\n create(params, options) {\n const { betas, ...body } = params;\n return this._client.post('/v1/user_profiles?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(betas ?? []), 'user-profiles-2026-08-18'].toString() },\n options?.headers,\n ]),\n });\n }\n /**\n * Get User Profile\n *\n * @example\n * ```ts\n * const betaUserProfile =\n * await client.beta.userProfiles.retrieve(\n * 'uprof_011CZkZCu8hGbp5mYRQgUmz9',\n * );\n * ```\n */\n retrieve(userProfileID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.get(path `/v1/user_profiles/${userProfileID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(betas ?? []), 'user-profiles-2026-08-18'].toString() },\n options?.headers,\n ]),\n });\n }\n /**\n * Update User Profile\n *\n * @example\n * ```ts\n * const betaUserProfile =\n * await client.beta.userProfiles.update(\n * 'uprof_011CZkZCu8hGbp5mYRQgUmz9',\n * );\n * ```\n */\n update(userProfileID, params, options) {\n const { betas, ...body } = params;\n return this._client.post(path `/v1/user_profiles/${userProfileID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(betas ?? []), 'user-profiles-2026-08-18'].toString() },\n options?.headers,\n ]),\n });\n }\n /**\n * List User Profiles\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaUserProfile of client.beta.userProfiles.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList('/v1/user_profiles?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(betas ?? []), 'user-profiles-2026-08-18'].toString() },\n options?.headers,\n ]),\n });\n }\n /**\n * Create Enrollment URL\n *\n * @example\n * ```ts\n * const betaUserProfileEnrollmentURL =\n * await client.beta.userProfiles.createEnrollmentURL(\n * 'uprof_011CZkZCu8hGbp5mYRQgUmz9',\n * );\n * ```\n */\n createEnrollmentURL(userProfileID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.post(path `/v1/user_profiles/${userProfileID}/enrollment_url?beta=true`, {\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(betas ?? []), 'user-profiles-2026-08-18'].toString() },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=user-profiles.mjs.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package base64 implements Base64 encoding and decoding.\n */\n// Invalid character used in decoding to indicate\n// that the character to decode is out of range of\n// alphabet and cannot be decoded.\nvar INVALID_BYTE = 256;\n/**\n * Implements standard Base64 encoding.\n *\n * Operates in constant time.\n */\nvar Coder = /** @class */ (function () {\n // TODO(dchest): methods to encode chunk-by-chunk.\n function Coder(_paddingCharacter) {\n if (_paddingCharacter === void 0) { _paddingCharacter = \"=\"; }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder.prototype.encodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder.prototype.encode = function (data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n out += this._encodeByte((c >>> 1 * 6) & 63);\n out += this._encodeByte((c >>> 0 * 6) & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n if (left === 2) {\n out += this._encodeByte((c >>> 1 * 6) & 63);\n }\n else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder.prototype.maxDecodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder.prototype.decodedLength = function (s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder.prototype.decode = function (s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n out[op++] = (v1 << 4) | (v2 >>> 2);\n out[op++] = (v2 << 6) | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = (v1 << 4) | (v2 >>> 2);\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v2 << 6) | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n // Standard encoding have the following encoded/decoded ranges,\n // which we need to convert between.\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + /\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 43 47\n //\n // Encode 6 bits in b into a new character.\n Coder.prototype._encodeByte = function (b) {\n // Encoding uses constant time operations as follows:\n //\n // 1. Define comparison of A with B using (A - B) >>> 8:\n // if A > B, then result is positive integer\n // if A <= B, then result is 0\n //\n // 2. Define selection of C or 0 using bitwise AND: X & C:\n // if X == 0, then result is 0\n // if X != 0, then result is C\n //\n // 3. Start with the smallest comparison (b >= 0), which is always\n // true, so set the result to the starting ASCII value (65).\n //\n // 4. Continue comparing b to higher ASCII values, and selecting\n // zero if comparison isn't true, otherwise selecting a value\n // to add to result, which:\n //\n // a) undoes the previous addition\n // b) provides new value to add\n //\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47);\n return String.fromCharCode(result);\n };\n // Decode a character code into a byte.\n // Must return 256 if character is out of alphabet range.\n Coder.prototype._decodeChar = function (c) {\n // Decoding works similar to encoding: using the same comparison\n // function, but now it works on ranges: result is always incremented\n // by value, but this value becomes zero if the range is not\n // satisfied.\n //\n // Decoding starts with invalid value, 256, which is then\n // subtracted when the range is satisfied. If none of the ranges\n // apply, the function returns 256, which is then checked by\n // the caller to throw error.\n var result = INVALID_BYTE; // start with invalid character\n // c == 43 (c > 42 and c < 44)\n result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62);\n // c == 47 (c > 46 and c < 48)\n result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n Coder.prototype._getPaddingLength = function (s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder;\n}());\nexports.Coder = Coder;\nvar stdCoder = new Coder();\nfunction encode(data) {\n return stdCoder.encode(data);\n}\nexports.encode = encode;\nfunction decode(s) {\n return stdCoder.decode(s);\n}\nexports.decode = decode;\n/**\n * Implements URL-safe Base64 encoding.\n * (Same as Base64, but '+' is replaced with '-', and '/' with '_').\n *\n * Operates in constant time.\n */\nvar URLSafeCoder = /** @class */ (function (_super) {\n __extends(URLSafeCoder, _super);\n function URLSafeCoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // URL-safe encoding have the following encoded/decoded ranges:\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 45 95\n //\n URLSafeCoder.prototype._encodeByte = function (b) {\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95);\n return String.fromCharCode(result);\n };\n URLSafeCoder.prototype._decodeChar = function (c) {\n var result = INVALID_BYTE;\n // c == 45 (c > 44 and c < 46)\n result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62);\n // c == 95 (c > 94 and c < 96)\n result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n return URLSafeCoder;\n}(Coder));\nexports.URLSafeCoder = URLSafeCoder;\nvar urlSafeCoder = new URLSafeCoder();\nfunction encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n}\nexports.encodeURLSafe = encodeURLSafe;\nfunction decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n}\nexports.decodeURLSafe = decodeURLSafe;\nexports.encodedLength = function (length) {\n return stdCoder.encodedLength(length);\n};\nexports.maxDecodedLength = function (length) {\n return stdCoder.maxDecodedLength(length);\n};\nexports.decodedLength = function (s) {\n return stdCoder.decodedLength(s);\n};\n//# sourceMappingURL=base64.js.map","(function (root, factory) {\n // Hack to make all exports of this module sha256 function object properties.\n var exports = {};\n factory(exports);\n var sha256 = exports[\"default\"];\n for (var k in exports) {\n sha256[k] = exports[k];\n }\n \n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = sha256;\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return sha256; }); \n } else {\n root.sha256 = sha256;\n }\n})(this, function(exports) {\n\"use strict\";\nexports.__esModule = true;\n// SHA-256 (+ HMAC and PBKDF2) for JavaScript.\n//\n// Written in 2014-2016 by Dmitry Chestnykh.\n// Public domain, no warranty.\n//\n// Functions (accept and return Uint8Arrays):\n//\n// sha256(message) -> hash\n// sha256.hmac(key, message) -> mac\n// sha256.pbkdf2(password, salt, rounds, dkLen) -> dk\n//\n// Classes:\n//\n// new sha256.Hash()\n// new sha256.HMAC(key)\n//\nexports.digestLength = 32;\nexports.blockSize = 64;\n// SHA-256 constants\nvar K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n var a, b, c, d, e, f, g, h, u, i, j, t1, t2;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] = (((p[j] & 0xff) << 24) | ((p[j + 1] & 0xff) << 16) |\n ((p[j + 2] & 0xff) << 8) | (p[j + 3] & 0xff));\n }\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (i = 0; i < 64; i++) {\n t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n// Hash implements SHA256 hash algorithm.\nvar Hash = /** @class */ (function () {\n function Hash() {\n this.digestLength = exports.digestLength;\n this.blockSize = exports.blockSize;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this.state = new Int32Array(8); // hash state\n this.temp = new Int32Array(64); // temporary state\n this.buffer = new Uint8Array(128); // buffer for data to hash\n this.bufferLength = 0; // number of bytes in buffer\n this.bytesHashed = 0; // number of total bytes hashed\n this.finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n // Resets hash state making it possible\n // to re-use this instance to hash other data.\n Hash.prototype.reset = function () {\n this.state[0] = 0x6a09e667;\n this.state[1] = 0xbb67ae85;\n this.state[2] = 0x3c6ef372;\n this.state[3] = 0xa54ff53a;\n this.state[4] = 0x510e527f;\n this.state[5] = 0x9b05688c;\n this.state[6] = 0x1f83d9ab;\n this.state[7] = 0x5be0cd19;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n };\n // Cleans internal buffers and re-initializes hash state.\n Hash.prototype.clean = function () {\n for (var i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (var i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n };\n // Updates hash state with the given data.\n //\n // Optionally, length of the data can be specified to hash\n // fewer bytes than data.length.\n //\n // Throws error when trying to update already finalized hash:\n // instance must be reset to use it again.\n Hash.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n // Finalizes hash state and puts hash into out.\n //\n // If hash was already finalized, puts the same value.\n Hash.prototype.finish = function (out) {\n if (!this.finished) {\n var bytesHashed = this.bytesHashed;\n var left = this.bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this.buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = (bitLenHi >>> 24) & 0xff;\n this.buffer[padLength - 7] = (bitLenHi >>> 16) & 0xff;\n this.buffer[padLength - 6] = (bitLenHi >>> 8) & 0xff;\n this.buffer[padLength - 5] = (bitLenHi >>> 0) & 0xff;\n this.buffer[padLength - 4] = (bitLenLo >>> 24) & 0xff;\n this.buffer[padLength - 3] = (bitLenLo >>> 16) & 0xff;\n this.buffer[padLength - 2] = (bitLenLo >>> 8) & 0xff;\n this.buffer[padLength - 1] = (bitLenLo >>> 0) & 0xff;\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n this.finished = true;\n }\n for (var i = 0; i < 8; i++) {\n out[i * 4 + 0] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return this;\n };\n // Returns the final hash digest.\n Hash.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._saveState = function (out) {\n for (var i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._restoreState = function (from, bytesHashed) {\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n };\n return Hash;\n}());\nexports.Hash = Hash;\n// HMAC implements HMAC-SHA256 message authentication algorithm.\nvar HMAC = /** @class */ (function () {\n function HMAC(key) {\n this.inner = new Hash();\n this.outer = new Hash();\n this.blockSize = this.inner.blockSize;\n this.digestLength = this.inner.digestLength;\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n (new Hash()).update(key).finish(pad).clean();\n }\n else {\n for (var i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n this.inner.update(pad);\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n this.outer.update(pad);\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n for (var i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n // Returns HMAC state to the state initialized with key\n // to make it possible to run HMAC over the other data with the same\n // key without creating a new instance.\n HMAC.prototype.reset = function () {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n };\n // Cleans HMAC state.\n HMAC.prototype.clean = function () {\n for (var i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n };\n // Updates state with provided data.\n HMAC.prototype.update = function (data) {\n this.inner.update(data);\n return this;\n };\n // Finalizes HMAC and puts the result in out.\n HMAC.prototype.finish = function (out) {\n if (this.outer.finished) {\n this.outer.finish(out);\n }\n else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n };\n // Returns message authentication code.\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n// Returns SHA256 hash of data.\nfunction hash(data) {\n var h = (new Hash()).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n// Function hash is both available as module.hash and as default export.\nexports[\"default\"] = hash;\n// Returns HMAC-SHA256 of data under the key.\nfunction hmac(key, data) {\n var h = (new HMAC(key)).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n// Fills hkdf buffer like this:\n// T(1) = HMAC-Hash(PRK, T(0) | info | 0x01)\nfunction fillBuffer(buffer, hmac, info, counter) {\n // Counter is a byte value: check if it overflowed.\n var num = counter[0];\n if (num === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (num > 1) {\n hmac.update(buffer);\n }\n // Hash in info if it exists.\n if (info) {\n hmac.update(info);\n }\n // Hash in the counter.\n hmac.update(counter);\n // Output result to buffer and clean HMAC instance.\n hmac.finish(buffer);\n // Increment counter inside typed array, this works properly.\n counter[0]++;\n}\nvar hkdfSalt = new Uint8Array(exports.digestLength); // Filled with zeroes.\nfunction hkdf(key, salt, info, length) {\n if (salt === void 0) { salt = hkdfSalt; }\n if (length === void 0) { length = 32; }\n var counter = new Uint8Array([1]);\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac(salt, key);\n // Initialize HMAC for expanding with extracted key.\n // Ensure no collisions with `hmac` function.\n var hmac_ = new HMAC(okm);\n // Allocate buffer.\n var buffer = new Uint8Array(hmac_.digestLength);\n var bufpos = buffer.length;\n var out = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n if (bufpos === buffer.length) {\n fillBuffer(buffer, hmac_, info, counter);\n bufpos = 0;\n }\n out[i] = buffer[bufpos++];\n }\n hmac_.clean();\n buffer.fill(0);\n counter.fill(0);\n return out;\n}\nexports.hkdf = hkdf;\n// Derives a key from password and salt using PBKDF2-HMAC-SHA256\n// with the given number of iterations.\n//\n// The number of bytes returned is equal to dkLen.\n//\n// (For better security, avoid dkLen greater than hash length - 32 bytes).\nfunction pbkdf2(password, salt, iterations, dkLen) {\n var prf = new HMAC(password);\n var len = prf.digestLength;\n var ctr = new Uint8Array(4);\n var t = new Uint8Array(len);\n var u = new Uint8Array(len);\n var dk = new Uint8Array(dkLen);\n for (var i = 0; i * len < dkLen; i++) {\n var c = i + 1;\n ctr[0] = (c >>> 24) & 0xff;\n ctr[1] = (c >>> 16) & 0xff;\n ctr[2] = (c >>> 8) & 0xff;\n ctr[3] = (c >>> 0) & 0xff;\n prf.reset();\n prf.update(salt);\n prf.update(ctr);\n prf.finish(u);\n for (var j = 0; j < len; j++) {\n t[j] = u[j];\n }\n for (var j = 2; j <= iterations; j++) {\n prf.reset();\n prf.update(u).finish(u);\n for (var k = 0; k < len; k++) {\n t[k] ^= u[k];\n }\n }\n for (var j = 0; j < len && i * len + j < dkLen; j++) {\n dk[i * len + j] = t[j];\n }\n }\n for (var i = 0; i < len; i++) {\n t[i] = u[i] = 0;\n }\n for (var i = 0; i < 4; i++) {\n ctr[i] = 0;\n }\n prf.clean();\n return dk;\n}\nexports.pbkdf2 = pbkdf2;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.timingSafeEqual = timingSafeEqual;\nfunction assert(expr, msg = \"\") {\n if (!expr) {\n throw new Error(msg);\n }\n}\nfunction timingSafeEqual(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n if (!(a instanceof DataView)) {\n a = new DataView(ArrayBuffer.isView(a) ? a.buffer : a);\n }\n if (!(b instanceof DataView)) {\n b = new DataView(ArrayBuffer.isView(b) ? b.buffer : b);\n }\n assert(a instanceof DataView);\n assert(b instanceof DataView);\n const length = a.byteLength;\n let out = 0;\n let i = -1;\n while (++i < length) {\n out |= a.getUint8(i) ^ b.getUint8(i);\n }\n return out === 0;\n}\n//# sourceMappingURL=timing_safe_equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Webhook = exports.WebhookVerificationError = void 0;\nconst base64 = require(\"@stablelib/base64\");\nconst sha256 = require(\"fast-sha256\");\nconst timing_safe_equal_1 = require(\"./timing_safe_equal\");\nconst WEBHOOK_TOLERANCE_IN_SECONDS = 5 * 60;\nclass ExtendableError extends Error {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, ExtendableError.prototype);\n this.name = \"ExtendableError\";\n this.stack = new Error(message).stack;\n }\n}\nclass WebhookVerificationError extends ExtendableError {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, WebhookVerificationError.prototype);\n this.name = \"WebhookVerificationError\";\n }\n}\nexports.WebhookVerificationError = WebhookVerificationError;\nclass Webhook {\n constructor(secret, options) {\n if ((options === null || options === void 0 ? void 0 : options.format) === \"raw\") {\n if (secret instanceof Uint8Array) {\n this.key = secret;\n }\n else {\n this.key = Uint8Array.from(secret, (c) => c.charCodeAt(0));\n }\n }\n else {\n if (typeof secret !== \"string\") {\n throw new Error(\"Expected secret to be of type string\");\n }\n if (secret.startsWith(Webhook.prefix)) {\n secret = secret.substring(Webhook.prefix.length);\n }\n this.key = base64.decode(secret);\n }\n if (this.key.length === 0) {\n throw new Error(\"Secret can't be empty.\");\n }\n }\n verify(payload, headers, options) {\n var _a;\n const jsonParse = (_a = options === null || options === void 0 ? void 0 : options.jsonParse) !== null && _a !== void 0 ? _a : true;\n const normalizedHeaders = {};\n for (const key of Object.keys(headers)) {\n normalizedHeaders[key.toLowerCase()] = headers[key];\n }\n const msgId = normalizedHeaders[\"webhook-id\"];\n const msgSignature = normalizedHeaders[\"webhook-signature\"];\n const msgTimestamp = normalizedHeaders[\"webhook-timestamp\"];\n if (!msgSignature || !msgId || !msgTimestamp) {\n throw new WebhookVerificationError(\"Missing required headers\");\n }\n const timestamp = this.verifyTimestamp(msgTimestamp);\n const computedSignature = this.sign(msgId, timestamp, payload);\n const expectedSignature = computedSignature.split(\",\")[1];\n const passedSignatures = msgSignature.split(\" \");\n const encoder = new globalThis.TextEncoder();\n for (const versionedSignature of passedSignatures) {\n const [version, signature] = versionedSignature.split(\",\");\n if (version !== \"v1\") {\n continue;\n }\n if ((0, timing_safe_equal_1.timingSafeEqual)(encoder.encode(signature), encoder.encode(expectedSignature))) {\n const payloadString = payload.toString();\n if (payloadString === \"\") {\n return undefined;\n }\n if (jsonParse) {\n return JSON.parse(payloadString);\n }\n else {\n return undefined;\n }\n }\n }\n throw new WebhookVerificationError(\"No matching signature found\");\n }\n sign(msgId, timestamp, payload) {\n if (typeof payload === \"string\") {\n }\n else if (payload.constructor.name === \"Buffer\") {\n payload = payload.toString();\n }\n else {\n throw new Error(\"Expected payload to be of type string or Buffer.\");\n }\n const encoder = new TextEncoder();\n const timestampNumber = Math.floor(timestamp.getTime() / 1000);\n const toSign = encoder.encode(`${msgId}.${timestampNumber}.${payload}`);\n const expectedSignature = base64.encode(sha256.hmac(this.key, toSign));\n return `v1,${expectedSignature}`;\n }\n verifyTimestamp(timestampHeader) {\n const now = Math.floor(Date.now() / 1000);\n const timestamp = parseInt(timestampHeader, 10);\n if (Number.isNaN(timestamp)) {\n throw new WebhookVerificationError(\"Invalid Signature Headers\");\n }\n if (now - timestamp > WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too old\");\n }\n if (timestamp > now + WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too new\");\n }\n return new Date(timestamp * 1000);\n }\n}\nexports.Webhook = Webhook;\nWebhook.prefix = \"whsec_\";\n//# sourceMappingURL=index.js.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { Webhook } from 'standardwebhooks';\nexport class Webhooks extends APIResource {\n /**\n * Parses a webhook payload into an event without verifying its signature. Prefer\n * `unwrap()` unless you have already verified the signature yourself.\n */\n parseUnverified(body) {\n return JSON.parse(body);\n }\n /**\n * Verifies the webhook signature from the `webhook-id`, `webhook-timestamp` and\n * `webhook-signature` headers using your webhook signing key, then parses the\n * payload into an event. Fails if the signature is missing or invalid.\n */\n unwrap(body, options) {\n const headers = options?.headers;\n if (headers == null)\n throw new Error('Webhook headers are required in order to verify the signature');\n const keyStr = options.key === undefined ? this._client.webhookKey : options.key;\n if (!keyStr)\n throw new Error('Webhook key must not be null or empty in order to unwrap');\n const wh = new Webhook(keyStr);\n wh.verify(body, headers);\n return JSON.parse(body);\n }\n}\n//# sourceMappingURL=webhooks.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Versions extends APIResource {\n /**\n * List Agent Versions\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsAgent of client.beta.agents.versions.list(\n * 'agent_011CZkYpogX7uDKUyvBTophP',\n * )) {\n * // ...\n * }\n * ```\n */\n list(agentID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/agents/${agentID}/versions?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=versions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as VersionsAPI from \"./versions.mjs\";\nimport { Versions } from \"./versions.mjs\";\nimport { PageCursor } 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.versions = new VersionsAPI.Versions(this._client);\n }\n /**\n * Create Agent\n *\n * @example\n * ```ts\n * const betaManagedAgentsAgent =\n * await client.beta.agents.create({\n * model: 'claude-opus-5',\n * name: 'My First Agent',\n * });\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/agents?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Get Agent\n *\n * @example\n * ```ts\n * const betaManagedAgentsAgent =\n * await client.beta.agents.retrieve(\n * 'agent_011CZkYpogX7uDKUyvBTophP',\n * );\n * ```\n */\n retrieve(agentID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.get(path `/v1/agents/${agentID}?beta=true`, {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update Agent\n *\n * @example\n * ```ts\n * const betaManagedAgentsAgent =\n * await client.beta.agents.update(\n * 'agent_011CZkYpogX7uDKUyvBTophP',\n * { description: 'updated' },\n * );\n * ```\n */\n update(agentID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/agents/${agentID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Agents\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsAgent of client.beta.agents.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/agents?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive Agent\n *\n * @example\n * ```ts\n * const betaManagedAgentsAgent =\n * await client.beta.agents.archive(\n * 'agent_011CZkYpogX7uDKUyvBTophP',\n * );\n * ```\n */\n archive(agentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/agents/${agentID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nAgents.Versions = Versions;\n//# sourceMappingURL=agents.mjs.map","/**\n * Chain an external {@link AbortSignal} into a local {@link AbortController}:\n * the controller aborts whenever `external` aborts (synchronously if it is\n * already aborted).\n *\n * Returns a cleanup function that detaches the listener. Callers MUST invoke it\n * on their normal teardown path — `{ once: true }` only removes the listener if\n * abort actually fires, so a long-lived `external` signal (e.g. a daemon-wide\n * signal reused across many short-lived controllers) would otherwise leak one\n * listener per controller.\n */\nexport function linkAbort(external, controller) {\n if (!external)\n return () => { };\n if (external.aborted) {\n controller.abort();\n return () => { };\n }\n const onAbort = () => controller.abort();\n external.addEventListener('abort', onAbort);\n return () => external.removeEventListener('abort', onAbort);\n}\n//# sourceMappingURL=abort.mjs.map","import { APIError } from \"../../core/error.mjs\";\n/** True when `e` is an {@link APIError} whose HTTP status equals `code`. */\nexport function isStatus(e, code) {\n return e instanceof APIError && e.status === code;\n}\n/** True when `e` is an {@link APIError} with a 4xx status. */\nexport function is4xx(e) {\n return e instanceof APIError && typeof e.status === 'number' && e.status >= 400 && e.status < 500;\n}\n/**\n * True for a 4xx that the core client's retry policy would *not* retry, i.e. a\n * permanent client error. 408 (request timeout), 409 (lock timeout) and 429\n * (rate limit) are retryable for the base client (`Anthropic.shouldRetry`), so\n * they are not treated as fatal here — keeping helper retry behaviour aligned\n * with the rest of the SDK.\n */\nexport function isFatal4xx(e) {\n return is4xx(e) && !isStatus(e, 408) && !isStatus(e, 409) && !isStatus(e, 429);\n}\n/** Exponential backoff: `baseMs * 2 ** attempt`, clamped to `capMs`. */\nexport function backoff(attempt, baseMs, capMs) {\n return Math.min(baseMs * 2 ** attempt, capMs);\n}\n/** Uniform random delay in the half-open interval `[lowMs, highMs)`. */\nexport function jitter(lowMs, highMs) {\n return lowMs + Math.random() * (highMs - lowMs);\n}\n/**\n * Trim up to 25% off `ms` at random so a fleet of clients backing off after a\n * shared outage does not retry in lockstep — mirrors the jitter the core client\n * applies to its own retry timeout.\n */\nexport function applyJitter(ms) {\n return ms * (1 - Math.random() * 0.25);\n}\n//# sourceMappingURL=backoff.mjs.map","import { AnthropicError } from \"../core/error.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { STAINLESS_HELPER_HEADER, } from \"../internal/stainless-helper-header.mjs\";\n/**\n * Return a `withOptions()` clone of `client` set up for use *by* one of the\n * runner helpers: authenticated with `authToken` as Bearer credentials, with\n * the parent's `X-Api-Key` cleared, and tagged with the helper's\n * `x-stainless-helper` value on every outgoing request.\n *\n * The returned sub-client inherits the parent's full configuration\n * (`baseURL`, `timeout`, `maxRetries`, `fetch`, `fetchOptions`, custom\n * `defaultHeaders`, `defaultQuery`). Overrides applied:\n *\n * - `authToken: authToken` — the new credential.\n * - `apiKey: null` — the parent's `X-Api-Key` is cleared. `withOptions`\n * inherits the parent's `apiKey` by default; without this, both\n * `X-Api-Key` *and* `Authorization: Bearer …` would land on the wire.\n * `client.ts` only triggers the env-var fallback when `apiKey === undefined`,\n * so explicit `null` is honored.\n * - `credentials: undefined` — opts the clone out of any inherited\n * credentials/config/profile so the explicit bearer is the unambiguous auth.\n * - `baseURL: client.baseURL` — pins the parent's resolved host (auth override otherwise resets it).\n * - `defaultHeaders` is rebuilt as `parent._authState.extraHeaders ⊕ parent.defaultHeaders ⊕\n * {'x-stainless-helper': helper}`. `withOptions` *replaces* (does not\n * merge) `defaultHeaders`, so we merge here so any custom headers the\n * caller set on the parent client survive on the sub-client.\n */\nexport function copyClientForHelper(client, { authToken, helper }) {\n if (!authToken) {\n throw new AnthropicError(`copyClientForHelper: expected a non-empty authToken but received ${JSON.stringify(authToken)}`);\n }\n const internal = client;\n const parentDefaults = internal._options.defaultHeaders;\n // Carry the parent's credential/profile headers; strip the auth ones (we re-auth below).\n const parentAuthExtraHeaders = internal._authState?.extraHeaders;\n const inheritedAuthExtraHeaders = parentAuthExtraHeaders ?\n Object.fromEntries(Object.entries(parentAuthExtraHeaders).filter(([name]) => {\n const lower = name.toLowerCase();\n return lower !== 'authorization' && lower !== 'x-api-key';\n }))\n : undefined;\n const defaultHeaders = buildHeaders([\n inheritedAuthExtraHeaders,\n parentDefaults,\n { [STAINLESS_HELPER_HEADER]: helper },\n ]);\n return client.withOptions({\n apiKey: null,\n authToken,\n baseURL: client.baseURL,\n credentials: undefined,\n defaultHeaders,\n });\n}\n//# sourceMappingURL=helper-client.mjs.map","var _WorkPoller_runnerClient, _WorkPoller_consumed, _WorkPoller_controller, _WorkPoller_detachExternal, _WorkPoller_autoStop, _WorkPoller_drain, _WorkPoller_blockMs, _WorkPoller_reclaimOlderThanMs, _WorkPoller_requestOpts, _IdleLog_log, _IdleLog_environmentId, _IdleLog_idleSince, _IdleLog_lastReport;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { AnthropicError } from \"../../core/error.mjs\";\nimport { loggerFor } from \"../../internal/utils/log.mjs\";\nimport { sleep } from \"../../internal/utils/sleep.mjs\";\nimport { uuid4 } from \"../../internal/utils/uuid.mjs\";\nimport { linkAbort } from \"../../internal/utils/abort.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { applyJitter, backoff as expBackoff, isFatal4xx, isStatus, jitter, } from \"../../internal/utils/backoff.mjs\";\nimport { copyClientForHelper } from \"../helper-client.mjs\";\nexport { is4xx, isFatal4xx, isStatus, jitter } from \"../../internal/utils/backoff.mjs\";\n// API caps block_ms at 999; rely on client-side jitter between empty polls.\nexport const POLL_BLOCK_MS = 999;\nconst POLL_BACKOFF_BASE_MS = 1000;\nconst POLL_BACKOFF_CAP_MS = 60000;\nconst IDLE_REPORT_INTERVAL_MS = 300000;\n/**\n * Async-iterable that long-polls a self-hosted environment for work, ack's\n * each item, yields the {@link BetaSelfHostedWork} item, and posts `stop` after\n * the consumer's loop body returns (or when the consumer `break`s).\n *\n * A yielded item may carry a per-item `secret` payload (populated only by the\n * poll response); the poller passes it through untouched — consumers such as\n * {@link EnvironmentWorker} extract the sessions token it carries and prefer\n * that over the environment key for the item's downstream calls. Treat it as\n * opaque and never log it.\n *\n * @example\n * ```ts\n * for await (const work of client.beta.environments.work.poller({\n * environmentId,\n * environmentKey,\n * })) {\n * // ...service the work...\n * }\n * ```\n */\nexport class WorkPoller {\n constructor(opts) {\n // Sub-client scoped to the environment key. Every poll / ack / stop call\n // is routed through this so the parent's `X-Api-Key` never lands on the\n // wire alongside the bearer credential. The helper-telemetry header is\n // attached as a default on this client; per-call plumbing is unnecessary.\n _WorkPoller_runnerClient.set(this, void 0);\n _WorkPoller_consumed.set(this, false);\n _WorkPoller_controller.set(this, void 0);\n _WorkPoller_detachExternal.set(this, void 0);\n _WorkPoller_autoStop.set(this, void 0);\n _WorkPoller_drain.set(this, void 0);\n _WorkPoller_blockMs.set(this, void 0);\n _WorkPoller_reclaimOlderThanMs.set(this, void 0);\n _WorkPoller_requestOpts.set(this, void 0);\n this.client = opts.client;\n this.environmentId = opts.environmentId;\n this.environmentKey = opts.environmentKey;\n this.workerId = opts.workerId ?? defaultWorkerId();\n __classPrivateFieldSet(this, _WorkPoller_runnerClient, copyClientForHelper(opts.client, {\n authToken: opts.environmentKey,\n helper: 'environments-work-poller',\n }), \"f\");\n __classPrivateFieldSet(this, _WorkPoller_autoStop, opts.autoStop ?? true, \"f\");\n __classPrivateFieldSet(this, _WorkPoller_drain, opts.drain ?? false, \"f\");\n // `undefined` => default to the API cap; an explicit `null` => omit\n // `block_ms` for a non-blocking poll.\n __classPrivateFieldSet(this, _WorkPoller_blockMs, opts.blockMs === undefined ? POLL_BLOCK_MS : opts.blockMs, \"f\");\n __classPrivateFieldSet(this, _WorkPoller_reclaimOlderThanMs, opts.reclaimOlderThanMs ?? null, \"f\");\n __classPrivateFieldSet(this, _WorkPoller_requestOpts, opts.requestOptions, \"f\");\n __classPrivateFieldSet(this, _WorkPoller_controller, new AbortController(), \"f\");\n __classPrivateFieldSet(this, _WorkPoller_detachExternal, linkAbort(opts.signal, __classPrivateFieldGet(this, _WorkPoller_controller, \"f\")), \"f\");\n }\n /** Read-only view of this iterator's abort signal. */\n get signal() {\n return __classPrivateFieldGet(this, _WorkPoller_controller, \"f\").signal;\n }\n /** Abort the iterator. The current `for await` will exit cleanly. */\n abort() {\n __classPrivateFieldGet(this, _WorkPoller_controller, \"f\").abort();\n }\n async *[(_WorkPoller_runnerClient = new WeakMap(), _WorkPoller_consumed = new WeakMap(), _WorkPoller_controller = new WeakMap(), _WorkPoller_detachExternal = new WeakMap(), _WorkPoller_autoStop = new WeakMap(), _WorkPoller_drain = new WeakMap(), _WorkPoller_blockMs = new WeakMap(), _WorkPoller_reclaimOlderThanMs = new WeakMap(), _WorkPoller_requestOpts = new WeakMap(), Symbol.asyncIterator)]() {\n if (__classPrivateFieldGet(this, _WorkPoller_consumed, \"f\")) {\n throw new AnthropicError('Cannot iterate over a consumed WorkPoller');\n }\n __classPrivateFieldSet(this, _WorkPoller_consumed, true, \"f\");\n const log = loggerFor(this.client);\n log.info('poller starting', {\n component: 'work-poller',\n environment_id: this.environmentId,\n });\n const idle = new IdleLog(log, this.environmentId);\n try {\n let attempt = 0;\n while (!__classPrivateFieldGet(this, _WorkPoller_controller, \"f\").signal.aborted) {\n let work;\n try {\n work = await __classPrivateFieldGet(this, _WorkPoller_runnerClient, \"f\").beta.environments.work.poll(this.environmentId, {\n 'Anthropic-Worker-ID': this.workerId,\n ...(__classPrivateFieldGet(this, _WorkPoller_blockMs, \"f\") !== null ? { block_ms: __classPrivateFieldGet(this, _WorkPoller_blockMs, \"f\") } : {}),\n ...(__classPrivateFieldGet(this, _WorkPoller_reclaimOlderThanMs, \"f\") !== null ?\n { reclaim_older_than_ms: __classPrivateFieldGet(this, _WorkPoller_reclaimOlderThanMs, \"f\") }\n : {}),\n }, { headers: buildHeaders([__classPrivateFieldGet(this, _WorkPoller_requestOpts, \"f\")?.headers]), signal: __classPrivateFieldGet(this, _WorkPoller_controller, \"f\").signal });\n }\n catch (e) {\n if (__classPrivateFieldGet(this, _WorkPoller_controller, \"f\").signal.aborted)\n return;\n // A bad environment key / missing environment never recovers — surface\n // it instead of spinning forever at the backoff cap.\n if (isFatal4xx(e)) {\n log.error('poll failed permanently, stopping poller', { error: String(e) });\n throw e;\n }\n // Jittered exponential backoff so a fleet of pollers doesn't retry in\n // lockstep after a shared outage.\n const wait = applyJitter(backoff(attempt));\n log.warn('poll failed, backing off', { error: String(e), backoff_ms: wait });\n attempt++;\n await sleep(wait, __classPrivateFieldGet(this, _WorkPoller_controller, \"f\").signal);\n continue;\n }\n attempt = 0;\n if (work == null) {\n // Queue empty: either return now (drain) or wait and poll again.\n if (__classPrivateFieldGet(this, _WorkPoller_drain, \"f\"))\n return;\n idle.onEmptyPoll();\n await sleep(jitter(1000, 3000), __classPrivateFieldGet(this, _WorkPoller_controller, \"f\").signal);\n continue;\n }\n idle.onClaim();\n log.info('claimed work', {\n component: 'work-poller',\n environment_id: this.environmentId,\n work_id: work.id,\n work_type: work.data.type,\n });\n try {\n await __classPrivateFieldGet(this, _WorkPoller_runnerClient, \"f\").beta.environments.work.ack(work.id, { environment_id: work.environment_id }, { headers: buildHeaders([__classPrivateFieldGet(this, _WorkPoller_requestOpts, \"f\")?.headers]), signal: __classPrivateFieldGet(this, _WorkPoller_controller, \"f\").signal });\n }\n catch (e) {\n log.error('ack failed', { work_id: work.id, error: String(e) });\n continue;\n }\n try {\n yield work;\n }\n finally {\n // Post-handler stop. Runs whether the consumer body returned\n // normally, threw, or `break`d out of the loop — unless the consumer\n // owns the stop itself (`autoStop: false`).\n if (__classPrivateFieldGet(this, _WorkPoller_autoStop, \"f\")) {\n try {\n await __classPrivateFieldGet(this, _WorkPoller_runnerClient, \"f\").beta.environments.work.stop(work.id, { environment_id: work.environment_id }, { headers: buildHeaders([__classPrivateFieldGet(this, _WorkPoller_requestOpts, \"f\")?.headers]) });\n }\n catch (e) {\n if (!isStatus(e, 409))\n log.warn('stop failed', { work_id: work.id, error: String(e) });\n }\n }\n }\n }\n }\n finally {\n // Detach from the external signal so the consumer can drop their\n // signal reference without leaking this iterator instance.\n __classPrivateFieldGet(this, _WorkPoller_detachExternal, \"f\").call(this);\n }\n }\n}\n/** Exponential poll backoff: 1s, 2s, 4s … clamped to a 60s cap. */\nexport function backoff(attempt) {\n return expBackoff(attempt, POLL_BACKOFF_BASE_MS, POLL_BACKOFF_CAP_MS);\n}\n/**\n * Keeps an idle poll loop visible in the logs without an INFO line per poll:\n * the first empty poll after start-up or after a claim logs at INFO and later\n * ones at DEBUG, with an INFO reminder every `IDLE_REPORT_INTERVAL_MS` while\n * the loop stays idle.\n */\nclass IdleLog {\n constructor(log, environmentId) {\n _IdleLog_log.set(this, void 0);\n _IdleLog_environmentId.set(this, void 0);\n _IdleLog_idleSince.set(this, void 0);\n _IdleLog_lastReport.set(this, 0);\n __classPrivateFieldSet(this, _IdleLog_log, log, \"f\");\n __classPrivateFieldSet(this, _IdleLog_environmentId, environmentId, \"f\");\n }\n onEmptyPoll() {\n const now = Date.now();\n const fields = { component: 'work-poller', environment_id: __classPrivateFieldGet(this, _IdleLog_environmentId, \"f\") };\n if (__classPrivateFieldGet(this, _IdleLog_idleSince, \"f\") === undefined) {\n __classPrivateFieldSet(this, _IdleLog_idleSince, __classPrivateFieldSet(this, _IdleLog_lastReport, now, \"f\"), \"f\");\n __classPrivateFieldGet(this, _IdleLog_log, \"f\").info('idle; polling for work', fields);\n }\n else if (now - __classPrivateFieldGet(this, _IdleLog_lastReport, \"f\") >= IDLE_REPORT_INTERVAL_MS) {\n __classPrivateFieldSet(this, _IdleLog_lastReport, now, \"f\");\n __classPrivateFieldGet(this, _IdleLog_log, \"f\").info(`still polling; idle for ${Math.round((now - __classPrivateFieldGet(this, _IdleLog_idleSince, \"f\")) / 1000)}s`, fields);\n }\n else {\n __classPrivateFieldGet(this, _IdleLog_log, \"f\").debug('poll returned no work', fields);\n }\n }\n onClaim() {\n __classPrivateFieldSet(this, _IdleLog_idleSince, undefined, \"f\");\n }\n}\n_IdleLog_log = new WeakMap(), _IdleLog_environmentId = new WeakMap(), _IdleLog_idleSince = new WeakMap(), _IdleLog_lastReport = new WeakMap();\nfunction defaultWorkerId() {\n // The API documents the worker id as a *unique* identifier for Redis consumer\n // groups, so the fallback must be unique even when several pollers share a\n // host. Prefix with the hostname when one is exposed for readability, but rely\n // on the uuid for uniqueness.\n const env = globalThis.process?.env;\n const host = env?.['HOSTNAME'];\n return host ? `${host}-${uuid4()}` : uuid4();\n}\n//# sourceMappingURL=poller.mjs.map","var _AsyncQueue_items, _AsyncQueue_waiters, _AsyncQueue_closed;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../tslib.mjs\";\n/**\n * Single-consumer async queue that bridges background producers to an\n * `AsyncIterator`-style reader. Producers `push()` items; the consumer awaits\n * `next()`. `close()` is idempotent and wakes any pending `next()` with\n * `done: true`. `tryShift()` synchronously drains remaining items after\n * iteration has been signalled to stop.\n */\nexport class AsyncQueue {\n constructor() {\n _AsyncQueue_items.set(this, []);\n _AsyncQueue_waiters.set(this, []);\n _AsyncQueue_closed.set(this, false);\n }\n /** Enqueue an item, or hand it directly to a waiting reader. Returns `false` once closed. */\n push(item) {\n if (__classPrivateFieldGet(this, _AsyncQueue_closed, \"f\"))\n return false;\n const w = __classPrivateFieldGet(this, _AsyncQueue_waiters, \"f\").shift();\n if (w)\n w({ done: false, value: item });\n else\n __classPrivateFieldGet(this, _AsyncQueue_items, \"f\").push(item);\n return true;\n }\n /** Mark the queue done. Idempotent; wakes every pending reader with `done: true`. */\n close() {\n if (__classPrivateFieldGet(this, _AsyncQueue_closed, \"f\"))\n return;\n __classPrivateFieldSet(this, _AsyncQueue_closed, true, \"f\");\n while (__classPrivateFieldGet(this, _AsyncQueue_waiters, \"f\").length > 0) {\n const w = __classPrivateFieldGet(this, _AsyncQueue_waiters, \"f\").shift();\n w({ done: true, value: undefined });\n }\n }\n /**\n * Resolve with the next item, or `done: true` once the queue is closed and\n * drained. When `signal` is supplied, aborting it resolves a pending read\n * with `done: true` (cancellation is pushed down here rather than handled by\n * an outer `Promise.race`).\n */\n next(signal) {\n if (__classPrivateFieldGet(this, _AsyncQueue_items, \"f\").length > 0) {\n return Promise.resolve({ done: false, value: __classPrivateFieldGet(this, _AsyncQueue_items, \"f\").shift() });\n }\n if (__classPrivateFieldGet(this, _AsyncQueue_closed, \"f\") || signal?.aborted) {\n return Promise.resolve({ done: true, value: undefined });\n }\n return new Promise((resolve) => {\n const waiter = (r) => {\n signal?.removeEventListener('abort', onAbort);\n resolve(r);\n };\n const onAbort = () => {\n const idx = __classPrivateFieldGet(this, _AsyncQueue_waiters, \"f\").indexOf(waiter);\n if (idx >= 0)\n __classPrivateFieldGet(this, _AsyncQueue_waiters, \"f\").splice(idx, 1);\n resolve({ done: true, value: undefined });\n };\n __classPrivateFieldGet(this, _AsyncQueue_waiters, \"f\").push(waiter);\n signal?.addEventListener('abort', onAbort, { once: true });\n });\n }\n /** Synchronously remove and return the next buffered item, or `undefined` if empty. */\n tryShift() {\n return __classPrivateFieldGet(this, _AsyncQueue_items, \"f\").shift();\n }\n}\n_AsyncQueue_items = new WeakMap(), _AsyncQueue_waiters = new WeakMap(), _AsyncQueue_closed = new WeakMap();\n//# sourceMappingURL=async-queue.mjs.map","import { ToolError } from \"./ToolError.mjs\";\n/**\n * The name the model calls a tool by: `mcp_server_name` for MCP toolsets, `type` for nameless server\n * toolsets (browser/computer), `name` for everything else.\n */\nexport function toolName(tool) {\n return ('name' in tool ? tool.name\n : 'mcp_server_name' in tool ? tool.mcp_server_name\n : tool.type);\n}\n/** Tool-result content for a thrown value: a {@link ToolError}'s own content, otherwise `Error: <message>`. */\nexport function toolErrorContent(e) {\n return e instanceof ToolError ? e.content : `Error: ${e instanceof Error ? e.message : String(e)}`;\n}\n/** Parse the input, run the tool, and turn anything thrown into an error result. */\nexport async function runRunnableTool(tool, rawInput, context) {\n try {\n const input = tool.parse ? tool.parse(rawInput) : rawInput;\n const content = await tool.run(input, context);\n return { content, isError: false };\n }\n catch (e) {\n return { content: toolErrorContent(e), isError: true };\n }\n}\n//# sourceMappingURL=BetaRunnableTool.mjs.map","var _IdleClock_maxIdleMs, _IdleClock_onExpire, _IdleClock_blockers, _IdleClock_armPending, _IdleClock_timer, _SessionToolRunner_instances, _SessionToolRunner_consumed, _SessionToolRunner_controller, _SessionToolRunner_detachExternal, _SessionToolRunner_requestOpts, _SessionToolRunner_toolByName, _SessionToolRunner_logger, _SessionToolRunner_seen, _SessionToolRunner_answered, _SessionToolRunner_confirmationVerdicts, _SessionToolRunner_awaitingConfirmation, _SessionToolRunner_results, _SessionToolRunner_inFlightCount, _SessionToolRunner_sendRetryWindowMs, _SessionToolRunner_onIdle, _SessionToolRunner_idleClock, _SessionToolRunner_requestOptions, _SessionToolRunner_streamLoop, _SessionToolRunner_reconcile, _SessionToolRunner_ingestHistory, _SessionToolRunner_handleStreamEvent, _SessionToolRunner_routeToolEvent, _SessionToolRunner_noteConfirmation, _SessionToolRunner_applyVerdict, _SessionToolRunner_surfaceCall, _SessionToolRunner_execute, _SessionToolRunner_sendResult, _SessionToolRunner_drain;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { AnthropicError } from \"../../core/error.mjs\";\nimport { loggerFor } from \"../../internal/utils/log.mjs\";\nimport { sleep } from \"../../internal/utils/sleep.mjs\";\nimport { applyJitter, backoff, isFatal4xx } from \"../../internal/utils/backoff.mjs\";\nimport { linkAbort } from \"../../internal/utils/abort.mjs\";\nimport { AsyncQueue } from \"../../internal/utils/async-queue.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { helperHeader } from \"../../internal/stainless-helper-header.mjs\";\nimport { runRunnableTool, toolName } from \"./BetaRunnableTool.mjs\";\n/** Beta header for the managed-agents API. */\nexport const MANAGED_AGENTS_BETA = 'managed-agents-2026-04-01';\nconst STREAM_BACKOFF_START_MS = 500;\nconst STREAM_BACKOFF_CAP_MS = 10000;\nconst TOOL_TIMEOUT_MS = 120000;\nconst DRAIN_TIMEOUT_MS = 30000;\nconst SEND_BACKOFF_START_MS = 1000;\nconst SEND_BACKOFF_CAP_MS = 30000;\n/**\n * How long a transiently failing tool-result send keeps retrying when the\n * runner is used on its own: the server's default work-item lease TTL.\n * `EnvironmentWorker` overrides it with the live TTL from each lease heartbeat\n * (`_setSendRetryWindow`), so a send is only abandoned once the lease can no\n * longer be ours.\n */\nconst SEND_RETRY_WINDOW_MS = 5 * 60000;\n/** Default {@link SessionToolRunnerOptions.maxIdleMs}: 60 seconds. */\nexport const DEFAULT_MAX_IDLE_MS = 60000;\n/** Returns true if `ev` is a `session.status_idle` with `stop_reason` `end_turn`. */\nfunction isEndTurnIdle(ev) {\n return ev.type === 'session.status_idle' && ev.stop_reason?.type === 'end_turn';\n}\n/**\n * The `maxIdleMs` stop-countdown, including its deferral. {@link noteEvent}\n * arms on `session.status_idle` with `stop_reason: end_turn` and disarms on\n * anything else. Gated tool work registered via {@link block} — a call held for\n * user confirmation, or a user-approved call still dispatching — keeps\n * {@link arm} pending until {@link unblock} retires the last blocker, at which\n * point the countdown starts. Event-driven — there is no polling watchdog.\n */\nclass IdleClock {\n constructor(maxIdleMs, onExpire) {\n _IdleClock_maxIdleMs.set(this, void 0);\n _IdleClock_onExpire.set(this, void 0);\n _IdleClock_blockers.set(this, new Set());\n // Set when arm() found blockers outstanding; the unblock that retires the\n // last blocker applies it. Cleared by any disarm.\n _IdleClock_armPending.set(this, false);\n _IdleClock_timer.set(this, void 0);\n __classPrivateFieldSet(this, _IdleClock_maxIdleMs, maxIdleMs, \"f\");\n __classPrivateFieldSet(this, _IdleClock_onExpire, onExpire, \"f\");\n }\n /**\n * Arm on `status_idle{end_turn}`; disarm otherwise. `user.tool_confirmation`\n * is neutral: it signals neither agent activity nor an idle, and its effect\n * on the clock flows through {@link block} / {@link unblock} instead —\n * disarming here would discard the pending arm the verdict is about to\n * settle.\n */\n noteEvent(ev) {\n if (ev.type === 'user.tool_confirmation')\n return;\n if (isEndTurnIdle(ev))\n this.arm();\n else\n this.disarm();\n }\n /** Register gated work that must resolve before an idle countdown starts. */\n block(toolUseId) {\n __classPrivateFieldGet(this, _IdleClock_blockers, \"f\").add(toolUseId);\n if (__classPrivateFieldGet(this, _IdleClock_timer, \"f\") !== undefined) {\n // Defensive: every caller disarms first (any event that routes a tool\n // call is itself a disarming event), but a countdown running when gated\n // work appears is stale evidence — the session is not idly waiting to\n // stop. Convert it into a pending arm rather than let it fire over the\n // gated call.\n __classPrivateFieldSet(this, _IdleClock_armPending, true, \"f\");\n clearTimeout(__classPrivateFieldGet(this, _IdleClock_timer, \"f\"));\n __classPrivateFieldSet(this, _IdleClock_timer, undefined, \"f\");\n }\n }\n /**\n * Retire gated work (a no-op for ids never blocked); applies a pending arm —\n * with a fresh full `maxIdleMs` window — once the last blocker retires.\n */\n unblock(toolUseId) {\n __classPrivateFieldGet(this, _IdleClock_blockers, \"f\").delete(toolUseId);\n if (__classPrivateFieldGet(this, _IdleClock_blockers, \"f\").size === 0 && __classPrivateFieldGet(this, _IdleClock_armPending, \"f\"))\n this.arm();\n }\n /**\n * (Re)start the idle countdown — or, while blockers are outstanding, hold\n * the arm pending instead. Stopping then would drop a held call when its\n * verdict later arrives, or cut the runner off before a released call's\n * result can drive the next turn.\n */\n arm() {\n if (__classPrivateFieldGet(this, _IdleClock_maxIdleMs, \"f\") <= 0)\n return;\n if (__classPrivateFieldGet(this, _IdleClock_blockers, \"f\").size > 0) {\n __classPrivateFieldSet(this, _IdleClock_armPending, true, \"f\");\n return;\n }\n __classPrivateFieldSet(this, _IdleClock_armPending, false, \"f\");\n if (__classPrivateFieldGet(this, _IdleClock_timer, \"f\") !== undefined)\n clearTimeout(__classPrivateFieldGet(this, _IdleClock_timer, \"f\"));\n __classPrivateFieldSet(this, _IdleClock_timer, setTimeout(__classPrivateFieldGet(this, _IdleClock_onExpire, \"f\"), __classPrivateFieldGet(this, _IdleClock_maxIdleMs, \"f\")), \"f\");\n }\n /**\n * Cancel the idle countdown and any pending arm. Blockers persist — they\n * track real outstanding work, retired only by {@link unblock}.\n */\n disarm() {\n __classPrivateFieldSet(this, _IdleClock_armPending, false, \"f\");\n if (__classPrivateFieldGet(this, _IdleClock_timer, \"f\") !== undefined) {\n clearTimeout(__classPrivateFieldGet(this, _IdleClock_timer, \"f\"));\n __classPrivateFieldSet(this, _IdleClock_timer, undefined, \"f\");\n }\n }\n}\n_IdleClock_maxIdleMs = new WeakMap(), _IdleClock_onExpire = new WeakMap(), _IdleClock_blockers = new WeakMap(), _IdleClock_armPending = new WeakMap(), _IdleClock_timer = new WeakMap();\n/**\n * The sessions-side counterpart to `client.beta.messages.toolRunner`: an\n * async-iterable that attaches to a managed-agents session, executes every\n * incoming `agent.tool_use` and `agent.custom_tool_use` event against a local\n * tool registry, posts the matching result back (`user.tool_result` for the\n * former, `user.custom_tool_result` for the latter), and yields one\n * {@link DispatchedToolCall} per completed call. Server-side `agent.mcp_tool_use`\n * calls are not dispatched. Internally drives event-stream reconnect and result\n * posting.\n *\n * A call the server gated with `evaluated_permission: \"ask\"` (the `always_ask`\n * policy — or any value this SDK doesn't recognize, which fails closed) is held\n * until its `user.tool_confirmation` arrives: only an explicit `allow` runs it;\n * `deny` — or any verdict this SDK doesn't recognize, failing closed — is never\n * executed and posts nothing (the denial resolves the call server-side), but is\n * still yielded (`confirmation=\"deny\"`, `posted=false`, `result=undefined`) so\n * the consumer can observe it. A held call — and a user-approved one still\n * dispatching — defers the `maxIdleMs` countdown, so an `end_turn` idle\n * observed in the meantime cannot stop the runner: it waits until the verdict\n * arrives, the session terminates, or the abort signal fires — pass\n * `AbortSignal.timeout(...)` for a wall-clock bound.\n *\n * Iteration ends when the session terminates (`session.status_terminated` /\n * `session.deleted`), when the consumer `break`s out of the loop or aborts the\n * supplied signal, or — once the session has gone idle with\n * `stop_reason.type === \"end_turn\"` — when `maxIdleMs` elapses with no new\n * event (any new event resets that countdown; it re-arms on the next `end_turn`\n * idle; `maxIdleMs <= 0` disables it). The `finally` branch drains any in-flight\n * tool calls and runs each tool's `close()` cleanup hook. It does *not* touch\n * the work-item lease — wrap it in an `EnvironmentWorker` if you need\n * heartbeating / force-stop.\n *\n * @example\n * ```ts\n * import { betaAgentToolset20260401 } from '@anthropic-ai/sdk/tools/agent-toolset/node';\n *\n * for await (const call of client.beta.sessions.events.toolRunner(work.data.id, {\n * tools: [...betaAgentToolset20260401({ workdir }), myTool],\n * })) {\n * console.log(`${call.name} -> ${call.isError ? 'error' : 'ok'}`);\n * }\n * ```\n */\nexport class SessionToolRunner {\n constructor(sessionId, opts) {\n _SessionToolRunner_instances.add(this);\n _SessionToolRunner_consumed.set(this, false);\n _SessionToolRunner_controller.set(this, void 0);\n _SessionToolRunner_detachExternal.set(this, void 0);\n _SessionToolRunner_requestOpts.set(this, void 0);\n _SessionToolRunner_toolByName.set(this, void 0);\n _SessionToolRunner_logger.set(this, void 0);\n _SessionToolRunner_seen.set(this, new Set());\n _SessionToolRunner_answered.set(this, new Set());\n // Confirmation gating (`always_ask` tools): `#confirmationVerdicts` records\n // every `user.tool_confirmation` verdict by `tool_use_id`;\n // `#awaitingConfirmation` holds the tool-call events whose\n // `evaluated_permission` is `ask` and whose verdict has not arrived —\n // released (or resolved as denied) by `#noteConfirmation` / the next\n // reconcile pass. Like `#seen` and `#answered`, `#confirmationVerdicts` is\n // per-session O(tool calls): recorded verdicts persist for the life of the run.\n _SessionToolRunner_confirmationVerdicts.set(this, new Map());\n _SessionToolRunner_awaitingConfirmation.set(this, new Map());\n _SessionToolRunner_results.set(this, new AsyncQueue());\n _SessionToolRunner_inFlightCount.set(this, 0);\n _SessionToolRunner_sendRetryWindowMs.set(this, SEND_RETRY_WINDOW_MS);\n _SessionToolRunner_onIdle.set(this, null);\n _SessionToolRunner_idleClock.set(this, void 0);\n this.client = opts.client;\n this.sessionId = sessionId;\n this.tools = opts.tools;\n this.maxIdleMs = opts.maxIdleMs ?? DEFAULT_MAX_IDLE_MS;\n __classPrivateFieldSet(this, _SessionToolRunner_logger, loggerFor(opts.client), \"f\");\n __classPrivateFieldSet(this, _SessionToolRunner_toolByName, new Map(opts.tools.map((t) => [toolName(t), t])), \"f\");\n __classPrivateFieldSet(this, _SessionToolRunner_controller, new AbortController(), \"f\");\n __classPrivateFieldSet(this, _SessionToolRunner_detachExternal, linkAbort(opts.signal, __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\")), \"f\");\n __classPrivateFieldSet(this, _SessionToolRunner_requestOpts, opts.requestOptions, \"f\");\n __classPrivateFieldSet(this, _SessionToolRunner_idleClock, new IdleClock(this.maxIdleMs, () => {\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").info('session idle after end_turn; stopping', {\n component: 'session-tool-runner',\n session_id: this.sessionId,\n max_idle_ms: this.maxIdleMs,\n });\n __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").abort();\n }), \"f\");\n }\n /** Read-only view of this runner's abort signal. */\n get signal() {\n return __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").signal;\n }\n /** Abort the runner. Background tasks will wind down and `for await` will exit cleanly. */\n abort() {\n __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").abort();\n }\n /**\n * @internal\n * `EnvironmentWorker` keeps this equal to the lease TTL each heartbeat\n * reports; applies to a send already retrying.\n */\n _setSendRetryWindow(ms) {\n __classPrivateFieldSet(this, _SessionToolRunner_sendRetryWindowMs, ms, \"f\");\n }\n async *[(_SessionToolRunner_consumed = new WeakMap(), _SessionToolRunner_controller = new WeakMap(), _SessionToolRunner_detachExternal = new WeakMap(), _SessionToolRunner_requestOpts = new WeakMap(), _SessionToolRunner_toolByName = new WeakMap(), _SessionToolRunner_logger = new WeakMap(), _SessionToolRunner_seen = new WeakMap(), _SessionToolRunner_answered = new WeakMap(), _SessionToolRunner_confirmationVerdicts = new WeakMap(), _SessionToolRunner_awaitingConfirmation = new WeakMap(), _SessionToolRunner_results = new WeakMap(), _SessionToolRunner_inFlightCount = new WeakMap(), _SessionToolRunner_sendRetryWindowMs = new WeakMap(), _SessionToolRunner_onIdle = new WeakMap(), _SessionToolRunner_idleClock = new WeakMap(), _SessionToolRunner_instances = new WeakSet(), Symbol.asyncIterator)]() {\n if (__classPrivateFieldGet(this, _SessionToolRunner_consumed, \"f\")) {\n throw new AnthropicError('Cannot iterate over a consumed SessionToolRunner');\n }\n __classPrivateFieldSet(this, _SessionToolRunner_consumed, true, \"f\");\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").info('session tool runner starting', {\n component: 'session-tool-runner',\n session_id: this.sessionId,\n });\n // The one background promise: drives the event stream and dispatches tools.\n // Its `.catch` aborts the controller so the main loop unwinds.\n const streamPromise = __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_streamLoop).call(this).catch((e) => {\n if (!__classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").signal.aborted) {\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").error('stream loop failed', { error: String(e) });\n }\n __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").abort();\n });\n try {\n // Phase 1: yield results as they arrive. `next(signal)` resolves\n // `done: true` when the controller aborts — cancellation is handled in\n // the queue read, no outer `Promise.race` needed.\n while (true) {\n const next = await __classPrivateFieldGet(this, _SessionToolRunner_results, \"f\").next(__classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").signal);\n if (next.done)\n break;\n yield next.value;\n }\n // Phase 2: let the stream loop settle (and push any final results), then\n // drain whatever is still queued before closing.\n await streamPromise;\n let pending;\n while ((pending = __classPrivateFieldGet(this, _SessionToolRunner_results, \"f\").tryShift()) !== undefined) {\n yield pending;\n }\n }\n finally {\n __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").abort();\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").disarm();\n // Re-await defensively in case the consumer broke out of phase 1 before\n // phase 2 ran — a no-op if it already settled.\n await streamPromise;\n try {\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_drain).call(this);\n }\n catch (e) {\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").warn('drain failed', { error: String(e) });\n }\n __classPrivateFieldGet(this, _SessionToolRunner_results, \"f\").close();\n for (const t of this.tools) {\n try {\n // `close` is typed `() => Promisable<void>`, so a single `await`\n // covers both the sync and async return.\n await t.close?.();\n }\n catch (e) {\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").warn('tool.close failed', { tool: toolName(t), error: String(e) });\n }\n }\n // Detach from the external signal so the consumer can drop their signal\n // reference without leaking this iterator instance.\n __classPrivateFieldGet(this, _SessionToolRunner_detachExternal, \"f\").call(this);\n }\n }\n}\n_SessionToolRunner_requestOptions = function _SessionToolRunner_requestOptions() {\n return {\n ...__classPrivateFieldGet(this, _SessionToolRunner_requestOpts, \"f\"),\n headers: buildHeaders([helperHeader('session-tool-runner'), __classPrivateFieldGet(this, _SessionToolRunner_requestOpts, \"f\")?.headers]),\n signal: __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").signal,\n };\n}, _SessionToolRunner_streamLoop = \n// ===== event stream =====\nasync function _SessionToolRunner_streamLoop() {\n const ctrl = __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\");\n let backoff = STREAM_BACKOFF_START_MS;\n while (!ctrl.signal.aborted) {\n try {\n // Establish the event stream *before* reconciling history, so an event\n // emitted in the gap between listing and attaching is buffered on the\n // stream rather than lost. `seen`/`answered` dedup any event that shows\n // up both in the reconcile pass and on the live stream.\n const stream = await this.client.beta.sessions.events.stream(this.sessionId, {}, __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_requestOptions).call(this));\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_reconcile).call(this);\n for await (const ev of stream) {\n backoff = STREAM_BACKOFF_START_MS;\n if (await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_handleStreamEvent).call(this, ev))\n return;\n }\n }\n catch (e) {\n // An abort throws to unwind the caller (the iterator's `streamPromise`\n // `.catch`) rather than returning early and letting it carry on.\n ctrl.signal.throwIfAborted();\n if (isFatal4xx(e)) {\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").error('permanent stream failure, shutting down', { error: String(e) });\n ctrl.abort();\n throw e;\n }\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").warn('stream disconnected, reconnecting', {\n error: String(e),\n backoff_ms: backoff,\n });\n }\n ctrl.signal.throwIfAborted();\n await sleep(backoff, ctrl.signal);\n backoff = Math.min(backoff * 2, STREAM_BACKOFF_CAP_MS);\n }\n}, _SessionToolRunner_reconcile = \n/**\n * Read full history before dispatching so a `tool_use` whose result appears\n * later in the same history is not re-executed. Runs after the live stream is\n * already attached (see {@link SessionToolRunner.#streamLoop}).\n */\nasync function _SessionToolRunner_reconcile() {\n const ctrl = __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\");\n const pending = [];\n let lastWasEndTurn = false;\n try {\n for await (const ev of this.client.beta.sessions.events.list(this.sessionId, { limit: 1000 }, __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_requestOptions).call(this))) {\n __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_ingestHistory).call(this, ev, pending);\n lastWasEndTurn = isEndTurnIdle(ev);\n }\n }\n catch (e) {\n // An abort throws to unwind the caller; a real list failure is\n // non-fatal — undo the speculative `seen` entries and let `#streamLoop`\n // carry on with the live stream.\n ctrl.signal.throwIfAborted();\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").warn('reconcile list failed', { error: String(e) });\n // If list itself failed, undo the speculative `seen` entries so the next\n // reconcile pass (or the live stream) can pick them up. Leave the idle\n // timer untouched — the history we read may be incomplete.\n for (const ev of pending)\n __classPrivateFieldGet(this, _SessionToolRunner_seen, \"f\").delete(ev.id);\n return;\n }\n const unanswered = pending.filter((ev) => !__classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").has(ev.id));\n // Disarm before routing: `#execute` runs inline here, so a timer left armed\n // from before the reconnect could fire over an in-flight tool.\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").disarm();\n for (const ev of unanswered)\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_routeToolEvent).call(this, ev);\n // A held call's verdict is normally applied by the routing pass above; if\n // its tool_use fell outside the listed window the pass never saw it, so\n // apply the verdict to the held copy here.\n for (const held of [...__classPrivateFieldGet(this, _SessionToolRunner_awaitingConfirmation, \"f\").values()]) {\n const verdict = __classPrivateFieldGet(this, _SessionToolRunner_confirmationVerdicts, \"f\").get(held.id);\n if (verdict !== undefined)\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_applyVerdict).call(this, held, verdict);\n }\n // Routing resolves denied calls in place (marking them answered) and holds\n // ask-gated calls for their `user.tool_confirmation`. If the most recent\n // event in history is an `end_turn` idle and no tool work is outstanding,\n // the session is done — arm the idle clock so the runner stops even if that\n // `end_turn` arrived during a disconnect. A held call is not outstanding\n // here: it blocks the clock, so this arm stays pending until the verdict\n // (and, for an allow, the dispatch it releases) resolves it.\n const outstanding = unanswered.filter((ev) => !__classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").has(ev.id) && !__classPrivateFieldGet(this, _SessionToolRunner_awaitingConfirmation, \"f\").has(ev.id));\n if (lastWasEndTurn && outstanding.length === 0)\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").arm();\n else\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").disarm();\n}, _SessionToolRunner_ingestHistory = function _SessionToolRunner_ingestHistory(ev, pending) {\n if (ev.type === 'agent.tool_use' || ev.type === 'agent.custom_tool_use') {\n // Mark the event seen so a replay on the live stream is not dispatched\n // twice, but decide whether it still needs executing from `answered`, not\n // `seen`: a call whose result post failed is seen-but-unanswered, and must\n // be retried on the next reconcile pass rather than silently dropped.\n __classPrivateFieldGet(this, _SessionToolRunner_seen, \"f\").add(ev.id);\n if (!__classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").has(ev.id))\n pending.push(ev);\n }\n else if (ev.type === 'user.tool_result') {\n __classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").add(ev.tool_use_id);\n }\n else if (ev.type === 'user.custom_tool_result') {\n __classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").add(ev.custom_tool_use_id);\n }\n else if (ev.type === 'user.tool_confirmation') {\n // Record the verdict only, before the pending pass, so a call whose\n // confirmation appears later in the same history routes with its verdict\n // already known. Releasing a held call here as well would dispatch it a\n // second time when the routing pass reaches its tool_use event.\n if (!__classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").has(ev.tool_use_id))\n __classPrivateFieldGet(this, _SessionToolRunner_confirmationVerdicts, \"f\").set(ev.tool_use_id, ev.result);\n }\n}, _SessionToolRunner_handleStreamEvent = \n/** Returns true when the runner should exit. */\nasync function _SessionToolRunner_handleStreamEvent(ev) {\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").noteEvent(ev);\n switch (ev.type) {\n case 'agent.tool_use':\n case 'agent.custom_tool_use':\n if (!__classPrivateFieldGet(this, _SessionToolRunner_seen, \"f\").has(ev.id)) {\n __classPrivateFieldGet(this, _SessionToolRunner_seen, \"f\").add(ev.id);\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_routeToolEvent).call(this, ev);\n }\n return false;\n case 'user.tool_confirmation':\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_noteConfirmation).call(this, ev);\n return false;\n case 'user.tool_result':\n __classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").add(ev.tool_use_id);\n return false;\n case 'user.custom_tool_result':\n __classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").add(ev.custom_tool_use_id);\n return false;\n case 'session.status_terminated':\n case 'session.deleted':\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").info('session terminated', {\n component: 'session-tool-runner',\n session_id: this.sessionId,\n });\n __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").abort();\n return true;\n default:\n return false;\n }\n}, _SessionToolRunner_routeToolEvent = \n// ===== confirmation gating (always_ask tools) =====\n/**\n * Dispatch `ev`, honoring its evaluated permission. A call the server gated\n * (`evaluated_permission == \"ask\"`) is held until its `user.tool_confirmation`\n * arrives. Fails closed: only an explicit `allow` verdict releases a gated\n * call; a server-side `deny` overrides any recorded verdict; an unrecognized\n * permission is held like `ask` and an unrecognized verdict is denied.\n */\nasync function _SessionToolRunner_routeToolEvent(ev) {\n // `getattr`-style read: today only `agent.tool_use` carries\n // `evaluated_permission`, but if it ever lands on `agent.custom_tool_use`\n // the gate must keep failing closed rather than dispatch by event type.\n const permission = ev.evaluated_permission;\n // A server-side `deny` overrides any (stray) recorded verdict.\n const verdict = permission === 'deny' ? 'deny' : __classPrivateFieldGet(this, _SessionToolRunner_confirmationVerdicts, \"f\").get(ev.id);\n if (verdict === undefined) {\n if (permission === undefined || permission === 'allow') {\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_execute).call(this, ev, undefined);\n }\n else if (!__classPrivateFieldGet(this, _SessionToolRunner_awaitingConfirmation, \"f\").has(ev.id)) {\n // \"ask\" — or a permission this SDK does not recognize, which must not\n // dispatch unconfirmed — waits for the user's verdict. (Already-held: a\n // reconcile after reconnect re-routes the call; keep the existing hold.)\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").info('tool call awaiting confirmation; holding', {\n component: 'session-tool-runner',\n session_id: this.sessionId,\n tool: ev.name,\n tool_use_id: ev.id,\n });\n __classPrivateFieldGet(this, _SessionToolRunner_awaitingConfirmation, \"f\").set(ev.id, ev);\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").block(ev.id);\n }\n return;\n }\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_applyVerdict).call(this, ev, verdict);\n}, _SessionToolRunner_noteConfirmation = \n/** Record an allow/deny verdict and release the held call it gates, if any. */\nasync function _SessionToolRunner_noteConfirmation(ev) {\n __classPrivateFieldGet(this, _SessionToolRunner_confirmationVerdicts, \"f\").set(ev.tool_use_id, ev.result);\n const held = __classPrivateFieldGet(this, _SessionToolRunner_awaitingConfirmation, \"f\").get(ev.tool_use_id);\n // Nothing held: the verdict gates a call this runner has not seen yet (or\n // one it never gates, e.g. an `agent.mcp_tool_use`). Keeping it in\n // `#confirmationVerdicts` lets a later route of that call resolve instantly.\n if (held === undefined)\n return;\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_applyVerdict).call(this, held, ev.result);\n}, _SessionToolRunner_applyVerdict = \n/**\n * Dispatch or resolve a gated call according to its verdict.\n *\n * The idle-clock blocker accounting lives here: a denial retires the held\n * call's blocker, while an allow keeps one on the call — taking it now if the\n * verdict was already known when the call was routed, so it was never held —\n * until `#execute` has finished with it. The countdown must not run over\n * gated work that is still in flight.\n */\nasync function _SessionToolRunner_applyVerdict(ev, verdict) {\n const wasHeld = __classPrivateFieldGet(this, _SessionToolRunner_awaitingConfirmation, \"f\").delete(ev.id);\n if (verdict === 'allow') {\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").info('tool call confirmed', {\n component: 'session-tool-runner',\n session_id: this.sessionId,\n tool: ev.name,\n tool_use_id: ev.id,\n });\n if (!wasHeld)\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").block(ev.id);\n try {\n await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_execute).call(this, ev, 'allow');\n }\n finally {\n // The approved call is fully disposed of (executed, or moot because it\n // was answered elsewhere) — the sole place an allow's blocker retires.\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").unblock(ev.id);\n }\n return;\n }\n // \"deny\" — or any value other than an explicit \"allow\" (fail closed). The\n // denial resolves the call server-side, so mark it answered and yield it\n // (nothing ran, nothing posted).\n if (wasHeld)\n __classPrivateFieldGet(this, _SessionToolRunner_idleClock, \"f\").unblock(ev.id);\n __classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").add(ev.id);\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").info('tool call denied; not executing', {\n component: 'session-tool-runner',\n session_id: this.sessionId,\n tool: ev.name,\n tool_use_id: ev.id,\n });\n __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_surfaceCall).call(this, {\n event: ev,\n toolUseId: ev.id,\n name: ev.name,\n isError: false,\n posted: false,\n confirmation: 'deny',\n });\n}, _SessionToolRunner_surfaceCall = function _SessionToolRunner_surfaceCall(call) {\n __classPrivateFieldGet(this, _SessionToolRunner_results, \"f\").push(call);\n}, _SessionToolRunner_execute = \n// ===== tool execution =====\nasync function _SessionToolRunner_execute(ev, confirmation) {\n var _a, _b;\n if (__classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").has(ev.id))\n return;\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").info('executing tool', {\n component: 'session-tool-runner',\n session_id: this.sessionId,\n tool: ev.name,\n tool_use_id: ev.id,\n });\n __classPrivateFieldSet(this, _SessionToolRunner_inFlightCount, (_a = __classPrivateFieldGet(this, _SessionToolRunner_inFlightCount, \"f\"), _a++, _a), \"f\");\n try {\n const tool = __classPrivateFieldGet(this, _SessionToolRunner_toolByName, \"f\").get(ev.name);\n if (!tool) {\n // Skip (split-client partial fulfilment): a name this runner\n // is not registered for belongs to the other client servicing this\n // session (typically the customer's app backend handling custom tools).\n // Post NO result, do not mark it answered, and leave the tool_use_id\n // pending for its owner — claiming it would corrupt the conversation.\n // Still yield the call so the consumer can observe the unowned\n // dispatch; nothing was sent, so `posted`/`isError` stay false and no\n // `result` event is populated. The id stays unanswered, so reconcile\n // keeps it out of the idle/end-turn accounting and re-surfaces it after\n // a reconnect until its owner answers it.\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").info('tool not owned by this runner; leaving the tool_use_id pending for its owner', {\n component: 'session-tool-runner',\n session_id: this.sessionId,\n tool: ev.name,\n tool_use_id: ev.id,\n });\n __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_surfaceCall).call(this, {\n event: ev,\n toolUseId: ev.id,\n name: ev.name,\n isError: false,\n posted: false,\n confirmation,\n });\n return;\n }\n let content;\n let isError;\n // Per-tool controller: aborts on the runner's own signal *or* the\n // per-tool timeout, so an in-flight tool stops promptly when the runner\n // is aborted instead of running until the timeout.\n const toolCtrl = new AbortController();\n const detachTool = linkAbort(__classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\").signal, toolCtrl);\n const timer = setTimeout(() => toolCtrl.abort(), TOOL_TIMEOUT_MS);\n try {\n // Pass the source `agent.tool_use` / `agent.custom_tool_use` event\n // straight through as the run context's `toolUse` — it is a union\n // member of `BetaToolUse`, no Messages-block adapter needed.\n const outcome = await runRunnableTool(tool, ev.input, {\n toolUse: ev,\n toolUseBlock: ev,\n signal: toolCtrl.signal,\n });\n content = outcome.content;\n isError = outcome.isError;\n }\n finally {\n clearTimeout(timer);\n detachTool();\n }\n // Answer with the result event that matches the call kind: a\n // `user.tool_result` for an `agent.tool_use`, a `user.custom_tool_result`\n // for an `agent.custom_tool_use`. Posting the wrong one leaves the call\n // unanswered and the session stuck.\n const result = buildResultEvent(ev, isError, toSessionContent(content));\n const posted = await __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_sendResult).call(this, result, ev.id);\n __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_surfaceCall).call(this, {\n event: ev,\n result,\n toolUseId: ev.id,\n name: ev.name,\n isError,\n posted,\n confirmation,\n });\n }\n finally {\n __classPrivateFieldSet(this, _SessionToolRunner_inFlightCount, (_b = __classPrivateFieldGet(this, _SessionToolRunner_inFlightCount, \"f\"), _b--, _b), \"f\");\n if (__classPrivateFieldGet(this, _SessionToolRunner_inFlightCount, \"f\") === 0)\n __classPrivateFieldGet(this, _SessionToolRunner_onIdle, \"f\")?.call(this);\n }\n}, _SessionToolRunner_sendResult = async function _SessionToolRunner_sendResult(result, toolUseId) {\n const ctrl = __classPrivateFieldGet(this, _SessionToolRunner_controller, \"f\");\n const start = Date.now();\n let lastErr;\n let attempt = 0;\n while (true) {\n attempt++;\n // An abort throws to unwind the caller rather than returning a\n // `posted: false` result the iterator would carry on past.\n ctrl.signal.throwIfAborted();\n try {\n await this.client.beta.sessions.events.send(this.sessionId, { events: [result] }, __classPrivateFieldGet(this, _SessionToolRunner_instances, \"m\", _SessionToolRunner_requestOptions).call(this));\n __classPrivateFieldGet(this, _SessionToolRunner_answered, \"f\").add(toolUseId);\n return true;\n }\n catch (e) {\n lastErr = e;\n // Only short-circuit on a permanent 4xx; 408/409/429 deserve the\n // remaining retries (aligned with the core client's retry policy).\n if (isFatal4xx(e))\n break;\n const remainingMs = __classPrivateFieldGet(this, _SessionToolRunner_sendRetryWindowMs, \"f\") - (Date.now() - start);\n if (remainingMs <= 0)\n break;\n const waitMs = Math.min(applyJitter(backoff(attempt - 1, SEND_BACKOFF_START_MS, SEND_BACKOFF_CAP_MS)), remainingMs);\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").warn('tool result send failed; retrying', {\n tool_use_id: toolUseId,\n attempt,\n backoff_ms: waitMs,\n error: String(e),\n });\n await sleep(waitMs, ctrl.signal);\n }\n }\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").error('failed to send tool result', {\n tool_use_id: toolUseId,\n attempts: attempt,\n error: String(lastErr),\n });\n return false;\n}, _SessionToolRunner_drain = \n/** Wait (bounded) for in-flight tool executions to finish during teardown. */\nasync function _SessionToolRunner_drain() {\n if (__classPrivateFieldGet(this, _SessionToolRunner_inFlightCount, \"f\") === 0)\n return;\n await Promise.race([new Promise((r) => (__classPrivateFieldSet(this, _SessionToolRunner_onIdle, r, \"f\"))), sleep(DRAIN_TIMEOUT_MS)]);\n __classPrivateFieldSet(this, _SessionToolRunner_onIdle, null, \"f\");\n if (__classPrivateFieldGet(this, _SessionToolRunner_inFlightCount, \"f\") > 0) {\n __classPrivateFieldGet(this, _SessionToolRunner_logger, \"f\").warn('drain timeout exceeded');\n }\n};\n/**\n * Build the result event that answers `ev`: a `user.tool_result` for a builtin\n * `agent.tool_use`, a `user.custom_tool_result` for a custom\n * `agent.custom_tool_use`. The two `(use, result)` pairs are distinct API event\n * types and must be matched exactly — a `user.tool_result` does not answer a\n * custom tool call.\n */\nfunction buildResultEvent(ev, isError, content) {\n if (ev.type === 'agent.custom_tool_use') {\n return { type: 'user.custom_tool_result', custom_tool_use_id: ev.id, is_error: isError, content };\n }\n return { type: 'user.tool_result', tool_use_id: ev.id, is_error: isError, content };\n}\n// The Messages-API tool-result block union is wider than the Sessions-API\n// tool_result content union; pass through text/image/document and stringify\n// anything else so a BetaRunnableTool authored for toolRunner still works here.\nfunction toSessionContent(content) {\n if (typeof content === 'string')\n return [{ type: 'text', text: content || '(no output)' }];\n const out = content.map((b) => {\n if (b.type === 'text')\n return { type: 'text', text: b.text || '(no output)' };\n if (b.type === 'image' || b.type === 'document')\n return b;\n if (b.type === 'search_result') {\n // The Messages `search_result` block param maps field-for-field onto the\n // Sessions `BetaManagedAgentsSearchResultBlock`; map it explicitly rather\n // than letting it fall through to the JSON.stringify branch (which would\n // bury a structured result inside a text block). `citations` is required\n // on the Sessions side and optional on the Messages side — default the\n // flag to `false` when the producer left it unset.\n return {\n type: 'search_result',\n source: b.source,\n title: b.title,\n content: b.content.map((c) => ({ type: 'text', text: c.text })),\n citations: { enabled: b.citations?.enabled ?? false },\n };\n }\n return { type: 'text', text: JSON.stringify(b) };\n });\n return out.length > 0 ? out : [{ type: 'text', text: '(no output)' }];\n}\n//# sourceMappingURL=SessionToolRunner.mjs.map","/**\n * The memory sync cadence, split out of `memories.ts` so runtime-agnostic\n * callers (the environment worker) can validate an interval up front without\n * reaching into the Node-only toolset module.\n */\nimport { AnthropicError } from \"../../core/error.mjs\";\n/**\n * How often (milliseconds) the worker syncs the session's memory stores back\n * while the session runs. Checked after each dispatched tool call.\n */\nexport const DEFAULT_MEMORY_SYNC_INTERVAL_MS = 15000;\n/**\n * The shortest sync interval accepted. Each sync lists every attached store,\n * so anything tighter mostly spends requests rediscovering that nothing\n * changed.\n */\nexport const MIN_MEMORY_SYNC_INTERVAL_MS = 5000;\n/** Throw unless `ms` is a usable sync interval. `option` names it in the message. */\nexport function checkMemorySyncInterval(ms, option) {\n if (!(ms >= MIN_MEMORY_SYNC_INTERVAL_MS)) {\n throw new AnthropicError(`${option} must be at least ${MIN_MEMORY_SYNC_INTERVAL_MS}ms (got ${ms}); ` +\n 'to run without memory sync, pass `memorySyncIntervalMs: null` to the worker instead');\n }\n}\n//# sourceMappingURL=sync-interval.mjs.map","var _EnvironmentWorker_instances, _EnvironmentWorker_signal, _EnvironmentWorker_handleItem, _Lease_ctrl, _Lease_endReason;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { AnthropicError, APIError } from \"../../core/error.mjs\";\nimport { loggerFor } from \"../../internal/utils/log.mjs\";\nimport { fromBase64 } from \"../../internal/utils/base64.mjs\";\nimport { decodeUTF8 } from \"../../internal/utils/bytes.mjs\";\nimport { readEnv } from \"../../internal/utils/env.mjs\";\nimport { sleep } from \"../../internal/utils/sleep.mjs\";\nimport { isFatal4xx, isStatus } from \"../../internal/utils/backoff.mjs\";\nimport { linkAbort } from \"../../internal/utils/abort.mjs\";\nimport { isObj } from \"../../internal/utils/values.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { SessionToolRunner } from \"../tools/SessionToolRunner.mjs\";\nimport { WorkPoller } from \"./poller.mjs\";\nimport { copyClientForHelper } from \"../helper-client.mjs\";\nimport { checkMemorySyncInterval } from \"../../tools/agent-toolset/sync-interval.mjs\";\nconst HEARTBEAT_DEFAULT_MS = 30000;\nconst HEARTBEAT_TTL_DEFAULT_MS = 90000;\nconst NO_HEARTBEAT_SENTINEL = 'NO_HEARTBEAT';\n/** True when the session has at least one memory store attached. */\nfunction hasMemoryStore(session) {\n return session.resources.some((r) => r.type === 'memory_store');\n}\n/**\n * Extract the per-item sessions token from a work item's `secret` payload.\n *\n * The `secret` the poll response populates is not itself a credential: it is a\n * URL-safe base64 JSON payload matching {@link BetaWorkSecret} — the\n * `sessions_token` (the bearer for this item's work lifecycle and\n * session-level calls) plus fields this worker does not consume. Returns the\n * sessions token, or `null` (meaning: fall back to the environment key) when\n * the payload is missing, doesn't decode, or carries no token. Never log the\n * payload or anything extracted from it.\n */\nexport function sessionsTokenFromSecret(secret) {\n if (!secret)\n return null;\n let parsed;\n try {\n // The payload may arrive URL-safe and without base64 padding; normalize\n // both before decoding.\n const normalized = secret.replace(/-/g, '+').replace(/_/g, '/');\n const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, '=');\n parsed = JSON.parse(decodeUTF8(fromBase64(padded)));\n }\n catch {\n return null;\n }\n if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))\n return null;\n // The payload is untrusted input, so the token is still checked at runtime\n // rather than trusted to match the schema.\n const token = parsed.sessions_token;\n return typeof token === 'string' && token !== '' ? token : null;\n}\n/**\n * The self-hosted environment runner, composed from the control-plane\n * {@link WorkPoller} and the per-session {@link SessionToolRunner}.\n *\n * For each claimed `session` work item it: builds the per-session\n * {@link AgentToolContext}, downloads the session agent's skills\n * (`setupSkills`), then runs a {@link SessionToolRunner} for the session\n * while heartbeating the work-item lease on the same event loop; on exit it\n * force-stops the work item (unless the lease was lost, in which case the item\n * is left to whoever holds it now), cleans up the downloaded skills, and loops\n * to the next one. The lease heartbeat reports `state === \"stopping\"` / a lost\n * lease back into the run by aborting the session runner.\n *\n * The `environmentKey` is the worker's standing credential. When a claimed\n * work item carries a per-item `secret` (a short-lived payload the poll\n * response may populate), the sessions token extracted from it is preferred\n * over the environment key for that item's heartbeat / force-stop /\n * skill-download / session calls; polling itself always uses the environment\n * key, and items without a usable secret fall back to it entirely.\n *\n * Use {@link EnvironmentWorker.handleItem} if you already hold a claimed work\n * item (e.g. a `worker poll --on-work` script handed one to a fresh process) and\n * just want the per-item flow without the poll loop — with no arguments it reads\n * the `ANTHROPIC_*` env vars that command sets.\n *\n * Construct it via `client.beta.environments.work.worker({ ... })` (or\n * `new EnvironmentWorker({ client, ... })` directly).\n *\n * @example\n * ```ts\n * // Long-running daemon: poll for work, serve each session, loop.\n * await client.beta.environments.work\n * .worker({ environmentId, environmentKey, workdir: '/workspace' })\n * .run(AbortSignal.timeout(60 * 60_000));\n *\n * // Already-claimed item (e.g. inside `ant worker poll --on-work ...`):\n * await client.beta.environments.work.worker({ workdir: '/workspace' }).handleItem();\n * ```\n */\nexport class EnvironmentWorker {\n constructor(opts) {\n _EnvironmentWorker_instances.add(this);\n _EnvironmentWorker_signal.set(this, void 0);\n if (opts.unrestrictedPaths !== undefined) {\n throw new AnthropicError('The `unrestrictedPaths` option you passed to EnvironmentWorker (or ' +\n 'client.beta.environments.work.worker()) is no longer supported. ' +\n \"The worker's file tools (read, write, edit, glob, grep) are now always confined to `workdir` \" +\n \"plus the session's memory folders. Remove `unrestrictedPaths` from your options; to let the \" +\n 'file tools reach any other directory, add it to `AgentToolContext.allowedRoots` from a ' +\n '`tools` factory.');\n }\n this.client = opts.client;\n this.environmentId = opts.environmentId;\n this.environmentKey = opts.environmentKey;\n this.tools = opts.tools;\n this.workdir = opts.workdir ?? process.cwd();\n this.maxFileBytes = opts.maxFileBytes;\n this.maxIdleMs = opts.maxIdleMs;\n if (opts.memorySyncIntervalMs != null) {\n checkMemorySyncInterval(opts.memorySyncIntervalMs, 'memorySyncIntervalMs');\n }\n this.memorySyncIntervalMs = opts.memorySyncIntervalMs;\n this.memorySyncDeletions = opts.memorySyncDeletions ?? 'enabled';\n this.workerId = opts.workerId;\n this.requestOptions = opts.requestOptions;\n __classPrivateFieldSet(this, _EnvironmentWorker_signal, opts.signal, \"f\");\n }\n /**\n * Poll the environment and service each claimed session until the supplied\n * signal (or the one passed to the constructor) aborts. Throws if\n * `environmentId` / `environmentKey` were not provided to the constructor.\n */\n async run(signal) {\n const { environmentId, environmentKey } = this;\n if (environmentId === undefined || environmentKey === undefined) {\n throw new AnthropicError('EnvironmentWorker.run: environmentId and environmentKey are required to poll for work');\n }\n const externalSignal = signal ?? __classPrivateFieldGet(this, _EnvironmentWorker_signal, \"f\");\n const poller = new WorkPoller({\n client: this.client,\n environmentId,\n environmentKey,\n ...(this.workerId !== undefined ? { workerId: this.workerId } : {}),\n ...(externalSignal ? { signal: externalSignal } : {}),\n ...(this.requestOptions !== undefined ? { requestOptions: this.requestOptions } : {}),\n // The per-item handler stops or releases every work item on exit; let it\n // be the single owner of `work.stop` rather than double-posting from the\n // poller.\n autoStop: false,\n });\n for await (const work of poller) {\n try {\n await __classPrivateFieldGet(this, _EnvironmentWorker_instances, \"m\", _EnvironmentWorker_handleItem).call(this, work, environmentKey, poller.signal);\n }\n catch (e) {\n // One bad item fails that item, not the worker: the handler's teardown\n // already stopped or released it, so the next poll claims the next\n // item. A store directory left behind by a killed worker would\n // otherwise crashloop this process forever.\n if (poller.signal?.aborted)\n throw e;\n loggerFor(this.client).error('work item failed', { work_id: work.id, error: String(e) });\n }\n }\n }\n /**\n * Service a single, already-claimed work item without the poll loop: build the\n * per-session {@link AgentToolContext} (workdir from this worker's options),\n * download the session agent's skills (`setupSkills`), run a\n * {@link SessionToolRunner} for the session while heartbeating the work-item\n * lease, and force-stop the work item on exit (whether the runner finishes\n * normally, throws, or the control plane signals shutdown). The one\n * exception is a lost lease: the item then belongs to the queue or another\n * worker and is left alone.\n *\n * Use this when something else does the claiming — e.g. a `worker poll\n * --on-work` script that hands an already-claimed item to a fresh process. The\n * work id / environment id / session id each fall back to `ANTHROPIC_WORK_ID` /\n * `ANTHROPIC_ENVIRONMENT_ID` / `ANTHROPIC_SESSION_ID` (the env vars that\n * command sets) when not passed; the environment key resolves from this\n * option, then the worker's own `environmentKey`, then\n * `ANTHROPIC_ENVIRONMENT_KEY`. With no arguments inside that command it just\n * works. Throws a clear error naming the first of the four required values\n * still missing after resolution. Throws `SessionMemoryError` when the\n * session has memory stores attached but they cannot be mounted — the work\n * item carried no sessions token (unless `memorySyncIntervalMs` turned\n * memory off), or a store failed to download.\n *\n * `workSecret` is the work item's per-item `secret` payload from the poll\n * response, falling back to `ANTHROPIC_WORK_SECRET`; unlike the others it is\n * optional — when present, the sessions token extracted from it is preferred\n * as the Bearer credential for this item's heartbeat / force-stop / session\n * calls; when absent (or undecodable) those calls use the environment key.\n */\n async handleItem(opts) {\n const workId = opts?.workId ?? readEnv('ANTHROPIC_WORK_ID');\n const environmentId = opts?.environmentId ?? readEnv('ANTHROPIC_ENVIRONMENT_ID');\n const sessionId = opts?.sessionId ?? readEnv('ANTHROPIC_SESSION_ID');\n const environmentKey = opts?.environmentKey ?? this.environmentKey ?? readEnv('ANTHROPIC_ENVIRONMENT_KEY');\n // `||` rather than `??` so an empty option still falls through to the env\n // var and then to null (matching how `readEnv` treats empty values).\n const workSecret = opts?.workSecret || readEnv('ANTHROPIC_WORK_SECRET') || null;\n if (!workId) {\n throw new AnthropicError('handleItem: workId is required — pass it or set ANTHROPIC_WORK_ID');\n }\n if (!environmentId) {\n throw new AnthropicError('handleItem: environmentId is required — pass it or set ANTHROPIC_ENVIRONMENT_ID');\n }\n if (!sessionId) {\n throw new AnthropicError('handleItem: sessionId is required — pass it or set ANTHROPIC_SESSION_ID');\n }\n if (!environmentKey) {\n throw new AnthropicError('handleItem: environmentKey is required — pass it, construct the worker with it, or set ANTHROPIC_ENVIRONMENT_KEY');\n }\n const work = {\n id: workId,\n environment_id: environmentId,\n secret: workSecret,\n data: { type: 'session', id: sessionId },\n };\n await __classPrivateFieldGet(this, _EnvironmentWorker_instances, \"m\", _EnvironmentWorker_handleItem).call(this, work, environmentKey, opts?.signal ?? __classPrivateFieldGet(this, _EnvironmentWorker_signal, \"f\"));\n }\n}\n_EnvironmentWorker_signal = new WeakMap(), _EnvironmentWorker_instances = new WeakSet(), _EnvironmentWorker_handleItem = \n/**\n * The per-item body shared by {@link EnvironmentWorker.run}'s poll loop and\n * {@link EnvironmentWorker.handleItem}: run a {@link SessionToolRunner} for the\n * work item's session while heartbeating its lease, force-stopping on exit\n * unless the lease was lost. Non-session work items are ignored.\n *\n * When the poll response carried a per-item `secret` (a short-lived payload\n * scoped to this work item), the sessions token extracted from it is\n * preferred over `environmentKey` as the Bearer credential for those\n * per-item calls; a missing/undecodable secret falls back to\n * `environmentKey` unchanged.\n */\nasync function _EnvironmentWorker_handleItem(work, environmentKey, externalSignal) {\n const log = loggerFor(this.client);\n // The per-item credential: the sessions token carried inside the work\n // item's secret payload when the server issued one, otherwise the\n // environment key. Never log this value.\n const sessionsToken = sessionsTokenFromSecret(work.secret);\n if (work.secret && sessionsToken === null) {\n log.warn('work item carried a secret payload but no sessions token could be extracted; ' +\n 'falling back to the environment key', { work_id: work.id });\n }\n const itemCredential = sessionsToken ?? environmentKey;\n // Every per-session call — the SessionToolRunner event stream/list/send, the\n // lease heartbeat, the skill download, and the work force-stop —\n // authenticates with the per-item credential. Scope a client to it once and\n // thread that through. `copyClientForHelper` also clears the parent's\n // `apiKey`, so the sub-client emits *only* the bearer credential on the\n // wire (a plain `withOptions({authToken})` would leave `X-Api-Key` set as\n // well).\n const sessionClient = copyClientForHelper(this.client, {\n authToken: itemCredential,\n helper: 'environments-worker',\n });\n // The poller runs with `autoStop: false`, so the per-item handler is the\n // single owner of `work.stop` for every claimed item.\n const sessionId = work.data.id;\n // A per-session controller: aborts when the supplied signal aborts, when the\n // session runner finishes, or when the lease heartbeat says to stop.\n const ctrl = new AbortController();\n const detachExternal = linkAbort(externalSignal, ctrl);\n const lease = new Lease(ctrl);\n // Lazily load the Node-only toolset module — see the import note at the top.\n const agentToolset = await import(\"../../tools/agent-toolset/node.mjs\");\n // Start the lease heartbeat BEFORE the session fetch and the skill /\n // memory downloads: those can take longer than the lease TTL, and an\n // unheartbeated lease lapsing mid-download would let another worker\n // reclaim the item and serve the same session (split-brain).\n //\n // Each heartbeat reports the lease TTL the server is enforcing; it becomes\n // the runner's tool-result send retry window so a send keeps retrying\n // exactly as long as the lease could still be live. The runner is only\n // built after the downloads, so hold the latest TTL until then.\n let leaseTtlMs;\n let runner;\n const heartbeatPromise = heartbeatLoop(sessionClient, work, lease, log, this.requestOptions, (ttlMs) => {\n leaseTtlMs = ttlMs;\n runner?._setSendRetryWindow(ttlMs);\n }).catch((e) => {\n if (!ctrl.signal.aborted)\n log.error('heartbeat loop failed', { work_id: work.id, error: String(e) });\n ctrl.abort();\n });\n let cleanupSkills = async () => { };\n let stores;\n let cleanEnd = false;\n try {\n if (work.data.type !== 'session') {\n log.debug('skipping non-session work item', { work_id: work.id, type: work.data.type });\n return;\n }\n // One session fetch, shared by the skills download and the memory-store\n // download — two fetches could disagree about the attached resources.\n // A failed fetch fails the work item (the teardown below still stops\n // or releases it).\n const session = await sessionClient.beta.sessions.retrieve(sessionId);\n // Only with the session in hand can we tell one that simply has no\n // memory from one whose memory we cannot mount. Turning memory off\n // with the interval knob is a deliberate opt-out and stays quiet.\n if (sessionsToken === null && this.memorySyncIntervalMs !== null && hasMemoryStore(session)) {\n throw new agentToolset.SessionMemoryError(`cannot mount the session's memories: the work item carried no sessions token ` +\n `(work_id=${work.id}, session_id=${sessionId}); ` +\n 'the memory endpoints reject the environment key, so the poller must issue a per-item ' +\n '`secret` carrying `sessions_token`, or set `memorySyncIntervalMs: null` to run without memory');\n }\n const ctx = {\n workdir: this.workdir,\n // The scoped sub-client, not the parent: the skill download\n // `setupSkills` performs for this session rides the same per-item\n // credential as every other per-item call.\n client: sessionClient,\n session,\n ...(this.maxFileBytes !== undefined ? { maxFileBytes: this.maxFileBytes } : {}),\n };\n try {\n cleanupSkills = await agentToolset.setupSkills(ctx);\n }\n catch (e) {\n log.warn('skill setup failed', { session_id: sessionId, work_id: work.id, error: String(e) });\n }\n // Memory stores: the memory_stores endpoints accept the per-item sessions\n // token but reject the environment key, so download and sync only run when\n // the item carried a usable secret (and the interval is set).\n // `sessionClient` is already scoped to that token then, so the memory\n // calls ride the same sub-client. A store that cannot be materialised\n // throws `SessionMemoryError` out of `download` and fails the item.\n if (sessionsToken !== null && this.memorySyncIntervalMs !== null) {\n stores = new agentToolset.SessionMemoryStores(sessionClient, {\n workdir: this.workdir,\n ...(this.memorySyncIntervalMs !== undefined ? { syncIntervalMs: this.memorySyncIntervalMs } : {}),\n syncDeletions: this.memorySyncDeletions,\n });\n await stores.download(session);\n // A store mounted outside the workdir must stay reachable by the file\n // tools; read-only stores still refuse writes.\n ctx.allowedRoots = stores.roots;\n ctx.readOnlyRoots = stores.readOnlyRoots;\n }\n else {\n log.debug('memory stores disabled for this item', { work_id: work.id });\n }\n const tools = typeof this.tools === 'function' ?\n this.tools(ctx)\n : this.tools ?? agentToolset.betaAgentToolset20260401(ctx);\n runner = new SessionToolRunner(sessionId, {\n client: sessionClient,\n tools,\n ...(this.maxIdleMs !== undefined ? { maxIdleMs: this.maxIdleMs } : {}),\n ...(this.requestOptions !== undefined ? { requestOptions: this.requestOptions } : {}),\n signal: ctrl.signal,\n });\n if (leaseTtlMs !== undefined)\n runner._setSendRetryWindow(leaseTtlMs);\n for await (const _ of runner) {\n // Drive the runner to completion; per-call observability is not part\n // of this composition's surface — use `SessionToolRunner` directly\n // (via `client.beta.sessions.events.toolRunner`) if you want it.\n if (stores)\n await stores.syncIfDue();\n }\n // Only a clean stream end earns the last full sync; it runs in the\n // teardown below.\n cleanEnd = !ctrl.signal.aborted;\n }\n finally {\n // The heartbeat keeps the lease alive until this teardown is done.\n try {\n // cleanupSkills first, so its failure cannot skip the memory flush.\n await cleanupSkills().catch((e) => {\n log.warn('skill cleanup failed', { session_id: sessionId, work_id: work.id, error: String(e) });\n });\n }\n finally {\n if (stores) {\n const boundMs = agentToolset.MEMORY_FLUSH_TIMEOUT_MS;\n if (cleanEnd) {\n const finishCutOff = await withTimeout(stores.finish(), boundMs);\n if (finishCutOff) {\n log.warn(`final memory sync cut off after ${boundMs}ms; the flush that follows still uploads changed files`, { session_id: sessionId, work_id: work.id });\n }\n }\n // Also after finish(): it swallows its own failures, and a\n // clean flush is a no-op.\n const flushBound = new AbortController();\n const flushCutOff = await withTimeout(stores.flushWrites(flushBound.signal), boundMs);\n if (flushCutOff) {\n flushBound.abort();\n log.warn(`memory flush cut off after ${boundMs}ms; changed files it had not uploaded yet are not saved`, { session_id: sessionId, work_id: work.id });\n }\n await stores.dispose().catch((e) => {\n log.warn('memory store cleanup failed', {\n session_id: sessionId,\n work_id: work.id,\n error: String(e),\n });\n });\n }\n }\n lease.finish('runner_done');\n detachExternal();\n await heartbeatPromise;\n // Stop only an item this worker still holds — after a lost lease it\n // belongs to the queue or another worker.\n if (lease.lost) {\n log.info('lease lost; released without stopping it', { session_id: sessionId, work_id: work.id });\n }\n else {\n await forceStop(sessionClient, work, log, this.requestOptions);\n }\n }\n};\n/**\n * Resolve when `p` settles or `ms` elapses — `true` when `ms` elapsed\n * first. A timed-out `p` keeps running — JS cannot cancel a promise.\n */\nasync function withTimeout(p, ms) {\n let timer;\n try {\n return await Promise.race([\n p.then(() => false, () => false),\n new Promise((resolve) => {\n timer = setTimeout(() => resolve(true), ms);\n }),\n ]);\n }\n finally {\n if (timer !== undefined)\n clearTimeout(timer);\n }\n}\n/** Force-stop a claimed work item, swallowing the 409 that means it's already stopped. */\nasync function forceStop(client, work, log, requestOptions) {\n try {\n await client.beta.environments.work.stop(work.id, { environment_id: work.environment_id, force: true }, \n // Caller's headers pass through; the helper-tag header is on the scoped\n // sub-client's default_headers via copyClientForHelper, so no per-call\n // re-stamping needed.\n { ...requestOptions, headers: buildHeaders([requestOptions?.headers]) });\n }\n catch (e) {\n if (!isStatus(e, 409)) {\n log.error('force-stop on exit failed', { work_id: work.id, error: String(e) });\n }\n }\n}\n/**\n * This worker's view of one work-item lease: the per-item abort signal plus\n * why heartbeating ended. The first recorded reason wins, so a run aborted\n * *because* the lease was lost still reads as lost afterwards; an abort with\n * no recorded reason (the external signal) is not lost.\n */\nclass Lease {\n constructor(ctrl) {\n _Lease_ctrl.set(this, void 0);\n _Lease_endReason.set(this, void 0);\n __classPrivateFieldSet(this, _Lease_ctrl, ctrl, \"f\");\n }\n get signal() {\n return __classPrivateFieldGet(this, _Lease_ctrl, \"f\").signal;\n }\n finish(reason) {\n __classPrivateFieldSet(this, _Lease_endReason, __classPrivateFieldGet(this, _Lease_endReason, \"f\") ?? reason, \"f\");\n __classPrivateFieldGet(this, _Lease_ctrl, \"f\").abort();\n }\n /** True once the item belongs to the queue or another worker. */\n get lost() {\n return __classPrivateFieldGet(this, _Lease_endReason, \"f\") === 'lease_lost' || __classPrivateFieldGet(this, _Lease_endReason, \"f\") === 'assumed_lost';\n }\n}\n_Lease_ctrl = new WeakMap(), _Lease_endReason = new WeakMap();\n/** The server's view of the lease carried by a 412 heartbeat response, or empty if absent. */\nfunction serverLeaseState(e) {\n let node = e instanceof APIError ? e.error : undefined;\n for (const key of ['error', 'details', 'current_state']) {\n if (!isObj(node))\n return {};\n node = node[key];\n }\n return isObj(node) ? node : {};\n}\n/**\n * Keep the work-item lease alive while a session is being served. Runs until\n * `lease` ends, and ends it itself when the control plane reports the work is\n * `stopping`/`stopped` or no longer extends the lease, when a heartbeat is\n * rejected (a 412 means the lease already belongs to someone else), or when no\n * heartbeat has succeeded for longer than the lease ttl (the lease is assumed\n * lost, so two runners don't end up serving the same work). Each heartbeat\n * call is cut off after the current beat interval so a hung request cannot\n * outlive the lease it is meant to renew.\n */\nasync function heartbeatLoop(client, work, lease, logger, requestOptions, \n/** Called with the server-reported lease TTL after every successful beat. */\nonLeaseTtl) {\n let intervalMs = HEARTBEAT_DEFAULT_MS;\n let ttlMs = HEARTBEAT_TTL_DEFAULT_MS;\n let lastSuccessMs = Date.now();\n let last = NO_HEARTBEAT_SENTINEL;\n const beat = async () => {\n // Not the request `timeout` option: the core client retries timeouts, so\n // it would not bound the call as a whole.\n const beatCtrl = new AbortController();\n const detach = linkAbort(lease.signal, beatCtrl);\n const cutoff = setTimeout(() => beatCtrl.abort(), intervalMs);\n try {\n const resp = await client.beta.environments.work.heartbeat(work.id, { environment_id: work.environment_id, expected_last_heartbeat: last }, { ...requestOptions, headers: buildHeaders([requestOptions?.headers]), signal: beatCtrl.signal });\n lastSuccessMs = Date.now();\n last = resp.last_heartbeat;\n if (resp.ttl_seconds > 0) {\n ttlMs = resp.ttl_seconds * 1000;\n intervalMs = Math.max(1000, Math.min(ttlMs / 2, HEARTBEAT_DEFAULT_MS));\n onLeaseTtl?.(ttlMs);\n }\n if (resp.state === 'stopping' || resp.state === 'stopped') {\n logger.info('heartbeat signals shutdown', { work_id: work.id, state: resp.state });\n lease.finish('control_plane_stop');\n }\n if (!resp.lease_extended) {\n logger.warn('lease not extended, shutting down', { work_id: work.id });\n lease.finish('control_plane_stop');\n }\n }\n catch (e) {\n // An abort throws to unwind the caller (the `heartbeatLoop(...).catch`\n // in `#handleItem`) rather than returning early.\n lease.signal.throwIfAborted();\n if (isStatus(e, 412)) {\n const server = serverLeaseState(e);\n logger.error('lease lost: heartbeat precondition failed', {\n work_id: work.id,\n server_state: server['state'],\n server_ttl_seconds: server['ttl_seconds'],\n server_last_heartbeat: server['last_heartbeat'],\n });\n lease.finish('lease_lost');\n return;\n }\n if (isFatal4xx(e)) {\n logger.error('permanent heartbeat failure', { work_id: work.id, error: String(e) });\n lease.finish('heartbeat_rejected');\n throw e;\n }\n if (Date.now() - lastSuccessMs > ttlMs) {\n logger.error('lease assumed lost: no successful heartbeat in ttl', {\n work_id: work.id,\n ttl_ms: ttlMs,\n error: String(e),\n });\n lease.finish('assumed_lost');\n return;\n }\n logger.warn('transient heartbeat failure', { work_id: work.id, error: String(e) });\n }\n finally {\n clearTimeout(cutoff);\n detach();\n }\n };\n await beat();\n while (!lease.signal.aborted) {\n await sleep(intervalMs, lease.signal);\n lease.signal.throwIfAborted();\n await beat();\n }\n}\n//# sourceMappingURL=worker.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nimport { WorkPoller, } from \"../../../lib/environments/poller.mjs\";\nimport { EnvironmentWorker, } from \"../../../lib/environments/worker.mjs\";\nexport class Work extends APIResource {\n /**\n * Note: these endpoints are called automatically by the pre-built environment\n * worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted\n * sandbox environments. They are included here as a reference; you do not need to\n * invoke them directly.\n *\n * Retrieve detailed information about a specific work item.\n *\n * @example\n * ```ts\n * const betaSelfHostedWork =\n * await client.beta.environments.work.retrieve('work_id', {\n * environment_id: 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * });\n * ```\n */\n retrieve(workID, params, options) {\n const { environment_id, betas, workspace_id } = params;\n return this._client.get(path `/v1/environments/${environment_id}/work/${workID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Note: these endpoints are called automatically by the pre-built environment\n * worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted\n * sandbox environments. They are included here as a reference; you do not need to\n * invoke them directly.\n *\n * Update work item metadata with merge semantics.\n *\n * @example\n * ```ts\n * const betaSelfHostedWork =\n * await client.beta.environments.work.update('work_id', {\n * environment_id: 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * metadata: { foo: 'string' },\n * });\n * ```\n */\n update(workID, params, options) {\n const { environment_id, betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/environments/${environment_id}/work/${workID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Note: these endpoints are called automatically by the pre-built environment\n * worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted\n * sandbox environments. They are included here as a reference; you do not need to\n * invoke them directly.\n *\n * List work items in an environment.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaSelfHostedWork of client.beta.environments.work.list(\n * 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * )) {\n * // ...\n * }\n * ```\n */\n list(environmentID, params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/environments/${environmentID}/work?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString() },\n options?.headers,\n ]),\n });\n }\n /**\n * Note: these endpoints are called automatically by the pre-built environment\n * worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted\n * sandbox environments. They are included here as a reference; you do not need to\n * invoke them directly.\n *\n * Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting'\n * and removing it from the queue.\n *\n * @example\n * ```ts\n * const betaSelfHostedWork =\n * await client.beta.environments.work.ack('work_id', {\n * environment_id: 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * });\n * ```\n */\n ack(workID, params, options) {\n const { environment_id, betas } = params;\n return this._client.post(path `/v1/environments/${environment_id}/work/${workID}/ack?beta=true`, {\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString() },\n options?.headers,\n ]),\n });\n }\n /**\n * Note: these endpoints are called automatically by the pre-built environment\n * worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted\n * sandbox environments. They are included here as a reference; you do not need to\n * invoke them directly.\n *\n * Record a heartbeat for a work item to maintain the lease.\n *\n * @example\n * ```ts\n * const betaSelfHostedWorkHeartbeatResponse =\n * await client.beta.environments.work.heartbeat('work_id', {\n * environment_id: 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * });\n * ```\n */\n heartbeat(workID, params, options) {\n const { environment_id, desired_ttl_seconds, expected_last_heartbeat, betas } = params;\n return this._client.post(path `/v1/environments/${environment_id}/work/${workID}/heartbeat?beta=true`, {\n query: { desired_ttl_seconds, expected_last_heartbeat },\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString() },\n options?.headers,\n ]),\n });\n }\n /**\n * Note: these endpoints are called automatically by the pre-built environment\n * worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted\n * sandbox environments. They are included here as a reference; you do not need to\n * invoke them directly.\n *\n * Long poll for work items in the queue.\n *\n * @example\n * ```ts\n * const betaSelfHostedWork =\n * await client.beta.environments.work.poll(\n * 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * );\n * ```\n */\n poll(environmentID, params = {}, options) {\n const { betas, 'Anthropic-Worker-ID': anthropicWorkerID, ...query } = params ?? {};\n return this._client.get(path `/v1/environments/${environmentID}/work/poll?beta=true`, {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(anthropicWorkerID != null ? { 'Anthropic-Worker-ID': anthropicWorkerID } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Get statistics about the work queue for an environment.\n *\n * @example\n * ```ts\n * const betaSelfHostedWorkQueueStats =\n * await client.beta.environments.work.stats(\n * 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * );\n * ```\n */\n stats(environmentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/environments/${environmentID}/work/stats?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Note: these endpoints are called automatically by the pre-built environment\n * worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted\n * sandbox environments. They are included here as a reference; you do not need to\n * invoke them directly.\n *\n * Stop a work item, initiating graceful or forced shutdown.\n *\n * @example\n * ```ts\n * const betaSelfHostedWork =\n * await client.beta.environments.work.stop('work_id', {\n * environment_id: 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * });\n * ```\n */\n stop(workID, params, options) {\n const { environment_id, betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/environments/${environment_id}/work/${workID}/stop?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Continuously claim work from a self-hosted environment, ack each item,\n * and yield it. Posts `stop` automatically when the consumer's loop body\n * returns or when iteration ends.\n *\n * @example\n * ```ts\n * for await (const work of client.beta.environments.work.poller({\n * environmentId,\n * environmentKey,\n * })) {\n * if (work.data.type !== 'session') continue;\n * // ...service the work...\n * }\n * ```\n */\n poller(opts) {\n return new WorkPoller({ ...opts, client: this._client });\n }\n worker(opts) {\n return new EnvironmentWorker({ ...opts, client: this._client });\n }\n}\nexport { WorkPoller } from \"../../../lib/environments/poller.mjs\";\nexport { EnvironmentWorker } from \"../../../lib/environments/worker.mjs\";\nWork.WorkPoller = WorkPoller;\nWork.EnvironmentWorker = EnvironmentWorker;\n//# sourceMappingURL=work.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as WorkAPI from \"./work.mjs\";\nimport { Work, } from \"./work.mjs\";\nimport { PageCursor } from \"../../../core/pagination.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.work = new WorkAPI.Work(this._client);\n }\n /**\n * Create a new environment with the specified configuration.\n *\n * @example\n * ```ts\n * const betaEnvironment =\n * await client.beta.environments.create({\n * name: 'python-data-analysis',\n * });\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/environments?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Retrieve a specific environment by ID.\n *\n * @example\n * ```ts\n * const betaEnvironment =\n * await client.beta.environments.retrieve(\n * 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * );\n * ```\n */\n retrieve(environmentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/environments/${environmentID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update an existing environment's configuration.\n *\n * @example\n * ```ts\n * const betaEnvironment =\n * await client.beta.environments.update(\n * 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * );\n * ```\n */\n update(environmentID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/environments/${environmentID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List environments with pagination support.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaEnvironment of client.beta.environments.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/environments?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete an environment by ID. Returns a confirmation of the deletion.\n *\n * @example\n * ```ts\n * const betaEnvironmentDeleteResponse =\n * await client.beta.environments.delete(\n * 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * );\n * ```\n */\n delete(environmentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.delete(path `/v1/environments/${environmentID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive an environment by ID. Archived environments cannot be used to create new\n * sessions.\n *\n * @example\n * ```ts\n * const betaEnvironment =\n * await client.beta.environments.archive(\n * 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * );\n * ```\n */\n archive(environmentID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/environments/${environmentID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nEnvironments.Work = Work;\n//# sourceMappingURL=environments.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Memories extends APIResource {\n /**\n * Create a memory\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemory =\n * await client.beta.memoryStores.memories.create(\n * 'memory_store_id',\n * { content: 'content', path: 'xx' },\n * );\n * ```\n */\n create(memoryStoreID, params, options) {\n const { view, betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/memory_stores/${memoryStoreID}/memories?beta=true`, {\n query: { view },\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Retrieve a memory\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemory =\n * await client.beta.memoryStores.memories.retrieve(\n * 'memory_id',\n * { memory_store_id: 'memory_store_id' },\n * );\n * ```\n */\n retrieve(memoryID, params, options) {\n const { memory_store_id, betas, workspace_id, ...query } = params;\n return this._client.get(path `/v1/memory_stores/${memory_store_id}/memories/${memoryID}?beta=true`, {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update a memory\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemory =\n * await client.beta.memoryStores.memories.update(\n * 'memory_id',\n * { memory_store_id: 'memory_store_id' },\n * );\n * ```\n */\n update(memoryID, params, options) {\n const { memory_store_id, view, betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/memory_stores/${memory_store_id}/memories/${memoryID}?beta=true`, {\n query: { view },\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List memories\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsMemoryListItem of client.beta.memoryStores.memories.list(\n * 'memory_store_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(memoryStoreID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/memory_stores/${memoryStoreID}/memories?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete a memory\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeletedMemory =\n * await client.beta.memoryStores.memories.delete(\n * 'memory_id',\n * { memory_store_id: 'memory_store_id' },\n * );\n * ```\n */\n delete(memoryID, params, options) {\n const { memory_store_id, expected_content_sha256, betas, workspace_id } = params;\n return this._client.delete(path `/v1/memory_stores/${memory_store_id}/memories/${memoryID}?beta=true`, {\n query: { expected_content_sha256 },\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=memories.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class MemoryVersions extends APIResource {\n /**\n * Retrieve a memory version\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemoryVersion =\n * await client.beta.memoryStores.memoryVersions.retrieve(\n * 'memory_version_id',\n * { memory_store_id: 'memory_store_id' },\n * );\n * ```\n */\n retrieve(memoryVersionID, params, options) {\n const { memory_store_id, betas, workspace_id, ...query } = params;\n return this._client.get(path `/v1/memory_stores/${memory_store_id}/memory_versions/${memoryVersionID}?beta=true`, {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List memory versions\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsMemoryVersion of client.beta.memoryStores.memoryVersions.list(\n * 'memory_store_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(memoryStoreID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/memory_stores/${memoryStoreID}/memory_versions?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Redact a memory version\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemoryVersion =\n * await client.beta.memoryStores.memoryVersions.redact(\n * 'memory_version_id',\n * { memory_store_id: 'memory_store_id' },\n * );\n * ```\n */\n redact(memoryVersionID, params, options) {\n const { memory_store_id, betas, workspace_id } = params;\n return this._client.post(path `/v1/memory_stores/${memory_store_id}/memory_versions/${memoryVersionID}/redact?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=memory-versions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MemoriesAPI from \"./memories.mjs\";\nimport { Memories, } from \"./memories.mjs\";\nimport * as MemoryVersionsAPI from \"./memory-versions.mjs\";\nimport { MemoryVersions, } from \"./memory-versions.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class MemoryStores extends APIResource {\n constructor() {\n super(...arguments);\n this.memories = new MemoriesAPI.Memories(this._client);\n this.memoryVersions = new MemoryVersionsAPI.MemoryVersions(this._client);\n }\n /**\n * Create a memory store\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemoryStore =\n * await client.beta.memoryStores.create({ name: 'x' });\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/memory_stores?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Retrieve a memory store\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemoryStore =\n * await client.beta.memoryStores.retrieve(\n * 'memory_store_id',\n * );\n * ```\n */\n retrieve(memoryStoreID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/memory_stores/${memoryStoreID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update a memory store\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemoryStore =\n * await client.beta.memoryStores.update('memory_store_id');\n * ```\n */\n update(memoryStoreID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/memory_stores/${memoryStoreID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List memory stores\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsMemoryStore of client.beta.memoryStores.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/memory_stores?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete a memory store\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeletedMemoryStore =\n * await client.beta.memoryStores.delete('memory_store_id');\n * ```\n */\n delete(memoryStoreID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.delete(path `/v1/memory_stores/${memoryStoreID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive a memory store\n *\n * @example\n * ```ts\n * const betaManagedAgentsMemoryStore =\n * await client.beta.memoryStores.archive('memory_store_id');\n * ```\n */\n archive(memoryStoreID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/memory_stores/${memoryStoreID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'agent-memory-2026-07-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nMemoryStores.Memories = Memories;\nMemoryStores.MemoryVersions = MemoryVersions;\n//# sourceMappingURL=memory-stores.mjs.map","import { AnthropicError } from \"../../core/error.mjs\";\nimport { ReadableStreamToAsyncIterable } from \"../shims.mjs\";\nimport { LineDecoder } from \"./line.mjs\";\nexport class JSONLDecoder {\n constructor(iterator, controller) {\n this.iterator = iterator;\n this.controller = controller;\n }\n async *decoder() {\n const lineDecoder = new LineDecoder();\n for await (const chunk of this.iterator) {\n for (const line of lineDecoder.decode(chunk)) {\n yield JSON.parse(line);\n }\n }\n for (const line of lineDecoder.flush()) {\n yield JSON.parse(line);\n }\n }\n [Symbol.asyncIterator]() {\n return this.decoder();\n }\n static fromResponse(response, controller) {\n if (!response.body) {\n controller.abort();\n if (typeof globalThis.navigator !== 'undefined' &&\n globalThis.navigator.product === 'ReactNative') {\n throw new AnthropicError(`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 AnthropicError(`Attempted to iterate over a response with no body`);\n }\n return new JSONLDecoder(ReadableStreamToAsyncIterable(response.body), controller);\n }\n}\n//# sourceMappingURL=jsonl.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { Page } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { JSONLDecoder } from \"../../../internal/decoders/jsonl.mjs\";\nimport { AnthropicError } from \"../../../error.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Batches extends APIResource {\n /**\n * Send a batch of Message creation requests.\n *\n * The Message Batches API can be used to process multiple Messages API requests at\n * once. Once a Message Batch is created, it begins processing immediately. Batches\n * can take up to 24 hours to complete.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const betaMessageBatch =\n * await client.beta.messages.batches.create({\n * requests: [\n * {\n * custom_id: 'my-custom-id-1',\n * params: {\n * max_tokens: 1024,\n * messages: [\n * { content: 'Hello, world', role: 'user' },\n * ],\n * model: 'claude-opus-5',\n * },\n * },\n * ],\n * });\n * ```\n */\n create(params, options) {\n const { betas, user_profile_id, workspace_id, ...body } = params;\n return this._client.post('/v1/messages/batches?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'message-batches-2024-09-24'].toString(),\n ...(user_profile_id != null ? { 'anthropic-user-profile-id': user_profile_id } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * This endpoint is idempotent and can be used to poll for Message Batch\n * completion. To access the results of a Message Batch, make a request to the\n * `results_url` field in the response.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const betaMessageBatch =\n * await client.beta.messages.batches.retrieve(\n * 'message_batch_id',\n * );\n * ```\n */\n retrieve(messageBatchID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/messages/batches/${messageBatchID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'message-batches-2024-09-24'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List all Message Batches within a Workspace. Most recently created batches are\n * returned first.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaMessageBatch of client.beta.messages.batches.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/messages/batches?beta=true', (Page), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'message-batches-2024-09-24'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete a Message Batch.\n *\n * Message Batches can only be deleted once they've finished processing. If you'd\n * like to delete an in-progress batch, you must first cancel it.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const betaDeletedMessageBatch =\n * await client.beta.messages.batches.delete(\n * 'message_batch_id',\n * );\n * ```\n */\n delete(messageBatchID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.delete(path `/v1/messages/batches/${messageBatchID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'message-batches-2024-09-24'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Batches may be canceled any time before processing ends. Once cancellation is\n * initiated, the batch enters a `canceling` state, at which time the system may\n * complete any in-progress, non-interruptible requests before finalizing\n * cancellation.\n *\n * The number of canceled requests is specified in `request_counts`. To determine\n * which requests were canceled, check the individual results within the batch.\n * Note that cancellation may not result in any canceled requests if they were\n * non-interruptible.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const betaMessageBatch =\n * await client.beta.messages.batches.cancel(\n * 'message_batch_id',\n * );\n * ```\n */\n cancel(messageBatchID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/messages/batches/${messageBatchID}/cancel?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'message-batches-2024-09-24'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Streams the results of a Message Batch as a `.jsonl` file.\n *\n * Each line in the file is a JSON object containing the result of a single request\n * in the Message Batch. Results are not guaranteed to be in the same order as\n * requests. Use the `custom_id` field to match results to requests.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const betaMessageBatchIndividualResponse =\n * await client.beta.messages.batches.results(\n * 'message_batch_id',\n * );\n * ```\n */\n async results(messageBatchID, params = {}, options) {\n const batch = await this.retrieve(messageBatchID, params, options);\n if (!batch.results_url) {\n throw new AnthropicError(`No batch \\`results_url\\`; Has it finished processing? ${batch.processing_status} - ${batch.id}`);\n }\n const { betas, workspace_id } = params ?? {};\n return this._client\n .get(batch.results_url, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'message-batches-2024-09-24'].toString(),\n Accept: 'application/binary',\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n stream: true,\n __binaryResponse: true,\n })\n ._thenUnwrap((_, props) => JSONLDecoder.fromResponse(props.response, props.controller));\n }\n}\n//# sourceMappingURL=batches.mjs.map","// File containing shared constants\n/**\n * Model-specific timeout constraints for non-streaming requests\n */\nexport const MODEL_NONSTREAMING_TOKENS = {\n 'claude-opus-4@20250514': 8192,\n 'anthropic.claude-opus-4-1-20250805-v1:0': 8192,\n 'claude-opus-4-1@20250805': 8192,\n};\n//# sourceMappingURL=constants.mjs.map","import { AnthropicError } from \"../core/error.mjs\";\nfunction getOutputFormat(params) {\n // Prefer output_format (deprecated) over output_config.format for backward compatibility\n return params?.output_format ?? params?.output_config?.format;\n}\nexport function maybeParseBetaMessage(message, params, opts) {\n const outputFormat = getOutputFormat(params);\n if (!params || !('parse' in (outputFormat ?? {}))) {\n return {\n ...message,\n content: message.content.map((block) => {\n if (block.type === 'text') {\n const parsedBlock = Object.defineProperty({ ...block }, 'parsed_output', {\n value: null,\n enumerable: false,\n });\n return Object.defineProperty(parsedBlock, 'parsed', {\n get() {\n opts.logger.warn('The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead.');\n return null;\n },\n enumerable: false,\n });\n }\n return block;\n }),\n parsed_output: null,\n };\n }\n return parseBetaMessage(message, params, opts);\n}\nexport function parseBetaMessage(message, params, opts) {\n let firstParsedOutput = null;\n const content = message.content.map((block) => {\n if (block.type === 'text') {\n const parsedOutput = parseBetaOutputFormat(params, block.text);\n if (firstParsedOutput === null) {\n firstParsedOutput = parsedOutput;\n }\n const parsedBlock = Object.defineProperty({ ...block }, 'parsed_output', {\n value: parsedOutput,\n enumerable: false,\n });\n return Object.defineProperty(parsedBlock, 'parsed', {\n get() {\n opts.logger.warn('The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead.');\n return parsedOutput;\n },\n enumerable: false,\n });\n }\n return block;\n });\n return {\n ...message,\n content,\n parsed_output: firstParsedOutput,\n };\n}\nfunction parseBetaOutputFormat(params, content) {\n const outputFormat = getOutputFormat(params);\n if (outputFormat?.type !== 'json_schema') {\n return null;\n }\n try {\n if ('parse' in outputFormat) {\n return outputFormat.parse(content);\n }\n return JSON.parse(content);\n }\n catch (error) {\n throw new AnthropicError(`Failed to parse structured output: ${error}`);\n }\n}\n//# sourceMappingURL=beta-parser.mjs.map","const tokenize = (input) => {\n let current = 0;\n let tokens = [];\n while (current < input.length) {\n let char = input[current];\n if (char === '\\\\') {\n current++;\n continue;\n }\n if (char === '{') {\n tokens.push({\n type: 'brace',\n value: '{',\n });\n current++;\n continue;\n }\n if (char === '}') {\n tokens.push({\n type: 'brace',\n value: '}',\n });\n current++;\n continue;\n }\n if (char === '[') {\n tokens.push({\n type: 'paren',\n value: '[',\n });\n current++;\n continue;\n }\n if (char === ']') {\n tokens.push({\n type: 'paren',\n value: ']',\n });\n current++;\n continue;\n }\n if (char === ':') {\n tokens.push({\n type: 'separator',\n value: ':',\n });\n current++;\n continue;\n }\n if (char === ',') {\n tokens.push({\n type: 'delimiter',\n value: ',',\n });\n current++;\n continue;\n }\n if (char === '\"') {\n let value = '';\n let danglingQuote = false;\n char = input[++current];\n while (char !== '\"') {\n if (current === input.length) {\n danglingQuote = true;\n break;\n }\n if (char === '\\\\') {\n current++;\n if (current === input.length) {\n danglingQuote = true;\n break;\n }\n value += char + input[current];\n char = input[++current];\n }\n else {\n value += char;\n char = input[++current];\n }\n }\n char = input[++current];\n if (!danglingQuote) {\n tokens.push({\n type: 'string',\n value,\n });\n }\n continue;\n }\n let WHITESPACE = /\\s/;\n if (char && WHITESPACE.test(char)) {\n current++;\n continue;\n }\n let NUMBERS = /[0-9]/;\n if ((char && NUMBERS.test(char)) || char === '-' || char === '.') {\n let value = '';\n if (char === '-') {\n value += char;\n char = input[++current];\n }\n while (char &&\n (NUMBERS.test(char) ||\n char === '.' ||\n // exponent marker, e.g. `1e10` or `1.5E-9`\n char === 'e' ||\n char === 'E' ||\n // exponent sign, only valid immediately after the exponent marker\n ((char === '-' || char === '+') &&\n (value[value.length - 1] === 'e' || value[value.length - 1] === 'E')))) {\n value += char;\n char = input[++current];\n }\n tokens.push({\n type: 'number',\n value,\n });\n continue;\n }\n let LETTERS = /[a-z]/i;\n if (char && LETTERS.test(char)) {\n let value = '';\n while (char && LETTERS.test(char)) {\n if (current === input.length) {\n break;\n }\n value += char;\n char = input[++current];\n }\n if (value == 'true' || value == 'false' || value === 'null') {\n tokens.push({\n type: 'name',\n value,\n });\n }\n else {\n // unknown token, e.g. `nul` which isn't quite `null`\n current++;\n continue;\n }\n continue;\n }\n current++;\n }\n return tokens;\n}, strip = (tokens) => {\n if (tokens.length === 0) {\n return tokens;\n }\n let lastToken = tokens[tokens.length - 1];\n switch (lastToken.type) {\n case 'separator':\n tokens = tokens.slice(0, tokens.length - 1);\n return strip(tokens);\n break;\n case 'number':\n let lastCharacterOfLastToken = lastToken.value[lastToken.value.length - 1];\n if (lastCharacterOfLastToken === '.' ||\n lastCharacterOfLastToken === '-' ||\n lastCharacterOfLastToken === '+' ||\n lastCharacterOfLastToken === 'e' ||\n lastCharacterOfLastToken === 'E') {\n tokens = tokens.slice(0, tokens.length - 1);\n return strip(tokens);\n }\n case 'string':\n let tokenBeforeTheLastToken = tokens[tokens.length - 2];\n if (tokenBeforeTheLastToken?.type === 'delimiter') {\n tokens = tokens.slice(0, tokens.length - 1);\n return strip(tokens);\n }\n else if (tokenBeforeTheLastToken?.type === 'brace' && tokenBeforeTheLastToken.value === '{') {\n tokens = tokens.slice(0, tokens.length - 1);\n return strip(tokens);\n }\n break;\n case 'delimiter':\n tokens = tokens.slice(0, tokens.length - 1);\n return strip(tokens);\n break;\n }\n return tokens;\n}, unstrip = (tokens) => {\n let tail = [];\n tokens.map((token) => {\n if (token.type === 'brace') {\n if (token.value === '{') {\n tail.push('}');\n }\n else {\n tail.splice(tail.lastIndexOf('}'), 1);\n }\n }\n if (token.type === 'paren') {\n if (token.value === '[') {\n tail.push(']');\n }\n else {\n tail.splice(tail.lastIndexOf(']'), 1);\n }\n }\n });\n if (tail.length > 0) {\n tail.reverse().map((item) => {\n if (item === '}') {\n tokens.push({\n type: 'brace',\n value: '}',\n });\n }\n else if (item === ']') {\n tokens.push({\n type: 'paren',\n value: ']',\n });\n }\n });\n }\n return tokens;\n}, generate = (tokens) => {\n let output = '';\n tokens.map((token) => {\n switch (token.type) {\n case 'string':\n output += '\"' + token.value + '\"';\n break;\n default:\n output += token.value;\n break;\n }\n });\n return output;\n}, partialParse = (input) => JSON.parse(generate(unstrip(strip(tokenize(input)))));\nexport { partialParse };\n//# sourceMappingURL=parser.mjs.map","import { partialParse } from \"../_vendor/partial-json-parser/parser.mjs\";\nexport const JSON_BUF_PROPERTY = '__json_buf';\n/**\n * Copies a tool-use block with an updated `__json_buf`, installing `.input` as\n * a memoized getter so the partial-JSON parse happens on first read instead of\n * on every delta.\n */\nexport function withLazyInput(prev, jsonBuf) {\n const next = {};\n for (const key of Object.keys(prev)) {\n if (key !== 'input')\n next[key] = prev[key];\n }\n Object.defineProperty(next, JSON_BUF_PROPERTY, { value: jsonBuf, enumerable: false, writable: true });\n let input;\n let parsed = false;\n Object.defineProperty(next, 'input', {\n enumerable: true,\n configurable: true,\n get() {\n if (!parsed) {\n input = jsonBuf ? partialParse(jsonBuf) : {};\n parsed = true;\n }\n return input;\n },\n });\n return next;\n}\n//# sourceMappingURL=message-stream-utils.mjs.map","var _BetaMessageStream_instances, _BetaMessageStream_currentMessageSnapshot, _BetaMessageStream_params, _BetaMessageStream_connectedPromise, _BetaMessageStream_resolveConnectedPromise, _BetaMessageStream_rejectConnectedPromise, _BetaMessageStream_endPromise, _BetaMessageStream_resolveEndPromise, _BetaMessageStream_rejectEndPromise, _BetaMessageStream_listeners, _BetaMessageStream_ended, _BetaMessageStream_errored, _BetaMessageStream_aborted, _BetaMessageStream_catchingPromiseCreated, _BetaMessageStream_response, _BetaMessageStream_request_id, _BetaMessageStream_workspace_id, _BetaMessageStream_logger, _BetaMessageStream_getFinalMessage, _BetaMessageStream_getFinalText, _BetaMessageStream_handleError, _BetaMessageStream_beginRequest, _BetaMessageStream_addStreamEvent, _BetaMessageStream_endRequest, _BetaMessageStream_accumulateMessage, _BetaMessageStream_toolInputParseError;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { STAINLESS_HELPER_METHOD_HEADER } from \"../internal/stainless-helper-header.mjs\";\nimport { AnthropicError, APIUserAbortError } from \"../error.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { checkNever } from \"../internal/utils/values.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { maybeParseBetaMessage } from \"./beta-parser.mjs\";\nimport { JSON_BUF_PROPERTY, withLazyInput } from \"../internal/message-stream-utils.mjs\";\nfunction tracksToolInput(content) {\n return content.type === 'tool_use' || content.type === 'server_tool_use' || content.type === 'mcp_tool_use';\n}\nexport class BetaMessageStream {\n constructor(params, opts) {\n _BetaMessageStream_instances.add(this);\n this.messages = [];\n this.receivedMessages = [];\n _BetaMessageStream_currentMessageSnapshot.set(this, void 0);\n _BetaMessageStream_params.set(this, null);\n this.controller = new AbortController();\n _BetaMessageStream_connectedPromise.set(this, void 0);\n _BetaMessageStream_resolveConnectedPromise.set(this, () => { });\n _BetaMessageStream_rejectConnectedPromise.set(this, () => { });\n _BetaMessageStream_endPromise.set(this, void 0);\n _BetaMessageStream_resolveEndPromise.set(this, () => { });\n _BetaMessageStream_rejectEndPromise.set(this, () => { });\n _BetaMessageStream_listeners.set(this, {});\n _BetaMessageStream_ended.set(this, false);\n _BetaMessageStream_errored.set(this, false);\n _BetaMessageStream_aborted.set(this, false);\n _BetaMessageStream_catchingPromiseCreated.set(this, false);\n _BetaMessageStream_response.set(this, void 0);\n _BetaMessageStream_request_id.set(this, void 0);\n _BetaMessageStream_workspace_id.set(this, void 0);\n _BetaMessageStream_logger.set(this, void 0);\n _BetaMessageStream_handleError.set(this, (error) => {\n __classPrivateFieldSet(this, _BetaMessageStream_errored, true, \"f\");\n if (isAbortError(error)) {\n error = new APIUserAbortError();\n }\n if (error instanceof APIUserAbortError) {\n __classPrivateFieldSet(this, _BetaMessageStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof AnthropicError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const anthropicError = new AnthropicError(error.message);\n // @ts-ignore\n anthropicError.cause = error;\n return this._emit('error', anthropicError);\n }\n return this._emit('error', new AnthropicError(String(error)));\n });\n __classPrivateFieldSet(this, _BetaMessageStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _BetaMessageStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _BetaMessageStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _BetaMessageStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _BetaMessageStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _BetaMessageStream_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, _BetaMessageStream_connectedPromise, \"f\").catch(() => { });\n __classPrivateFieldGet(this, _BetaMessageStream_endPromise, \"f\").catch(() => { });\n __classPrivateFieldSet(this, _BetaMessageStream_params, params, \"f\");\n __classPrivateFieldSet(this, _BetaMessageStream_logger, opts?.logger ?? console, \"f\");\n }\n get response() {\n return __classPrivateFieldGet(this, _BetaMessageStream_response, \"f\");\n }\n get request_id() {\n return __classPrivateFieldGet(this, _BetaMessageStream_request_id, \"f\");\n }\n get workspace_id() {\n return __classPrivateFieldGet(this, _BetaMessageStream_workspace_id, \"f\");\n }\n /**\n * Returns the `MessageStream` data, the raw `Response` instance and the ID of the request,\n * returned vie the `request-id` header which is useful for debugging requests and resporting\n * issues to Anthropic.\n *\n * This is the same as the `APIPromise.withResponse()` method.\n *\n * This method will raise an error if you created the stream using `MessageStream.fromReadableStream`\n * as no `Response` is available.\n */\n async withResponse() {\n __classPrivateFieldSet(this, _BetaMessageStream_catchingPromiseCreated, true, \"f\");\n const response = await __classPrivateFieldGet(this, _BetaMessageStream_connectedPromise, \"f\");\n if (!response) {\n throw new Error('Could not resolve a `Response` object');\n }\n return {\n data: this,\n response,\n request_id: response.headers.get('request-id'),\n workspace_id: response.headers.get('anthropic-workspace-id'),\n };\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Note that messages sent to the model do not appear in `.on('message')`\n * in this context.\n */\n static fromReadableStream(stream) {\n const runner = new BetaMessageStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static createMessage(messages, params, options, { logger } = {}) {\n const runner = new BetaMessageStream(params, { logger });\n for (const message of params.messages) {\n runner._addMessageParam(message);\n }\n __classPrivateFieldSet(runner, _BetaMessageStream_params, { ...params, stream: true }, \"f\");\n runner._run(() => runner._createMessage(messages, { ...params, stream: true }, { ...options, headers: { ...options?.headers, [STAINLESS_HELPER_METHOD_HEADER]: 'stream' } }));\n return runner;\n }\n _run(executor) {\n executor().then(() => {\n this._emitFinal();\n this._emit('end');\n }, __classPrivateFieldGet(this, _BetaMessageStream_handleError, \"f\"));\n }\n _addMessageParam(message) {\n this.messages.push(message);\n }\n _addMessage(message, emit = true) {\n this.receivedMessages.push(message);\n if (emit) {\n this._emit('message', message);\n }\n }\n async _createMessage(messages, params, options) {\n const signal = options?.signal;\n let abortHandler;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n abortHandler = this.controller.abort.bind(this.controller);\n signal.addEventListener('abort', abortHandler);\n }\n try {\n __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_beginRequest).call(this);\n const { response, data: stream } = await messages\n .create({ ...params, stream: true }, { ...options, signal: this.controller.signal })\n .withResponse();\n this._connected(response);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_addStreamEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_endRequest).call(this);\n }\n finally {\n if (signal && abortHandler) {\n signal.removeEventListener('abort', abortHandler);\n }\n }\n }\n _connected(response) {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _BetaMessageStream_response, response, \"f\");\n __classPrivateFieldSet(this, _BetaMessageStream_request_id, response?.headers.get('request-id'), \"f\");\n __classPrivateFieldSet(this, _BetaMessageStream_workspace_id, response?.headers.get('anthropic-workspace-id'), \"f\");\n __classPrivateFieldGet(this, _BetaMessageStream_resolveConnectedPromise, \"f\").call(this, response);\n this._emit('connect');\n }\n get ended() {\n return __classPrivateFieldGet(this, _BetaMessageStream_ended, \"f\");\n }\n get errored() {\n return __classPrivateFieldGet(this, _BetaMessageStream_errored, \"f\");\n }\n get aborted() {\n return __classPrivateFieldGet(this, _BetaMessageStream_aborted, \"f\");\n }\n abort() {\n this.controller.abort();\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 MessageStream, so that calls can be chained\n */\n on(event, listener) {\n const listeners = __classPrivateFieldGet(this, _BetaMessageStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _BetaMessageStream_listeners, \"f\")[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 MessageStream, so that calls can be chained\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _BetaMessageStream_listeners, \"f\")[event];\n if (!listeners)\n return this;\n const index = listeners.findIndex((l) => l.listener === listener);\n if (index >= 0)\n listeners.splice(index, 1);\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 MessageStream, so that calls can be chained\n */\n once(event, listener) {\n const listeners = __classPrivateFieldGet(this, _BetaMessageStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _BetaMessageStream_listeners, \"f\")[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 * @returns a Promise that resolves the next time given event is triggered,\n * or rejects if an error is emitted. (If you request the 'error' event,\n * returns a promise that resolves with the error).\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, _BetaMessageStream_catchingPromiseCreated, true, \"f\");\n if (event !== 'error')\n this.once('error', reject);\n this.once(event, resolve);\n });\n }\n async done() {\n __classPrivateFieldSet(this, _BetaMessageStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _BetaMessageStream_endPromise, \"f\");\n }\n get currentMessage() {\n return __classPrivateFieldGet(this, _BetaMessageStream_currentMessageSnapshot, \"f\");\n }\n /**\n * @returns a promise that resolves with the the final assistant Message response,\n * or rejects if an error occurred or the stream ended prematurely without producing a Message.\n * If structured outputs were used, this will be a ParsedMessage with a `parsed` field.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_getFinalMessage).call(this);\n }\n /**\n * @returns a promise that resolves with the the final assistant Message's text response, concatenated\n * together if there are more than one text blocks.\n * Rejects if an error occurred or the stream ended prematurely without producing a Message.\n */\n async finalText() {\n await this.done();\n return __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_getFinalText).call(this);\n }\n _emit(event, ...args) {\n // make sure we don't emit any MessageStreamEvents after end\n if (__classPrivateFieldGet(this, _BetaMessageStream_ended, \"f\"))\n return;\n if (event === 'end') {\n __classPrivateFieldSet(this, _BetaMessageStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _BetaMessageStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _BetaMessageStream_listeners, \"f\")[event];\n if (listeners) {\n __classPrivateFieldGet(this, _BetaMessageStream_listeners, \"f\")[event] = listeners.filter((l) => !l.once);\n listeners.forEach(({ listener }) => listener(...args));\n }\n if (event === 'abort') {\n const error = args[0];\n if (!__classPrivateFieldGet(this, _BetaMessageStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _BetaMessageStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _BetaMessageStream_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 const error = args[0];\n if (!__classPrivateFieldGet(this, _BetaMessageStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\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.final...()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _BetaMessageStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _BetaMessageStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n }\n _emitFinal() {\n const finalMessage = this.receivedMessages.at(-1);\n if (finalMessage) {\n this._emit('finalMessage', __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_getFinalMessage).call(this));\n }\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n let abortHandler;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n abortHandler = this.controller.abort.bind(this.controller);\n signal.addEventListener('abort', abortHandler);\n }\n try {\n __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_beginRequest).call(this);\n this._connected(null);\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_addStreamEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_endRequest).call(this);\n }\n finally {\n if (signal && abortHandler) {\n signal.removeEventListener('abort', abortHandler);\n }\n }\n }\n [(_BetaMessageStream_currentMessageSnapshot = new WeakMap(), _BetaMessageStream_params = new WeakMap(), _BetaMessageStream_connectedPromise = new WeakMap(), _BetaMessageStream_resolveConnectedPromise = new WeakMap(), _BetaMessageStream_rejectConnectedPromise = new WeakMap(), _BetaMessageStream_endPromise = new WeakMap(), _BetaMessageStream_resolveEndPromise = new WeakMap(), _BetaMessageStream_rejectEndPromise = new WeakMap(), _BetaMessageStream_listeners = new WeakMap(), _BetaMessageStream_ended = new WeakMap(), _BetaMessageStream_errored = new WeakMap(), _BetaMessageStream_aborted = new WeakMap(), _BetaMessageStream_catchingPromiseCreated = new WeakMap(), _BetaMessageStream_response = new WeakMap(), _BetaMessageStream_request_id = new WeakMap(), _BetaMessageStream_workspace_id = new WeakMap(), _BetaMessageStream_logger = new WeakMap(), _BetaMessageStream_handleError = new WeakMap(), _BetaMessageStream_instances = new WeakSet(), _BetaMessageStream_getFinalMessage = function _BetaMessageStream_getFinalMessage() {\n if (this.receivedMessages.length === 0) {\n throw new AnthropicError('stream ended without producing a Message with role=assistant');\n }\n return this.receivedMessages.at(-1);\n }, _BetaMessageStream_getFinalText = function _BetaMessageStream_getFinalText() {\n if (this.receivedMessages.length === 0) {\n throw new AnthropicError('stream ended without producing a Message with role=assistant');\n }\n const textBlocks = this.receivedMessages\n .at(-1)\n .content.filter((block) => block.type === 'text')\n .map((block) => block.text);\n if (textBlocks.length === 0) {\n throw new AnthropicError('stream ended without producing a content block with type=text');\n }\n return textBlocks.join(' ');\n }, _BetaMessageStream_beginRequest = function _BetaMessageStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _BetaMessageStream_currentMessageSnapshot, undefined, \"f\");\n }, _BetaMessageStream_addStreamEvent = function _BetaMessageStream_addStreamEvent(event) {\n if (this.ended)\n return;\n const messageSnapshot = __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_accumulateMessage).call(this, event);\n this._emit('streamEvent', event, messageSnapshot);\n switch (event.type) {\n case 'content_block_delta': {\n const content = messageSnapshot.content.at(-1);\n switch (event.delta.type) {\n case 'text_delta': {\n if (content.type === 'text') {\n this._emit('text', event.delta.text, content.text || '');\n }\n break;\n }\n case 'citations_delta': {\n if (content.type === 'text') {\n this._emit('citation', event.delta.citation, content.citations ?? []);\n }\n break;\n }\n case 'input_json_delta': {\n if (tracksToolInput(content) && __classPrivateFieldGet(this, _BetaMessageStream_listeners, \"f\").inputJson?.length) {\n let jsonSnapshot;\n try {\n jsonSnapshot = content.input;\n }\n catch (err) {\n __classPrivateFieldGet(this, _BetaMessageStream_handleError, \"f\").call(this, __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_toolInputParseError).call(this, content, err));\n break;\n }\n this._emit('inputJson', event.delta.partial_json, jsonSnapshot);\n }\n break;\n }\n case 'thinking_delta': {\n if (content.type === 'thinking') {\n this._emit('thinking', event.delta.thinking, content.thinking);\n }\n break;\n }\n case 'signature_delta': {\n if (content.type === 'thinking') {\n this._emit('signature', content.signature);\n }\n break;\n }\n case 'compaction_delta': {\n if (content.type === 'compaction' && content.content) {\n this._emit('compaction', content.content);\n }\n break;\n }\n default:\n checkNever(event.delta);\n }\n break;\n }\n case 'message_stop': {\n this._addMessageParam(messageSnapshot);\n this._addMessage(maybeParseBetaMessage(messageSnapshot, __classPrivateFieldGet(this, _BetaMessageStream_params, \"f\"), { logger: __classPrivateFieldGet(this, _BetaMessageStream_logger, \"f\") }), true);\n break;\n }\n case 'content_block_stop': {\n this._emit('contentBlock', messageSnapshot.content.at(-1));\n break;\n }\n case 'message_start': {\n __classPrivateFieldSet(this, _BetaMessageStream_currentMessageSnapshot, messageSnapshot, \"f\");\n break;\n }\n case 'content_block_start':\n case 'message_delta':\n break;\n }\n }, _BetaMessageStream_endRequest = function _BetaMessageStream_endRequest() {\n if (this.ended) {\n throw new AnthropicError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _BetaMessageStream_currentMessageSnapshot, \"f\");\n if (!snapshot) {\n throw new AnthropicError(`request ended without sending any chunks`);\n }\n __classPrivateFieldSet(this, _BetaMessageStream_currentMessageSnapshot, undefined, \"f\");\n return maybeParseBetaMessage(snapshot, __classPrivateFieldGet(this, _BetaMessageStream_params, \"f\"), { logger: __classPrivateFieldGet(this, _BetaMessageStream_logger, \"f\") });\n }, _BetaMessageStream_accumulateMessage = function _BetaMessageStream_accumulateMessage(event) {\n let snapshot = __classPrivateFieldGet(this, _BetaMessageStream_currentMessageSnapshot, \"f\");\n if (event.type === 'message_start') {\n if (snapshot) {\n throw new AnthropicError(`Unexpected event order, got ${event.type} before receiving \"message_stop\"`);\n }\n return event.message;\n }\n if (!snapshot) {\n throw new AnthropicError(`Unexpected event order, got ${event.type} before \"message_start\"`);\n }\n switch (event.type) {\n case 'message_stop':\n return snapshot;\n case 'message_delta':\n snapshot.stop_reason = event.delta.stop_reason;\n snapshot.stop_sequence = event.delta.stop_sequence;\n snapshot.stop_details = event.delta.stop_details;\n snapshot.usage.output_tokens = event.usage.output_tokens;\n if (event.delta.container != null) {\n snapshot.container = event.delta.container;\n }\n if (event.context_management != null) {\n snapshot.context_management = event.context_management;\n }\n if (event.input_transformations != null) {\n snapshot.input_transformations = event.input_transformations;\n }\n // The remaining usage counters are cumulative whole-message totals that are\n // omitted when they don't apply, so overwrite when present and never add.\n if (event.usage.input_tokens != null) {\n snapshot.usage.input_tokens = event.usage.input_tokens;\n }\n if (event.usage.cache_creation_input_tokens != null) {\n snapshot.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens;\n }\n if (event.usage.cache_read_input_tokens != null) {\n snapshot.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens;\n }\n if (event.usage.server_tool_use != null) {\n snapshot.usage.server_tool_use = event.usage.server_tool_use;\n }\n if (event.usage.iterations != null) {\n snapshot.usage.iterations = event.usage.iterations;\n }\n if (event.usage.fallback_credit != null) {\n snapshot.usage.fallback_credit = event.usage.fallback_credit;\n }\n if (event.usage.output_tokens_details != null) {\n snapshot.usage.output_tokens_details = event.usage.output_tokens_details;\n }\n return snapshot;\n case 'content_block_start':\n snapshot.content.push(event.content_block);\n if (event.content_block.type === 'fallback') {\n // the final hop's fallback block names the model that served the response —\n // keeps the snapshot consistent with the relabeled non-streaming message\n snapshot.model = event.content_block.to.model;\n }\n return snapshot;\n case 'content_block_delta': {\n const snapshotContent = snapshot.content.at(event.index);\n switch (event.delta.type) {\n case 'text_delta': {\n if (snapshotContent?.type === 'text') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n text: (snapshotContent.text || '') + event.delta.text,\n };\n }\n break;\n }\n case 'citations_delta': {\n if (snapshotContent?.type === 'text') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n citations: [...(snapshotContent.citations ?? []), event.delta.citation],\n };\n }\n break;\n }\n case 'input_json_delta': {\n if (snapshotContent && tracksToolInput(snapshotContent)) {\n const jsonBuf = (snapshotContent[JSON_BUF_PROPERTY] || '') + event.delta.partial_json;\n snapshot.content[event.index] = withLazyInput(snapshotContent, jsonBuf);\n }\n break;\n }\n case 'thinking_delta': {\n if (snapshotContent?.type === 'thinking') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n thinking: snapshotContent.thinking + event.delta.thinking,\n };\n }\n break;\n }\n case 'signature_delta': {\n if (snapshotContent?.type === 'thinking') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n signature: event.delta.signature,\n };\n }\n break;\n }\n case 'compaction_delta': {\n if (snapshotContent?.type === 'compaction') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n content: (snapshotContent.content || '') + event.delta.content,\n encrypted_content: event.delta.encrypted_content,\n };\n }\n break;\n }\n default:\n checkNever(event.delta);\n }\n return snapshot;\n }\n case 'content_block_stop': {\n const snapshotContent = snapshot.content.at(event.index);\n if (snapshotContent && tracksToolInput(snapshotContent) && JSON_BUF_PROPERTY in snapshotContent) {\n let input;\n try {\n input = snapshotContent.input;\n }\n catch (err) {\n input = {};\n __classPrivateFieldGet(this, _BetaMessageStream_handleError, \"f\").call(this, __classPrivateFieldGet(this, _BetaMessageStream_instances, \"m\", _BetaMessageStream_toolInputParseError).call(this, snapshotContent, err));\n }\n Object.defineProperty(snapshotContent, 'input', {\n value: input,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n }\n return snapshot;\n }\n }\n }, _BetaMessageStream_toolInputParseError = function _BetaMessageStream_toolInputParseError(block, err) {\n const jsonBuf = block[JSON_BUF_PROPERTY];\n return new AnthropicError(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${err}. JSON: ${jsonBuf}`);\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('streamEvent', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\n//# sourceMappingURL=BetaMessageStream.mjs.map","/**\n * A deferred: a `Promise` together with its `resolve` / `reject` functions.\n * This is `Promise.withResolvers()`, which is not available in all supported\n * runtimes.\n */\nexport function promiseWithResolvers() {\n let resolve;\n let reject;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n}\n//# sourceMappingURL=promise.mjs.map","export const DEFAULT_TOKEN_THRESHOLD = 100000;\nexport const DEFAULT_SUMMARY_PROMPT = `You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:\n1. Task Overview\nThe user's core request and success criteria\nAny clarifications or constraints they specified\n2. Current State\nWhat has been completed so far\nFiles created, modified, or analyzed (with paths if relevant)\nKey outputs or artifacts produced\n3. Important Discoveries\nTechnical constraints or requirements uncovered\nDecisions made and their rationale\nErrors encountered and how they were resolved\nWhat approaches were tried that didn't work (and why)\n4. Next Steps\nSpecific actions needed to complete the task\nAny blockers or open questions to resolve\nPriority order if multiple steps remain\n5. Context to Preserve\nUser preferences or style requirements\nDomain-specific details that aren't obvious\nAny promises made to the user\nBe concise but complete—err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.\nWrap your summary in <summary></summary> tags.`;\n//# sourceMappingURL=CompactionControl.mjs.map","var _BetaToolRunner_instances, _BetaToolRunner_consumed, _BetaToolRunner_mutated, _BetaToolRunner_state, _BetaToolRunner_options, _BetaToolRunner_message, _BetaToolRunner_toolResponse, _BetaToolRunner_completion, _BetaToolRunner_iterationCount, _BetaToolRunner_checkAndCompact, _BetaToolRunner_generateToolResponse;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { ToolError } from \"./ToolError.mjs\";\nimport { AnthropicError } from \"../../core/error.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { promiseWithResolvers } from \"../../internal/utils/promise.mjs\";\nimport { checkNever } from \"../../internal/utils/values.mjs\";\nimport { DEFAULT_SUMMARY_PROMPT, DEFAULT_TOKEN_THRESHOLD } from \"./CompactionControl.mjs\";\nimport { collectStainlessHelpers, helperHeader, STAINLESS_HELPER_HEADER, } from \"../../internal/stainless-helper-header.mjs\";\n/**\n * A ToolRunner handles the automatic conversation loop between the assistant and tools.\n *\n * A ToolRunner is an async iterable that yields either BetaMessage or BetaMessageStream objects\n * depending on the streaming configuration.\n */\nexport class BetaToolRunner {\n constructor(client, params, options) {\n _BetaToolRunner_instances.add(this);\n this.client = client;\n /** Whether the async iterator has been consumed */\n _BetaToolRunner_consumed.set(this, false);\n /** Whether parameters have been mutated since the last API call */\n _BetaToolRunner_mutated.set(this, false);\n /** Current state containing the request parameters */\n _BetaToolRunner_state.set(this, void 0);\n _BetaToolRunner_options.set(this, void 0);\n /** Promise for the last message received from the assistant */\n _BetaToolRunner_message.set(this, void 0);\n /** Cached tool response to avoid redundant executions */\n _BetaToolRunner_toolResponse.set(this, void 0);\n /** Promise resolvers for waiting on completion */\n _BetaToolRunner_completion.set(this, void 0);\n /** Number of iterations (API requests) made so far */\n _BetaToolRunner_iterationCount.set(this, 0);\n __classPrivateFieldSet(this, _BetaToolRunner_state, {\n params: {\n // You can't clone the entire params since there are functions as handlers.\n // You also don't really need to clone params.messages, but it probably will prevent a foot gun\n // somewhere.\n ...params,\n messages: structuredClone(params.messages),\n },\n }, \"f\");\n // structuredClone drops symbol-keyed properties, so collect helper marks\n // from the original params here — the create()-side collector won't see\n // them on the cloned messages.\n const collected = collectStainlessHelpers(params.tools, params.messages);\n __classPrivateFieldSet(this, _BetaToolRunner_options, {\n ...options,\n headers: buildHeaders([\n helperHeader('BetaToolRunner'),\n collected.length ? { [STAINLESS_HELPER_HEADER]: collected.join(', ') } : undefined,\n options?.headers,\n ]),\n }, \"f\");\n __classPrivateFieldSet(this, _BetaToolRunner_completion, promiseWithResolvers(), \"f\");\n if (params.compactionControl?.enabled) {\n console.warn('Anthropic: The `compactionControl` parameter is deprecated and will be removed in a future version. ' +\n 'Use server-side compaction instead by passing `edits: [{ type: \"compact_20260112\" }]` in the params passed to `toolRunner()`. ' +\n 'See https://platform.claude.com/docs/en/build-with-claude/compaction');\n }\n }\n async *[(_BetaToolRunner_consumed = new WeakMap(), _BetaToolRunner_mutated = new WeakMap(), _BetaToolRunner_state = new WeakMap(), _BetaToolRunner_options = new WeakMap(), _BetaToolRunner_message = new WeakMap(), _BetaToolRunner_toolResponse = new WeakMap(), _BetaToolRunner_completion = new WeakMap(), _BetaToolRunner_iterationCount = new WeakMap(), _BetaToolRunner_instances = new WeakSet(), _BetaToolRunner_checkAndCompact = async function _BetaToolRunner_checkAndCompact() {\n const compactionControl = __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.compactionControl;\n if (!compactionControl || !compactionControl.enabled) {\n return false;\n }\n let tokensUsed = 0;\n if (__classPrivateFieldGet(this, _BetaToolRunner_message, \"f\") !== undefined) {\n try {\n const message = await __classPrivateFieldGet(this, _BetaToolRunner_message, \"f\");\n const totalInputTokens = message.usage.input_tokens +\n (message.usage.cache_creation_input_tokens ?? 0) +\n (message.usage.cache_read_input_tokens ?? 0);\n tokensUsed = totalInputTokens + message.usage.output_tokens;\n }\n catch {\n // If we can't get the message, skip compaction\n return false;\n }\n }\n const threshold = compactionControl.contextTokenThreshold ?? DEFAULT_TOKEN_THRESHOLD;\n if (tokensUsed < threshold) {\n return false;\n }\n const model = compactionControl.model ?? __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.model;\n const summaryPrompt = compactionControl.summaryPrompt ?? DEFAULT_SUMMARY_PROMPT;\n const messages = __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.messages;\n if (messages[messages.length - 1].role === 'assistant') {\n // Remove tool_use blocks from the last message to avoid 400 error\n // (tool_use requires tool_result, which we don't have yet)\n const lastMessage = messages[messages.length - 1];\n if (Array.isArray(lastMessage.content)) {\n const nonToolBlocks = lastMessage.content.filter((block) => block.type !== 'tool_use');\n if (nonToolBlocks.length === 0) {\n // If all blocks were tool_use, just remove the message entirely\n messages.pop();\n }\n else {\n lastMessage.content = nonToolBlocks;\n }\n }\n }\n const response = await this.client.beta.messages.create({\n model,\n messages: [\n ...messages,\n {\n role: 'user',\n content: [\n {\n type: 'text',\n text: summaryPrompt,\n },\n ],\n },\n ],\n max_tokens: __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.max_tokens,\n }, {\n signal: __classPrivateFieldGet(this, _BetaToolRunner_options, \"f\").signal,\n headers: buildHeaders([__classPrivateFieldGet(this, _BetaToolRunner_options, \"f\").headers, helperHeader('compaction')]),\n });\n if (response.content[0]?.type !== 'text') {\n throw new AnthropicError('Expected text response for compaction');\n }\n __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.messages = [\n {\n role: 'user',\n content: response.content,\n },\n ];\n return true;\n }, Symbol.asyncIterator)]() {\n var _a;\n if (__classPrivateFieldGet(this, _BetaToolRunner_consumed, \"f\")) {\n throw new AnthropicError('Cannot iterate over a consumed stream');\n }\n __classPrivateFieldSet(this, _BetaToolRunner_consumed, true, \"f\");\n __classPrivateFieldSet(this, _BetaToolRunner_mutated, true, \"f\");\n __classPrivateFieldSet(this, _BetaToolRunner_toolResponse, undefined, \"f\");\n try {\n while (true) {\n let stream;\n try {\n if (__classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.max_iterations &&\n __classPrivateFieldGet(this, _BetaToolRunner_iterationCount, \"f\") >= __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.max_iterations) {\n break;\n }\n __classPrivateFieldSet(this, _BetaToolRunner_mutated, false, \"f\");\n __classPrivateFieldSet(this, _BetaToolRunner_toolResponse, undefined, \"f\");\n __classPrivateFieldSet(this, _BetaToolRunner_iterationCount, (_a = __classPrivateFieldGet(this, _BetaToolRunner_iterationCount, \"f\"), _a++, _a), \"f\");\n __classPrivateFieldSet(this, _BetaToolRunner_message, undefined, \"f\");\n const { max_iterations, compactionControl, ...params } = __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params;\n if (params.stream) {\n stream = this.client.beta.messages.stream({ ...params }, __classPrivateFieldGet(this, _BetaToolRunner_options, \"f\"));\n __classPrivateFieldSet(this, _BetaToolRunner_message, stream.finalMessage(), \"f\");\n // Make sure that this promise doesn't throw before we get the option to do something about it.\n // Error will be caught when we call await this.#message ultimately\n __classPrivateFieldGet(this, _BetaToolRunner_message, \"f\").catch(() => { });\n yield stream;\n }\n else {\n __classPrivateFieldSet(this, _BetaToolRunner_message, this.client.beta.messages.create({ ...params, stream: false }, __classPrivateFieldGet(this, _BetaToolRunner_options, \"f\")), \"f\");\n yield __classPrivateFieldGet(this, _BetaToolRunner_message, \"f\");\n }\n const isCompacted = await __classPrivateFieldGet(this, _BetaToolRunner_instances, \"m\", _BetaToolRunner_checkAndCompact).call(this);\n if (!isCompacted) {\n if (!__classPrivateFieldGet(this, _BetaToolRunner_mutated, \"f\")) {\n const message = await __classPrivateFieldGet(this, _BetaToolRunner_message, \"f\");\n const nextStep = determineNextStepFromStopReason(message.stop_reason);\n __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.messages.push({ role: message.role, content: message.content });\n // Container-bound server tools reject a follow-up request that omits the container the\n // previous turn ran in, so carry its id forward unless the caller pinned one themselves.\n const { container } = __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params;\n if (message.container) {\n if (container == null) {\n __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.container = message.container.id;\n }\n else if (typeof container === 'object' && container.id == null) {\n __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.container = { ...container, id: message.container.id };\n }\n }\n if (nextStep === 'stop') {\n break;\n }\n if (nextStep === 'resume') {\n continue;\n }\n }\n const toolMessage = await __classPrivateFieldGet(this, _BetaToolRunner_instances, \"m\", _BetaToolRunner_generateToolResponse).call(this, __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.messages.at(-1));\n if (toolMessage) {\n __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params.messages.push(toolMessage);\n }\n else if (!__classPrivateFieldGet(this, _BetaToolRunner_mutated, \"f\")) {\n break;\n }\n }\n }\n finally {\n if (stream) {\n stream.abort();\n }\n }\n }\n if (!__classPrivateFieldGet(this, _BetaToolRunner_message, \"f\")) {\n throw new AnthropicError('ToolRunner concluded without a message from the server');\n }\n __classPrivateFieldGet(this, _BetaToolRunner_completion, \"f\").resolve(await __classPrivateFieldGet(this, _BetaToolRunner_message, \"f\"));\n }\n catch (error) {\n __classPrivateFieldSet(this, _BetaToolRunner_consumed, false, \"f\");\n // Silence unhandled promise errors\n __classPrivateFieldGet(this, _BetaToolRunner_completion, \"f\").promise.catch(() => { });\n __classPrivateFieldGet(this, _BetaToolRunner_completion, \"f\").reject(error);\n __classPrivateFieldSet(this, _BetaToolRunner_completion, promiseWithResolvers(), \"f\");\n throw error;\n }\n }\n setMessagesParams(paramsOrMutator) {\n if (typeof paramsOrMutator === 'function') {\n __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params = paramsOrMutator(__classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params);\n }\n else {\n __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params = paramsOrMutator;\n }\n __classPrivateFieldSet(this, _BetaToolRunner_mutated, true, \"f\");\n // Invalidate cached tool response since parameters changed\n __classPrivateFieldSet(this, _BetaToolRunner_toolResponse, undefined, \"f\");\n }\n setRequestOptions(optionsOrMutator) {\n if (typeof optionsOrMutator === 'function') {\n __classPrivateFieldSet(this, _BetaToolRunner_options, optionsOrMutator(__classPrivateFieldGet(this, _BetaToolRunner_options, \"f\")), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _BetaToolRunner_options, { ...__classPrivateFieldGet(this, _BetaToolRunner_options, \"f\"), ...optionsOrMutator }, \"f\");\n }\n }\n /**\n * Get the tool response for the last message from the assistant.\n * Avoids redundant tool executions by caching results.\n *\n * @returns A promise that resolves to a BetaMessageParam containing tool results, or null if no tools need to be executed\n *\n * @example\n * const toolResponse = await runner.generateToolResponse();\n * if (toolResponse) {\n * console.log('Tool results:', toolResponse.content);\n * }\n */\n async generateToolResponse(signal = __classPrivateFieldGet(this, _BetaToolRunner_options, \"f\").signal) {\n const message = (await __classPrivateFieldGet(this, _BetaToolRunner_message, \"f\")) ?? this.params.messages.at(-1);\n if (!message) {\n return null;\n }\n return __classPrivateFieldGet(this, _BetaToolRunner_instances, \"m\", _BetaToolRunner_generateToolResponse).call(this, message, signal);\n }\n /**\n * Wait for the async iterator to complete. This works even if the async iterator hasn't yet started, and\n * will wait for an instance to start and go to completion.\n *\n * @returns A promise that resolves to the final BetaMessage when the iterator completes\n *\n * @example\n * // Start consuming the iterator\n * for await (const message of runner) {\n * console.log('Message:', message.content);\n * }\n *\n * // Meanwhile, wait for completion from another part of the code\n * const finalMessage = await runner.done();\n * console.log('Final response:', finalMessage.content);\n */\n done() {\n return __classPrivateFieldGet(this, _BetaToolRunner_completion, \"f\").promise;\n }\n /**\n * Returns a promise indicating that the stream is done. Unlike .done(), this will eagerly read the stream:\n * * If the iterator has not been consumed, consume the entire iterator and return the final message from the\n * assistant.\n * * If the iterator has been consumed, waits for it to complete and returns the final message.\n *\n * @returns A promise that resolves to the final BetaMessage from the conversation\n * @throws {AnthropicError} If no messages were processed during the conversation\n *\n * @example\n * const finalMessage = await runner.runUntilDone();\n * console.log('Final response:', finalMessage.content);\n */\n async runUntilDone() {\n // If not yet consumed, start consuming and wait for completion\n if (!__classPrivateFieldGet(this, _BetaToolRunner_consumed, \"f\")) {\n for await (const _ of this) {\n // Iterator naturally populates this.#message\n }\n }\n // If consumed but not completed, wait for completion\n return this.done();\n }\n /**\n * Get the current parameters being used by the ToolRunner.\n *\n * @returns A readonly view of the current ToolRunnerParams\n *\n * @example\n * const currentParams = runner.params;\n * console.log('Current model:', currentParams.model);\n * console.log('Message count:', currentParams.messages.length);\n */\n get params() {\n return __classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params;\n }\n /**\n * Add one or more messages to the conversation history.\n *\n * @param messages - One or more BetaMessageParam objects to add to the conversation\n *\n * @example\n * runner.pushMessages(\n * { role: 'user', content: 'Also, what about the weather in NYC?' }\n * );\n *\n * @example\n * // Adding multiple messages\n * runner.pushMessages(\n * { role: 'user', content: 'What about NYC?' },\n * { role: 'user', content: 'And Boston?' }\n * );\n */\n pushMessages(...messages) {\n this.setMessagesParams((params) => ({\n ...params,\n messages: [...params.messages, ...messages],\n }));\n }\n /**\n * Makes the ToolRunner directly awaitable, equivalent to calling .runUntilDone()\n * This allows using `await runner` instead of `await runner.runUntilDone()`\n */\n then(onfulfilled, onrejected) {\n return this.runUntilDone().then(onfulfilled, onrejected);\n }\n}\n_BetaToolRunner_generateToolResponse = async function _BetaToolRunner_generateToolResponse(lastMessage, signal = __classPrivateFieldGet(this, _BetaToolRunner_options, \"f\").signal) {\n if (__classPrivateFieldGet(this, _BetaToolRunner_toolResponse, \"f\") !== undefined) {\n return __classPrivateFieldGet(this, _BetaToolRunner_toolResponse, \"f\");\n }\n __classPrivateFieldSet(this, _BetaToolRunner_toolResponse, generateToolResponse(__classPrivateFieldGet(this, _BetaToolRunner_state, \"f\").params, lastMessage, {\n ...__classPrivateFieldGet(this, _BetaToolRunner_options, \"f\"),\n signal,\n }), \"f\");\n return __classPrivateFieldGet(this, _BetaToolRunner_toolResponse, \"f\");\n};\nasync function generateToolResponse(params, lastMessage = params.messages.at(-1), requestOptions) {\n // Only process if the last message is from the assistant and has tool use blocks\n if (!lastMessage ||\n lastMessage.role !== 'assistant' ||\n !lastMessage.content ||\n typeof lastMessage.content === 'string') {\n return null;\n }\n const toolUseBlocks = lastMessage.content.filter((content) => content.type === 'tool_use');\n if (toolUseBlocks.length === 0) {\n return null;\n }\n const available = availableToolNames(params);\n const toolResults = await Promise.all(toolUseBlocks.map(async (toolUse) => {\n const tool = params.tools.find((t) => ('name' in t ? t.name\n : 'mcp_server_name' in t ? t.mcp_server_name\n : t.type) === toolUse.name);\n // A `tool_removal` is only a hint to the model, which may still emit a tool_use for a\n // withdrawn tool — treat those exactly like a tool that was never defined.\n if (!tool || !('run' in tool) || !available.has(toolUse.name)) {\n return toolNotFoundResult(toolUse);\n }\n try {\n let input = toolUse.input;\n if ('parse' in tool && tool.parse) {\n input = tool.parse(input);\n }\n const result = await tool.run(input, {\n toolUse: toolUse,\n toolUseBlock: toolUse,\n signal: requestOptions?.signal,\n });\n return {\n type: 'tool_result',\n tool_use_id: toolUse.id,\n content: result,\n };\n }\n catch (error) {\n return {\n type: 'tool_result',\n tool_use_id: toolUse.id,\n content: error instanceof ToolError ?\n error.content\n : `Error: ${error instanceof Error ? error.message : String(error)}`,\n is_error: true,\n };\n }\n }));\n return {\n role: 'user',\n content: toolResults,\n };\n}\nfunction toolNotFoundResult(toolUse) {\n return {\n type: 'tool_result',\n tool_use_id: toolUse.id,\n content: `Error: Tool '${toolUse.name}' not found`,\n is_error: true,\n };\n}\n/**\n * Computes the names of locally runnable tools that are still available for the assistant\n * turn being answered, by folding `tool_removal` / `tool_addition` blocks from the\n * `role: \"system\"` messages over the runnable tools. The assistant turn being answered is\n * terminal-or-absent and only `system` messages are inspected, so folding the whole current\n * history is exactly folding the messages preceding that turn — call this before appending\n * anything after it. MCP references are ignored — those tools are executed server-side and\n * never dispatched by this runner.\n */\nfunction availableToolNames(params) {\n const available = new Set();\n for (const tool of params.tools) {\n if ('run' in tool) {\n available.add(tool.name);\n }\n }\n for (const message of params.messages) {\n if (message.role !== 'system' || typeof message.content === 'string') {\n continue;\n }\n for (const block of message.content) {\n applyToolChange(block, available);\n }\n }\n return available;\n}\nfunction applyToolChange(block, available) {\n switch (block.type) {\n case 'tool_removal':\n case 'tool_addition':\n applyToolReference(block, available);\n break;\n }\n}\nfunction applyToolReference(block, available) {\n const name = referencedToolName(block.tool);\n if (name === undefined)\n return;\n if (block.type === 'tool_removal') {\n available.delete(name);\n }\n else {\n available.add(name);\n }\n}\nfunction referencedToolName(ref) {\n switch (ref.type) {\n case 'tool_reference':\n return ref.name;\n default:\n // mcp_tool_reference / mcp_toolset_reference run server-side; unknown reference\n // types are ignored rather than rejected.\n return undefined;\n }\n}\n/**\n * Sorts every stop reason into one of three buckets: `run_tools` turns run their client tool\n * calls and continue the loop; `resume` turns are sent back unchanged so the server continues\n * them; `stop` turns end the loop without running any tool calls.\n */\nfunction determineNextStepFromStopReason(stopReason) {\n if (stopReason === null)\n return 'stop';\n switch (stopReason) {\n case 'tool_use':\n return 'run_tools';\n case 'pause_turn':\n // pause_after_compaction hands the turn back before the model answers; sending it back\n // unchanged continues it.\n case 'compaction':\n return 'resume';\n case 'end_turn':\n case 'stop_sequence':\n case 'max_tokens':\n case 'model_context_window_exceeded':\n case 'refusal':\n return 'stop';\n default:\n // The union is forward-compatible, so a stop reason this SDK doesn't know yet ends the\n // loop rather than throwing; the `never` check makes tsc reject an unclassified member.\n checkNever(stopReason);\n return 'stop';\n }\n}\n//# sourceMappingURL=BetaToolRunner.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { AnthropicError } from \"../../../error.mjs\";\nimport * as BatchesAPI from \"./batches.mjs\";\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { MODEL_NONSTREAMING_TOKENS } from \"../../../internal/constants.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { stainlessHelperHeader } from \"../../../internal/stainless-helper-header.mjs\";\nimport { parseBetaMessage, } from \"../../../lib/beta-parser.mjs\";\nimport { BetaMessageStream } from \"../../../lib/BetaMessageStream.mjs\";\nimport { BetaToolRunner, } from \"../../../lib/tools/BetaToolRunner.mjs\";\nimport { ToolError } from \"../../../lib/tools/ToolError.mjs\";\nimport { Batches, } from \"./batches.mjs\";\nconst DEPRECATED_MODELS = {};\nconst MODELS_TO_WARN_WITH_THINKING_ENABLED = ['claude-mythos-preview', 'claude-opus-4-6'];\nexport class Messages extends APIResource {\n constructor() {\n super(...arguments);\n this.batches = new BatchesAPI.Batches(this._client);\n }\n create(params, options) {\n // Transform deprecated output_format to output_config.format\n const modifiedParams = transformOutputFormat(params);\n const { betas, user_profile_id, workspace_id, ...body } = modifiedParams;\n if (body.model in DEPRECATED_MODELS) {\n console.warn(`The model '${body.model}' is deprecated and will reach end-of-life on ${DEPRECATED_MODELS[body.model]}\\nPlease migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);\n }\n if (MODELS_TO_WARN_WITH_THINKING_ENABLED.includes(body.model) &&\n body.thinking &&\n body.thinking.type === 'enabled') {\n console.warn(`Using Claude with ${body.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);\n }\n let timeout = options?.timeout ?? this._client._options.timeout;\n if (!body.stream && timeout == null) {\n const maxNonstreamingTokens = MODEL_NONSTREAMING_TOKENS[body.model] ?? undefined;\n timeout = this._client.calculateNonstreamingTimeout(body.max_tokens, maxNonstreamingTokens);\n }\n // Collect helper info from tools and messages\n const helperHeader = stainlessHelperHeader(body.tools, body.messages);\n return this._client.post('/v1/messages?beta=true', {\n body,\n timeout: timeout ?? 600000,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(user_profile_id != null ? { 'anthropic-user-profile-id': user_profile_id } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n helperHeader,\n options?.headers,\n ]),\n stream: modifiedParams.stream ?? false,\n });\n }\n /**\n * Send a structured list of input messages with text and/or image content, along with an expected `output_format` and\n * the response will be automatically parsed and available in the `parsed_output` property of the message.\n *\n * @example\n * ```ts\n * const message = await client.beta.messages.parse({\n * model: 'claude-3-5-sonnet-20241022',\n * max_tokens: 1024,\n * messages: [{ role: 'user', content: 'What is 2+2?' }],\n * output_format: zodOutputFormat(z.object({ answer: z.number() }), 'math'),\n * });\n *\n * console.log(message.parsed_output?.answer); // 4\n * ```\n */\n parse(params, options) {\n options = {\n ...options,\n headers: buildHeaders([\n { 'anthropic-beta': [...(params.betas ?? []), 'structured-outputs-2025-12-15'].toString() },\n options?.headers,\n ]),\n };\n return this.create(params, options).then((message) => parseBetaMessage(message, params, { logger: this._client.logger ?? console }));\n }\n /**\n * Create a Message stream\n */\n stream(body, options) {\n return BetaMessageStream.createMessage(this, body, options);\n }\n /**\n * Count the number of tokens in a Message.\n *\n * The Token Count API can be used to count the number of tokens in a Message,\n * including tools, images, and documents, without creating it.\n *\n * Learn more about token counting in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/token-counting)\n *\n * @example\n * ```ts\n * const betaMessageTokensCount =\n * await client.beta.messages.countTokens({\n * messages: [{ content: 'Hello, world', role: 'user' }],\n * model: 'claude-opus-5',\n * });\n * ```\n */\n countTokens(params, options) {\n // Transform deprecated output_format to output_config.format\n const modifiedParams = transformOutputFormat(params);\n const { betas, user_profile_id, workspace_id, ...body } = modifiedParams;\n return this._client.post('/v1/messages/count_tokens?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'token-counting-2024-11-01'].toString(),\n ...(user_profile_id != null ? { 'anthropic-user-profile-id': user_profile_id } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n toolRunner(body, options) {\n return new BetaToolRunner(this._client, body, options);\n }\n}\n/**\n * Transform deprecated output_format to output_config.format\n * Returns a modified copy of the params without mutating the original\n */\nfunction transformOutputFormat(params) {\n if (!params.output_format) {\n return params;\n }\n if (params.output_config?.format) {\n throw new AnthropicError('Both output_format and output_config.format were provided. ' +\n 'Please use only output_config.format (output_format is deprecated).');\n }\n const { output_format, ...rest } = params;\n return {\n ...rest,\n output_config: {\n ...params.output_config,\n format: output_format,\n },\n };\n}\nexport { BetaToolRunner } from \"../../../lib/tools/BetaToolRunner.mjs\";\nexport { ToolError } from \"../../../lib/tools/ToolError.mjs\";\nMessages.Batches = Batches;\nMessages.BetaToolRunner = BetaToolRunner;\nMessages.ToolError = ToolError;\n//# sourceMappingURL=messages.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { Page } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class APIKeys extends APIResource {\n /**\n * Get API Key\n *\n * @example\n * ```ts\n * const betaAPIKey =\n * await client.beta.organization.apiKeys.retrieve(\n * 'api_key_id',\n * );\n * ```\n */\n retrieve(apiKeyID, options) {\n return this._client.get(path `/v1/organizations/api_keys/${apiKeyID}?beta=true`, options);\n }\n /**\n * Update API Key\n *\n * @example\n * ```ts\n * const betaAPIKey =\n * await client.beta.organization.apiKeys.update(\n * 'api_key_id',\n * );\n * ```\n */\n update(apiKeyID, body, options) {\n return this._client.post(path `/v1/organizations/api_keys/${apiKeyID}?beta=true`, { body, ...options });\n }\n /**\n * List API Keys\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaAPIKey of client.beta.organization.apiKeys.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/v1/organizations/api_keys?beta=true', (Page), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=api-keys.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class ComplianceSettings extends APIResource {\n /**\n * Retrieve your organization's Compliance Settings.\n *\n * Compliance Settings is a singleton resource: there is exactly one per\n * organization, addressed without an identifier. The `state` field reflects\n * whether the Compliance API is enabled. An organization with a parent\n * organization reads the state inherited from the parent's configuration.\n *\n * @example\n * ```ts\n * const betaComplianceSettings =\n * await client.beta.organization.complianceSettings.retrieve();\n * ```\n */\n retrieve(options) {\n return this._client.get('/v1/organizations/compliance_settings?beta=true', options);\n }\n /**\n * Update your organization's Compliance Settings.\n *\n * Setting `state` to `enabled` turns on the Compliance API and begins capturing\n * organization activity events. Setting it to `disabled` turns both off. `state`\n * reflects whether the Compliance API is enabled.\n *\n * A request that sets `state` to its current value succeeds and leaves the\n * resource unchanged. A `disabled` request stays in effect until a later `enabled`\n * request or the organization's next provisioning action that enables Access\n * Transparency: enabling Access Transparency also enables the Compliance API,\n * which serves its activity events, so such provisioning (including re-runs)\n * re-enables the Compliance API even after a `disabled` request. Automated\n * provisioning never disables compliance settings.\n *\n * @example\n * ```ts\n * const betaComplianceSettings =\n * await client.beta.organization.complianceSettings.update({\n * state: { type: 'enabled' },\n * });\n * ```\n */\n update(body, options) {\n return this._client.post('/v1/organizations/compliance_settings?beta=true', { body, ...options });\n }\n}\n//# sourceMappingURL=compliance-settings.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class ExternalKeys extends APIResource {\n /**\n * Create an external key config owned by the caller's organization.\n *\n * @example\n * ```ts\n * const betaExternalKey =\n * await client.beta.organization.externalKeys.create({\n * provider_config: {\n * kms_arn:\n * 'arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222',\n * type: 'aws',\n * },\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/v1/organizations/external_keys?beta=true', { body, ...options });\n }\n /**\n * Retrieve a single external key config in the caller's organization by ID.\n *\n * @example\n * ```ts\n * const betaExternalKey =\n * await client.beta.organization.externalKeys.retrieve(\n * 'external_key_id',\n * );\n * ```\n */\n retrieve(externalKeyID, options) {\n return this._client.get(path `/v1/organizations/external_keys/${externalKeyID}?beta=true`, options);\n }\n /**\n * Partially update an external key config. Omitted fields are left unchanged.\n *\n * `display_name` is always editable. `geo` and `provider_config` cannot be changed\n * once any workspace references this config, because previously encrypted data\n * requires the original key identity to decrypt.\n *\n * @example\n * ```ts\n * const betaExternalKey =\n * await client.beta.organization.externalKeys.update(\n * 'external_key_id',\n * );\n * ```\n */\n update(externalKeyID, body, options) {\n return this._client.post(path `/v1/organizations/external_keys/${externalKeyID}?beta=true`, {\n body,\n ...options,\n });\n }\n /**\n * List external key configs in the caller's organization.\n *\n * Results are ordered by creation time (newest first). Use the `next_page` cursor\n * from the response to fetch subsequent pages.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaExternalKey of client.beta.organization.externalKeys.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/v1/organizations/external_keys?beta=true', (PageCursor), {\n query,\n ...options,\n });\n }\n /**\n * Delete an external key config.\n *\n * The request is rejected if any workspace still references this config.\n *\n * @example\n * ```ts\n * const externalKey =\n * await client.beta.organization.externalKeys.delete(\n * 'external_key_id',\n * );\n * ```\n */\n delete(externalKeyID, options) {\n return this._client.delete(path `/v1/organizations/external_keys/${externalKeyID}?beta=true`, options);\n }\n /**\n * Validate an external key config against the customer's KMS.\n *\n * Anthropic performs an encrypt/decrypt roundtrip against the configured KMS key\n * and waits up to 30 seconds for the result. The response status is `success` if\n * the roundtrip succeeded, or `failure` with an error message if it failed or\n * timed out.\n *\n * @example\n * ```ts\n * const response =\n * await client.beta.organization.externalKeys.validate(\n * 'external_key_id',\n * );\n * ```\n */\n validate(externalKeyID, options) {\n return this._client.post(path `/v1/organizations/external_keys/${externalKeyID}/validate?beta=true`, options);\n }\n}\n//# sourceMappingURL=external-keys.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { Page } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Invites extends APIResource {\n /**\n * Invite a user to join the organization by email.\n *\n * On plans that draw members from a finite pool of purchased seats, the invite\n * automatically consumes a seat from the lowest tier with availability; there is\n * no seat-tier parameter. When no seat is free the request fails with a 400 error\n * rather than purchasing a seat.\n *\n * @example\n * ```ts\n * const betaOrganizationInvite =\n * await client.beta.organization.invites.create({\n * email: 'user@emaildomain.com',\n * role: 'user',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/v1/organizations/invites?beta=true', { body, ...options });\n }\n /**\n * Retrieve an invite by ID.\n *\n * @example\n * ```ts\n * const betaOrganizationInvite =\n * await client.beta.organization.invites.retrieve(\n * 'invite_id',\n * );\n * ```\n */\n retrieve(inviteID, options) {\n return this._client.get(path `/v1/organizations/invites/${inviteID}?beta=true`, options);\n }\n /**\n * List the organization's invites.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaOrganizationInvite of client.beta.organization.invites.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/v1/organizations/invites?beta=true', (Page), {\n query,\n ...options,\n });\n }\n /**\n * Delete a pending invite.\n *\n * @example\n * ```ts\n * const invite =\n * await client.beta.organization.invites.delete(\n * 'invite_id',\n * );\n * ```\n */\n delete(inviteID, options) {\n return this._client.delete(path `/v1/organizations/invites/${inviteID}?beta=true`, options);\n }\n}\n//# sourceMappingURL=invites.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nexport class RateLimits extends APIResource {\n /**\n * List Messages API rate limits for your organization.\n *\n * Each entry corresponds to one rate-limit group (either a model family or an\n * API-surface category such as the Files API or Message Batches) and contains the\n * set of limiter values that apply to it.\n *\n * When `limit` is omitted, every matching entry is returned in a single page; when\n * `limit` truncates the result, follow `next_page` to fetch the remaining entries.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaOrganizationRateLimit of client.beta.organization.rateLimits.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/v1/organizations/rate_limits?beta=true', (PageCursor), { query, ...options });\n }\n}\n//# sourceMappingURL=rate-limits.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { Page } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Users extends APIResource {\n /**\n * Retrieve a member of the organization by user ID.\n *\n * @example\n * ```ts\n * const betaOrganizationUser =\n * await client.beta.organization.users.retrieve('user_id');\n * ```\n */\n retrieve(userID, options) {\n return this._client.get(path `/v1/organizations/users/${userID}?beta=true`, options);\n }\n /**\n * Update a member's organization role.\n *\n * @example\n * ```ts\n * const betaOrganizationUser =\n * await client.beta.organization.users.update('user_id', {\n * role: 'user',\n * });\n * ```\n */\n update(userID, body, options) {\n return this._client.post(path `/v1/organizations/users/${userID}?beta=true`, { body, ...options });\n }\n /**\n * List the organization's members.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaOrganizationUser of client.beta.organization.users.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/v1/organizations/users?beta=true', (Page), {\n query,\n ...options,\n });\n }\n /**\n * Remove a member from the organization.\n *\n * @example\n * ```ts\n * const user = await client.beta.organization.users.remove(\n * 'user_id',\n * );\n * ```\n */\n remove(userID, options) {\n return this._client.delete(path `/v1/organizations/users/${userID}?beta=true`, options);\n }\n}\n//# sourceMappingURL=users.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Issuers extends APIResource {\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Register an OIDC issuer that Anthropic will trust for workload identity\n * federation in your organization.\n *\n * The `jwks` field controls how the issuer's signing keys are obtained and takes\n * one of three shapes selected by `type`: `discovery` (resolve keys through OIDC\n * discovery), `explicit_url` (fetch keys from a fixed JWKS URL), or `inline`\n * (provide a static key set). When `jwks.type` is `discovery` and no\n * `discovery_base` is set, the issuer URL must be publicly reachable over HTTPS so\n * Anthropic can fetch the discovery document; for `explicit_url` and `inline`\n * modes the issuer URL is only matched as the JWT's `iss` claim and is not\n * fetched.\n *\n * @example\n * ```ts\n * const betaFederationIssuer =\n * await client.beta.organization.federation.issuers.create({\n * issuer_url: 'x',\n * name: 'x',\n * });\n * ```\n */\n create(params, options) {\n const { betas, ...body } = params;\n return this._client.post('/v1/organizations/federation_issuers?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Retrieve a federation issuer by its ID (`fdis_...`).\n *\n * @example\n * ```ts\n * const betaFederationIssuer =\n * await client.beta.organization.federation.issuers.retrieve(\n * 'federation_issuer_id',\n * );\n * ```\n */\n retrieve(federationIssuerID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.get(path `/v1/organizations/federation_issuers/${federationIssuerID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Partially update a federation issuer.\n *\n * Setting `jwks` replaces the full JWKS shape at once. Archived issuers cannot be\n * updated; this returns 400. Create a new issuer instead.\n *\n * Updating an issuer that backs a rule with a scope outside `workspace:developer`\n * or `workspace:inference` requires a Console session.\n *\n * @example\n * ```ts\n * const betaFederationIssuer =\n * await client.beta.organization.federation.issuers.update(\n * 'federation_issuer_id',\n * );\n * ```\n */\n update(federationIssuerID, params, options) {\n const { betas, ...body } = params;\n return this._client.post(path `/v1/organizations/federation_issuers/${federationIssuerID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * List federation issuers in your organization.\n *\n * Archived issuers are excluded unless `include_archived=true`.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaFederationIssuer of client.beta.organization.federation.issuers.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList('/v1/organizations/federation_issuers?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Archive a federation issuer.\n *\n * Idempotent; re-archiving returns the issuer with its original `archived_at`.\n * Rejected with 400 if any live (non-archived) federation rule still references\n * the issuer; archive those rules first (a rule's issuer cannot be changed), or\n * recreate them against another issuer.\n *\n * @example\n * ```ts\n * const betaFederationIssuer =\n * await client.beta.organization.federation.issuers.archive(\n * 'federation_issuer_id',\n * );\n * ```\n */\n archive(federationIssuerID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.post(path `/v1/organizations/federation_issuers/${federationIssuerID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=issuers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../../internal/headers.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class Workspaces extends APIResource {\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * List workspaces where this federation rule is enabled.\n *\n * Returns all workspace enablements in a single response; the `limit` and `page`\n * parameters are accepted but have no effect, and `next_page` is always `null`.\n * Returns explicit per-workspace enablements only; for rules with\n * `applies_to_all_workspaces` or a legacy single `workspace_id`, check those\n * fields on the rule itself.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaFederationRuleWorkspace of client.beta.organization.federation.rules.workspaces.list(\n * 'federation_rule_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(federationRuleID, params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/organizations/federation_rules/${federationRuleID}/workspaces?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Enable a federation rule for a workspace.\n *\n * Idempotent; re-enabling returns the existing enablement. The rule and workspace\n * must both belong to your organization. Membership of the rule's target service\n * account in this workspace is not checked at enablement: token exchange into this\n * workspace is rejected unless the target is a member (it is implicitly a member\n * of the default workspace). Archived rules are rejected with 400. OAuth callers\n * may only manage rules whose `oauth_scope` is `workspace:developer` or\n * `workspace:inference`; other scopes require a Console session.\n *\n * @example\n * ```ts\n * const betaFederationRuleWorkspace =\n * await client.beta.organization.federation.rules.workspaces.add(\n * 'federation_rule_id',\n * { workspace_id: 'workspace_id' },\n * );\n * ```\n */\n add(federationRuleID, params, options) {\n const { betas, ...body } = params;\n return this._client.post(path `/v1/organizations/federation_rules/${federationRuleID}/workspaces?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Disable a federation rule for a workspace.\n *\n * Idempotent; succeeds even if the enablement was already removed. OAuth callers\n * may only manage rules whose `oauth_scope` is `workspace:developer` or\n * `workspace:inference`; other scopes require a Console session.\n *\n * @example\n * ```ts\n * const workspace =\n * await client.beta.organization.federation.rules.workspaces.remove(\n * 'workspace_id',\n * { federation_rule_id: 'federation_rule_id' },\n * );\n * ```\n */\n remove(workspaceID, params, options) {\n const { federation_rule_id, betas } = params;\n return this._client.delete(path `/v1/organizations/federation_rules/${federation_rule_id}/workspaces/${workspaceID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=workspaces.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../../core/resource.mjs\";\nimport * as WorkspacesAPI from \"./workspaces.mjs\";\nimport { Workspaces, } from \"./workspaces.mjs\";\nimport { PageCursor } from \"../../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../../internal/headers.mjs\";\nimport { path } from \"../../../../../internal/utils/path.mjs\";\nexport class Rules extends APIResource {\n constructor() {\n super(...arguments);\n this.workspaces = new WorkspacesAPI.Workspaces(this._client);\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Create a federation rule owned by your organization.\n *\n * The referenced issuer and the target service account must already exist in the\n * same organization; invalid references are rejected with a 400 error. The\n * workspace reference is validated. Membership is not checked at rule creation:\n * token exchange resolves a single enabled workspace per call and is rejected\n * unless the target service account is a member of that workspace (it is\n * implicitly a member of the default workspace). Rules on well-known shared\n * issuers (GitHub Actions, GitLab, Buildkite, Terraform Cloud, Google) must\n * constrain tenant identity via an identity-bearing claim, a tenant-pinning\n * subject prefix (such as `repo:YOUR_ORG/...`), or a CEL condition referencing one\n * of those identity claims (e.g. `claims.repository_owner`). OAuth callers may\n * only manage rules whose `oauth_scope` is `workspace:developer` or\n * `workspace:inference`; other scopes require a Console session.\n *\n * @example\n * ```ts\n * const betaFederationRule =\n * await client.beta.organization.federation.rules.create({\n * issuer_id: 'issuer_id',\n * match: {},\n * name: 'x',\n * oauth_scope: 'x',\n * target: {\n * service_account_id: 'svac_01SDCCSbTxrXDpWc1phhtcfK',\n * type: 'service_account',\n * },\n * });\n * ```\n */\n create(params, options) {\n const { betas, ...body } = params;\n return this._client.post('/v1/organizations/federation_rules?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Retrieve a federation rule by its ID (`fdrl_...`).\n *\n * @example\n * ```ts\n * const betaFederationRule =\n * await client.beta.organization.federation.rules.retrieve(\n * 'federation_rule_id',\n * );\n * ```\n */\n retrieve(federationRuleID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.get(path `/v1/organizations/federation_rules/${federationRuleID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Partially update a federation rule.\n *\n * `issuer_id` is immutable. `match` and `target` are replaced as whole objects\n * when set. Referenced service accounts and workspaces must exist in your\n * organization; invalid references are rejected with a 400 error. Archived rules\n * cannot be updated; this returns 400. Create a new rule instead. Rules on\n * well-known shared issuers (GitHub Actions, GitLab, Buildkite, Terraform Cloud,\n * Google) must constrain tenant identity via an identity-bearing claim, a\n * tenant-pinning subject prefix (such as `repo:YOUR_ORG/...`), or a CEL condition\n * referencing one of those identity claims (e.g. `claims.repository_owner`). On\n * these issuers the requirement is re-checked on every update; if an existing\n * rule's stored match does not yet constrain tenant identity, any update (even a\n * rename or description change) must also supply a conforming `match` in the same\n * request. OAuth callers may only manage rules whose `oauth_scope` is\n * `workspace:developer` or `workspace:inference`; other scopes require a Console\n * session.\n *\n * @example\n * ```ts\n * const betaFederationRule =\n * await client.beta.organization.federation.rules.update(\n * 'federation_rule_id',\n * );\n * ```\n */\n update(federationRuleID, params, options) {\n const { betas, ...body } = params;\n return this._client.post(path `/v1/organizations/federation_rules/${federationRuleID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * List federation rules in your organization.\n *\n * Optionally filter by issuer with `issuer_id`. Archived rules are excluded unless\n * `include_archived=true`.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaFederationRule of client.beta.organization.federation.rules.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList('/v1/organizations/federation_rules?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Archive a federation rule.\n *\n * Token exchange through this rule stops immediately. Idempotent; re-archiving\n * returns the rule with its original `archived_at`. Archiving clears the rule's\n * workspace targeting (`workspace_id` and `workspace_ids` are emptied). Tokens\n * already minted before archive remain valid until they expire. OAuth callers may\n * only manage rules whose `oauth_scope` is `workspace:developer` or\n * `workspace:inference`; other scopes require a Console session.\n *\n * @example\n * ```ts\n * const betaFederationRule =\n * await client.beta.organization.federation.rules.archive(\n * 'federation_rule_id',\n * );\n * ```\n */\n archive(federationRuleID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.post(path `/v1/organizations/federation_rules/${federationRuleID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\nRules.Workspaces = Workspaces;\n//# sourceMappingURL=rules.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as IssuersAPI from \"./issuers.mjs\";\nimport { Issuers, } from \"./issuers.mjs\";\nimport * as RulesAPI from \"./rules/rules.mjs\";\nimport { Rules, } from \"./rules/rules.mjs\";\nexport class Federation extends APIResource {\n constructor() {\n super(...arguments);\n this.issuers = new IssuersAPI.Issuers(this._client);\n this.rules = new RulesAPI.Rules(this._client);\n }\n}\nFederation.Issuers = Issuers;\nFederation.Rules = Rules;\n//# sourceMappingURL=federation.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Workspaces extends APIResource {\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * List the workspaces a service account is a member of.\n *\n * Each entry includes the service account's `workspace_role` in that workspace.\n * Use `limit` and the `next_page` cursor to paginate. When the service account has\n * no explicit default-workspace membership, the implicit (`implicit: true`)\n * membership is returned as the first entry on the first page; with `limit=1` the\n * first page may return up to 2 entries (the implicit entry plus one explicit\n * membership) so a pagination cursor can be derived. Memberships are returned only\n * while the service account is active. Without a `page` cursor, an archived\n * service account returns an empty list. A `page` cursor that does not match an\n * active membership returns a 400 invalid-request error. A cursor stops matching\n * when the membership is removed, the workspace is deleted, or the service account\n * is archived. Restart pagination from the first page to recover.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaServiceAccountWorkspaceMember of client.beta.organization.serviceAccounts.workspaces.list(\n * 'service_account_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(serviceAccountID, params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/organizations/service_accounts/${serviceAccountID}/workspaces?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Add a service account to a workspace with the given `workspace_role`.\n *\n * Mirror of `POST /workspaces/{workspace_id}/service_accounts`, addressed from the\n * service-account side; both create the same membership. If the service account is\n * already an explicit member of the workspace, its `workspace_role` is replaced\n * with the value supplied here. Archived workspaces return 400. Archived service\n * accounts cannot be added and are rejected.\n *\n * @example\n * ```ts\n * const betaServiceAccountWorkspaceMember =\n * await client.beta.organization.serviceAccounts.workspaces.add(\n * 'service_account_id',\n * {\n * workspace_id: 'workspace_id',\n * workspace_role: 'workspace_admin',\n * },\n * );\n * ```\n */\n add(serviceAccountID, params, options) {\n const { betas, ...body } = params;\n return this._client.post(path `/v1/organizations/service_accounts/${serviceAccountID}/workspaces?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Remove a service account from a workspace.\n *\n * Mirror of\n * `DELETE /workspaces/{workspace_id}/service_accounts/{service_account_id}`,\n * addressed from the service-account side. Removal is idempotent (returns 200 even\n * if the membership was already removed). A DELETE against the implicit\n * default-workspace membership returns 200 but is a no-op and the membership\n * persists; deleting an explicit default-workspace row reverts to the implicit\n * `workspace_user` membership. Archived workspaces return 400.\n *\n * @example\n * ```ts\n * const workspace =\n * await client.beta.organization.serviceAccounts.workspaces.remove(\n * 'workspace_id',\n * { service_account_id: 'service_account_id' },\n * );\n * ```\n */\n remove(workspaceID, params, options) {\n const { service_account_id, betas } = params;\n return this._client.delete(path `/v1/organizations/service_accounts/${service_account_id}/workspaces/${workspaceID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=workspaces.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as WorkspacesAPI from \"./workspaces.mjs\";\nimport { Workspaces, } from \"./workspaces.mjs\";\nimport { PageCursor } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class ServiceAccounts extends APIResource {\n constructor() {\n super(...arguments);\n this.workspaces = new WorkspacesAPI.Workspaces(this._client);\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Create a service account.\n *\n * A service account is a named workload identity that federation rules target.\n * `organization_role` is `developer` (default) or `admin`; a rule may only be\n * created or retargeted to grant `org:admin` scope when the target's\n * `organization_role` is `admin`. Creating an `admin`-role service account\n * requires an interactive credential (a user OAuth token or a Console session) — a\n * workload may only create `developer`-role service accounts.\n *\n * @example\n * ```ts\n * const betaServiceAccount =\n * await client.beta.organization.serviceAccounts.create({\n * name: 'ci-deploy-bot',\n * });\n * ```\n */\n create(params, options) {\n const { betas, ...body } = params;\n return this._client.post('/v1/organizations/service_accounts?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Retrieve a service account by its ID (`svac_...`).\n *\n * @example\n * ```ts\n * const betaServiceAccount =\n * await client.beta.organization.serviceAccounts.retrieve(\n * 'service_account_id',\n * );\n * ```\n */\n retrieve(serviceAccountID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.get(path `/v1/organizations/service_accounts/${serviceAccountID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Update a service account.\n *\n * Only `description` and `organization_role` are mutable; `name` cannot be\n * changed. Archived service accounts cannot be updated; this returns 400. Setting\n * `organization_role` to `admin` (even when unchanged) requires an interactive\n * credential (a user OAuth token or a Console session).\n *\n * @example\n * ```ts\n * const betaServiceAccount =\n * await client.beta.organization.serviceAccounts.update(\n * 'service_account_id',\n * );\n * ```\n */\n update(serviceAccountID, params, options) {\n const { betas, ...body } = params;\n return this._client.post(path `/v1/organizations/service_accounts/${serviceAccountID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * List service accounts in the caller's organization.\n *\n * Results are ordered by creation time, newest first. Use `limit` and the\n * `next_page` cursor to paginate; set `include_archived=true` to include archived\n * service accounts.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaServiceAccount of client.beta.organization.serviceAccounts.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList('/v1/organizations/service_accounts?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Archive a service account.\n *\n * Idempotent; re-archiving returns the service account with its original\n * `archived_at`. Rejected with 400 if any live (non-archived) federation rule\n * still targets this service account, same as issuer archival; archive those rules\n * first or change their target to another service account.\n *\n * @example\n * ```ts\n * const betaServiceAccount =\n * await client.beta.organization.serviceAccounts.archive(\n * 'service_account_id',\n * );\n * ```\n */\n archive(serviceAccountID, params = {}, options) {\n const { betas } = params ?? {};\n return this._client.post(path `/v1/organizations/service_accounts/${serviceAccountID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\nServiceAccounts.Workspaces = Workspaces;\n//# sourceMappingURL=service-accounts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { Page } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Members extends APIResource {\n /**\n * Get Workspace Member\n *\n * @example\n * ```ts\n * const betaWorkspaceMember =\n * await client.beta.organization.workspaces.members.retrieve(\n * 'user_id',\n * { workspace_id: 'workspace_id' },\n * );\n * ```\n */\n retrieve(userID, params, options) {\n const { workspace_id } = params;\n return this._client.get(path `/v1/organizations/workspaces/${workspace_id}/members/${userID}?beta=true`, options);\n }\n /**\n * Update Workspace Member\n *\n * @example\n * ```ts\n * const betaWorkspaceMember =\n * await client.beta.organization.workspaces.members.update(\n * 'user_id',\n * {\n * workspace_id: 'workspace_id',\n * workspace_role: 'workspace_admin',\n * },\n * );\n * ```\n */\n update(userID, params, options) {\n const { workspace_id, ...body } = params;\n return this._client.post(path `/v1/organizations/workspaces/${workspace_id}/members/${userID}?beta=true`, {\n body,\n ...options,\n });\n }\n /**\n * List Workspace Members\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaWorkspaceMember of client.beta.organization.workspaces.members.list(\n * 'workspace_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(workspaceID, query = {}, options) {\n return this._client.getAPIList(path `/v1/organizations/workspaces/${workspaceID}/members?beta=true`, (Page), { query, ...options });\n }\n /**\n * Create Workspace Member\n *\n * @example\n * ```ts\n * const betaWorkspaceMember =\n * await client.beta.organization.workspaces.members.add(\n * 'workspace_id',\n * {\n * user_id: 'user_01WCz1FkmYMm4gnmykNKUu3Q',\n * workspace_role: 'workspace_admin',\n * },\n * );\n * ```\n */\n add(workspaceID, body, options) {\n return this._client.post(path `/v1/organizations/workspaces/${workspaceID}/members?beta=true`, {\n body,\n ...options,\n });\n }\n /**\n * Delete Workspace Member\n *\n * @example\n * ```ts\n * const member =\n * await client.beta.organization.workspaces.members.remove(\n * 'user_id',\n * { workspace_id: 'workspace_id' },\n * );\n * ```\n */\n remove(userID, params, options) {\n const { workspace_id } = params;\n return this._client.delete(path `/v1/organizations/workspaces/${workspace_id}/members/${userID}?beta=true`, options);\n }\n}\n//# sourceMappingURL=members.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../../core/pagination.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class RateLimits extends APIResource {\n /**\n * List rate-limit overrides configured for a workspace.\n *\n * Returns only the groups and limiter types that have a workspace-level override.\n * Groups without overrides inherit the organization limits and are not listed; use\n * `GET /v1/organizations/rate_limits` to see those.\n *\n * When `limit` is omitted, every matching entry is returned in a single page; when\n * `limit` truncates the result, follow `next_page` to fetch the remaining entries.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaWorkspaceRateLimit of client.beta.organization.workspaces.rateLimits.list(\n * 'workspace_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(workspaceID, query = {}, options) {\n return this._client.getAPIList(path `/v1/organizations/workspaces/${workspaceID}/rate_limits?beta=true`, (PageCursor), { query, ...options });\n }\n}\n//# sourceMappingURL=rate-limits.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class ServiceAccounts extends APIResource {\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Retrieve a service account's membership in a workspace.\n *\n * Returns the membership record, including the service account's `workspace_role`\n * in this workspace. Archived workspaces return 400. For the default workspace,\n * returns the implicit (`implicit: true`) membership when no explicit membership\n * exists; an explicitly added membership is returned with its assigned role. An\n * archived service account returns 404.\n *\n * @example\n * ```ts\n * const betaServiceAccountWorkspaceMember =\n * await client.beta.organization.workspaces.serviceAccounts.retrieve(\n * 'service_account_id',\n * { workspace_id: 'workspace_id' },\n * );\n * ```\n */\n retrieve(serviceAccountID, params, options) {\n const { workspace_id, betas } = params;\n return this._client.get(path `/v1/organizations/workspaces/${workspace_id}/service_accounts/${serviceAccountID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Change a service account's role in a workspace.\n *\n * The new `workspace_role` replaces the current one. Only explicit memberships can\n * be updated; to set a role on the implicit default-workspace membership, add the\n * service account explicitly with\n * `POST /workspaces/{workspace_id}/service_accounts`. Archived workspaces\n * return 400. Archived service accounts cannot be updated and are rejected.\n *\n * @example\n * ```ts\n * const betaServiceAccountWorkspaceMember =\n * await client.beta.organization.workspaces.serviceAccounts.update(\n * 'service_account_id',\n * {\n * workspace_id: 'workspace_id',\n * workspace_role: 'workspace_admin',\n * },\n * );\n * ```\n */\n update(serviceAccountID, params, options) {\n const { workspace_id, betas, ...body } = params;\n return this._client.post(path `/v1/organizations/workspaces/${workspace_id}/service_accounts/${serviceAccountID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * List the service accounts that are members of a workspace.\n *\n * Each entry includes the service account's `workspace_role`. Use `limit` and the\n * `next_page` cursor to paginate. Archived workspaces return 400; use\n * `GET /service_accounts/{id}/workspaces` to audit memberships of an archived\n * workspace. The implicit default-workspace membership is not included in this\n * list. Memberships of archived service accounts are omitted from the results.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaServiceAccountWorkspaceMember of client.beta.organization.workspaces.serviceAccounts.list(\n * 'workspace_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(workspaceID, params = {}, options) {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/organizations/workspaces/${workspaceID}/service_accounts?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Add a service account to a workspace with the given `workspace_role`.\n *\n * The role determines what the service account can do in the workspace and which\n * workspace-scoped permissions it can be granted when authenticating through\n * federation. Every service account is already an implicit `workspace_user` member\n * of the default workspace; adding it explicitly assigns a chosen role. If the\n * service account is already an explicit member of the workspace, its\n * `workspace_role` is replaced with the value supplied here. Archived workspaces\n * return 400. Archived service accounts cannot be added and are rejected.\n *\n * @example\n * ```ts\n * const betaServiceAccountWorkspaceMember =\n * await client.beta.organization.workspaces.serviceAccounts.add(\n * 'workspace_id',\n * {\n * service_account_id: 'service_account_id',\n * workspace_role: 'workspace_admin',\n * },\n * );\n * ```\n */\n add(workspaceID, params, options) {\n const { betas, ...body } = params;\n return this._client.post(path `/v1/organizations/workspaces/${workspaceID}/service_accounts?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * **Requires an OAuth access token with the `org:admin` scope**, from\n * `ant auth login --scope org:admin` or a workload identity federation rule; Admin\n * API keys are not accepted. See\n * [Manage WIF with the Admin API](/docs/en/manage-claude/wif-admin-api).\n *\n * Remove a service account from a workspace.\n *\n * Removal is idempotent (returns 200 even if the membership was already removed).\n * A DELETE against the implicit default-workspace membership returns 200 but is a\n * no-op and the membership persists; deleting an explicit default-workspace row\n * reverts to the implicit `workspace_user` membership. Archived workspaces\n * return 400.\n *\n * @example\n * ```ts\n * const serviceAccount =\n * await client.beta.organization.workspaces.serviceAccounts.remove(\n * 'service_account_id',\n * { workspace_id: 'workspace_id' },\n * );\n * ```\n */\n remove(serviceAccountID, params, options) {\n const { workspace_id, betas } = params;\n return this._client.delete(path `/v1/organizations/workspaces/${workspace_id}/service_accounts/${serviceAccountID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=service-accounts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as MembersAPI from \"./members.mjs\";\nimport { Members, } from \"./members.mjs\";\nimport * as RateLimitsAPI from \"./rate-limits.mjs\";\nimport { RateLimits, } from \"./rate-limits.mjs\";\nimport * as ServiceAccountsAPI from \"./service-accounts.mjs\";\nimport { ServiceAccounts, } from \"./service-accounts.mjs\";\nimport { Page } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Workspaces extends APIResource {\n constructor() {\n super(...arguments);\n this.rateLimits = new RateLimitsAPI.RateLimits(this._client);\n this.members = new MembersAPI.Members(this._client);\n this.serviceAccounts = new ServiceAccountsAPI.ServiceAccounts(this._client);\n }\n /**\n * Create Workspace\n *\n * @example\n * ```ts\n * const betaWorkspace =\n * await client.beta.organization.workspaces.create({\n * name: 'x',\n * });\n * ```\n */\n create(params, options) {\n const { betas, ...body } = params;\n return this._client.post('/v1/organizations/workspaces?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Get Workspace\n *\n * @example\n * ```ts\n * const betaWorkspace =\n * await client.beta.organization.workspaces.retrieve(\n * 'workspace_id',\n * );\n * ```\n */\n retrieve(workspaceID, options) {\n return this._client.get(path `/v1/organizations/workspaces/${workspaceID}?beta=true`, options);\n }\n /**\n * Update Workspace\n *\n * @example\n * ```ts\n * const betaWorkspace =\n * await client.beta.organization.workspaces.update(\n * 'workspace_id',\n * );\n * ```\n */\n update(workspaceID, body, options) {\n return this._client.post(path `/v1/organizations/workspaces/${workspaceID}?beta=true`, {\n body,\n ...options,\n });\n }\n /**\n * List Workspaces\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaWorkspace of client.beta.organization.workspaces.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/v1/organizations/workspaces?beta=true', (Page), {\n query,\n ...options,\n });\n }\n /**\n * Archive Workspace\n *\n * @example\n * ```ts\n * const betaWorkspace =\n * await client.beta.organization.workspaces.archive(\n * 'workspace_id',\n * );\n * ```\n */\n archive(workspaceID, options) {\n return this._client.post(path `/v1/organizations/workspaces/${workspaceID}/archive?beta=true`, options);\n }\n}\nWorkspaces.RateLimits = RateLimits;\nWorkspaces.Members = Members;\nWorkspaces.ServiceAccounts = ServiceAccounts;\n//# sourceMappingURL=workspaces.mjs.map","// File generated from our OpenAPI spec by Stainless. 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 ComplianceSettingsAPI from \"./compliance-settings.mjs\";\nimport { ComplianceSettings, } from \"./compliance-settings.mjs\";\nimport * as ExternalKeysAPI from \"./external-keys.mjs\";\nimport { ExternalKeys, } from \"./external-keys.mjs\";\nimport * as InvitesAPI from \"./invites.mjs\";\nimport { Invites, } from \"./invites.mjs\";\nimport * as RateLimitsAPI from \"./rate-limits.mjs\";\nimport { RateLimits, } from \"./rate-limits.mjs\";\nimport * as UsersAPI from \"./users.mjs\";\nimport { Users, } from \"./users.mjs\";\nimport * as FederationAPI from \"./federation/federation.mjs\";\nimport { Federation } from \"./federation/federation.mjs\";\nimport * as ServiceAccountsAPI from \"./service-accounts/service-accounts.mjs\";\nimport { ServiceAccounts, } from \"./service-accounts/service-accounts.mjs\";\nimport * as WorkspacesAPI from \"./workspaces/workspaces.mjs\";\nimport { Workspaces, } from \"./workspaces/workspaces.mjs\";\nexport class Organization extends APIResource {\n constructor() {\n super(...arguments);\n this.apiKeys = new APIKeysAPI.APIKeys(this._client);\n this.externalKeys = new ExternalKeysAPI.ExternalKeys(this._client);\n this.federation = new FederationAPI.Federation(this._client);\n this.invites = new InvitesAPI.Invites(this._client);\n this.serviceAccounts = new ServiceAccountsAPI.ServiceAccounts(this._client);\n this.users = new UsersAPI.Users(this._client);\n this.workspaces = new WorkspacesAPI.Workspaces(this._client);\n this.rateLimits = new RateLimitsAPI.RateLimits(this._client);\n this.complianceSettings = new ComplianceSettingsAPI.ComplianceSettings(this._client);\n }\n /**\n * Retrieve information about the organization associated with the authenticated\n * API key.\n *\n * @example\n * ```ts\n * const betaOrganization =\n * await client.beta.organization.retrieve();\n * ```\n */\n retrieve(options) {\n return this._client.get('/v1/organizations/me?beta=true', options);\n }\n}\nOrganization.APIKeys = APIKeys;\nOrganization.ExternalKeys = ExternalKeys;\nOrganization.Federation = Federation;\nOrganization.Invites = Invites;\nOrganization.ServiceAccounts = ServiceAccounts;\nOrganization.Users = Users;\nOrganization.Workspaces = Workspaces;\nOrganization.RateLimits = RateLimits;\nOrganization.ComplianceSettings = ComplianceSettings;\n//# sourceMappingURL=organization.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nimport { SessionToolRunner, } from \"../../../lib/tools/SessionToolRunner.mjs\";\nexport class Events extends APIResource {\n /**\n * List Events\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsSessionEvent of client.beta.sessions.events.list(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * )) {\n * // ...\n * }\n * ```\n */\n list(sessionID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/sessions/${sessionID}/events?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Send Events\n *\n * @example\n * ```ts\n * const betaManagedAgentsSendSessionEvents =\n * await client.beta.sessions.events.send(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * {\n * events: [\n * {\n * content: [\n * {\n * text: 'Where is my order #1234?',\n * type: 'text',\n * },\n * ],\n * type: 'user.message',\n * },\n * ],\n * },\n * );\n * ```\n */\n send(sessionID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/sessions/${sessionID}/events?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Stream Events\n *\n * @example\n * ```ts\n * const betaManagedAgentsStreamSessionEvents =\n * await client.beta.sessions.events.stream(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * );\n * ```\n */\n stream(sessionID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.get(path `/v1/sessions/${sessionID}/events/stream?beta=true`, {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n stream: true,\n });\n }\n /**\n * Attach to a session and dispatch every incoming `agent.tool_use` and\n * `agent.custom_tool_use` event to a local tool registry, sending the matching\n * result back (`user.tool_result` / `user.custom_tool_result`). The\n * sessions-side counterpart to `client.beta.messages.toolRunner`: yields one\n * entry per completed tool call so callers can observe each dispatch (and\n * `break` to abort cleanly).\n *\n * @example\n * ```ts\n * import { betaAgentToolset20260401 } from '@anthropic-ai/sdk/tools/agent-toolset/node';\n *\n * for await (const call of client.beta.sessions.events.toolRunner(work.data.id, {\n * tools: [...betaAgentToolset20260401({ workdir }), myTool],\n * })) {\n * console.log(`${call.name} -> ${call.isError ? 'error' : 'ok'}`);\n * }\n * ```\n */\n toolRunner(sessionID, opts) {\n return new SessionToolRunner(sessionID, { ...opts, client: this._client });\n }\n}\nexport { SessionToolRunner } from \"../../../lib/tools/SessionToolRunner.mjs\";\nEvents.SessionToolRunner = SessionToolRunner;\n//# sourceMappingURL=events.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Resources extends APIResource {\n /**\n * Get Session Resource\n *\n * @example\n * ```ts\n * const resource =\n * await client.beta.sessions.resources.retrieve(\n * 'sesrsc_011CZkZBJq5dWxk9fVLNcPht',\n * { session_id: 'sesn_011CZkZAtmR3yMPDzynEDxu7' },\n * );\n * ```\n */\n retrieve(resourceID, params, options) {\n const { session_id, betas, workspace_id } = params;\n return this._client.get(path `/v1/sessions/${session_id}/resources/${resourceID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update Session Resource\n *\n * @example\n * ```ts\n * const resource =\n * await client.beta.sessions.resources.update(\n * 'sesrsc_011CZkZBJq5dWxk9fVLNcPht',\n * {\n * session_id: 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * authorization_token: 'ghp_exampletoken',\n * },\n * );\n * ```\n */\n update(resourceID, params, options) {\n const { session_id, betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/sessions/${session_id}/resources/${resourceID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Session Resources\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsSessionResource of client.beta.sessions.resources.list(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * )) {\n * // ...\n * }\n * ```\n */\n list(sessionID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/sessions/${sessionID}/resources?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete Session Resource\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeleteSessionResource =\n * await client.beta.sessions.resources.delete(\n * 'sesrsc_011CZkZBJq5dWxk9fVLNcPht',\n * { session_id: 'sesn_011CZkZAtmR3yMPDzynEDxu7' },\n * );\n * ```\n */\n delete(resourceID, params, options) {\n const { session_id, betas, workspace_id } = params;\n return this._client.delete(path `/v1/sessions/${session_id}/resources/${resourceID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Add Session Resource\n *\n * @example\n * ```ts\n * const betaManagedAgentsFileResource =\n * await client.beta.sessions.resources.add(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * {\n * file_id: 'file_011CNha8iCJcU1wXNR6q4V8w',\n * type: 'file',\n * },\n * );\n * ```\n */\n add(sessionID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/sessions/${sessionID}/resources?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=resources.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Events extends APIResource {\n /**\n * List Session Thread Events\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsSessionEvent of client.beta.sessions.threads.events.list(\n * 'sthr_011CZkZVWa6oIjw0rgXZpnBt',\n * { session_id: 'sesn_011CZkZAtmR3yMPDzynEDxu7' },\n * )) {\n * // ...\n * }\n * ```\n */\n list(threadID, params, options) {\n const { session_id, betas, workspace_id, ...query } = params;\n return this._client.getAPIList(path `/v1/sessions/${session_id}/threads/${threadID}/events?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Stream Session Thread Events\n *\n * @example\n * ```ts\n * const betaManagedAgentsStreamSessionThreadEvents =\n * await client.beta.sessions.threads.events.stream(\n * 'sthr_011CZkZVWa6oIjw0rgXZpnBt',\n * { session_id: 'sesn_011CZkZAtmR3yMPDzynEDxu7' },\n * );\n * ```\n */\n stream(threadID, params, options) {\n const { session_id, betas, workspace_id, ...query } = params;\n return this._client.get(path `/v1/sessions/${session_id}/threads/${threadID}/stream?beta=true`, {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n stream: true,\n });\n }\n}\n//# sourceMappingURL=events.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as ThreadsEventsAPI from \"./events.mjs\";\nimport { Events } from \"./events.mjs\";\nimport { PageCursor } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\nexport class Threads extends APIResource {\n constructor() {\n super(...arguments);\n this.events = new ThreadsEventsAPI.Events(this._client);\n }\n /**\n * Get Session Thread\n *\n * @example\n * ```ts\n * const betaManagedAgentsSessionThread =\n * await client.beta.sessions.threads.retrieve(\n * 'sthr_011CZkZVWa6oIjw0rgXZpnBt',\n * { session_id: 'sesn_011CZkZAtmR3yMPDzynEDxu7' },\n * );\n * ```\n */\n retrieve(threadID, params, options) {\n const { session_id, betas, workspace_id } = params;\n return this._client.get(path `/v1/sessions/${session_id}/threads/${threadID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Session Threads\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsSessionThread of client.beta.sessions.threads.list(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * )) {\n * // ...\n * }\n * ```\n */\n list(sessionID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/sessions/${sessionID}/threads?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive Session Thread\n *\n * @example\n * ```ts\n * const betaManagedAgentsSessionThread =\n * await client.beta.sessions.threads.archive(\n * 'sthr_011CZkZVWa6oIjw0rgXZpnBt',\n * { session_id: 'sesn_011CZkZAtmR3yMPDzynEDxu7' },\n * );\n * ```\n */\n archive(threadID, params, options) {\n const { session_id, betas, workspace_id } = params;\n return this._client.post(path `/v1/sessions/${session_id}/threads/${threadID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nThreads.Events = Events;\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as EventsAPI from \"./events.mjs\";\nimport { Events, } from \"./events.mjs\";\nimport * as ResourcesAPI from \"./resources.mjs\";\nimport { Resources, } from \"./resources.mjs\";\nimport * as ThreadsAPI from \"./threads/threads.mjs\";\nimport { Threads, } from \"./threads/threads.mjs\";\nimport { BidirectionalPageCursor, } 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.events = new EventsAPI.Events(this._client);\n this.resources = new ResourcesAPI.Resources(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n /**\n * Create Session\n *\n * @example\n * ```ts\n * const betaManagedAgentsSession =\n * await client.beta.sessions.create({\n * agent: 'agent_011CZkYpogX7uDKUyvBTophP',\n * environment_id: 'env_011CZkZ9X2dpNyB7HsEFoRfW',\n * });\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/sessions?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Get Session\n *\n * @example\n * ```ts\n * const betaManagedAgentsSession =\n * await client.beta.sessions.retrieve(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * );\n * ```\n */\n retrieve(sessionID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/sessions/${sessionID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update Session\n *\n * @example\n * ```ts\n * const betaManagedAgentsSession =\n * await client.beta.sessions.update(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * );\n * ```\n */\n update(sessionID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/sessions/${sessionID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Sessions\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsSession of client.beta.sessions.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/sessions?beta=true', (BidirectionalPageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete Session\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeletedSession =\n * await client.beta.sessions.delete(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * );\n * ```\n */\n delete(sessionID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.delete(path `/v1/sessions/${sessionID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive Session\n *\n * @example\n * ```ts\n * const betaManagedAgentsSession =\n * await client.beta.sessions.archive(\n * 'sesn_011CZkZAtmR3yMPDzynEDxu7',\n * );\n * ```\n */\n archive(sessionID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/sessions/${sessionID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nSessions.Events = Events;\nSessions.Resources = Resources;\nSessions.Threads = Threads;\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../../../internal/uploads.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Versions extends APIResource {\n /**\n * Create Skill Version\n *\n * @example\n * ```ts\n * const betaSkillVersion =\n * await client.beta.skills.versions.create('skill_id', {\n * files: [fs.createReadStream('path/to/file')],\n * });\n * ```\n */\n create(skillID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/skills/${skillID}/versions?beta=true`, multipartFormRequestOptions({\n body,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n }, this._client, false));\n }\n /**\n * Get Skill Version\n *\n * @example\n * ```ts\n * const betaSkillVersion =\n * await client.beta.skills.versions.retrieve('version', {\n * skill_id: 'skill_id',\n * });\n * ```\n */\n retrieve(version, params, options) {\n const { skill_id, betas, workspace_id } = params;\n return this._client.get(path `/v1/skills/${skill_id}/versions/${version}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Skill Versions\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaSkillVersion of client.beta.skills.versions.list(\n * 'skill_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(skillID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/skills/${skillID}/versions?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete Skill Version\n *\n * @example\n * ```ts\n * const betaDeletedSkillVersion =\n * await client.beta.skills.versions.delete('version', {\n * skill_id: 'skill_id',\n * });\n * ```\n */\n delete(version, params, options) {\n const { skill_id, betas, workspace_id } = params;\n return this._client.delete(path `/v1/skills/${skill_id}/versions/${version}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Download a skill version's content as a zip archive.\n *\n * @example\n * ```ts\n * const response = await client.beta.skills.versions.download(\n * 'version',\n * { skill_id: 'skill_id' },\n * );\n *\n * const content = await response.blob();\n * console.log(content);\n * ```\n */\n download(version, params, options) {\n const { skill_id, betas, workspace_id } = params;\n return this._client.get(path `/v1/skills/${skill_id}/versions/${version}/content?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n Accept: 'application/binary',\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=versions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as VersionsAPI from \"./versions.mjs\";\nimport { Versions, } from \"./versions.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../../../internal/uploads.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Skills extends APIResource {\n constructor() {\n super(...arguments);\n this.versions = new VersionsAPI.Versions(this._client);\n }\n /**\n * Create Skill\n *\n * @example\n * ```ts\n * const betaSkill = await client.beta.skills.create({\n * files: [fs.createReadStream('path/to/file')],\n * });\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/skills?beta=true', multipartFormRequestOptions({\n body,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n }, this._client, false));\n }\n /**\n * Get Skill\n *\n * @example\n * ```ts\n * const betaSkill = await client.beta.skills.retrieve(\n * 'skill_id',\n * );\n * ```\n */\n retrieve(skillID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/skills/${skillID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Skills\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaSkill of client.beta.skills.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/skills?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete Skill\n *\n * @example\n * ```ts\n * const betaDeletedSkill = await client.beta.skills.delete(\n * 'skill_id',\n * );\n * ```\n */\n delete(skillID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.delete(path `/v1/skills/${skillID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nSkills.Versions = Versions;\n//# sourceMappingURL=skills.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Certificates extends APIResource {\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's\n * server certificate against this CA when it terminates the inner TLS session. A\n * tunnel holds at most two non-archived certificates.\n *\n * @example\n * ```ts\n * const betaTunnelCertificate =\n * await client.beta.tunnels.certificates.create(\n * 'tunnel_id',\n * { ca_certificate_pem: 'ca_certificate_pem' },\n * );\n * ```\n */\n create(tunnelID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/tunnels/${tunnelID}/certificates?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Fetches a tunnel certificate by ID.\n *\n * @example\n * ```ts\n * const betaTunnelCertificate =\n * await client.beta.tunnels.certificates.retrieve(\n * 'certificate_id',\n * { tunnel_id: 'tunnel_id' },\n * );\n * ```\n */\n retrieve(certificateID, params, options) {\n const { tunnel_id, betas, workspace_id } = params;\n return this._client.get(path `/v1/tunnels/${tunnel_id}/certificates/${certificateID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Lists the certificates registered on a tunnel. Archived certificates are\n * excluded unless include_archived is set.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaTunnelCertificate of client.beta.tunnels.certificates.list(\n * 'tunnel_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(tunnelID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/tunnels/${tunnelID}/certificates?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Archives a tunnel certificate, removing it from the set Anthropic trusts for the\n * tunnel. The certificate record is retained. Archiving the last non-archived\n * certificate is permitted; the tunnel rejects MCP traffic until a new certificate\n * is added.\n *\n * @example\n * ```ts\n * const betaTunnelCertificate =\n * await client.beta.tunnels.certificates.archive(\n * 'certificate_id',\n * { tunnel_id: 'tunnel_id' },\n * );\n * ```\n */\n archive(certificateID, params, options) {\n const { tunnel_id, betas, workspace_id } = params;\n return this._client.post(path `/v1/tunnels/${tunnel_id}/certificates/${certificateID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=certificates.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as CertificatesAPI from \"./certificates.mjs\";\nimport { Certificates, } from \"./certificates.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Tunnels extends APIResource {\n constructor() {\n super(...arguments);\n this.certificates = new CertificatesAPI.Certificates(this._client);\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel;\n * it is not idempotent. The new tunnel rejects MCP traffic until at least one CA\n * certificate is added.\n *\n * @example\n * ```ts\n * const betaTunnel = await client.beta.tunnels.create();\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/tunnels?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Fetches a tunnel by ID.\n *\n * @example\n * ```ts\n * const betaTunnel = await client.beta.tunnels.retrieve(\n * 'tunnel_id',\n * );\n * ```\n */\n retrieve(tunnelID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/tunnels/${tunnelID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Lists tunnels. Results are ordered by creation time, newest first; archived\n * tunnels are excluded unless include_archived is set.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaTunnel of client.beta.tunnels.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/tunnels?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Archives a tunnel. Archival is irreversible: every non-archived certificate on\n * the tunnel is archived in the same operation, the hostname is retired and never\n * re-allocated, and the tunnel token is invalidated. Retrying against an\n * already-archived tunnel returns the existing record unchanged.\n *\n * @example\n * ```ts\n * const betaTunnel = await client.beta.tunnels.archive(\n * 'tunnel_id',\n * );\n * ```\n */\n archive(tunnelID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/tunnels/${tunnelID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Reveals a tunnel's connector token. The value is fetched live on each call;\n * Anthropic does not store it. Repeated calls return the same value until the\n * token is rotated. Exposed as POST so the token does not appear in intermediary\n * access logs.\n *\n * @example\n * ```ts\n * const betaTunnelToken =\n * await client.beta.tunnels.revealToken('tunnel_id');\n * ```\n */\n revealToken(tunnelID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/tunnels/${tunnelID}/reveal_token?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * The Tunnels API is in research preview. It requires the\n * `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a\n * deprecation period. It supersedes the Admin API endpoints at\n * `/v1/organizations/tunnels`, which remain available during a migration window.\n *\n * Rotates a tunnel's connector token. Rotation invalidates the current token for\n * new connections and returns a fresh value; established connections are not\n * severed. A connector restarted after rotation must use the new value.\n *\n * @example\n * ```ts\n * const betaTunnelToken =\n * await client.beta.tunnels.rotateToken('tunnel_id');\n * ```\n */\n rotateToken(tunnelID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/tunnels/${tunnelID}/rotate_token?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'mcp-tunnels-2026-06-22'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nTunnels.Certificates = Certificates;\n//# sourceMappingURL=tunnels.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { PageCursor } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Credentials extends APIResource {\n /**\n * Create Credential\n *\n * @example\n * ```ts\n * const betaManagedAgentsCredential =\n * await client.beta.vaults.credentials.create(\n * 'vlt_011CZkZDLs7fYzm1hXNPeRjv',\n * {\n * auth: {\n * token: 'bearer_exampletoken',\n * mcp_server_url:\n * 'https://example-server.modelcontextprotocol.io/sse',\n * type: 'static_bearer',\n * },\n * },\n * );\n * ```\n */\n create(vaultID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/vaults/${vaultID}/credentials?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Get Credential\n *\n * @example\n * ```ts\n * const betaManagedAgentsCredential =\n * await client.beta.vaults.credentials.retrieve(\n * 'vcrd_011CZkZEMt8gZan2iYOQfSkw',\n * { vault_id: 'vlt_011CZkZDLs7fYzm1hXNPeRjv' },\n * );\n * ```\n */\n retrieve(credentialID, params, options) {\n const { vault_id, betas, workspace_id } = params;\n return this._client.get(path `/v1/vaults/${vault_id}/credentials/${credentialID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update Credential\n *\n * @example\n * ```ts\n * const betaManagedAgentsCredential =\n * await client.beta.vaults.credentials.update(\n * 'vcrd_011CZkZEMt8gZan2iYOQfSkw',\n * { vault_id: 'vlt_011CZkZDLs7fYzm1hXNPeRjv' },\n * );\n * ```\n */\n update(credentialID, params, options) {\n const { vault_id, betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/vaults/${vault_id}/credentials/${credentialID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Credentials\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsCredential of client.beta.vaults.credentials.list(\n * 'vlt_011CZkZDLs7fYzm1hXNPeRjv',\n * )) {\n * // ...\n * }\n * ```\n */\n list(vaultID, params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/vaults/${vaultID}/credentials?beta=true`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete Credential\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeletedCredential =\n * await client.beta.vaults.credentials.delete(\n * 'vcrd_011CZkZEMt8gZan2iYOQfSkw',\n * { vault_id: 'vlt_011CZkZDLs7fYzm1hXNPeRjv' },\n * );\n * ```\n */\n delete(credentialID, params, options) {\n const { vault_id, betas, workspace_id } = params;\n return this._client.delete(path `/v1/vaults/${vault_id}/credentials/${credentialID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive Credential\n *\n * @example\n * ```ts\n * const betaManagedAgentsCredential =\n * await client.beta.vaults.credentials.archive(\n * 'vcrd_011CZkZEMt8gZan2iYOQfSkw',\n * { vault_id: 'vlt_011CZkZDLs7fYzm1hXNPeRjv' },\n * );\n * ```\n */\n archive(credentialID, params, options) {\n const { vault_id, betas, workspace_id } = params;\n return this._client.post(path `/v1/vaults/${vault_id}/credentials/${credentialID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Validate Credential\n *\n * @example\n * ```ts\n * const betaManagedAgentsCredentialValidation =\n * await client.beta.vaults.credentials.mcpOAuthValidate(\n * 'vcrd_011CZkZEMt8gZan2iYOQfSkw',\n * { vault_id: 'vlt_011CZkZDLs7fYzm1hXNPeRjv' },\n * );\n * ```\n */\n mcpOAuthValidate(credentialID, params, options) {\n const { vault_id, betas, workspace_id } = params;\n return this._client.post(path `/v1/vaults/${vault_id}/credentials/${credentialID}/mcp_oauth_validate?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=credentials.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as CredentialsAPI from \"./credentials.mjs\";\nimport { Credentials, } from \"./credentials.mjs\";\nimport { PageCursor } 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 * Create Vault\n *\n * @example\n * ```ts\n * const betaManagedAgentsVault =\n * await client.beta.vaults.create({\n * display_name: 'Example vault',\n * });\n * ```\n */\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/vaults?beta=true', {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Get Vault\n *\n * @example\n * ```ts\n * const betaManagedAgentsVault =\n * await client.beta.vaults.retrieve(\n * 'vlt_011CZkZDLs7fYzm1hXNPeRjv',\n * );\n * ```\n */\n retrieve(vaultID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/vaults/${vaultID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Update Vault\n *\n * @example\n * ```ts\n * const betaManagedAgentsVault =\n * await client.beta.vaults.update(\n * 'vlt_011CZkZDLs7fYzm1hXNPeRjv',\n * );\n * ```\n */\n update(vaultID, params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post(path `/v1/vaults/${vaultID}?beta=true`, {\n body,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List Vaults\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const betaManagedAgentsVault of client.beta.vaults.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/vaults?beta=true', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete Vault\n *\n * @example\n * ```ts\n * const betaManagedAgentsDeletedVault =\n * await client.beta.vaults.delete(\n * 'vlt_011CZkZDLs7fYzm1hXNPeRjv',\n * );\n * ```\n */\n delete(vaultID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.delete(path `/v1/vaults/${vaultID}?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * Archive Vault\n *\n * @example\n * ```ts\n * const betaManagedAgentsVault =\n * await client.beta.vaults.archive(\n * 'vlt_011CZkZDLs7fYzm1hXNPeRjv',\n * );\n * ```\n */\n archive(vaultID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.post(path `/v1/vaults/${vaultID}/archive?beta=true`, {\n ...options,\n headers: buildHeaders([\n {\n 'anthropic-beta': [...(betas ?? []), 'managed-agents-2026-04-01'].toString(),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nVaults.Credentials = Credentials;\n//# sourceMappingURL=vaults.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as DeploymentRunsAPI from \"./deployment-runs.mjs\";\nimport { DeploymentRuns, } from \"./deployment-runs.mjs\";\nimport * as DeploymentsAPI from \"./deployments.mjs\";\nimport { Deployments, } from \"./deployments.mjs\";\nimport * as DreamsAPI from \"./dreams.mjs\";\nimport { Dreams, } from \"./dreams.mjs\";\nimport * as FilesAPI from \"./files.mjs\";\nimport { Files, } from \"./files.mjs\";\nimport * as ModelsAPI from \"./models.mjs\";\nimport { Models, } from \"./models.mjs\";\nimport * as UserProfilesAPI from \"./user-profiles.mjs\";\nimport { UserProfiles, } from \"./user-profiles.mjs\";\nimport * as WebhooksAPI from \"./webhooks.mjs\";\nimport { Webhooks, } from \"./webhooks.mjs\";\nimport * as AgentsAPI from \"./agents/agents.mjs\";\nimport { Agents, } from \"./agents/agents.mjs\";\nimport * as EnvironmentsAPI from \"./environments/environments.mjs\";\nimport { Environments, } from \"./environments/environments.mjs\";\nimport * as MemoryStoresAPI from \"./memory-stores/memory-stores.mjs\";\nimport { MemoryStores, } from \"./memory-stores/memory-stores.mjs\";\nimport * as MessagesAPI from \"./messages/messages.mjs\";\nimport { Messages, } from \"./messages/messages.mjs\";\nimport * as OrganizationAPI from \"./organization/organization.mjs\";\nimport { Organization } from \"./organization/organization.mjs\";\nimport * as SessionsAPI from \"./sessions/sessions.mjs\";\nimport { Sessions, } from \"./sessions/sessions.mjs\";\nimport * as SkillsAPI from \"./skills/skills.mjs\";\nimport { Skills, } from \"./skills/skills.mjs\";\nimport * as TunnelsAPI from \"./tunnels/tunnels.mjs\";\nimport { Tunnels, } from \"./tunnels/tunnels.mjs\";\nimport * as VaultsAPI from \"./vaults/vaults.mjs\";\nimport { Vaults, } from \"./vaults/vaults.mjs\";\nexport class Beta extends APIResource {\n constructor() {\n super(...arguments);\n this.models = new ModelsAPI.Models(this._client);\n this.messages = new MessagesAPI.Messages(this._client);\n this.agents = new AgentsAPI.Agents(this._client);\n this.environments = new EnvironmentsAPI.Environments(this._client);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.deployments = new DeploymentsAPI.Deployments(this._client);\n this.deploymentRuns = new DeploymentRunsAPI.DeploymentRuns(this._client);\n this.vaults = new VaultsAPI.Vaults(this._client);\n this.memoryStores = new MemoryStoresAPI.MemoryStores(this._client);\n this.files = new FilesAPI.Files(this._client);\n this.skills = new SkillsAPI.Skills(this._client);\n this.webhooks = new WebhooksAPI.Webhooks(this._client);\n this.userProfiles = new UserProfilesAPI.UserProfiles(this._client);\n this.dreams = new DreamsAPI.Dreams(this._client);\n this.tunnels = new TunnelsAPI.Tunnels(this._client);\n this.organization = new OrganizationAPI.Organization(this._client);\n }\n}\nBeta.Models = Models;\nBeta.Messages = Messages;\nBeta.Agents = Agents;\nBeta.Environments = Environments;\nBeta.Sessions = Sessions;\nBeta.Deployments = Deployments;\nBeta.DeploymentRuns = DeploymentRuns;\nBeta.Vaults = Vaults;\nBeta.MemoryStores = MemoryStores;\nBeta.Files = Files;\nBeta.Skills = Skills;\nBeta.Webhooks = Webhooks;\nBeta.UserProfiles = UserProfiles;\nBeta.Dreams = Dreams;\nBeta.Tunnels = Tunnels;\nBeta.Organization = Organization;\n//# sourceMappingURL=beta.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nexport class Completions extends APIResource {\n create(params, options) {\n const { betas, workspace_id, ...body } = params;\n return this._client.post('/v1/complete', {\n body,\n timeout: this._client._options.timeout ?? 600000,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n stream: params.stream ?? false,\n });\n }\n}\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { PageCursor } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { stainlessHelperHeaderFromFile } from \"../internal/stainless-helper-header.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * List Files\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fileMetadata of client.files.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/files', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete File\n *\n * @example\n * ```ts\n * const deletedFile = await client.files.delete('file_id');\n * ```\n */\n delete(fileID, params = {}, options) {\n const { workspace_id } = params ?? {};\n return this._client.delete(path `/v1/files/${fileID}`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Download File\n *\n * @example\n * ```ts\n * const response = await client.files.download('file_id');\n *\n * const content = await response.blob();\n * console.log(content);\n * ```\n */\n download(fileID, params = {}, options) {\n const { workspace_id } = params ?? {};\n return this._client.get(path `/v1/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([\n {\n Accept: 'application/binary',\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n __binaryResponse: true,\n });\n }\n /**\n * Get File Metadata\n *\n * @example\n * ```ts\n * const fileMetadata = await client.files.retrieveMetadata(\n * 'file_id',\n * );\n * ```\n */\n retrieveMetadata(fileID, params = {}, options) {\n const { workspace_id } = params ?? {};\n return this._client.get(path `/v1/files/${fileID}`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Upload File\n *\n * @example\n * ```ts\n * const fileMetadata = await client.files.upload({\n * file: fs.createReadStream('path/to/file'),\n * });\n * ```\n */\n upload(params, options) {\n const { workspace_id, ...body } = params;\n return this._client.post('/v1/files', multipartFormRequestOptions({\n body,\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n stainlessHelperHeaderFromFile(body.file),\n options?.headers,\n ]),\n }, this._client));\n }\n}\n//# sourceMappingURL=files.mjs.map","import { AnthropicError } from \"../core/error.mjs\";\nfunction getOutputFormat(params) {\n return params?.output_config?.format;\n}\nexport function maybeParseMessage(message, params, opts) {\n const outputFormat = getOutputFormat(params);\n if (!params || !('parse' in (outputFormat ?? {}))) {\n return {\n ...message,\n content: message.content.map((block) => {\n if (block.type === 'text') {\n const parsedBlock = Object.defineProperty({ ...block }, 'parsed_output', {\n value: null,\n enumerable: false,\n });\n return parsedBlock;\n }\n return block;\n }),\n parsed_output: null,\n };\n }\n return parseMessage(message, params, opts);\n}\nexport function parseMessage(message, params, opts) {\n let firstParsedOutput = null;\n const content = message.content.map((block) => {\n if (block.type === 'text') {\n const parsedOutput = parseOutputFormat(params, block.text);\n if (firstParsedOutput === null) {\n firstParsedOutput = parsedOutput;\n }\n const parsedBlock = Object.defineProperty({ ...block }, 'parsed_output', {\n value: parsedOutput,\n enumerable: false,\n });\n return parsedBlock;\n }\n return block;\n });\n return {\n ...message,\n content,\n parsed_output: firstParsedOutput,\n };\n}\nfunction parseOutputFormat(params, content) {\n const outputFormat = getOutputFormat(params);\n if (outputFormat?.type !== 'json_schema') {\n return null;\n }\n try {\n if ('parse' in outputFormat) {\n return outputFormat.parse(content);\n }\n return JSON.parse(content);\n }\n catch (error) {\n throw new AnthropicError(`Failed to parse structured output: ${error}`);\n }\n}\n//# sourceMappingURL=parser.mjs.map","var _MessageStream_instances, _MessageStream_currentMessageSnapshot, _MessageStream_params, _MessageStream_connectedPromise, _MessageStream_resolveConnectedPromise, _MessageStream_rejectConnectedPromise, _MessageStream_endPromise, _MessageStream_resolveEndPromise, _MessageStream_rejectEndPromise, _MessageStream_listeners, _MessageStream_ended, _MessageStream_errored, _MessageStream_aborted, _MessageStream_catchingPromiseCreated, _MessageStream_response, _MessageStream_request_id, _MessageStream_workspace_id, _MessageStream_logger, _MessageStream_getFinalMessage, _MessageStream_getFinalText, _MessageStream_handleError, _MessageStream_beginRequest, _MessageStream_addStreamEvent, _MessageStream_endRequest, _MessageStream_accumulateMessage;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { STAINLESS_HELPER_METHOD_HEADER } from \"../internal/stainless-helper-header.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { checkNever } from \"../internal/utils/values.mjs\";\nimport { AnthropicError, APIUserAbortError } from \"../error.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { maybeParseMessage } from \"./parser.mjs\";\nimport { JSON_BUF_PROPERTY, withLazyInput } from \"../internal/message-stream-utils.mjs\";\nfunction tracksToolInput(content) {\n return content.type === 'tool_use' || content.type === 'server_tool_use';\n}\nexport class MessageStream {\n constructor(params, opts) {\n _MessageStream_instances.add(this);\n this.messages = [];\n this.receivedMessages = [];\n _MessageStream_currentMessageSnapshot.set(this, void 0);\n _MessageStream_params.set(this, null);\n this.controller = new AbortController();\n _MessageStream_connectedPromise.set(this, void 0);\n _MessageStream_resolveConnectedPromise.set(this, () => { });\n _MessageStream_rejectConnectedPromise.set(this, () => { });\n _MessageStream_endPromise.set(this, void 0);\n _MessageStream_resolveEndPromise.set(this, () => { });\n _MessageStream_rejectEndPromise.set(this, () => { });\n _MessageStream_listeners.set(this, {});\n _MessageStream_ended.set(this, false);\n _MessageStream_errored.set(this, false);\n _MessageStream_aborted.set(this, false);\n _MessageStream_catchingPromiseCreated.set(this, false);\n _MessageStream_response.set(this, void 0);\n _MessageStream_request_id.set(this, void 0);\n _MessageStream_workspace_id.set(this, void 0);\n _MessageStream_logger.set(this, void 0);\n _MessageStream_handleError.set(this, (error) => {\n __classPrivateFieldSet(this, _MessageStream_errored, true, \"f\");\n if (isAbortError(error)) {\n error = new APIUserAbortError();\n }\n if (error instanceof APIUserAbortError) {\n __classPrivateFieldSet(this, _MessageStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof AnthropicError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const anthropicError = new AnthropicError(error.message);\n // @ts-ignore\n anthropicError.cause = error;\n return this._emit('error', anthropicError);\n }\n return this._emit('error', new AnthropicError(String(error)));\n });\n __classPrivateFieldSet(this, _MessageStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _MessageStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _MessageStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _MessageStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _MessageStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _MessageStream_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, _MessageStream_connectedPromise, \"f\").catch(() => { });\n __classPrivateFieldGet(this, _MessageStream_endPromise, \"f\").catch(() => { });\n __classPrivateFieldSet(this, _MessageStream_params, params, \"f\");\n __classPrivateFieldSet(this, _MessageStream_logger, opts?.logger ?? console, \"f\");\n }\n get response() {\n return __classPrivateFieldGet(this, _MessageStream_response, \"f\");\n }\n get request_id() {\n return __classPrivateFieldGet(this, _MessageStream_request_id, \"f\");\n }\n get workspace_id() {\n return __classPrivateFieldGet(this, _MessageStream_workspace_id, \"f\");\n }\n /**\n * Returns the `MessageStream` data, the raw `Response` instance and the ID of the request,\n * returned vie the `request-id` header which is useful for debugging requests and resporting\n * issues to Anthropic.\n *\n * This is the same as the `APIPromise.withResponse()` method.\n *\n * This method will raise an error if you created the stream using `MessageStream.fromReadableStream`\n * as no `Response` is available.\n */\n async withResponse() {\n __classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, \"f\");\n const response = await __classPrivateFieldGet(this, _MessageStream_connectedPromise, \"f\");\n if (!response) {\n throw new Error('Could not resolve a `Response` object');\n }\n return {\n data: this,\n response,\n request_id: response.headers.get('request-id'),\n workspace_id: response.headers.get('anthropic-workspace-id'),\n };\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Note that messages sent to the model do not appear in `.on('message')`\n * in this context.\n */\n static fromReadableStream(stream) {\n const runner = new MessageStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static createMessage(messages, params, options, { logger } = {}) {\n const runner = new MessageStream(params, { logger });\n for (const message of params.messages) {\n runner._addMessageParam(message);\n }\n __classPrivateFieldSet(runner, _MessageStream_params, { ...params, stream: true }, \"f\");\n runner._run(() => runner._createMessage(messages, { ...params, stream: true }, { ...options, headers: { ...options?.headers, [STAINLESS_HELPER_METHOD_HEADER]: 'stream' } }));\n return runner;\n }\n _run(executor) {\n executor().then(() => {\n this._emitFinal();\n this._emit('end');\n }, __classPrivateFieldGet(this, _MessageStream_handleError, \"f\"));\n }\n _addMessageParam(message) {\n this.messages.push(message);\n }\n _addMessage(message, emit = true) {\n this.receivedMessages.push(message);\n if (emit) {\n this._emit('message', message);\n }\n }\n async _createMessage(messages, params, options) {\n const signal = options?.signal;\n let abortHandler;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n abortHandler = this.controller.abort.bind(this.controller);\n signal.addEventListener('abort', abortHandler);\n }\n try {\n __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_beginRequest).call(this);\n const { response, data: stream } = await messages\n .create({ ...params, stream: true }, { ...options, signal: this.controller.signal })\n .withResponse();\n this._connected(response);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_addStreamEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_endRequest).call(this);\n }\n finally {\n if (signal && abortHandler) {\n signal.removeEventListener('abort', abortHandler);\n }\n }\n }\n _connected(response) {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _MessageStream_response, response, \"f\");\n __classPrivateFieldSet(this, _MessageStream_request_id, response?.headers.get('request-id'), \"f\");\n __classPrivateFieldSet(this, _MessageStream_workspace_id, response?.headers.get('anthropic-workspace-id'), \"f\");\n __classPrivateFieldGet(this, _MessageStream_resolveConnectedPromise, \"f\").call(this, response);\n this._emit('connect');\n }\n get ended() {\n return __classPrivateFieldGet(this, _MessageStream_ended, \"f\");\n }\n get errored() {\n return __classPrivateFieldGet(this, _MessageStream_errored, \"f\");\n }\n get aborted() {\n return __classPrivateFieldGet(this, _MessageStream_aborted, \"f\");\n }\n abort() {\n this.controller.abort();\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 MessageStream, so that calls can be chained\n */\n on(event, listener) {\n const listeners = __classPrivateFieldGet(this, _MessageStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _MessageStream_listeners, \"f\")[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 MessageStream, so that calls can be chained\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _MessageStream_listeners, \"f\")[event];\n if (!listeners)\n return this;\n const index = listeners.findIndex((l) => l.listener === listener);\n if (index >= 0)\n listeners.splice(index, 1);\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 MessageStream, so that calls can be chained\n */\n once(event, listener) {\n const listeners = __classPrivateFieldGet(this, _MessageStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _MessageStream_listeners, \"f\")[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 * @returns a Promise that resolves the next time given event is triggered,\n * or rejects if an error is emitted. (If you request the 'error' event,\n * returns a promise that resolves with the error).\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, _MessageStream_catchingPromiseCreated, true, \"f\");\n if (event !== 'error')\n this.once('error', reject);\n this.once(event, resolve);\n });\n }\n async done() {\n __classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _MessageStream_endPromise, \"f\");\n }\n get currentMessage() {\n return __classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, \"f\");\n }\n /**\n * @returns a promise that resolves with the the final assistant Message response,\n * or rejects if an error occurred or the stream ended prematurely without producing a Message.\n * If structured outputs were used, this will be a ParsedMessage with a `parsed_output` field.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_getFinalMessage).call(this);\n }\n /**\n * @returns a promise that resolves with the the final assistant Message's text response, concatenated\n * together if there are more than one text blocks.\n * Rejects if an error occurred or the stream ended prematurely without producing a Message.\n */\n async finalText() {\n await this.done();\n return __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_getFinalText).call(this);\n }\n _emit(event, ...args) {\n // make sure we don't emit any MessageStreamEvents after end\n if (__classPrivateFieldGet(this, _MessageStream_ended, \"f\"))\n return;\n if (event === 'end') {\n __classPrivateFieldSet(this, _MessageStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _MessageStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _MessageStream_listeners, \"f\")[event];\n if (listeners) {\n __classPrivateFieldGet(this, _MessageStream_listeners, \"f\")[event] = listeners.filter((l) => !l.once);\n listeners.forEach(({ listener }) => listener(...args));\n }\n if (event === 'abort') {\n const error = args[0];\n if (!__classPrivateFieldGet(this, _MessageStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _MessageStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _MessageStream_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 const error = args[0];\n if (!__classPrivateFieldGet(this, _MessageStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\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.final...()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _MessageStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _MessageStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n }\n _emitFinal() {\n const finalMessage = this.receivedMessages.at(-1);\n if (finalMessage) {\n this._emit('finalMessage', __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_getFinalMessage).call(this));\n }\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n let abortHandler;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n abortHandler = this.controller.abort.bind(this.controller);\n signal.addEventListener('abort', abortHandler);\n }\n try {\n __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_beginRequest).call(this);\n this._connected(null);\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_addStreamEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_endRequest).call(this);\n }\n finally {\n if (signal && abortHandler) {\n signal.removeEventListener('abort', abortHandler);\n }\n }\n }\n [(_MessageStream_currentMessageSnapshot = new WeakMap(), _MessageStream_params = new WeakMap(), _MessageStream_connectedPromise = new WeakMap(), _MessageStream_resolveConnectedPromise = new WeakMap(), _MessageStream_rejectConnectedPromise = new WeakMap(), _MessageStream_endPromise = new WeakMap(), _MessageStream_resolveEndPromise = new WeakMap(), _MessageStream_rejectEndPromise = new WeakMap(), _MessageStream_listeners = new WeakMap(), _MessageStream_ended = new WeakMap(), _MessageStream_errored = new WeakMap(), _MessageStream_aborted = new WeakMap(), _MessageStream_catchingPromiseCreated = new WeakMap(), _MessageStream_response = new WeakMap(), _MessageStream_request_id = new WeakMap(), _MessageStream_workspace_id = new WeakMap(), _MessageStream_logger = new WeakMap(), _MessageStream_handleError = new WeakMap(), _MessageStream_instances = new WeakSet(), _MessageStream_getFinalMessage = function _MessageStream_getFinalMessage() {\n if (this.receivedMessages.length === 0) {\n throw new AnthropicError('stream ended without producing a Message with role=assistant');\n }\n return this.receivedMessages.at(-1);\n }, _MessageStream_getFinalText = function _MessageStream_getFinalText() {\n if (this.receivedMessages.length === 0) {\n throw new AnthropicError('stream ended without producing a Message with role=assistant');\n }\n const textBlocks = this.receivedMessages\n .at(-1)\n .content.filter((block) => block.type === 'text')\n .map((block) => block.text);\n if (textBlocks.length === 0) {\n throw new AnthropicError('stream ended without producing a content block with type=text');\n }\n return textBlocks.join(' ');\n }, _MessageStream_beginRequest = function _MessageStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, undefined, \"f\");\n }, _MessageStream_addStreamEvent = function _MessageStream_addStreamEvent(event) {\n if (this.ended)\n return;\n const messageSnapshot = __classPrivateFieldGet(this, _MessageStream_instances, \"m\", _MessageStream_accumulateMessage).call(this, event);\n this._emit('streamEvent', event, messageSnapshot);\n switch (event.type) {\n case 'content_block_delta': {\n const content = messageSnapshot.content.at(-1);\n switch (event.delta.type) {\n case 'text_delta': {\n if (content.type === 'text') {\n this._emit('text', event.delta.text, content.text || '');\n }\n break;\n }\n case 'citations_delta': {\n if (content.type === 'text') {\n this._emit('citation', event.delta.citation, content.citations ?? []);\n }\n break;\n }\n case 'input_json_delta': {\n if (tracksToolInput(content) && __classPrivateFieldGet(this, _MessageStream_listeners, \"f\").inputJson?.length) {\n this._emit('inputJson', event.delta.partial_json, content.input);\n }\n break;\n }\n case 'thinking_delta': {\n if (content.type === 'thinking') {\n this._emit('thinking', event.delta.thinking, content.thinking);\n }\n break;\n }\n case 'signature_delta': {\n if (content.type === 'thinking') {\n this._emit('signature', content.signature);\n }\n break;\n }\n default:\n checkNever(event.delta);\n }\n break;\n }\n case 'message_stop': {\n this._addMessageParam(messageSnapshot);\n this._addMessage(maybeParseMessage(messageSnapshot, __classPrivateFieldGet(this, _MessageStream_params, \"f\"), { logger: __classPrivateFieldGet(this, _MessageStream_logger, \"f\") }), true);\n break;\n }\n case 'content_block_stop': {\n this._emit('contentBlock', messageSnapshot.content.at(-1));\n break;\n }\n case 'message_start': {\n __classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, messageSnapshot, \"f\");\n break;\n }\n case 'content_block_start':\n case 'message_delta':\n break;\n }\n }, _MessageStream_endRequest = function _MessageStream_endRequest() {\n if (this.ended) {\n throw new AnthropicError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, \"f\");\n if (!snapshot) {\n throw new AnthropicError(`request ended without sending any chunks`);\n }\n __classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, undefined, \"f\");\n return maybeParseMessage(snapshot, __classPrivateFieldGet(this, _MessageStream_params, \"f\"), { logger: __classPrivateFieldGet(this, _MessageStream_logger, \"f\") });\n }, _MessageStream_accumulateMessage = function _MessageStream_accumulateMessage(event) {\n let snapshot = __classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, \"f\");\n if (event.type === 'message_start') {\n if (snapshot) {\n throw new AnthropicError(`Unexpected event order, got ${event.type} before receiving \"message_stop\"`);\n }\n return event.message;\n }\n if (!snapshot) {\n throw new AnthropicError(`Unexpected event order, got ${event.type} before \"message_start\"`);\n }\n switch (event.type) {\n case 'message_stop':\n return snapshot;\n case 'message_delta':\n snapshot.stop_reason = event.delta.stop_reason;\n snapshot.stop_sequence = event.delta.stop_sequence;\n snapshot.stop_details = event.delta.stop_details;\n snapshot.usage.output_tokens = event.usage.output_tokens;\n if (event.delta.container != null) {\n snapshot.container = event.delta.container;\n }\n // The remaining usage counters are cumulative whole-message totals that are\n // omitted when they don't apply, so overwrite when present and never add.\n if (event.usage.input_tokens != null) {\n snapshot.usage.input_tokens = event.usage.input_tokens;\n }\n if (event.usage.cache_creation_input_tokens != null) {\n snapshot.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens;\n }\n if (event.usage.cache_read_input_tokens != null) {\n snapshot.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens;\n }\n if (event.usage.server_tool_use != null) {\n snapshot.usage.server_tool_use = event.usage.server_tool_use;\n }\n if (event.usage.output_tokens_details != null) {\n snapshot.usage.output_tokens_details = event.usage.output_tokens_details;\n }\n return snapshot;\n case 'content_block_start':\n snapshot.content.push({ ...event.content_block });\n return snapshot;\n case 'content_block_delta': {\n const snapshotContent = snapshot.content.at(event.index);\n switch (event.delta.type) {\n case 'text_delta': {\n if (snapshotContent?.type === 'text') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n text: (snapshotContent.text || '') + event.delta.text,\n };\n }\n break;\n }\n case 'citations_delta': {\n if (snapshotContent?.type === 'text') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n citations: [...(snapshotContent.citations ?? []), event.delta.citation],\n };\n }\n break;\n }\n case 'input_json_delta': {\n if (snapshotContent && tracksToolInput(snapshotContent)) {\n const jsonBuf = (snapshotContent[JSON_BUF_PROPERTY] || '') + event.delta.partial_json;\n snapshot.content[event.index] = withLazyInput(snapshotContent, jsonBuf);\n }\n break;\n }\n case 'thinking_delta': {\n if (snapshotContent?.type === 'thinking') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n thinking: snapshotContent.thinking + event.delta.thinking,\n };\n }\n break;\n }\n case 'signature_delta': {\n if (snapshotContent?.type === 'thinking') {\n snapshot.content[event.index] = {\n ...snapshotContent,\n signature: event.delta.signature,\n };\n }\n break;\n }\n default:\n checkNever(event.delta);\n }\n return snapshot;\n }\n case 'content_block_stop': {\n const snapshotContent = snapshot.content.at(event.index);\n if (snapshotContent && tracksToolInput(snapshotContent) && JSON_BUF_PROPERTY in snapshotContent) {\n Object.defineProperty(snapshotContent, 'input', {\n value: snapshotContent.input,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n }\n return snapshot;\n }\n }\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('streamEvent', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\n//# sourceMappingURL=MessageStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { JSONLDecoder } from \"../../internal/decoders/jsonl.mjs\";\nimport { AnthropicError } from \"../../error.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Batches extends APIResource {\n /**\n * Send a batch of Message creation requests.\n *\n * The Message Batches API can be used to process multiple Messages API requests at\n * once. Once a Message Batch is created, it begins processing immediately. Batches\n * can take up to 24 hours to complete.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const messageBatch = await client.messages.batches.create({\n * requests: [\n * {\n * custom_id: 'my-custom-id-1',\n * params: {\n * max_tokens: 1024,\n * messages: [\n * { content: 'Hello, world', role: 'user' },\n * ],\n * model: 'claude-opus-5',\n * },\n * },\n * ],\n * });\n * ```\n */\n create(params, options) {\n const { user_profile_id, workspace_id, ...body } = params;\n return this._client.post('/v1/messages/batches', {\n body,\n ...options,\n headers: buildHeaders([\n {\n ...(user_profile_id != null ? { 'anthropic-user-profile-id': user_profile_id } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * This endpoint is idempotent and can be used to poll for Message Batch\n * completion. To access the results of a Message Batch, make a request to the\n * `results_url` field in the response.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const messageBatch = await client.messages.batches.retrieve(\n * 'message_batch_id',\n * );\n * ```\n */\n retrieve(messageBatchID, params = {}, options) {\n const { workspace_id } = params ?? {};\n return this._client.get(path `/v1/messages/batches/${messageBatchID}`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * List all Message Batches within a Workspace. Most recently created batches are\n * returned first.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const messageBatch of client.messages.batches.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/messages/batches', (Page), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete a Message Batch.\n *\n * Message Batches can only be deleted once they've finished processing. If you'd\n * like to delete an in-progress batch, you must first cancel it.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const deletedMessageBatch =\n * await client.messages.batches.delete('message_batch_id');\n * ```\n */\n delete(messageBatchID, params = {}, options) {\n const { workspace_id } = params ?? {};\n return this._client.delete(path `/v1/messages/batches/${messageBatchID}`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Batches may be canceled any time before processing ends. Once cancellation is\n * initiated, the batch enters a `canceling` state, at which time the system may\n * complete any in-progress, non-interruptible requests before finalizing\n * cancellation.\n *\n * The number of canceled requests is specified in `request_counts`. To determine\n * which requests were canceled, check the individual results within the batch.\n * Note that cancellation may not result in any canceled requests if they were\n * non-interruptible.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const messageBatch = await client.messages.batches.cancel(\n * 'message_batch_id',\n * );\n * ```\n */\n cancel(messageBatchID, params = {}, options) {\n const { workspace_id } = params ?? {};\n return this._client.post(path `/v1/messages/batches/${messageBatchID}/cancel`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Streams the results of a Message Batch as a `.jsonl` file.\n *\n * Each line in the file is a JSON object containing the result of a single request\n * in the Message Batch. Results are not guaranteed to be in the same order as\n * requests. Use the `custom_id` field to match results to requests.\n *\n * Learn more about the Message Batches API in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)\n *\n * @example\n * ```ts\n * const messageBatchIndividualResponse =\n * await client.messages.batches.results('message_batch_id');\n * ```\n */\n async results(messageBatchID, params = {}, options) {\n const batch = await this.retrieve(messageBatchID, params, options);\n if (!batch.results_url) {\n throw new AnthropicError(`No batch \\`results_url\\`; Has it finished processing? ${batch.processing_status} - ${batch.id}`);\n }\n const { workspace_id } = params ?? {};\n return this._client\n .get(batch.results_url, {\n ...options,\n headers: buildHeaders([\n {\n Accept: 'application/binary',\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n stream: true,\n __binaryResponse: true,\n })\n ._thenUnwrap((_, props) => JSONLDecoder.fromResponse(props.response, props.controller));\n }\n}\n//# sourceMappingURL=batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { stainlessHelperHeader } from \"../../internal/stainless-helper-header.mjs\";\nimport { MessageStream } from \"../../lib/MessageStream.mjs\";\nimport { parseMessage, } from \"../../lib/parser.mjs\";\nimport * as BatchesAPI from \"./batches.mjs\";\nimport { Batches, } from \"./batches.mjs\";\nimport { MODEL_NONSTREAMING_TOKENS } from \"../../internal/constants.mjs\";\nexport class Messages extends APIResource {\n constructor() {\n super(...arguments);\n this.batches = new BatchesAPI.Batches(this._client);\n }\n create(params, options) {\n const { user_profile_id, workspace_id, ...body } = params;\n if (body.model in DEPRECATED_MODELS) {\n console.warn(`The model '${body.model}' is deprecated and will reach end-of-life on ${DEPRECATED_MODELS[body.model]}\\nPlease migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);\n }\n if (MODELS_TO_WARN_WITH_THINKING_ENABLED.includes(body.model) &&\n body.thinking &&\n body.thinking.type === 'enabled') {\n console.warn(`Using Claude with ${body.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);\n }\n let timeout = options?.timeout ?? this._client._options.timeout;\n if (!body.stream && timeout == null) {\n const maxNonstreamingTokens = MODEL_NONSTREAMING_TOKENS[body.model] ?? undefined;\n timeout = this._client.calculateNonstreamingTimeout(body.max_tokens, maxNonstreamingTokens);\n }\n // Collect helper info from tools and messages\n const helperHeader = stainlessHelperHeader(body.tools, body.messages);\n return this._client.post('/v1/messages', {\n body,\n timeout: timeout ?? 600000,\n ...options,\n headers: buildHeaders([\n {\n ...(user_profile_id != null ? { 'anthropic-user-profile-id': user_profile_id } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n helperHeader,\n options?.headers,\n ]),\n stream: params.stream ?? false,\n });\n }\n /**\n * Send a structured list of input messages with text and/or image content, along with an expected `output_config.format` and\n * the response will be automatically parsed and available in the `parsed_output` property of the message.\n *\n * @example\n * ```ts\n * const message = await client.messages.parse({\n * model: 'claude-sonnet-4-5-20250929',\n * max_tokens: 1024,\n * messages: [{ role: 'user', content: 'What is 2+2?' }],\n * output_config: {\n * format: zodOutputFormat(z.object({ answer: z.number() })),\n * },\n * });\n *\n * console.log(message.parsed_output?.answer); // 4\n * ```\n */\n parse(params, options) {\n return this.create(params, options).then((message) => parseMessage(message, params, { logger: this._client.logger ?? console }));\n }\n /**\n * Create a Message stream.\n *\n * If `output_config.format` is provided with a parseable format (like `zodOutputFormat()`),\n * the final message will include a `parsed_output` property with the parsed content.\n *\n * @example\n * ```ts\n * const stream = client.messages.stream({\n * model: 'claude-sonnet-4-5-20250929',\n * max_tokens: 1024,\n * messages: [{ role: 'user', content: 'What is 2+2?' }],\n * output_config: {\n * format: zodOutputFormat(z.object({ answer: z.number() })),\n * },\n * });\n *\n * const message = await stream.finalMessage();\n * console.log(message.parsed_output?.answer); // 4\n * ```\n */\n stream(body, options) {\n return MessageStream.createMessage(this, body, options, { logger: this._client.logger ?? console });\n }\n /**\n * Count the number of tokens in a Message.\n *\n * The Token Count API can be used to count the number of tokens in a Message,\n * including tools, images, and documents, without creating it.\n *\n * Learn more about token counting in our\n * [user guide](https://platform.claude.com/docs/en/build-with-claude/token-counting)\n *\n * @example\n * ```ts\n * const messageTokensCount =\n * await client.messages.countTokens({\n * messages: [{ content: 'Hello, world', role: 'user' }],\n * model: 'claude-opus-5',\n * });\n * ```\n */\n countTokens(params, options) {\n const { user_profile_id, workspace_id, ...body } = params;\n return this._client.post('/v1/messages/count_tokens', {\n body,\n ...options,\n headers: buildHeaders([\n {\n ...(user_profile_id != null ? { 'anthropic-user-profile-id': user_profile_id } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\nconst DEPRECATED_MODELS = {};\nconst MODELS_TO_WARN_WITH_THINKING_ENABLED = ['claude-mythos-preview', 'claude-opus-4-6'];\nMessages.Batches = Batches;\n//# sourceMappingURL=messages.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { Page } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Models extends APIResource {\n /**\n * Get a specific model.\n *\n * The Models API response can be used to determine information about a specific\n * model or resolve a model alias to a model ID.\n *\n * @example\n * ```ts\n * const modelInfo = await client.models.retrieve('model_id');\n * ```\n */\n retrieve(modelID, params = {}, options) {\n const { betas, workspace_id } = params ?? {};\n return this._client.get(path `/v1/models/${modelID}`, {\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n /**\n * List available models.\n *\n * The Models API response can be used to determine which models are available for\n * use in the API. More recently released models are listed first.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const modelInfo of client.models.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { betas, workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/models', (Page), {\n query,\n ...options,\n headers: buildHeaders([\n {\n ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined),\n ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined),\n },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { PageCursor } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Versions extends APIResource {\n /**\n * Create Skill Version\n *\n * @example\n * ```ts\n * const skillVersion = await client.skills.versions.create(\n * 'skill_id',\n * { files: [fs.createReadStream('path/to/file')] },\n * );\n * ```\n */\n create(skillID, params, options) {\n const { workspace_id, ...body } = params;\n return this._client.post(path `/v1/skills/${skillID}/versions`, multipartFormRequestOptions({\n body,\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n }, this._client, false));\n }\n /**\n * Get Skill Version\n *\n * @example\n * ```ts\n * const skillVersion = await client.skills.versions.retrieve(\n * 'version',\n * { skill_id: 'skill_id' },\n * );\n * ```\n */\n retrieve(version, params, options) {\n const { skill_id, workspace_id } = params;\n return this._client.get(path `/v1/skills/${skill_id}/versions/${version}`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * List Skill Versions\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const skillVersion of client.skills.versions.list(\n * 'skill_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(skillID, params = {}, options) {\n const { workspace_id, ...query } = params ?? {};\n return this._client.getAPIList(path `/v1/skills/${skillID}/versions`, (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete Skill Version\n *\n * @example\n * ```ts\n * const deletedSkillVersion =\n * await client.skills.versions.delete('version', {\n * skill_id: 'skill_id',\n * });\n * ```\n */\n delete(version, params, options) {\n const { skill_id, workspace_id } = params;\n return this._client.delete(path `/v1/skills/${skill_id}/versions/${version}`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\n//# sourceMappingURL=versions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as VersionsAPI from \"./versions.mjs\";\nimport { Versions, } from \"./versions.mjs\";\nimport { PageCursor } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Skills extends APIResource {\n constructor() {\n super(...arguments);\n this.versions = new VersionsAPI.Versions(this._client);\n }\n /**\n * Create Skill\n *\n * @example\n * ```ts\n * const skill = await client.skills.create({\n * files: [fs.createReadStream('path/to/file')],\n * });\n * ```\n */\n create(params, options) {\n const { workspace_id, ...body } = params;\n return this._client.post('/v1/skills', multipartFormRequestOptions({\n body,\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n }, this._client, false));\n }\n /**\n * Get Skill\n *\n * @example\n * ```ts\n * const skill = await client.skills.retrieve('skill_id');\n * ```\n */\n retrieve(skillID, params = {}, options) {\n const { workspace_id } = params ?? {};\n return this._client.get(path `/v1/skills/${skillID}`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * List Skills\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const skill of client.skills.list()) {\n * // ...\n * }\n * ```\n */\n list(params = {}, options) {\n const { workspace_id, ...query } = params ?? {};\n return this._client.getAPIList('/v1/skills', (PageCursor), {\n query,\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n /**\n * Delete Skill\n *\n * @example\n * ```ts\n * const deletedSkill = await client.skills.delete('skill_id');\n * ```\n */\n delete(skillID, params = {}, options) {\n const { workspace_id } = params ?? {};\n return this._client.delete(path `/v1/skills/${skillID}`, {\n ...options,\n headers: buildHeaders([\n { ...(workspace_id != null ? { 'anthropic-workspace-id': workspace_id } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\nSkills.Versions = Versions;\n//# sourceMappingURL=skills.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _BaseAnthropic_instances, _a, _BaseAnthropic_encoder, _BaseAnthropic_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport { armAbandonmentBackstop, registerRequestSignalCleanup, releaseRequestSignal, } from \"./internal/request-signal.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 * as Errors from \"./core/error.mjs\";\nimport { OAUTH_API_BETA_HEADER } from \"./lib/credentials/types.mjs\";\nimport { TokenCache } from \"./lib/credentials/token-cache.mjs\";\nimport { defaultCredentials, resolveCredentialsFromConfig } from \"./lib/credentials/credential-chain.mjs\";\nimport { isFetchOriginError, isRetryableError, wrapFetchWithMiddleware, } from \"./core/middleware.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { Completions, } from \"./resources/completions.mjs\";\nimport { Files, } from \"./resources/files.mjs\";\nimport { Models, } from \"./resources/models.mjs\";\nimport { Beta, } from \"./resources/beta/beta.mjs\";\nimport { Messages, } from \"./resources/messages/messages.mjs\";\nimport { Skills, } from \"./resources/skills/skills.mjs\";\nimport { isRunningInBrowser } from \"./internal/detect-platform.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { defaultLogLevel, formatRequestDetails, loggerFor, parseLogLevel, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\nexport const HUMAN_PROMPT = '\\\\n\\\\nHuman:';\nexport const AI_PROMPT = '\\\\n\\\\nAssistant:';\n/**\n * Base class for Anthropic API clients.\n */\nexport class BaseAnthropic {\n /**\n * The active credential provider. Default credential resolution runs once\n * at construction time. If it fails, the error is surfaced on every\n * request and the client must be reconstructed — there is no retry path.\n *\n * Clones returned by {@link withOptions} share the parent's auth state\n * (provider, token cache, pending resolution, and any resolution error)\n * unless the caller passes an explicit `apiKey`, `authToken`,\n * `credentials`, `config`, or `profile` override.\n */\n get credentials() {\n return this._authState.provider;\n }\n /**\n * API Client for interfacing with the Anthropic API.\n *\n * @param {string | null | undefined} [opts.apiKey=process.env['ANTHROPIC_API_KEY'] ?? null]\n * @param {string | null | undefined} [opts.authToken=process.env['ANTHROPIC_AUTH_TOKEN'] ?? null]\n * @param {string | null | undefined} [opts.webhookKey=process.env['ANTHROPIC_WEBHOOK_SIGNING_KEY'] ?? null]\n * @param {string} [opts.baseURL=process.env['ANTHROPIC_BASE_URL'] ?? https://api.anthropic.com] - Override the default base URL for the API.\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({ baseURL = readEnv('ANTHROPIC_BASE_URL'), apiKey, authToken, webhookKey = readEnv('ANTHROPIC_WEBHOOK_SIGNING_KEY') ?? null, ...opts } = {}) {\n _BaseAnthropic_instances.add(this);\n this._requestAuthFlags = new WeakMap();\n _BaseAnthropic_encoder.set(this, void 0);\n // An explicit `profile` is a constructor-level credential choice; when set,\n // do not let env ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN shadow it.\n if (apiKey === undefined) {\n apiKey = opts.profile != null ? null : readEnv('ANTHROPIC_API_KEY') ?? null;\n }\n if (authToken === undefined) {\n authToken = opts.profile != null ? null : readEnv('ANTHROPIC_AUTH_TOKEN') ?? null;\n }\n if (opts.profile != null && (opts.credentials != null || opts.config != null)) {\n throw new TypeError('Pass at most one of `profile`, `credentials`, or `config`.');\n }\n const options = {\n apiKey,\n authToken,\n webhookKey,\n ...opts,\n baseURL: baseURL || `https://api.anthropic.com`,\n };\n if (!options.dangerouslyAllowBrowser && isRunningInBrowser()) {\n throw new Errors.AnthropicError(\"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 Anthropic({ apiKey, dangerouslyAllowBrowser: true });\\n\");\n }\n this.baseURL = options.baseURL;\n // After destructuring, `baseURL` is the constructor arg or\n // ANTHROPIC_BASE_URL — both count as an explicit choice that a profile\n // base_url must not override. A falsy value means we fell through to the\n // hardcoded default above and a profile may supply the host. withOptions()\n // propagates the parent's flag via __baseURLIsExplicit so a non-overriding\n // clone doesn't mistake the inherited baseURL for a caller-supplied one.\n this._baseURLIsExplicit = opts.__baseURLIsExplicit ?? !!baseURL;\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT /* 10 minutes */;\n this.logger = options.logger ?? console;\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', loggerFor(this)) ??\n parseLogLevel(readEnv('ANTHROPIC_LOG'), \"process.env['ANTHROPIC_LOG']\", loggerFor(this)) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _BaseAnthropic_encoder, Opts.FallbackEncoder, \"f\");\n this.middleware = [...(options.middleware ?? [])];\n const customHeadersEnv = readEnv('ANTHROPIC_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 = { ...parsed, ...options.defaultHeaders };\n }\n const inherited = opts.__auth;\n // Never persist the internal __auth handle on _options — it's a\n // one-shot constructor signal, and leaking it through _options would\n // cause withOptions() to spread a stale value into clones.\n delete options.__auth;\n delete options.__baseURLIsExplicit;\n this._options = options;\n this.apiKey = typeof apiKey === 'string' ? apiKey : null;\n this.authToken = authToken;\n this.webhookKey = webhookKey;\n if (inherited) {\n this._authState = inherited;\n if (!this._baseURLIsExplicit && inherited.baseURL) {\n this.baseURL = inherited.baseURL;\n }\n }\n else {\n this._authState = { provider: null, tokenCache: null, resolution: null, error: null, extraHeaders: {} };\n // apiKey/authToken win over credentials/config/profile; don't build a\n // token cache or resolve a config that the request path will then ignore.\n if (this.apiKey == null && this.authToken == null) {\n const credentials = options.credentials ?? null;\n if (credentials) {\n this._authState.provider = credentials;\n this._authState.tokenCache = this._makeTokenCache(credentials);\n }\n else if (options.config != null) {\n const result = resolveCredentialsFromConfig(options.config, this._credentialResolverOptions());\n this._authState.provider = result.provider;\n this._authState.tokenCache = this._makeTokenCache(result.provider);\n this._authState.extraHeaders = result.extraHeaders;\n this._applyCredentialBaseURL(result.baseURL);\n }\n else if (options.profile != null) {\n this._authState.resolution = this._resolveDefaultCredentials(options.profile);\n }\n else if (this._shouldResolveDefaultCredentials()) {\n // No explicit auth provided — lazily resolve from the credential\n // chain on first request. Errors are captured into _auth.error and\n // surfaced on first use rather than as an unhandled rejection.\n this._authState.resolution = this._resolveDefaultCredentials();\n }\n }\n }\n }\n /**\n * Whether to lazily resolve auth from the default credential chain when no\n * explicit auth is configured. Called once from the constructor, so\n * overrides must not depend on subclass instance state. Subclasses that\n * bring their own auth scheme return false so unrelated local credentials\n * are never resolved or allowed to supply a base URL.\n */\n _shouldResolveDefaultCredentials() {\n return true;\n }\n /**\n * Stores a profile/config-supplied base URL on the shared auth state and, if\n * the caller did not pin `baseURL` via constructor option or env, adopts it\n * as this client's outbound API host. Precedence: ctor opt > env > profile >\n * hardcoded default.\n */\n _applyCredentialBaseURL(baseURL) {\n if (!baseURL)\n return;\n const normalized = baseURL.replace(/\\/+$/, '');\n this._authState.baseURL = normalized;\n if (!this._baseURLIsExplicit) {\n this.baseURL = normalized;\n }\n }\n /**\n * Options bag passed into the credential chain. `baseURL` here is only the\n * fallback host for the token-exchange POST when the config itself omits\n * `base_url`; the chain returns the config's own `base_url` (if any) on\n * {@link CredentialResult.baseURL}, which {@link _applyCredentialBaseURL}\n * then adopts for outbound API requests. The two are deliberately decoupled\n * so this fallback never round-trips into precedence.\n */\n _credentialResolverOptions() {\n return {\n baseURL: this.baseURL,\n fetch: this._credentialsFetch(),\n userAgent: this.getUserAgent(),\n onCacheWriteError: (err) => {\n loggerFor(this).debug('credential cache write failed (best-effort)', err);\n },\n onSafetyWarning: (msg) => {\n loggerFor(this).warn(msg);\n },\n };\n }\n /**\n * A `Fetch` for first-party credential token-exchange requests (OIDC\n * federation jwt-bearer grants, user-OAuth refresh grants) that routes\n * through this client's middleware chain, so middleware observes token\n * traffic like any other request. Only client-level middleware applies:\n * a minted token is shared across requests, so attributing the exchange\n * to any one request's per-request middleware would be arbitrary. For the\n * same reason, `ctx.options` is undefined for these requests.\n */\n _credentialsFetch() {\n return wrapFetchWithMiddleware(this.fetch, this.middleware, undefined, this);\n }\n _makeTokenCache(provider) {\n return new TokenCache(provider, (err) => {\n loggerFor(this).debug('advisory token refresh failed; serving cached token', err);\n });\n }\n /**\n * Create a new client instance re-using the same options given to the\n * current client with optional overriding.\n */\n withOptions(options) {\n // Share the auth state object unless the caller passes any auth-related\n // key. The `in` check is intentional: even `apiKey: undefined` opts the\n // clone out of sharing (it gets its own _auth and TokenCache, though it\n // may still wrap the parent's provider via the credentials spread below).\n const overridesStructuredAuth = 'credentials' in options || 'config' in options || 'profile' in options;\n const overridesAuth = 'apiKey' in options || 'authToken' in options || overridesStructuredAuth;\n const internal = {\n ...this._options,\n // Only forward baseURL when the caller (or env) explicitly chose it.\n // For a non-explicit parent, this.baseURL may have been mutated to the\n // profile-resolved host; pinning that as the clone's options.baseURL\n // would make _options on the clone misreport caller intent and would\n // leave the clone stuck on the parent's host across an auth override.\n // The clone instead receives the construction-time value via\n // ...this._options above and re-adopts the profile host through the\n // shared _authState.baseURL + __baseURLIsExplicit=false path.\n ...(this._baseURLIsExplicit ? { baseURL: this.baseURL } : {}),\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n middleware: this.middleware,\n apiKey: this.apiKey,\n authToken: this.authToken,\n webhookKey: this.webhookKey,\n // credentials: this.credentials is a no-op when __auth is shared (the\n // ctor takes the inherited path and ignores options.credentials); when\n // overridesAuth is true via apiKey/authToken only, it lets the clone\n // build a fresh TokenCache around the parent's provider.\n credentials: this.credentials,\n // When the caller passes a structured-credential override, drop inherited\n // structured-credential options so only `...options` supplies them —\n // otherwise an inherited `credentials`/`config`/`profile` would trip the\n // mutual-exclusion check or precedence over the override.\n ...(overridesStructuredAuth ? { credentials: undefined, config: undefined, profile: undefined } : {}),\n ...options,\n // Always set __auth so any stale value from ...this._options is\n // overwritten. undefined means \"build fresh auth from these options\".\n __auth: overridesAuth ? undefined : this._authState,\n __baseURLIsExplicit: 'baseURL' in options ? true : this._baseURLIsExplicit,\n };\n return new this.constructor(internal);\n }\n /**\n * Lazily resolves credentials from config files or environment variables.\n * Called once from the constructor when no explicit auth is provided, or\n * when an explicit `profile` was passed (in which case a missing/unresolved\n * profile is surfaced as an error instead of falling through to \"no auth\").\n * The returned promise is stored and awaited on the first request.\n */\n async _resolveDefaultCredentials(profile) {\n try {\n const result = await defaultCredentials(this._credentialResolverOptions(), profile);\n if (result) {\n this._authState.provider = result.provider;\n this._authState.tokenCache = this._makeTokenCache(result.provider);\n this._authState.extraHeaders = result.extraHeaders;\n this._applyCredentialBaseURL(result.baseURL);\n }\n else if (profile != null) {\n throw new Errors.AnthropicError(`Profile \"${profile}\" could not be resolved (no <config_dir>/configs/${profile}.json found).`);\n }\n }\n catch (err) {\n this._authState.error = err;\n }\n finally {\n this._authState.resolution = null;\n }\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n validateHeaders({ values, nulls }) {\n if (values.get('x-api-key') || values.get('authorization')) {\n return;\n }\n if (this._authState.error) {\n throw this._authState.error;\n }\n if (this._authState.tokenCache || this._authState.resolution) {\n return; // auth will be injected per-request via authHeaders\n }\n if (this.apiKey && values.get('x-api-key')) {\n return;\n }\n if (nulls.has('x-api-key')) {\n return;\n }\n if (this.authToken && values.get('authorization')) {\n return;\n }\n if (nulls.has('authorization')) {\n return;\n }\n throw new Error('Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the \"X-Api-Key\" or \"Authorization\" headers to be explicitly omitted');\n }\n _authFlags(opts) {\n let flags = this._requestAuthFlags.get(opts);\n if (!flags) {\n flags = { usedTokenCache: false, didRefreshFor401: false };\n this._requestAuthFlags.set(opts, flags);\n }\n return flags;\n }\n async authHeaders(opts) {\n // Wait for lazy credential resolution if it's in progress. If it failed,\n // return no auth headers — validateHeaders surfaces the stored error\n // after the explicit-header escape hatch has had a chance to apply.\n if (this._authState.resolution) {\n await this._authState.resolution;\n }\n if (this._authState.error) {\n return undefined;\n }\n // If we have a token cache and no API key is set, use token auth\n if (this._authState.tokenCache && this.apiKey == null) {\n const token = await this._authState.tokenCache.getToken();\n this._authFlags(opts).usedTokenCache = true;\n return buildHeaders([{ Authorization: `Bearer ${token}` }]);\n }\n return buildHeaders([await this.apiKeyAuth(opts), await this.bearerAuth(opts)]);\n }\n async apiKeyAuth(opts) {\n if (this.apiKey == null) {\n return undefined;\n }\n return buildHeaders([{ 'X-Api-Key': this.apiKey }]);\n }\n async bearerAuth(opts) {\n if (this.authToken == null) {\n return undefined;\n }\n return buildHeaders([{ Authorization: `Bearer ${this.authToken}` }]);\n }\n stringifyQuery(query) {\n return stringifyQuery(query);\n }\n getUserAgent() {\n return `Anthropic/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n return Errors.APIError.generate(status, error, message, headers);\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _BaseAnthropic_instances, \"m\", _BaseAnthropic_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 _calculateNonstreamingTimeout(maxTokens) {\n const defaultTimeout = 10 * 60;\n const expectedTimeout = (60 * 60 * maxTokens) / 128000;\n if (expectedTimeout > defaultTimeout) {\n throw new Errors.AnthropicError('Streaming is required for operations that may take longer than 10 minutes. ' +\n 'See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details');\n }\n return defaultTimeout * 1000;\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\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 * Runs after all middleware (including {@link backendMiddleware}),\n * immediately before each underlying fetch call, so it sees exactly what\n * goes over the wire. Middleware may replay a request by calling `next()`\n * more than once, so this hook can run multiple times per attempt:\n * overrides must be idempotent and overwrite headers from a previous\n * invocation rather than append to them.\n */\n async prepareRequest(request, { url, options }) {\n // Append auth-derived headers when using token auth. Done here (after all\n // header merging) rather than in authHeaders() so we append to any existing\n // anthropic-beta values instead of being overwritten by later header sources.\n if (this._authState.tokenCache && this.apiKey == null) {\n // Normalize to a Headers instance — custom fetch impls or polyfills can\n // hand back arrays / plain objects, and silently dropping the beta\n // header in that case would surface as a confusing server-side 4xx.\n const headers = request.headers instanceof Headers ? request.headers : new Headers(request.headers);\n for (const [k, v] of Object.entries(this._authState.extraHeaders)) {\n if (!headers.has(k))\n headers.set(k, v);\n }\n const existing = headers\n .get('anthropic-beta')\n ?.split(',')\n .map((s) => s.trim());\n if (!existing?.includes(OAUTH_API_BETA_HEADER)) {\n headers.append('anthropic-beta', OAUTH_API_BETA_HEADER);\n }\n request.headers = headers;\n }\n }\n /**\n * Internal {@link Middleware} composed innermost in the chain — inside both\n * client-level and per-request middleware, immediately around the underlying\n * `fetch`. Subclasses for third-party backends override this to adapt the\n * canonical Anthropic-shaped request to the backend's wire shape (URL/body\n * rewriting, request signing) and to normalize the wire response back to the\n * canonical shape (e.g. AWS EventStream to SSE).\n *\n * Running inside the user's middleware means user middleware always observes\n * canonical Anthropic-shaped traffic, and the adaptation re-runs (e.g.\n * re-signs) on every `next()` invocation, covering whatever the middleware\n * mutated.\n *\n * Errors thrown here follow the middleware error policy: they propagate to\n * the caller as-is — no retries, no `APIConnectionError` wrapping — unless\n * retryable (see {@link Middleware}); throw a `RetryableError` to opt into\n * the retry path.\n */\n backendMiddleware() {\n return [];\n }\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 return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\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 // Top-level call: reset per-request auth flags so a reused options object\n // (via client.request(opts)) doesn't carry stale 401-refresh state.\n this._requestAuthFlags.delete(options);\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\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 = Date.now();\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller, options, {\n requestLogID,\n retryOfRequestLogID,\n }).catch(castToError);\n const headersTime = Date.now();\n if (response instanceof globalThis.Error) {\n releaseRequestSignal(controller);\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\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 // Errors thrown by middleware (user middleware and the backend adaptation\n // alike) propagate to the caller as-is — no retries, no APIConnectionError\n // wrapping — except retryable errors (timeouts/aborts, APIConnectionErrors,\n // and RetryableErrors, directly or in the `cause` chain), which stay on the\n // retry path.\n const hasMiddleware = this.middleware.length > 0 || !!options.middleware?.length || this.backendMiddleware().length > 0;\n if (hasMiddleware && !isTimeout && !isRetryableError(response)) {\n loggerFor(this).info(`[${requestLogID}] middleware error (not retryable)`);\n loggerFor(this).debug(`[${requestLogID}] middleware error (not retryable)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n throw response;\n }\n if (retriesRemaining) {\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: response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n // a retryable middleware-origin error is still the caller's error: once retries are\n // exhausted it propagates as-is rather than wrapped in APIConnectionError\n if (hasMiddleware && !isFetchOriginError(response)) {\n throw response;\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'request-id' || name === 'anthropic-workspace-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response, options);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n releaseRequestSignal(controller);\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);\n }\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = 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 releaseRequestSignal(controller);\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 armAbandonmentBackstop(response.body ?? response, controller);\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\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 request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise(this, request, Page);\n }\n async fetchWithTimeout(url, init, ms, controller, requestOptions, logCtx) {\n const { signal, method, ...options } = init || {};\n // Avoid creating a closure over `this`, `init`, or `options` to prevent memory leaks.\n // An arrow function like `() => controller.abort()` captures the surrounding scope,\n // which includes the request body and other large objects. When the user passes a\n // long-lived AbortSignal, the listener prevents those objects from being GC'd for\n // the lifetime of the signal. Using `.bind()` only retains a reference to the\n // controller itself.\n const abort = this._makeAbort(controller);\n if (signal) {\n signal.addEventListener('abort', abort, { once: true });\n registerRequestSignalCleanup(controller, signal, abort);\n }\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 // Arm the timeout around the underlying fetch only, not the middleware\n // chain — middleware can take arbitrarily long (or call `next` more than\n // once), and each inner-fetch invocation gets its own `ms` timer.\n const baseFetch = this.fetch;\n const timedFetch = async (innerUrl, innerInit) => {\n const timeout = setTimeout(abort, ms);\n try {\n return await baseFetch.call(undefined, innerUrl, innerInit);\n }\n finally {\n clearTimeout(timeout);\n }\n };\n // Prepare the request (auth signing and other `prepareRequest` hooks) as\n // the innermost step, after any middleware — including the backend\n // middleware, so it sees exactly what goes over the wire. Runs per\n // inner-fetch invocation, so a request middleware rewrote — or replayed\n // via a second `next()` call — is prepared fresh each time. Preparation is\n // outside the timeout timer, matching its pre-middleware behavior.\n const innerFetch = requestOptions === undefined ? timedFetch : (async (innerUrl, innerInit = {}) => {\n const innerUrlStr = typeof innerUrl === 'string' ? innerUrl\n : innerUrl instanceof URL ? innerUrl.href\n : innerUrl.url;\n innerInit.headers =\n innerInit.headers instanceof Headers ? innerInit.headers : new Headers(innerInit.headers);\n await this.prepareRequest(innerInit, { url: innerUrlStr, options: requestOptions });\n if (logCtx) {\n loggerFor(this).debug(`[${logCtx.requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID: logCtx.retryOfRequestLogID,\n method: innerInit.method,\n url: innerUrlStr,\n options: requestOptions,\n headers: innerInit.headers,\n }));\n }\n return timedFetch(innerUrl, innerInit);\n });\n const requestMiddleware = requestOptions?.middleware;\n const backendMiddleware = this.backendMiddleware();\n const allMiddleware = requestMiddleware?.length || backendMiddleware.length ?\n [...this.middleware, ...(requestMiddleware ?? []), ...backendMiddleware]\n : this.middleware;\n return await wrapFetchWithMiddleware(innerFetch, allMiddleware, requestOptions, this)(url, fetchOptions);\n }\n async shouldRetry(response, options) {\n // Reactive refresh: on a 401 from a request that used the token cache,\n // invalidate and retry once. Only fires when this specific request was\n // bearer-authenticated (not when an apiKey was used) and only once per\n // request — a second 401 after refresh falls through to the normal\n // retry policy below (which treats 4xx as non-retryable).\n const flags = this._authFlags(options);\n if (response.status === 401 &&\n this._authState.tokenCache &&\n flags.usedTokenCache &&\n !flags.didRefreshFor401) {\n flags.didRefreshFor401 = true;\n this._authState.tokenCache.invalidate();\n return true;\n }\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) {\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) {\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 const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await sleep(timeoutMillis);\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 calculateNonstreamingTimeout(maxTokens, maxNonstreamingTokens) {\n const maxTime = 60 * 60 * 1000; // 60 minutes\n const defaultTime = 60 * 10 * 1000; // 10 minutes\n const expectedTime = (maxTime * maxTokens) / 128000;\n if (expectedTime > defaultTime || (maxNonstreamingTokens != null && maxTokens > maxNonstreamingTokens)) {\n throw new Errors.AnthropicError('Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details');\n }\n return defaultTime;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n // Lazy credential resolution may carry a profile-supplied baseURL. Await\n // it before building the request URL so the very first request — and\n // requests on withOptions() clones created before resolution settled —\n // hit the profile's host rather than the hardcoded default.\n if (this._authState.resolution) {\n await this._authState.resolution;\n }\n if (!this._baseURLIsExplicit && this._authState.baseURL && this.baseURL !== this._authState.baseURL) {\n this.baseURL = this._authState.baseURL;\n }\n const url = this.buildURL(path, query, defaultBaseURL);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const { bodyHeaders, body } = this.buildBody({ options });\n const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount });\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 ...(this.fetchOptions ?? {}),\n ...(options.fetchOptions ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, retryCount, }) {\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 headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n 'User-Agent': this.getUserAgent(),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n ...(this._options.dangerouslyAllowBrowser ?\n { 'anthropic-dangerous-direct-browser-access': 'true' }\n : undefined),\n 'anthropic-version': '2023-06-01',\n },\n await this.authHeaders(options),\n this._options.defaultHeaders,\n bodyHeaders,\n options.headers,\n ]);\n this.validateHeaders(headers);\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 buildBody({ options: { body, headers: rawHeaders } }) {\n if (!body) {\n return { bodyHeaders: undefined, body: undefined };\n }\n const headers = buildHeaders([rawHeaders]);\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 (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {\n return { bodyHeaders: undefined, body: body };\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 { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };\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 };\n }\n else {\n return __classPrivateFieldGet(this, _BaseAnthropic_encoder, \"f\").call(this, { body, headers });\n }\n }\n}\n_a = BaseAnthropic, _BaseAnthropic_encoder = new WeakMap(), _BaseAnthropic_instances = new WeakSet(), _BaseAnthropic_baseURLOverridden = function _BaseAnthropic_baseURLOverridden() {\n return this.baseURL !== 'https://api.anthropic.com';\n};\nBaseAnthropic.Anthropic = _a;\nBaseAnthropic.HUMAN_PROMPT = HUMAN_PROMPT;\nBaseAnthropic.AI_PROMPT = AI_PROMPT;\nBaseAnthropic.DEFAULT_TIMEOUT = 600000; // 10 minutes\nBaseAnthropic.AnthropicError = Errors.AnthropicError;\nBaseAnthropic.APIError = Errors.APIError;\nBaseAnthropic.APIConnectionError = Errors.APIConnectionError;\nBaseAnthropic.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nBaseAnthropic.APIUserAbortError = Errors.APIUserAbortError;\nBaseAnthropic.NotFoundError = Errors.NotFoundError;\nBaseAnthropic.ConflictError = Errors.ConflictError;\nBaseAnthropic.RateLimitError = Errors.RateLimitError;\nBaseAnthropic.BadRequestError = Errors.BadRequestError;\nBaseAnthropic.AuthenticationError = Errors.AuthenticationError;\nBaseAnthropic.InternalServerError = Errors.InternalServerError;\nBaseAnthropic.PermissionDeniedError = Errors.PermissionDeniedError;\nBaseAnthropic.UnprocessableEntityError = Errors.UnprocessableEntityError;\nBaseAnthropic.toFile = Uploads.toFile;\n/**\n * API Client for interfacing with the Anthropic API.\n */\nexport class Anthropic extends BaseAnthropic {\n constructor() {\n super(...arguments);\n this.completions = new API.Completions(this);\n this.messages = new API.Messages(this);\n this.models = new API.Models(this);\n this.files = new API.Files(this);\n this.skills = new API.Skills(this);\n this.beta = new API.Beta(this);\n }\n}\nAnthropic.Completions = Completions;\nAnthropic.Messages = Messages;\nAnthropic.Models = Models;\nAnthropic.Files = Files;\nAnthropic.Skills = Skills;\nAnthropic.Beta = Beta;\n//# sourceMappingURL=client.mjs.map","import { AnthropicError } from \"../core/error.mjs\";\nimport { Stream } from \"../core/streaming.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { appendHeaderValue } from \"../internal/headers.mjs\";\nimport { STAINLESS_HELPER_HEADER } from \"../internal/stainless-helper-header.mjs\";\nimport { safeJSON } from \"../internal/utils/values.mjs\";\nexport { BetaFallbackState } from \"../internal/request-options.mjs\";\nconst encoder = new TextEncoder();\n/** Betas sent by default; override with {@link BetaRefusalFallbackOptions.betas}. */\nconst DEFAULT_BETAS = ['fallback-credit-2026-07-01'];\n/**\n * Remove `fallback` blocks replayed in history. They only parse under the\n * server-side fallback beta, which belongs to the caller-owned server-side\n * `fallbacks` feature — this middleware never sends it, so a request\n * replaying them would 400. A turn the strip leaves empty is dropped whole;\n * a turn that was already empty is kept — it may carry other payload (e.g. a\n * directive-only system message's `output_config`).\n */\nfunction stripFallbackBlocks(body) {\n const messages = body.messages.flatMap((message) => {\n if (!Array.isArray(message.content))\n return [message];\n const content = message.content.filter((block) => block.type !== 'fallback');\n if (content.length === message.content.length)\n return [message];\n return content.length > 0 ? [{ ...message, content }] : [];\n });\n return { ...body, messages };\n}\n/**\n * Apply one chain entry to the original request params as a patch: a field\n * set to a value overrides the original, a field explicitly `null` removes\n * the field from the retried request, and an absent (or `undefined`) field\n * keeps the original value. `output_config` patches one level deep — its\n * subfields follow the same set/`null`/absent rules against the original\n * `output_config` (created if the entry sets any subfield). Every hop patches\n * the original params — never a previous hop's patched body — and `body` is\n * never mutated.\n */\nfunction applyFallbackPatch(body, entry) {\n const patched = { ...body };\n for (const [key, value] of Object.entries(entry)) {\n if (key === 'output_config' && value != null) {\n const merged = { ...(patched[key] ?? {}) };\n for (const [subKey, subValue] of Object.entries(value)) {\n patchField(merged, subKey, subValue);\n }\n patchField(patched, key, Object.keys(merged).length ? merged : null);\n }\n else {\n patchField(patched, key, value);\n }\n }\n return patched;\n}\n/** Set/`null`-unset/absent-keep one field on `target` (mutated). */\nfunction patchField(target, key, value) {\n if (value === undefined)\n return;\n if (value === null) {\n delete target[key];\n }\n else {\n target[key] = value;\n }\n}\n/**\n * Middleware that retries refused `/v1/messages` requests down a fallback chain.\n *\n * Non-streaming: when a response comes back with `stop_reason: 'refusal'`, the\n * request is retried with each entry of `fallbacks` applied as a patch to the\n * original params (a set field overrides, an explicit `null` unsets, an absent\n * field keeps the original value; entries never patch each other's requests)\n * — passing along the refusal's `fallback_credit_token` — until a model\n * accepts or the chain is exhausted. A message served by a fallback carries a\n * `fallback` content block prepended at each model boundary — the same seam\n * block shape the server-side `fallbacks` param places in `content`, though\n * the rest of the envelope is the serving hop's as returned (see the\n * known-divergences note below); an exhausted chain surfaces the final\n * refusal verbatim.\n *\n * Streaming: when the stream ends in `stop_reason: 'refusal'`, a second\n * request is issued to the fallback model — carrying the refused model's\n * partial output as a trailing assistant prefill when the refusal grants one\n * (`fallback_has_prefill_claim`), plus the refusal's `fallback_credit_token`\n * — and the fallback's events are spliced onto the\n * still-open stream, so the client sees one continuous message in the\n * server-side `fallbacks` wire shape: a `fallback` content block at each model\n * boundary, monotonic block indices, and per-hop `usage.iterations` on the\n * final `message_delta`. Only `model` is honored from each entry on this path:\n * the credit token is redeemable only against the refused request's body, so\n * the other per-entry overrides (`max_tokens`, `thinking`, ...) would be\n * rejected.\n *\n * The fallback-credit beta the credit tokens require is sent by default on\n * every request the middleware handles; the `betas` option controls this.\n *\n * In both modes a fallback that itself refuses with a fresh credit token\n * continues down the chain. A streaming fallback whose prefill the server\n * rejects (HTTP 400) is retried once without it; a fallback whose request\n * fails outright is skipped — its token was never redeemed, so it carries to\n * the next entry.\n *\n * To keep later requests on the model that accepted, pass a\n * {@link BetaFallbackState} via the `fallbackState` request option; requests\n * sharing that state start directly at the pinned fallback. Reuse one state\n * across whatever scope the pin should apply to — typically a conversation.\n *\n * @example\n * ```ts\n * const client = new Anthropic({\n * middleware: [betaRefusalFallbackMiddleware([{ model: 'claude-opus-4-8' }])],\n * });\n *\n * const fallbackState = new BetaFallbackState();\n * const message = await client.beta.messages.create(params, { fallbackState });\n * ```\n */\nexport function betaRefusalFallbackMiddleware(fallbacks, options = {}) {\n let warnedMissingState = false;\n return async (request, next, ctx) => {\n // This middleware only applies to the beta messages API\n // (`client.beta.messages`, which posts to `/v1/messages?beta=true`).\n // An empty chain also disables this middleware.\n const [path, query] = (ctx.options?.path ?? '').split('?');\n if (fallbacks.length === 0 ||\n ctx.options?.method !== 'post' ||\n path !== '/v1/messages' ||\n new URLSearchParams(query).get('beta') !== 'true' ||\n typeof ctx.options.body !== 'object' ||\n ctx.options.body == null) {\n return next(request);\n }\n if (ctx.options.body.fallbacks != null) {\n throw new AnthropicError('Sending the `fallbacks:` request param is not supported when using the `betaRefusalFallbackMiddleware`. ' +\n 'You should either remove the middleware and send `fallbacks:` with the `server-side-fallback-2026-07-01` beta header to let the API handle refusal fallbacks, ' +\n \"or omit the `fallbacks:` param if you'd like `betaRefusalFallbackMiddleware` to handle fallbacks on the client side.\");\n }\n const onError = options.onError ??\n ((error) => ctx.logger.error(`anthropic-sdk: betaRefusalFallbackMiddleware: ${error.message}`));\n // Send the configured betas on this and every hop request derived from it,\n // and tag this and every hop with the middleware's helper telemetry.\n request = withMiddlewareHeaders(request, options.betas ?? DEFAULT_BETAS);\n const body = stripFallbackBlocks(ctx.options.body);\n const state = ctx.options.fallbackState;\n // start from the pinned fallback (-1 = the original params)\n const startIndex = state?.index ?? -1;\n if (!Number.isInteger(startIndex) || startIndex < -1 || startIndex >= fallbacks.length) {\n throw new AnthropicError(`fallbackState.index ${startIndex} is out of bounds for a chain of ${fallbacks.length} fallback(s); was the state shared with a different middleware?`);\n }\n // pin requests sharing the state to the entry being tried\n const pin = (index) => {\n if (state) {\n state.index = index;\n }\n else if (!warnedMissingState) {\n warnedMissingState = true;\n ctx.logger.warn('anthropic-sdk: betaRefusalFallbackMiddleware fell back without a `fallbackState` request option; follow-up requests will retry models that already refused. Pass a shared `{ fallbackState: new BetaFallbackState() }` to pin them to the accepted model.');\n }\n };\n const initialBody = startIndex === -1 ? body : applyFallbackPatch(body, fallbacks[startIndex]);\n // a non-string body can't be respliced or redeemed against — leave the\n // request untouched (the streaming path stands down on it below too)\n const initialRequest = typeof request.body !== 'string' ? request : { ...request, body: JSON.stringify(initialBody) };\n const response = await next(initialRequest);\n if (!response.ok) {\n return response;\n }\n if (ctx.options.stream === true) {\n const firstHop = startIndex + 1;\n // Splicing needs at least one entry left to hop to and the JSON request\n // body the credit token is redeemable against (an earlier middleware\n // may have rewritten it to another BodyInit); otherwise the stream\n // passes through untouched.\n if (firstHop >= fallbacks.length || typeof initialRequest.body !== 'string') {\n return response;\n }\n return spliceFallbackStream({\n request: initialRequest,\n response,\n next,\n ctx,\n fallbacks,\n firstHop,\n onError,\n pin,\n });\n }\n let index = startIndex;\n let res = response;\n // The model the current hop was requested as — the caller's spelling, not\n // the server's `message.model` echo; the seam block's `from` carries it.\n let requestedModel = initialBody.model;\n const fallbackBlocks = [];\n while (index < fallbacks.length - 1) {\n const message = await ctx.parse(res);\n if (message?.type !== 'message' || message.stop_reason !== 'refusal') {\n break;\n }\n index += 1;\n pin(index);\n const entry = fallbacks[index];\n // One `fallback` seam block per model boundary, prepended to the serving\n // hop's content below — the same block shape the server places in\n // `content`, not a claim of full envelope parity.\n fallbackBlocks.push({\n type: 'fallback',\n // `requestedModel` is always set for a typed body; the `??` defends\n // against an untyped body that carried no `model` field.\n from: { model: requestedModel ?? message.model },\n to: { model: entry.model },\n trigger: { type: 'refusal', category: message.stop_details?.category ?? null },\n });\n requestedModel = entry.model;\n res = await next({\n ...request,\n body: JSON.stringify({\n ...applyFallbackPatch(body, entry),\n ...(message.stop_details?.fallback_credit_token ?\n { fallback_credit_token: creditTokenParam(message.stop_details.fallback_credit_token) }\n : undefined),\n }),\n });\n }\n if (fallbackBlocks.length === 0) {\n return res;\n }\n const served = await ctx.parse(res);\n // Chain exhausted on a refusal (or an error/malformed body): surface it\n // verbatim. The array guard keeps a message-shaped body with non-array\n // `content` from throwing at the spread below.\n if (served?.type !== 'message' || served.stop_reason === 'refusal' || !Array.isArray(served.content)) {\n return res;\n }\n // A fallback hop served (or exhausted the chain with output): prepend the\n // seam blocks so the app-visible `content` opens with one `fallback` block\n // per model boundary. Response init is preserved (same `_request_id`);\n // `content-length` is dropped since the body grew.\n const headers = new Headers(res.headers);\n headers.delete('content-length');\n return new Response(JSON.stringify({ ...served, content: [...fallbackBlocks, ...served.content] }), {\n status: res.status,\n statusText: res.statusText,\n headers,\n });\n };\n}\n/**\n * Wrap stream A in a response whose body passes events through until a\n * retryable refusal, then splices the fallback chain's events on (see\n * {@link splicedEvents}). Cancelling the returned body tears down whichever\n * stream is being read and aborts any in-flight fallback request or retry\n * backoff: hop requests run under `controller`'s signal, which fires on\n * cancel and mirrors the original request's signal — a user abort has no\n * other way to reach a hop, since this synthetic body isn't fetch-backed.\n */\nfunction spliceFallbackStream(args) {\n const controller = new AbortController();\n const signal = args.request.signal;\n if (signal?.aborted) {\n controller.abort(signal.reason);\n }\n else {\n signal?.addEventListener('abort', makeAbort(controller, signal), { once: true });\n }\n const iter = splicedEvents(args, controller);\n const body = new ReadableStream({\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done)\n return ctrl.close();\n ctrl.enqueue(value);\n }\n catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n controller.abort();\n await iter.return?.(undefined);\n },\n });\n return new Response(body, args.response);\n}\nasync function* splicedEvents({ request, response, next, ctx, fallbacks, firstHop, onError, pin }, controller) {\n // --- stream A: pass through until a chainable refusal ---\n const a = yield* consumeHop({\n response,\n controller,\n indexBase: 0,\n hasNext: true, // the caller guarantees firstHop < fallbacks.length\n onError,\n splice: null,\n });\n if (!a.refused)\n return; // non-refusal or not-retryable: pure pass-through.\n // --- fallback chain: try each entry in order ---\n // `base` is the assistant-turn content the current token's request already\n // carried — the token is redeemable only with it resent verbatim. `partial`\n // is the newest refused hop's output, included only when its refusal\n // granted a prefill claim (any other change to the body is a 400).\n let nextIndex = a.nextIndex; // monotonic block index across all spliced streams\n let token = a.refused.token;\n let base = [];\n let partial = a.refused.hasPrefillClaim ? toPrefillBlocks(a.blocks) : [];\n let fromModel = a.model ?? '';\n let lastUsage = a.refused.usage;\n // The refusal whose token is currently in flight — surfaced verbatim (with a\n // recommended_model added) if every fallback request fails and we degrade.\n let refusalDetails = a.refused.stopDetails;\n // That refused hop's suppressed message_start `input_transformations`, which\n // ride on the surfaced refusal delta (none for A: its start reached the client).\n let refusalInputTransformations = a.refused.inputTransformations;\n // One `message` entry per refused hop, in order — A first. Failed hops are\n // skipped (no usage came back); the serving hop is appended as\n // `fallback_message` when its message_delta arrives.\n const iterations = [\n toIterationUsage('message', a.model ?? '', a.refused.usage),\n ];\n for (let hop = firstHop; hop < fallbacks.length; hop++) {\n const model = fallbacks[hop].model;\n const hasNext = hop + 1 < fallbacks.length;\n pin(hop);\n // --- boundary: a `fallback` content block at the next monotonic index ---\n // Emitted before the request, so a hop that fails leaves its boundary in\n // place and the next attempt emits its own (still `from: fromModel` — the\n // last model that contributed output).\n const fbIndex = nextIndex++;\n yield emit('content_block_start', {\n type: 'content_block_start',\n index: fbIndex,\n content_block: {\n type: 'fallback',\n from: { model: fromModel },\n to: { model },\n trigger: { type: 'refusal', category: refusalDetails?.category ?? null },\n },\n });\n yield emit('content_block_stop', {\n type: 'content_block_stop',\n index: fbIndex,\n });\n // --- build the request: appended-assistant continuation ---\n // First attempt carries the newest partial appended (when its refusal\n // granted a prefill claim); a 400 on that form means the server rejected\n // the prefill, so the hop is retried once without it — the same-body\n // form the token always supports.\n let continuation = [...base, ...partial];\n let resB = null;\n let failure = null;\n for (let attempt = 0; attempt < 2; attempt++) {\n const reqB = buildFallbackRequest(request, { model, creditToken: token, continuation });\n // controller mirrors the original signal and additionally fires when the\n // spliced body is cancelled — either must abort an in-flight hop request.\n reqB.signal = controller.signal;\n try {\n resB = await next(reqB);\n }\n catch (err) {\n // the consumer cancelled (or the original request was aborted): unwind\n if (isAbortError(err))\n throw err;\n failure = {\n kind: 'request_failed',\n message: `fallback request failed: ${err}`,\n model,\n status: null,\n detail: err,\n };\n break;\n }\n if (resB.ok)\n break;\n // ctx.parse reads through an internal clone, so it works even though\n // the client will also read this body; resB.text() would conflict.\n const errBody = await ctx.parse(resB).catch(() => null);\n if (attempt === 0 && resB.status === 400 && partial.length) {\n ctx.logger.warn(`anthropic-sdk: betaRefusalFallbackMiddleware: fallback request with the partial output appended was rejected (HTTP 400: ${JSON.stringify(errBody)}); retrying without it`);\n continuation = base;\n resB = null;\n continue;\n }\n failure = {\n kind: 'request_failed',\n message: `fallback request failed: HTTP ${resB.status}: ${JSON.stringify(errBody)}`,\n model,\n status: resB.status,\n detail: errBody,\n };\n break;\n }\n if (failure) {\n onError(failure);\n // The token was never redeemed — retry it against the next entry.\n if (hasNext)\n continue;\n // Surface the held refusal verbatim — its category/explanation and the\n // still-unredeemed credit token — and point recommended_model at the hop\n // we last tried.\n const stopDetails = {\n ...refusalDetails,\n recommended_model: model,\n };\n yield emit('message_delta', {\n type: 'message_delta',\n context_management: null,\n delta: {\n stop_reason: 'refusal',\n stop_sequence: null,\n container: null,\n stop_details: stopDetails,\n },\n usage: (lastUsage ?? {}),\n ...(refusalInputTransformations !== undefined && {\n input_transformations: refusalInputTransformations,\n }),\n });\n yield emit('message_stop', { type: 'message_stop' });\n return;\n }\n // --- splice: monotonic indices, suppressed message_start, usage.iterations ---\n const b = yield* consumeHop({\n response: resB,\n controller,\n indexBase: nextIndex,\n hasNext,\n onError,\n splice: { iterations, model },\n });\n if (!b.refused)\n return;\n // This hop refused too, with a fresh token: its emitted partial stays in\n // the client's message, becomes the next partial segment, and the chain\n // continues.\n token = b.refused.token;\n refusalDetails = b.refused.stopDetails;\n refusalInputTransformations = b.refused.inputTransformations;\n base = continuation;\n partial = b.refused.hasPrefillClaim ? toPrefillBlocks(b.blocks) : [];\n iterations.push(toIterationUsage('message', model, b.refused.usage));\n lastUsage = b.refused.usage;\n fromModel = model;\n nextIndex = b.nextIndex;\n }\n}\n/**\n * Consume one hop's SSE events, forwarding them to the client while\n * accumulating its content blocks (returned in the outcome).\n *\n * Stream A (`splice: null`) is forwarded in its original wire bytes; a\n * spliced hop (`splice` set) has its message_start suppressed (the client\n * already saw A's), its block indices shifted by `indexBase`, and its\n * terminal message_delta's usage rewritten to the `usage.iterations`\n * chain shape, with the suppressed message_start's `input_transformations`\n * forwarded onto it.\n *\n * A refusal that can be chained — it carries a `fallback_credit_token` and a\n * fallback entry remains — ends the hop early: open blocks are closed, the\n * terminal message_delta + message_stop are suppressed, and the token+usage\n * are returned so the caller can issue the next hop. Any other refusal is\n * reported through `onError` and passes through to the client.\n */\nasync function* consumeHop(args) {\n const { response, controller, indexBase, hasNext, onError, splice } = args;\n const tracker = new BlockTracker(indexBase);\n let model;\n let startUsage = null;\n // A spliced hop's message_start is suppressed, so its `input_transformations`\n // must ride on the re-emitted terminal message_delta — the way a server-side\n // fallback reports the serving model's list.\n let startInputTransformations;\n for await (const sse of Stream.rawEvents(response, controller)) {\n const p = safeJSON(sse.data);\n switch (p?.type) {\n case 'message_start': {\n model = p.message.model;\n startUsage = p.message.usage;\n if ('input_transformations' in p.message)\n startInputTransformations = p.message.input_transformations;\n if (splice)\n continue;\n break;\n }\n case 'content_block_start': {\n tracker.start(p);\n if (splice) {\n yield emit(p.type, p);\n continue;\n }\n break;\n }\n case 'content_block_delta': {\n tracker.delta(p);\n if (splice) {\n yield emit(p.type, p);\n continue;\n }\n break;\n }\n case 'content_block_stop': {\n tracker.stop(p);\n if (splice) {\n yield emit(p.type, p);\n continue;\n }\n break;\n }\n case 'message_delta': {\n if (p.delta.stop_reason === 'refusal') {\n // `fallback_credit_token` is null when the refusal isn't eligible\n // for a fallback credit; without one we don't retry.\n const details = p.delta.stop_details?.type === 'refusal' ? p.delta.stop_details : null;\n if (details?.fallback_credit_token && hasNext) {\n const usage = backfill(p.usage, startUsage);\n yield* tracker.closeOpenBlocks();\n // suppress this hop's message_delta + message_stop\n return {\n refused: {\n token: details.fallback_credit_token,\n hasPrefillClaim: details.fallback_has_prefill_claim === true,\n usage,\n stopDetails: details,\n inputTransformations: splice ? startInputTransformations : undefined,\n },\n model,\n blocks: tracker.contentBlocks(),\n nextIndex: tracker.nextIndex,\n };\n }\n if (!details?.fallback_credit_token) {\n onError({\n kind: 'no_credit_token',\n message: 'refusal stop_details has no fallback_credit_token',\n event: p,\n });\n }\n else {\n onError({\n kind: 'chain_exhausted',\n message: 'refusal but no fallback entries remain',\n event: p,\n });\n }\n }\n if (splice) {\n // Terminal hop. Replace iterations, don't append: this hop's own\n // message_delta self-reports a single `{type:\"message\",\n // model:undefined}` iteration (a fresh non-fallback request counts\n // itself as one message hop). Server-side `fallbacks` relabels the\n // whole chain instead — refused hops as `message`, the serving hop\n // as `fallback_message` — so spreading the self-report would\n // prepend a spurious `message:undefined` entry.\n const usage = backfill(p.usage, startUsage);\n usage.iterations = [\n ...splice.iterations,\n toIterationUsage('fallback_message', splice.model, usage),\n ];\n p.usage = usage;\n if (!('input_transformations' in p) && startInputTransformations !== undefined) {\n p.input_transformations = startInputTransformations;\n }\n yield emit('message_delta', p);\n continue;\n }\n break;\n }\n }\n // message_stop, ping, error, unrecognised — and for stream A every\n // event — pass through in their original wire bytes.\n yield passthroughSSE(sse);\n }\n return { refused: null, model, blocks: tracker.contentBlocks(), nextIndex: tracker.nextIndex };\n}\n/**\n * Block bookkeeping for one stream of the splice: accumulates each content\n * block from its deltas (for the continuation prefill), shifts wire indices\n * by `indexBase` so they stay monotonic across hops, and tracks which blocks\n * are still open so a refusal that cuts mid-block can close them.\n */\nclass BlockTracker {\n constructor(indexBase = 0) {\n this.indexBase = indexBase;\n /** The stream's accumulated blocks keyed by their original wire index. */\n this.blocks = [];\n /** Shifted indices of blocks started but not yet stopped. */\n this.open = [];\n this.nextIndex = indexBase;\n }\n /** The accumulated content blocks, in start order. */\n contentBlocks() {\n return this.blocks.map((b) => b.block);\n }\n /** Track a content_block_start, shifting `event.index`. */\n start(event) {\n this.blocks.push({ index: event.index, block: { ...event.content_block } });\n event.index += this.indexBase;\n this.open.push(event.index);\n this.nextIndex = Math.max(this.nextIndex, event.index + 1);\n }\n /** Apply a content_block_delta to its accumulating block, shifting `event.index`. */\n delta(event) {\n applyDelta(this.blocks, event.index, event.delta);\n event.index += this.indexBase;\n }\n /** Track a content_block_stop, shifting `event.index`. */\n stop(event) {\n event.index += this.indexBase;\n const i = this.open.indexOf(event.index);\n if (i !== -1)\n this.open.splice(i, 1);\n this.nextIndex = Math.max(this.nextIndex, event.index + 1);\n }\n /** content_block_stop events for any blocks still open. */\n *closeOpenBlocks() {\n for (const index of this.open) {\n yield emit('content_block_stop', {\n type: 'content_block_stop',\n index,\n });\n }\n this.open.length = 0;\n }\n}\n// --- fallback request construction (appended-assistant continuation) -------\n/**\n * Object form of the redeemed credit token. `best_effort` keeps the retry\n * served if the token layer rejects it — the retry then proceeds at normal\n * price and the outcome lands on `usage.fallback_credit` — where the\n * bare-string (`strict`) form would 400 the whole request.\n */\nfunction creditTokenParam(token) {\n return { token, mode: 'best_effort' };\n}\nfunction buildFallbackRequest(orig, { model, creditToken, continuation, }) {\n // the caller guarantees a JSON string body (checked before stream A is read)\n const body = JSON.parse(orig.body);\n body.model = model;\n body.fallback_credit_token = creditTokenParam(creditToken);\n // Append the continuation (decided by the chain loop) as a trailing\n // assistant turn; everything else must stay identical to the refused\n // request. When the refusal granted no prefill claim, omit the turn\n // entirely and send the same-body form.\n if (continuation.length) {\n body.messages = [...body.messages, { role: 'assistant', content: continuation }];\n }\n // Do NOT touch max_tokens (or any other render-shaping field): the token is\n // only redeemable against the same request body as the refused request —\n // model, fallback_credit_token, and the one appended assistant turn are the\n // only permitted deltas; anything else is a 400 (\"request body ... does not\n // match the original refused request\"). This is also why the per-entry\n // BetaFallbackParam overrides are ignored on the streaming path.\n return { ...orig, headers: new Headers(orig.headers), body: JSON.stringify(body) };\n}\n// --- block accumulation & prefill conversion -------------------------------\n/** Apply a content_block_delta to the accumulating block at `index`. */\nfunction applyDelta(blocks, index, delta) {\n const block = blocks.find((x) => x.index === index)?.block;\n if (!block)\n return;\n switch (delta.type) {\n case 'text_delta': {\n block.text = (block.text ?? '') + delta.text;\n break;\n }\n case 'input_json_delta': {\n block._partial_json = (block._partial_json ?? '') + delta.partial_json;\n break;\n }\n case 'citations_delta':\n (block.citations ?? (block.citations = [])).push(delta.citation);\n break;\n case 'thinking_delta': {\n block.thinking = (block.thinking ?? '') + delta.thinking;\n break;\n }\n case 'signature_delta': {\n block.signature = delta.signature;\n break;\n }\n case 'compaction_delta': {\n break;\n }\n default:\n ((_) => { })(delta);\n }\n}\n/**\n * Convert a hop's accumulated response blocks to the appended assistant turn,\n * as-is: a `fallback_has_prefill_claim` refusal guarantees the partial output\n * is resendable verbatim, so no client-side filtering is applied. The only\n * rewrite is reassembling tool inputs from their accumulated\n * `input_json_delta` JSON (content_block_start carries `input: {}`).\n */\nfunction toPrefillBlocks(responseBlocks) {\n return responseBlocks.map((b) => {\n if (typeof b?._partial_json !== 'string')\n return b;\n const { _partial_json, ...block } = b;\n return { ...block, input: safeJSON(_partial_json) ?? block.input };\n });\n}\n// --- helpers --------------------------------------------------------------\n/**\n * A copy of `request` with `betas` appended to its `anthropic-beta` header,\n * skipping values already present (set by the caller or another middleware).\n */\nfunction withMiddlewareHeaders(request, betas) {\n const headers = new Headers(request.headers);\n const existing = new Set(headers\n .get('anthropic-beta')\n ?.split(',')\n .map((s) => s.trim()));\n for (const beta of betas) {\n if (!existing.has(beta)) {\n headers.append('anthropic-beta', beta);\n existing.add(beta);\n }\n }\n headers.set(STAINLESS_HELPER_HEADER, appendHeaderValue(headers.get(STAINLESS_HELPER_HEADER), 'fallback-refusal-middleware'));\n return { ...request, headers };\n}\nfunction emit(event, payload) {\n const sse = { event, data: JSON.stringify(payload), raw: [] };\n return encoder.encode(serializeSSE(sse));\n}\n/**\n * Forward a decoded event in its original wire bytes, preserving SSE fields\n * the decoder doesn't model (`id:`, `retry:`, comment lines). Falls back to\n * re-serializing for events with no raw lines.\n */\nfunction passthroughSSE(sse) {\n return encoder.encode(sse.raw.length ? sse.raw.join('\\n') + '\\n\\n' : serializeSSE(sse));\n}\nfunction toIterationUsage(type, model, u) {\n return {\n type,\n model,\n input_tokens: u?.input_tokens ?? 0,\n output_tokens: u?.output_tokens ?? 0,\n cache_read_input_tokens: u?.cache_read_input_tokens ?? 0,\n cache_creation_input_tokens: u?.cache_creation_input_tokens ?? 0,\n cache_creation: u?.cache_creation ?? null,\n };\n}\n/** Fill null/undefined fields on `primary` from `fallback`. */\nfunction backfill(primary, fallback) {\n const out = { ...(fallback ?? {}), ...(primary ?? {}) };\n for (const k of Object.keys(out)) {\n if (out[k] == null && fallback?.[k] != null)\n out[k] = fallback[k];\n }\n return out;\n}\n/**\n * Serialize a {@link ServerSentEvent} back to its SSE wire form\n * (`event: ...\\ndata: ...\\n\\n`). Multi-line `data` is emitted as one\n * `data:` line per line, matching the spec. The inverse of the decoder\n * behind {@link Stream.rawEvents}.\n */\nfunction serializeSSE(sse) {\n let out = '';\n if (sse.event !== null)\n out += `event: ${sse.event}\\n`;\n for (const line of sse.data.split('\\n'))\n out += `data: ${line}\\n`;\n return out + '\\n';\n}\nfunction makeAbort(controller, signal) {\n return () => controller.abort(signal.reason);\n}\n//# sourceMappingURL=middleware.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],"mappings":"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"}
|