@puku-ai/sdk 3.0.0 → 3.0.2

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/sdk.cjs.map CHANGED
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\n/**\n * https://stackoverflow.com/a/2117523\n */\nexport let uuid4 = function () {\n const { crypto } = globalThis as any;\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) =>\n (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16),\n );\n};\n",
6
6
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nexport function isAbortError(err: unknown) {\n return (\n typeof err === 'object' &&\n err !== null &&\n // Spec-compliant fetch implementations\n (('name' in err && (err as any).name === 'AbortError') ||\n // Expo fetch\n ('message' in err && String((err as any).message).includes('FetchRequestCanceledException')))\n );\n}\n\nexport const castToError = (err: any): Error => {\n if (err instanceof Error) return err;\n if (typeof err === 'object' && err !== null) {\n try {\n if (Object.prototype.toString.call(err) === '[object Error]') {\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) error.stack = err.stack;\n // @ts-ignore - not all envs have native support for cause yet\n if (err.cause && !error.cause) error.cause = err.cause;\n if (err.name) error.name = err.name;\n return error;\n }\n } catch {}\n try {\n return new Error(JSON.stringify(err));\n } catch {}\n }\n return new Error(err);\n};\n",
7
- "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { castToError } from '../internal/errors.js';\nimport type { ErrorType } from '../resources/shared.js';\n\nexport class AnthropicError extends Error {}\n\nexport class APIError<\n TStatus extends number | undefined = number | undefined,\n THeaders extends Headers | undefined = Headers | undefined,\n TError extends Object | undefined = Object | undefined,\n> extends AnthropicError {\n /** HTTP status for the response that caused the error */\n readonly status: TStatus;\n /** HTTP headers for the response that caused the error */\n readonly headers: THeaders;\n /** JSON body of the response that caused the error */\n readonly error: TError;\n\n readonly requestID: string | null | undefined;\n\n /** The `error.type` from the API response body, e.g. `\"rate_limit_error\"` */\n readonly type: ErrorType | null;\n\n constructor(\n status: TStatus,\n error: TError,\n message: string | undefined,\n headers: THeaders,\n type?: ErrorType | null,\n ) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.requestID = headers?.get('request-id');\n this.error = error;\n this.type = type ?? null;\n }\n\n private static makeMessage(status: number | undefined, error: any, message: string | undefined) {\n const msg =\n error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n\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\n static generate(\n status: number | undefined,\n errorResponse: Object | undefined,\n message: string | undefined,\n headers: Headers | undefined,\n ): APIError {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n\n const error = errorResponse as Record<string, any>;\n const type = error?.['error']?.['type'] as ErrorType | undefined;\n\n if (status === 400) {\n return new BadRequestError(status, error, message, headers, type);\n }\n\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers, type);\n }\n\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers, type);\n }\n\n if (status === 404) {\n return new NotFoundError(status, error, message, headers, type);\n }\n\n if (status === 409) {\n return new ConflictError(status, error, message, headers, type);\n }\n\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers, type);\n }\n\n if (status === 429) {\n return new RateLimitError(status, error, message, headers, type);\n }\n\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers, type);\n }\n\n return new APIError(status, error, message, headers, type);\n }\n}\n\nexport class APIUserAbortError extends APIError<undefined, undefined, undefined> {\n constructor({ message }: { message?: string } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\n\nexport class APIConnectionError extends APIError<undefined, undefined, undefined> {\n constructor({ message, cause }: { message?: string | undefined; cause?: Error | undefined }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause) this.cause = cause;\n }\n}\n\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message }: { message?: string } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\n\nexport class BadRequestError extends APIError<400, Headers> {}\n\nexport class AuthenticationError extends APIError<401, Headers> {}\n\nexport class PermissionDeniedError extends APIError<403, Headers> {}\n\nexport class NotFoundError extends APIError<404, Headers> {}\n\nexport class ConflictError extends APIError<409, Headers> {}\n\nexport class UnprocessableEntityError extends APIError<422, Headers> {}\n\nexport class RateLimitError extends APIError<429, Headers> {}\n\nexport class InternalServerError extends APIError<number, Headers> {}\n",
7
+ "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { castToError } from '../internal/errors.js';\nimport type { ErrorType } from '../resources/shared.js';\n\n/**\n * Legacy base error class, kept for backward compatibility with code\n * imported from the Anthropic SDK. `PukuError` (the new branded base)\n * extends this so `instanceof AnthropicError` continues to work for\n * every error the SDK throws.\n *\n * @deprecated Import `PukuError` instead. Will be removed in the next\n * major version.\n */\nexport class AnthropicError extends Error {}\n\n/**\n * Branded base error class for the Puku SDK. Every error the SDK throws\n * is an instance of `PukuError`, so `err.toString()` and stack traces\n * surface as `PukuError: …`.\n *\n * We set `PukuError.prototype.name = 'PukuError'` so that\n * `Error.prototype.toString()` (which reads `.name`) produces\n * `PukuError: …` instead of the default `Error: …`.\n */\nexport class PukuError extends AnthropicError {\n constructor(message?: string) {\n super(message);\n this.name = 'PukuError';\n }\n}\n\nexport class APIError<\n TStatus extends number | undefined = number | undefined,\n THeaders extends Headers | undefined = Headers | undefined,\n TError extends Object | undefined = Object | undefined,\n> extends PukuError {\n /** HTTP status for the response that caused the error */\n readonly status: TStatus;\n /** HTTP headers for the response that caused the error */\n readonly headers: THeaders;\n /** JSON body of the response that caused the error */\n readonly error: TError;\n\n readonly requestID: string | null | undefined;\n\n /** The `error.type` from the API response body, e.g. `\"rate_limit_error\"` */\n readonly type: ErrorType | null;\n\n constructor(\n status: TStatus,\n error: TError,\n message: string | undefined,\n headers: THeaders,\n type?: ErrorType | null,\n ) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.requestID = headers?.get('request-id');\n this.error = error;\n this.type = type ?? null;\n }\n\n private static makeMessage(status: number | undefined, error: any, message: string | undefined) {\n const msg =\n error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n\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\n static generate(\n status: number | undefined,\n errorResponse: Object | undefined,\n message: string | undefined,\n headers: Headers | undefined,\n ): APIError {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n\n const error = errorResponse as Record<string, any>;\n const type = error?.['error']?.['type'] as ErrorType | undefined;\n\n if (status === 400) {\n return new BadRequestError(status, error, message, headers, type);\n }\n\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers, type);\n }\n\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers, type);\n }\n\n if (status === 404) {\n return new NotFoundError(status, error, message, headers, type);\n }\n\n if (status === 409) {\n return new ConflictError(status, error, message, headers, type);\n }\n\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers, type);\n }\n\n if (status === 429) {\n return new RateLimitError(status, error, message, headers, type);\n }\n\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers, type);\n }\n\n return new APIError(status, error, message, headers, type);\n }\n}\n\nexport class APIUserAbortError extends APIError<undefined, undefined, undefined> {\n constructor({ message }: { message?: string } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\n\nexport class APIConnectionError extends APIError<undefined, undefined, undefined> {\n constructor({ message, cause }: { message?: string | undefined; cause?: Error | undefined }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause) this.cause = cause;\n }\n}\n\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message }: { message?: string } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\n\nexport class BadRequestError extends APIError<400, Headers> {}\n\nexport class AuthenticationError extends APIError<401, Headers> {}\n\nexport class PermissionDeniedError extends APIError<403, Headers> {}\n\nexport class NotFoundError extends APIError<404, Headers> {}\n\nexport class ConflictError extends APIError<409, Headers> {}\n\nexport class UnprocessableEntityError extends APIError<422, Headers> {}\n\nexport class RateLimitError extends APIError<429, Headers> {}\n\nexport class InternalServerError extends APIError<number, Headers> {}\n",
8
8
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { AnthropicError } from '../../core/error.js';\n\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\n\nexport const isAbsoluteURL = (url: string): boolean => {\n return startsWithSchemeRegexp.test(url);\n};\n\nexport let isArray = (val: unknown): val is unknown[] => ((isArray = Array.isArray), isArray(val));\nexport let isReadonlyArray = isArray as (val: unknown) => val is readonly unknown[];\n\n/** Returns an object if the given value isn't an object, otherwise returns as-is */\nexport function maybeObj(x: unknown): object {\n if (typeof x !== 'object') {\n return {};\n }\n\n return x ?? {};\n}\n\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj: Object | null | undefined): boolean {\n if (!obj) return true;\n for (const _k in obj) return false;\n return true;\n}\n\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn<T extends object = object>(obj: T, key: PropertyKey): key is keyof T {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport function isObj(obj: unknown): obj is Record<string, unknown> {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\n\nexport const ensurePresent = <T>(value: T | null | undefined): T => {\n if (value == null) {\n throw new AnthropicError(`Expected a value to be given but received ${value} instead.`);\n }\n\n return value;\n};\n\nexport const validatePositiveInteger = (name: string, n: unknown): number => {\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};\n\nexport const coerceInteger = (value: unknown): number => {\n if (typeof value === 'number') return Math.round(value);\n if (typeof value === 'string') return parseInt(value, 10);\n\n throw new AnthropicError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\n\nexport const coerceFloat = (value: unknown): number => {\n if (typeof value === 'number') return value;\n if (typeof value === 'string') return parseFloat(value);\n\n throw new AnthropicError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\n\nexport const coerceBoolean = (value: unknown): boolean => {\n if (typeof value === 'boolean') return value;\n if (typeof value === 'string') return value === 'true';\n return Boolean(value);\n};\n\nexport const maybeCoerceInteger = (value: unknown): number | undefined => {\n if (value == null) {\n return undefined;\n }\n return coerceInteger(value);\n};\n\nexport const maybeCoerceFloat = (value: unknown): number | undefined => {\n if (value == null) {\n return undefined;\n }\n return coerceFloat(value);\n};\n\nexport const maybeCoerceBoolean = (value: unknown): boolean | undefined => {\n if (value == null) {\n return undefined;\n }\n return coerceBoolean(value);\n};\n\nexport const safeJSON = (text: string) => {\n try {\n return JSON.parse(text);\n } catch (err) {\n return undefined;\n }\n};\n\n// Gets a value from an object, deletes the key, and returns the value (or undefined if not found)\nexport const pop = <T extends Record<string, any>, K extends string>(obj: T, key: K): T[K] => {\n const value = obj[key];\n delete obj[key];\n return value;\n};\n",
9
9
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nexport const sleep = (ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms));\n",
10
10
  "export const VERSION = '0.81.0'; // x-release-please-version\n",
@@ -14,14 +14,14 @@
14
14
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { AnthropicError } from '../../core/error.js';\n\n/**\n * Basic re-implementation of `qs.stringify` for primitive types.\n */\nexport function stringifyQuery(query: object | Record<string, unknown>) {\n return Object.entries(query)\n .filter(([_, value]) => typeof value !== 'undefined')\n .map(([key, value]) => {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n }\n if (value === null) {\n return `${encodeURIComponent(key)}=`;\n }\n throw new AnthropicError(\n `Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`,\n );\n })\n .join('&');\n}\n",
15
15
  "export function concatBytes(buffers: Uint8Array[]): Uint8Array {\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\n return output;\n}\n\nlet encodeUTF8_: (str: string) => Uint8Array;\nexport function encodeUTF8(str: string) {\n let encoder;\n return (\n encodeUTF8_ ??\n ((encoder = new (globalThis as any).TextEncoder()), (encodeUTF8_ = encoder.encode.bind(encoder)))\n )(str);\n}\n\nlet decodeUTF8_: (bytes: Uint8Array) => string;\nexport function decodeUTF8(bytes: Uint8Array) {\n let decoder;\n return (\n decodeUTF8_ ??\n ((decoder = new (globalThis as any).TextDecoder()), (decodeUTF8_ = decoder.decode.bind(decoder)))\n )(bytes);\n}\n",
16
16
  "import { concatBytes, decodeUTF8, encodeUTF8 } from '../utils/bytes.js';\n\nexport type Bytes = string | ArrayBuffer | Uint8Array | null | undefined;\n\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 // prettier-ignore\n static NEWLINE_CHARS = new Set(['\\n', '\\r']);\n static NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n\n #buffer: Uint8Array;\n #carriageReturnIndex: number | null;\n\n constructor() {\n this.#buffer = new Uint8Array();\n this.#carriageReturnIndex = null;\n }\n\n decode(chunk: Bytes): string[] {\n if (chunk == null) {\n return [];\n }\n\n const binaryChunk =\n chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n\n this.#buffer = concatBytes([this.#buffer, binaryChunk]);\n\n const lines: string[] = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(this.#buffer, this.#carriageReturnIndex)) != null) {\n if (patternIndex.carriage && this.#carriageReturnIndex == null) {\n // skip until we either get a corresponding `\\n`, a new `\\r` or nothing\n this.#carriageReturnIndex = patternIndex.index;\n continue;\n }\n\n // we got double \\r or \\rtext\\n\n if (\n this.#carriageReturnIndex != null &&\n (patternIndex.index !== this.#carriageReturnIndex + 1 || patternIndex.carriage)\n ) {\n lines.push(decodeUTF8(this.#buffer.subarray(0, this.#carriageReturnIndex - 1)));\n this.#buffer = this.#buffer.subarray(this.#carriageReturnIndex);\n this.#carriageReturnIndex = null;\n continue;\n }\n\n const endIndex =\n this.#carriageReturnIndex !== null ? patternIndex.preceding - 1 : patternIndex.preceding;\n\n const line = decodeUTF8(this.#buffer.subarray(0, endIndex));\n lines.push(line);\n\n this.#buffer = this.#buffer.subarray(patternIndex.index);\n this.#carriageReturnIndex = null;\n }\n\n return lines;\n }\n\n flush(): string[] {\n if (!this.#buffer.length) {\n return [];\n }\n return this.decode('\\n');\n }\n}\n\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(\n buffer: Uint8Array,\n startIndex: number | null,\n): { preceding: number; index: number; carriage: boolean } | null {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n\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\n if (buffer[i] === carriage) {\n return { preceding: i, index: i + 1, carriage: true };\n }\n }\n\n return null;\n}\n\nexport function findDoubleNewlineIndex(buffer: Uint8Array): number {\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\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 (\n buffer[i] === carriage &&\n buffer[i + 1] === newline &&\n i + 3 < buffer.length &&\n buffer[i + 2] === carriage &&\n buffer[i + 3] === newline\n ) {\n // \\r\\n\\r\\n\n return i + 4;\n }\n }\n\n return -1;\n}\n",
17
- "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { hasOwn } from './values.js';\nimport { type BaseAnthropic } from '../../client.js';\nimport { RequestOptions } from '../request-options.js';\n\ntype LogFn = (message: string, ...rest: unknown[]) => void;\nexport type Logger = {\n error: LogFn;\n warn: LogFn;\n info: LogFn;\n debug: LogFn;\n};\nexport type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug';\n\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\n\nexport const parseLogLevel = (\n maybeLevel: string | undefined,\n sourceName: string,\n client: BaseAnthropic,\n): LogLevel | undefined => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(\n `${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(\n Object.keys(levelNumbers),\n )}`,\n );\n return undefined;\n};\n\nfunction noop() {}\n\nfunction makeLogFn(fnLevel: keyof Logger, logger: Logger | undefined, logLevel: LogLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n } else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\n\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\n\nlet cachedLoggers = /* @__PURE__ */ new WeakMap<Logger, [LogLevel, Logger]>();\n\nexport function loggerFor(client: BaseAnthropic): Logger {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\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\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n\n return levelLogger;\n}\n\nexport const formatRequestDetails = (details: {\n options?: RequestOptions | undefined;\n headers?: Headers | Record<string, string> | undefined;\n retryOfRequestLogID?: string | undefined;\n retryOf?: string | undefined;\n url?: string | undefined;\n status?: number | undefined;\n method?: string | undefined;\n durationMs?: number | undefined;\n message?: unknown;\n body?: unknown;\n}) => {\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(\n (details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(\n ([name, value]) => [\n name,\n (\n name.toLowerCase() === 'x-api-key' ||\n name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie'\n ) ?\n '***'\n : value,\n ],\n ),\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",
18
- "import { AnthropicError } from './error.js';\nimport { type ReadableStream } from '../internal/shim-types.js';\nimport { makeReadableStream } from '../internal/shims.js';\nimport { findDoubleNewlineIndex, LineDecoder } from '../internal/decoders/line.js';\nimport { ReadableStreamToAsyncIterable } from '../internal/shims.js';\nimport { isAbortError } from '../internal/errors.js';\nimport { safeJSON } from '../internal/utils/values.js';\nimport { encodeUTF8 } from '../internal/utils/bytes.js';\nimport { loggerFor } from '../internal/utils/log.js';\nimport type { BaseAnthropic } from '../client.js';\n\nimport { APIError } from './error.js';\nimport type { ErrorType } from '../resources/shared.js';\n\ntype Bytes = string | ArrayBuffer | Uint8Array | null | undefined;\n\nexport type ServerSentEvent = {\n event: string | null;\n data: string;\n raw: string[];\n};\n\nexport class Stream<Item> implements AsyncIterable<Item> {\n controller: AbortController;\n #client: BaseAnthropic | undefined;\n\n constructor(\n private iterator: () => AsyncIterator<Item>,\n controller: AbortController,\n client?: BaseAnthropic,\n ) {\n this.controller = controller;\n this.#client = client;\n }\n\n static fromSSEResponse<Item>(\n response: Response,\n controller: AbortController,\n client?: BaseAnthropic,\n ): Stream<Item> {\n let consumed = false;\n const logger = client ? loggerFor(client) : console;\n\n async function* iterator(): AsyncIterator<Item, any, undefined> {\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) as Item;\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\n if (\n 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 ) {\n try {\n yield JSON.parse(sse.data) as Item;\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\n if (sse.event === 'ping') {\n continue;\n }\n\n if (sse.event === 'error') {\n const body = safeJSON(sse.data) ?? sse.data;\n const type = body?.error?.type as ErrorType | undefined;\n throw new APIError(undefined, body, undefined, response.headers, type);\n }\n }\n done = true;\n } catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e)) return;\n throw e;\n } finally {\n // If the user `break`s, abort the ongoing request.\n if (!done) controller.abort();\n }\n }\n\n return new Stream(iterator, controller, client);\n }\n\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream<Item>(\n readableStream: ReadableStream,\n controller: AbortController,\n client?: BaseAnthropic,\n ): Stream<Item> {\n let consumed = false;\n\n async function* iterLines(): AsyncGenerator<string, void, unknown> {\n const lineDecoder = new LineDecoder();\n\n const iter = ReadableStreamToAsyncIterable<Bytes>(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n\n async function* iterator(): AsyncIterator<Item, any, undefined> {\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) continue;\n if (line) yield JSON.parse(line) as Item;\n }\n done = true;\n } catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e)) return;\n throw e;\n } finally {\n // If the user `break`s, abort the ongoing request.\n if (!done) controller.abort();\n }\n }\n\n return new Stream(iterator, controller, client);\n }\n\n [Symbol.asyncIterator](): AsyncIterator<Item> {\n return this.iterator();\n }\n\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee(): [Stream<Item>, Stream<Item>] {\n const left: Array<Promise<IteratorResult<Item>>> = [];\n const right: Array<Promise<IteratorResult<Item>>> = [];\n const iterator = this.iterator();\n\n const teeIterator = (queue: Array<Promise<IteratorResult<Item>>>): AsyncIterator<Item> => {\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\n return [\n new Stream(() => teeIterator(left), this.controller, this.#client),\n new Stream(() => teeIterator(right), this.controller, this.#client),\n ];\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(): ReadableStream {\n const self = this;\n let iter: AsyncIterator<Item>;\n\n return makeReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl: any) {\n try {\n const { value, done } = await iter.next();\n if (done) return ctrl.close();\n\n const bytes = encodeUTF8(JSON.stringify(value) + '\\n');\n\n ctrl.enqueue(bytes);\n } catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\n\nexport async function* _iterSSEMessages(\n response: Response,\n controller: AbortController,\n): AsyncGenerator<ServerSentEvent, void, unknown> {\n if (!response.body) {\n controller.abort();\n if (\n typeof (globalThis as any).navigator !== 'undefined' &&\n (globalThis as any).navigator.product === 'ReactNative'\n ) {\n throw new AnthropicError(\n `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 }\n throw new AnthropicError(`Attempted to iterate over a response with no body`);\n }\n\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new LineDecoder();\n\n const iter = ReadableStreamToAsyncIterable<Bytes>(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) yield sse;\n }\n }\n\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse) yield sse;\n }\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: AsyncIterableIterator<Bytes>): AsyncGenerator<Uint8Array> {\n let data = new Uint8Array();\n\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n\n const binaryChunk =\n chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n\n let patternIndex;\n while ((patternIndex = findDoubleNewlineIndex(data)) !== -1) {\n yield data.slice(0, patternIndex);\n data = data.slice(patternIndex);\n }\n }\n\n if (data.length > 0) {\n yield data;\n }\n}\n\nclass SSEDecoder {\n private data: string[];\n private event: string | null;\n private chunks: string[];\n\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n\n decode(line: string) {\n if (line.endsWith('\\r')) {\n line = line.substring(0, line.length - 1);\n }\n\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length) return null;\n\n const sse: ServerSentEvent = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n\n this.event = null;\n this.data = [];\n this.chunks = [];\n\n return sse;\n }\n\n this.chunks.push(line);\n\n if (line.startsWith(':')) {\n return null;\n }\n\n let [fieldname, _, value] = partition(line, ':');\n\n if (value.startsWith(' ')) {\n value = value.substring(1);\n }\n\n if (fieldname === 'event') {\n this.event = value;\n } else if (fieldname === 'data') {\n this.data.push(value);\n }\n\n return null;\n }\n}\n\nfunction partition(str: string, delimiter: string): [string, string, string] {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n\n return [str, '', ''];\n}\n",
19
- "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport type { FinalRequestOptions } from './request-options.js';\nimport { Stream } from '../core/streaming.js';\nimport { type BaseAnthropic } from '../client.js';\nimport { formatRequestDetails, loggerFor } from './utils/log.js';\nimport type { AbstractPage } from '../core/pagination.js';\n\nexport type APIResponseProps = {\n response: Response;\n options: FinalRequestOptions;\n controller: AbortController;\n requestLogID: string;\n retryOfRequestLogID: string | undefined;\n startTime: number;\n};\n\nexport async function defaultParseResponse<T>(\n client: BaseAnthropic,\n props: APIResponseProps,\n): Promise<WithRequestID<T>> {\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\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\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller) as any;\n }\n\n return Stream.fromSSEResponse(response, props.controller) as any;\n }\n\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null as T;\n }\n\n if (props.options.__binaryResponse) {\n return response as unknown as T;\n }\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 as T;\n }\n\n const json = await response.json();\n return addRequestID(json as T, response);\n }\n\n const text = await response.text();\n return text as unknown as T;\n })();\n loggerFor(client).debug(\n `[${requestLogID}] response parsed`,\n formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }),\n );\n return body;\n}\n\nexport type WithRequestID<T> =\n T extends Array<any> | Response | AbstractPage<any> ? T\n : T extends Record<string, any> ? T & { _request_id?: string | null }\n : T;\n\nexport function addRequestID<T>(value: T, response: Response): WithRequestID<T> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value as WithRequestID<T>;\n }\n\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('request-id'),\n enumerable: false,\n }) as WithRequestID<T>;\n}\n",
20
- "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { type BaseAnthropic } from '../client.js';\n\nimport { type PromiseOrValue } from '../internal/types.js';\nimport {\n type APIResponseProps,\n type WithRequestID,\n defaultParseResponse,\n addRequestID,\n} from '../internal/parse.js';\n\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise<T> extends Promise<WithRequestID<T>> {\n private parsedPromise: Promise<WithRequestID<T>> | undefined;\n #client: BaseAnthropic;\n\n constructor(\n client: BaseAnthropic,\n private responsePromise: Promise<APIResponseProps>,\n private parseResponse: (\n client: BaseAnthropic,\n props: APIResponseProps,\n ) => PromiseOrValue<WithRequestID<T>> = defaultParseResponse,\n ) {\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 as any);\n });\n this.#client = client;\n }\n\n _thenUnwrap<U>(transform: (data: T, props: APIResponseProps) => U): APIPromise<U> {\n return new APIPromise(this.#client, this.responsePromise, async (client, props) =>\n addRequestID(transform(await this.parseResponse(client, props), props), props.response),\n );\n }\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(): Promise<Response> {\n return this.responsePromise.then((p) => p.response);\n }\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(): Promise<{ data: T; response: Response; request_id: string | null | undefined }> {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('request-id') };\n }\n\n private parse(): Promise<WithRequestID<T>> {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then(\n (data) => this.parseResponse(this.#client, data) as any as Promise<WithRequestID<T>>,\n );\n }\n return this.parsedPromise;\n }\n\n override then<TResult1 = WithRequestID<T>, TResult2 = never>(\n onfulfilled?: ((value: WithRequestID<T>) => TResult1 | PromiseLike<TResult1>) | undefined | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null,\n ): Promise<TResult1 | TResult2> {\n return this.parse().then(onfulfilled, onrejected);\n }\n\n override catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null,\n ): Promise<WithRequestID<T> | TResult> {\n return this.parse().catch(onrejected);\n }\n\n override finally(onfinally?: (() => void) | undefined | null): Promise<WithRequestID<T>> {\n return this.parse().finally(onfinally);\n }\n}\n",
21
- "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { AnthropicError } from './error.js';\nimport { FinalRequestOptions } from '../internal/request-options.js';\nimport { defaultParseResponse, WithRequestID } from '../internal/parse.js';\nimport { type BaseAnthropic } from '../client.js';\nimport { APIPromise } from './api-promise.js';\nimport { type APIResponseProps } from '../internal/parse.js';\nimport { maybeObj } from '../internal/utils/values.js';\n\nexport type PageRequestOptions = Pick<FinalRequestOptions, 'query' | 'headers' | 'body' | 'path' | 'method'>;\n\nexport abstract class AbstractPage<Item> implements AsyncIterable<Item> {\n #client: BaseAnthropic;\n protected options: FinalRequestOptions;\n\n protected response: Response;\n protected body: unknown;\n\n constructor(client: BaseAnthropic, response: Response, body: unknown, options: FinalRequestOptions) {\n this.#client = client;\n this.options = options;\n this.response = response;\n this.body = body;\n }\n\n abstract nextPageRequestOptions(): PageRequestOptions | null;\n\n abstract getPaginatedItems(): Item[];\n\n hasNextPage(): boolean {\n const items = this.getPaginatedItems();\n if (!items.length) return false;\n return this.nextPageRequestOptions() != null;\n }\n\n async getNextPage(): Promise<this> {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new AnthropicError(\n 'No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.',\n );\n }\n\n return await this.#client.requestAPIList(this.constructor as any, nextOptions);\n }\n\n async *iterPages(): AsyncGenerator<this> {\n let page: this = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n\n async *[Symbol.asyncIterator](): AsyncGenerator<Item> {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\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<\n PageClass extends AbstractPage<Item>,\n Item = ReturnType<PageClass['getPaginatedItems']>[number],\n >\n extends APIPromise<PageClass>\n implements AsyncIterable<Item>\n{\n constructor(\n client: BaseAnthropic,\n request: Promise<APIResponseProps>,\n Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass,\n ) {\n super(\n client,\n request,\n async (client, props) =>\n new Page(\n client,\n props.response,\n await defaultParseResponse(client, props),\n props.options,\n ) as WithRequestID<PageClass>,\n );\n }\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](): AsyncGenerator<Item> {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n\nexport interface PageResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n first_id: string | null;\n\n last_id: string | null;\n}\n\nexport interface PageParams {\n /**\n * Number of items per page.\n */\n limit?: number;\n\n before_id?: string;\n\n after_id?: string;\n}\n\nexport class Page<Item> extends AbstractPage<Item> implements PageResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n first_id: string | null;\n\n last_id: string | null;\n\n constructor(\n client: BaseAnthropic,\n response: Response,\n body: PageResponse<Item>,\n options: FinalRequestOptions,\n ) {\n super(client, response, body, options);\n\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\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n override hasNextPage(): boolean {\n if (this.has_more === false) {\n return false;\n }\n\n return super.hasNextPage();\n }\n\n nextPageRequestOptions(): PageRequestOptions | null {\n if ((this.options.query as Record<string, unknown>)?.['before_id']) {\n // in reverse\n const first_id = this.first_id;\n if (!first_id) {\n return null;\n }\n\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n before_id: first_id,\n },\n };\n }\n\n const cursor = this.last_id;\n if (!cursor) {\n return null;\n }\n\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after_id: cursor,\n },\n };\n }\n}\n\nexport interface TokenPageResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n next_page: string | null;\n}\n\nexport interface TokenPageParams {\n /**\n * Number of items per page.\n */\n limit?: number;\n\n page_token?: string;\n}\n\nexport class TokenPage<Item> extends AbstractPage<Item> implements TokenPageResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n next_page: string | null;\n\n constructor(\n client: BaseAnthropic,\n response: Response,\n body: TokenPageResponse<Item>,\n options: FinalRequestOptions,\n ) {\n super(client, response, body, options);\n\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.next_page = body.next_page || null;\n }\n\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n override hasNextPage(): boolean {\n if (this.has_more === false) {\n return false;\n }\n\n return super.hasNextPage();\n }\n\n nextPageRequestOptions(): PageRequestOptions | null {\n const cursor = this.next_page;\n if (!cursor) {\n return null;\n }\n\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n page_token: cursor,\n },\n };\n }\n}\n\nexport interface PageCursorResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n next_page: string | null;\n}\n\nexport interface PageCursorParams {\n /**\n * Number of items per page.\n */\n limit?: number;\n\n page?: string | null;\n}\n\nexport class PageCursor<Item> extends AbstractPage<Item> implements PageCursorResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n next_page: string | null;\n\n constructor(\n client: BaseAnthropic,\n response: Response,\n body: PageCursorResponse<Item>,\n options: FinalRequestOptions,\n ) {\n super(client, response, body, options);\n\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.next_page = body.next_page || null;\n }\n\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n override hasNextPage(): boolean {\n if (this.has_more === false) {\n return false;\n }\n\n return super.hasNextPage();\n }\n\n nextPageRequestOptions(): PageRequestOptions | null {\n const cursor = this.next_page;\n if (!cursor) {\n return null;\n }\n\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n page: cursor,\n },\n };\n }\n}\n",
22
- "import { type RequestOptions } from './request-options.js';\nimport type { FilePropertyBag, Fetch } from './builtin-types.js';\nimport type { BaseAnthropic } from '../client.js';\nimport { ReadableStreamFrom } from './shims.js';\n\nexport type BlobPart = string | ArrayBuffer | ArrayBufferView | Blob | DataView;\ntype FsReadStream = AsyncIterable<Uint8Array> & { path: string | { toString(): string } };\n\n// https://github.com/oven-sh/bun/issues/5980\ninterface BunFile extends Blob {\n readonly name?: string | undefined;\n}\n\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis as any;\n const isOldNode =\n typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error(\n '`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\n/**\n * Typically, this is a native \"File\" class.\n *\n * We provide the {@link toFile} utility to convert a variety of objects\n * into the File class.\n *\n * For convenience, you can also pass a fetch Response, or in Node,\n * the result of fs.createReadStream().\n */\nexport type Uploadable = File | Response | FsReadStream | BunFile;\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(\n fileBits: BlobPart[],\n fileName: string | undefined,\n options?: FilePropertyBag,\n): File {\n checkFileSupport();\n return new File(fileBits as any, fileName ?? 'unknown_file', options);\n}\n\nexport function getName(value: any, stripPath: boolean): string | undefined {\n const val =\n (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\n return stripPath ? val.split(/[\\\\/]/).pop() || undefined : val;\n}\n\nexport const isAsyncIterable = (value: any): value is AsyncIterable<any> =>\n value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n\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 (\n opts: RequestOptions,\n fetch: BaseAnthropic | Fetch,\n): Promise<RequestOptions> => {\n if (!hasUploadableValue(opts.body)) return opts;\n\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\n\ntype MultipartFormRequestOptions = Omit<RequestOptions, 'body'> & { body: unknown };\n\nexport const multipartFormRequestOptions = async (\n opts: MultipartFormRequestOptions,\n fetch: BaseAnthropic | Fetch,\n stripFilenames: boolean = true,\n): Promise<RequestOptions> => {\n return { ...opts, body: await createForm(opts.body, fetch, stripFilenames) };\n};\n\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap<Fetch, Promise<boolean>>();\n\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: BaseAnthropic | Fetch): Promise<boolean> {\n const fetch: Fetch = typeof fetchObject === 'function' ? fetchObject : (fetchObject as any).fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached) return cached;\n const promise = (async () => {\n try {\n const FetchResponse = (\n 'Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor) as typeof Response;\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n } catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\n\nexport const createForm = async <T = Record<string, unknown>>(\n body: T | undefined,\n fetch: BaseAnthropic | Fetch,\n stripFilenames: boolean = true,\n): Promise<FormData> => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError(\n 'The provided fetch function does not support file uploads with the current global FormData class.',\n );\n }\n const form = new FormData();\n await Promise.all(\n Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value, stripFilenames)),\n );\n return form;\n};\n\n// We check for Blob not File because Bun.File doesn't inherit from File,\n// but they both inherit from Blob and have a `name` property at runtime.\nconst isNamedBlob = (value: unknown): value is Blob => value instanceof Blob && 'name' in value;\n\nconst isUploadable = (value: unknown) =>\n typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));\n\nconst hasUploadableValue = (value: unknown): boolean => {\n if (isUploadable(value)) return true;\n if (Array.isArray(value)) return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue((value as any)[k])) return true;\n }\n }\n return false;\n};\n\nconst addFormValue = async (\n form: FormData,\n key: string,\n value: unknown,\n stripFilenames: boolean,\n): Promise<void> => {\n if (value === undefined) return;\n if (value == null) {\n throw new TypeError(\n `Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`,\n );\n }\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 } else if (value instanceof Response) {\n let options = {} as FilePropertyBag;\n const contentType = value.headers.get('Content-Type');\n if (contentType) {\n options = { type: contentType };\n }\n\n form.append(key, makeFile([await value.blob()], getName(value, stripFilenames), options));\n } else if (isAsyncIterable(value)) {\n form.append(\n key,\n makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value, stripFilenames)),\n );\n } else if (isNamedBlob(value)) {\n form.append(key, makeFile([value], getName(value, stripFilenames), { type: value.type }));\n } else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry, stripFilenames)));\n } else if (typeof value === 'object') {\n await Promise.all(\n Object.entries(value).map(([name, prop]) =>\n addFormValue(form, `${key}[${name}]`, prop, stripFilenames),\n ),\n );\n } else {\n throw new TypeError(\n `Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`,\n );\n }\n};\n",
17
+ "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { hasOwn } from './values.js';\nimport { type BasePuku } from '../../client.js';\nimport { RequestOptions } from '../request-options.js';\n\ntype LogFn = (message: string, ...rest: unknown[]) => void;\nexport type Logger = {\n error: LogFn;\n warn: LogFn;\n info: LogFn;\n debug: LogFn;\n};\nexport type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug';\n\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\n\nexport const parseLogLevel = (\n maybeLevel: string | undefined,\n sourceName: string,\n client: BasePuku,\n): LogLevel | undefined => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(\n `${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(\n Object.keys(levelNumbers),\n )}`,\n );\n return undefined;\n};\n\nfunction noop() {}\n\nfunction makeLogFn(fnLevel: keyof Logger, logger: Logger | undefined, logLevel: LogLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n } else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\n\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\n\nlet cachedLoggers = /* @__PURE__ */ new WeakMap<Logger, [LogLevel, Logger]>();\n\nexport function loggerFor(client: BasePuku): Logger {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\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\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n\n return levelLogger;\n}\n\nexport const formatRequestDetails = (details: {\n options?: RequestOptions | undefined;\n headers?: Headers | Record<string, string> | undefined;\n retryOfRequestLogID?: string | undefined;\n retryOf?: string | undefined;\n url?: string | undefined;\n status?: number | undefined;\n method?: string | undefined;\n durationMs?: number | undefined;\n message?: unknown;\n body?: unknown;\n}) => {\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(\n (details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(\n ([name, value]) => [\n name,\n (\n name.toLowerCase() === 'x-api-key' ||\n name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie'\n ) ?\n '***'\n : value,\n ],\n ),\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",
18
+ "import { AnthropicError } from './error.js';\nimport { type ReadableStream } from '../internal/shim-types.js';\nimport { makeReadableStream } from '../internal/shims.js';\nimport { findDoubleNewlineIndex, LineDecoder } from '../internal/decoders/line.js';\nimport { ReadableStreamToAsyncIterable } from '../internal/shims.js';\nimport { isAbortError } from '../internal/errors.js';\nimport { safeJSON } from '../internal/utils/values.js';\nimport { encodeUTF8 } from '../internal/utils/bytes.js';\nimport { loggerFor } from '../internal/utils/log.js';\nimport type { BasePuku } from '../client.js';\n\nimport { APIError } from './error.js';\nimport type { ErrorType } from '../resources/shared.js';\n\ntype Bytes = string | ArrayBuffer | Uint8Array | null | undefined;\n\nexport type ServerSentEvent = {\n event: string | null;\n data: string;\n raw: string[];\n};\n\nexport class Stream<Item> implements AsyncIterable<Item> {\n controller: AbortController;\n #client: BasePuku | undefined;\n\n constructor(\n private iterator: () => AsyncIterator<Item>,\n controller: AbortController,\n client?: BasePuku,\n ) {\n this.controller = controller;\n this.#client = client;\n }\n\n static fromSSEResponse<Item>(\n response: Response,\n controller: AbortController,\n client?: BasePuku,\n ): Stream<Item> {\n let consumed = false;\n const logger = client ? loggerFor(client) : console;\n\n async function* iterator(): AsyncIterator<Item, any, undefined> {\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) as Item;\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\n if (\n 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 ) {\n try {\n yield JSON.parse(sse.data) as Item;\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\n if (sse.event === 'ping') {\n continue;\n }\n\n if (sse.event === 'error') {\n const body = safeJSON(sse.data) ?? sse.data;\n const type = body?.error?.type as ErrorType | undefined;\n throw new APIError(undefined, body, undefined, response.headers, type);\n }\n }\n done = true;\n } catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e)) return;\n throw e;\n } finally {\n // If the user `break`s, abort the ongoing request.\n if (!done) controller.abort();\n }\n }\n\n return new Stream(iterator, controller, client);\n }\n\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream<Item>(\n readableStream: ReadableStream,\n controller: AbortController,\n client?: BasePuku,\n ): Stream<Item> {\n let consumed = false;\n\n async function* iterLines(): AsyncGenerator<string, void, unknown> {\n const lineDecoder = new LineDecoder();\n\n const iter = ReadableStreamToAsyncIterable<Bytes>(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n\n async function* iterator(): AsyncIterator<Item, any, undefined> {\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) continue;\n if (line) yield JSON.parse(line) as Item;\n }\n done = true;\n } catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e)) return;\n throw e;\n } finally {\n // If the user `break`s, abort the ongoing request.\n if (!done) controller.abort();\n }\n }\n\n return new Stream(iterator, controller, client);\n }\n\n [Symbol.asyncIterator](): AsyncIterator<Item> {\n return this.iterator();\n }\n\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee(): [Stream<Item>, Stream<Item>] {\n const left: Array<Promise<IteratorResult<Item>>> = [];\n const right: Array<Promise<IteratorResult<Item>>> = [];\n const iterator = this.iterator();\n\n const teeIterator = (queue: Array<Promise<IteratorResult<Item>>>): AsyncIterator<Item> => {\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\n return [\n new Stream(() => teeIterator(left), this.controller, this.#client),\n new Stream(() => teeIterator(right), this.controller, this.#client),\n ];\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(): ReadableStream {\n const self = this;\n let iter: AsyncIterator<Item>;\n\n return makeReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl: any) {\n try {\n const { value, done } = await iter.next();\n if (done) return ctrl.close();\n\n const bytes = encodeUTF8(JSON.stringify(value) + '\\n');\n\n ctrl.enqueue(bytes);\n } catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\n\nexport async function* _iterSSEMessages(\n response: Response,\n controller: AbortController,\n): AsyncGenerator<ServerSentEvent, void, unknown> {\n if (!response.body) {\n controller.abort();\n if (\n typeof (globalThis as any).navigator !== 'undefined' &&\n (globalThis as any).navigator.product === 'ReactNative'\n ) {\n throw new AnthropicError(\n `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 }\n throw new AnthropicError(`Attempted to iterate over a response with no body`);\n }\n\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new LineDecoder();\n\n const iter = ReadableStreamToAsyncIterable<Bytes>(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) yield sse;\n }\n }\n\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse) yield sse;\n }\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: AsyncIterableIterator<Bytes>): AsyncGenerator<Uint8Array> {\n let data = new Uint8Array();\n\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n\n const binaryChunk =\n chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n\n let patternIndex;\n while ((patternIndex = findDoubleNewlineIndex(data)) !== -1) {\n yield data.slice(0, patternIndex);\n data = data.slice(patternIndex);\n }\n }\n\n if (data.length > 0) {\n yield data;\n }\n}\n\nclass SSEDecoder {\n private data: string[];\n private event: string | null;\n private chunks: string[];\n\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n\n decode(line: string) {\n if (line.endsWith('\\r')) {\n line = line.substring(0, line.length - 1);\n }\n\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length) return null;\n\n const sse: ServerSentEvent = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n\n this.event = null;\n this.data = [];\n this.chunks = [];\n\n return sse;\n }\n\n this.chunks.push(line);\n\n if (line.startsWith(':')) {\n return null;\n }\n\n let [fieldname, _, value] = partition(line, ':');\n\n if (value.startsWith(' ')) {\n value = value.substring(1);\n }\n\n if (fieldname === 'event') {\n this.event = value;\n } else if (fieldname === 'data') {\n this.data.push(value);\n }\n\n return null;\n }\n}\n\nfunction partition(str: string, delimiter: string): [string, string, string] {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n\n return [str, '', ''];\n}\n",
19
+ "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport type { FinalRequestOptions } from './request-options.js';\nimport { Stream } from '../core/streaming.js';\nimport { type BasePuku } from '../client.js';\nimport { formatRequestDetails, loggerFor } from './utils/log.js';\nimport type { AbstractPage } from '../core/pagination.js';\n\nexport type APIResponseProps = {\n response: Response;\n options: FinalRequestOptions;\n controller: AbortController;\n requestLogID: string;\n retryOfRequestLogID: string | undefined;\n startTime: number;\n};\n\nexport async function defaultParseResponse<T>(\n client: BasePuku,\n props: APIResponseProps,\n): Promise<WithRequestID<T>> {\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\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\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller) as any;\n }\n\n return Stream.fromSSEResponse(response, props.controller) as any;\n }\n\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null as T;\n }\n\n if (props.options.__binaryResponse) {\n return response as unknown as T;\n }\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 as T;\n }\n\n const json = await response.json();\n return addRequestID(json as T, response);\n }\n\n const text = await response.text();\n return text as unknown as T;\n })();\n loggerFor(client).debug(\n `[${requestLogID}] response parsed`,\n formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }),\n );\n return body;\n}\n\nexport type WithRequestID<T> =\n T extends Array<any> | Response | AbstractPage<any> ? T\n : T extends Record<string, any> ? T & { _request_id?: string | null }\n : T;\n\nexport function addRequestID<T>(value: T, response: Response): WithRequestID<T> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value as WithRequestID<T>;\n }\n\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('request-id'),\n enumerable: false,\n }) as WithRequestID<T>;\n}\n",
20
+ "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { type BasePuku } from '../client.js';\n\nimport { type PromiseOrValue } from '../internal/types.js';\nimport {\n type APIResponseProps,\n type WithRequestID,\n defaultParseResponse,\n addRequestID,\n} from '../internal/parse.js';\n\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise<T> extends Promise<WithRequestID<T>> {\n private parsedPromise: Promise<WithRequestID<T>> | undefined;\n #client: BasePuku;\n\n constructor(\n client: BasePuku,\n private responsePromise: Promise<APIResponseProps>,\n private parseResponse: (\n client: BasePuku,\n props: APIResponseProps,\n ) => PromiseOrValue<WithRequestID<T>> = defaultParseResponse,\n ) {\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 as any);\n });\n this.#client = client;\n }\n\n _thenUnwrap<U>(transform: (data: T, props: APIResponseProps) => U): APIPromise<U> {\n return new APIPromise(this.#client, this.responsePromise, async (client, props) =>\n addRequestID(transform(await this.parseResponse(client, props), props), props.response),\n );\n }\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(): Promise<Response> {\n return this.responsePromise.then((p) => p.response);\n }\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(): Promise<{ data: T; response: Response; request_id: string | null | undefined }> {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('request-id') };\n }\n\n private parse(): Promise<WithRequestID<T>> {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then(\n (data) => this.parseResponse(this.#client, data) as any as Promise<WithRequestID<T>>,\n );\n }\n return this.parsedPromise;\n }\n\n override then<TResult1 = WithRequestID<T>, TResult2 = never>(\n onfulfilled?: ((value: WithRequestID<T>) => TResult1 | PromiseLike<TResult1>) | undefined | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null,\n ): Promise<TResult1 | TResult2> {\n return this.parse().then(onfulfilled, onrejected);\n }\n\n override catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null,\n ): Promise<WithRequestID<T> | TResult> {\n return this.parse().catch(onrejected);\n }\n\n override finally(onfinally?: (() => void) | undefined | null): Promise<WithRequestID<T>> {\n return this.parse().finally(onfinally);\n }\n}\n",
21
+ "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { AnthropicError } from './error.js';\nimport { FinalRequestOptions } from '../internal/request-options.js';\nimport { defaultParseResponse, WithRequestID } from '../internal/parse.js';\nimport { type BasePuku } from '../client.js';\nimport { APIPromise } from './api-promise.js';\nimport { type APIResponseProps } from '../internal/parse.js';\nimport { maybeObj } from '../internal/utils/values.js';\n\nexport type PageRequestOptions = Pick<FinalRequestOptions, 'query' | 'headers' | 'body' | 'path' | 'method'>;\n\nexport abstract class AbstractPage<Item> implements AsyncIterable<Item> {\n #client: BasePuku;\n protected options: FinalRequestOptions;\n\n protected response: Response;\n protected body: unknown;\n\n constructor(client: BasePuku, response: Response, body: unknown, options: FinalRequestOptions) {\n this.#client = client;\n this.options = options;\n this.response = response;\n this.body = body;\n }\n\n abstract nextPageRequestOptions(): PageRequestOptions | null;\n\n abstract getPaginatedItems(): Item[];\n\n hasNextPage(): boolean {\n const items = this.getPaginatedItems();\n if (!items.length) return false;\n return this.nextPageRequestOptions() != null;\n }\n\n async getNextPage(): Promise<this> {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new AnthropicError(\n 'No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.',\n );\n }\n\n return await this.#client.requestAPIList(this.constructor as any, nextOptions);\n }\n\n async *iterPages(): AsyncGenerator<this> {\n let page: this = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n\n async *[Symbol.asyncIterator](): AsyncGenerator<Item> {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\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<\n PageClass extends AbstractPage<Item>,\n Item = ReturnType<PageClass['getPaginatedItems']>[number],\n >\n extends APIPromise<PageClass>\n implements AsyncIterable<Item>\n{\n constructor(\n client: BasePuku,\n request: Promise<APIResponseProps>,\n Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass,\n ) {\n super(\n client,\n request,\n async (client, props) =>\n new Page(\n client,\n props.response,\n await defaultParseResponse(client, props),\n props.options,\n ) as WithRequestID<PageClass>,\n );\n }\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](): AsyncGenerator<Item> {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n\nexport interface PageResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n first_id: string | null;\n\n last_id: string | null;\n}\n\nexport interface PageParams {\n /**\n * Number of items per page.\n */\n limit?: number;\n\n before_id?: string;\n\n after_id?: string;\n}\n\nexport class Page<Item> extends AbstractPage<Item> implements PageResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n first_id: string | null;\n\n last_id: string | null;\n\n constructor(\n client: BasePuku,\n response: Response,\n body: PageResponse<Item>,\n options: FinalRequestOptions,\n ) {\n super(client, response, body, options);\n\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\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n override hasNextPage(): boolean {\n if (this.has_more === false) {\n return false;\n }\n\n return super.hasNextPage();\n }\n\n nextPageRequestOptions(): PageRequestOptions | null {\n if ((this.options.query as Record<string, unknown>)?.['before_id']) {\n // in reverse\n const first_id = this.first_id;\n if (!first_id) {\n return null;\n }\n\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n before_id: first_id,\n },\n };\n }\n\n const cursor = this.last_id;\n if (!cursor) {\n return null;\n }\n\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after_id: cursor,\n },\n };\n }\n}\n\nexport interface TokenPageResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n next_page: string | null;\n}\n\nexport interface TokenPageParams {\n /**\n * Number of items per page.\n */\n limit?: number;\n\n page_token?: string;\n}\n\nexport class TokenPage<Item> extends AbstractPage<Item> implements TokenPageResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n next_page: string | null;\n\n constructor(\n client: BasePuku,\n response: Response,\n body: TokenPageResponse<Item>,\n options: FinalRequestOptions,\n ) {\n super(client, response, body, options);\n\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.next_page = body.next_page || null;\n }\n\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n override hasNextPage(): boolean {\n if (this.has_more === false) {\n return false;\n }\n\n return super.hasNextPage();\n }\n\n nextPageRequestOptions(): PageRequestOptions | null {\n const cursor = this.next_page;\n if (!cursor) {\n return null;\n }\n\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n page_token: cursor,\n },\n };\n }\n}\n\nexport interface PageCursorResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n next_page: string | null;\n}\n\nexport interface PageCursorParams {\n /**\n * Number of items per page.\n */\n limit?: number;\n\n page?: string | null;\n}\n\nexport class PageCursor<Item> extends AbstractPage<Item> implements PageCursorResponse<Item> {\n data: Array<Item>;\n\n has_more: boolean;\n\n next_page: string | null;\n\n constructor(\n client: BasePuku,\n response: Response,\n body: PageCursorResponse<Item>,\n options: FinalRequestOptions,\n ) {\n super(client, response, body, options);\n\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.next_page = body.next_page || null;\n }\n\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n override hasNextPage(): boolean {\n if (this.has_more === false) {\n return false;\n }\n\n return super.hasNextPage();\n }\n\n nextPageRequestOptions(): PageRequestOptions | null {\n const cursor = this.next_page;\n if (!cursor) {\n return null;\n }\n\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n page: cursor,\n },\n };\n }\n}\n",
22
+ "import { type RequestOptions } from './request-options.js';\nimport type { FilePropertyBag, Fetch } from './builtin-types.js';\nimport type { BasePuku } from '../client.js';\nimport { ReadableStreamFrom } from './shims.js';\n\nexport type BlobPart = string | ArrayBuffer | ArrayBufferView | Blob | DataView;\ntype FsReadStream = AsyncIterable<Uint8Array> & { path: string | { toString(): string } };\n\n// https://github.com/oven-sh/bun/issues/5980\ninterface BunFile extends Blob {\n readonly name?: string | undefined;\n}\n\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis as any;\n const isOldNode =\n typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error(\n '`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\n/**\n * Typically, this is a native \"File\" class.\n *\n * We provide the {@link toFile} utility to convert a variety of objects\n * into the File class.\n *\n * For convenience, you can also pass a fetch Response, or in Node,\n * the result of fs.createReadStream().\n */\nexport type Uploadable = File | Response | FsReadStream | BunFile;\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(\n fileBits: BlobPart[],\n fileName: string | undefined,\n options?: FilePropertyBag,\n): File {\n checkFileSupport();\n return new File(fileBits as any, fileName ?? 'unknown_file', options);\n}\n\nexport function getName(value: any, stripPath: boolean): string | undefined {\n const val =\n (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\n return stripPath ? val.split(/[\\\\/]/).pop() || undefined : val;\n}\n\nexport const isAsyncIterable = (value: any): value is AsyncIterable<any> =>\n value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n\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 (\n opts: RequestOptions,\n fetch: BasePuku | Fetch,\n): Promise<RequestOptions> => {\n if (!hasUploadableValue(opts.body)) return opts;\n\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\n\ntype MultipartFormRequestOptions = Omit<RequestOptions, 'body'> & { body: unknown };\n\nexport const multipartFormRequestOptions = async (\n opts: MultipartFormRequestOptions,\n fetch: BasePuku | Fetch,\n stripFilenames: boolean = true,\n): Promise<RequestOptions> => {\n return { ...opts, body: await createForm(opts.body, fetch, stripFilenames) };\n};\n\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap<Fetch, Promise<boolean>>();\n\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: BasePuku | Fetch): Promise<boolean> {\n const fetch: Fetch = typeof fetchObject === 'function' ? fetchObject : (fetchObject as any).fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached) return cached;\n const promise = (async () => {\n try {\n const FetchResponse = (\n 'Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor) as typeof Response;\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n } catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\n\nexport const createForm = async <T = Record<string, unknown>>(\n body: T | undefined,\n fetch: BasePuku | Fetch,\n stripFilenames: boolean = true,\n): Promise<FormData> => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError(\n 'The provided fetch function does not support file uploads with the current global FormData class.',\n );\n }\n const form = new FormData();\n await Promise.all(\n Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value, stripFilenames)),\n );\n return form;\n};\n\n// We check for Blob not File because Bun.File doesn't inherit from File,\n// but they both inherit from Blob and have a `name` property at runtime.\nconst isNamedBlob = (value: unknown): value is Blob => value instanceof Blob && 'name' in value;\n\nconst isUploadable = (value: unknown) =>\n typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));\n\nconst hasUploadableValue = (value: unknown): boolean => {\n if (isUploadable(value)) return true;\n if (Array.isArray(value)) return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue((value as any)[k])) return true;\n }\n }\n return false;\n};\n\nconst addFormValue = async (\n form: FormData,\n key: string,\n value: unknown,\n stripFilenames: boolean,\n): Promise<void> => {\n if (value === undefined) return;\n if (value == null) {\n throw new TypeError(\n `Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`,\n );\n }\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 } else if (value instanceof Response) {\n let options = {} as FilePropertyBag;\n const contentType = value.headers.get('Content-Type');\n if (contentType) {\n options = { type: contentType };\n }\n\n form.append(key, makeFile([await value.blob()], getName(value, stripFilenames), options));\n } else if (isAsyncIterable(value)) {\n form.append(\n key,\n makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value, stripFilenames)),\n );\n } else if (isNamedBlob(value)) {\n form.append(key, makeFile([value], getName(value, stripFilenames), { type: value.type }));\n } else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry, stripFilenames)));\n } else if (typeof value === 'object') {\n await Promise.all(\n Object.entries(value).map(([name, prop]) =>\n addFormValue(form, `${key}[${name}]`, prop, stripFilenames),\n ),\n );\n } else {\n throw new TypeError(\n `Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`,\n );\n }\n};\n",
23
23
  "import { BlobPart, getName, makeFile, isAsyncIterable } from './uploads.js';\nimport type { FilePropertyBag } from './builtin-types.js';\nimport { checkFileSupport } from './uploads.js';\n\ntype BlobLikePart = string | ArrayBuffer | ArrayBufferView | BlobLike | DataView;\n\n/**\n * Intended to match DOM Blob, node-fetch Blob, node:buffer Blob, etc.\n * Don't add arrayBuffer here, node-fetch doesn't have it\n */\ninterface BlobLike {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */\n readonly size: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */\n readonly type: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */\n text(): Promise<string>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */\n slice(start?: number, end?: number): BlobLike;\n}\n\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value: any): value is BlobLike & { arrayBuffer(): Promise<ArrayBuffer> } =>\n 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/**\n * Intended to match DOM File, node:buffer File, undici File, etc.\n */\ninterface FileLike extends BlobLike {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified) */\n readonly lastModified: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name) */\n readonly name?: string | undefined;\n}\n\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isFileLike = (value: any): value is FileLike & { arrayBuffer(): Promise<ArrayBuffer> } =>\n value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\n\n/**\n * Intended to match DOM Response, node-fetch Response, undici Response, etc.\n */\nexport interface ResponseLike {\n url: string;\n blob(): Promise<BlobLike>;\n}\n\nconst isResponseLike = (value: any): value is ResponseLike =>\n value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\n\nexport type ToFileInput =\n | FileLike\n | ResponseLike\n | Exclude<BlobLikePart, string>\n | AsyncIterable<BlobLikePart>;\n\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(\n value: ToFileInput | PromiseLike<ToFileInput>,\n name?: string | null | undefined,\n options?: FilePropertyBag | undefined,\n): Promise<File> {\n checkFileSupport();\n\n // If it's a promise, resolve it.\n value = await value;\n\n name ||= getName(value, true);\n\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\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name ||= new URL(value.url).pathname.split(/[\\\\/]/).pop();\n\n return makeFile(await getBytes(blob), name, options);\n }\n\n const parts = await getBytes(value);\n\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\n return makeFile(parts, name, options);\n}\n\nasync function getBytes(value: BlobLikePart | AsyncIterable<BlobLikePart>): Promise<Array<BlobPart>> {\n let parts: Array<BlobPart> = [];\n if (\n typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer\n ) {\n parts.push(value);\n } else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : await value.arrayBuffer());\n } else if (\n isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk as BlobLikePart))); // TODO, consider validating?\n }\n } else {\n const constructor = value?.constructor?.name;\n throw new Error(\n `Unexpected data type: ${typeof value}${\n constructor ? `; constructor: ${constructor}` : ''\n }${propsForError(value)}`,\n );\n }\n\n return parts;\n}\n\nfunction propsForError(value: unknown): string {\n if (typeof value !== 'object' || value === null) return '';\n const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n",
24
- "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { BaseAnthropic } from '../client.js';\n\nexport abstract class APIResource {\n protected _client: BaseAnthropic;\n\n constructor(client: BaseAnthropic) {\n this._client = client;\n }\n}\n",
24
+ "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { BasePuku } from '../client.js';\n\nexport abstract class APIResource {\n protected _client: BasePuku;\n\n constructor(client: BasePuku) {\n this._client = client;\n }\n}\n",
25
25
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { isReadonlyArray } from './utils/values.js';\n\ntype HeaderValue = string | undefined | null;\nexport type HeadersLike =\n | Headers\n | readonly HeaderValue[][]\n | Record<string, HeaderValue | readonly HeaderValue[]>\n | undefined\n | null\n | NullableHeaders;\n\nconst brand_privateNullableHeaders = Symbol.for('brand.privateNullableHeaders') as symbol & {\n description: 'brand.privateNullableHeaders';\n};\n\n/**\n * @internal\n * Users can pass explicit nulls to unset default headers. When we parse them\n * into a standard headers type we need to preserve that information.\n */\nexport type NullableHeaders = {\n /** Brand check, prevent users from creating a NullableHeaders. */\n [_: typeof brand_privateNullableHeaders]: true;\n /** Parsed headers. */\n values: Headers;\n /** Set of lowercase header names explicitly set to null. */\n nulls: Set<string>;\n};\n\nfunction* iterateHeaders(headers: HeadersLike): IterableIterator<readonly [string, string | null]> {\n if (!headers) return;\n\n if (brand_privateNullableHeaders in headers) {\n const { values, nulls } = headers as NullableHeaders;\n yield* values.entries();\n for (const name of nulls) {\n yield [name, null];\n }\n return;\n }\n\n let shouldClear = false;\n let iter: Iterable<readonly (HeaderValue | readonly HeaderValue[])[]>;\n if (headers instanceof Headers) {\n iter = headers.entries();\n } else if (isReadonlyArray(headers)) {\n iter = headers;\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') 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) continue;\n\n // Objects keys always overwrite older headers, they never append.\n // Yield a null to clear the header before adding the new values.\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, null];\n }\n yield [name, value];\n }\n }\n}\n\nexport const buildHeaders = (newHeaders: HeadersLike[]): NullableHeaders => {\n const targetHeaders = new Headers();\n const nullHeaders = new Set<string>();\n for (const headers of newHeaders) {\n const seenHeaders = new Set<string>();\n for (const [name, value] of iterateHeaders(headers)) {\n const lowerName = name.toLowerCase();\n if (!seenHeaders.has(lowerName)) {\n targetHeaders.delete(name);\n seenHeaders.add(lowerName);\n }\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n } else {\n targetHeaders.append(name, value);\n nullHeaders.delete(lowerName);\n }\n }\n }\n return { [brand_privateNullableHeaders]: true, values: targetHeaders, nulls: nullHeaders };\n};\n\nexport const isEmptyHeaders = (headers: HeadersLike) => {\n for (const _ of iterateHeaders(headers)) return false;\n return true;\n};\n",
26
26
  "/**\n * Shared utilities for tracking SDK helper usage.\n */\n\nimport type { BetaMessageParam, BetaToolUnion } from '../resources/beta.js';\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');\n\ntype StainlessHelperObject = { [SDK_HELPER_SYMBOL]: string };\n\nexport function wasCreatedByStainlessHelper(value: unknown): value is StainlessHelperObject {\n return typeof value === 'object' && value !== null && SDK_HELPER_SYMBOL in value;\n}\n\n/**\n * Collects helper names from tools and messages arrays.\n * Returns a deduplicated array of helper names found.\n */\nexport function collectStainlessHelpers(\n tools: BetaToolUnion[] | undefined,\n messages: BetaMessageParam[] | undefined,\n): string[] {\n const helpers = new Set<string>();\n\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\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\n if (Array.isArray(message.content)) {\n for (const block of message.content) {\n if (wasCreatedByStainlessHelper(block)) {\n helpers.add(block[SDK_HELPER_SYMBOL]);\n }\n }\n }\n }\n }\n\n return Array.from(helpers);\n}\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(\n tools: BetaToolUnion[] | undefined,\n messages: BetaMessageParam[] | undefined,\n): { 'x-stainless-helper'?: string } {\n const helpers = collectStainlessHelpers(tools, messages);\n if (helpers.length === 0) return {};\n return { 'x-stainless-helper': helpers.join(', ') };\n}\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: unknown): { 'x-stainless-helper'?: string } {\n if (wasCreatedByStainlessHelper(file)) {\n return { 'x-stainless-helper': file[SDK_HELPER_SYMBOL] };\n }\n return {};\n}\n",
27
27
  "import { AnthropicError } from '../../core/error.js';\n\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: string) {\n return str.replace(/[^A-Za-z0-9\\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);\n}\n\nconst EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));\n\nexport const createPathTagFunction = (pathEncoder = encodeURIPath) =>\n function path(statics: readonly string[], ...params: readonly unknown[]): string {\n // If there are no params, no processing is needed.\n if (statics.length === 1) return statics[0]!;\n\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 (\n 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 as any).hasOwnProperty ?? EMPTY) ?? EMPTY)\n ?.toString))\n ) {\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\n const pathOnly = path.split(/[?#]/, 1)[0]!;\n const invalidSegmentPattern = /(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)/gi;\n let match;\n\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\n invalidSegments.sort((a, b) => a.start - b.start);\n\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\n throw new AnthropicError(\n `Path parameters result in path with invalid segments:\\n${invalidSegments\n .map((e) => e.error)\n .join('\\n')}\\n${path}\\n${underline}`,\n );\n }\n\n return path;\n };\n\n/**\n * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n",
@@ -47,7 +47,7 @@
47
47
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { APIPromise } from '../../core/api-promise.js';\nimport { APIResource } from '../../core/resource.js';\nimport { Stream } from '../../core/streaming.js';\nimport { buildHeaders } from '../../internal/headers.js';\nimport { RequestOptions } from '../../internal/request-options.js';\nimport { stainlessHelperHeader } from '../../lib/stainless-helper-header.js';\nimport { MessageStream } from '../../lib/MessageStream.js';\nimport {\n parseMessage,\n type ExtractParsedContentFromParams,\n type ParseableMessageCreateParams,\n type ParsedMessage,\n} from '../../lib/parser.js';\nimport * as BatchesAPI from './batches.js';\nimport {\n BatchCreateParams,\n BatchListParams,\n Batches,\n DeletedMessageBatch,\n MessageBatch,\n MessageBatchCanceledResult,\n MessageBatchErroredResult,\n MessageBatchExpiredResult,\n MessageBatchIndividualResponse,\n MessageBatchRequestCounts,\n MessageBatchResult,\n MessageBatchSucceededResult,\n MessageBatchesPage,\n} from './batches.js';\nimport * as MessagesAPI from './messages.js';\n\nimport { MODEL_NONSTREAMING_TOKENS } from '../../internal/constants.js';\n\nexport class Messages extends APIResource {\n batches: BatchesAPI.Batches = new BatchesAPI.Batches(this._client);\n\n /**\n * Send a structured list of input messages with text and/or image content, and the\n * model will generate the next message in the conversation.\n *\n * The Messages API can be used for either single queries or stateless multi-turn\n * conversations.\n *\n * Learn more about the Messages API in our\n * [user guide](https://docs.claude.com/en/docs/initial-setup)\n *\n * @example\n * ```ts\n * const message = await client.messages.create({\n * max_tokens: 1024,\n * messages: [{ content: 'Hello, world', role: 'user' }],\n * model: 'claude-opus-4-6',\n * });\n * ```\n */\n create(body: MessageCreateParamsNonStreaming, options?: RequestOptions): APIPromise<Message>;\n create(\n body: MessageCreateParamsStreaming,\n options?: RequestOptions,\n ): APIPromise<Stream<RawMessageStreamEvent>>;\n create(\n body: MessageCreateParamsBase,\n options?: RequestOptions,\n ): APIPromise<Stream<RawMessageStreamEvent> | Message>;\n create(\n body: MessageCreateParams,\n options?: RequestOptions,\n ): APIPromise<Message> | APIPromise<Stream<RawMessageStreamEvent>> {\n if (body.model in DEPRECATED_MODELS) {\n console.warn(\n `The model '${body.model}' is deprecated and will reach end-of-life on ${\n DEPRECATED_MODELS[body.model]\n }\\nPlease migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`,\n );\n }\n if (\n body.model in MODELS_TO_WARN_WITH_THINKING_ENABLED &&\n body.thinking &&\n body.thinking.type === 'enabled'\n ) {\n console.warn(\n `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 }\n\n let timeout = (this._client as any)._options.timeout as number | null;\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\n // Collect helper info from tools and messages\n const helperHeader = stainlessHelperHeader(body.tools, body.messages);\n\n return this._client.post('/v1/messages', {\n body,\n timeout: timeout ?? 600000,\n ...options,\n headers: buildHeaders([helperHeader, options?.headers]),\n stream: body.stream ?? false,\n }) as APIPromise<Message> | APIPromise<Stream<RawMessageStreamEvent>>;\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 extends MessageCreateParamsNonStreaming>(\n params: Params,\n options?: RequestOptions,\n ): APIPromise<ParsedMessage<ExtractParsedContentFromParams<Params>>> {\n return this.create(params, options).then((message) =>\n parseMessage(message, params, { logger: this._client.logger ?? console }),\n ) as APIPromise<ParsedMessage<ExtractParsedContentFromParams<Params>>>;\n }\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<Params extends MessageStreamParams>(\n body: Params,\n options?: RequestOptions,\n ): MessageStream<ExtractParsedContentFromParams<Params>> {\n return MessageStream.createMessage<ExtractParsedContentFromParams<Params>>(\n this,\n body as MessageCreateParamsBase,\n options,\n { logger: this._client.logger ?? console },\n );\n }\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://docs.claude.com/en/docs/build-with-claude/token-counting)\n *\n * @example\n * ```ts\n * const messageTokensCount =\n * await client.messages.countTokens({\n * messages: [{ content: 'string', role: 'user' }],\n * model: 'claude-opus-4-6',\n * });\n * ```\n */\n countTokens(body: MessageCountTokensParams, options?: RequestOptions): APIPromise<MessageTokensCount> {\n return this._client.post('/v1/messages/count_tokens', { body, ...options });\n }\n}\n\nexport interface Base64ImageSource {\n data: string;\n\n media_type: 'image/jpeg' | 'image/png' | 'image/gif' | 'image/webp';\n\n type: 'base64';\n}\n\nexport interface Base64PDFSource {\n data: string;\n\n media_type: 'application/pdf';\n\n type: 'base64';\n}\n\nexport interface BashCodeExecutionOutputBlock {\n file_id: string;\n\n type: 'bash_code_execution_output';\n}\n\nexport interface BashCodeExecutionOutputBlockParam {\n file_id: string;\n\n type: 'bash_code_execution_output';\n}\n\nexport interface BashCodeExecutionResultBlock {\n content: Array<BashCodeExecutionOutputBlock>;\n\n return_code: number;\n\n stderr: string;\n\n stdout: string;\n\n type: 'bash_code_execution_result';\n}\n\nexport interface BashCodeExecutionResultBlockParam {\n content: Array<BashCodeExecutionOutputBlockParam>;\n\n return_code: number;\n\n stderr: string;\n\n stdout: string;\n\n type: 'bash_code_execution_result';\n}\n\nexport interface BashCodeExecutionToolResultBlock {\n content: BashCodeExecutionToolResultError | BashCodeExecutionResultBlock;\n\n tool_use_id: string;\n\n type: 'bash_code_execution_tool_result';\n}\n\nexport interface BashCodeExecutionToolResultBlockParam {\n content: BashCodeExecutionToolResultErrorParam | BashCodeExecutionResultBlockParam;\n\n tool_use_id: string;\n\n type: 'bash_code_execution_tool_result';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n}\n\nexport interface BashCodeExecutionToolResultError {\n error_code: BashCodeExecutionToolResultErrorCode;\n\n type: 'bash_code_execution_tool_result_error';\n}\n\nexport type BashCodeExecutionToolResultErrorCode =\n | 'invalid_tool_input'\n | 'unavailable'\n | 'too_many_requests'\n | 'execution_time_exceeded'\n | 'output_file_too_large';\n\nexport interface BashCodeExecutionToolResultErrorParam {\n error_code: BashCodeExecutionToolResultErrorCode;\n\n type: 'bash_code_execution_tool_result_error';\n}\n\nexport interface CacheControlEphemeral {\n type: 'ephemeral';\n\n /**\n * The time-to-live for the cache control breakpoint.\n *\n * This may be one the following values:\n *\n * - `5m`: 5 minutes\n * - `1h`: 1 hour\n *\n * Defaults to `5m`.\n */\n ttl?: '5m' | '1h';\n}\n\nexport interface CacheCreation {\n /**\n * The number of input tokens used to create the 1 hour cache entry.\n */\n ephemeral_1h_input_tokens: number;\n\n /**\n * The number of input tokens used to create the 5 minute cache entry.\n */\n ephemeral_5m_input_tokens: number;\n}\n\nexport interface CitationCharLocation {\n cited_text: string;\n\n document_index: number;\n\n document_title: string | null;\n\n end_char_index: number;\n\n file_id: string | null;\n\n start_char_index: number;\n\n type: 'char_location';\n}\n\nexport interface CitationCharLocationParam {\n cited_text: string;\n\n document_index: number;\n\n document_title: string | null;\n\n end_char_index: number;\n\n start_char_index: number;\n\n type: 'char_location';\n}\n\nexport interface CitationContentBlockLocation {\n cited_text: string;\n\n document_index: number;\n\n document_title: string | null;\n\n end_block_index: number;\n\n file_id: string | null;\n\n start_block_index: number;\n\n type: 'content_block_location';\n}\n\nexport interface CitationContentBlockLocationParam {\n cited_text: string;\n\n document_index: number;\n\n document_title: string | null;\n\n end_block_index: number;\n\n start_block_index: number;\n\n type: 'content_block_location';\n}\n\nexport interface CitationPageLocation {\n cited_text: string;\n\n document_index: number;\n\n document_title: string | null;\n\n end_page_number: number;\n\n file_id: string | null;\n\n start_page_number: number;\n\n type: 'page_location';\n}\n\nexport interface CitationPageLocationParam {\n cited_text: string;\n\n document_index: number;\n\n document_title: string | null;\n\n end_page_number: number;\n\n start_page_number: number;\n\n type: 'page_location';\n}\n\nexport interface CitationSearchResultLocationParam {\n cited_text: string;\n\n end_block_index: number;\n\n search_result_index: number;\n\n source: string;\n\n start_block_index: number;\n\n title: string | null;\n\n type: 'search_result_location';\n}\n\nexport interface CitationWebSearchResultLocationParam {\n cited_text: string;\n\n encrypted_index: string;\n\n title: string | null;\n\n type: 'web_search_result_location';\n\n url: string;\n}\n\nexport interface CitationsConfig {\n enabled: boolean;\n}\n\nexport interface CitationsConfigParam {\n enabled?: boolean;\n}\n\nexport interface CitationsDelta {\n citation:\n | CitationCharLocation\n | CitationPageLocation\n | CitationContentBlockLocation\n | CitationsWebSearchResultLocation\n | CitationsSearchResultLocation;\n\n type: 'citations_delta';\n}\n\nexport interface CitationsSearchResultLocation {\n cited_text: string;\n\n end_block_index: number;\n\n search_result_index: number;\n\n source: string;\n\n start_block_index: number;\n\n title: string | null;\n\n type: 'search_result_location';\n}\n\nexport interface CitationsWebSearchResultLocation {\n cited_text: string;\n\n encrypted_index: string;\n\n title: string | null;\n\n type: 'web_search_result_location';\n\n url: string;\n}\n\nexport interface CodeExecutionOutputBlock {\n file_id: string;\n\n type: 'code_execution_output';\n}\n\nexport interface CodeExecutionOutputBlockParam {\n file_id: string;\n\n type: 'code_execution_output';\n}\n\nexport interface CodeExecutionResultBlock {\n content: Array<CodeExecutionOutputBlock>;\n\n return_code: number;\n\n stderr: string;\n\n stdout: string;\n\n type: 'code_execution_result';\n}\n\nexport interface CodeExecutionResultBlockParam {\n content: Array<CodeExecutionOutputBlockParam>;\n\n return_code: number;\n\n stderr: string;\n\n stdout: string;\n\n type: 'code_execution_result';\n}\n\nexport interface CodeExecutionTool20250522 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'code_execution';\n\n type: 'code_execution_20250522';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\nexport interface CodeExecutionTool20250825 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'code_execution';\n\n type: 'code_execution_20250825';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\n/**\n * Code execution tool with REPL state persistence (daemon mode + gVisor\n * checkpoint).\n */\nexport interface CodeExecutionTool20260120 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'code_execution';\n\n type: 'code_execution_20260120';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\nexport interface CodeExecutionToolResultBlock {\n /**\n * Code execution result with encrypted stdout for PFC + web_search results.\n */\n content: CodeExecutionToolResultBlockContent;\n\n tool_use_id: string;\n\n type: 'code_execution_tool_result';\n}\n\n/**\n * Code execution result with encrypted stdout for PFC + web_search results.\n */\nexport type CodeExecutionToolResultBlockContent =\n | CodeExecutionToolResultError\n | CodeExecutionResultBlock\n | EncryptedCodeExecutionResultBlock;\n\nexport interface CodeExecutionToolResultBlockParam {\n /**\n * Code execution result with encrypted stdout for PFC + web_search results.\n */\n content: CodeExecutionToolResultBlockParamContent;\n\n tool_use_id: string;\n\n type: 'code_execution_tool_result';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n}\n\n/**\n * Code execution result with encrypted stdout for PFC + web_search results.\n */\nexport type CodeExecutionToolResultBlockParamContent =\n | CodeExecutionToolResultErrorParam\n | CodeExecutionResultBlockParam\n | EncryptedCodeExecutionResultBlockParam;\n\nexport interface CodeExecutionToolResultError {\n error_code: CodeExecutionToolResultErrorCode;\n\n type: 'code_execution_tool_result_error';\n}\n\nexport type CodeExecutionToolResultErrorCode =\n | 'invalid_tool_input'\n | 'unavailable'\n | 'too_many_requests'\n | 'execution_time_exceeded';\n\nexport interface CodeExecutionToolResultErrorParam {\n error_code: CodeExecutionToolResultErrorCode;\n\n type: 'code_execution_tool_result_error';\n}\n\n/**\n * Information about the container used in the request (for the code execution\n * tool)\n */\nexport interface Container {\n /**\n * Identifier for the container used in this request\n */\n id: string;\n\n /**\n * The time at which the container will expire.\n */\n expires_at: string;\n}\n\n/**\n * Response model for a file uploaded to the container.\n */\nexport interface ContainerUploadBlock {\n file_id: string;\n\n type: 'container_upload';\n}\n\n/**\n * A content block that represents a file to be uploaded to the container Files\n * uploaded via this block will be available in the container's input directory.\n */\nexport interface ContainerUploadBlockParam {\n file_id: string;\n\n type: 'container_upload';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n}\n\n/**\n * Response model for a file uploaded to the container.\n */\nexport type ContentBlock =\n | TextBlock\n | ThinkingBlock\n | RedactedThinkingBlock\n | ToolUseBlock\n | ServerToolUseBlock\n | WebSearchToolResultBlock\n | WebFetchToolResultBlock\n | CodeExecutionToolResultBlock\n | BashCodeExecutionToolResultBlock\n | TextEditorCodeExecutionToolResultBlock\n | ToolSearchToolResultBlock\n | ContainerUploadBlock;\n\n/**\n * Regular text content.\n */\nexport type ContentBlockParam =\n | TextBlockParam\n | ImageBlockParam\n | DocumentBlockParam\n | SearchResultBlockParam\n | ThinkingBlockParam\n | RedactedThinkingBlockParam\n | ToolUseBlockParam\n | ToolResultBlockParam\n | ServerToolUseBlockParam\n | WebSearchToolResultBlockParam\n | WebFetchToolResultBlockParam\n | CodeExecutionToolResultBlockParam\n | BashCodeExecutionToolResultBlockParam\n | TextEditorCodeExecutionToolResultBlockParam\n | ToolSearchToolResultBlockParam\n | ContainerUploadBlockParam;\n\nexport interface ContentBlockSource {\n content: string | Array<ContentBlockSourceContent>;\n\n type: 'content';\n}\n\nexport type ContentBlockSourceContent = TextBlockParam | ImageBlockParam;\n\n/**\n * Tool invocation directly from the model.\n */\nexport interface DirectCaller {\n type: 'direct';\n}\n\nexport interface DocumentBlock {\n /**\n * Citation configuration for the document\n */\n citations: CitationsConfig | null;\n\n source: Base64PDFSource | PlainTextSource;\n\n /**\n * The title of the document\n */\n title: string | null;\n\n type: 'document';\n}\n\nexport interface DocumentBlockParam {\n source: Base64PDFSource | PlainTextSource | ContentBlockSource | URLPDFSource;\n\n type: 'document';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n citations?: CitationsConfigParam | null;\n\n context?: string | null;\n\n title?: string | null;\n}\n\n/**\n * Code execution result with encrypted stdout for PFC + web_search results.\n */\nexport interface EncryptedCodeExecutionResultBlock {\n content: Array<CodeExecutionOutputBlock>;\n\n encrypted_stdout: string;\n\n return_code: number;\n\n stderr: string;\n\n type: 'encrypted_code_execution_result';\n}\n\n/**\n * Code execution result with encrypted stdout for PFC + web_search results.\n */\nexport interface EncryptedCodeExecutionResultBlockParam {\n content: Array<CodeExecutionOutputBlockParam>;\n\n encrypted_stdout: string;\n\n return_code: number;\n\n stderr: string;\n\n type: 'encrypted_code_execution_result';\n}\n\nexport interface ImageBlockParam {\n source: Base64ImageSource | URLImageSource;\n\n type: 'image';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n}\n\nexport interface InputJSONDelta {\n partial_json: string;\n\n type: 'input_json_delta';\n}\n\nexport interface JSONOutputFormat {\n /**\n * The JSON schema of the format\n */\n schema: { [key: string]: unknown };\n\n type: 'json_schema';\n}\n\nexport interface MemoryTool20250818 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'memory';\n\n type: 'memory_20250818';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n input_examples?: Array<{ [key: string]: unknown }>;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\nexport interface Message {\n /**\n * Unique object identifier.\n *\n * The format and length of IDs may change over time.\n */\n id: string;\n\n /**\n * Information about the container used in the request (for the code execution\n * tool)\n */\n container: Container | null;\n\n /**\n * Content generated by the model.\n *\n * This is an array of content blocks, each of which has a `type` that determines\n * its shape.\n *\n * Example:\n *\n * ```json\n * [{ \"type\": \"text\", \"text\": \"Hi, I'm Claude.\" }]\n * ```\n *\n * If the request input `messages` ended with an `assistant` turn, then the\n * response `content` will continue directly from that last turn. You can use this\n * to constrain the model's output.\n *\n * For example, if the input `messages` were:\n *\n * ```json\n * [\n * {\n * \"role\": \"user\",\n * \"content\": \"What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun\"\n * },\n * { \"role\": \"assistant\", \"content\": \"The best answer is (\" }\n * ]\n * ```\n *\n * Then the response `content` might be:\n *\n * ```json\n * [{ \"type\": \"text\", \"text\": \"B)\" }]\n * ```\n */\n content: Array<ContentBlock>;\n\n /**\n * The model that will complete your prompt.\\n\\nSee\n * [models](https://docs.anthropic.com/en/docs/models-overview) for additional\n * details and options.\n */\n model: Model;\n\n /**\n * Conversational role of the generated message.\n *\n * This will always be `\"assistant\"`.\n */\n role: 'assistant';\n\n /**\n * The reason that we stopped.\n *\n * This may be one the following values:\n *\n * - `\"end_turn\"`: the model reached a natural stopping point\n * - `\"max_tokens\"`: we exceeded the requested `max_tokens` or the model's maximum\n * - `\"stop_sequence\"`: one of your provided custom `stop_sequences` was generated\n * - `\"tool_use\"`: the model invoked one or more tools\n * - `\"pause_turn\"`: we paused a long-running turn. You may provide the response\n * back as-is in a subsequent request to let the model continue.\n * - `\"refusal\"`: when streaming classifiers intervene to handle potential policy\n * violations\n *\n * In non-streaming mode this value is always non-null. In streaming mode, it is\n * null in the `message_start` event and non-null otherwise.\n */\n stop_reason: StopReason | null;\n\n /**\n * Which custom stop sequence was generated, if any.\n *\n * This value will be a non-null string if one of your custom stop sequences was\n * generated.\n */\n stop_sequence: string | null;\n\n /**\n * Object type.\n *\n * For Messages, this is always `\"message\"`.\n */\n type: 'message';\n\n /**\n * Billing and rate-limit usage.\n *\n * Anthropic's API bills and rate-limits by token counts, as tokens represent the\n * underlying cost to our systems.\n *\n * Under the hood, the API transforms requests into a format suitable for the\n * model. The model's output then goes through a parsing stage before becoming an\n * API response. As a result, the token counts in `usage` will not match one-to-one\n * with the exact visible content of an API request or response.\n *\n * For example, `output_tokens` will be non-zero, even for an empty string response\n * from Claude.\n *\n * Total input tokens in a request is the summation of `input_tokens`,\n * `cache_creation_input_tokens`, and `cache_read_input_tokens`.\n */\n usage: Usage;\n}\n\n/**\n * Code execution tool with REPL state persistence (daemon mode + gVisor\n * checkpoint).\n */\nexport type MessageCountTokensTool =\n | Tool\n | ToolBash20250124\n | CodeExecutionTool20250522\n | CodeExecutionTool20250825\n | CodeExecutionTool20260120\n | MemoryTool20250818\n | ToolTextEditor20250124\n | ToolTextEditor20250429\n | ToolTextEditor20250728\n | WebSearchTool20250305\n | WebFetchTool20250910\n | WebSearchTool20260209\n | WebFetchTool20260209\n | WebFetchTool20260309\n | ToolSearchToolBm25_20251119\n | ToolSearchToolRegex20251119;\n\nexport interface MessageDeltaUsage {\n /**\n * The cumulative number of input tokens used to create the cache entry.\n */\n cache_creation_input_tokens: number | null;\n\n /**\n * The cumulative number of input tokens read from the cache.\n */\n cache_read_input_tokens: number | null;\n\n /**\n * The cumulative number of input tokens which were used.\n */\n input_tokens: number | null;\n\n /**\n * The cumulative number of output tokens which were used.\n */\n output_tokens: number;\n\n /**\n * The number of server tool requests.\n */\n server_tool_use: ServerToolUsage | null;\n}\n\nexport interface MessageParam {\n content: string | Array<ContentBlockParam>;\n\n role: 'user' | 'assistant';\n}\n\nexport interface MessageTokensCount {\n /**\n * The total number of tokens across the provided list of messages, system prompt,\n * and tools.\n */\n input_tokens: number;\n}\n\nexport interface Metadata {\n /**\n * An external identifier for the user who is associated with the request.\n *\n * This should be a uuid, hash value, or other opaque identifier. Anthropic may use\n * this id to help detect abuse. Do not include any identifying information such as\n * name, email address, or phone number.\n */\n user_id?: string | null;\n}\n\n/**\n * The model that will complete your prompt.\\n\\nSee\n * [models](https://docs.anthropic.com/en/docs/models-overview) for additional\n * details and options.\n */\nexport type Model =\n | 'claude-opus-4-6'\n | 'claude-sonnet-4-6'\n | 'claude-haiku-4-5'\n | 'claude-haiku-4-5-20251001'\n | 'claude-opus-4-5'\n | 'claude-opus-4-5-20251101'\n | 'claude-sonnet-4-5'\n | 'claude-sonnet-4-5-20250929'\n | 'claude-opus-4-1'\n | 'claude-opus-4-1-20250805'\n | 'claude-opus-4-0'\n | 'claude-opus-4-20250514'\n | 'claude-sonnet-4-0'\n | 'claude-sonnet-4-20250514'\n | 'claude-3-haiku-20240307'\n | (string & {});\n\nexport interface OutputConfig {\n /**\n * All possible effort levels.\n */\n effort?: 'low' | 'medium' | 'high' | 'max' | null;\n\n /**\n * A schema to specify Claude's output format in responses. See\n * [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs)\n */\n format?: JSONOutputFormat | null;\n}\n\nconst DEPRECATED_MODELS: {\n [K in Model]?: string;\n} = {\n 'claude-1.3': 'November 6th, 2024',\n 'claude-1.3-100k': 'November 6th, 2024',\n 'claude-instant-1.1': 'November 6th, 2024',\n 'claude-instant-1.1-100k': 'November 6th, 2024',\n 'claude-instant-1.2': 'November 6th, 2024',\n 'claude-3-sonnet-20240229': 'July 21st, 2025',\n 'claude-3-opus-20240229': 'January 5th, 2026',\n 'claude-2.1': 'July 21st, 2025',\n 'claude-2.0': 'July 21st, 2025',\n 'claude-3-7-sonnet-latest': 'February 19th, 2026',\n 'claude-3-7-sonnet-20250219': 'February 19th, 2026',\n 'claude-3-5-haiku-latest': 'February 19th, 2026',\n 'claude-3-5-haiku-20241022': 'February 19th, 2026',\n};\n\nconst MODELS_TO_WARN_WITH_THINKING_ENABLED: Model[] = ['claude-opus-4-6'];\n\nexport interface PlainTextSource {\n data: string;\n\n media_type: 'text/plain';\n\n type: 'text';\n}\n\nexport type RawContentBlockDelta =\n | TextDelta\n | InputJSONDelta\n | CitationsDelta\n | ThinkingDelta\n | SignatureDelta;\n\nexport interface RawContentBlockDeltaEvent {\n delta: RawContentBlockDelta;\n\n index: number;\n\n type: 'content_block_delta';\n}\n\nexport interface RawContentBlockStartEvent {\n /**\n * Response model for a file uploaded to the container.\n */\n content_block:\n | TextBlock\n | ThinkingBlock\n | RedactedThinkingBlock\n | ToolUseBlock\n | ServerToolUseBlock\n | WebSearchToolResultBlock\n | WebFetchToolResultBlock\n | CodeExecutionToolResultBlock\n | BashCodeExecutionToolResultBlock\n | TextEditorCodeExecutionToolResultBlock\n | ToolSearchToolResultBlock\n | ContainerUploadBlock;\n\n index: number;\n\n type: 'content_block_start';\n}\n\nexport interface RawContentBlockStopEvent {\n index: number;\n\n type: 'content_block_stop';\n}\n\nexport interface RawMessageDeltaEvent {\n delta: RawMessageDeltaEvent.Delta;\n\n type: 'message_delta';\n\n /**\n * Billing and rate-limit usage.\n *\n * Anthropic's API bills and rate-limits by token counts, as tokens represent the\n * underlying cost to our systems.\n *\n * Under the hood, the API transforms requests into a format suitable for the\n * model. The model's output then goes through a parsing stage before becoming an\n * API response. As a result, the token counts in `usage` will not match one-to-one\n * with the exact visible content of an API request or response.\n *\n * For example, `output_tokens` will be non-zero, even for an empty string response\n * from Claude.\n *\n * Total input tokens in a request is the summation of `input_tokens`,\n * `cache_creation_input_tokens`, and `cache_read_input_tokens`.\n */\n usage: MessageDeltaUsage;\n}\n\nexport namespace RawMessageDeltaEvent {\n export interface Delta {\n /**\n * Information about the container used in the request (for the code execution\n * tool)\n */\n container: MessagesAPI.Container | null;\n\n stop_reason: MessagesAPI.StopReason | null;\n\n stop_sequence: string | null;\n }\n}\n\nexport interface RawMessageStartEvent {\n message: Message;\n\n type: 'message_start';\n}\n\nexport interface RawMessageStopEvent {\n type: 'message_stop';\n}\n\nexport type RawMessageStreamEvent =\n | RawMessageStartEvent\n | RawMessageDeltaEvent\n | RawMessageStopEvent\n | RawContentBlockStartEvent\n | RawContentBlockDeltaEvent\n | RawContentBlockStopEvent;\n\nexport interface RedactedThinkingBlock {\n data: string;\n\n type: 'redacted_thinking';\n}\n\nexport interface RedactedThinkingBlockParam {\n data: string;\n\n type: 'redacted_thinking';\n}\n\nexport interface SearchResultBlockParam {\n content: Array<TextBlockParam>;\n\n source: string;\n\n title: string;\n\n type: 'search_result';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n citations?: CitationsConfigParam;\n}\n\n/**\n * Tool invocation generated by a server-side tool.\n */\nexport interface ServerToolCaller {\n tool_id: string;\n\n type: 'code_execution_20250825';\n}\n\nexport interface ServerToolCaller20260120 {\n tool_id: string;\n\n type: 'code_execution_20260120';\n}\n\nexport interface ServerToolUsage {\n /**\n * The number of web fetch tool requests.\n */\n web_fetch_requests: number;\n\n /**\n * The number of web search tool requests.\n */\n web_search_requests: number;\n}\n\nexport interface ServerToolUseBlock {\n id: string;\n\n /**\n * Tool invocation directly from the model.\n */\n caller: DirectCaller | ServerToolCaller | ServerToolCaller20260120;\n\n input: unknown;\n\n name:\n | 'web_search'\n | 'web_fetch'\n | 'code_execution'\n | 'bash_code_execution'\n | 'text_editor_code_execution'\n | 'tool_search_tool_regex'\n | 'tool_search_tool_bm25';\n\n type: 'server_tool_use';\n}\n\nexport interface ServerToolUseBlockParam {\n id: string;\n\n input: unknown;\n\n name:\n | 'web_search'\n | 'web_fetch'\n | 'code_execution'\n | 'bash_code_execution'\n | 'text_editor_code_execution'\n | 'tool_search_tool_regex'\n | 'tool_search_tool_bm25';\n\n type: 'server_tool_use';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Tool invocation directly from the model.\n */\n caller?: DirectCaller | ServerToolCaller | ServerToolCaller20260120;\n}\n\nexport interface SignatureDelta {\n signature: string;\n\n type: 'signature_delta';\n}\n\nexport type StopReason = 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use' | 'pause_turn' | 'refusal';\n\nexport interface TextBlock {\n /**\n * Citations supporting the text block.\n *\n * The type of citation returned will depend on the type of document being cited.\n * Citing a PDF results in `page_location`, plain text results in `char_location`,\n * and content document results in `content_block_location`.\n */\n citations: Array<TextCitation> | null;\n\n text: string;\n\n type: 'text';\n}\n\nexport interface TextBlockParam {\n text: string;\n\n type: 'text';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n citations?: Array<TextCitationParam> | null;\n}\n\nexport type TextCitation =\n | CitationCharLocation\n | CitationPageLocation\n | CitationContentBlockLocation\n | CitationsWebSearchResultLocation\n | CitationsSearchResultLocation;\n\nexport type TextCitationParam =\n | CitationCharLocationParam\n | CitationPageLocationParam\n | CitationContentBlockLocationParam\n | CitationWebSearchResultLocationParam\n | CitationSearchResultLocationParam;\n\nexport interface TextDelta {\n text: string;\n\n type: 'text_delta';\n}\n\nexport interface TextEditorCodeExecutionCreateResultBlock {\n is_file_update: boolean;\n\n type: 'text_editor_code_execution_create_result';\n}\n\nexport interface TextEditorCodeExecutionCreateResultBlockParam {\n is_file_update: boolean;\n\n type: 'text_editor_code_execution_create_result';\n}\n\nexport interface TextEditorCodeExecutionStrReplaceResultBlock {\n lines: Array<string> | null;\n\n new_lines: number | null;\n\n new_start: number | null;\n\n old_lines: number | null;\n\n old_start: number | null;\n\n type: 'text_editor_code_execution_str_replace_result';\n}\n\nexport interface TextEditorCodeExecutionStrReplaceResultBlockParam {\n type: 'text_editor_code_execution_str_replace_result';\n\n lines?: Array<string> | null;\n\n new_lines?: number | null;\n\n new_start?: number | null;\n\n old_lines?: number | null;\n\n old_start?: number | null;\n}\n\nexport interface TextEditorCodeExecutionToolResultBlock {\n content:\n | TextEditorCodeExecutionToolResultError\n | TextEditorCodeExecutionViewResultBlock\n | TextEditorCodeExecutionCreateResultBlock\n | TextEditorCodeExecutionStrReplaceResultBlock;\n\n tool_use_id: string;\n\n type: 'text_editor_code_execution_tool_result';\n}\n\nexport interface TextEditorCodeExecutionToolResultBlockParam {\n content:\n | TextEditorCodeExecutionToolResultErrorParam\n | TextEditorCodeExecutionViewResultBlockParam\n | TextEditorCodeExecutionCreateResultBlockParam\n | TextEditorCodeExecutionStrReplaceResultBlockParam;\n\n tool_use_id: string;\n\n type: 'text_editor_code_execution_tool_result';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n}\n\nexport interface TextEditorCodeExecutionToolResultError {\n error_code: TextEditorCodeExecutionToolResultErrorCode;\n\n error_message: string | null;\n\n type: 'text_editor_code_execution_tool_result_error';\n}\n\nexport type TextEditorCodeExecutionToolResultErrorCode =\n | 'invalid_tool_input'\n | 'unavailable'\n | 'too_many_requests'\n | 'execution_time_exceeded'\n | 'file_not_found';\n\nexport interface TextEditorCodeExecutionToolResultErrorParam {\n error_code: TextEditorCodeExecutionToolResultErrorCode;\n\n type: 'text_editor_code_execution_tool_result_error';\n\n error_message?: string | null;\n}\n\nexport interface TextEditorCodeExecutionViewResultBlock {\n content: string;\n\n file_type: 'text' | 'image' | 'pdf';\n\n num_lines: number | null;\n\n start_line: number | null;\n\n total_lines: number | null;\n\n type: 'text_editor_code_execution_view_result';\n}\n\nexport interface TextEditorCodeExecutionViewResultBlockParam {\n content: string;\n\n file_type: 'text' | 'image' | 'pdf';\n\n type: 'text_editor_code_execution_view_result';\n\n num_lines?: number | null;\n\n start_line?: number | null;\n\n total_lines?: number | null;\n}\n\nexport interface ThinkingBlock {\n signature: string;\n\n thinking: string;\n\n type: 'thinking';\n}\n\nexport interface ThinkingBlockParam {\n signature: string;\n\n thinking: string;\n\n type: 'thinking';\n}\n\nexport interface ThinkingConfigAdaptive {\n type: 'adaptive';\n\n /**\n * Controls how thinking content appears in the response. When set to `summarized`,\n * thinking is returned normally. When set to `omitted`, thinking content is\n * redacted but a signature is returned for multi-turn continuity. Defaults to\n * `summarized`.\n */\n display?: 'summarized' | 'omitted' | null;\n}\n\nexport interface ThinkingConfigDisabled {\n type: 'disabled';\n}\n\nexport interface ThinkingConfigEnabled {\n /**\n * Determines how many tokens Claude can use for its internal reasoning process.\n * Larger budgets can enable more thorough analysis for complex problems, improving\n * response quality.\n *\n * Must be ≥1024 and less than `max_tokens`.\n *\n * See\n * [extended thinking](https://docs.claude.com/en/docs/build-with-claude/extended-thinking)\n * for details.\n */\n budget_tokens: number;\n\n type: 'enabled';\n\n /**\n * Controls how thinking content appears in the response. When set to `summarized`,\n * thinking is returned normally. When set to `omitted`, thinking content is\n * redacted but a signature is returned for multi-turn continuity. Defaults to\n * `summarized`.\n */\n display?: 'summarized' | 'omitted' | null;\n}\n\n/**\n * Configuration for enabling Claude's extended thinking.\n *\n * When enabled, responses include `thinking` content blocks showing Claude's\n * thinking process before the final answer. Requires a minimum budget of 1,024\n * tokens and counts towards your `max_tokens` limit.\n *\n * See\n * [extended thinking](https://docs.claude.com/en/docs/build-with-claude/extended-thinking)\n * for details.\n */\nexport type ThinkingConfigParam = ThinkingConfigEnabled | ThinkingConfigDisabled | ThinkingConfigAdaptive;\n\nexport interface ThinkingDelta {\n thinking: string;\n\n type: 'thinking_delta';\n}\n\nexport interface Tool {\n /**\n * [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input.\n *\n * This defines the shape of the `input` that your tool accepts and that the model\n * will produce.\n */\n input_schema: Tool.InputSchema;\n\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: string;\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * Description of what this tool does.\n *\n * Tool descriptions should be as detailed as possible. The more information that\n * the model has about what the tool is and how to use it, the better it will\n * perform. You can use natural language descriptions to reinforce important\n * aspects of the tool input JSON schema.\n */\n description?: string;\n\n /**\n * Enable eager input streaming for this tool. When true, tool input parameters\n * will be streamed incrementally as they are generated, and types will be inferred\n * on-the-fly rather than buffering the full JSON output. When false, streaming is\n * disabled for this tool even if the fine-grained-tool-streaming beta is active.\n * When null (default), uses the default behavior based on beta headers.\n */\n eager_input_streaming?: boolean | null;\n\n input_examples?: Array<{ [key: string]: unknown }>;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n\n type?: 'custom' | null;\n}\n\nexport namespace Tool {\n /**\n * [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input.\n *\n * This defines the shape of the `input` that your tool accepts and that the model\n * will produce.\n */\n export interface InputSchema {\n type: 'object';\n\n properties?: unknown | null;\n\n required?: Array<string> | null;\n\n [k: string]: unknown;\n }\n}\n\nexport interface ToolBash20250124 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'bash';\n\n type: 'bash_20250124';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n input_examples?: Array<{ [key: string]: unknown }>;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\n/**\n * How the model should use the provided tools. The model can use a specific tool,\n * any available tool, decide by itself, or not use tools at all.\n */\nexport type ToolChoice = ToolChoiceAuto | ToolChoiceAny | ToolChoiceTool | ToolChoiceNone;\n\n/**\n * The model will use any available tools.\n */\nexport interface ToolChoiceAny {\n type: 'any';\n\n /**\n * Whether to disable parallel tool use.\n *\n * Defaults to `false`. If set to `true`, the model will output exactly one tool\n * use.\n */\n disable_parallel_tool_use?: boolean;\n}\n\n/**\n * The model will automatically decide whether to use tools.\n */\nexport interface ToolChoiceAuto {\n type: 'auto';\n\n /**\n * Whether to disable parallel tool use.\n *\n * Defaults to `false`. If set to `true`, the model will output at most one tool\n * use.\n */\n disable_parallel_tool_use?: boolean;\n}\n\n/**\n * The model will not be allowed to use tools.\n */\nexport interface ToolChoiceNone {\n type: 'none';\n}\n\n/**\n * The model will use the specified tool with `tool_choice.name`.\n */\nexport interface ToolChoiceTool {\n /**\n * The name of the tool to use.\n */\n name: string;\n\n type: 'tool';\n\n /**\n * Whether to disable parallel tool use.\n *\n * Defaults to `false`. If set to `true`, the model will output exactly one tool\n * use.\n */\n disable_parallel_tool_use?: boolean;\n}\n\nexport interface ToolReferenceBlock {\n tool_name: string;\n\n type: 'tool_reference';\n}\n\n/**\n * Tool reference block that can be included in tool_result content.\n */\nexport interface ToolReferenceBlockParam {\n tool_name: string;\n\n type: 'tool_reference';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n}\n\nexport interface ToolResultBlockParam {\n tool_use_id: string;\n\n type: 'tool_result';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n content?:\n | string\n | Array<\n | TextBlockParam\n | ImageBlockParam\n | SearchResultBlockParam\n | DocumentBlockParam\n | ToolReferenceBlockParam\n >;\n\n is_error?: boolean;\n}\n\nexport interface ToolSearchToolBm25_20251119 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'tool_search_tool_bm25';\n\n type: 'tool_search_tool_bm25_20251119' | 'tool_search_tool_bm25';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\nexport interface ToolSearchToolRegex20251119 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'tool_search_tool_regex';\n\n type: 'tool_search_tool_regex_20251119' | 'tool_search_tool_regex';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\nexport interface ToolSearchToolResultBlock {\n content: ToolSearchToolResultError | ToolSearchToolSearchResultBlock;\n\n tool_use_id: string;\n\n type: 'tool_search_tool_result';\n}\n\nexport interface ToolSearchToolResultBlockParam {\n content: ToolSearchToolResultErrorParam | ToolSearchToolSearchResultBlockParam;\n\n tool_use_id: string;\n\n type: 'tool_search_tool_result';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n}\n\nexport interface ToolSearchToolResultError {\n error_code: ToolSearchToolResultErrorCode;\n\n error_message: string | null;\n\n type: 'tool_search_tool_result_error';\n}\n\nexport type ToolSearchToolResultErrorCode =\n | 'invalid_tool_input'\n | 'unavailable'\n | 'too_many_requests'\n | 'execution_time_exceeded';\n\nexport interface ToolSearchToolResultErrorParam {\n error_code: ToolSearchToolResultErrorCode;\n\n type: 'tool_search_tool_result_error';\n}\n\nexport interface ToolSearchToolSearchResultBlock {\n tool_references: Array<ToolReferenceBlock>;\n\n type: 'tool_search_tool_search_result';\n}\n\nexport interface ToolSearchToolSearchResultBlockParam {\n tool_references: Array<ToolReferenceBlockParam>;\n\n type: 'tool_search_tool_search_result';\n}\n\nexport interface ToolTextEditor20250124 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'str_replace_editor';\n\n type: 'text_editor_20250124';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n input_examples?: Array<{ [key: string]: unknown }>;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\nexport interface ToolTextEditor20250429 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'str_replace_based_edit_tool';\n\n type: 'text_editor_20250429';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n input_examples?: Array<{ [key: string]: unknown }>;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\nexport interface ToolTextEditor20250728 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'str_replace_based_edit_tool';\n\n type: 'text_editor_20250728';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n input_examples?: Array<{ [key: string]: unknown }>;\n\n /**\n * Maximum number of characters to display when viewing a file. If not specified,\n * defaults to displaying the full file.\n */\n max_characters?: number | null;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\n/**\n * Code execution tool with REPL state persistence (daemon mode + gVisor\n * checkpoint).\n */\nexport type ToolUnion =\n | Tool\n | ToolBash20250124\n | CodeExecutionTool20250522\n | CodeExecutionTool20250825\n | CodeExecutionTool20260120\n | MemoryTool20250818\n | ToolTextEditor20250124\n | ToolTextEditor20250429\n | ToolTextEditor20250728\n | WebSearchTool20250305\n | WebFetchTool20250910\n | WebSearchTool20260209\n | WebFetchTool20260209\n | WebFetchTool20260309\n | ToolSearchToolBm25_20251119\n | ToolSearchToolRegex20251119;\n\nexport interface ToolUseBlock {\n id: string;\n\n /**\n * Tool invocation directly from the model.\n */\n caller: DirectCaller | ServerToolCaller | ServerToolCaller20260120;\n\n input: unknown;\n\n name: string;\n\n type: 'tool_use';\n}\n\nexport interface ToolUseBlockParam {\n id: string;\n\n input: unknown;\n\n name: string;\n\n type: 'tool_use';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Tool invocation directly from the model.\n */\n caller?: DirectCaller | ServerToolCaller | ServerToolCaller20260120;\n}\n\nexport interface URLImageSource {\n type: 'url';\n\n url: string;\n}\n\nexport interface URLPDFSource {\n type: 'url';\n\n url: string;\n}\n\nexport interface Usage {\n /**\n * Breakdown of cached tokens by TTL\n */\n cache_creation: CacheCreation | null;\n\n /**\n * The number of input tokens used to create the cache entry.\n */\n cache_creation_input_tokens: number | null;\n\n /**\n * The number of input tokens read from the cache.\n */\n cache_read_input_tokens: number | null;\n\n /**\n * The geographic region where inference was performed for this request.\n */\n inference_geo: string | null;\n\n /**\n * The number of input tokens which were used.\n */\n input_tokens: number;\n\n /**\n * The number of output tokens which were used.\n */\n output_tokens: number;\n\n /**\n * The number of server tool requests.\n */\n server_tool_use: ServerToolUsage | null;\n\n /**\n * If the request used the priority, standard, or batch tier.\n */\n service_tier: 'standard' | 'priority' | 'batch' | null;\n}\n\nexport interface UserLocation {\n type: 'approximate';\n\n /**\n * The city of the user.\n */\n city?: string | null;\n\n /**\n * The two letter\n * [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the\n * user.\n */\n country?: string | null;\n\n /**\n * The region of the user.\n */\n region?: string | null;\n\n /**\n * The [IANA timezone](https://nodatime.org/TimeZones) of the user.\n */\n timezone?: string | null;\n}\n\nexport interface WebFetchBlock {\n content: DocumentBlock;\n\n /**\n * ISO 8601 timestamp when the content was retrieved\n */\n retrieved_at: string | null;\n\n type: 'web_fetch_result';\n\n /**\n * Fetched content URL\n */\n url: string;\n}\n\nexport interface WebFetchBlockParam {\n content: DocumentBlockParam;\n\n type: 'web_fetch_result';\n\n /**\n * Fetched content URL\n */\n url: string;\n\n /**\n * ISO 8601 timestamp when the content was retrieved\n */\n retrieved_at?: string | null;\n}\n\nexport interface WebFetchTool20250910 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'web_fetch';\n\n type: 'web_fetch_20250910';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * List of domains to allow fetching from\n */\n allowed_domains?: Array<string> | null;\n\n /**\n * List of domains to block fetching from\n */\n blocked_domains?: Array<string> | null;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Citations configuration for fetched documents. Citations are disabled by\n * default.\n */\n citations?: CitationsConfigParam | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * Maximum number of tokens used by including web page text content in the context.\n * The limit is approximate and does not apply to binary content such as PDFs.\n */\n max_content_tokens?: number | null;\n\n /**\n * Maximum number of times the tool can be used in the API request.\n */\n max_uses?: number | null;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\nexport interface WebFetchTool20260209 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'web_fetch';\n\n type: 'web_fetch_20260209';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * List of domains to allow fetching from\n */\n allowed_domains?: Array<string> | null;\n\n /**\n * List of domains to block fetching from\n */\n blocked_domains?: Array<string> | null;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Citations configuration for fetched documents. Citations are disabled by\n * default.\n */\n citations?: CitationsConfigParam | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * Maximum number of tokens used by including web page text content in the context.\n * The limit is approximate and does not apply to binary content such as PDFs.\n */\n max_content_tokens?: number | null;\n\n /**\n * Maximum number of times the tool can be used in the API request.\n */\n max_uses?: number | null;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n}\n\n/**\n * Web fetch tool with use_cache parameter for bypassing cached content.\n */\nexport interface WebFetchTool20260309 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'web_fetch';\n\n type: 'web_fetch_20260309';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * List of domains to allow fetching from\n */\n allowed_domains?: Array<string> | null;\n\n /**\n * List of domains to block fetching from\n */\n blocked_domains?: Array<string> | null;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Citations configuration for fetched documents. Citations are disabled by\n * default.\n */\n citations?: CitationsConfigParam | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * Maximum number of tokens used by including web page text content in the context.\n * The limit is approximate and does not apply to binary content such as PDFs.\n */\n max_content_tokens?: number | null;\n\n /**\n * Maximum number of times the tool can be used in the API request.\n */\n max_uses?: number | null;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n\n /**\n * Whether to use cached content. Set to false to bypass the cache and fetch fresh\n * content. Only set to false when the user explicitly requests fresh content or\n * when fetching rapidly-changing sources.\n */\n use_cache?: boolean;\n}\n\nexport interface WebFetchToolResultBlock {\n /**\n * Tool invocation directly from the model.\n */\n caller: DirectCaller | ServerToolCaller | ServerToolCaller20260120;\n\n content: WebFetchToolResultErrorBlock | WebFetchBlock;\n\n tool_use_id: string;\n\n type: 'web_fetch_tool_result';\n}\n\nexport interface WebFetchToolResultBlockParam {\n content: WebFetchToolResultErrorBlockParam | WebFetchBlockParam;\n\n tool_use_id: string;\n\n type: 'web_fetch_tool_result';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Tool invocation directly from the model.\n */\n caller?: DirectCaller | ServerToolCaller | ServerToolCaller20260120;\n}\n\nexport interface WebFetchToolResultErrorBlock {\n error_code: WebFetchToolResultErrorCode;\n\n type: 'web_fetch_tool_result_error';\n}\n\nexport interface WebFetchToolResultErrorBlockParam {\n error_code: WebFetchToolResultErrorCode;\n\n type: 'web_fetch_tool_result_error';\n}\n\nexport type WebFetchToolResultErrorCode =\n | 'invalid_tool_input'\n | 'url_too_long'\n | 'url_not_allowed'\n | 'url_not_accessible'\n | 'unsupported_content_type'\n | 'too_many_requests'\n | 'max_uses_exceeded'\n | 'unavailable';\n\nexport interface WebSearchResultBlock {\n encrypted_content: string;\n\n page_age: string | null;\n\n title: string;\n\n type: 'web_search_result';\n\n url: string;\n}\n\nexport interface WebSearchResultBlockParam {\n encrypted_content: string;\n\n title: string;\n\n type: 'web_search_result';\n\n url: string;\n\n page_age?: string | null;\n}\n\nexport interface WebSearchTool20250305 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'web_search';\n\n type: 'web_search_20250305';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * If provided, only these domains will be included in results. Cannot be used\n * alongside `blocked_domains`.\n */\n allowed_domains?: Array<string> | null;\n\n /**\n * If provided, these domains will never appear in results. Cannot be used\n * alongside `allowed_domains`.\n */\n blocked_domains?: Array<string> | null;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * Maximum number of times the tool can be used in the API request.\n */\n max_uses?: number | null;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n\n /**\n * Parameters for the user's location. Used to provide more relevant search\n * results.\n */\n user_location?: UserLocation | null;\n}\n\n// backward compat\nexport namespace WebSearchTool20250305 {\n /**\n * @deprecated Import `UserLocation` from `anthropic` directly instead of using\n * `WebSearchTool20250305.UserLocation`.\n */\n export type UserLocation = Messages.UserLocation;\n}\n\nexport interface WebSearchTool20260209 {\n /**\n * Name of the tool.\n *\n * This is how the tool will be called by the model and in `tool_use` blocks.\n */\n name: 'web_search';\n\n type: 'web_search_20260209';\n\n allowed_callers?: Array<'direct' | 'code_execution_20250825' | 'code_execution_20260120'>;\n\n /**\n * If provided, only these domains will be included in results. Cannot be used\n * alongside `blocked_domains`.\n */\n allowed_domains?: Array<string> | null;\n\n /**\n * If provided, these domains will never appear in results. Cannot be used\n * alongside `allowed_domains`.\n */\n blocked_domains?: Array<string> | null;\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * If true, tool will not be included in initial system prompt. Only loaded when\n * returned via tool_reference from tool search.\n */\n defer_loading?: boolean;\n\n /**\n * Maximum number of times the tool can be used in the API request.\n */\n max_uses?: number | null;\n\n /**\n * When true, guarantees schema validation on tool names and inputs\n */\n strict?: boolean;\n\n /**\n * Parameters for the user's location. Used to provide more relevant search\n * results.\n */\n user_location?: UserLocation | null;\n}\n\n// backward compat\nexport namespace WebSearchTool20260209 {\n /**\n * @deprecated Import `UserLocation` from `anthropic` directly instead of using\n * `WebSearchTool20260209.UserLocation`.\n */\n export type UserLocation = Messages.UserLocation;\n}\n\nexport interface WebSearchToolRequestError {\n error_code: WebSearchToolResultErrorCode;\n\n type: 'web_search_tool_result_error';\n}\n\nexport interface WebSearchToolResultBlock {\n /**\n * Tool invocation directly from the model.\n */\n caller: DirectCaller | ServerToolCaller | ServerToolCaller20260120;\n\n content: WebSearchToolResultBlockContent;\n\n tool_use_id: string;\n\n type: 'web_search_tool_result';\n}\n\nexport type WebSearchToolResultBlockContent = WebSearchToolResultError | Array<WebSearchResultBlock>;\n\nexport interface WebSearchToolResultBlockParam {\n content: WebSearchToolResultBlockParamContent;\n\n tool_use_id: string;\n\n type: 'web_search_tool_result';\n\n /**\n * Create a cache control breakpoint at this content block.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Tool invocation directly from the model.\n */\n caller?: DirectCaller | ServerToolCaller | ServerToolCaller20260120;\n}\n\nexport type WebSearchToolResultBlockParamContent =\n | Array<WebSearchResultBlockParam>\n | WebSearchToolRequestError;\n\nexport interface WebSearchToolResultError {\n error_code: WebSearchToolResultErrorCode;\n\n type: 'web_search_tool_result_error';\n}\n\nexport type WebSearchToolResultErrorCode =\n | 'invalid_tool_input'\n | 'unavailable'\n | 'max_uses_exceeded'\n | 'too_many_requests'\n | 'query_too_long'\n | 'request_too_large';\n\nexport type MessageStreamEvent = RawMessageStreamEvent;\n\nexport type MessageStartEvent = RawMessageStartEvent;\n\nexport type MessageDeltaEvent = RawMessageDeltaEvent;\n\nexport type MessageStopEvent = RawMessageStopEvent;\n\nexport type ContentBlockStartEvent = RawContentBlockStartEvent;\n\nexport type ContentBlockDeltaEvent = RawContentBlockDeltaEvent;\n\nexport type ContentBlockStopEvent = RawContentBlockStopEvent;\n\nexport type MessageCreateParams = MessageCreateParamsNonStreaming | MessageCreateParamsStreaming;\n\nexport interface MessageCreateParamsBase {\n /**\n * The maximum number of tokens to generate before stopping.\n *\n * Note that our models may stop _before_ reaching this maximum. This parameter\n * only specifies the absolute maximum number of tokens to generate.\n *\n * Different models have different maximum values for this parameter. See\n * [models](https://docs.claude.com/en/docs/models-overview) for details.\n */\n max_tokens: number;\n\n /**\n * Input messages.\n *\n * Our models are trained to operate on alternating `user` and `assistant`\n * conversational turns. When creating a new `Message`, you specify the prior\n * conversational turns with the `messages` parameter, and the model then generates\n * the next `Message` in the conversation. Consecutive `user` or `assistant` turns\n * in your request will be combined into a single turn.\n *\n * Each input message must be an object with a `role` and `content`. You can\n * specify a single `user`-role message, or you can include multiple `user` and\n * `assistant` messages.\n *\n * If the final message uses the `assistant` role, the response content will\n * continue immediately from the content in that message. This can be used to\n * constrain part of the model's response.\n *\n * Example with a single `user` message:\n *\n * ```json\n * [{ \"role\": \"user\", \"content\": \"Hello, Claude\" }]\n * ```\n *\n * Example with multiple conversational turns:\n *\n * ```json\n * [\n * { \"role\": \"user\", \"content\": \"Hello there.\" },\n * { \"role\": \"assistant\", \"content\": \"Hi, I'm Claude. How can I help you?\" },\n * { \"role\": \"user\", \"content\": \"Can you explain LLMs in plain English?\" }\n * ]\n * ```\n *\n * Example with a partially-filled response from Claude:\n *\n * ```json\n * [\n * {\n * \"role\": \"user\",\n * \"content\": \"What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun\"\n * },\n * { \"role\": \"assistant\", \"content\": \"The best answer is (\" }\n * ]\n * ```\n *\n * Each input message `content` may be either a single `string` or an array of\n * content blocks, where each block has a specific `type`. Using a `string` for\n * `content` is shorthand for an array of one content block of type `\"text\"`. The\n * following input messages are equivalent:\n *\n * ```json\n * { \"role\": \"user\", \"content\": \"Hello, Claude\" }\n * ```\n *\n * ```json\n * { \"role\": \"user\", \"content\": [{ \"type\": \"text\", \"text\": \"Hello, Claude\" }] }\n * ```\n *\n * See [input examples](https://docs.claude.com/en/api/messages-examples).\n *\n * Note that if you want to include a\n * [system prompt](https://docs.claude.com/en/docs/system-prompts), you can use the\n * top-level `system` parameter — there is no `\"system\"` role for input messages in\n * the Messages API.\n *\n * There is a limit of 100,000 messages in a single request.\n */\n messages: Array<MessageParam>;\n\n /**\n * The model that will complete your prompt.\\n\\nSee\n * [models](https://docs.anthropic.com/en/docs/models-overview) for additional\n * details and options.\n */\n model: Model;\n\n /**\n * Top-level cache control automatically applies a cache_control marker to the last\n * cacheable block in the request.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Container identifier for reuse across requests.\n */\n container?: string | null;\n\n /**\n * Specifies the geographic region for inference processing. If not specified, the\n * workspace's `default_inference_geo` is used.\n */\n inference_geo?: string | null;\n\n /**\n * An object describing metadata about the request.\n */\n metadata?: Metadata;\n\n /**\n * Configuration options for the model's output, such as the output format.\n */\n output_config?: OutputConfig;\n\n /**\n * Determines whether to use priority capacity (if available) or standard capacity\n * for this request.\n *\n * Anthropic offers different levels of service for your API requests. See\n * [service-tiers](https://docs.claude.com/en/api/service-tiers) for details.\n */\n service_tier?: 'auto' | 'standard_only';\n\n /**\n * Custom text sequences that will cause the model to stop generating.\n *\n * Our models will normally stop when they have naturally completed their turn,\n * which will result in a response `stop_reason` of `\"end_turn\"`.\n *\n * If you want the model to stop generating when it encounters custom strings of\n * text, you can use the `stop_sequences` parameter. If the model encounters one of\n * the custom sequences, the response `stop_reason` value will be `\"stop_sequence\"`\n * and the response `stop_sequence` value will contain the matched stop sequence.\n */\n stop_sequences?: Array<string>;\n\n /**\n * Whether to incrementally stream the response using server-sent events.\n *\n * See [streaming](https://docs.claude.com/en/api/messages-streaming) for details.\n */\n stream?: boolean;\n\n /**\n * System prompt.\n *\n * A system prompt is a way of providing context and instructions to Claude, such\n * as specifying a particular goal or role. See our\n * [guide to system prompts](https://docs.claude.com/en/docs/system-prompts).\n */\n system?: string | Array<TextBlockParam>;\n\n /**\n * Amount of randomness injected into the response.\n *\n * Defaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0`\n * for analytical / multiple choice, and closer to `1.0` for creative and\n * generative tasks.\n *\n * Note that even with `temperature` of `0.0`, the results will not be fully\n * deterministic.\n */\n temperature?: number;\n\n /**\n * Configuration for enabling Claude's extended thinking.\n *\n * When enabled, responses include `thinking` content blocks showing Claude's\n * thinking process before the final answer. Requires a minimum budget of 1,024\n * tokens and counts towards your `max_tokens` limit.\n *\n * See\n * [extended thinking](https://docs.claude.com/en/docs/build-with-claude/extended-thinking)\n * for details.\n */\n thinking?: ThinkingConfigParam;\n\n /**\n * How the model should use the provided tools. The model can use a specific tool,\n * any available tool, decide by itself, or not use tools at all.\n */\n tool_choice?: ToolChoice;\n\n /**\n * Definitions of tools that the model may use.\n *\n * If you include `tools` in your API request, the model may return `tool_use`\n * content blocks that represent the model's use of those tools. You can then run\n * those tools using the tool input generated by the model and then optionally\n * return results back to the model using `tool_result` content blocks.\n *\n * There are two types of tools: **client tools** and **server tools**. The\n * behavior described below applies to client tools. For\n * [server tools](https://docs.claude.com/en/docs/agents-and-tools/tool-use/overview#server-tools),\n * see their individual documentation as each has its own behavior (e.g., the\n * [web search tool](https://docs.claude.com/en/docs/agents-and-tools/tool-use/web-search-tool)).\n *\n * Each tool definition includes:\n *\n * - `name`: Name of the tool.\n * - `description`: Optional, but strongly-recommended description of the tool.\n * - `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the\n * tool `input` shape that the model will produce in `tool_use` output content\n * blocks.\n *\n * For example, if you defined `tools` as:\n *\n * ```json\n * [\n * {\n * \"name\": \"get_stock_price\",\n * \"description\": \"Get the current stock price for a given ticker symbol.\",\n * \"input_schema\": {\n * \"type\": \"object\",\n * \"properties\": {\n * \"ticker\": {\n * \"type\": \"string\",\n * \"description\": \"The stock ticker symbol, e.g. AAPL for Apple Inc.\"\n * }\n * },\n * \"required\": [\"ticker\"]\n * }\n * }\n * ]\n * ```\n *\n * And then asked the model \"What's the S&P 500 at today?\", the model might produce\n * `tool_use` content blocks in the response like this:\n *\n * ```json\n * [\n * {\n * \"type\": \"tool_use\",\n * \"id\": \"toolu_01D7FLrfh4GYq7yT1ULFeyMV\",\n * \"name\": \"get_stock_price\",\n * \"input\": { \"ticker\": \"^GSPC\" }\n * }\n * ]\n * ```\n *\n * You might then run your `get_stock_price` tool with `{\"ticker\": \"^GSPC\"}` as an\n * input, and return the following back to the model in a subsequent `user`\n * message:\n *\n * ```json\n * [\n * {\n * \"type\": \"tool_result\",\n * \"tool_use_id\": \"toolu_01D7FLrfh4GYq7yT1ULFeyMV\",\n * \"content\": \"259.75 USD\"\n * }\n * ]\n * ```\n *\n * Tools can be used for workflows that include running client-side tools and\n * functions, or more generally whenever you want the model to produce a particular\n * JSON structure of output.\n *\n * See our [guide](https://docs.claude.com/en/docs/tool-use) for more details.\n */\n tools?: Array<ToolUnion>;\n\n /**\n * Only sample from the top K options for each subsequent token.\n *\n * Used to remove \"long tail\" low probability responses.\n * [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277).\n *\n * Recommended for advanced use cases only. You usually only need to use\n * `temperature`.\n */\n top_k?: number;\n\n /**\n * Use nucleus sampling.\n *\n * In nucleus sampling, we compute the cumulative distribution over all the options\n * for each subsequent token in decreasing probability order and cut it off once it\n * reaches a particular probability specified by `top_p`. You should either alter\n * `temperature` or `top_p`, but not both.\n *\n * Recommended for advanced use cases only. You usually only need to use\n * `temperature`.\n */\n top_p?: number;\n}\n\nexport namespace MessageCreateParams {\n export type MessageCreateParamsNonStreaming = MessagesAPI.MessageCreateParamsNonStreaming;\n export type MessageCreateParamsStreaming = MessagesAPI.MessageCreateParamsStreaming;\n}\n\nexport interface MessageCreateParamsNonStreaming extends MessageCreateParamsBase {\n /**\n * Whether to incrementally stream the response using server-sent events.\n *\n * See [streaming](https://docs.claude.com/en/api/messages-streaming) for details.\n */\n stream?: false;\n}\n\nexport interface MessageCreateParamsStreaming extends MessageCreateParamsBase {\n /**\n * Whether to incrementally stream the response using server-sent events.\n *\n * See [streaming](https://docs.claude.com/en/api/messages-streaming) for details.\n */\n stream: true;\n}\n\nexport type MessageStreamParams = ParseableMessageCreateParams;\n\nexport interface MessageCountTokensParams {\n /**\n * Input messages.\n *\n * Our models are trained to operate on alternating `user` and `assistant`\n * conversational turns. When creating a new `Message`, you specify the prior\n * conversational turns with the `messages` parameter, and the model then generates\n * the next `Message` in the conversation. Consecutive `user` or `assistant` turns\n * in your request will be combined into a single turn.\n *\n * Each input message must be an object with a `role` and `content`. You can\n * specify a single `user`-role message, or you can include multiple `user` and\n * `assistant` messages.\n *\n * If the final message uses the `assistant` role, the response content will\n * continue immediately from the content in that message. This can be used to\n * constrain part of the model's response.\n *\n * Example with a single `user` message:\n *\n * ```json\n * [{ \"role\": \"user\", \"content\": \"Hello, Claude\" }]\n * ```\n *\n * Example with multiple conversational turns:\n *\n * ```json\n * [\n * { \"role\": \"user\", \"content\": \"Hello there.\" },\n * { \"role\": \"assistant\", \"content\": \"Hi, I'm Claude. How can I help you?\" },\n * { \"role\": \"user\", \"content\": \"Can you explain LLMs in plain English?\" }\n * ]\n * ```\n *\n * Example with a partially-filled response from Claude:\n *\n * ```json\n * [\n * {\n * \"role\": \"user\",\n * \"content\": \"What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun\"\n * },\n * { \"role\": \"assistant\", \"content\": \"The best answer is (\" }\n * ]\n * ```\n *\n * Each input message `content` may be either a single `string` or an array of\n * content blocks, where each block has a specific `type`. Using a `string` for\n * `content` is shorthand for an array of one content block of type `\"text\"`. The\n * following input messages are equivalent:\n *\n * ```json\n * { \"role\": \"user\", \"content\": \"Hello, Claude\" }\n * ```\n *\n * ```json\n * { \"role\": \"user\", \"content\": [{ \"type\": \"text\", \"text\": \"Hello, Claude\" }] }\n * ```\n *\n * See [input examples](https://docs.claude.com/en/api/messages-examples).\n *\n * Note that if you want to include a\n * [system prompt](https://docs.claude.com/en/docs/system-prompts), you can use the\n * top-level `system` parameter — there is no `\"system\"` role for input messages in\n * the Messages API.\n *\n * There is a limit of 100,000 messages in a single request.\n */\n messages: Array<MessageParam>;\n\n /**\n * The model that will complete your prompt.\\n\\nSee\n * [models](https://docs.anthropic.com/en/docs/models-overview) for additional\n * details and options.\n */\n model: Model;\n\n /**\n * Top-level cache control automatically applies a cache_control marker to the last\n * cacheable block in the request.\n */\n cache_control?: CacheControlEphemeral | null;\n\n /**\n * Configuration options for the model's output, such as the output format.\n */\n output_config?: OutputConfig;\n\n /**\n * System prompt.\n *\n * A system prompt is a way of providing context and instructions to Claude, such\n * as specifying a particular goal or role. See our\n * [guide to system prompts](https://docs.claude.com/en/docs/system-prompts).\n */\n system?: string | Array<TextBlockParam>;\n\n /**\n * Configuration for enabling Claude's extended thinking.\n *\n * When enabled, responses include `thinking` content blocks showing Claude's\n * thinking process before the final answer. Requires a minimum budget of 1,024\n * tokens and counts towards your `max_tokens` limit.\n *\n * See\n * [extended thinking](https://docs.claude.com/en/docs/build-with-claude/extended-thinking)\n * for details.\n */\n thinking?: ThinkingConfigParam;\n\n /**\n * How the model should use the provided tools. The model can use a specific tool,\n * any available tool, decide by itself, or not use tools at all.\n */\n tool_choice?: ToolChoice;\n\n /**\n * Definitions of tools that the model may use.\n *\n * If you include `tools` in your API request, the model may return `tool_use`\n * content blocks that represent the model's use of those tools. You can then run\n * those tools using the tool input generated by the model and then optionally\n * return results back to the model using `tool_result` content blocks.\n *\n * There are two types of tools: **client tools** and **server tools**. The\n * behavior described below applies to client tools. For\n * [server tools](https://docs.claude.com/en/docs/agents-and-tools/tool-use/overview#server-tools),\n * see their individual documentation as each has its own behavior (e.g., the\n * [web search tool](https://docs.claude.com/en/docs/agents-and-tools/tool-use/web-search-tool)).\n *\n * Each tool definition includes:\n *\n * - `name`: Name of the tool.\n * - `description`: Optional, but strongly-recommended description of the tool.\n * - `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the\n * tool `input` shape that the model will produce in `tool_use` output content\n * blocks.\n *\n * For example, if you defined `tools` as:\n *\n * ```json\n * [\n * {\n * \"name\": \"get_stock_price\",\n * \"description\": \"Get the current stock price for a given ticker symbol.\",\n * \"input_schema\": {\n * \"type\": \"object\",\n * \"properties\": {\n * \"ticker\": {\n * \"type\": \"string\",\n * \"description\": \"The stock ticker symbol, e.g. AAPL for Apple Inc.\"\n * }\n * },\n * \"required\": [\"ticker\"]\n * }\n * }\n * ]\n * ```\n *\n * And then asked the model \"What's the S&P 500 at today?\", the model might produce\n * `tool_use` content blocks in the response like this:\n *\n * ```json\n * [\n * {\n * \"type\": \"tool_use\",\n * \"id\": \"toolu_01D7FLrfh4GYq7yT1ULFeyMV\",\n * \"name\": \"get_stock_price\",\n * \"input\": { \"ticker\": \"^GSPC\" }\n * }\n * ]\n * ```\n *\n * You might then run your `get_stock_price` tool with `{\"ticker\": \"^GSPC\"}` as an\n * input, and return the following back to the model in a subsequent `user`\n * message:\n *\n * ```json\n * [\n * {\n * \"type\": \"tool_result\",\n * \"tool_use_id\": \"toolu_01D7FLrfh4GYq7yT1ULFeyMV\",\n * \"content\": \"259.75 USD\"\n * }\n * ]\n * ```\n *\n * Tools can be used for workflows that include running client-side tools and\n * functions, or more generally whenever you want the model to produce a particular\n * JSON structure of output.\n *\n * See our [guide](https://docs.claude.com/en/docs/tool-use) for more details.\n */\n tools?: Array<MessageCountTokensTool>;\n}\n\nMessages.Batches = Batches;\n\nexport declare namespace Messages {\n export {\n type Base64ImageSource as Base64ImageSource,\n type Base64PDFSource as Base64PDFSource,\n type BashCodeExecutionOutputBlock as BashCodeExecutionOutputBlock,\n type BashCodeExecutionOutputBlockParam as BashCodeExecutionOutputBlockParam,\n type BashCodeExecutionResultBlock as BashCodeExecutionResultBlock,\n type BashCodeExecutionResultBlockParam as BashCodeExecutionResultBlockParam,\n type BashCodeExecutionToolResultBlock as BashCodeExecutionToolResultBlock,\n type BashCodeExecutionToolResultBlockParam as BashCodeExecutionToolResultBlockParam,\n type BashCodeExecutionToolResultError as BashCodeExecutionToolResultError,\n type BashCodeExecutionToolResultErrorCode as BashCodeExecutionToolResultErrorCode,\n type BashCodeExecutionToolResultErrorParam as BashCodeExecutionToolResultErrorParam,\n type CacheControlEphemeral as CacheControlEphemeral,\n type CacheCreation as CacheCreation,\n type CitationCharLocation as CitationCharLocation,\n type CitationCharLocationParam as CitationCharLocationParam,\n type CitationContentBlockLocation as CitationContentBlockLocation,\n type CitationContentBlockLocationParam as CitationContentBlockLocationParam,\n type CitationPageLocation as CitationPageLocation,\n type CitationPageLocationParam as CitationPageLocationParam,\n type CitationSearchResultLocationParam as CitationSearchResultLocationParam,\n type CitationWebSearchResultLocationParam as CitationWebSearchResultLocationParam,\n type CitationsConfig as CitationsConfig,\n type CitationsConfigParam as CitationsConfigParam,\n type CitationsDelta as CitationsDelta,\n type CitationsSearchResultLocation as CitationsSearchResultLocation,\n type CitationsWebSearchResultLocation as CitationsWebSearchResultLocation,\n type CodeExecutionOutputBlock as CodeExecutionOutputBlock,\n type CodeExecutionOutputBlockParam as CodeExecutionOutputBlockParam,\n type CodeExecutionResultBlock as CodeExecutionResultBlock,\n type CodeExecutionResultBlockParam as CodeExecutionResultBlockParam,\n type CodeExecutionTool20250522 as CodeExecutionTool20250522,\n type CodeExecutionTool20250825 as CodeExecutionTool20250825,\n type CodeExecutionTool20260120 as CodeExecutionTool20260120,\n type CodeExecutionToolResultBlock as CodeExecutionToolResultBlock,\n type CodeExecutionToolResultBlockContent as CodeExecutionToolResultBlockContent,\n type CodeExecutionToolResultBlockParam as CodeExecutionToolResultBlockParam,\n type CodeExecutionToolResultBlockParamContent as CodeExecutionToolResultBlockParamContent,\n type CodeExecutionToolResultError as CodeExecutionToolResultError,\n type CodeExecutionToolResultErrorCode as CodeExecutionToolResultErrorCode,\n type CodeExecutionToolResultErrorParam as CodeExecutionToolResultErrorParam,\n type Container as Container,\n type ContainerUploadBlock as ContainerUploadBlock,\n type ContainerUploadBlockParam as ContainerUploadBlockParam,\n type ContentBlock as ContentBlock,\n type ContentBlockParam as ContentBlockParam,\n type ContentBlockStartEvent as ContentBlockStartEvent,\n type ContentBlockStopEvent as ContentBlockStopEvent,\n type ContentBlockSource as ContentBlockSource,\n type ContentBlockSourceContent as ContentBlockSourceContent,\n type DirectCaller as DirectCaller,\n type DocumentBlock as DocumentBlock,\n type DocumentBlockParam as DocumentBlockParam,\n type EncryptedCodeExecutionResultBlock as EncryptedCodeExecutionResultBlock,\n type EncryptedCodeExecutionResultBlockParam as EncryptedCodeExecutionResultBlockParam,\n type ImageBlockParam as ImageBlockParam,\n type InputJSONDelta as InputJSONDelta,\n type JSONOutputFormat as JSONOutputFormat,\n type MemoryTool20250818 as MemoryTool20250818,\n type Message as Message,\n type MessageCountTokensTool as MessageCountTokensTool,\n type MessageDeltaEvent as MessageDeltaEvent,\n type MessageDeltaUsage as MessageDeltaUsage,\n type MessageParam as MessageParam,\n type MessageTokensCount as MessageTokensCount,\n type Metadata as Metadata,\n type Model as Model,\n type OutputConfig as OutputConfig,\n type PlainTextSource as PlainTextSource,\n type RawContentBlockDelta as RawContentBlockDelta,\n type RawContentBlockDeltaEvent as RawContentBlockDeltaEvent,\n type RawContentBlockStartEvent as RawContentBlockStartEvent,\n type RawContentBlockStopEvent as RawContentBlockStopEvent,\n type RawMessageDeltaEvent as RawMessageDeltaEvent,\n type RawMessageStartEvent as RawMessageStartEvent,\n type RawMessageStopEvent as RawMessageStopEvent,\n type RawMessageStreamEvent as RawMessageStreamEvent,\n type RedactedThinkingBlock as RedactedThinkingBlock,\n type RedactedThinkingBlockParam as RedactedThinkingBlockParam,\n type SearchResultBlockParam as SearchResultBlockParam,\n type ServerToolCaller as ServerToolCaller,\n type ServerToolCaller20260120 as ServerToolCaller20260120,\n type ServerToolUsage as ServerToolUsage,\n type ServerToolUseBlock as ServerToolUseBlock,\n type ServerToolUseBlockParam as ServerToolUseBlockParam,\n type SignatureDelta as SignatureDelta,\n type StopReason as StopReason,\n type TextBlock as TextBlock,\n type TextBlockParam as TextBlockParam,\n type TextCitation as TextCitation,\n type TextCitationParam as TextCitationParam,\n type TextDelta as TextDelta,\n type TextEditorCodeExecutionCreateResultBlock as TextEditorCodeExecutionCreateResultBlock,\n type TextEditorCodeExecutionCreateResultBlockParam as TextEditorCodeExecutionCreateResultBlockParam,\n type TextEditorCodeExecutionStrReplaceResultBlock as TextEditorCodeExecutionStrReplaceResultBlock,\n type TextEditorCodeExecutionStrReplaceResultBlockParam as TextEditorCodeExecutionStrReplaceResultBlockParam,\n type TextEditorCodeExecutionToolResultBlock as TextEditorCodeExecutionToolResultBlock,\n type TextEditorCodeExecutionToolResultBlockParam as TextEditorCodeExecutionToolResultBlockParam,\n type TextEditorCodeExecutionToolResultError as TextEditorCodeExecutionToolResultError,\n type TextEditorCodeExecutionToolResultErrorCode as TextEditorCodeExecutionToolResultErrorCode,\n type TextEditorCodeExecutionToolResultErrorParam as TextEditorCodeExecutionToolResultErrorParam,\n type TextEditorCodeExecutionViewResultBlock as TextEditorCodeExecutionViewResultBlock,\n type TextEditorCodeExecutionViewResultBlockParam as TextEditorCodeExecutionViewResultBlockParam,\n type ThinkingBlock as ThinkingBlock,\n type ThinkingBlockParam as ThinkingBlockParam,\n type ThinkingConfigAdaptive as ThinkingConfigAdaptive,\n type ThinkingConfigDisabled as ThinkingConfigDisabled,\n type ThinkingConfigEnabled as ThinkingConfigEnabled,\n type ThinkingConfigParam as ThinkingConfigParam,\n type ThinkingDelta as ThinkingDelta,\n type Tool as Tool,\n type ToolBash20250124 as ToolBash20250124,\n type ToolChoice as ToolChoice,\n type ToolChoiceAny as ToolChoiceAny,\n type ToolChoiceAuto as ToolChoiceAuto,\n type ToolChoiceNone as ToolChoiceNone,\n type ToolChoiceTool as ToolChoiceTool,\n type ToolReferenceBlock as ToolReferenceBlock,\n type ToolReferenceBlockParam as ToolReferenceBlockParam,\n type ToolResultBlockParam as ToolResultBlockParam,\n type ToolSearchToolBm25_20251119 as ToolSearchToolBm25_20251119,\n type ToolSearchToolRegex20251119 as ToolSearchToolRegex20251119,\n type ToolSearchToolResultBlock as ToolSearchToolResultBlock,\n type ToolSearchToolResultBlockParam as ToolSearchToolResultBlockParam,\n type ToolSearchToolResultError as ToolSearchToolResultError,\n type ToolSearchToolResultErrorCode as ToolSearchToolResultErrorCode,\n type ToolSearchToolResultErrorParam as ToolSearchToolResultErrorParam,\n type ToolSearchToolSearchResultBlock as ToolSearchToolSearchResultBlock,\n type ToolSearchToolSearchResultBlockParam as ToolSearchToolSearchResultBlockParam,\n type ToolTextEditor20250124 as ToolTextEditor20250124,\n type ToolTextEditor20250429 as ToolTextEditor20250429,\n type ToolTextEditor20250728 as ToolTextEditor20250728,\n type ToolUnion as ToolUnion,\n type ToolUseBlock as ToolUseBlock,\n type ToolUseBlockParam as ToolUseBlockParam,\n type URLImageSource as URLImageSource,\n type URLPDFSource as URLPDFSource,\n type Usage as Usage,\n type UserLocation as UserLocation,\n type WebFetchBlock as WebFetchBlock,\n type WebFetchBlockParam as WebFetchBlockParam,\n type WebFetchTool20250910 as WebFetchTool20250910,\n type WebFetchTool20260209 as WebFetchTool20260209,\n type WebFetchTool20260309 as WebFetchTool20260309,\n type WebFetchToolResultBlock as WebFetchToolResultBlock,\n type WebFetchToolResultBlockParam as WebFetchToolResultBlockParam,\n type WebFetchToolResultErrorBlock as WebFetchToolResultErrorBlock,\n type WebFetchToolResultErrorBlockParam as WebFetchToolResultErrorBlockParam,\n type WebFetchToolResultErrorCode as WebFetchToolResultErrorCode,\n type WebSearchResultBlock as WebSearchResultBlock,\n type WebSearchResultBlockParam as WebSearchResultBlockParam,\n type WebSearchTool20250305 as WebSearchTool20250305,\n type WebSearchTool20260209 as WebSearchTool20260209,\n type WebSearchToolRequestError as WebSearchToolRequestError,\n type WebSearchToolResultBlock as WebSearchToolResultBlock,\n type WebSearchToolResultBlockContent as WebSearchToolResultBlockContent,\n type WebSearchToolResultBlockParam as WebSearchToolResultBlockParam,\n type WebSearchToolResultBlockParamContent as WebSearchToolResultBlockParamContent,\n type WebSearchToolResultError as WebSearchToolResultError,\n type MessageStreamEvent as MessageStreamEvent,\n type MessageStartEvent as MessageStartEvent,\n type MessageStopEvent as MessageStopEvent,\n type ContentBlockDeltaEvent as ContentBlockDeltaEvent,\n type MessageCreateParams as MessageCreateParams,\n type MessageCreateParamsNonStreaming as MessageCreateParamsNonStreaming,\n type MessageCreateParamsStreaming as MessageCreateParamsStreaming,\n type MessageStreamParams as MessageStreamParams,\n type MessageCountTokensParams as MessageCountTokensParams,\n };\n\n export {\n Batches as Batches,\n type DeletedMessageBatch as DeletedMessageBatch,\n type MessageBatch as MessageBatch,\n type MessageBatchCanceledResult as MessageBatchCanceledResult,\n type MessageBatchErroredResult as MessageBatchErroredResult,\n type MessageBatchExpiredResult as MessageBatchExpiredResult,\n type MessageBatchIndividualResponse as MessageBatchIndividualResponse,\n type MessageBatchRequestCounts as MessageBatchRequestCounts,\n type MessageBatchResult as MessageBatchResult,\n type MessageBatchSucceededResult as MessageBatchSucceededResult,\n type MessageBatchesPage as MessageBatchesPage,\n type BatchCreateParams as BatchCreateParams,\n type BatchListParams as BatchListParams,\n };\n}\n",
48
48
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { APIResource } from '../core/resource.js';\nimport * as BetaAPI from './beta/beta.js';\nimport { APIPromise } from '../core/api-promise.js';\nimport { Page, type PageParams, PagePromise } from '../core/pagination.js';\nimport { buildHeaders } from '../internal/headers.js';\nimport { RequestOptions } from '../internal/request-options.js';\nimport { path } from '../internal/utils/path.js';\n\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 retrieve(\n modelID: string,\n params: ModelRetrieveParams | null | undefined = {},\n options?: RequestOptions,\n ): APIPromise<ModelInfo> {\n const { betas } = params ?? {};\n return this._client.get(path`/v1/models/${modelID}`, {\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\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 list(\n params: ModelListParams | null | undefined = {},\n options?: RequestOptions,\n ): PagePromise<ModelInfosPage, ModelInfo> {\n const { betas, ...query } = params ?? {};\n return this._client.getAPIList('/v1/models', Page<ModelInfo>, {\n query,\n ...options,\n headers: buildHeaders([\n { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) },\n options?.headers,\n ]),\n });\n }\n}\n\nexport type ModelInfosPage = Page<ModelInfo>;\n\n/**\n * Indicates whether a capability is supported.\n */\nexport interface CapabilitySupport {\n /**\n * Whether this capability is supported by the model.\n */\n supported: boolean;\n}\n\n/**\n * Context management capability details.\n */\nexport interface ContextManagementCapability {\n /**\n * Indicates whether a capability is supported.\n */\n clear_thinking_20251015: CapabilitySupport | null;\n\n /**\n * Indicates whether a capability is supported.\n */\n clear_tool_uses_20250919: CapabilitySupport | null;\n\n /**\n * Indicates whether a capability is supported.\n */\n compact_20260112: CapabilitySupport | null;\n\n /**\n * Whether this capability is supported by the model.\n */\n supported: boolean;\n}\n\n/**\n * Effort (reasoning_effort) capability details.\n */\nexport interface EffortCapability {\n /**\n * Whether the model supports high effort level.\n */\n high: CapabilitySupport;\n\n /**\n * Whether the model supports low effort level.\n */\n low: CapabilitySupport;\n\n /**\n * Whether the model supports max effort level.\n */\n max: CapabilitySupport;\n\n /**\n * Whether the model supports medium effort level.\n */\n medium: CapabilitySupport;\n\n /**\n * Whether this capability is supported by the model.\n */\n supported: boolean;\n}\n\n/**\n * Model capability information.\n */\nexport interface ModelCapabilities {\n /**\n * Whether the model supports the Batch API.\n */\n batch: CapabilitySupport;\n\n /**\n * Whether the model supports citation generation.\n */\n citations: CapabilitySupport;\n\n /**\n * Whether the model supports code execution tools.\n */\n code_execution: CapabilitySupport;\n\n /**\n * Context management support and available strategies.\n */\n context_management: ContextManagementCapability;\n\n /**\n * Effort (reasoning_effort) support and available levels.\n */\n effort: EffortCapability;\n\n /**\n * Whether the model accepts image content blocks.\n */\n image_input: CapabilitySupport;\n\n /**\n * Whether the model accepts PDF content blocks.\n */\n pdf_input: CapabilitySupport;\n\n /**\n * Whether the model supports structured output / JSON mode / strict tool schemas.\n */\n structured_outputs: CapabilitySupport;\n\n /**\n * Thinking capability and supported type configurations.\n */\n thinking: ThinkingCapability;\n}\n\nexport interface ModelInfo {\n /**\n * Unique model identifier.\n */\n id: string;\n\n /**\n * Model capability information.\n */\n capabilities: ModelCapabilities | null;\n\n /**\n * RFC 3339 datetime string representing the time at which the model was released.\n * May be set to an epoch value if the release date is unknown.\n */\n created_at: string;\n\n /**\n * A human-readable name for the model.\n */\n display_name: string;\n\n /**\n * Maximum input context window size in tokens for this model.\n */\n max_input_tokens: number | null;\n\n /**\n * Maximum value for the `max_tokens` parameter when using this model.\n */\n max_tokens: number | null;\n\n /**\n * Object type.\n *\n * For Models, this is always `\"model\"`.\n */\n type: 'model';\n}\n\n/**\n * Thinking capability details.\n */\nexport interface ThinkingCapability {\n /**\n * Whether this capability is supported by the model.\n */\n supported: boolean;\n\n /**\n * Supported thinking type configurations.\n */\n types: ThinkingTypes;\n}\n\n/**\n * Supported thinking type configurations.\n */\nexport interface ThinkingTypes {\n /**\n * Whether the model supports thinking with type 'adaptive' (auto).\n */\n adaptive: CapabilitySupport;\n\n /**\n * Whether the model supports thinking with type 'enabled'.\n */\n enabled: CapabilitySupport;\n}\n\nexport interface ModelRetrieveParams {\n /**\n * Optional header to specify the beta version(s) you want to use.\n */\n betas?: Array<BetaAPI.AnthropicBeta>;\n}\n\nexport interface ModelListParams extends PageParams {\n /**\n * Header param: Optional header to specify the beta version(s) you want to use.\n */\n betas?: Array<BetaAPI.AnthropicBeta>;\n}\n\nexport declare namespace Models {\n export {\n type CapabilitySupport as CapabilitySupport,\n type ContextManagementCapability as ContextManagementCapability,\n type EffortCapability as EffortCapability,\n type ModelCapabilities as ModelCapabilities,\n type ModelInfo as ModelInfo,\n type ThinkingCapability as ThinkingCapability,\n type ThinkingTypes as ThinkingTypes,\n type ModelInfosPage as ModelInfosPage,\n type ModelRetrieveParams as ModelRetrieveParams,\n type ModelListParams as ModelListParams,\n };\n}\n",
49
49
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\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: string): string | undefined => {\n if (typeof (globalThis as any).process !== 'undefined') {\n return (globalThis as any).process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof (globalThis as any).Deno !== 'undefined') {\n return (globalThis as any).Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\n",
50
- "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport type { RequestInit, RequestInfo, BodyInit } from './internal/builtin-types.js';\nimport type { HTTPMethod, PromiseOrValue, MergedRequestInit, FinalizedRequestInit } from './internal/types.js';\nimport { uuid4 } from './internal/utils/uuid.js';\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from './internal/utils/values.js';\nimport { sleep } from './internal/utils/sleep.js';\nexport type { Logger, LogLevel } from './internal/utils/log.js';\nimport { castToError, isAbortError } from './internal/errors.js';\nimport type { APIResponseProps } from './internal/parse.js';\nimport { getPlatformHeaders } from './internal/detect-platform.js';\nimport * as Shims from './internal/shims.js';\nimport * as Opts from './internal/request-options.js';\nimport { stringifyQuery } from './internal/utils/query.js';\nimport { VERSION } from './version.js';\nimport * as Errors from './core/error.js';\nimport * as Pagination from './core/pagination.js';\nimport {\n type PageParams,\n PageResponse,\n type PageCursorParams,\n PageCursorResponse,\n type TokenPageParams,\n TokenPageResponse,\n} from './core/pagination.js';\nimport * as Uploads from './core/uploads.js';\nimport * as API from './resources/index.js';\nimport { APIPromise } from './core/api-promise.js';\nimport {\n Completion,\n CompletionCreateParams,\n CompletionCreateParamsNonStreaming,\n CompletionCreateParamsStreaming,\n Completions,\n} from './resources/completions.js';\nimport {\n CapabilitySupport,\n ContextManagementCapability,\n EffortCapability,\n ModelCapabilities,\n ModelInfo,\n ModelInfosPage,\n ModelListParams,\n ModelRetrieveParams,\n Models,\n ThinkingCapability,\n ThinkingTypes,\n} from './resources/models.js';\nimport {\n AnthropicBeta,\n Beta,\n BetaAPIError,\n BetaAuthenticationError,\n BetaBillingError,\n BetaError,\n BetaErrorResponse,\n BetaGatewayTimeoutError,\n BetaInvalidRequestError,\n BetaNotFoundError,\n BetaOverloadedError,\n BetaPermissionError,\n BetaRateLimitError,\n} from './resources/beta/beta.js';\nimport {\n Base64ImageSource,\n Base64PDFSource,\n BashCodeExecutionOutputBlock,\n BashCodeExecutionOutputBlockParam,\n BashCodeExecutionResultBlock,\n BashCodeExecutionResultBlockParam,\n BashCodeExecutionToolResultBlock,\n BashCodeExecutionToolResultBlockParam,\n BashCodeExecutionToolResultError,\n BashCodeExecutionToolResultErrorCode,\n BashCodeExecutionToolResultErrorParam,\n CacheControlEphemeral,\n CacheCreation,\n CitationCharLocation,\n CitationCharLocationParam,\n CitationContentBlockLocation,\n CitationContentBlockLocationParam,\n CitationPageLocation,\n CitationPageLocationParam,\n CitationSearchResultLocationParam,\n CitationWebSearchResultLocationParam,\n CitationsConfig,\n CitationsConfigParam,\n CitationsDelta,\n CitationsSearchResultLocation,\n CitationsWebSearchResultLocation,\n CodeExecutionOutputBlock,\n CodeExecutionOutputBlockParam,\n CodeExecutionResultBlock,\n CodeExecutionResultBlockParam,\n CodeExecutionTool20250522,\n CodeExecutionTool20250825,\n CodeExecutionTool20260120,\n CodeExecutionToolResultBlock,\n CodeExecutionToolResultBlockContent,\n CodeExecutionToolResultBlockParam,\n CodeExecutionToolResultBlockParamContent,\n CodeExecutionToolResultError,\n CodeExecutionToolResultErrorCode,\n CodeExecutionToolResultErrorParam,\n Container,\n ContainerUploadBlock,\n ContainerUploadBlockParam,\n ContentBlock,\n ContentBlockDeltaEvent,\n ContentBlockParam,\n ContentBlockStartEvent,\n ContentBlockStopEvent,\n ContentBlockSource,\n ContentBlockSourceContent,\n DirectCaller,\n DocumentBlock,\n DocumentBlockParam,\n EncryptedCodeExecutionResultBlock,\n EncryptedCodeExecutionResultBlockParam,\n ImageBlockParam,\n InputJSONDelta,\n JSONOutputFormat,\n MemoryTool20250818,\n Message,\n MessageStreamParams,\n MessageCountTokensParams,\n MessageCountTokensTool,\n MessageCreateParams,\n MessageCreateParamsNonStreaming,\n MessageCreateParamsStreaming,\n MessageDeltaEvent,\n MessageDeltaUsage,\n MessageParam,\n MessageStartEvent,\n MessageStopEvent,\n MessageStreamEvent,\n MessageTokensCount,\n Messages,\n Metadata,\n Model,\n OutputConfig,\n PlainTextSource,\n RawContentBlockDelta,\n RawContentBlockDeltaEvent,\n RawContentBlockStartEvent,\n RawContentBlockStopEvent,\n RawMessageDeltaEvent,\n RawMessageStartEvent,\n RawMessageStopEvent,\n RawMessageStreamEvent,\n RedactedThinkingBlock,\n RedactedThinkingBlockParam,\n SearchResultBlockParam,\n ServerToolCaller,\n ServerToolCaller20260120,\n ServerToolUsage,\n ServerToolUseBlock,\n ServerToolUseBlockParam,\n SignatureDelta,\n StopReason,\n TextBlock,\n TextBlockParam,\n TextCitation,\n TextCitationParam,\n TextDelta,\n TextEditorCodeExecutionCreateResultBlock,\n TextEditorCodeExecutionCreateResultBlockParam,\n TextEditorCodeExecutionStrReplaceResultBlock,\n TextEditorCodeExecutionStrReplaceResultBlockParam,\n TextEditorCodeExecutionToolResultBlock,\n TextEditorCodeExecutionToolResultBlockParam,\n TextEditorCodeExecutionToolResultError,\n TextEditorCodeExecutionToolResultErrorCode,\n TextEditorCodeExecutionToolResultErrorParam,\n TextEditorCodeExecutionViewResultBlock,\n TextEditorCodeExecutionViewResultBlockParam,\n ThinkingBlock,\n ThinkingBlockParam,\n ThinkingConfigAdaptive,\n ThinkingConfigDisabled,\n ThinkingConfigEnabled,\n ThinkingConfigParam,\n ThinkingDelta,\n Tool,\n ToolBash20250124,\n ToolChoice,\n ToolChoiceAny,\n ToolChoiceAuto,\n ToolChoiceNone,\n ToolChoiceTool,\n ToolReferenceBlock,\n ToolReferenceBlockParam,\n ToolResultBlockParam,\n ToolSearchToolBm25_20251119,\n ToolSearchToolRegex20251119,\n ToolSearchToolResultBlock,\n ToolSearchToolResultBlockParam,\n ToolSearchToolResultError,\n ToolSearchToolResultErrorCode,\n ToolSearchToolResultErrorParam,\n ToolSearchToolSearchResultBlock,\n ToolSearchToolSearchResultBlockParam,\n ToolTextEditor20250124,\n ToolTextEditor20250429,\n ToolTextEditor20250728,\n ToolUnion,\n ToolUseBlock,\n ToolUseBlockParam,\n URLImageSource,\n URLPDFSource,\n Usage,\n UserLocation,\n WebFetchBlock,\n WebFetchBlockParam,\n WebFetchTool20250910,\n WebFetchTool20260209,\n WebFetchTool20260309,\n WebFetchToolResultBlock,\n WebFetchToolResultBlockParam,\n WebFetchToolResultErrorBlock,\n WebFetchToolResultErrorBlockParam,\n WebFetchToolResultErrorCode,\n WebSearchResultBlock,\n WebSearchResultBlockParam,\n WebSearchTool20250305,\n WebSearchTool20260209,\n WebSearchToolRequestError,\n WebSearchToolResultBlock,\n WebSearchToolResultBlockContent,\n WebSearchToolResultBlockParam,\n WebSearchToolResultBlockParamContent,\n WebSearchToolResultError,\n WebSearchToolResultErrorCode,\n} from './resources/messages/messages.js';\nimport { type Fetch } from './internal/builtin-types.js';\nimport { isRunningInBrowser } from './internal/detect-platform.js';\nimport { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers.js';\nimport { FinalRequestOptions, RequestOptions } from './internal/request-options.js';\nimport { readEnv } from './internal/utils/env.js';\nimport {\n type LogLevel,\n type Logger,\n formatRequestDetails,\n loggerFor,\n parseLogLevel,\n} from './internal/utils/log.js';\nimport { isEmptyObj } from './internal/utils/values.js';\n\nexport type ApiKeySetter = () => Promise<string>;\n\nexport interface ClientOptions {\n /**\n * API key used for authentication.\n *\n * - Accepts either a static string or an async function that resolves to a string.\n * - Defaults to process.env['PUKU_API_KEY'].\n * - When a function is provided, it is invoked before each request so you can rotate\n * or refresh credentials at runtime.\n * - The function must return a non-empty string; otherwise an AnthropicError is thrown.\n * - If the function throws, the error is wrapped in an AnthropicError with the original\n * error available as `cause`.\n */\n apiKey?: string | ApiKeySetter | null | undefined;\n\n /**\n * Override the base URL for the API, e.g., \"https://api.example.com/v2/\"\n *\n * Defaults to process.env['PUKU_BASE_URL']. Must be set explicitly —\n * either via the constructor or the `PUKU_BASE_URL` env var. There is\n * no hardcoded fallback.\n */\n baseURL?: string | null | undefined;\n\n /**\n * The maximum amount of time (in milliseconds) that the client should wait for a response\n * from the server before timing out a single request.\n *\n * Note that request timeouts are retried by default, so in a worst-case scenario you may wait\n * much longer than this timeout before the promise succeeds or fails.\n *\n * @unit milliseconds\n */\n timeout?: number | undefined;\n /**\n * Additional `RequestInit` options to be passed to `fetch` calls.\n * Properties will be overridden by per-request `fetchOptions`.\n */\n fetchOptions?: MergedRequestInit | undefined;\n\n /**\n * Specify a custom `fetch` function implementation.\n *\n * If not provided, we expect that `fetch` is defined globally.\n */\n fetch?: Fetch | undefined;\n\n /**\n * The maximum number of times that the client will retry a request in case of a\n * temporary failure, like a network error or a 5XX error from the server.\n *\n * @default 2\n */\n maxRetries?: number | undefined;\n\n /**\n * Default headers to include with every request to the API.\n *\n * These can be removed in individual requests by explicitly setting the\n * header to `null` in request options.\n */\n defaultHeaders?: HeadersLike | undefined;\n\n /**\n * Default query parameters to include with every request to the API.\n *\n * These can be removed in individual requests by explicitly setting the\n * param to `undefined` in request options.\n */\n defaultQuery?: Record<string, string | undefined> | undefined;\n\n /**\n * By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n * Only set this option to `true` if you understand the risks and have appropriate mitigations in place.\n */\n dangerouslyAllowBrowser?: boolean | undefined;\n\n /**\n * Set the log level.\n *\n * Defaults to process.env['ANTHROPIC_LOG'] or 'warn' if it isn't set.\n */\n logLevel?: LogLevel | undefined;\n\n /**\n * Set the logger.\n *\n * Defaults to globalThis.console.\n */\n logger?: Logger | undefined;\n}\n\nexport const HUMAN_PROMPT = '\\\\n\\\\nHuman:';\nexport const AI_PROMPT = '\\\\n\\\\nAssistant:';\n\n/**\n * Base class for Anthropic API clients.\n */\nexport class BaseAnthropic {\n apiKey: string | null;\n\n baseURL: string;\n maxRetries: number;\n timeout: number;\n logger: Logger;\n logLevel: LogLevel | undefined;\n fetchOptions: MergedRequestInit | undefined;\n\n private fetch: Fetch;\n #encoder: Opts.RequestEncoder;\n protected idempotencyHeader?: string;\n protected _options: ClientOptions;\n\n /**\n * API Client for interfacing with the Puku AI gateway.\n *\n * @param {string | null | undefined} [opts.apiKey=process.env['PUKU_API_KEY'] ?? null]\n * @param {string} [opts.baseURL=process.env['PUKU_BASE_URL']] - Override the base URL for the API. Required.\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({\n baseURL = readEnv('PUKU_BASE_URL'),\n apiKey = readEnv('PUKU_API_KEY') ?? null,\n ...opts\n }: ClientOptions = {}) {\n if (!baseURL) {\n throw new Errors.AnthropicError(\n \"Missing baseURL: pass `baseURL` to the constructor or set the PUKU_BASE_URL environment variable.\",\n );\n }\n\n const options: ClientOptions = {\n apiKey,\n ...opts,\n baseURL,\n };\n\n if (!options.dangerouslyAllowBrowser && isRunningInBrowser()) {\n throw new Errors.AnthropicError(\n \"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 }\n\n this.baseURL = options.baseURL!;\n // Normalize: strip a trailing `/v1` so the SDK can append Anthropic-style\n // paths (`/v1/messages`, etc.) without doubling the prefix.\n if (this.baseURL.endsWith(\"/v1\")) {\n this.baseURL = this.baseURL.slice(0, -3);\n }\n this.timeout = options.timeout ?? BaseAnthropic.DEFAULT_TIMEOUT /* 10 minutes */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('ANTHROPIC_LOG'), \"process.env['ANTHROPIC_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n this.#encoder = Opts.FallbackEncoder;\n\n this._options = options;\n\n this.apiKey = typeof apiKey === 'string' ? apiKey : null;\n }\n\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options: Partial<ClientOptions>): this {\n const client = new (this.constructor as any as new (props: ClientOptions) => typeof this)({\n ...this._options,\n baseURL: this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n apiKey: this.apiKey,\n ...options,\n });\n return client;\n }\n\n /**\n * Check whether the base URL is set to its default.\n */\n #baseURLOverridden(): boolean {\n // baseURL is required at construction time, so it's always overridden\n // relative to any built-in default.\n return true;\n }\n\n protected defaultQuery(): Record<string, string | undefined> | undefined {\n return this._options.defaultQuery;\n }\n\n protected validateHeaders({ values, nulls }: NullableHeaders) {\n if (values.get('x-api-key')) {\n return;\n }\n\n if (this.apiKey && values.get('x-api-key')) {\n return;\n }\n if (nulls.has('x-api-key')) {\n return;\n }\n\n throw new Error(\n 'Could not resolve authentication method. Expected apiKey to be set, or for the \"X-Api-Key\" header to be explicitly omitted',\n );\n }\n\n protected async authHeaders(opts: FinalRequestOptions): Promise<NullableHeaders | undefined> {\n return buildHeaders([await this.apiKeyAuth(opts)]);\n }\n\n protected async apiKeyAuth(opts: FinalRequestOptions): Promise<NullableHeaders | undefined> {\n if (this.apiKey == null) {\n return undefined;\n }\n return buildHeaders([{ 'X-Api-Key': this.apiKey }]);\n }\n\n /**\n * Basic re-implementation of `qs.stringify` for primitive types.\n */\n protected stringifyQuery(query: object | Record<string, unknown>): string {\n return stringifyQuery(query);\n }\n\n private getUserAgent(): string {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n\n protected defaultIdempotencyKey(): string {\n return `stainless-node-retry-${uuid4()}`;\n }\n\n protected makeStatusError(\n status: number,\n error: Object,\n message: string | undefined,\n headers: Headers,\n ): Errors.APIError {\n return Errors.APIError.generate(status, error, message, headers);\n }\n\n buildURL(\n path: string,\n query: Record<string, unknown> | null | undefined,\n defaultBaseURL?: string | undefined,\n ): string {\n const baseURL = (!this.#baseURLOverridden() && defaultBaseURL) || this.baseURL;\n const url =\n isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n\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\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n\n return url.toString();\n }\n\n _calculateNonstreamingTimeout(maxTokens: number): number {\n const defaultTimeout = 10 * 60;\n const expectedTimeout = (60 * 60 * maxTokens) / 128_000;\n if (expectedTimeout > defaultTimeout) {\n throw new Errors.AnthropicError(\n '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 }\n return defaultTimeout * 1000;\n }\n\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n protected async prepareOptions(options: FinalRequestOptions): Promise<void> {}\n\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 protected async prepareRequest(\n request: RequestInit,\n { url, options }: { url: string; options: FinalRequestOptions },\n ): Promise<void> {}\n\n get<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('get', path, opts);\n }\n\n post<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('post', path, opts);\n }\n\n patch<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('patch', path, opts);\n }\n\n put<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('put', path, opts);\n }\n\n delete<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('delete', path, opts);\n }\n\n private methodRequest<Rsp>(\n method: HTTPMethod,\n path: string,\n opts?: PromiseOrValue<RequestOptions>,\n ): APIPromise<Rsp> {\n return this.request(\n Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }),\n );\n }\n\n request<Rsp>(\n options: PromiseOrValue<FinalRequestOptions>,\n remainingRetries: number | null = null,\n ): APIPromise<Rsp> {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n\n private async makeRequest(\n optionsInput: PromiseOrValue<FinalRequestOptions>,\n retriesRemaining: number | null,\n retryOfRequestLogID: string | undefined,\n ): Promise<APIResponseProps> {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n\n await this.prepareOptions(options);\n\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n\n await this.prepareRequest(req, { url, options });\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\n loggerFor(this).debug(\n `[${requestLogID}] sending request`,\n formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }),\n );\n\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n\n if (response instanceof globalThis.Error) {\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 =\n isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(\n `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`,\n );\n loggerFor(this).debug(\n `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`,\n formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }),\n );\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(\n `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`,\n );\n loggerFor(this).debug(\n `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`,\n formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }),\n );\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'request-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${\n response.ok ? 'succeeded' : 'failed'\n } with status ${response.status} in ${headersTime - startTime}ms`;\n\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(\n `[${requestLogID}] response error (${retryMessage})`,\n formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }),\n );\n return this.retryRequest(\n options,\n retriesRemaining,\n retryOfRequestLogID ?? requestLogID,\n response.headers,\n );\n }\n\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n\n const errText = await response.text().catch((err: any) => castToError(err).message);\n const errJSON = safeJSON(errText) as any;\n const errMessage = errJSON ? undefined : errText;\n\n loggerFor(this).debug(\n `[${requestLogID}] response error (${retryMessage})`,\n 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 );\n\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(\n `[${requestLogID}] response start`,\n formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }),\n );\n\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n\n getAPIList<Item, PageClass extends Pagination.AbstractPage<Item> = Pagination.AbstractPage<Item>>(\n path: string,\n Page: new (...args: any[]) => PageClass,\n opts?: PromiseOrValue<RequestOptions>,\n ): Pagination.PagePromise<PageClass, Item> {\n return this.requestAPIList(\n Page,\n opts && 'then' in opts ?\n opts.then((opts) => ({ method: 'get', path, ...opts }))\n : { method: 'get', path, ...opts },\n );\n }\n\n requestAPIList<\n Item = unknown,\n PageClass extends Pagination.AbstractPage<Item> = Pagination.AbstractPage<Item>,\n >(\n Page: new (...args: ConstructorParameters<typeof Pagination.AbstractPage>) => PageClass,\n options: PromiseOrValue<FinalRequestOptions>,\n ): Pagination.PagePromise<PageClass, Item> {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise<PageClass, Item>(this as any as PukuAI, request, Page);\n }\n\n async fetchWithTimeout(\n url: RequestInfo,\n init: RequestInit | undefined,\n ms: number,\n controller: AbortController,\n ): Promise<Response> {\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) signal.addEventListener('abort', abort, { once: true });\n\n const timeout = setTimeout(abort, ms);\n\n const isReadableBody =\n ((globalThis as any).ReadableStream && options.body instanceof (globalThis as any).ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n\n const fetchOptions: RequestInit = {\n signal: controller.signal as any,\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\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n } finally {\n clearTimeout(timeout);\n }\n }\n\n private async shouldRetry(response: Response): Promise<boolean> {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true') return true;\n if (shouldRetryHeader === 'false') return false;\n\n // Retry on request timeouts.\n if (response.status === 408) return true;\n\n // Retry on lock timeouts.\n if (response.status === 409) return true;\n\n // Retry on rate limits.\n if (response.status === 429) return true;\n\n // Retry internal errors.\n if (response.status >= 500) return true;\n\n return false;\n }\n\n private async retryRequest(\n options: FinalRequestOptions,\n retriesRemaining: number,\n requestLogID: string,\n responseHeaders?: Headers | undefined,\n ): Promise<APIResponseProps> {\n let timeoutMillis: number | undefined;\n\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\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 } else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\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\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n\n private calculateDefaultRetryTimeoutMillis(retriesRemaining: number, maxRetries: number): number {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n\n const numRetries = maxRetries - retriesRemaining;\n\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n\n return sleepSeconds * jitter * 1000;\n }\n\n public calculateNonstreamingTimeout(maxTokens: number, maxNonstreamingTokens?: number): number {\n const maxTime = 60 * 60 * 1000; // 60 minutes\n const defaultTime = 60 * 10 * 1000; // 10 minutes\n\n const expectedTime = (maxTime * maxTokens) / 128000;\n if (expectedTime > defaultTime || (maxNonstreamingTokens != null && maxTokens > maxNonstreamingTokens)) {\n throw new Errors.AnthropicError(\n '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 }\n\n return defaultTime;\n }\n\n async buildRequest(\n inputOptions: FinalRequestOptions,\n { retryCount = 0 }: { retryCount?: number } = {},\n ): Promise<{ req: FinalizedRequestInit; url: string; timeout: number }> {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n\n const url = this.buildURL(path!, query as Record<string, unknown>, defaultBaseURL);\n if ('timeout' in options) 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\n const req: FinalizedRequestInit = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...((globalThis as any).ReadableStream &&\n body instanceof (globalThis as any).ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...((this.fetchOptions as any) ?? {}),\n ...((options.fetchOptions as any) ?? {}),\n };\n\n return { req, url, timeout: options.timeout };\n }\n\n private async buildHeaders({\n options,\n method,\n bodyHeaders,\n retryCount,\n }: {\n options: FinalRequestOptions;\n method: HTTPMethod;\n bodyHeaders: HeadersLike;\n retryCount: number;\n }): Promise<Headers> {\n let idempotencyHeaders: HeadersLike = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey) options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\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\n this.validateHeaders(headers);\n\n return headers.values;\n }\n\n private _makeAbort(controller: AbortController) {\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\n private buildBody({ options: { body, headers: rawHeaders } }: { options: FinalRequestOptions }): {\n bodyHeaders: HeadersLike;\n body: BodyInit | undefined;\n } {\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 as any).Blob && body instanceof (globalThis as any).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 as any).ReadableStream && body instanceof (globalThis as any).ReadableStream)\n ) {\n return { bodyHeaders: undefined, body: body as BodyInit };\n } else if (\n typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))\n ) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body as AsyncIterable<Uint8Array>) };\n } else if (\n typeof body === 'object' &&\n headers.values.get('content-type') === 'application/x-www-form-urlencoded'\n ) {\n return {\n bodyHeaders: { 'content-type': 'application/x-www-form-urlencoded' },\n body: this.stringifyQuery(body),\n };\n } else {\n return this.#encoder({ body, headers });\n }\n }\n\n static Anthropic = this;\n static PukuAI = this;\n static HUMAN_PROMPT = HUMAN_PROMPT;\n static AI_PROMPT = AI_PROMPT;\n static DEFAULT_TIMEOUT = 600000; // 10 minutes\n\n static AnthropicError = Errors.AnthropicError;\n static APIError = Errors.APIError;\n static APIConnectionError = Errors.APIConnectionError;\n static APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\n static APIUserAbortError = Errors.APIUserAbortError;\n static NotFoundError = Errors.NotFoundError;\n static ConflictError = Errors.ConflictError;\n static RateLimitError = Errors.RateLimitError;\n static BadRequestError = Errors.BadRequestError;\n static AuthenticationError = Errors.AuthenticationError;\n static InternalServerError = Errors.InternalServerError;\n static PermissionDeniedError = Errors.PermissionDeniedError;\n static UnprocessableEntityError = Errors.UnprocessableEntityError;\n\n static toFile = Uploads.toFile;\n}\n\n/**\n * API Client for interfacing with the Anthropic API.\n *\n * Public-facing name: `PukuAI`. The vendored SDK originally declared this\n * as `Anthropic`; renamed to `PukuAI` so consumers of @puku-ai/sdk can do\n * `import PukuAI from \"@puku-ai/sdk\"`. `Anthropic` is kept as a static\n * property pointing to the same class for source-compat.\n */\nexport class PukuAI extends BaseAnthropic {\n completions: API.Completions = new API.Completions(this);\n messages: API.Messages = new API.Messages(this);\n models: API.Models = new API.Models(this);\n beta: API.Beta = new API.Beta(this);\n}\n\nPukuAI.Completions = Completions;\nPukuAI.Messages = Messages;\nPukuAI.Models = Models;\nPukuAI.Beta = Beta;\n\n// Backwards-compat: previous versions of this SDK exported the class as\n// `Anthropic`. We expose it under both names.\nPukuAI.Anthropic = PukuAI;\n\nexport declare namespace PukuAI {\n export type RequestOptions = Opts.RequestOptions;\n\n export type { ApiKeySetter };\n\n export import Page = Pagination.Page;\n export { type PageParams as PageParams, type PageResponse as PageResponse };\n\n export import TokenPage = Pagination.TokenPage;\n export { type TokenPageParams as TokenPageParams, type TokenPageResponse as TokenPageResponse };\n\n export import PageCursor = Pagination.PageCursor;\n export { type PageCursorParams as PageCursorParams, type PageCursorResponse as PageCursorResponse };\n\n export {\n Completions as Completions,\n type Completion as Completion,\n type CompletionCreateParams as CompletionCreateParams,\n type CompletionCreateParamsNonStreaming as CompletionCreateParamsNonStreaming,\n type CompletionCreateParamsStreaming as CompletionCreateParamsStreaming,\n };\n\n export {\n Messages as Messages,\n type Base64ImageSource as Base64ImageSource,\n type Base64PDFSource as Base64PDFSource,\n type BashCodeExecutionOutputBlock as BashCodeExecutionOutputBlock,\n type BashCodeExecutionOutputBlockParam as BashCodeExecutionOutputBlockParam,\n type BashCodeExecutionResultBlock as BashCodeExecutionResultBlock,\n type BashCodeExecutionResultBlockParam as BashCodeExecutionResultBlockParam,\n type BashCodeExecutionToolResultBlock as BashCodeExecutionToolResultBlock,\n type BashCodeExecutionToolResultBlockParam as BashCodeExecutionToolResultBlockParam,\n type BashCodeExecutionToolResultError as BashCodeExecutionToolResultError,\n type BashCodeExecutionToolResultErrorCode as BashCodeExecutionToolResultErrorCode,\n type BashCodeExecutionToolResultErrorParam as BashCodeExecutionToolResultErrorParam,\n type CacheControlEphemeral as CacheControlEphemeral,\n type CacheCreation as CacheCreation,\n type CitationCharLocation as CitationCharLocation,\n type CitationCharLocationParam as CitationCharLocationParam,\n type CitationContentBlockLocation as CitationContentBlockLocation,\n type CitationContentBlockLocationParam as CitationContentBlockLocationParam,\n type CitationPageLocation as CitationPageLocation,\n type CitationPageLocationParam as CitationPageLocationParam,\n type CitationSearchResultLocationParam as CitationSearchResultLocationParam,\n type CitationWebSearchResultLocationParam as CitationWebSearchResultLocationParam,\n type CitationsConfig as CitationsConfig,\n type CitationsConfigParam as CitationsConfigParam,\n type CitationsDelta as CitationsDelta,\n type CitationsSearchResultLocation as CitationsSearchResultLocation,\n type CitationsWebSearchResultLocation as CitationsWebSearchResultLocation,\n type CodeExecutionOutputBlock as CodeExecutionOutputBlock,\n type CodeExecutionOutputBlockParam as CodeExecutionOutputBlockParam,\n type CodeExecutionResultBlock as CodeExecutionResultBlock,\n type CodeExecutionResultBlockParam as CodeExecutionResultBlockParam,\n type CodeExecutionTool20250522 as CodeExecutionTool20250522,\n type CodeExecutionTool20250825 as CodeExecutionTool20250825,\n type CodeExecutionTool20260120 as CodeExecutionTool20260120,\n type CodeExecutionToolResultBlock as CodeExecutionToolResultBlock,\n type CodeExecutionToolResultBlockContent as CodeExecutionToolResultBlockContent,\n type CodeExecutionToolResultBlockParam as CodeExecutionToolResultBlockParam,\n type CodeExecutionToolResultBlockParamContent as CodeExecutionToolResultBlockParamContent,\n type CodeExecutionToolResultError as CodeExecutionToolResultError,\n type CodeExecutionToolResultErrorCode as CodeExecutionToolResultErrorCode,\n type CodeExecutionToolResultErrorParam as CodeExecutionToolResultErrorParam,\n type Container as Container,\n type ContainerUploadBlock as ContainerUploadBlock,\n type ContainerUploadBlockParam as ContainerUploadBlockParam,\n type ContentBlock as ContentBlock,\n type ContentBlockDeltaEvent as ContentBlockDeltaEvent,\n type ContentBlockParam as ContentBlockParam,\n type ContentBlockStartEvent as ContentBlockStartEvent,\n type ContentBlockStopEvent as ContentBlockStopEvent,\n type ContentBlockSource as ContentBlockSource,\n type ContentBlockSourceContent as ContentBlockSourceContent,\n type DirectCaller as DirectCaller,\n type DocumentBlock as DocumentBlock,\n type DocumentBlockParam as DocumentBlockParam,\n type EncryptedCodeExecutionResultBlock as EncryptedCodeExecutionResultBlock,\n type EncryptedCodeExecutionResultBlockParam as EncryptedCodeExecutionResultBlockParam,\n type ImageBlockParam as ImageBlockParam,\n type InputJSONDelta as InputJSONDelta,\n type JSONOutputFormat as JSONOutputFormat,\n type MemoryTool20250818 as MemoryTool20250818,\n type Message as Message,\n type MessageCountTokensTool as MessageCountTokensTool,\n type MessageDeltaEvent as MessageDeltaEvent,\n type MessageDeltaUsage as MessageDeltaUsage,\n type MessageParam as MessageParam,\n type MessageStartEvent as MessageStartEvent,\n type MessageStopEvent as MessageStopEvent,\n type MessageStreamEvent as MessageStreamEvent,\n type MessageTokensCount as MessageTokensCount,\n type Metadata as Metadata,\n type Model as Model,\n type OutputConfig as OutputConfig,\n type PlainTextSource as PlainTextSource,\n type RawContentBlockDelta as RawContentBlockDelta,\n type RawContentBlockDeltaEvent as RawContentBlockDeltaEvent,\n type RawContentBlockStartEvent as RawContentBlockStartEvent,\n type RawContentBlockStopEvent as RawContentBlockStopEvent,\n type RawMessageDeltaEvent as RawMessageDeltaEvent,\n type RawMessageStartEvent as RawMessageStartEvent,\n type RawMessageStopEvent as RawMessageStopEvent,\n type RawMessageStreamEvent as RawMessageStreamEvent,\n type RedactedThinkingBlock as RedactedThinkingBlock,\n type RedactedThinkingBlockParam as RedactedThinkingBlockParam,\n type SearchResultBlockParam as SearchResultBlockParam,\n type ServerToolCaller as ServerToolCaller,\n type ServerToolCaller20260120 as ServerToolCaller20260120,\n type ServerToolUsage as ServerToolUsage,\n type ServerToolUseBlock as ServerToolUseBlock,\n type ServerToolUseBlockParam as ServerToolUseBlockParam,\n type SignatureDelta as SignatureDelta,\n type StopReason as StopReason,\n type TextBlock as TextBlock,\n type TextBlockParam as TextBlockParam,\n type TextCitation as TextCitation,\n type TextCitationParam as TextCitationParam,\n type TextDelta as TextDelta,\n type TextEditorCodeExecutionCreateResultBlock as TextEditorCodeExecutionCreateResultBlock,\n type TextEditorCodeExecutionCreateResultBlockParam as TextEditorCodeExecutionCreateResultBlockParam,\n type TextEditorCodeExecutionStrReplaceResultBlock as TextEditorCodeExecutionStrReplaceResultBlock,\n type TextEditorCodeExecutionStrReplaceResultBlockParam as TextEditorCodeExecutionStrReplaceResultBlockParam,\n type TextEditorCodeExecutionToolResultBlock as TextEditorCodeExecutionToolResultBlock,\n type TextEditorCodeExecutionToolResultBlockParam as TextEditorCodeExecutionToolResultBlockParam,\n type TextEditorCodeExecutionToolResultError as TextEditorCodeExecutionToolResultError,\n type TextEditorCodeExecutionToolResultErrorCode as TextEditorCodeExecutionToolResultErrorCode,\n type TextEditorCodeExecutionToolResultErrorParam as TextEditorCodeExecutionToolResultErrorParam,\n type TextEditorCodeExecutionViewResultBlock as TextEditorCodeExecutionViewResultBlock,\n type TextEditorCodeExecutionViewResultBlockParam as TextEditorCodeExecutionViewResultBlockParam,\n type ThinkingBlock as ThinkingBlock,\n type ThinkingBlockParam as ThinkingBlockParam,\n type ThinkingConfigAdaptive as ThinkingConfigAdaptive,\n type ThinkingConfigDisabled as ThinkingConfigDisabled,\n type ThinkingConfigEnabled as ThinkingConfigEnabled,\n type ThinkingConfigParam as ThinkingConfigParam,\n type ThinkingDelta as ThinkingDelta,\n type Tool as Tool,\n type ToolBash20250124 as ToolBash20250124,\n type ToolChoice as ToolChoice,\n type ToolChoiceAny as ToolChoiceAny,\n type ToolChoiceAuto as ToolChoiceAuto,\n type ToolChoiceNone as ToolChoiceNone,\n type ToolChoiceTool as ToolChoiceTool,\n type ToolReferenceBlock as ToolReferenceBlock,\n type ToolReferenceBlockParam as ToolReferenceBlockParam,\n type ToolResultBlockParam as ToolResultBlockParam,\n type ToolSearchToolBm25_20251119 as ToolSearchToolBm25_20251119,\n type ToolSearchToolRegex20251119 as ToolSearchToolRegex20251119,\n type ToolSearchToolResultBlock as ToolSearchToolResultBlock,\n type ToolSearchToolResultBlockParam as ToolSearchToolResultBlockParam,\n type ToolSearchToolResultError as ToolSearchToolResultError,\n type ToolSearchToolResultErrorCode as ToolSearchToolResultErrorCode,\n type ToolSearchToolResultErrorParam as ToolSearchToolResultErrorParam,\n type ToolSearchToolSearchResultBlock as ToolSearchToolSearchResultBlock,\n type ToolSearchToolSearchResultBlockParam as ToolSearchToolSearchResultBlockParam,\n type ToolTextEditor20250124 as ToolTextEditor20250124,\n type ToolTextEditor20250429 as ToolTextEditor20250429,\n type ToolTextEditor20250728 as ToolTextEditor20250728,\n type ToolUnion as ToolUnion,\n type ToolUseBlock as ToolUseBlock,\n type ToolUseBlockParam as ToolUseBlockParam,\n type URLImageSource as URLImageSource,\n type URLPDFSource as URLPDFSource,\n type Usage as Usage,\n type UserLocation as UserLocation,\n type WebFetchBlock as WebFetchBlock,\n type WebFetchBlockParam as WebFetchBlockParam,\n type WebFetchTool20250910 as WebFetchTool20250910,\n type WebFetchTool20260209 as WebFetchTool20260209,\n type WebFetchTool20260309 as WebFetchTool20260309,\n type WebFetchToolResultBlock as WebFetchToolResultBlock,\n type WebFetchToolResultBlockParam as WebFetchToolResultBlockParam,\n type WebFetchToolResultErrorBlock as WebFetchToolResultErrorBlock,\n type WebFetchToolResultErrorBlockParam as WebFetchToolResultErrorBlockParam,\n type WebFetchToolResultErrorCode as WebFetchToolResultErrorCode,\n type WebSearchResultBlock as WebSearchResultBlock,\n type WebSearchResultBlockParam as WebSearchResultBlockParam,\n type WebSearchTool20250305 as WebSearchTool20250305,\n type WebSearchTool20260209 as WebSearchTool20260209,\n type WebSearchToolRequestError as WebSearchToolRequestError,\n type WebSearchToolResultBlock as WebSearchToolResultBlock,\n type WebSearchToolResultBlockContent as WebSearchToolResultBlockContent,\n type WebSearchToolResultBlockParam as WebSearchToolResultBlockParam,\n type WebSearchToolResultBlockParamContent as WebSearchToolResultBlockParamContent,\n type WebSearchToolResultError as WebSearchToolResultError,\n type WebSearchToolResultErrorCode as WebSearchToolResultErrorCode,\n type MessageCreateParams as MessageCreateParams,\n type MessageCreateParamsNonStreaming as MessageCreateParamsNonStreaming,\n type MessageCreateParamsStreaming as MessageCreateParamsStreaming,\n type MessageStreamParams as MessageStreamParams,\n type MessageCountTokensParams as MessageCountTokensParams,\n };\n\n export {\n Models as Models,\n type CapabilitySupport as CapabilitySupport,\n type ContextManagementCapability as ContextManagementCapability,\n type EffortCapability as EffortCapability,\n type ModelCapabilities as ModelCapabilities,\n type ModelInfo as ModelInfo,\n type ThinkingCapability as ThinkingCapability,\n type ThinkingTypes as ThinkingTypes,\n type ModelInfosPage as ModelInfosPage,\n type ModelRetrieveParams as ModelRetrieveParams,\n type ModelListParams as ModelListParams,\n };\n\n export {\n Beta as Beta,\n type AnthropicBeta as AnthropicBeta,\n type BetaAPIError as BetaAPIError,\n type BetaAuthenticationError as BetaAuthenticationError,\n type BetaBillingError as BetaBillingError,\n type BetaError as BetaError,\n type BetaErrorResponse as BetaErrorResponse,\n type BetaGatewayTimeoutError as BetaGatewayTimeoutError,\n type BetaInvalidRequestError as BetaInvalidRequestError,\n type BetaNotFoundError as BetaNotFoundError,\n type BetaOverloadedError as BetaOverloadedError,\n type BetaPermissionError as BetaPermissionError,\n type BetaRateLimitError as BetaRateLimitError,\n };\n\n export type APIErrorObject = API.APIErrorObject;\n export type AuthenticationError = API.AuthenticationError;\n export type BillingError = API.BillingError;\n export type ErrorObject = API.ErrorObject;\n export type ErrorResponse = API.ErrorResponse;\n export type ErrorType = API.ErrorType;\n export type GatewayTimeoutError = API.GatewayTimeoutError;\n export type InvalidRequestError = API.InvalidRequestError;\n export type NotFoundError = API.NotFoundError;\n export type OverloadedError = API.OverloadedError;\n export type PermissionError = API.PermissionError;\n export type RateLimitError = API.RateLimitError;\n}\n",
50
+ "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport type { RequestInit, RequestInfo, BodyInit } from './internal/builtin-types.js';\nimport type { HTTPMethod, PromiseOrValue, MergedRequestInit, FinalizedRequestInit } from './internal/types.js';\nimport { uuid4 } from './internal/utils/uuid.js';\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from './internal/utils/values.js';\nimport { sleep } from './internal/utils/sleep.js';\nexport type { Logger, LogLevel } from './internal/utils/log.js';\nimport { castToError, isAbortError } from './internal/errors.js';\nimport type { APIResponseProps } from './internal/parse.js';\nimport { getPlatformHeaders } from './internal/detect-platform.js';\nimport * as Shims from './internal/shims.js';\nimport * as Opts from './internal/request-options.js';\nimport { stringifyQuery } from './internal/utils/query.js';\nimport { VERSION } from './version.js';\nimport * as Errors from './core/error.js';\nimport * as Pagination from './core/pagination.js';\nimport {\n type PageParams,\n PageResponse,\n type PageCursorParams,\n PageCursorResponse,\n type TokenPageParams,\n TokenPageResponse,\n} from './core/pagination.js';\nimport * as Uploads from './core/uploads.js';\nimport * as API from './resources/index.js';\nimport { APIPromise } from './core/api-promise.js';\nimport {\n Completion,\n CompletionCreateParams,\n CompletionCreateParamsNonStreaming,\n CompletionCreateParamsStreaming,\n Completions,\n} from './resources/completions.js';\nimport {\n CapabilitySupport,\n ContextManagementCapability,\n EffortCapability,\n ModelCapabilities,\n ModelInfo,\n ModelInfosPage,\n ModelListParams,\n ModelRetrieveParams,\n Models,\n ThinkingCapability,\n ThinkingTypes,\n} from './resources/models.js';\nimport {\n AnthropicBeta,\n Beta,\n BetaAPIError,\n BetaAuthenticationError,\n BetaBillingError,\n BetaError,\n BetaErrorResponse,\n BetaGatewayTimeoutError,\n BetaInvalidRequestError,\n BetaNotFoundError,\n BetaOverloadedError,\n BetaPermissionError,\n BetaRateLimitError,\n} from './resources/beta/beta.js';\nimport {\n Base64ImageSource,\n Base64PDFSource,\n BashCodeExecutionOutputBlock,\n BashCodeExecutionOutputBlockParam,\n BashCodeExecutionResultBlock,\n BashCodeExecutionResultBlockParam,\n BashCodeExecutionToolResultBlock,\n BashCodeExecutionToolResultBlockParam,\n BashCodeExecutionToolResultError,\n BashCodeExecutionToolResultErrorCode,\n BashCodeExecutionToolResultErrorParam,\n CacheControlEphemeral,\n CacheCreation,\n CitationCharLocation,\n CitationCharLocationParam,\n CitationContentBlockLocation,\n CitationContentBlockLocationParam,\n CitationPageLocation,\n CitationPageLocationParam,\n CitationSearchResultLocationParam,\n CitationWebSearchResultLocationParam,\n CitationsConfig,\n CitationsConfigParam,\n CitationsDelta,\n CitationsSearchResultLocation,\n CitationsWebSearchResultLocation,\n CodeExecutionOutputBlock,\n CodeExecutionOutputBlockParam,\n CodeExecutionResultBlock,\n CodeExecutionResultBlockParam,\n CodeExecutionTool20250522,\n CodeExecutionTool20250825,\n CodeExecutionTool20260120,\n CodeExecutionToolResultBlock,\n CodeExecutionToolResultBlockContent,\n CodeExecutionToolResultBlockParam,\n CodeExecutionToolResultBlockParamContent,\n CodeExecutionToolResultError,\n CodeExecutionToolResultErrorCode,\n CodeExecutionToolResultErrorParam,\n Container,\n ContainerUploadBlock,\n ContainerUploadBlockParam,\n ContentBlock,\n ContentBlockDeltaEvent,\n ContentBlockParam,\n ContentBlockStartEvent,\n ContentBlockStopEvent,\n ContentBlockSource,\n ContentBlockSourceContent,\n DirectCaller,\n DocumentBlock,\n DocumentBlockParam,\n EncryptedCodeExecutionResultBlock,\n EncryptedCodeExecutionResultBlockParam,\n ImageBlockParam,\n InputJSONDelta,\n JSONOutputFormat,\n MemoryTool20250818,\n Message,\n MessageStreamParams,\n MessageCountTokensParams,\n MessageCountTokensTool,\n MessageCreateParams,\n MessageCreateParamsNonStreaming,\n MessageCreateParamsStreaming,\n MessageDeltaEvent,\n MessageDeltaUsage,\n MessageParam,\n MessageStartEvent,\n MessageStopEvent,\n MessageStreamEvent,\n MessageTokensCount,\n Messages,\n Metadata,\n Model,\n OutputConfig,\n PlainTextSource,\n RawContentBlockDelta,\n RawContentBlockDeltaEvent,\n RawContentBlockStartEvent,\n RawContentBlockStopEvent,\n RawMessageDeltaEvent,\n RawMessageStartEvent,\n RawMessageStopEvent,\n RawMessageStreamEvent,\n RedactedThinkingBlock,\n RedactedThinkingBlockParam,\n SearchResultBlockParam,\n ServerToolCaller,\n ServerToolCaller20260120,\n ServerToolUsage,\n ServerToolUseBlock,\n ServerToolUseBlockParam,\n SignatureDelta,\n StopReason,\n TextBlock,\n TextBlockParam,\n TextCitation,\n TextCitationParam,\n TextDelta,\n TextEditorCodeExecutionCreateResultBlock,\n TextEditorCodeExecutionCreateResultBlockParam,\n TextEditorCodeExecutionStrReplaceResultBlock,\n TextEditorCodeExecutionStrReplaceResultBlockParam,\n TextEditorCodeExecutionToolResultBlock,\n TextEditorCodeExecutionToolResultBlockParam,\n TextEditorCodeExecutionToolResultError,\n TextEditorCodeExecutionToolResultErrorCode,\n TextEditorCodeExecutionToolResultErrorParam,\n TextEditorCodeExecutionViewResultBlock,\n TextEditorCodeExecutionViewResultBlockParam,\n ThinkingBlock,\n ThinkingBlockParam,\n ThinkingConfigAdaptive,\n ThinkingConfigDisabled,\n ThinkingConfigEnabled,\n ThinkingConfigParam,\n ThinkingDelta,\n Tool,\n ToolBash20250124,\n ToolChoice,\n ToolChoiceAny,\n ToolChoiceAuto,\n ToolChoiceNone,\n ToolChoiceTool,\n ToolReferenceBlock,\n ToolReferenceBlockParam,\n ToolResultBlockParam,\n ToolSearchToolBm25_20251119,\n ToolSearchToolRegex20251119,\n ToolSearchToolResultBlock,\n ToolSearchToolResultBlockParam,\n ToolSearchToolResultError,\n ToolSearchToolResultErrorCode,\n ToolSearchToolResultErrorParam,\n ToolSearchToolSearchResultBlock,\n ToolSearchToolSearchResultBlockParam,\n ToolTextEditor20250124,\n ToolTextEditor20250429,\n ToolTextEditor20250728,\n ToolUnion,\n ToolUseBlock,\n ToolUseBlockParam,\n URLImageSource,\n URLPDFSource,\n Usage,\n UserLocation,\n WebFetchBlock,\n WebFetchBlockParam,\n WebFetchTool20250910,\n WebFetchTool20260209,\n WebFetchTool20260309,\n WebFetchToolResultBlock,\n WebFetchToolResultBlockParam,\n WebFetchToolResultErrorBlock,\n WebFetchToolResultErrorBlockParam,\n WebFetchToolResultErrorCode,\n WebSearchResultBlock,\n WebSearchResultBlockParam,\n WebSearchTool20250305,\n WebSearchTool20260209,\n WebSearchToolRequestError,\n WebSearchToolResultBlock,\n WebSearchToolResultBlockContent,\n WebSearchToolResultBlockParam,\n WebSearchToolResultBlockParamContent,\n WebSearchToolResultError,\n WebSearchToolResultErrorCode,\n} from './resources/messages/messages.js';\nimport { type Fetch } from './internal/builtin-types.js';\nimport { isRunningInBrowser } from './internal/detect-platform.js';\nimport { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers.js';\nimport { FinalRequestOptions, RequestOptions } from './internal/request-options.js';\nimport { readEnv } from './internal/utils/env.js';\nimport {\n type LogLevel,\n type Logger,\n formatRequestDetails,\n loggerFor,\n parseLogLevel,\n} from './internal/utils/log.js';\nimport { isEmptyObj } from './internal/utils/values.js';\n\nexport type ApiKeySetter = () => Promise<string>;\n\nexport interface ClientOptions {\n /**\n * API key used for authentication.\n *\n * - Accepts either a static string or an async function that resolves to a string.\n * - Defaults to process.env['PUKU_API_KEY'].\n * - When a function is provided, it is invoked before each request so you can rotate\n * or refresh credentials at runtime.\n * - The function must return a non-empty string; otherwise an AnthropicError is thrown.\n * - If the function throws, the error is wrapped in an AnthropicError with the original\n * error available as `cause`.\n */\n apiKey?: string | ApiKeySetter | null | undefined;\n\n /**\n * Override the base URL for the API, e.g., \"https://api.example.com/v2/\"\n *\n * Defaults to process.env['PUKU_BASE_URL']. Must be set explicitly —\n * either via the constructor or the `PUKU_BASE_URL` env var. There is\n * no hardcoded fallback.\n */\n baseURL?: string | null | undefined;\n\n /**\n * The maximum amount of time (in milliseconds) that the client should wait for a response\n * from the server before timing out a single request.\n *\n * Note that request timeouts are retried by default, so in a worst-case scenario you may wait\n * much longer than this timeout before the promise succeeds or fails.\n *\n * @unit milliseconds\n */\n timeout?: number | undefined;\n /**\n * Additional `RequestInit` options to be passed to `fetch` calls.\n * Properties will be overridden by per-request `fetchOptions`.\n */\n fetchOptions?: MergedRequestInit | undefined;\n\n /**\n * Specify a custom `fetch` function implementation.\n *\n * If not provided, we expect that `fetch` is defined globally.\n */\n fetch?: Fetch | undefined;\n\n /**\n * The maximum number of times that the client will retry a request in case of a\n * temporary failure, like a network error or a 5XX error from the server.\n *\n * @default 2\n */\n maxRetries?: number | undefined;\n\n /**\n * Default headers to include with every request to the API.\n *\n * These can be removed in individual requests by explicitly setting the\n * header to `null` in request options.\n */\n defaultHeaders?: HeadersLike | undefined;\n\n /**\n * Default query parameters to include with every request to the API.\n *\n * These can be removed in individual requests by explicitly setting the\n * param to `undefined` in request options.\n */\n defaultQuery?: Record<string, string | undefined> | undefined;\n\n /**\n * By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n * Only set this option to `true` if you understand the risks and have appropriate mitigations in place.\n */\n dangerouslyAllowBrowser?: boolean | undefined;\n\n /**\n * Set the log level.\n *\n * Defaults to process.env['ANTHROPIC_LOG'] or 'warn' if it isn't set.\n */\n logLevel?: LogLevel | undefined;\n\n /**\n * Set the logger.\n *\n * Defaults to globalThis.console.\n */\n logger?: Logger | undefined;\n}\n\nexport const HUMAN_PROMPT = '\\\\n\\\\nHuman:';\nexport const AI_PROMPT = '\\\\n\\\\nAssistant:';\n\n/**\n * Base class for Anthropic API clients.\n */\nexport class BasePuku {\n apiKey: string | null;\n\n baseURL: string;\n maxRetries: number;\n timeout: number;\n logger: Logger;\n logLevel: LogLevel | undefined;\n fetchOptions: MergedRequestInit | undefined;\n\n private fetch: Fetch;\n #encoder: Opts.RequestEncoder;\n protected idempotencyHeader?: string;\n protected _options: ClientOptions;\n\n /**\n * API Client for interfacing with the Puku AI gateway.\n *\n * @param {string | null | undefined} [opts.apiKey=process.env['PUKU_API_KEY'] ?? null]\n * @param {string} [opts.baseURL=process.env['PUKU_BASE_URL']] - Override the base URL for the API. Required.\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({\n baseURL = readEnv('PUKU_BASE_URL'),\n apiKey = readEnv('PUKU_API_KEY') ?? null,\n ...opts\n }: ClientOptions = {}) {\n if (!baseURL) {\n throw new Errors.PukuError(\n \"Missing baseURL: pass `baseURL` to the constructor or set the PUKU_BASE_URL environment variable.\",\n );\n }\n\n const options: ClientOptions = {\n apiKey,\n ...opts,\n baseURL,\n };\n\n if (!options.dangerouslyAllowBrowser && isRunningInBrowser()) {\n throw new Errors.AnthropicError(\n \"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 }\n\n this.baseURL = options.baseURL!;\n // Normalize: strip a trailing `/v1` so the SDK can append Anthropic-style\n // paths (`/v1/messages`, etc.) without doubling the prefix.\n if (this.baseURL.endsWith(\"/v1\")) {\n this.baseURL = this.baseURL.slice(0, -3);\n }\n this.timeout = options.timeout ?? BasePuku.DEFAULT_TIMEOUT /* 10 minutes */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('ANTHROPIC_LOG'), \"process.env['ANTHROPIC_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n this.#encoder = Opts.FallbackEncoder;\n\n this._options = options;\n\n this.apiKey = typeof apiKey === 'string' ? apiKey : null;\n }\n\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options: Partial<ClientOptions>): this {\n const client = new (this.constructor as any as new (props: ClientOptions) => typeof this)({\n ...this._options,\n baseURL: this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n apiKey: this.apiKey,\n ...options,\n });\n return client;\n }\n\n /**\n * Check whether the base URL is set to its default.\n */\n #baseURLOverridden(): boolean {\n // baseURL is required at construction time, so it's always overridden\n // relative to any built-in default.\n return true;\n }\n\n protected defaultQuery(): Record<string, string | undefined> | undefined {\n return this._options.defaultQuery;\n }\n\n protected validateHeaders({ values, nulls }: NullableHeaders) {\n if (values.get('x-api-key')) {\n return;\n }\n\n if (this.apiKey && values.get('x-api-key')) {\n return;\n }\n if (nulls.has('x-api-key')) {\n return;\n }\n\n throw new Error(\n 'Could not resolve authentication method. Expected apiKey to be set, or for the \"X-Api-Key\" header to be explicitly omitted',\n );\n }\n\n protected async authHeaders(opts: FinalRequestOptions): Promise<NullableHeaders | undefined> {\n return buildHeaders([await this.apiKeyAuth(opts)]);\n }\n\n protected async apiKeyAuth(opts: FinalRequestOptions): Promise<NullableHeaders | undefined> {\n if (this.apiKey == null) {\n return undefined;\n }\n return buildHeaders([{ 'X-Api-Key': this.apiKey }]);\n }\n\n /**\n * Basic re-implementation of `qs.stringify` for primitive types.\n */\n protected stringifyQuery(query: object | Record<string, unknown>): string {\n return stringifyQuery(query);\n }\n\n private getUserAgent(): string {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n\n protected defaultIdempotencyKey(): string {\n return `stainless-node-retry-${uuid4()}`;\n }\n\n protected makeStatusError(\n status: number,\n error: Object,\n message: string | undefined,\n headers: Headers,\n ): Errors.APIError {\n return Errors.APIError.generate(status, error, message, headers);\n }\n\n buildURL(\n path: string,\n query: Record<string, unknown> | null | undefined,\n defaultBaseURL?: string | undefined,\n ): string {\n const baseURL = (!this.#baseURLOverridden() && defaultBaseURL) || this.baseURL;\n const url =\n isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n\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\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n\n return url.toString();\n }\n\n _calculateNonstreamingTimeout(maxTokens: number): number {\n const defaultTimeout = 10 * 60;\n const expectedTimeout = (60 * 60 * maxTokens) / 128_000;\n if (expectedTimeout > defaultTimeout) {\n throw new Errors.AnthropicError(\n '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 }\n return defaultTimeout * 1000;\n }\n\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n protected async prepareOptions(options: FinalRequestOptions): Promise<void> {}\n\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 protected async prepareRequest(\n request: RequestInit,\n { url, options }: { url: string; options: FinalRequestOptions },\n ): Promise<void> {}\n\n get<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('get', path, opts);\n }\n\n post<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('post', path, opts);\n }\n\n patch<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('patch', path, opts);\n }\n\n put<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('put', path, opts);\n }\n\n delete<Rsp>(path: string, opts?: PromiseOrValue<RequestOptions>): APIPromise<Rsp> {\n return this.methodRequest('delete', path, opts);\n }\n\n private methodRequest<Rsp>(\n method: HTTPMethod,\n path: string,\n opts?: PromiseOrValue<RequestOptions>,\n ): APIPromise<Rsp> {\n return this.request(\n Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }),\n );\n }\n\n request<Rsp>(\n options: PromiseOrValue<FinalRequestOptions>,\n remainingRetries: number | null = null,\n ): APIPromise<Rsp> {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n\n private async makeRequest(\n optionsInput: PromiseOrValue<FinalRequestOptions>,\n retriesRemaining: number | null,\n retryOfRequestLogID: string | undefined,\n ): Promise<APIResponseProps> {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n\n await this.prepareOptions(options);\n\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n\n await this.prepareRequest(req, { url, options });\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\n loggerFor(this).debug(\n `[${requestLogID}] sending request`,\n formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }),\n );\n\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n\n if (response instanceof globalThis.Error) {\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 =\n isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(\n `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`,\n );\n loggerFor(this).debug(\n `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`,\n formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }),\n );\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(\n `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`,\n );\n loggerFor(this).debug(\n `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`,\n formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }),\n );\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'request-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${\n response.ok ? 'succeeded' : 'failed'\n } with status ${response.status} in ${headersTime - startTime}ms`;\n\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(\n `[${requestLogID}] response error (${retryMessage})`,\n formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }),\n );\n return this.retryRequest(\n options,\n retriesRemaining,\n retryOfRequestLogID ?? requestLogID,\n response.headers,\n );\n }\n\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n\n const errText = await response.text().catch((err: any) => castToError(err).message);\n const errJSON = safeJSON(errText) as any;\n const errMessage = errJSON ? undefined : errText;\n\n loggerFor(this).debug(\n `[${requestLogID}] response error (${retryMessage})`,\n 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 );\n\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(\n `[${requestLogID}] response start`,\n formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }),\n );\n\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n\n getAPIList<Item, PageClass extends Pagination.AbstractPage<Item> = Pagination.AbstractPage<Item>>(\n path: string,\n Page: new (...args: any[]) => PageClass,\n opts?: PromiseOrValue<RequestOptions>,\n ): Pagination.PagePromise<PageClass, Item> {\n return this.requestAPIList(\n Page,\n opts && 'then' in opts ?\n opts.then((opts) => ({ method: 'get', path, ...opts }))\n : { method: 'get', path, ...opts },\n );\n }\n\n requestAPIList<\n Item = unknown,\n PageClass extends Pagination.AbstractPage<Item> = Pagination.AbstractPage<Item>,\n >(\n Page: new (...args: ConstructorParameters<typeof Pagination.AbstractPage>) => PageClass,\n options: PromiseOrValue<FinalRequestOptions>,\n ): Pagination.PagePromise<PageClass, Item> {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise<PageClass, Item>(this as any as PukuAI, request, Page);\n }\n\n async fetchWithTimeout(\n url: RequestInfo,\n init: RequestInit | undefined,\n ms: number,\n controller: AbortController,\n ): Promise<Response> {\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) signal.addEventListener('abort', abort, { once: true });\n\n const timeout = setTimeout(abort, ms);\n\n const isReadableBody =\n ((globalThis as any).ReadableStream && options.body instanceof (globalThis as any).ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n\n const fetchOptions: RequestInit = {\n signal: controller.signal as any,\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\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n } finally {\n clearTimeout(timeout);\n }\n }\n\n private async shouldRetry(response: Response): Promise<boolean> {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true') return true;\n if (shouldRetryHeader === 'false') return false;\n\n // Retry on request timeouts.\n if (response.status === 408) return true;\n\n // Retry on lock timeouts.\n if (response.status === 409) return true;\n\n // Retry on rate limits.\n if (response.status === 429) return true;\n\n // Retry internal errors.\n if (response.status >= 500) return true;\n\n return false;\n }\n\n private async retryRequest(\n options: FinalRequestOptions,\n retriesRemaining: number,\n requestLogID: string,\n responseHeaders?: Headers | undefined,\n ): Promise<APIResponseProps> {\n let timeoutMillis: number | undefined;\n\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\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 } else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\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\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n\n private calculateDefaultRetryTimeoutMillis(retriesRemaining: number, maxRetries: number): number {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n\n const numRetries = maxRetries - retriesRemaining;\n\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n\n return sleepSeconds * jitter * 1000;\n }\n\n public calculateNonstreamingTimeout(maxTokens: number, maxNonstreamingTokens?: number): number {\n const maxTime = 60 * 60 * 1000; // 60 minutes\n const defaultTime = 60 * 10 * 1000; // 10 minutes\n\n const expectedTime = (maxTime * maxTokens) / 128000;\n if (expectedTime > defaultTime || (maxNonstreamingTokens != null && maxTokens > maxNonstreamingTokens)) {\n throw new Errors.AnthropicError(\n '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 }\n\n return defaultTime;\n }\n\n async buildRequest(\n inputOptions: FinalRequestOptions,\n { retryCount = 0 }: { retryCount?: number } = {},\n ): Promise<{ req: FinalizedRequestInit; url: string; timeout: number }> {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n\n const url = this.buildURL(path!, query as Record<string, unknown>, defaultBaseURL);\n if ('timeout' in options) 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\n const req: FinalizedRequestInit = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...((globalThis as any).ReadableStream &&\n body instanceof (globalThis as any).ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...((this.fetchOptions as any) ?? {}),\n ...((options.fetchOptions as any) ?? {}),\n };\n\n return { req, url, timeout: options.timeout };\n }\n\n private async buildHeaders({\n options,\n method,\n bodyHeaders,\n retryCount,\n }: {\n options: FinalRequestOptions;\n method: HTTPMethod;\n bodyHeaders: HeadersLike;\n retryCount: number;\n }): Promise<Headers> {\n let idempotencyHeaders: HeadersLike = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey) options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\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\n this.validateHeaders(headers);\n\n return headers.values;\n }\n\n private _makeAbort(controller: AbortController) {\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\n private buildBody({ options: { body, headers: rawHeaders } }: { options: FinalRequestOptions }): {\n bodyHeaders: HeadersLike;\n body: BodyInit | undefined;\n } {\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 as any).Blob && body instanceof (globalThis as any).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 as any).ReadableStream && body instanceof (globalThis as any).ReadableStream)\n ) {\n return { bodyHeaders: undefined, body: body as BodyInit };\n } else if (\n typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))\n ) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body as AsyncIterable<Uint8Array>) };\n } else if (\n typeof body === 'object' &&\n headers.values.get('content-type') === 'application/x-www-form-urlencoded'\n ) {\n return {\n bodyHeaders: { 'content-type': 'application/x-www-form-urlencoded' },\n body: this.stringifyQuery(body),\n };\n } else {\n return this.#encoder({ body, headers });\n }\n }\n\n static Anthropic = this;\n static PukuAI = this;\n static HUMAN_PROMPT = HUMAN_PROMPT;\n static AI_PROMPT = AI_PROMPT;\n static DEFAULT_TIMEOUT = 600000; // 10 minutes\n\n static AnthropicError = Errors.AnthropicError;\n static PukuError = Errors.PukuError;\n static APIError = Errors.APIError;\n static APIConnectionError = Errors.APIConnectionError;\n static APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\n static APIUserAbortError = Errors.APIUserAbortError;\n static NotFoundError = Errors.NotFoundError;\n static ConflictError = Errors.ConflictError;\n static RateLimitError = Errors.RateLimitError;\n static BadRequestError = Errors.BadRequestError;\n static AuthenticationError = Errors.AuthenticationError;\n static InternalServerError = Errors.InternalServerError;\n static PermissionDeniedError = Errors.PermissionDeniedError;\n static UnprocessableEntityError = Errors.UnprocessableEntityError;\n\n static toFile = Uploads.toFile;\n}\n\n/**\n * API Client for interfacing with the Anthropic API.\n *\n * Public-facing name: `PukuAI`. The vendored SDK originally declared this\n * as `Anthropic`; renamed to `PukuAI` so consumers of @puku-ai/sdk can do\n * `import PukuAI from \"@puku-ai/sdk\"`. `Anthropic` is kept as a static\n * property pointing to the same class for source-compat.\n */\nexport class PukuAI extends BasePuku {\n completions: API.Completions = new API.Completions(this);\n messages: API.Messages = new API.Messages(this);\n models: API.Models = new API.Models(this);\n beta: API.Beta = new API.Beta(this);\n}\n\nPukuAI.Completions = Completions;\nPukuAI.Messages = Messages;\nPukuAI.Models = Models;\nPukuAI.Beta = Beta;\n\n// Backwards-compat: previous versions of this SDK exported the class as\n// `Anthropic`. We expose it under both names.\nPukuAI.Anthropic = PukuAI;\n\nexport declare namespace PukuAI {\n export type RequestOptions = Opts.RequestOptions;\n\n export type { ApiKeySetter };\n\n export import Page = Pagination.Page;\n export { type PageParams as PageParams, type PageResponse as PageResponse };\n\n export import TokenPage = Pagination.TokenPage;\n export { type TokenPageParams as TokenPageParams, type TokenPageResponse as TokenPageResponse };\n\n export import PageCursor = Pagination.PageCursor;\n export { type PageCursorParams as PageCursorParams, type PageCursorResponse as PageCursorResponse };\n\n export {\n Completions as Completions,\n type Completion as Completion,\n type CompletionCreateParams as CompletionCreateParams,\n type CompletionCreateParamsNonStreaming as CompletionCreateParamsNonStreaming,\n type CompletionCreateParamsStreaming as CompletionCreateParamsStreaming,\n };\n\n export {\n Messages as Messages,\n type Base64ImageSource as Base64ImageSource,\n type Base64PDFSource as Base64PDFSource,\n type BashCodeExecutionOutputBlock as BashCodeExecutionOutputBlock,\n type BashCodeExecutionOutputBlockParam as BashCodeExecutionOutputBlockParam,\n type BashCodeExecutionResultBlock as BashCodeExecutionResultBlock,\n type BashCodeExecutionResultBlockParam as BashCodeExecutionResultBlockParam,\n type BashCodeExecutionToolResultBlock as BashCodeExecutionToolResultBlock,\n type BashCodeExecutionToolResultBlockParam as BashCodeExecutionToolResultBlockParam,\n type BashCodeExecutionToolResultError as BashCodeExecutionToolResultError,\n type BashCodeExecutionToolResultErrorCode as BashCodeExecutionToolResultErrorCode,\n type BashCodeExecutionToolResultErrorParam as BashCodeExecutionToolResultErrorParam,\n type CacheControlEphemeral as CacheControlEphemeral,\n type CacheCreation as CacheCreation,\n type CitationCharLocation as CitationCharLocation,\n type CitationCharLocationParam as CitationCharLocationParam,\n type CitationContentBlockLocation as CitationContentBlockLocation,\n type CitationContentBlockLocationParam as CitationContentBlockLocationParam,\n type CitationPageLocation as CitationPageLocation,\n type CitationPageLocationParam as CitationPageLocationParam,\n type CitationSearchResultLocationParam as CitationSearchResultLocationParam,\n type CitationWebSearchResultLocationParam as CitationWebSearchResultLocationParam,\n type CitationsConfig as CitationsConfig,\n type CitationsConfigParam as CitationsConfigParam,\n type CitationsDelta as CitationsDelta,\n type CitationsSearchResultLocation as CitationsSearchResultLocation,\n type CitationsWebSearchResultLocation as CitationsWebSearchResultLocation,\n type CodeExecutionOutputBlock as CodeExecutionOutputBlock,\n type CodeExecutionOutputBlockParam as CodeExecutionOutputBlockParam,\n type CodeExecutionResultBlock as CodeExecutionResultBlock,\n type CodeExecutionResultBlockParam as CodeExecutionResultBlockParam,\n type CodeExecutionTool20250522 as CodeExecutionTool20250522,\n type CodeExecutionTool20250825 as CodeExecutionTool20250825,\n type CodeExecutionTool20260120 as CodeExecutionTool20260120,\n type CodeExecutionToolResultBlock as CodeExecutionToolResultBlock,\n type CodeExecutionToolResultBlockContent as CodeExecutionToolResultBlockContent,\n type CodeExecutionToolResultBlockParam as CodeExecutionToolResultBlockParam,\n type CodeExecutionToolResultBlockParamContent as CodeExecutionToolResultBlockParamContent,\n type CodeExecutionToolResultError as CodeExecutionToolResultError,\n type CodeExecutionToolResultErrorCode as CodeExecutionToolResultErrorCode,\n type CodeExecutionToolResultErrorParam as CodeExecutionToolResultErrorParam,\n type Container as Container,\n type ContainerUploadBlock as ContainerUploadBlock,\n type ContainerUploadBlockParam as ContainerUploadBlockParam,\n type ContentBlock as ContentBlock,\n type ContentBlockDeltaEvent as ContentBlockDeltaEvent,\n type ContentBlockParam as ContentBlockParam,\n type ContentBlockStartEvent as ContentBlockStartEvent,\n type ContentBlockStopEvent as ContentBlockStopEvent,\n type ContentBlockSource as ContentBlockSource,\n type ContentBlockSourceContent as ContentBlockSourceContent,\n type DirectCaller as DirectCaller,\n type DocumentBlock as DocumentBlock,\n type DocumentBlockParam as DocumentBlockParam,\n type EncryptedCodeExecutionResultBlock as EncryptedCodeExecutionResultBlock,\n type EncryptedCodeExecutionResultBlockParam as EncryptedCodeExecutionResultBlockParam,\n type ImageBlockParam as ImageBlockParam,\n type InputJSONDelta as InputJSONDelta,\n type JSONOutputFormat as JSONOutputFormat,\n type MemoryTool20250818 as MemoryTool20250818,\n type Message as Message,\n type MessageCountTokensTool as MessageCountTokensTool,\n type MessageDeltaEvent as MessageDeltaEvent,\n type MessageDeltaUsage as MessageDeltaUsage,\n type MessageParam as MessageParam,\n type MessageStartEvent as MessageStartEvent,\n type MessageStopEvent as MessageStopEvent,\n type MessageStreamEvent as MessageStreamEvent,\n type MessageTokensCount as MessageTokensCount,\n type Metadata as Metadata,\n type Model as Model,\n type OutputConfig as OutputConfig,\n type PlainTextSource as PlainTextSource,\n type RawContentBlockDelta as RawContentBlockDelta,\n type RawContentBlockDeltaEvent as RawContentBlockDeltaEvent,\n type RawContentBlockStartEvent as RawContentBlockStartEvent,\n type RawContentBlockStopEvent as RawContentBlockStopEvent,\n type RawMessageDeltaEvent as RawMessageDeltaEvent,\n type RawMessageStartEvent as RawMessageStartEvent,\n type RawMessageStopEvent as RawMessageStopEvent,\n type RawMessageStreamEvent as RawMessageStreamEvent,\n type RedactedThinkingBlock as RedactedThinkingBlock,\n type RedactedThinkingBlockParam as RedactedThinkingBlockParam,\n type SearchResultBlockParam as SearchResultBlockParam,\n type ServerToolCaller as ServerToolCaller,\n type ServerToolCaller20260120 as ServerToolCaller20260120,\n type ServerToolUsage as ServerToolUsage,\n type ServerToolUseBlock as ServerToolUseBlock,\n type ServerToolUseBlockParam as ServerToolUseBlockParam,\n type SignatureDelta as SignatureDelta,\n type StopReason as StopReason,\n type TextBlock as TextBlock,\n type TextBlockParam as TextBlockParam,\n type TextCitation as TextCitation,\n type TextCitationParam as TextCitationParam,\n type TextDelta as TextDelta,\n type TextEditorCodeExecutionCreateResultBlock as TextEditorCodeExecutionCreateResultBlock,\n type TextEditorCodeExecutionCreateResultBlockParam as TextEditorCodeExecutionCreateResultBlockParam,\n type TextEditorCodeExecutionStrReplaceResultBlock as TextEditorCodeExecutionStrReplaceResultBlock,\n type TextEditorCodeExecutionStrReplaceResultBlockParam as TextEditorCodeExecutionStrReplaceResultBlockParam,\n type TextEditorCodeExecutionToolResultBlock as TextEditorCodeExecutionToolResultBlock,\n type TextEditorCodeExecutionToolResultBlockParam as TextEditorCodeExecutionToolResultBlockParam,\n type TextEditorCodeExecutionToolResultError as TextEditorCodeExecutionToolResultError,\n type TextEditorCodeExecutionToolResultErrorCode as TextEditorCodeExecutionToolResultErrorCode,\n type TextEditorCodeExecutionToolResultErrorParam as TextEditorCodeExecutionToolResultErrorParam,\n type TextEditorCodeExecutionViewResultBlock as TextEditorCodeExecutionViewResultBlock,\n type TextEditorCodeExecutionViewResultBlockParam as TextEditorCodeExecutionViewResultBlockParam,\n type ThinkingBlock as ThinkingBlock,\n type ThinkingBlockParam as ThinkingBlockParam,\n type ThinkingConfigAdaptive as ThinkingConfigAdaptive,\n type ThinkingConfigDisabled as ThinkingConfigDisabled,\n type ThinkingConfigEnabled as ThinkingConfigEnabled,\n type ThinkingConfigParam as ThinkingConfigParam,\n type ThinkingDelta as ThinkingDelta,\n type Tool as Tool,\n type ToolBash20250124 as ToolBash20250124,\n type ToolChoice as ToolChoice,\n type ToolChoiceAny as ToolChoiceAny,\n type ToolChoiceAuto as ToolChoiceAuto,\n type ToolChoiceNone as ToolChoiceNone,\n type ToolChoiceTool as ToolChoiceTool,\n type ToolReferenceBlock as ToolReferenceBlock,\n type ToolReferenceBlockParam as ToolReferenceBlockParam,\n type ToolResultBlockParam as ToolResultBlockParam,\n type ToolSearchToolBm25_20251119 as ToolSearchToolBm25_20251119,\n type ToolSearchToolRegex20251119 as ToolSearchToolRegex20251119,\n type ToolSearchToolResultBlock as ToolSearchToolResultBlock,\n type ToolSearchToolResultBlockParam as ToolSearchToolResultBlockParam,\n type ToolSearchToolResultError as ToolSearchToolResultError,\n type ToolSearchToolResultErrorCode as ToolSearchToolResultErrorCode,\n type ToolSearchToolResultErrorParam as ToolSearchToolResultErrorParam,\n type ToolSearchToolSearchResultBlock as ToolSearchToolSearchResultBlock,\n type ToolSearchToolSearchResultBlockParam as ToolSearchToolSearchResultBlockParam,\n type ToolTextEditor20250124 as ToolTextEditor20250124,\n type ToolTextEditor20250429 as ToolTextEditor20250429,\n type ToolTextEditor20250728 as ToolTextEditor20250728,\n type ToolUnion as ToolUnion,\n type ToolUseBlock as ToolUseBlock,\n type ToolUseBlockParam as ToolUseBlockParam,\n type URLImageSource as URLImageSource,\n type URLPDFSource as URLPDFSource,\n type Usage as Usage,\n type UserLocation as UserLocation,\n type WebFetchBlock as WebFetchBlock,\n type WebFetchBlockParam as WebFetchBlockParam,\n type WebFetchTool20250910 as WebFetchTool20250910,\n type WebFetchTool20260209 as WebFetchTool20260209,\n type WebFetchTool20260309 as WebFetchTool20260309,\n type WebFetchToolResultBlock as WebFetchToolResultBlock,\n type WebFetchToolResultBlockParam as WebFetchToolResultBlockParam,\n type WebFetchToolResultErrorBlock as WebFetchToolResultErrorBlock,\n type WebFetchToolResultErrorBlockParam as WebFetchToolResultErrorBlockParam,\n type WebFetchToolResultErrorCode as WebFetchToolResultErrorCode,\n type WebSearchResultBlock as WebSearchResultBlock,\n type WebSearchResultBlockParam as WebSearchResultBlockParam,\n type WebSearchTool20250305 as WebSearchTool20250305,\n type WebSearchTool20260209 as WebSearchTool20260209,\n type WebSearchToolRequestError as WebSearchToolRequestError,\n type WebSearchToolResultBlock as WebSearchToolResultBlock,\n type WebSearchToolResultBlockContent as WebSearchToolResultBlockContent,\n type WebSearchToolResultBlockParam as WebSearchToolResultBlockParam,\n type WebSearchToolResultBlockParamContent as WebSearchToolResultBlockParamContent,\n type WebSearchToolResultError as WebSearchToolResultError,\n type WebSearchToolResultErrorCode as WebSearchToolResultErrorCode,\n type MessageCreateParams as MessageCreateParams,\n type MessageCreateParamsNonStreaming as MessageCreateParamsNonStreaming,\n type MessageCreateParamsStreaming as MessageCreateParamsStreaming,\n type MessageStreamParams as MessageStreamParams,\n type MessageCountTokensParams as MessageCountTokensParams,\n };\n\n export {\n Models as Models,\n type CapabilitySupport as CapabilitySupport,\n type ContextManagementCapability as ContextManagementCapability,\n type EffortCapability as EffortCapability,\n type ModelCapabilities as ModelCapabilities,\n type ModelInfo as ModelInfo,\n type ThinkingCapability as ThinkingCapability,\n type ThinkingTypes as ThinkingTypes,\n type ModelInfosPage as ModelInfosPage,\n type ModelRetrieveParams as ModelRetrieveParams,\n type ModelListParams as ModelListParams,\n };\n\n export {\n Beta as Beta,\n type AnthropicBeta as AnthropicBeta,\n type BetaAPIError as BetaAPIError,\n type BetaAuthenticationError as BetaAuthenticationError,\n type BetaBillingError as BetaBillingError,\n type BetaError as BetaError,\n type BetaErrorResponse as BetaErrorResponse,\n type BetaGatewayTimeoutError as BetaGatewayTimeoutError,\n type BetaInvalidRequestError as BetaInvalidRequestError,\n type BetaNotFoundError as BetaNotFoundError,\n type BetaOverloadedError as BetaOverloadedError,\n type BetaPermissionError as BetaPermissionError,\n type BetaRateLimitError as BetaRateLimitError,\n };\n\n export type APIErrorObject = API.APIErrorObject;\n export type AuthenticationError = API.AuthenticationError;\n export type BillingError = API.BillingError;\n export type ErrorObject = API.ErrorObject;\n export type ErrorResponse = API.ErrorResponse;\n export type ErrorType = API.ErrorType;\n export type GatewayTimeoutError = API.GatewayTimeoutError;\n export type InvalidRequestError = API.InvalidRequestError;\n export type NotFoundError = API.NotFoundError;\n export type OverloadedError = API.OverloadedError;\n export type PermissionError = API.PermissionError;\n export type RateLimitError = API.RateLimitError;\n}\n",
51
51
  "// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n\nimport { AnthropicError } from '../../core/error.js';\nimport { encodeUTF8 } from './bytes.js';\n\nexport const toBase64 = (data: string | Uint8Array | null | undefined): string => {\n if (!data) return '';\n\n if (typeof (globalThis as any).Buffer !== 'undefined') {\n return (globalThis as any).Buffer.from(data).toString('base64');\n }\n\n if (typeof data === 'string') {\n data = encodeUTF8(data);\n }\n\n if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, data as any));\n }\n\n throw new AnthropicError('Cannot generate base64 string; Expected `Buffer` or `btoa` to be defined');\n};\n\nexport const fromBase64 = (str: string): Uint8Array => {\n if (typeof (globalThis as any).Buffer !== 'undefined') {\n const buf = (globalThis as any).Buffer.from(str, 'base64');\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\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\n throw new AnthropicError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');\n};\n",
52
52
  "import { pop } from '../internal/utils.js';\n\n// Supported string formats\nconst SUPPORTED_STRING_FORMATS = new Set([\n 'date-time',\n 'time',\n 'date',\n 'duration',\n 'email',\n 'hostname',\n 'uri',\n 'ipv4',\n 'ipv6',\n 'uuid',\n]);\n\nexport type JSONSchema = Record<string, any>;\n\nfunction deepClone<T>(obj: T): T {\n return JSON.parse(JSON.stringify(obj));\n}\n\nexport function transformJSONSchema(jsonSchema: JSONSchema): JSONSchema {\n const workingCopy = deepClone(jsonSchema);\n return _transformJSONSchema(workingCopy);\n}\n\nfunction _transformJSONSchema(jsonSchema: JSONSchema): JSONSchema {\n const strictSchema: JSONSchema = {};\n\n const ref = pop(jsonSchema, '$ref');\n if (ref !== undefined) {\n strictSchema['$ref'] = ref;\n return strictSchema;\n }\n\n const defs = pop(jsonSchema, '$defs');\n if (defs !== undefined) {\n const strictDefs: Record<string, any> = {};\n strictSchema['$defs'] = strictDefs;\n for (const [name, defSchema] of Object.entries(defs)) {\n strictDefs[name] = _transformJSONSchema(defSchema as JSONSchema);\n }\n }\n\n const type = pop(jsonSchema, 'type');\n const anyOf = pop(jsonSchema, 'anyOf');\n const oneOf = pop(jsonSchema, 'oneOf');\n const allOf = pop(jsonSchema, 'allOf');\n\n if (Array.isArray(anyOf)) {\n strictSchema['anyOf'] = anyOf.map((variant) => _transformJSONSchema(variant as JSONSchema));\n } else if (Array.isArray(oneOf)) {\n strictSchema['anyOf'] = oneOf.map((variant) => _transformJSONSchema(variant as JSONSchema));\n } else if (Array.isArray(allOf)) {\n strictSchema['allOf'] = allOf.map((entry) => _transformJSONSchema(entry as JSONSchema));\n } else {\n if (type === undefined) {\n throw new Error('JSON schema must have a type defined if anyOf/oneOf/allOf are not used');\n }\n strictSchema['type'] = type;\n }\n\n const description = pop(jsonSchema, 'description');\n if (description !== undefined) {\n strictSchema['description'] = description;\n }\n\n const title = pop(jsonSchema, 'title');\n if (title !== undefined) {\n strictSchema['title'] = title;\n }\n\n if (type === 'object') {\n const properties = pop(jsonSchema, 'properties') || {};\n\n strictSchema['properties'] = Object.fromEntries(\n Object.entries(properties).map(([key, propSchema]) => [\n key,\n _transformJSONSchema(propSchema as JSONSchema),\n ]),\n );\n\n pop(jsonSchema, 'additionalProperties');\n strictSchema['additionalProperties'] = false;\n\n const required = pop(jsonSchema, 'required');\n if (required !== undefined) {\n strictSchema['required'] = required;\n }\n } else if (type === 'string') {\n const format = pop(jsonSchema, 'format');\n if (format !== undefined && SUPPORTED_STRING_FORMATS.has(format)) {\n strictSchema['format'] = format;\n } else if (format !== undefined) {\n jsonSchema['format'] = format;\n }\n } else if (type === 'array') {\n const items = pop(jsonSchema, 'items');\n if (items !== undefined) {\n strictSchema['items'] = _transformJSONSchema(items as JSONSchema);\n }\n\n const minItems = pop(jsonSchema, 'minItems');\n if (minItems !== undefined && (minItems === 0 || minItems === 1)) {\n strictSchema['minItems'] = minItems;\n } else if (minItems !== undefined) {\n jsonSchema['minItems'] = minItems;\n }\n }\n\n if (Object.keys(jsonSchema).length > 0) {\n const existingDescription = strictSchema['description'];\n strictSchema['description'] =\n (existingDescription ? existingDescription + '\\n\\n' : '') +\n '{' +\n Object.entries(jsonSchema)\n .map(([key, value]) => `${key}: ${JSON.stringify(value)}`)\n .join(', ') +\n '}';\n }\n\n return strictSchema;\n}\n",
53
53
  "import { FromSchema, JSONSchema } from 'json-schema-to-ts';\nimport { Promisable, BetaRunnableTool, BetaToolRunContext } from '../../lib/tools/BetaRunnableTool.js';\nimport { BetaToolResultContentBlockParam } from '../../resources/beta.js';\nimport { AutoParseableBetaOutputFormat } from '../../lib/beta-parser.js';\nimport { AnthropicError } from '../../index.js';\nimport { transformJSONSchema } from '../../lib/transform-json-schema.js';\n\ntype NoInfer<T> = T extends infer R ? R : never;\n\n/**\n * Creates a Tool with a provided JSON schema that can be passed\n * to the `.toolRunner()` method. The schema is used to automatically validate\n * the input arguments for the tool.\n *\n * Mirrors upstream `@anthropic-ai/sdk`'s `betaTool`: `run` may take an\n * optional `BetaToolRunContext` and `close` is honored on the resulting\n * `BetaRunnableTool` so callers that hold resources (e.g. a persistent\n * shell) can clean them up when iteration ends.\n */\nexport function betaTool<const Schema extends Exclude<JSONSchema, boolean> & { type: 'object' }>(options: {\n name: string;\n inputSchema: Schema;\n description: string;\n run: (\n args: NoInfer<FromSchema<Schema>>,\n context?: BetaToolRunContext,\n ) => Promisable<string | Array<BetaToolResultContentBlockParam>>;\n /**\n * Optional cleanup hook for tools that hold process-level resources\n * (e.g. a persistent shell).\n */\n close?: () => Promisable<void>;\n}): BetaRunnableTool<NoInfer<FromSchema<Schema>>> {\n if (options.inputSchema.type !== 'object') {\n throw new Error(\n `JSON schema for tool \"${options.name}\" must be an object, but got ${options.inputSchema.type}`,\n );\n }\n\n return {\n type: 'custom',\n name: options.name,\n input_schema: options.inputSchema,\n description: options.description,\n run: options.run,\n parse: (content: unknown) => content as FromSchema<Schema>,\n ...(options.close ? { close: options.close } : {}),\n } as any;\n}\n\n/**\n * Creates a JSON schema output format object with the given JSON schema.\n * If this is passed to the `.parse()` method then the response message will contain a\n * `.parsed_output` property that is the result of parsing the content with the given JSON schema.\n *\n */\nexport function betaJSONSchemaOutputFormat<\n const Schema extends Exclude<JSONSchema, boolean> & { type: 'object' },\n>(\n jsonSchema: Schema,\n options?: {\n transform?: boolean;\n },\n): AutoParseableBetaOutputFormat<NoInfer<FromSchema<Schema>>> {\n if (jsonSchema.type !== 'object') {\n throw new Error(`JSON schema for tool must be an object, but got ${jsonSchema.type}`);\n }\n\n const transform = options?.transform ?? true;\n // todo: doing this is arguably necessary, but it does change the schema the user passed in\n // so I'm not sure how we should handle that\n jsonSchema = transformJSONSchema(jsonSchema) as Schema;\n\n return {\n type: 'json_schema',\n schema: {\n ...jsonSchema,\n },\n parse: (content) => {\n try {\n return JSON.parse(content);\n } catch (error) {\n throw new AnthropicError(`Failed to parse structured output: ${error}`);\n }\n },\n };\n}",
@@ -59,7 +59,7 @@
59
59
  "/**\n * Shared, Node-only filesystem helpers for the agent toolset's file tools:\n * path confinement (symlink-aware), an atomic write, and language-independent\n * error messages. Kept out of `node.ts` so the tool implementations stay focused\n * and these helpers can be reused by every file tool.\n */\n\nimport * as fs from 'node:fs/promises';\nimport * as path from 'node:path';\nimport { randomUUID } from 'node:crypto';\nimport { ToolError } from '../../lib/tools/ToolError.js';\n\n/** Mode for directories the file tools create — not world-writable under a 0 umask. */\nexport const DIR_CREATE_MODE = 0o755;\n/** Mode for files the file tools create. */\nexport const FILE_CREATE_MODE = 0o644;\n\n/** `realpath` `p`, or return `p` unchanged when it cannot be resolved. */\nasync function realpathOrSelf(p: string): Promise<string> {\n try {\n return await fs.realpath(p);\n } catch {\n return p;\n }\n}\n\n/**\n * Fully resolve `abs`: `realpath` the longest existing ancestor and re-append\n * the rest, but never re-append a component that is itself a symlink — read the\n * link and continue from its target instead. This handles paths being created\n * (write/edit) without letting a symlink leaf (e.g. a dangling one pointing\n * outside a confinement root) slip through unresolved.\n */\nexport async function canonicalize(abs: string): Promise<string> {\n const tail: string[] = [];\n let prefix = abs;\n let hops = 0;\n for (;;) {\n let real: string;\n try {\n real = await fs.realpath(prefix);\n } catch {\n let isLink = false;\n try {\n isLink = (await fs.lstat(prefix)).isSymbolicLink();\n } catch {\n /* prefix truly doesn't exist (ENOENT) — fall through and walk up */\n }\n if (isLink) {\n // Resolve the symlink ourselves and retry; `tail` (the part below it)\n // still applies to the link's target. The hop cap matches Linux\n // MAXSYMLINKS — the same threshold at which `realpath` itself would\n // have returned ELOOP — so a cycle of unresolvable links terminates.\n if (++hops > 40) {\n throw new ToolError(`path ${JSON.stringify(abs)} has too many levels of symbolic links`);\n }\n prefix = path.resolve(path.dirname(prefix), await fs.readlink(prefix));\n continue;\n }\n const parent = path.dirname(prefix);\n if (parent === prefix) return abs; // walked past the FS root without a hit\n tail.push(path.basename(prefix));\n prefix = parent;\n continue;\n }\n return tail.length ? path.join(real, ...tail.reverse()) : real;\n }\n}\n\n/**\n * Resolve `p` and confine it to `root`.\n *\n * Absolute and relative inputs go through the same canonicalise-then-contain\n * check — an absolute path that lands inside `root` is permitted, only paths\n * that resolve *outside* are rejected. Every symlink in `p` (including the\n * leaf, even a dangling one) is resolved before the confinement check, and the\n * resolved path is what the caller then operates on, so a symlink inside `root`\n * that points outside it can neither pass the check nor be followed afterwards.\n *\n * Residual TOCTOU: a component could still be swapped for a symlink between this\n * call and the eventual `fs` operation. Closing that fully needs per-component\n * `O_NOFOLLOW`/`openat`, which Node does not expose ergonomically; this is why a\n * sandbox is still recommended for the toolset as a whole.\n */\nexport async function confineToRoot(\n root: string,\n p: string,\n opts?: { allowOutside?: boolean },\n): Promise<string> {\n const allowOutside = opts?.allowOutside ?? false;\n const realRoot = await realpathOrSelf(path.resolve(root));\n const abs = path.resolve(realRoot, p);\n if (allowOutside) return abs;\n const real = await canonicalize(abs);\n if (real !== realRoot && !real.startsWith(realRoot + path.sep)) {\n throw new ToolError(`path ${JSON.stringify(p)} escapes workdir`);\n }\n return real;\n}\n\n/**\n * Atomically write `content` to `targetPath`: write a sibling temp file, fsync\n * it, then rename over the target. The rename is atomic on most filesystems, so\n * a crash mid-write never leaves the target half-written.\n */\nexport async function atomicWriteFile(targetPath: string, content: string): Promise<void> {\n const dir = path.dirname(targetPath);\n const tempPath = path.join(dir, `.tmp-${process.pid}-${randomUUID()}`);\n let handle: fs.FileHandle | undefined;\n try {\n handle = await fs.open(tempPath, 'wx', FILE_CREATE_MODE);\n await handle.writeFile(content, 'utf-8');\n await handle.sync();\n await handle.close();\n handle = undefined;\n await fs.rename(tempPath, targetPath);\n } catch (err) {\n if (handle) await handle.close().catch(() => {});\n await fs.unlink(tempPath).catch(() => {});\n throw err;\n }\n}\n\n/**\n * Map a thrown filesystem error to a consistent, language-independent message,\n * so the model sees the same wording regardless of the runtime (Node's raw\n * `ENOENT: no such file...` text would otherwise leak through). Falls back to\n * the raw error message for codes we don't special-case.\n */\nexport function fsErrorMessage(err: unknown, file: string): string {\n const code = (err as { code?: string } | null)?.code;\n switch (code) {\n case 'ENOENT':\n return `${file}: no such file or directory`;\n case 'EACCES':\n case 'EPERM':\n return `${file}: permission denied`;\n case 'ENOTDIR':\n return `${file}: not a directory`;\n case 'EISDIR':\n return `${file}: is a directory`;\n case 'ELOOP':\n return `${file}: too many levels of symbolic links`;\n case 'ENAMETOOLONG':\n return `${file}: file name too long`;\n case 'ENOSPC':\n return `${file}: no space left on device`;\n case 'EMFILE':\n case 'ENFILE':\n return `${file}: too many open files`;\n default:\n return `${file}: ${err instanceof Error ? err.message : String(err)}`;\n }\n}\n",
60
60
  "/**\n * Skill plumbing for the agent toolset.\n *\n * NOTE — @puku-ai/sdk does not currently vendor the upstream\n * `/v1/skills/{id}/versions/{version}` download/retrieve/list endpoints or\n * `/v1/sessions/{id}` retrieval surface. The functions in this file that\n * actually talk to the gateway (`setupSkills`, `resolveSkillVersion`,\n * `extractSkillArchive`) are stubbed out and throw a clear\n * `AnthropicError` at runtime, matching the convention used by\n * `node.browser.ts` (which stubs Node-only APIs in the browser bundle).\n *\n * The archive-extraction helpers below them (`assertSafeMemberNames`,\n * `assertNoSpecialMembers`, `runArchiveTool`, `archiveTopDir`, `readHead`)\n * are pure functions over `Buffer`/`string` — no gateway surface — and\n * remain exported so a future vendored skills surface can wire them up\n * without re-implementing the archive validation.\n */\n\nimport * as fs from 'node:fs/promises';\nimport * as path from 'node:path';\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type { PukuAI as Anthropic } from '../../client.js';\nimport { AnthropicError } from '../../core/error.js';\nimport type { AgentToolContext } from './node.js';\n\nconst execFileAsync = promisify(execFile);\n\nfunction notVendored(name: string): never {\n throw new AnthropicError(\n `${name} requires the upstream /v1/skills/{id}/versions/{version} and/or /v1/sessions/{id} resources. ` +\n '@puku-ai/sdk does not yet vendor those endpoints — the agent-toolset ships without skill auto-download. ' +\n 'Use betaAgentToolset20260401({ workdir }) without client/sessionId to get the bare tools.',\n );\n}\n\n/**\n * Download the session agent's skills into `{ctx.workdir}/skills/<name>/`.\n *\n * @puku-ai/sdk stub — throws because the upstream skills/sessions\n * resources aren't vendored yet. Returns a no-op cleanup if `client` or\n * `sessionId` are missing on the context, so call-sites that pass `null`\n * keep working.\n */\nexport async function setupSkills(ctx: AgentToolContext): Promise<() => Promise<void>> {\n const { client, sessionId } = ctx;\n if (!client || !sessionId) return async () => {};\n notVendored('setupSkills');\n}\n\n/**\n * Resolve a skill version alias (`\"latest\"`, …) to its numeric timestamp.\n *\n * @puku-ai/sdk stub — throws because `client.beta.skills.versions.list`\n * isn't vendored yet. Pass a numeric version directly to skip resolution.\n */\nexport async function resolveSkillVersion(\n _client: Anthropic,\n skillId: string,\n version: string,\n): Promise<string> {\n if (/^\\d+$/.test(version)) return version;\n notVendored('resolveSkillVersion');\n}\n\n/**\n * Extract a skill archive (`Response` body) into `dest`.\n *\n * @puku-ai/sdk stub — throws because it's only meaningful in conjunction\n * with `setupSkills`, which itself requires the unvendored skills\n * resources. The pure archive-validation helpers (`assertSafeMemberNames`,\n * `assertNoSpecialMembers`, `runArchiveTool`, `archiveTopDir`, `readHead`)\n * are still exported for downstream callers that have their own archive\n * source.\n */\nexport async function extractSkillArchive(_resp: Response, _dest: string): Promise<void> {\n notVendored('extractSkillArchive');\n}\n\n/** Reject archive members that are absolute or contain a `..` component. */\nexport function assertSafeMemberNames(names: string): void {\n for (const raw of names.split('\\n')) {\n const entry = raw.trim();\n if (!entry) continue;\n if (path.isAbsolute(entry) || entry.split(/[\\\\/]/).includes('..')) {\n throw new AnthropicError(`refusing to extract unsafe archive member: ${entry}`);\n }\n }\n}\n\n/**\n * Reject archives that contain anything other than regular files and\n * directories. The type char is the first byte of each `ls`-style line emitted\n * by `tar -tvf` / `unzip -Z`: `-` file, `d` dir, `l` symlink, `h` hardlink,\n * `b`/`c` device, `p` fifo, `s` socket. A symlink/hardlink member is how an\n * archive escapes its extraction dir even when no name contains `..`.\n */\nexport function assertNoSpecialMembers(verboseListing: string): void {\n for (const line of verboseListing.split('\\n')) {\n const type = line.trimStart()[0];\n if (type === 'l' || type === 'h' || type === 'b' || type === 'c' || type === 'p' || type === 's') {\n throw new AnthropicError('refusing to extract archive with symlink/hardlink/device member');\n }\n }\n}\n\n/**\n * Run an archive CLI (`unzip` for zip archives, `tar` for everything else),\n * returning its stdout. Both binaries must be on `PATH`; a missing one would\n * otherwise surface as an opaque `ENOENT` spawn failure, so it is turned into a\n * clear, specific error naming the missing command.\n */\nexport async function runArchiveTool(cmd: 'unzip' | 'tar', args: string[]): Promise<string> {\n try {\n const { stdout } = await execFileAsync(cmd, args);\n return stdout;\n } catch (e) {\n if (e != null && typeof e === 'object' && (e as { code?: unknown }).code === 'ENOENT') {\n throw new AnthropicError(\n `skill extraction requires the \\`${cmd}\\` command, but it was not found on PATH`,\n );\n }\n throw e;\n }\n}\n\n/**\n * The single top-level directory shared by every entry in a newline-separated\n * archive listing, or `''` if entries don't all live under one common\n * directory. Skill bundles are packaged wrapped in one directory named after\n * the skill (e.g. `pdf/SKILL.md`, `pdf/scripts/...`); the extractor strips it\n * so contents land directly in the skill's dir instead of a redundant nested\n * `<skill>/<skill>/` level. A flat or multi-root archive yields `''`.\n */\nexport function archiveTopDir(listing: string): string {\n let top: string | undefined;\n let nested = false;\n for (const raw of listing.split('\\n')) {\n // Drop `.` / empty segments so a `./pdf/...`-style listing (e.g. from\n // `tar -C dir .`) is treated the same as `pdf/...`.\n const parts = raw\n .trim()\n .split('/')\n .filter((p) => p !== '' && p !== '.');\n if (parts.length === 0) continue;\n const first = parts[0]!;\n if (top === undefined) top = first;\n else if (first !== top) return '';\n if (parts.length > 1) nested = true;\n }\n return top !== undefined && nested ? top : '';\n}\n\n/** Read the first `n` bytes of `file`. */\nexport async function readHead(file: string, n: number): Promise<Buffer> {\n const handle = await fs.open(file, 'r');\n try {\n const buf = Buffer.alloc(n);\n const { bytesRead } = await handle.read(buf, 0, n, 0);\n return buf.subarray(0, bytesRead);\n } finally {\n await handle.close();\n }\n}"
61
61
  ],
62
- "mappings": "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",
63
- "debugId": "E270F57B359B970D64756E2164756E21",
62
+ "mappings": "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",
63
+ "debugId": "E40F809F89B47F8464756E2164756E21",
64
64
  "names": []
65
65
  }