@agents24/client 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/errors.ts","../src/capabilities.ts","../src/url.ts","../src/http.ts","../src/multipart.ts","../src/stream.ts"],"names":["safeToken"],"mappings":"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","file":"chunk-GXISGBVW.js","sourcesContent":["export type Agents24ErrorKind =\n | \"configuration\"\n | \"missing_capability\"\n | \"authentication\"\n | \"authorization\"\n | \"not_found\"\n | \"conflict\"\n | \"quota\"\n | \"rate_limit\"\n | \"validation\"\n | \"protocol\"\n | \"network\"\n | \"aborted\"\n | \"server\";\n\nexport interface FailureView {\n schema_version: \"agents24.failure.v1\";\n failure_id: string;\n code: string;\n category: string;\n message: string;\n retryable: boolean;\n request_id: string | null;\n retry_after_ms: number | null;\n details: Readonly<Record<string, unknown>>;\n}\n\nexport interface ResourcePolicyViolation {\n policy_subject_type: \"agent\" | \"client_deployment\" | \"user\";\n rule_type: \"allow\" | \"quota\";\n resource_type: \"agent\" | \"model\" | \"tool\" | \"toolset\" | \"knowledge_store\";\n resource_name: string;\n aggregation_scope?: \"subject\" | \"consumer\";\n quota_unit?: \"tokens\";\n quota_window?: \"monthly\";\n limit?: number;\n remaining?: number;\n resets_at?: string;\n}\n\nexport class Agents24ClientError extends Error {\n readonly kind: Agents24ErrorKind;\n readonly code: string;\n readonly status: number | undefined;\n readonly failure: FailureView | undefined;\n readonly requestId: string | undefined;\n readonly retryable: boolean;\n readonly violations: readonly ResourcePolicyViolation[];\n readonly cause?: unknown;\n\n constructor(\n message: string,\n options: {\n kind: Agents24ErrorKind;\n code?: string;\n status?: number;\n failure?: FailureView;\n requestId?: string;\n retryable?: boolean;\n violations?: readonly ResourcePolicyViolation[];\n cause?: unknown;\n },\n ) {\n super(message);\n this.name = \"Agents24ClientError\";\n this.kind = options.kind;\n this.code = options.failure?.code ?? options.code ?? \"CLIENT_ERROR\";\n this.status = options.status;\n this.failure = options.failure;\n this.requestId = options.failure?.request_id ?? options.requestId;\n this.retryable = options.failure?.retryable ?? options.retryable ?? false;\n const violations = options.failure?.details.violations;\n this.violations = Array.isArray(violations)\n ? violations as unknown as readonly ResourcePolicyViolation[]\n : options.violations ?? [];\n this.cause = options.cause;\n }\n\n get failureId(): string | undefined { return this.failure?.failure_id; }\n get category(): string | undefined { return this.failure?.category; }\n get retryAfterMs(): number | undefined { return this.failure?.retry_after_ms ?? undefined; }\n get details(): Readonly<Record<string, unknown>> { return this.failure?.details ?? {}; }\n}\n\nexport function missingCapability(name: string): Agents24ClientError {\n return new Agents24ClientError(`Required capability is unavailable: ${name}.`, {\n kind: \"missing_capability\",\n code: \"MISSING_CAPABILITY\",\n });\n}\n\nexport function abortedError(cause?: unknown): Agents24ClientError {\n return new Agents24ClientError(\"The operation was locally detached.\", {\n kind: \"aborted\",\n code: \"ABORTED\",\n cause,\n });\n}\n\nexport function protocolError(message: string, cause?: unknown): Agents24ClientError {\n return new Agents24ClientError(message, {\n kind: \"protocol\",\n code: \"PROTOCOL_ERROR\",\n cause,\n });\n}\n\nexport function errorKindForStatus(status: number): Agents24ErrorKind {\n if (status === 401) return \"authentication\";\n if (status === 403) return \"authorization\";\n if (status === 404) return \"not_found\";\n if (status === 409) return \"conflict\";\n if (status === 422 || status === 400) return \"validation\";\n if (status === 429) return \"rate_limit\";\n return \"server\";\n}\n","import { missingCapability } from \"./errors.js\";\nimport type { Clock, FetchLike, IdProvider, TextDecoderLike, TextEncoderLike } from \"./types.js\";\n\ntype GlobalCapabilities = {\n fetch?: FetchLike;\n TextDecoder?: new (label?: string, options?: { fatal?: boolean }) => TextDecoderLike;\n TextEncoder?: new () => TextEncoderLike;\n crypto?: {\n randomUUID?: () => string;\n getRandomValues?: (array: Uint8Array) => Uint8Array;\n };\n};\n\nfunction globals(): GlobalCapabilities {\n return globalThis as unknown as GlobalCapabilities;\n}\n\nexport function resolveFetch(injected?: FetchLike): FetchLike {\n if (injected) return injected;\n const implementation = globals().fetch;\n if (!implementation) throw missingCapability(\"fetch\");\n return implementation.bind(globalThis) as FetchLike;\n}\n\nexport function resolveDecoderFactory(\n injected?: () => TextDecoderLike,\n): () => TextDecoderLike {\n if (injected) return injected;\n const Constructor = globals().TextDecoder;\n if (!Constructor) throw missingCapability(\"TextDecoder\");\n return () => new Constructor(\"utf-8\", { fatal: true });\n}\n\nexport function resolveEncoder(injected?: TextEncoderLike): TextEncoderLike {\n if (injected) return injected;\n const Constructor = globals().TextEncoder;\n if (!Constructor) throw missingCapability(\"TextEncoder\");\n return new Constructor();\n}\n\nexport function defaultClock(): Clock {\n return { now: () => Date.now() };\n}\n\nfunction randomHex(bytes: number): string {\n const target = new Uint8Array(bytes);\n const crypto = globals().crypto;\n const getRandomValues = crypto?.getRandomValues?.bind(crypto);\n if (!getRandomValues) throw missingCapability(\"crypto.getRandomValues\");\n getRandomValues(target);\n return Array.from(target, (value) => value.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nexport function defaultIds(): IdProvider {\n return {\n createId() {\n const crypto = globals().crypto;\n const randomUUID = crypto?.randomUUID?.bind(crypto);\n return randomUUID ? randomUUID() : randomHex(16);\n },\n };\n}\n\nexport function secureRandomBytes(length: number): Uint8Array {\n const target = new Uint8Array(length);\n const crypto = globals().crypto;\n const getRandomValues = crypto?.getRandomValues?.bind(crypto);\n if (!getRandomValues) throw missingCapability(\"crypto.getRandomValues\");\n return getRandomValues(target);\n}\n","import { Agents24ClientError, missingCapability } from \"./errors.js\";\n\ninterface UrlLike {\n protocol: string;\n username: string;\n password: string;\n hash: string;\n origin: string;\n pathname: string;\n search: string;\n toString(): string;\n}\n\ntype UrlConstructor = new (input: string, base?: string) => UrlLike;\n\nfunction urlConstructor(): UrlConstructor {\n const Constructor = (globalThis as unknown as { URL?: UrlConstructor }).URL;\n if (!Constructor) throw missingCapability(\"URL\");\n return Constructor;\n}\n\nexport function normalizeBaseUrl(input: string): string {\n let parsed: UrlLike;\n try {\n parsed = new (urlConstructor())(input);\n } catch (cause) {\n throw new Agents24ClientError(\"baseUrl must be an absolute HTTP(S) URL.\", {\n kind: \"configuration\",\n code: \"INVALID_BASE_URL\",\n cause,\n });\n }\n if (!/^https?:$/.test(parsed.protocol) || parsed.username || parsed.password || parsed.hash) {\n throw new Agents24ClientError(\"baseUrl must be an absolute HTTP(S) origin without credentials or a fragment.\", {\n kind: \"configuration\",\n code: \"INVALID_BASE_URL\",\n });\n }\n return `${parsed.origin}${parsed.pathname.replace(/\\/+$/, \"\")}`;\n}\n\nexport function absoluteUrl(baseUrl: string, path: string): string {\n return new (urlConstructor())(path, `${baseUrl}/`).toString();\n}\n\nexport function canonicalHtu(input: string): string {\n const parsed = new (urlConstructor())(input);\n parsed.search = \"\";\n parsed.hash = \"\";\n return parsed.toString();\n}\n\nexport function encodePath(value: string): string {\n return encodeURIComponent(value);\n}\n\nexport function appendQuery(path: string, values: Readonly<Record<string, string | number | boolean | undefined>>): string {\n const query = Object.entries(values)\n .filter((entry): entry is [string, string | number | boolean] => entry[1] !== undefined)\n .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)\n .join(\"&\");\n return query ? `${path}?${query}` : path;\n}\n","import { defaultClock } from \"./capabilities.js\";\nimport { Agents24ClientError, errorKindForStatus, type FailureView } from \"./errors.js\";\nimport { absoluteUrl } from \"./url.js\";\nimport type {\n AbortSignalLike,\n ClientSessionAccess,\n ClientSessionProvider,\n Clock,\n FetchLike,\n FetchResponseLike,\n TelemetrySink,\n} from \"./types.js\";\n\nexport interface AuthenticatedHttpOptions {\n baseUrl: string;\n sessionProvider: ClientSessionProvider;\n fetch: FetchLike;\n clock?: Clock;\n telemetry?: TelemetrySink;\n}\n\nexport interface HttpRequestOptions {\n body?: unknown;\n rawBody?: unknown;\n contentType?: string;\n accept?: string;\n idempotencyKey?: string;\n headers?: Readonly<Record<string, string>>;\n signal?: AbortSignalLike | undefined;\n operation: string;\n}\n\nconst RESERVED_REQUEST_HEADERS = new Set([\n \"accept\",\n \"authorization\",\n \"cache-control\",\n \"content-type\",\n \"cookie\",\n \"dpop\",\n \"host\",\n \"idempotency-key\",\n \"origin\",\n \"pragma\",\n \"proxy-authorization\",\n]);\n\nfunction safeToken(value: string, field: string): string {\n if (!value || /[\\r\\n\\0]/.test(value)) {\n throw new Agents24ClientError(`${field} is invalid.`, {\n kind: \"configuration\",\n code: \"INVALID_CREDENTIAL\",\n });\n }\n return value;\n}\n\nfunction appendAdditionalHeaders(\n target: Record<string, string>,\n additional: Readonly<Record<string, string>> | undefined,\n): void {\n for (const [name, value] of Object.entries(additional ?? {})) {\n const normalized = name.toLowerCase();\n if (!/^[a-z0-9!#$%&'*+.^_`|~-]+$/.test(normalized) || RESERVED_REQUEST_HEADERS.has(normalized)) {\n throw new Agents24ClientError(`Reserved or invalid request header: ${name}.`, {\n kind: \"configuration\",\n code: \"RESERVED_REQUEST_HEADER\",\n });\n }\n target[name] = safeToken(value, `Request header ${name}`);\n }\n}\n\nfunction isPublicError(value: unknown): value is FailureView {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const candidate = value as Record<string, unknown>;\n return (\n candidate.schema_version === \"agents24.failure.v1\" &&\n typeof candidate.failure_id === \"string\" &&\n typeof candidate.code === \"string\" &&\n typeof candidate.category === \"string\" &&\n typeof candidate.message === \"string\" &&\n typeof candidate.retryable === \"boolean\" &&\n Boolean(candidate.details && typeof candidate.details === \"object\" && !Array.isArray(candidate.details))\n );\n}\n\nexport async function responseError(response: FetchResponseLike): Promise<Agents24ClientError> {\n let body: unknown;\n try {\n body = await response.json();\n } catch {\n body = undefined;\n }\n if (isPublicError(body)) {\n return new Agents24ClientError(body.message, {\n kind: body.code === \"RESOURCE_POLICY_QUOTA_EXCEEDED\"\n ? \"quota\"\n : errorKindForStatus(response.status),\n code: body.code,\n status: response.status,\n failure: body,\n });\n }\n return new Agents24ClientError(\"The Agents24 runtime request failed.\", {\n kind: errorKindForStatus(response.status),\n code: `HTTP_${response.status}`,\n status: response.status,\n retryable: response.status >= 500,\n });\n}\n\nexport async function responseJson(response: FetchResponseLike): Promise<unknown> {\n try {\n return await response.json();\n } catch (cause) {\n throw new Agents24ClientError(\"The runtime returned invalid JSON.\", {\n kind: \"protocol\",\n code: \"INVALID_JSON_RESPONSE\",\n cause,\n });\n }\n}\n\nfunction assertPrivateResponse(response: FetchResponseLike): void {\n if (response.redirected || (response.status >= 300 && response.status < 400)) {\n throw new Agents24ClientError(\"Authenticated redirects are not allowed.\", {\n kind: \"network\",\n code: \"REDIRECT_REJECTED\",\n status: response.status,\n });\n }\n}\n\nexport class AuthenticatedHttp {\n readonly #baseUrl: string;\n readonly #provider: ClientSessionProvider;\n readonly #fetch: FetchLike;\n readonly #clock: Clock;\n readonly #telemetry: TelemetrySink | undefined;\n readonly #nonces = new Map<string, string>();\n #requestQueue: Promise<void> = Promise.resolve();\n\n constructor(options: AuthenticatedHttpOptions) {\n this.#baseUrl = options.baseUrl;\n this.#provider = options.sessionProvider;\n this.#fetch = options.fetch;\n this.#clock = options.clock ?? defaultClock();\n this.#telemetry = options.telemetry;\n }\n\n async #emit(event: Parameters<TelemetrySink[\"emit\"]>[0]): Promise<void> {\n try {\n await this.#telemetry?.emit(event);\n } catch {\n // Telemetry can never affect the authenticated operation.\n }\n }\n\n async #access(signal?: AbortSignalLike): Promise<ClientSessionAccess> {\n let access = await this.#provider.getAccess({ reason: \"request\", ...(signal ? { signal } : {}) });\n if (access.expiresAt <= this.#clock.now() + 30_000 && this.#provider.refresh) {\n access = await this.#provider.refresh({ reason: \"expired\", ...(signal ? { signal } : {}) });\n }\n return access;\n }\n\n async request(method: string, path: string, options: HttpRequestOptions): Promise<FetchResponseLike> {\n let releaseQueue!: () => void;\n const previousRequest = this.#requestQueue;\n this.#requestQueue = new Promise<void>((resolve) => { releaseQueue = resolve; });\n await previousRequest;\n try {\n return await this.#requestUnlocked(method, path, options);\n } finally {\n releaseQueue();\n }\n }\n\n async #requestUnlocked(method: string, path: string, options: HttpRequestOptions): Promise<FetchResponseLike> {\n const url = absoluteUrl(this.#baseUrl, path);\n const startedAt = this.#clock.now();\n let access = await this.#access(options.signal);\n let nonceRetried = false;\n let refreshRetried = false;\n let retryCount = 0;\n await this.#emit({ type: \"request.started\", operation: options.operation, method, retryCount });\n\n while (true) {\n const token = safeToken(access.accessToken, \"Access token\");\n if (access.tokenType === \"DPoP\" && !access.dpopKeyProvider) {\n throw new Agents24ClientError(\"A DPoP-bound session requires a DPoP key provider.\", {\n kind: \"configuration\",\n code: \"MISSING_DPOP_PROVIDER\",\n });\n }\n const headers: Record<string, string> = {\n Accept: options.accept ?? \"application/json\",\n Authorization: `${access.tokenType} ${token}`,\n \"Cache-Control\": \"no-store\",\n Pragma: \"no-cache\",\n };\n appendAdditionalHeaders(headers, options.headers);\n if (options.body !== undefined) headers[\"Content-Type\"] = \"application/json\";\n if (options.contentType) headers[\"Content-Type\"] = options.contentType;\n if (options.idempotencyKey) headers[\"Idempotency-Key\"] = safeToken(options.idempotencyKey, \"Idempotency key\");\n if (access.dpopKeyProvider) {\n headers.DPoP = await access.dpopKeyProvider.signProof({\n method,\n url,\n accessToken: token,\n nonce: this.#nonces.get(access.sessionId ?? \"default\") ?? access.dpopNonce,\n });\n }\n let response: FetchResponseLike;\n try {\n response = await this.#fetch(url, {\n method,\n headers,\n body: options.rawBody ?? (options.body === undefined ? undefined : JSON.stringify(options.body)),\n ...(options.signal ? { signal: options.signal } : {}),\n redirect: \"error\",\n cache: \"no-store\",\n credentials: \"omit\",\n });\n } catch (cause) {\n if (options.signal?.aborted) {\n throw new Agents24ClientError(\"The operation was locally detached.\", {\n kind: \"aborted\",\n code: \"ABORTED\",\n cause,\n });\n }\n throw new Agents24ClientError(\"The Agents24 runtime could not be reached.\", {\n kind: \"network\",\n code: \"NETWORK_ERROR\",\n retryable: true,\n cause,\n });\n }\n assertPrivateResponse(response);\n const challengedNonce = response.headers.get(\"DPoP-Nonce\");\n if (challengedNonce && access.dpopKeyProvider) {\n this.#nonces.set(access.sessionId ?? \"default\", safeToken(challengedNonce, \"DPoP nonce\"));\n }\n if (\n response.status === 401 &&\n challengedNonce &&\n access.dpopKeyProvider &&\n !nonceRetried\n ) {\n nonceRetried = true;\n retryCount += 1;\n continue;\n }\n if (response.status === 401 && this.#provider.refresh && !refreshRetried) {\n access = await this.#provider.refresh({\n reason: \"unauthorized\",\n ...(options.signal ? { signal: options.signal } : {}),\n });\n refreshRetried = true;\n nonceRetried = false;\n retryCount += 1;\n continue;\n }\n await this.#emit({\n type: \"request.completed\",\n operation: options.operation,\n method,\n status: response.status,\n durationMs: this.#clock.now() - startedAt,\n retryCount,\n });\n return response;\n }\n }\n\n async json<T>(method: string, path: string, options: HttpRequestOptions): Promise<T> {\n const response = await this.request(method, path, options);\n if (!response.ok) throw await responseError(response);\n return (await responseJson(response)) as T;\n }\n}\n\nexport async function dpopTokenRequest(input: {\n fetch: FetchLike;\n url: string;\n method?: string;\n body: unknown;\n dpopKeyProvider?: ClientSessionAccess[\"dpopKeyProvider\"];\n signal?: AbortSignalLike | undefined;\n idempotencyKey?: string;\n nonce?: string | undefined;\n prooflessInitialRequest?: boolean;\n}): Promise<FetchResponseLike> {\n const method = input.method ?? \"POST\";\n let nonce = input.nonce;\n for (let attempt = 0; attempt < 2; attempt += 1) {\n const headers: Record<string, string> = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Cache-Control\": \"no-store\",\n Pragma: \"no-cache\",\n };\n if (input.idempotencyKey) headers[\"Idempotency-Key\"] = safeToken(input.idempotencyKey, \"Idempotency key\");\n if (input.dpopKeyProvider && !(input.prooflessInitialRequest && attempt === 0)) {\n headers.DPoP = await input.dpopKeyProvider.signProof({ method, url: input.url, nonce });\n }\n let response: FetchResponseLike;\n try {\n response = await input.fetch(input.url, {\n method,\n headers,\n body: JSON.stringify(input.body),\n ...(input.signal ? { signal: input.signal } : {}),\n redirect: \"error\",\n cache: \"no-store\",\n credentials: \"omit\",\n });\n } catch (cause) {\n if (input.signal?.aborted) {\n throw new Agents24ClientError(\"The operation was locally detached.\", {\n kind: \"aborted\",\n code: \"ABORTED\",\n cause,\n });\n }\n throw new Agents24ClientError(\"The Agents24 session endpoint could not be reached.\", {\n kind: \"network\",\n code: \"NETWORK_ERROR\",\n retryable: true,\n cause,\n });\n }\n assertPrivateResponse(response);\n const challenge = response.headers.get(\"DPoP-Nonce\");\n if (response.status === 401 && challenge && input.dpopKeyProvider && attempt === 0) {\n nonce = safeToken(challenge, \"DPoP nonce\");\n continue;\n }\n if (input.prooflessInitialRequest && input.dpopKeyProvider && attempt === 0 && response.ok) {\n throw new Agents24ClientError(\"DPoP enrollment succeeded without the required nonce challenge.\", {\n kind: \"authentication\",\n code: \"DPOP_ENROLLMENT_FAILED\",\n });\n }\n return response;\n }\n throw new Agents24ClientError(\"DPoP enrollment failed.\", {\n kind: \"authentication\",\n code: \"DPOP_ENROLLMENT_FAILED\",\n });\n}\n","import { secureRandomBytes } from \"./capabilities.js\";\nimport { Agents24ClientError } from \"./errors.js\";\nimport type { BinaryUploadData, MultipartEncoder, MultipartPart, PortableUpload, TextEncoderLike } from \"./types.js\";\n\nfunction isBlobLike(value: BinaryUploadData): value is Exclude<BinaryUploadData, Uint8Array | ArrayBuffer> {\n return typeof (value as { arrayBuffer?: unknown }).arrayBuffer === \"function\";\n}\n\nasync function toBytes(value: BinaryUploadData): Promise<Uint8Array> {\n if (value instanceof Uint8Array) return value;\n if (value instanceof ArrayBuffer) return new Uint8Array(value);\n if (isBlobLike(value)) return new Uint8Array(await value.arrayBuffer());\n throw new Agents24ClientError(\"Upload data must be bytes, an ArrayBuffer, or a compatible blob-like value.\", {\n kind: \"validation\",\n code: \"INVALID_UPLOAD_DATA\",\n });\n}\n\nfunction safeToken(value: string, field: string): string {\n if (!value || /[\\r\\n\\0]/.test(value)) {\n throw new Agents24ClientError(`${field} contains invalid characters.`, {\n kind: \"validation\",\n code: \"INVALID_MULTIPART_METADATA\",\n });\n }\n return value.replace(/[\"\\\\]/g, \"_\");\n}\n\nfunction concat(chunks: readonly Uint8Array[]): Uint8Array {\n const length = chunks.reduce((total, chunk) => total + chunk.byteLength, 0);\n const output = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return output;\n}\n\nasync function encodePart(part: MultipartPart, boundary: string, encoder: TextEncoderLike): Promise<Uint8Array[]> {\n const field = safeToken(part.field, \"Multipart field\");\n if (typeof part.value === \"string\") {\n return [encoder.encode(`--${boundary}\\r\\nContent-Disposition: form-data; name=\"${field}\"\\r\\n\\r\\n${part.value}\\r\\n`)];\n }\n const upload = part.value as PortableUpload;\n const filename = safeToken(upload.name, \"Upload filename\");\n const mediaType = safeToken(upload.mediaType, \"Upload media type\");\n return [\n encoder.encode(\n `--${boundary}\\r\\nContent-Disposition: form-data; name=\"${field}\"; filename=\"${filename}\"\\r\\nContent-Type: ${mediaType}\\r\\n\\r\\n`,\n ),\n await toBytes(upload.data),\n encoder.encode(\"\\r\\n\"),\n ];\n}\n\nexport function createByteMultipartEncoder(encoder: TextEncoderLike): MultipartEncoder {\n return {\n async encode(parts) {\n const boundary = `agents24-${Array.from(secureRandomBytes(18), (value) => value.toString(16).padStart(2, \"0\")).join(\"\")}`;\n const chunks: Uint8Array[] = [];\n for (const part of parts) chunks.push(...(await encodePart(part, boundary, encoder)));\n chunks.push(encoder.encode(`--${boundary}--\\r\\n`));\n return {\n body: concat(chunks),\n contentType: `multipart/form-data; boundary=${boundary}`,\n };\n },\n };\n}\n","import {\n Agents24ProtocolError,\n createSseParser,\n parseRuntimeSsePayload,\n parseThreadSummarySsePayload,\n type RuntimeEvent,\n type ThreadSummaryEvent,\n} from \"./generated/protocol.js\";\nimport { Agents24ClientError } from \"./errors.js\";\nimport { responseError } from \"./http.js\";\nimport type {\n AbortSignalLike,\n FetchResponseLike,\n RuntimeEventHandler,\n StreamResult,\n TextDecoderLike,\n ThreadSummaryEventHandler,\n} from \"./types.js\";\n\nexport type RuntimeStreamState = StreamResult & {\n detachReason?: \"token_expired\" | \"revoked\" | \"policy_changed\" | \"server_detach\";\n};\n\nfunction detachReason(event: RuntimeEvent): RuntimeStreamState[\"detachReason\"] {\n if (event.event !== \"run.detached\") return undefined;\n const reason = event.payload.reason;\n if (reason === \"token_expired\" || reason === \"revoked\" || reason === \"policy_changed\") return reason;\n return \"server_detach\";\n}\n\nfunction threadId(event: RuntimeEvent): string | undefined {\n const value = event.payload.thread_id;\n return typeof value === \"string\" && value ? value : undefined;\n}\n\nasync function consumeBody(input: {\n response: FetchResponseLike;\n signal?: AbortSignalLike;\n decoder: TextDecoderLike;\n onPayload(payload: string): Promise<void>;\n}): Promise<void> {\n if (!input.response.ok) throw await responseError(input.response);\n if (!input.response.body) {\n throw new Agents24ClientError(\"The stream response did not include a readable body.\", {\n kind: \"protocol\",\n code: \"MISSING_STREAM_BODY\",\n });\n }\n const reader = input.response.body.getReader();\n let locallyAborted = input.signal?.aborted ?? false;\n const onAbort = () => {\n locallyAborted = true;\n void reader.cancel(input.signal?.reason).catch(() => undefined);\n };\n input.signal?.addEventListener(\"abort\", onAbort, { once: true });\n const parser = createSseParser({\n decoder: input.decoder,\n onPayload: input.onPayload,\n ...(input.signal ? { signal: input.signal } : {}),\n });\n try {\n while (!locallyAborted) {\n const chunk = await reader.read();\n if (chunk.value) await parser.push(chunk.value);\n if (chunk.done) break;\n }\n if (!locallyAborted) await parser.finish();\n } catch (cause) {\n if (!locallyAborted) {\n if (cause instanceof Agents24ProtocolError) throw cause;\n throw new Agents24ClientError(\"The runtime stream was interrupted.\", {\n kind: \"network\",\n code: \"STREAM_INTERRUPTED\",\n retryable: true,\n cause,\n });\n }\n } finally {\n input.signal?.removeEventListener(\"abort\", onAbort);\n reader.releaseLock?.();\n }\n if (locallyAborted) {\n throw new Agents24ClientError(\"The runtime stream was locally detached.\", {\n kind: \"aborted\",\n code: \"ABORTED\",\n retryable: false,\n });\n }\n}\n\nexport async function consumeRuntimeStream(input: {\n response: FetchResponseLike;\n signal?: AbortSignalLike;\n decoder: TextDecoderLike;\n onEvent: RuntimeEventHandler;\n afterCursor?: number;\n onProgress?: (state: RuntimeStreamState) => void;\n}): Promise<RuntimeStreamState> {\n let cursor = input.afterCursor ?? null;\n let runId: string | null = null;\n let resolvedThreadId: string | null = null;\n let detached = false;\n let streamComplete = false;\n let reason: RuntimeStreamState[\"detachReason\"];\n await consumeBody({\n response: input.response,\n ...(input.signal ? { signal: input.signal } : {}),\n decoder: input.decoder,\n async onPayload(payload) {\n const event = parseRuntimeSsePayload(payload);\n if (cursor !== null && event.seq <= cursor) return;\n // Public projections preserve the durable run cursor while omitting\n // private events, so visible sequence numbers are monotonic but may skip.\n cursor = event.seq;\n runId = event.run_id;\n resolvedThreadId = threadId(event) ?? resolvedThreadId;\n reason = detachReason(event);\n detached = reason !== undefined;\n streamComplete = (\n event.event === \"run.completed\"\n || event.event === \"run.failed\"\n || event.event === \"run.cancelled\"\n || event.event === \"run.paused\"\n );\n await input.onEvent(event);\n input.onProgress?.({\n runId,\n threadId: resolvedThreadId,\n cursor,\n detached,\n ...(reason ? { detachReason: reason } : {}),\n });\n },\n });\n if (runId && !streamComplete && !detached && !input.signal?.aborted) {\n throw new Agents24ClientError(\"The runtime stream ended before a terminal or detach event.\", {\n kind: \"network\",\n code: \"STREAM_ENDED_BEFORE_TERMINAL\",\n retryable: true,\n });\n }\n return {\n runId,\n threadId: resolvedThreadId,\n cursor,\n detached,\n ...(reason ? { detachReason: reason } : {}),\n };\n}\n\nexport async function consumeThreadSummaryStream(input: {\n response: FetchResponseLike;\n signal?: AbortSignalLike;\n decoder: TextDecoderLike;\n onEvent: ThreadSummaryEventHandler;\n afterCursor?: number;\n onCursor?: (cursor: number) => void;\n}): Promise<number | null> {\n let cursor = input.afterCursor ?? null;\n await consumeBody({\n response: input.response,\n ...(input.signal ? { signal: input.signal } : {}),\n decoder: input.decoder,\n async onPayload(payload) {\n const event: ThreadSummaryEvent = parseThreadSummarySsePayload(payload);\n if (event.event !== \"snapshot_required\" && cursor !== null && event.cursor <= cursor) return;\n cursor = cursor === null ? event.cursor : Math.max(cursor, event.cursor);\n await input.onEvent(event);\n input.onCursor?.(cursor);\n },\n });\n return cursor;\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  // src/generated/protocol.js
2
- var RUNTIME_EVENTS = /* @__PURE__ */ new Set(["run.accepted", "run.snapshot", "run.completed", "run.cancelled", "run.paused", "run.failed", "run.detached", "assistant.delta", "reasoning.update", "tool.started", "tool.completed", "tool.failed", "tool.cancelled", "tool.child_run_started", "tool.child_run_finished", "tool.child_tool_started", "tool.child_tool_completed", "tool.child_tool_failed", "tool.child_tool_cancelled", "context_window.updated", "context.compression.updated", "run_usage.updated", "hitl.requested", "hitl.resolved", "mcp.authorization.required", "mcp.authorization.completed", "mcp.authorization.failed", "attachment.created", "attachment.updated", "attachment.ready", "attachment.failed", "source.added", "citation.added", "ui_blocks.updated", "runtime.error"]);
3
- var RUNTIME_STAGES = /* @__PURE__ */ new Set(["run", "assistant", "reasoning", "tool", "context", "usage", "attachment", "source", "system"]);
4
- var RESPONSE_BLOCK_KINDS = /* @__PURE__ */ new Set(["assistant_text", "reasoning_note", "tool_call", "ui_blocks", "hitl_request", "error", "source", "citation", "attachment", "mcp_authorization", "user_message"]);
2
+ var RUNTIME_EVENTS = /* @__PURE__ */ new Set(["run.accepted", "run.snapshot", "run.completed", "run.cancelled", "run.paused", "run.failed", "run.detached", "assistant.delta", "model.turn.started", "model.turn.completed", "model.turn.failed", "reasoning.update", "node.status.updated", "tool.started", "tool.completed", "tool.failed", "tool.cancelled", "tool.child_run_started", "tool.child_run_finished", "tool.child_tool_started", "tool.child_tool_completed", "tool.child_tool_failed", "tool.child_tool_cancelled", "context_window.updated", "context.compression.updated", "run_usage.updated", "hitl.requested", "hitl.resolved", "mcp.authorization.required", "mcp.authorization.completed", "mcp.authorization.failed", "attachment.created", "attachment.updated", "attachment.ready", "attachment.failed", "source.added", "citation.added", "ui_blocks.updated"]);
3
+ var RUNTIME_STAGES = /* @__PURE__ */ new Set(["run", "assistant", "model", "reasoning", "node", "tool", "context", "usage", "attachment", "source", "system"]);
4
+ var RESPONSE_BLOCK_KINDS = /* @__PURE__ */ new Set(["assistant_text", "reasoning_note", "context_compression", "node_activity", "tool_call", "ui_blocks", "hitl_request", "error", "source", "citation", "attachment", "mcp_authorization", "user_message"]);
5
5
  var THREAD_EVENTS = /* @__PURE__ */ new Set(["thread.summary.updated", "thread.deleted", "snapshot_required"]);
6
6
  var UTC_TIMESTAMP = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;
7
- var CONTRACT_HASH = "de2b507f5d56de2bf7c4d6739c03617c4b4feef6ae827aaaac5f1d6150ec678e";
8
- var RUNTIME_PROTOCOL_VERSION = "run-stream.v2";
7
+ var CONTRACT_HASH = "13f59fd11fc838b1f7a51afe15afcdb6f1429fed94e37a1341c97061882e57d2";
8
+ var RUNTIME_PROTOCOL_VERSION = "run-stream.v3";
9
9
  var THREAD_SUMMARY_PROTOCOL_VERSION = "agents24.thread_summary_event.v1";
10
10
  var Agents24ProtocolError = class extends Error {
11
11
  constructor(category, message, details) {
@@ -24,6 +24,9 @@ function nonEmptyString(value) {
24
24
  function protocolError(category, message, details) {
25
25
  throw new Agents24ProtocolError(category, message, details);
26
26
  }
27
+ function includesProtocolName(values, value) {
28
+ return Array.isArray(values) && values.includes(value);
29
+ }
27
30
  function parseProtocolJson(payload) {
28
31
  try {
29
32
  return JSON.parse(payload);
@@ -42,6 +45,7 @@ function validateResponseBlock(value) {
42
45
  }
43
46
  function validateBlocks(value) {
44
47
  if (!record(value)) return;
48
+ if (value.response_block !== void 0) validateResponseBlock(value.response_block);
45
49
  const blocks = value.response_blocks;
46
50
  if (blocks === void 0) return;
47
51
  if (!Array.isArray(blocks)) {
@@ -49,24 +53,38 @@ function validateBlocks(value) {
49
53
  }
50
54
  for (const block of blocks) validateResponseBlock(block);
51
55
  }
52
- function validateRuntimeEvent(value) {
56
+ function validateModelTurn(event, payload) {
57
+ if (!event.startsWith("model.turn.")) return;
58
+ const expectedStatus = event === "model.turn.started" ? "running" : event === "model.turn.completed" ? "completed" : "failed";
59
+ if (!nonEmptyString(payload.model_turn_id) || !["agent", "model"].includes(payload.kind) || payload.status !== expectedStatus) {
60
+ protocolError("invalid_event", "Model-turn lifecycle payload is invalid.", payload);
61
+ }
62
+ if (payload.iteration !== void 0 && (!Number.isInteger(payload.iteration) || payload.iteration < 0)) {
63
+ protocolError("invalid_event", "Model-turn iteration is invalid.", payload.iteration);
64
+ }
65
+ if (event === "model.turn.completed" && !["text", "tool_calls", "completed"].includes(payload.outcome)) {
66
+ protocolError("invalid_event", "Completed model turn requires a valid outcome.", payload.outcome);
67
+ }
68
+ }
69
+ function validateRuntimeEvent(value, options = {}) {
53
70
  if (!record(value)) {
54
71
  return protocolError("invalid_envelope", "Runtime event must be an object.", value);
55
72
  }
56
73
  if (value.version !== RUNTIME_PROTOCOL_VERSION) {
57
74
  return protocolError("unsupported_version", "Runtime event version is unsupported.", value.version);
58
75
  }
59
- if (!RUNTIME_EVENTS.has(value.event)) {
76
+ if (!RUNTIME_EVENTS.has(value.event) && !includesProtocolName(options.additionalEventNames, value.event)) {
60
77
  return protocolError("unknown_event", "Runtime event name is not in the public protocol.", value.event);
61
78
  }
62
- if (!Number.isInteger(value.seq) || value.seq < 0 || !UTC_TIMESTAMP.test(value.ts || "") || !nonEmptyString(value.run_id) || !RUNTIME_STAGES.has(value.stage) || !record(value.payload)) {
79
+ if (!Number.isInteger(value.seq) || value.seq < 0 || !UTC_TIMESTAMP.test(value.ts || "") || !nonEmptyString(value.run_id) || !RUNTIME_STAGES.has(value.stage) && !includesProtocolName(options.additionalStages, value.stage) || !record(value.payload)) {
63
80
  return protocolError("invalid_envelope", "Runtime event is missing a required public field.", value);
64
81
  }
65
82
  validateBlocks(value.payload);
83
+ validateModelTurn(value.event, value.payload);
66
84
  return value;
67
85
  }
68
- function parseRuntimeEvent(payload) {
69
- return validateRuntimeEvent(parseProtocolJson(payload));
86
+ function parseRuntimeEvent(payload, options) {
87
+ return validateRuntimeEvent(parseProtocolJson(payload), options);
70
88
  }
71
89
  function validateThreadSummaryEvent(value) {
72
90
  if (!record(value) || value.schema_version !== THREAD_SUMMARY_PROTOCOL_VERSION || !THREAD_EVENTS.has(value.event) || !Number.isInteger(value.cursor) || value.cursor < 0) {
@@ -151,13 +169,13 @@ async function parseSseBytes(chunks, options) {
151
169
  await parser.finish();
152
170
  return payloads;
153
171
  }
154
- function parseRuntimeSsePayload(payload) {
155
- return parseRuntimeEvent(payload);
172
+ function parseRuntimeSsePayload(payload, options) {
173
+ return parseRuntimeEvent(payload, options);
156
174
  }
157
175
  function parseThreadSummarySsePayload(payload) {
158
176
  return validateThreadSummaryEvent(parseProtocolJson(payload));
159
177
  }
160
178
 
161
179
  export { Agents24ProtocolError, CONTRACT_HASH, RUNTIME_PROTOCOL_VERSION, THREAD_SUMMARY_PROTOCOL_VERSION, createSseParser, parseProtocolJson, parseRuntimeEvent, parseRuntimeSsePayload, parseSseBytes, parseThreadSummarySsePayload, validateResponseBlock, validateRuntimeEvent, validateThreadSummaryEvent };
162
- //# sourceMappingURL=chunk-VVLMMNXI.js.map
163
- //# sourceMappingURL=chunk-VVLMMNXI.js.map
180
+ //# sourceMappingURL=chunk-IOVCURGW.js.map
181
+ //# sourceMappingURL=chunk-IOVCURGW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generated/protocol.js"],"names":[],"mappings":";AAEA,IAAM,iCAAiB,IAAI,GAAA,CAAI,CAAC,cAAA,EAAe,cAAA,EAAe,iBAAgB,eAAA,EAAgB,YAAA,EAAa,cAAa,cAAA,EAAe,iBAAA,EAAkB,sBAAqB,sBAAA,EAAuB,mBAAA,EAAoB,oBAAmB,qBAAA,EAAsB,cAAA,EAAe,kBAAiB,aAAA,EAAc,gBAAA,EAAiB,wBAAA,EAAyB,yBAAA,EAA0B,2BAA0B,2BAAA,EAA4B,wBAAA,EAAyB,6BAA4B,wBAAA,EAAyB,6BAAA,EAA8B,qBAAoB,gBAAA,EAAiB,eAAA,EAAgB,8BAA6B,6BAAA,EAA8B,0BAAA,EAA2B,sBAAqB,oBAAA,EAAqB,kBAAA,EAAmB,qBAAoB,cAAA,EAAe,gBAAA,EAAiB,mBAAmB,CAAC,CAAA;AACtyB,IAAM,cAAA,mBAAiB,IAAI,GAAA,CAAI,CAAC,OAAM,WAAA,EAAY,OAAA,EAAQ,WAAA,EAAY,MAAA,EAAO,QAAO,SAAA,EAAU,OAAA,EAAQ,YAAA,EAAa,QAAA,EAAS,QAAQ,CAAC,CAAA;AACrI,IAAM,uCAAuB,IAAI,GAAA,CAAI,CAAC,gBAAA,EAAiB,kBAAiB,qBAAA,EAAsB,eAAA,EAAgB,WAAA,EAAY,WAAA,EAAY,gBAAe,OAAA,EAAQ,QAAA,EAAS,YAAW,YAAA,EAAa,mBAAA,EAAoB,cAAc,CAAC,CAAA;AACjO,IAAM,gCAAgB,IAAI,GAAA,CAAI,CAAC,wBAAA,EAAyB,gBAAA,EAAiB,mBAAmB,CAAC,CAAA;AAC7F,IAAM,aAAA,GAAgB,kDAAA;AAEf,IAAM,aAAA,GAAgB;AACtB,IAAM,wBAAA,GAA2B;AACjC,IAAM,+BAAA,GAAkC;AAExC,IAAM,qBAAA,GAAN,cAAoC,KAAA,CAAM;AAAA,EAC/C,WAAA,CAAY,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS;AACtC,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,uBAAA;AACZ,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AACF;AAEA,SAAS,OAAO,KAAA,EAAO;AACrB,EAAA,OAAO,KAAA,KAAU,QAAQ,OAAO,KAAA,KAAU,YAAY,CAAC,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC5E;AAEA,SAAS,eAAe,KAAA,EAAO;AAC7B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,MAAA,GAAS,CAAA;AACrD;AAEA,SAAS,aAAA,CAAc,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS;AACjD,EAAA,MAAM,IAAI,qBAAA,CAAsB,QAAA,EAAU,OAAA,EAAS,OAAO,CAAA;AAC5D;AAEA,SAAS,oBAAA,CAAqB,QAAQ,KAAA,EAAO;AAC3C,EAAA,OAAO,MAAM,OAAA,CAAQ,MAAM,CAAA,IAAK,MAAA,CAAO,SAAS,KAAK,CAAA;AACvD;AAEO,SAAS,kBAAkB,OAAA,EAAS;AACzC,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,MAAM,OAAO,CAAA;AAAA,EAC3B,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,aAAA,CAAc,cAAA,EAAgB,qCAAA,EAAuC,KAAK,CAAA;AAAA,EACnF;AACF;AAEO,SAAS,sBAAsB,KAAA,EAAO;AAC3C,EAAA,IAAI,CAAC,MAAA,CAAO,KAAK,CAAA,IAAK,CAAC,cAAA,CAAe,KAAA,CAAM,EAAE,CAAA,IAAK,CAAC,oBAAA,CAAqB,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA,EAAG;AACxF,IAAA,OAAO,aAAA,CAAc,wBAAA,EAA0B,6CAAA,EAA+C,KAAK,CAAA;AAAA,EACrG;AACA,EAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,KAAA,CAAM,GAAG,CAAA,IAAK,KAAA,CAAM,GAAA,GAAM,CAAA,IAAK,CAAC,cAAA,CAAe,KAAA,CAAM,MAAM,CAAA,EAAG;AAClF,IAAA,OAAO,aAAA,CAAc,wBAAA,EAA0B,+CAAA,EAAiD,KAAK,CAAA;AAAA,EACvG;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,eAAe,KAAA,EAAO;AAC7B,EAAA,IAAI,CAAC,MAAA,CAAO,KAAK,CAAA,EAAG;AACpB,EAAA,IAAI,KAAA,CAAM,cAAA,KAAmB,MAAA,EAAW,qBAAA,CAAsB,MAAM,cAAc,CAAA;AAClF,EAAA,MAAM,SAAS,KAAA,CAAM,eAAA;AACrB,EAAA,IAAI,WAAW,MAAA,EAAW;AAC1B,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAC1B,IAAA,aAAA,CAAc,wBAAA,EAA0B,qCAAqC,MAAM,CAAA;AAAA,EACrF;AACA,EAAA,KAAA,MAAW,KAAA,IAAS,MAAA,EAAQ,qBAAA,CAAsB,KAAK,CAAA;AACzD;AAEA,SAAS,iBAAA,CAAkB,OAAO,OAAA,EAAS;AACzC,EAAA,IAAI,CAAC,KAAA,CAAM,UAAA,CAAW,aAAa,CAAA,EAAG;AACtC,EAAA,MAAM,iBAAiB,KAAA,KAAU,oBAAA,GAAuB,SAAA,GAAY,KAAA,KAAU,yBAAyB,WAAA,GAAc,QAAA;AACrH,EAAA,IAAI,CAAC,cAAA,CAAe,OAAA,CAAQ,aAAa,CAAA,IAAK,CAAC,CAAC,OAAA,EAAS,OAAO,CAAA,CAAE,SAAS,OAAA,CAAQ,IAAI,CAAA,IAAK,OAAA,CAAQ,WAAW,cAAA,EAAgB;AAC7H,IAAA,aAAA,CAAc,eAAA,EAAiB,4CAA4C,OAAO,CAAA;AAAA,EACpF;AACA,EAAA,IAAI,OAAA,CAAQ,SAAA,KAAc,MAAA,KAAc,CAAC,MAAA,CAAO,SAAA,CAAU,OAAA,CAAQ,SAAS,CAAA,IAAK,OAAA,CAAQ,SAAA,GAAY,CAAA,CAAA,EAAI;AACtG,IAAA,aAAA,CAAc,eAAA,EAAiB,kCAAA,EAAoC,OAAA,CAAQ,SAAS,CAAA;AAAA,EACtF;AACA,EAAA,IAAI,KAAA,KAAU,sBAAA,IAA0B,CAAC,CAAC,MAAA,EAAQ,YAAA,EAAc,WAAW,CAAA,CAAE,QAAA,CAAS,OAAA,CAAQ,OAAO,CAAA,EAAG;AACtG,IAAA,aAAA,CAAc,eAAA,EAAiB,gDAAA,EAAkD,OAAA,CAAQ,OAAO,CAAA;AAAA,EAClG;AACF;AAEO,SAAS,oBAAA,CAAqB,KAAA,EAAO,OAAA,GAAU,EAAC,EAAG;AACxD,EAAA,IAAI,CAAC,MAAA,CAAO,KAAK,CAAA,EAAG;AAClB,IAAA,OAAO,aAAA,CAAc,kBAAA,EAAoB,kCAAA,EAAoC,KAAK,CAAA;AAAA,EACpF;AACA,EAAA,IAAI,KAAA,CAAM,YAAY,wBAAA,EAA0B;AAC9C,IAAA,OAAO,aAAA,CAAc,qBAAA,EAAuB,uCAAA,EAAyC,KAAA,CAAM,OAAO,CAAA;AAAA,EACpG;AACA,EAAA,IAAI,CAAC,cAAA,CAAe,GAAA,CAAI,KAAA,CAAM,KAAK,CAAA,IAAK,CAAC,oBAAA,CAAqB,OAAA,CAAQ,oBAAA,EAAsB,KAAA,CAAM,KAAK,CAAA,EAAG;AACxG,IAAA,OAAO,aAAA,CAAc,eAAA,EAAiB,mDAAA,EAAqD,KAAA,CAAM,KAAK,CAAA;AAAA,EACxG;AACA,EAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,KAAA,CAAM,GAAG,KAAK,KAAA,CAAM,GAAA,GAAM,CAAA,IAAK,CAAC,cAAc,IAAA,CAAK,KAAA,CAAM,MAAM,EAAE,CAAA,IACnF,CAAC,cAAA,CAAe,KAAA,CAAM,MAAM,CAAA,IAC3B,CAAC,cAAA,CAAe,GAAA,CAAI,KAAA,CAAM,KAAK,KAAK,CAAC,oBAAA,CAAqB,OAAA,CAAQ,gBAAA,EAAkB,MAAM,KAAK,CAAA,IAChG,CAAC,MAAA,CAAO,KAAA,CAAM,OAAO,CAAA,EAAG;AAC1B,IAAA,OAAO,aAAA,CAAc,kBAAA,EAAoB,mDAAA,EAAqD,KAAK,CAAA;AAAA,EACrG;AACA,EAAA,cAAA,CAAe,MAAM,OAAO,CAAA;AAC5B,EAAA,iBAAA,CAAkB,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA;AAC5C,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,iBAAA,CAAkB,SAAS,OAAA,EAAS;AAClD,EAAA,OAAO,oBAAA,CAAqB,iBAAA,CAAkB,OAAO,CAAA,EAAG,OAAO,CAAA;AACjE;AAEO,SAAS,2BAA2B,KAAA,EAAO;AAChD,EAAA,IAAI,CAAC,OAAO,KAAK,CAAA,IAAK,MAAM,cAAA,KAAmB,+BAAA,IAC3C,CAAC,aAAA,CAAc,GAAA,CAAI,MAAM,KAAK,CAAA,IAAK,CAAC,MAAA,CAAO,SAAA,CAAU,MAAM,MAAM,CAAA,IAAK,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAC1F,IAAA,OAAO,aAAA,CAAc,wBAAA,EAA0B,2CAAA,EAA6C,KAAK,CAAA;AAAA,EACnG;AACA,EAAA,IAAI,MAAM,KAAA,KAAU,wBAAA,IAA4B,CAAC,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,EAAG;AACrE,IAAA,OAAO,aAAA,CAAc,wBAAA,EAA0B,+CAAA,EAAiD,KAAK,CAAA;AAAA,EACvG;AACA,EAAA,IAAI,MAAM,KAAA,KAAU,gBAAA,IAAoB,CAAC,cAAA,CAAe,KAAA,CAAM,SAAS,CAAA,EAAG;AACxE,IAAA,OAAO,aAAA,CAAc,wBAAA,EAA0B,kDAAA,EAAoD,KAAK,CAAA;AAAA,EAC1G;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,cAAc,KAAA,EAAO;AAC5B,EAAA,MAAM,OAAO,EAAC;AACd,EAAA,KAAA,MAAW,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,YAAY,CAAA,EAAG;AAC5C,IAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AACnC,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AAClC,IAAA,MAAM,QAAQ,SAAA,GAAY,CAAA,GAAI,OAAO,IAAA,CAAK,KAAA,CAAM,GAAG,SAAS,CAAA;AAC5D,IAAA,IAAI,QAAQ,SAAA,GAAY,CAAA,GAAI,KAAK,IAAA,CAAK,KAAA,CAAM,YAAY,CAAC,CAAA;AACzD,IAAA,IAAI,MAAM,UAAA,CAAW,GAAG,GAAG,KAAA,GAAQ,KAAA,CAAM,MAAM,CAAC,CAAA;AAChD,IAAA,IAAI,KAAA,KAAU,MAAA,EAAQ,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,GAAI,IAAA;AACzC;AAEA,SAAS,gBAAgB,MAAA,EAAQ;AAC/B,EAAA,MAAM,KAAA,GAAQ,oBAAA,CAAqB,IAAA,CAAK,MAAM,CAAA;AAC9C,EAAA,OAAO,KAAA,GAAQ,EAAE,KAAA,EAAO,KAAA,CAAM,KAAA,EAAO,QAAQ,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA,EAAO,GAAI,IAAA;AACnE;AAEO,SAAS,gBAAgB,OAAA,EAAS;AACvC,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAW,MAAA,EAAO,GAAI,OAAA;AACvC,EAAA,IAAI,CAAC,WAAW,OAAO,OAAA,CAAQ,WAAW,UAAA,IAAc,OAAO,cAAc,UAAA,EAAY;AACvF,IAAA,aAAA,CAAc,oBAAoB,yDAAyD,CAAA;AAAA,EAC7F;AACA,EAAA,IAAI,MAAA,GAAS,EAAA;AACb,EAAA,IAAI,QAAA,GAAW,KAAA;AAEf,EAAA,eAAe,MAAM,aAAA,EAAe;AAClC,IAAA,IAAI,QAAA,GAAW,gBAAgB,MAAM,CAAA;AACrC,IAAA,OAAO,QAAA,EAAU;AACf,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,SAAS,KAAK,CAAA;AAC5C,MAAA,MAAA,GAAS,MAAA,CAAO,KAAA,CAAM,QAAA,CAAS,KAAA,GAAQ,SAAS,MAAM,CAAA;AACtD,MAAA,MAAM,OAAA,GAAU,cAAc,KAAK,CAAA;AACnC,MAAA,IAAI,OAAA,KAAY,IAAA,EAAM,MAAM,SAAA,CAAU,OAAO,CAAA;AAC7C,MAAA,IAAI,QAAQ,OAAA,EAAS;AACrB,MAAA,QAAA,GAAW,gBAAgB,MAAM,CAAA;AAAA,IACnC;AACA,IAAA,IAAI,aAAA,IAAiB,MAAA,CAAO,IAAA,EAAK,EAAG;AAClC,MAAA,MAAM,OAAA,GAAU,cAAc,MAAM,CAAA;AACpC,MAAA,MAAA,GAAS,EAAA;AACT,MAAA,IAAI,OAAA,KAAY,IAAA,EAAM,MAAM,SAAA,CAAU,OAAO,CAAA;AAAA,IAC/C;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAM,KAAK,KAAA,EAAO;AAChB,MAAA,IAAI,QAAA,EAAU,aAAA,CAAc,kBAAA,EAAoB,sCAAsC,CAAA;AACtF,MAAA,IAAI,QAAQ,OAAA,EAAS;AACrB,MAAA,MAAA,IAAU,QAAQ,MAAA,CAAO,KAAA,EAAO,EAAE,MAAA,EAAQ,MAAM,CAAA;AAChD,MAAA,MAAM,MAAM,KAAK,CAAA;AAAA,IACnB,CAAA;AAAA,IACA,MAAM,MAAA,GAAS;AACb,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,QAAA,GAAW,IAAA;AACX,MAAA,IAAI,QAAQ,OAAA,EAAS;AACrB,MAAA,MAAA,IAAU,QAAQ,MAAA,EAAO;AACzB,MAAA,MAAM,MAAM,IAAI,CAAA;AAAA,IAClB;AAAA,GACF;AACF;AAEA,eAAsB,aAAA,CAAc,QAAQ,OAAA,EAAS;AACnD,EAAA,MAAM,WAAW,EAAC;AAClB,EAAA,MAAM,SAAS,eAAA,CAAgB;AAAA,IAC7B,GAAG,OAAA;AAAA,IACH,SAAA,EAAW,OAAO,OAAA,KAAY;AAC5B,MAAA,QAAA,CAAS,KAAK,OAAO,CAAA;AACrB,MAAA,IAAI,OAAA,CAAQ,SAAA,EAAW,MAAM,OAAA,CAAQ,UAAU,OAAO,CAAA;AAAA,IACxD;AAAA,GACD,CAAA;AACD,EAAA,WAAA,MAAiB,SAAS,MAAA,EAAQ;AAChC,IAAA,IAAI,OAAA,CAAQ,QAAQ,OAAA,EAAS;AAC7B,IAAA,MAAM,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA,EACzB;AACA,EAAA,MAAM,OAAO,MAAA,EAAO;AACpB,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,sBAAA,CAAuB,SAAS,OAAA,EAAS;AACvD,EAAA,OAAO,iBAAA,CAAkB,SAAS,OAAO,CAAA;AAC3C;AAEO,SAAS,6BAA6B,OAAA,EAAS;AACpD,EAAA,OAAO,0BAAA,CAA2B,iBAAA,CAAkB,OAAO,CAAC,CAAA;AAC9D","file":"chunk-IOVCURGW.js","sourcesContent":["// @generated by @agents24/sdk-contract; DO NOT EDIT.\n// contract-sha256: 13f59fd11fc838b1f7a51afe15afcdb6f1429fed94e37a1341c97061882e57d2\nconst RUNTIME_EVENTS = new Set([\"run.accepted\",\"run.snapshot\",\"run.completed\",\"run.cancelled\",\"run.paused\",\"run.failed\",\"run.detached\",\"assistant.delta\",\"model.turn.started\",\"model.turn.completed\",\"model.turn.failed\",\"reasoning.update\",\"node.status.updated\",\"tool.started\",\"tool.completed\",\"tool.failed\",\"tool.cancelled\",\"tool.child_run_started\",\"tool.child_run_finished\",\"tool.child_tool_started\",\"tool.child_tool_completed\",\"tool.child_tool_failed\",\"tool.child_tool_cancelled\",\"context_window.updated\",\"context.compression.updated\",\"run_usage.updated\",\"hitl.requested\",\"hitl.resolved\",\"mcp.authorization.required\",\"mcp.authorization.completed\",\"mcp.authorization.failed\",\"attachment.created\",\"attachment.updated\",\"attachment.ready\",\"attachment.failed\",\"source.added\",\"citation.added\",\"ui_blocks.updated\"]);\nconst RUNTIME_STAGES = new Set([\"run\",\"assistant\",\"model\",\"reasoning\",\"node\",\"tool\",\"context\",\"usage\",\"attachment\",\"source\",\"system\"]);\nconst RESPONSE_BLOCK_KINDS = new Set([\"assistant_text\",\"reasoning_note\",\"context_compression\",\"node_activity\",\"tool_call\",\"ui_blocks\",\"hitl_request\",\"error\",\"source\",\"citation\",\"attachment\",\"mcp_authorization\",\"user_message\"]);\nconst THREAD_EVENTS = new Set([\"thread.summary.updated\",\"thread.deleted\",\"snapshot_required\"]);\nconst UTC_TIMESTAMP = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$/;\n\nexport const CONTRACT_HASH = \"13f59fd11fc838b1f7a51afe15afcdb6f1429fed94e37a1341c97061882e57d2\";\nexport const RUNTIME_PROTOCOL_VERSION = \"run-stream.v3\";\nexport const THREAD_SUMMARY_PROTOCOL_VERSION = \"agents24.thread_summary_event.v1\";\n\nexport class Agents24ProtocolError extends Error {\n constructor(category, message, details) {\n super(message);\n this.name = \"Agents24ProtocolError\";\n this.category = category;\n this.details = details;\n }\n}\n\nfunction record(value) {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction nonEmptyString(value) {\n return typeof value === \"string\" && value.length > 0;\n}\n\nfunction protocolError(category, message, details) {\n throw new Agents24ProtocolError(category, message, details);\n}\n\nfunction includesProtocolName(values, value) {\n return Array.isArray(values) && values.includes(value);\n}\n\nexport function parseProtocolJson(payload) {\n try {\n return JSON.parse(payload);\n } catch (cause) {\n return protocolError(\"invalid_json\", \"Protocol payload is not valid JSON.\", cause);\n }\n}\n\nexport function validateResponseBlock(value) {\n if (!record(value) || !nonEmptyString(value.id) || !RESPONSE_BLOCK_KINDS.has(value.kind)) {\n return protocolError(\"invalid_response_block\", \"Response block identity or kind is invalid.\", value);\n }\n if (!Number.isInteger(value.seq) || value.seq < 0 || !nonEmptyString(value.status)) {\n return protocolError(\"invalid_response_block\", \"Response block sequence or status is invalid.\", value);\n }\n return value;\n}\n\nfunction validateBlocks(value) {\n if (!record(value)) return;\n if (value.response_block !== undefined) validateResponseBlock(value.response_block);\n const blocks = value.response_blocks;\n if (blocks === undefined) return;\n if (!Array.isArray(blocks)) {\n protocolError(\"invalid_response_block\", \"response_blocks must be an array.\", blocks);\n }\n for (const block of blocks) validateResponseBlock(block);\n}\n\nfunction validateModelTurn(event, payload) {\n if (!event.startsWith(\"model.turn.\")) return;\n const expectedStatus = event === \"model.turn.started\" ? \"running\" : event === \"model.turn.completed\" ? \"completed\" : \"failed\";\n if (!nonEmptyString(payload.model_turn_id) || ![\"agent\", \"model\"].includes(payload.kind) || payload.status !== expectedStatus) {\n protocolError(\"invalid_event\", \"Model-turn lifecycle payload is invalid.\", payload);\n }\n if (payload.iteration !== undefined && (!Number.isInteger(payload.iteration) || payload.iteration < 0)) {\n protocolError(\"invalid_event\", \"Model-turn iteration is invalid.\", payload.iteration);\n }\n if (event === \"model.turn.completed\" && ![\"text\", \"tool_calls\", \"completed\"].includes(payload.outcome)) {\n protocolError(\"invalid_event\", \"Completed model turn requires a valid outcome.\", payload.outcome);\n }\n}\n\nexport function validateRuntimeEvent(value, options = {}) {\n if (!record(value)) {\n return protocolError(\"invalid_envelope\", \"Runtime event must be an object.\", value);\n }\n if (value.version !== RUNTIME_PROTOCOL_VERSION) {\n return protocolError(\"unsupported_version\", \"Runtime event version is unsupported.\", value.version);\n }\n if (!RUNTIME_EVENTS.has(value.event) && !includesProtocolName(options.additionalEventNames, value.event)) {\n return protocolError(\"unknown_event\", \"Runtime event name is not in the public protocol.\", value.event);\n }\n if (!Number.isInteger(value.seq) || value.seq < 0 || !UTC_TIMESTAMP.test(value.ts || \"\") ||\n !nonEmptyString(value.run_id) ||\n (!RUNTIME_STAGES.has(value.stage) && !includesProtocolName(options.additionalStages, value.stage)) ||\n !record(value.payload)) {\n return protocolError(\"invalid_envelope\", \"Runtime event is missing a required public field.\", value);\n }\n validateBlocks(value.payload);\n validateModelTurn(value.event, value.payload);\n return value;\n}\n\nexport function parseRuntimeEvent(payload, options) {\n return validateRuntimeEvent(parseProtocolJson(payload), options);\n}\n\nexport function validateThreadSummaryEvent(value) {\n if (!record(value) || value.schema_version !== THREAD_SUMMARY_PROTOCOL_VERSION ||\n !THREAD_EVENTS.has(value.event) || !Number.isInteger(value.cursor) || value.cursor < 0) {\n return protocolError(\"invalid_thread_summary\", \"Thread-summary event envelope is invalid.\", value);\n }\n if (value.event === \"thread.summary.updated\" && !record(value.thread)) {\n return protocolError(\"invalid_thread_summary\", \"Updated thread-summary event requires thread.\", value);\n }\n if (value.event === \"thread.deleted\" && !nonEmptyString(value.thread_id)) {\n return protocolError(\"invalid_thread_summary\", \"Deleted thread-summary event requires thread_id.\", value);\n }\n return value;\n}\n\nfunction parseSseBlock(block) {\n const data = [];\n for (const line of block.split(/\\r\\n|\\r|\\n/)) {\n if (!line || line.startsWith(\":\")) continue;\n const separator = line.indexOf(\":\");\n const field = separator < 0 ? line : line.slice(0, separator);\n let value = separator < 0 ? \"\" : line.slice(separator + 1);\n if (value.startsWith(\" \")) value = value.slice(1);\n if (field === \"data\") data.push(value);\n }\n return data.length ? data.join(\"\\n\") : null;\n}\n\nfunction nextSseBoundary(buffer) {\n const match = /\\r\\n\\r\\n|\\n\\n|\\r\\r/.exec(buffer);\n return match ? { index: match.index, length: match[0].length } : null;\n}\n\nexport function createSseParser(options) {\n const { decoder, onPayload, signal } = options;\n if (!decoder || typeof decoder.decode !== \"function\" || typeof onPayload !== \"function\") {\n protocolError(\"invalid_envelope\", \"SSE parser requires decoder and onPayload capabilities.\");\n }\n let buffer = \"\";\n let finished = false;\n\n async function drain(allowTrailing) {\n let boundary = nextSseBoundary(buffer);\n while (boundary) {\n const block = buffer.slice(0, boundary.index);\n buffer = buffer.slice(boundary.index + boundary.length);\n const payload = parseSseBlock(block);\n if (payload !== null) await onPayload(payload);\n if (signal?.aborted) return;\n boundary = nextSseBoundary(buffer);\n }\n if (allowTrailing && buffer.trim()) {\n const payload = parseSseBlock(buffer);\n buffer = \"\";\n if (payload !== null) await onPayload(payload);\n }\n }\n\n return {\n async push(chunk) {\n if (finished) protocolError(\"invalid_envelope\", \"Cannot push after SSE parser finish.\");\n if (signal?.aborted) return;\n buffer += decoder.decode(chunk, { stream: true });\n await drain(false);\n },\n async finish() {\n if (finished) return;\n finished = true;\n if (signal?.aborted) return;\n buffer += decoder.decode();\n await drain(true);\n },\n };\n}\n\nexport async function parseSseBytes(chunks, options) {\n const payloads = [];\n const parser = createSseParser({\n ...options,\n onPayload: async (payload) => {\n payloads.push(payload);\n if (options.onPayload) await options.onPayload(payload);\n },\n });\n for await (const chunk of chunks) {\n if (options.signal?.aborted) break;\n await parser.push(chunk);\n }\n await parser.finish();\n return payloads;\n}\n\nexport function parseRuntimeSsePayload(payload, options) {\n return parseRuntimeEvent(payload, options);\n}\n\nexport function parseThreadSummarySsePayload(payload) {\n return validateThreadSummaryEvent(parseProtocolJson(payload));\n}\n"]}