@agents24/node 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/compatibility.json +5 -5
- package/dist/bff.cjs +15 -3
- package/dist/bff.cjs.map +1 -1
- package/dist/bff.d.cts +2 -1
- package/dist/bff.d.ts +2 -1
- package/dist/bff.js +15 -3
- package/dist/bff.js.map +1 -1
- package/dist/{client-Rmk3dh_D.d.cts → client-C5ui84wi.d.cts} +167 -5
- package/dist/{client-Rmk3dh_D.d.ts → client-C5ui84wi.d.ts} +167 -5
- package/dist/index.cjs +143 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +143 -10
- package/dist/index.js.map +1 -1
- package/dist/types/bff.d.ts +1 -0
- package/dist/types/bff.d.ts.map +1 -1
- package/dist/types/client.d.ts +2 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/embed.d.ts +1 -1
- package/dist/types/embed.d.ts.map +1 -1
- package/dist/types/generated/manifest.d.ts +1 -1
- package/dist/types/generated/manifest.d.ts.map +1 -1
- package/dist/types/generated/resourceInstallations.d.ts +21 -0
- package/dist/types/generated/resourceInstallations.d.ts.map +1 -0
- package/dist/types/types.d.ts +145 -3
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/bff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/bff.ts"],"names":[],"mappings":"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","file":"bff.js","sourcesContent":["export type Agents24SDKErrorKind = \"protocol\" | \"network\" | \"http\";\nexport type Agents24NodeErrorKind = Agents24SDKErrorKind;\nimport type { FailureView } from \"./types.js\";\n\nexport class Agents24SDKError extends Error {\n readonly kind: Agents24SDKErrorKind;\n readonly status?: number;\n readonly failure?: FailureView;\n readonly responseHeaders?: Readonly<Record<string, string>>;\n\n constructor(\n message: string,\n options: {\n kind: Agents24SDKErrorKind;\n status?: number;\n failure?: FailureView;\n responseHeaders?: Readonly<Record<string, string>>;\n cause?: unknown;\n },\n ) {\n super(message, { cause: options.cause });\n this.name = \"Agents24SDKError\";\n this.kind = options.kind;\n this.status = options.status;\n this.failure = options.failure;\n this.responseHeaders = options.responseHeaders;\n }\n\n get code(): string | undefined { return this.failure?.code; }\n get category(): string | undefined { return this.failure?.category; }\n get failureId(): string | undefined { return this.failure?.failure_id; }\n get requestId(): string | undefined { return this.failure?.request_id ?? undefined; }\n get retryable(): boolean { return this.failure?.retryable ?? false; }\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 { Agents24SDKError as Agents24NodeError };\n","import { randomUUID } from \"node:crypto\";\n\nimport type { Agents24 } from \"./client.js\";\nimport { Agents24SDKError } from \"./errors.js\";\nimport type { RuntimeEvent, ThreadSummaryEvent, ToolInputOverrides } from \"./types.js\";\n\nexport interface AgentBffPrincipal {\n subject: string;\n issuer?: string;\n externalSessionId?: string;\n}\n\nexport interface AgentBffPrincipalResolution {\n principal: AgentBffPrincipal;\n responseHeaders?: HeadersInit;\n}\n\nexport interface Agents24BffHandlerOptions {\n client: Pick<Agents24, \"embed\">;\n agentId: string;\n agentVersionId?: string;\n basePath?: string;\n resolvePrincipal(request: Request): Promise<AgentBffPrincipalResolution> | AgentBffPrincipalResolution;\n revokePrincipal?(\n request: Request,\n principal: AgentBffPrincipal,\n ): Promise<HeadersInit | void> | HeadersInit | void;\n}\n\nexport type Agents24BffHandler = (request: Request) => Promise<Response>;\n\nconst JSON_LIMIT_BYTES = 1_048_576;\n\nfunction normalized(value: string, field: string): string {\n const result = String(value || \"\").trim();\n if (!result || /[\\r\\n\\0]/.test(result)) throw new Error(`${field} is required.`);\n return result;\n}\n\nfunction normalizeBasePath(value: string | undefined): string {\n const path = String(value || \"/api/agents24\").trim().replace(/\\/+$/, \"\");\n if (!path.startsWith(\"/\") || /[\\r\\n\\0?#]/.test(path)) throw new Error(\"basePath must be an absolute path.\");\n return path;\n}\n\nfunction browserRequestIsSameOrigin(request: Request): boolean {\n const fetchSite = String(request.headers.get(\"sec-fetch-site\") || \"\").trim().toLowerCase();\n if (fetchSite) return fetchSite === \"same-origin\";\n\n const rawOrigin = String(request.headers.get(\"origin\") || \"\").trim();\n if (!rawOrigin) return true;\n try {\n return rawOrigin !== \"null\" && new URL(rawOrigin).origin === new URL(request.url).origin;\n } catch {\n return false;\n }\n}\n\nfunction publicError(\n status: number,\n code: string,\n message: string,\n retryable = false,\n violations?: readonly Record<string, unknown>[],\n): Response {\n const category = status === 401 ? \"authentication\"\n : status === 403 ? \"authorization\"\n : status === 404 ? \"not_found\"\n : status === 409 ? \"conflict\"\n : status === 429 ? \"rate_limit\"\n : status >= 500 ? \"internal\"\n : \"validation\";\n return Response.json({\n schema_version: \"agents24.failure.v1\",\n failure_id: randomUUID(),\n code,\n category,\n message,\n request_id: randomUUID(),\n retryable,\n retry_after_ms: null,\n details: violations?.length ? { violations } : {},\n }, {\n status,\n headers: { \"Cache-Control\": \"no-store\", \"Content-Type\": \"application/json; charset=utf-8\" },\n });\n}\n\nfunction safeResourcePolicyError(details: unknown): {\n failureId: string;\n code: string;\n category: \"policy\" | \"quota\";\n message: string;\n requestId: string | null;\n retryable: boolean;\n retryAfterMs: number | null;\n violations?: readonly Record<string, unknown>[];\n} | null {\n if (!details || typeof details !== \"object\" || Array.isArray(details)) return null;\n const outer = details as Record<string, unknown>;\n const candidate = outer.schema_version === \"agents24.failure.v1\"\n ? outer\n : outer.detail && typeof outer.detail === \"object\" && !Array.isArray(outer.detail)\n ? outer.detail as Record<string, unknown>\n : outer;\n const code = typeof candidate.code === \"string\" ? candidate.code : \"\";\n if (![\"RESOURCE_POLICY_ACCESS_DENIED\", \"RESOURCE_POLICY_QUOTA_EXCEEDED\", \"RESOURCE_POLICY_CONFIGURATION_ERROR\"].includes(code)) return null;\n const failureId = typeof candidate.failure_id === \"string\" && candidate.failure_id.trim()\n ? candidate.failure_id\n : \"\";\n if (!failureId) return null;\n const message = typeof candidate.message === \"string\" && candidate.message.trim()\n ? candidate.message.trim()\n : \"The resource policy prevented this request.\";\n const allowedViolationKeys = new Set([\n \"policy_subject_type\", \"rule_type\", \"aggregation_scope\", \"resource_type\",\n \"resource_name\", \"quota_unit\", \"quota_window\", \"limit\", \"remaining\", \"resets_at\",\n ]);\n const candidateDetails = candidate.details && typeof candidate.details === \"object\"\n ? candidate.details as Record<string, unknown>\n : candidate;\n const violations = Array.isArray(candidateDetails.violations)\n ? candidateDetails.violations.flatMap((item): Record<string, unknown>[] => {\n if (!item || typeof item !== \"object\" || Array.isArray(item)) return [];\n return [Object.fromEntries(\n Object.entries(item as Record<string, unknown>)\n .filter(([key, value]) => allowedViolationKeys.has(key) && [\"string\", \"number\"].includes(typeof value)),\n )];\n }).filter((item) => Object.keys(item).length > 0).slice(0, 20)\n : undefined;\n return {\n failureId,\n code,\n category: code === \"RESOURCE_POLICY_QUOTA_EXCEEDED\" ? \"quota\" : \"policy\",\n message,\n requestId: typeof candidate.request_id === \"string\" ? candidate.request_id : null,\n retryable: candidate.retryable === true,\n retryAfterMs: typeof candidate.retry_after_ms === \"number\" && candidate.retry_after_ms >= 0\n ? candidate.retry_after_ms\n : null,\n ...(violations?.length ? { violations } : {}),\n };\n}\n\nfunction resourcePolicyFailureResponse(\n status: number,\n failure: NonNullable<ReturnType<typeof safeResourcePolicyError>>,\n): Response {\n return Response.json({\n schema_version: \"agents24.failure.v1\",\n failure_id: failure.failureId,\n code: failure.code,\n category: failure.category,\n message: failure.message,\n retryable: failure.retryable,\n request_id: failure.requestId,\n retry_after_ms: failure.retryAfterMs,\n details: failure.violations?.length ? { violations: failure.violations } : {},\n }, {\n status,\n headers: { \"Cache-Control\": \"no-store\", \"Content-Type\": \"application/json; charset=utf-8\" },\n });\n}\n\nfunction errorResponse(error: unknown): Response {\n const isSdkError = error instanceof Agents24SDKError || (\n error instanceof Error\n && error.name === \"Agents24SDKError\"\n && \"kind\" in error\n && [\"protocol\", \"network\", \"http\"].includes(String(error.kind))\n );\n if (isSdkError) {\n const sdkError = error as Agents24SDKError;\n const status = sdkError.status && sdkError.status >= 400 && sdkError.status <= 599 ? sdkError.status : 502;\n const policyError = safeResourcePolicyError(sdkError.failure);\n if (policyError) {\n return resourcePolicyFailureResponse(status, policyError);\n }\n return publicError(status, `UPSTREAM_${status}`, \"The Agent request failed.\", status >= 500);\n }\n return publicError(500, \"BFF_REQUEST_FAILED\", \"The Agent request could not be completed.\", true);\n}\n\nfunction mergeHeaders(response: Response, additional: HeadersInit | undefined): Response {\n if (!additional) return response;\n const headers = new Headers(response.headers);\n const extras = new Headers(additional);\n for (const [name, value] of extras) headers.append(name, value);\n return new Response(response.body, { status: response.status, statusText: response.statusText, headers });\n}\n\nfunction json(value: unknown, headers?: HeadersInit, status = 200): Response {\n const responseHeaders = new Headers(headers);\n responseHeaders.set(\"Cache-Control\", \"no-store\");\n responseHeaders.set(\"Content-Type\", \"application/json; charset=utf-8\");\n return new Response(JSON.stringify(value), { status, headers: responseHeaders });\n}\n\nasync function requestJson(request: Request): Promise<Record<string, unknown>> {\n const contentLength = Number(request.headers.get(\"content-length\") || 0);\n if (contentLength > JSON_LIMIT_BYTES) throw new BffInputError(413, \"REQUEST_TOO_LARGE\", \"The request body is too large.\");\n const value = await request.json().catch(() => null);\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new BffInputError(400, \"INVALID_JSON\", \"A JSON object is required.\");\n }\n return value as Record<string, unknown>;\n}\n\nclass BffInputError extends Error {\n constructor(readonly status: number, readonly code: string, message: string) { super(message); }\n}\n\nfunction stringValue(value: unknown): string | undefined {\n const result = typeof value === \"string\" ? value.trim() : \"\";\n return result || undefined;\n}\n\nfunction stringList(value: unknown): string[] {\n return Array.isArray(value) ? value.map(stringValue).filter((item): item is string => Boolean(item)) : [];\n}\n\nfunction objectValue(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" && !Array.isArray(value) ? value as Record<string, unknown> : {};\n}\n\nfunction routeId(path: string, pattern: RegExp, field: string): string {\n const match = pattern.exec(path);\n if (!match?.[1]) throw new BffInputError(404, \"NOT_FOUND\", \"The requested BFF route does not exist.\");\n try { return normalized(decodeURIComponent(match[1]), field); }\n catch { throw new BffInputError(400, \"INVALID_PATH\", `${field} is invalid.`); }\n}\n\nfunction sseHeaders(headers?: HeadersInit): Headers {\n const result = new Headers(headers);\n result.set(\"Cache-Control\", \"no-cache, no-transform\");\n result.set(\"Content-Type\", \"text/event-stream; charset=utf-8\");\n result.set(\"X-Accel-Buffering\", \"no\");\n return result;\n}\n\nfunction sseResponse(\n execute: (write: (value: unknown) => Promise<void>) => Promise<void>,\n headers?: HeadersInit,\n): Response {\n const stream = new TransformStream<Uint8Array, Uint8Array>();\n const writer = stream.writable.getWriter();\n const encoder = new TextEncoder();\n const write = (value: unknown) => writer.write(encoder.encode(`data: ${JSON.stringify(value)}\\n\\n`));\n void execute(write)\n .catch(async (error: unknown) => {\n const message = \"The Agent stream failed.\";\n const event: RuntimeEvent = {\n version: \"run-stream.v3\",\n seq: Number.MAX_SAFE_INTEGER,\n ts: new Date().toISOString(),\n event: \"run.failed\",\n run_id: \"bff-stream-error\",\n stage: \"run\",\n payload: { error: message },\n };\n await write(event).catch(() => undefined);\n })\n .finally(() => writer.close().catch(() => undefined));\n return new Response(stream.readable, { headers: sseHeaders(headers) });\n}\n\nfunction bootstrapDocument(raw: Record<string, unknown>, agentVersionId: string | undefined): Record<string, unknown> {\n const features = objectValue(raw.features);\n const selectable = objectValue(features.models).selectable === true;\n const resolvedVersionId = stringValue(raw.agent_version_id) || agentVersionId || \"\";\n const versionNumber = Number(raw.agent_version_number || 0);\n return {\n version: String(raw.version || \"agents24.embed.bootstrap.v1\"),\n deployment: {\n id: \"server-embed\",\n name: String(raw.agent_name || \"Agents24 Agent\"),\n version_policy: agentVersionId\n ? { mode: \"pinned\", version_id: agentVersionId }\n : { mode: \"latest_published\" },\n resolved_agent_version_id: resolvedVersionId,\n resolved_agent_version_number: Number.isFinite(versionNumber) ? versionNumber : 0,\n policy_epoch: 0,\n },\n authentication: { modes: [\"server_embed\"], access_token_lifetime_seconds: 0, jwks_path: \"\" },\n capabilities: [\"attachments.read\", \"attachments.write\", \"feedback.write\", ...(selectable ? [\"models.select\"] : [])],\n features,\n native_profiles: [],\n };\n}\n\nexport function createAgents24BffHandler(options: Agents24BffHandlerOptions): Agents24BffHandler {\n const agentId = normalized(options.agentId, \"agentId\");\n const agentVersionId = stringValue(options.agentVersionId);\n const basePath = normalizeBasePath(options.basePath);\n const embed = options.client.embed;\n\n return async (request) => {\n const url = new URL(request.url);\n if (url.pathname !== basePath && !url.pathname.startsWith(`${basePath}/`)) {\n return publicError(404, \"NOT_FOUND\", \"The requested BFF route does not exist.\");\n }\n if (!browserRequestIsSameOrigin(request)) {\n return publicError(403, \"BFF_ORIGIN_DENIED\", \"The BFF accepts same-origin browser requests only.\");\n }\n const path = url.pathname.slice(basePath.length) || \"/\";\n let resolution: AgentBffPrincipalResolution;\n try {\n resolution = await options.resolvePrincipal(request);\n resolution.principal.subject = normalized(resolution.principal.subject, \"subject\");\n if (resolution.principal.issuer !== undefined) {\n resolution.principal.issuer = normalized(resolution.principal.issuer, \"issuer\");\n }\n } catch {\n return publicError(401, \"PRINCIPAL_REQUIRED\", \"A valid application session is required.\");\n }\n const principal = resolution.principal;\n const idempotencyKey = stringValue(request.headers.get(\"idempotency-key\"));\n\n try {\n let customerPrincipalRef = \"\";\n if (!(request.method === \"GET\" && (path === \"/bootstrap\" || path === \"/resource-policy\"))) {\n const entitlement = await embed.getResourcePolicy(agentId, {\n external_user_id: principal.subject,\n ...(principal.issuer ? { external_user_issuer: principal.issuer } : {}),\n ...(agentVersionId ? { agent_version_id: agentVersionId } : {}),\n });\n customerPrincipalRef = stringValue(entitlement.customer_principal_ref) || principal.subject;\n }\n const identity = {\n external_user_id: customerPrincipalRef,\n ...(principal.externalSessionId ? { external_session_id: principal.externalSessionId } : {}),\n };\n const threadIdentity = {\n externalUserId: customerPrincipalRef,\n ...(principal.externalSessionId ? { externalSessionId: principal.externalSessionId } : {}),\n };\n let response: Response;\n if (request.method === \"GET\" && path === \"/bootstrap\") {\n const raw = await embed.getRuntimeBootstrap(agentId, agentVersionId) as Record<string, unknown>;\n response = json(bootstrapDocument(raw, agentVersionId));\n } else if (request.method === \"GET\" && path === \"/resource-policy\") {\n response = json(await embed.getResourcePolicy(agentId, {\n external_user_id: principal.subject,\n ...(principal.issuer ? { external_user_issuer: principal.issuer } : {}),\n ...(agentVersionId ? { agent_version_id: agentVersionId } : {}),\n }));\n } else if (request.method === \"POST\" && path === \"/chat/stream\") {\n const body = await requestJson(request);\n const input = stringValue(body.input);\n const attachmentIds = stringList(body.attachmentIds);\n if (!input && attachmentIds.length === 0) throw new BffInputError(400, \"INPUT_REQUIRED\", \"A message or attachment is required.\");\n response = sseResponse(async (write) => {\n await embed.streamAgent(agentId, {\n ...identity,\n ...(agentVersionId ? { agent_version_id: agentVersionId } : {}),\n ...(input ? { input } : {}),\n attachment_ids: attachmentIds,\n ...(stringValue(body.threadId) ? { thread_id: stringValue(body.threadId) } : {}),\n ...(stringValue(body.requestedModelId) ? { requested_model_id: stringValue(body.requestedModelId) } : {}),\n tool_inputs: objectValue(body.toolInputs) as ToolInputOverrides,\n metadata: objectValue(body.metadata),\n client: objectValue(body.client),\n }, (event) => write(event), { idempotencyKey, signal: request.signal });\n });\n } else if (request.method === \"POST\" && /^\\/runs\\/[^/]+\\/attach$/.test(path)) {\n const runId = routeId(path, /^\\/runs\\/([^/]+)\\/attach$/, \"runId\");\n const body = await requestJson(request);\n const cursor = body.cursor;\n if (cursor !== undefined && (!Number.isInteger(cursor) || Number(cursor) < 0)) {\n throw new BffInputError(400, \"INVALID_CURSOR\", \"cursor must be a non-negative integer.\");\n }\n response = sseResponse(async (write) => {\n await embed.attachAgentRun(agentId, runId, {\n ...identity,\n ...(cursor === undefined ? {} : { cursor: Number(cursor) }),\n }, (event) => write(event), {\n idempotencyKey,\n signal: request.signal,\n });\n });\n } else if (request.method === \"POST\" && /^\\/runs\\/[^/]+\\/cancel$/.test(path)) {\n const runId = routeId(path, /^\\/runs\\/([^/]+)\\/cancel$/, \"runId\");\n response = json(await embed.cancelAgentRun(agentId, runId, threadIdentity, { idempotencyKey }));\n } else if (request.method === \"PUT\" && /^\\/runs\\/[^/]+\\/feedback$/.test(path)) {\n const runId = routeId(path, /^\\/runs\\/([^/]+)\\/feedback$/, \"runId\");\n const body = await requestJson(request);\n const rating = body.rating === null ? null : stringValue(body.rating);\n const reasons = new Set([\"incorrect\", \"irrelevant\", \"incomplete\", \"unsafe\", \"citation_issue\", \"other\"]);\n const reason = stringValue(body.reason);\n const comment = stringValue(body.comment);\n if (rating !== null && rating !== \"like\" && rating !== \"dislike\") {\n throw new BffInputError(422, \"INVALID_FEEDBACK\", \"rating must be like, dislike, or null.\");\n }\n if (reason && !reasons.has(reason)) {\n throw new BffInputError(422, \"INVALID_FEEDBACK\", \"The feedback reason is invalid.\");\n }\n if (comment && comment.length > 1000) {\n throw new BffInputError(422, \"INVALID_FEEDBACK\", \"The feedback comment is too long.\");\n }\n response = json(await embed.setAgentRunFeedback(agentId, runId, {\n ...identity,\n rating,\n ...(rating === \"dislike\" && reason ? { reason: reason as import(\"./types\").FeedbackReason } : {}),\n ...(rating === \"dislike\" && comment ? { comment } : {}),\n }));\n } else if (request.method === \"GET\" && path === \"/threads\") {\n const skip = Number(url.searchParams.get(\"skip\") || 0);\n const limit = Number(url.searchParams.get(\"limit\") || 20);\n response = json(await embed.listAgentThreads(agentId, {\n ...threadIdentity,\n skip: Number.isFinite(skip) ? skip : 0,\n limit: Number.isFinite(limit) ? limit : 20,\n }));\n } else if (request.method === \"GET\" && path === \"/threads/events\") {\n const rawCursor = url.searchParams.get(\"cursor\");\n const cursor = rawCursor === null ? undefined : Number(rawCursor);\n response = sseResponse(async (write) => {\n await embed.subscribeAgentThreadEvents(agentId, {\n ...threadIdentity,\n ...(cursor !== undefined && Number.isFinite(cursor) ? { cursor } : {}),\n signal: request.signal,\n }, (event: ThreadSummaryEvent) => write(event));\n });\n } else if (/^\\/threads\\/[^/]+$/.test(path) && request.method === \"GET\") {\n const threadId = routeId(path, /^\\/threads\\/([^/]+)$/, \"threadId\");\n const rawBefore = url.searchParams.get(\"before_turn_index\");\n const rawLimit = url.searchParams.get(\"limit\");\n const before = rawBefore === null ? undefined : Number(rawBefore);\n const limit = rawLimit === null ? undefined : Number(rawLimit);\n response = json(await embed.getAgentThread(agentId, threadId, {\n ...threadIdentity,\n ...(before !== undefined && Number.isFinite(before) ? { beforeTurnIndex: before } : {}),\n ...(limit !== undefined && Number.isFinite(limit) ? { limit } : {}),\n }));\n } else if (/^\\/threads\\/[^/]+$/.test(path) && request.method === \"DELETE\") {\n const threadId = routeId(path, /^\\/threads\\/([^/]+)$/, \"threadId\");\n response = json(await embed.deleteAgentThread(agentId, threadId, threadIdentity, { idempotencyKey }));\n } else if (request.method === \"POST\" && path === \"/attachments/upload\") {\n const form = await request.formData();\n const files = form.getAll(\"files\").filter((entry): entry is File => entry instanceof File);\n if (files.length === 0) throw new BffInputError(400, \"ATTACHMENT_REQUIRED\", \"At least one attachment is required.\");\n response = json(await embed.uploadAgentAttachments(agentId, {\n ...threadIdentity,\n files,\n ...(stringValue(form.get(\"thread_id\")) ? { threadId: stringValue(form.get(\"thread_id\")) } : {}),\n idempotencyKey,\n }));\n } else if (request.method === \"POST\" && /^\\/attachments\\/[^/]+\\/content-access$/.test(path)) {\n const attachmentId = routeId(path, /^\\/attachments\\/([^/]+)\\/content-access$/, \"attachmentId\");\n const body = await requestJson(request);\n const disposition = stringValue(body.disposition);\n if (disposition !== \"inline\" && disposition !== \"attachment\") {\n throw new BffInputError(400, \"INVALID_DISPOSITION\", \"Attachment disposition is invalid.\");\n }\n response = json(await embed.createAttachmentContentAccess(agentId, attachmentId, {\n external_user_id: threadIdentity.externalUserId,\n ...(threadIdentity.externalSessionId ? { external_session_id: threadIdentity.externalSessionId } : {}),\n disposition,\n }));\n } else if (request.method === \"POST\" && /^\\/runs\\/[^/]+\\/hitl\\/[^/]+\\/resume$/.test(path)) {\n const match = /^\\/runs\\/([^/]+)\\/hitl\\/([^/]+)\\/resume$/.exec(path);\n const runId = routeId(path, /^\\/runs\\/([^/]+)\\/hitl\\//, \"runId\");\n const interruptId = match?.[2] ? decodeURIComponent(match[2]) : \"\";\n const body = await requestJson(request);\n response = json(await embed.resumeAgentRun(agentId, runId, {\n ...identity,\n schema_version: \"agents24.hitl.resume.v2\",\n interrupt_id: normalized(interruptId, \"interruptId\"),\n action: normalized(String(body.action || \"\"), \"action\") as \"approve\" | \"reject\" | \"connect\" | \"skip\" | \"respond\",\n ...(stringValue(body.comment) ? { comment: stringValue(body.comment) } : {}),\n ...(Array.isArray(body.answers) ? { answers: body.answers as import(\"./types\").HitlAnswer[] } : {}),\n }, { idempotencyKey }));\n } else if (request.method === \"POST\" && /^\\/runs\\/[^/]+\\/mcp\\/servers\\/[^/]+\\/auth\\/start$/.test(path)) {\n const match = /^\\/runs\\/([^/]+)\\/mcp\\/servers\\/([^/]+)\\/auth\\/start$/.exec(path);\n const runId = match?.[1] ? decodeURIComponent(match[1]) : \"\";\n const serverId = match?.[2] ? decodeURIComponent(match[2]) : \"\";\n const body = await requestJson(request);\n const callbackOrigin = new URL(request.url).origin;\n response = json(await embed.startAgentRunMcpAuth(agentId, normalized(runId, \"runId\"), normalized(serverId, \"serverId\"), {\n ...identity,\n interrupt_id: normalized(String(body.interruptId || \"\"), \"interruptId\"),\n callback_origin: callbackOrigin,\n popup_nonce: normalized(String(body.popupNonce || \"\"), \"popupNonce\"),\n }, { idempotencyKey }));\n } else if (request.method === \"POST\" && path === \"/mcp/callback/redeem\") {\n throw new BffInputError(409, \"MCP_CALLBACK_DIRECT\", \"Server-embed MCP callbacks complete in the authorization popup.\");\n } else if (request.method === \"POST\" && path === \"/session/revoke\") {\n const headers = await options.revokePrincipal?.(request, principal);\n response = new Response(null, { status: 204, ...(headers ? { headers } : {}) });\n } else {\n response = publicError(404, \"NOT_FOUND\", \"The requested BFF route does not exist.\");\n }\n return mergeHeaders(response, resolution.responseHeaders);\n } catch (error) {\n if (error instanceof BffInputError) {\n return mergeHeaders(publicError(error.status, error.code, error.message), resolution.responseHeaders);\n }\n return mergeHeaders(errorResponse(error), resolution.responseHeaders);\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/bff.ts"],"names":[],"mappings":"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","file":"bff.js","sourcesContent":["export type Agents24SDKErrorKind = \"protocol\" | \"network\" | \"http\";\nexport type Agents24NodeErrorKind = Agents24SDKErrorKind;\nimport type { FailureView } from \"./types.js\";\n\nexport class Agents24SDKError extends Error {\n readonly kind: Agents24SDKErrorKind;\n readonly status?: number;\n readonly failure?: FailureView;\n readonly responseHeaders?: Readonly<Record<string, string>>;\n\n constructor(\n message: string,\n options: {\n kind: Agents24SDKErrorKind;\n status?: number;\n failure?: FailureView;\n responseHeaders?: Readonly<Record<string, string>>;\n cause?: unknown;\n },\n ) {\n super(message, { cause: options.cause });\n this.name = \"Agents24SDKError\";\n this.kind = options.kind;\n this.status = options.status;\n this.failure = options.failure;\n this.responseHeaders = options.responseHeaders;\n }\n\n get code(): string | undefined { return this.failure?.code; }\n get category(): string | undefined { return this.failure?.category; }\n get failureId(): string | undefined { return this.failure?.failure_id; }\n get requestId(): string | undefined { return this.failure?.request_id ?? undefined; }\n get retryable(): boolean { return this.failure?.retryable ?? false; }\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 { Agents24SDKError as Agents24NodeError };\n","import { randomUUID } from \"node:crypto\";\n\nimport type { Agents24 } from \"./client.js\";\nimport { Agents24SDKError } from \"./errors.js\";\nimport type { RuntimeEvent, ThreadSummaryEvent, ToolInputOverrides } from \"./types.js\";\n\nexport interface AgentBffPrincipal {\n subject: string;\n issuer?: string;\n externalSessionId?: string;\n}\n\nexport interface AgentBffPrincipalResolution {\n principal: AgentBffPrincipal;\n responseHeaders?: HeadersInit;\n}\n\nexport interface Agents24BffHandlerOptions {\n client: Pick<Agents24, \"embed\">;\n agentId: string;\n agentVersionId?: string;\n runtimeTarget?: \"draft\" | \"published\";\n basePath?: string;\n resolvePrincipal(request: Request): Promise<AgentBffPrincipalResolution> | AgentBffPrincipalResolution;\n revokePrincipal?(\n request: Request,\n principal: AgentBffPrincipal,\n ): Promise<HeadersInit | void> | HeadersInit | void;\n}\n\nexport type Agents24BffHandler = (request: Request) => Promise<Response>;\n\nconst JSON_LIMIT_BYTES = 1_048_576;\n\nfunction normalized(value: string, field: string): string {\n const result = String(value || \"\").trim();\n if (!result || /[\\r\\n\\0]/.test(result)) throw new Error(`${field} is required.`);\n return result;\n}\n\nfunction normalizeBasePath(value: string | undefined): string {\n const path = String(value || \"/api/agents24\").trim().replace(/\\/+$/, \"\");\n if (!path.startsWith(\"/\") || /[\\r\\n\\0?#]/.test(path)) throw new Error(\"basePath must be an absolute path.\");\n return path;\n}\n\nfunction browserRequestIsSameOrigin(request: Request): boolean {\n const fetchSite = String(request.headers.get(\"sec-fetch-site\") || \"\").trim().toLowerCase();\n if (fetchSite) return fetchSite === \"same-origin\";\n\n const rawOrigin = String(request.headers.get(\"origin\") || \"\").trim();\n if (!rawOrigin) return true;\n try {\n return rawOrigin !== \"null\" && new URL(rawOrigin).origin === new URL(request.url).origin;\n } catch {\n return false;\n }\n}\n\nfunction publicError(\n status: number,\n code: string,\n message: string,\n retryable = false,\n violations?: readonly Record<string, unknown>[],\n): Response {\n const category = status === 401 ? \"authentication\"\n : status === 403 ? \"authorization\"\n : status === 404 ? \"not_found\"\n : status === 409 ? \"conflict\"\n : status === 429 ? \"rate_limit\"\n : status >= 500 ? \"internal\"\n : \"validation\";\n return Response.json({\n schema_version: \"agents24.failure.v1\",\n failure_id: randomUUID(),\n code,\n category,\n message,\n request_id: randomUUID(),\n retryable,\n retry_after_ms: null,\n details: violations?.length ? { violations } : {},\n }, {\n status,\n headers: { \"Cache-Control\": \"no-store\", \"Content-Type\": \"application/json; charset=utf-8\" },\n });\n}\n\nfunction safeResourcePolicyError(details: unknown): {\n failureId: string;\n code: string;\n category: \"policy\" | \"quota\";\n message: string;\n requestId: string | null;\n retryable: boolean;\n retryAfterMs: number | null;\n violations?: readonly Record<string, unknown>[];\n} | null {\n if (!details || typeof details !== \"object\" || Array.isArray(details)) return null;\n const outer = details as Record<string, unknown>;\n const candidate = outer.schema_version === \"agents24.failure.v1\"\n ? outer\n : outer.detail && typeof outer.detail === \"object\" && !Array.isArray(outer.detail)\n ? outer.detail as Record<string, unknown>\n : outer;\n const code = typeof candidate.code === \"string\" ? candidate.code : \"\";\n if (![\"RESOURCE_POLICY_ACCESS_DENIED\", \"RESOURCE_POLICY_QUOTA_EXCEEDED\", \"RESOURCE_POLICY_CONFIGURATION_ERROR\"].includes(code)) return null;\n const failureId = typeof candidate.failure_id === \"string\" && candidate.failure_id.trim()\n ? candidate.failure_id\n : \"\";\n if (!failureId) return null;\n const message = typeof candidate.message === \"string\" && candidate.message.trim()\n ? candidate.message.trim()\n : \"The resource policy prevented this request.\";\n const allowedViolationKeys = new Set([\n \"policy_subject_type\", \"rule_type\", \"aggregation_scope\", \"resource_type\",\n \"resource_name\", \"quota_unit\", \"quota_window\", \"limit\", \"remaining\", \"resets_at\",\n ]);\n const candidateDetails = candidate.details && typeof candidate.details === \"object\"\n ? candidate.details as Record<string, unknown>\n : candidate;\n const violations = Array.isArray(candidateDetails.violations)\n ? candidateDetails.violations.flatMap((item): Record<string, unknown>[] => {\n if (!item || typeof item !== \"object\" || Array.isArray(item)) return [];\n return [Object.fromEntries(\n Object.entries(item as Record<string, unknown>)\n .filter(([key, value]) => allowedViolationKeys.has(key) && [\"string\", \"number\"].includes(typeof value)),\n )];\n }).filter((item) => Object.keys(item).length > 0).slice(0, 20)\n : undefined;\n return {\n failureId,\n code,\n category: code === \"RESOURCE_POLICY_QUOTA_EXCEEDED\" ? \"quota\" : \"policy\",\n message,\n requestId: typeof candidate.request_id === \"string\" ? candidate.request_id : null,\n retryable: candidate.retryable === true,\n retryAfterMs: typeof candidate.retry_after_ms === \"number\" && candidate.retry_after_ms >= 0\n ? candidate.retry_after_ms\n : null,\n ...(violations?.length ? { violations } : {}),\n };\n}\n\nfunction resourcePolicyFailureResponse(\n status: number,\n failure: NonNullable<ReturnType<typeof safeResourcePolicyError>>,\n): Response {\n return Response.json({\n schema_version: \"agents24.failure.v1\",\n failure_id: failure.failureId,\n code: failure.code,\n category: failure.category,\n message: failure.message,\n retryable: failure.retryable,\n request_id: failure.requestId,\n retry_after_ms: failure.retryAfterMs,\n details: failure.violations?.length ? { violations: failure.violations } : {},\n }, {\n status,\n headers: { \"Cache-Control\": \"no-store\", \"Content-Type\": \"application/json; charset=utf-8\" },\n });\n}\n\nfunction errorResponse(error: unknown): Response {\n const isSdkError = error instanceof Agents24SDKError || (\n error instanceof Error\n && error.name === \"Agents24SDKError\"\n && \"kind\" in error\n && [\"protocol\", \"network\", \"http\"].includes(String(error.kind))\n );\n if (isSdkError) {\n const sdkError = error as Agents24SDKError;\n const status = sdkError.status && sdkError.status >= 400 && sdkError.status <= 599 ? sdkError.status : 502;\n const policyError = safeResourcePolicyError(sdkError.failure);\n if (policyError) {\n return resourcePolicyFailureResponse(status, policyError);\n }\n return publicError(status, `UPSTREAM_${status}`, \"The Agent request failed.\", status >= 500);\n }\n return publicError(500, \"BFF_REQUEST_FAILED\", \"The Agent request could not be completed.\", true);\n}\n\nfunction mergeHeaders(response: Response, additional: HeadersInit | undefined): Response {\n if (!additional) return response;\n const headers = new Headers(response.headers);\n const extras = new Headers(additional);\n for (const [name, value] of extras) headers.append(name, value);\n return new Response(response.body, { status: response.status, statusText: response.statusText, headers });\n}\n\nfunction json(value: unknown, headers?: HeadersInit, status = 200): Response {\n const responseHeaders = new Headers(headers);\n responseHeaders.set(\"Cache-Control\", \"no-store\");\n responseHeaders.set(\"Content-Type\", \"application/json; charset=utf-8\");\n return new Response(JSON.stringify(value), { status, headers: responseHeaders });\n}\n\nasync function requestJson(request: Request): Promise<Record<string, unknown>> {\n const contentLength = Number(request.headers.get(\"content-length\") || 0);\n if (contentLength > JSON_LIMIT_BYTES) throw new BffInputError(413, \"REQUEST_TOO_LARGE\", \"The request body is too large.\");\n const value = await request.json().catch(() => null);\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new BffInputError(400, \"INVALID_JSON\", \"A JSON object is required.\");\n }\n return value as Record<string, unknown>;\n}\n\nclass BffInputError extends Error {\n constructor(readonly status: number, readonly code: string, message: string) { super(message); }\n}\n\nfunction stringValue(value: unknown): string | undefined {\n const result = typeof value === \"string\" ? value.trim() : \"\";\n return result || undefined;\n}\n\nfunction stringList(value: unknown): string[] {\n return Array.isArray(value) ? value.map(stringValue).filter((item): item is string => Boolean(item)) : [];\n}\n\nfunction objectValue(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" && !Array.isArray(value) ? value as Record<string, unknown> : {};\n}\n\nfunction routeId(path: string, pattern: RegExp, field: string): string {\n const match = pattern.exec(path);\n if (!match?.[1]) throw new BffInputError(404, \"NOT_FOUND\", \"The requested BFF route does not exist.\");\n try { return normalized(decodeURIComponent(match[1]), field); }\n catch { throw new BffInputError(400, \"INVALID_PATH\", `${field} is invalid.`); }\n}\n\nfunction sseHeaders(headers?: HeadersInit): Headers {\n const result = new Headers(headers);\n result.set(\"Cache-Control\", \"no-cache, no-transform\");\n result.set(\"Content-Type\", \"text/event-stream; charset=utf-8\");\n result.set(\"X-Accel-Buffering\", \"no\");\n return result;\n}\n\nfunction sseResponse(\n execute: (write: (value: unknown) => Promise<void>) => Promise<void>,\n headers?: HeadersInit,\n): Response {\n const stream = new TransformStream<Uint8Array, Uint8Array>();\n const writer = stream.writable.getWriter();\n const encoder = new TextEncoder();\n const write = (value: unknown) => writer.write(encoder.encode(`data: ${JSON.stringify(value)}\\n\\n`));\n void execute(write)\n .catch(async (error: unknown) => {\n const message = \"The Agent stream failed.\";\n const event: RuntimeEvent = {\n version: \"run-stream.v3\",\n seq: Number.MAX_SAFE_INTEGER,\n ts: new Date().toISOString(),\n event: \"run.failed\",\n run_id: \"bff-stream-error\",\n stage: \"run\",\n payload: { error: message },\n };\n await write(event).catch(() => undefined);\n })\n .finally(() => writer.close().catch(() => undefined));\n return new Response(stream.readable, { headers: sseHeaders(headers) });\n}\n\nfunction bootstrapDocument(raw: Record<string, unknown>, agentVersionId: string | undefined): Record<string, unknown> {\n const features = objectValue(raw.features);\n const selectable = objectValue(features.models).selectable === true;\n const resolvedVersionId = stringValue(raw.agent_version_id) || agentVersionId || \"\";\n const versionNumber = Number(raw.agent_version_number || 0);\n return {\n version: String(raw.version || \"agents24.embed.bootstrap.v1\"),\n deployment: {\n id: \"server-embed\",\n name: String(raw.agent_name || \"Agents24 Agent\"),\n version_policy: agentVersionId\n ? { mode: \"pinned\", version_id: agentVersionId }\n : { mode: \"latest_published\" },\n resolved_agent_version_id: resolvedVersionId,\n resolved_agent_version_number: Number.isFinite(versionNumber) ? versionNumber : 0,\n policy_epoch: 0,\n },\n authentication: { modes: [\"server_embed\"], access_token_lifetime_seconds: 0, jwks_path: \"\" },\n capabilities: [\"attachments.read\", \"attachments.write\", \"feedback.write\", ...(selectable ? [\"models.select\"] : [])],\n features,\n native_profiles: [],\n };\n}\n\nexport function createAgents24BffHandler(options: Agents24BffHandlerOptions): Agents24BffHandler {\n const agentId = normalized(options.agentId, \"agentId\");\n const agentVersionId = stringValue(options.agentVersionId);\n const runtimeTarget = options.runtimeTarget || \"published\";\n if (runtimeTarget === \"draft\" && agentVersionId) throw new Error(\"agentVersionId cannot be used with draft runtimeTarget.\");\n const basePath = normalizeBasePath(options.basePath);\n const embed = options.client.embed;\n\n return async (request) => {\n const url = new URL(request.url);\n if (url.pathname !== basePath && !url.pathname.startsWith(`${basePath}/`)) {\n return publicError(404, \"NOT_FOUND\", \"The requested BFF route does not exist.\");\n }\n if (!browserRequestIsSameOrigin(request)) {\n return publicError(403, \"BFF_ORIGIN_DENIED\", \"The BFF accepts same-origin browser requests only.\");\n }\n const path = url.pathname.slice(basePath.length) || \"/\";\n let resolution: AgentBffPrincipalResolution;\n try {\n resolution = await options.resolvePrincipal(request);\n resolution.principal.subject = normalized(resolution.principal.subject, \"subject\");\n if (resolution.principal.issuer !== undefined) {\n resolution.principal.issuer = normalized(resolution.principal.issuer, \"issuer\");\n }\n } catch {\n return publicError(401, \"PRINCIPAL_REQUIRED\", \"A valid application session is required.\");\n }\n const principal = resolution.principal;\n const idempotencyKey = stringValue(request.headers.get(\"idempotency-key\"));\n\n try {\n let customerPrincipalRef = \"\";\n if (!(request.method === \"GET\" && (path === \"/bootstrap\" || path === \"/resource-policy\"))) {\n const entitlement = await embed.getResourcePolicy(agentId, {\n external_user_id: principal.subject,\n ...(principal.issuer ? { external_user_issuer: principal.issuer } : {}),\n ...(agentVersionId ? { agent_version_id: agentVersionId } : {}),\n runtime_target: runtimeTarget,\n });\n customerPrincipalRef = stringValue(entitlement.customer_principal_ref) || principal.subject;\n }\n const identity = {\n external_user_id: customerPrincipalRef,\n ...(principal.externalSessionId ? { external_session_id: principal.externalSessionId } : {}),\n };\n const threadIdentity = {\n externalUserId: customerPrincipalRef,\n runtimeTarget,\n ...(principal.externalSessionId ? { externalSessionId: principal.externalSessionId } : {}),\n };\n let response: Response;\n if (request.method === \"GET\" && path === \"/bootstrap\") {\n const raw = await embed.getRuntimeBootstrap(agentId, agentVersionId, runtimeTarget) as Record<string, unknown>;\n response = json(bootstrapDocument(raw, agentVersionId));\n } else if (request.method === \"GET\" && path === \"/resource-policy\") {\n response = json(await embed.getResourcePolicy(agentId, {\n external_user_id: principal.subject,\n ...(principal.issuer ? { external_user_issuer: principal.issuer } : {}),\n ...(agentVersionId ? { agent_version_id: agentVersionId } : {}),\n runtime_target: runtimeTarget,\n }));\n } else if (request.method === \"POST\" && path === \"/chat/stream\") {\n const body = await requestJson(request);\n const input = stringValue(body.input);\n const attachmentIds = stringList(body.attachmentIds);\n if (!input && attachmentIds.length === 0) throw new BffInputError(400, \"INPUT_REQUIRED\", \"A message or attachment is required.\");\n response = sseResponse(async (write) => {\n await embed.streamAgent(agentId, {\n ...identity,\n ...(agentVersionId ? { agent_version_id: agentVersionId } : {}),\n runtime_target: runtimeTarget,\n ...(input ? { input } : {}),\n attachment_ids: attachmentIds,\n ...(stringValue(body.threadId) ? { thread_id: stringValue(body.threadId) } : {}),\n ...(stringValue(body.requestedModelId) ? { requested_model_id: stringValue(body.requestedModelId) } : {}),\n tool_inputs: objectValue(body.toolInputs) as ToolInputOverrides,\n metadata: objectValue(body.metadata),\n client: objectValue(body.client),\n }, (event) => write(event), { idempotencyKey, signal: request.signal });\n });\n } else if (request.method === \"POST\" && /^\\/runs\\/[^/]+\\/attach$/.test(path)) {\n const runId = routeId(path, /^\\/runs\\/([^/]+)\\/attach$/, \"runId\");\n const body = await requestJson(request);\n const cursor = body.cursor;\n if (cursor !== undefined && (!Number.isInteger(cursor) || Number(cursor) < 0)) {\n throw new BffInputError(400, \"INVALID_CURSOR\", \"cursor must be a non-negative integer.\");\n }\n response = sseResponse(async (write) => {\n await embed.attachAgentRun(agentId, runId, {\n ...identity,\n runtime_target: runtimeTarget,\n ...(cursor === undefined ? {} : { cursor: Number(cursor) }),\n }, (event) => write(event), {\n idempotencyKey,\n signal: request.signal,\n });\n });\n } else if (request.method === \"POST\" && /^\\/runs\\/[^/]+\\/cancel$/.test(path)) {\n const runId = routeId(path, /^\\/runs\\/([^/]+)\\/cancel$/, \"runId\");\n response = json(await embed.cancelAgentRun(agentId, runId, threadIdentity, { idempotencyKey }));\n } else if (request.method === \"PUT\" && /^\\/runs\\/[^/]+\\/feedback$/.test(path)) {\n const runId = routeId(path, /^\\/runs\\/([^/]+)\\/feedback$/, \"runId\");\n const body = await requestJson(request);\n const rating = body.rating === null ? null : stringValue(body.rating);\n const reasons = new Set([\"incorrect\", \"irrelevant\", \"incomplete\", \"unsafe\", \"citation_issue\", \"other\"]);\n const reason = stringValue(body.reason);\n const comment = stringValue(body.comment);\n if (rating !== null && rating !== \"like\" && rating !== \"dislike\") {\n throw new BffInputError(422, \"INVALID_FEEDBACK\", \"rating must be like, dislike, or null.\");\n }\n if (reason && !reasons.has(reason)) {\n throw new BffInputError(422, \"INVALID_FEEDBACK\", \"The feedback reason is invalid.\");\n }\n if (comment && comment.length > 1000) {\n throw new BffInputError(422, \"INVALID_FEEDBACK\", \"The feedback comment is too long.\");\n }\n response = json(await embed.setAgentRunFeedback(agentId, runId, {\n ...identity,\n runtime_target: runtimeTarget,\n rating,\n ...(rating === \"dislike\" && reason ? { reason: reason as import(\"./types\").FeedbackReason } : {}),\n ...(rating === \"dislike\" && comment ? { comment } : {}),\n }));\n } else if (request.method === \"GET\" && path === \"/threads\") {\n const skip = Number(url.searchParams.get(\"skip\") || 0);\n const limit = Number(url.searchParams.get(\"limit\") || 20);\n response = json(await embed.listAgentThreads(agentId, {\n ...threadIdentity,\n runtimeTarget,\n skip: Number.isFinite(skip) ? skip : 0,\n limit: Number.isFinite(limit) ? limit : 20,\n }));\n } else if (request.method === \"GET\" && path === \"/threads/events\") {\n const rawCursor = url.searchParams.get(\"cursor\");\n const cursor = rawCursor === null ? undefined : Number(rawCursor);\n response = sseResponse(async (write) => {\n await embed.subscribeAgentThreadEvents(agentId, {\n ...threadIdentity,\n ...(cursor !== undefined && Number.isFinite(cursor) ? { cursor } : {}),\n signal: request.signal,\n }, (event: ThreadSummaryEvent) => write(event));\n });\n } else if (/^\\/threads\\/[^/]+$/.test(path) && request.method === \"GET\") {\n const threadId = routeId(path, /^\\/threads\\/([^/]+)$/, \"threadId\");\n const rawBefore = url.searchParams.get(\"before_turn_index\");\n const rawLimit = url.searchParams.get(\"limit\");\n const before = rawBefore === null ? undefined : Number(rawBefore);\n const limit = rawLimit === null ? undefined : Number(rawLimit);\n response = json(await embed.getAgentThread(agentId, threadId, {\n ...threadIdentity,\n ...(before !== undefined && Number.isFinite(before) ? { beforeTurnIndex: before } : {}),\n ...(limit !== undefined && Number.isFinite(limit) ? { limit } : {}),\n }));\n } else if (/^\\/threads\\/[^/]+$/.test(path) && request.method === \"DELETE\") {\n const threadId = routeId(path, /^\\/threads\\/([^/]+)$/, \"threadId\");\n response = json(await embed.deleteAgentThread(agentId, threadId, threadIdentity, { idempotencyKey }));\n } else if (request.method === \"POST\" && path === \"/attachments/upload\") {\n const form = await request.formData();\n const files = form.getAll(\"files\").filter((entry): entry is File => entry instanceof File);\n if (files.length === 0) throw new BffInputError(400, \"ATTACHMENT_REQUIRED\", \"At least one attachment is required.\");\n response = json(await embed.uploadAgentAttachments(agentId, {\n ...threadIdentity,\n files,\n ...(stringValue(form.get(\"thread_id\")) ? { threadId: stringValue(form.get(\"thread_id\")) } : {}),\n idempotencyKey,\n }));\n } else if (request.method === \"POST\" && /^\\/attachments\\/[^/]+\\/content-access$/.test(path)) {\n const attachmentId = routeId(path, /^\\/attachments\\/([^/]+)\\/content-access$/, \"attachmentId\");\n const body = await requestJson(request);\n const disposition = stringValue(body.disposition);\n if (disposition !== \"inline\" && disposition !== \"attachment\") {\n throw new BffInputError(400, \"INVALID_DISPOSITION\", \"Attachment disposition is invalid.\");\n }\n response = json(await embed.createAttachmentContentAccess(agentId, attachmentId, {\n external_user_id: threadIdentity.externalUserId,\n ...(threadIdentity.externalSessionId ? { external_session_id: threadIdentity.externalSessionId } : {}),\n runtime_target: runtimeTarget,\n disposition,\n }));\n } else if (request.method === \"POST\" && /^\\/runs\\/[^/]+\\/hitl\\/[^/]+\\/resume$/.test(path)) {\n const match = /^\\/runs\\/([^/]+)\\/hitl\\/([^/]+)\\/resume$/.exec(path);\n const runId = routeId(path, /^\\/runs\\/([^/]+)\\/hitl\\//, \"runId\");\n const interruptId = match?.[2] ? decodeURIComponent(match[2]) : \"\";\n const body = await requestJson(request);\n response = json(await embed.resumeAgentRun(agentId, runId, {\n ...identity,\n runtime_target: runtimeTarget,\n schema_version: \"agents24.hitl.resume.v2\",\n interrupt_id: normalized(interruptId, \"interruptId\"),\n action: normalized(String(body.action || \"\"), \"action\") as \"approve\" | \"reject\" | \"connect\" | \"skip\" | \"respond\",\n ...(stringValue(body.comment) ? { comment: stringValue(body.comment) } : {}),\n ...(Array.isArray(body.answers) ? { answers: body.answers as import(\"./types\").HitlAnswer[] } : {}),\n }, { idempotencyKey }));\n } else if (request.method === \"POST\" && /^\\/runs\\/[^/]+\\/mcp\\/servers\\/[^/]+\\/auth\\/start$/.test(path)) {\n const match = /^\\/runs\\/([^/]+)\\/mcp\\/servers\\/([^/]+)\\/auth\\/start$/.exec(path);\n const runId = match?.[1] ? decodeURIComponent(match[1]) : \"\";\n const serverId = match?.[2] ? decodeURIComponent(match[2]) : \"\";\n const body = await requestJson(request);\n const callbackOrigin = new URL(request.url).origin;\n response = json(await embed.startAgentRunMcpAuth(agentId, normalized(runId, \"runId\"), normalized(serverId, \"serverId\"), {\n ...identity,\n runtime_target: runtimeTarget,\n interrupt_id: normalized(String(body.interruptId || \"\"), \"interruptId\"),\n callback_origin: callbackOrigin,\n popup_nonce: normalized(String(body.popupNonce || \"\"), \"popupNonce\"),\n }, { idempotencyKey }));\n } else if (request.method === \"POST\" && path === \"/mcp/callback/redeem\") {\n throw new BffInputError(409, \"MCP_CALLBACK_DIRECT\", \"Server-embed MCP callbacks complete in the authorization popup.\");\n } else if (request.method === \"POST\" && path === \"/session/revoke\") {\n const headers = await options.revokePrincipal?.(request, principal);\n response = new Response(null, { status: 204, ...(headers ? { headers } : {}) });\n } else {\n response = publicError(404, \"NOT_FOUND\", \"The requested BFF route does not exist.\");\n }\n return mergeHeaders(response, resolution.responseHeaders);\n } catch (error) {\n if (error instanceof BffInputError) {\n return mergeHeaders(publicError(error.status, error.code, error.message), resolution.responseHeaders);\n }\n return mergeHeaders(errorResponse(error), resolution.responseHeaders);\n }\n };\n}\n"]}
|
|
@@ -79,6 +79,7 @@ type EmbedStreamRequest = {
|
|
|
79
79
|
external_session_id?: string;
|
|
80
80
|
metadata?: Record<string, unknown>;
|
|
81
81
|
client?: Record<string, unknown>;
|
|
82
|
+
runtime_target?: "draft" | "published";
|
|
82
83
|
};
|
|
83
84
|
type AttachRunRequest = {
|
|
84
85
|
external_user_id: string;
|
|
@@ -86,6 +87,7 @@ type AttachRunRequest = {
|
|
|
86
87
|
metadata?: Record<string, unknown>;
|
|
87
88
|
client?: Record<string, unknown>;
|
|
88
89
|
cursor?: number;
|
|
90
|
+
runtime_target?: "draft" | "published";
|
|
89
91
|
};
|
|
90
92
|
type FeedbackRating = "like" | "dislike";
|
|
91
93
|
type FeedbackReason = "incorrect" | "irrelevant" | "incomplete" | "unsafe" | "citation_issue" | "other";
|
|
@@ -106,6 +108,7 @@ type EmbeddedResponseFeedbackInput = {
|
|
|
106
108
|
rating: FeedbackRating | null;
|
|
107
109
|
reason?: FeedbackReason | null;
|
|
108
110
|
comment?: string | null;
|
|
111
|
+
runtime_target?: "draft" | "published";
|
|
109
112
|
};
|
|
110
113
|
type HitlAction = "approve" | "reject" | "connect" | "skip" | "respond";
|
|
111
114
|
type HitlAnswer = {
|
|
@@ -148,12 +151,14 @@ type MultiAgentThreadListRequest = {
|
|
|
148
151
|
type ThreadListOptions = {
|
|
149
152
|
externalUserId: string;
|
|
150
153
|
externalSessionId?: string;
|
|
154
|
+
runtimeTarget?: "draft" | "published";
|
|
151
155
|
skip?: number;
|
|
152
156
|
limit?: number;
|
|
153
157
|
};
|
|
154
158
|
type ThreadDetailOptions = {
|
|
155
159
|
externalUserId: string;
|
|
156
160
|
externalSessionId?: string;
|
|
161
|
+
runtimeTarget?: "draft" | "published";
|
|
157
162
|
beforeTurnIndex?: number;
|
|
158
163
|
limit?: number;
|
|
159
164
|
includeSubthreads?: boolean;
|
|
@@ -164,6 +169,7 @@ type ThreadDetailOptions = {
|
|
|
164
169
|
type RunContextOptions = {
|
|
165
170
|
externalUserId: string;
|
|
166
171
|
externalSessionId?: string;
|
|
172
|
+
runtimeTarget?: "draft" | "published";
|
|
167
173
|
};
|
|
168
174
|
type RunCancelOptions = {
|
|
169
175
|
externalUserId?: string;
|
|
@@ -173,16 +179,19 @@ type RunCancelOptions = {
|
|
|
173
179
|
type EmbedRunCancelOptions = {
|
|
174
180
|
externalUserId?: string;
|
|
175
181
|
externalSessionId?: string;
|
|
182
|
+
runtimeTarget?: "draft" | "published";
|
|
176
183
|
};
|
|
177
184
|
type ThreadDeleteOptions = {
|
|
178
185
|
externalUserId: string;
|
|
179
186
|
externalSessionId?: string;
|
|
187
|
+
runtimeTarget?: "draft" | "published";
|
|
180
188
|
};
|
|
181
189
|
type ThreadSummaryEventOptions = {
|
|
182
190
|
externalUserId: string;
|
|
183
191
|
externalSessionId?: string | null;
|
|
184
192
|
cursor?: number | null;
|
|
185
193
|
signal?: AbortSignal;
|
|
194
|
+
runtimeTarget?: "draft" | "published";
|
|
186
195
|
};
|
|
187
196
|
type MultiAgentThreadSummaryEventOptions = ThreadSummaryEventOptions & {
|
|
188
197
|
agentIds: string[];
|
|
@@ -199,10 +208,12 @@ type AttachmentContentAccessRequest = {
|
|
|
199
208
|
type EmbedAttachmentContentAccessRequest = AttachmentContentAccessRequest & {
|
|
200
209
|
external_user_id: string;
|
|
201
210
|
external_session_id?: string | null;
|
|
211
|
+
runtime_target?: "draft" | "published";
|
|
202
212
|
};
|
|
203
213
|
type ServerEmbedAttachmentUploadOptions = ServerAttachmentUploadOptions & {
|
|
204
214
|
externalUserId: string;
|
|
205
215
|
externalSessionId?: string;
|
|
216
|
+
runtimeTarget?: "draft" | "published";
|
|
206
217
|
};
|
|
207
218
|
type GraphValueRef = {
|
|
208
219
|
namespace: "workflow_input" | "state" | "node_output";
|
|
@@ -634,7 +645,7 @@ type ClientSessionCredentials = {
|
|
|
634
645
|
refresh_expires_at: string | null;
|
|
635
646
|
dpop_nonce: string | null;
|
|
636
647
|
};
|
|
637
|
-
type PortableResourceKind = "agent" | "rag_pipeline" | "instruction" | "knowledge_store";
|
|
648
|
+
type PortableResourceKind = "agent" | "rag_pipeline" | "instruction" | "knowledge_store" | "artifact";
|
|
638
649
|
type ResourceSelector = {
|
|
639
650
|
kind: PortableResourceKind;
|
|
640
651
|
id: string;
|
|
@@ -652,6 +663,11 @@ type ResourcePackageUpload = {
|
|
|
652
663
|
data: Uint8Array;
|
|
653
664
|
filename?: string;
|
|
654
665
|
};
|
|
666
|
+
type ResourceInstallationPlanUpload = ResourcePackageUpload & {
|
|
667
|
+
installationId?: string;
|
|
668
|
+
prune?: boolean;
|
|
669
|
+
development?: boolean;
|
|
670
|
+
};
|
|
655
671
|
type ResourcePackageDiagnostic = {
|
|
656
672
|
severity: "error" | "warning";
|
|
657
673
|
code: string;
|
|
@@ -661,7 +677,7 @@ type ResourcePackageDiagnostic = {
|
|
|
661
677
|
type ResourcePackageCompileResult = {
|
|
662
678
|
valid: boolean;
|
|
663
679
|
format: "agents24.resource_package";
|
|
664
|
-
schema_version: "
|
|
680
|
+
schema_version: "2.0";
|
|
665
681
|
package: Record<string, unknown>;
|
|
666
682
|
resources: Array<Record<string, unknown>>;
|
|
667
683
|
requirements: string[];
|
|
@@ -704,13 +720,20 @@ type ResourceBundleDependency = {
|
|
|
704
720
|
};
|
|
705
721
|
type ResourceBundle = {
|
|
706
722
|
format: "agents24.resource_bundle";
|
|
707
|
-
schema_version: "
|
|
723
|
+
schema_version: "2.0";
|
|
708
724
|
exported_at?: string;
|
|
709
725
|
resources: ResourceBundleResource[];
|
|
710
726
|
dependencies: ResourceBundleDependency[];
|
|
711
727
|
warnings: string[];
|
|
712
728
|
tool_exports?: Array<Record<string, unknown>>;
|
|
713
729
|
callable_bindings?: Array<Record<string, unknown>>;
|
|
730
|
+
content_sets?: Array<{
|
|
731
|
+
resource_key: string;
|
|
732
|
+
files: Array<{
|
|
733
|
+
path: string;
|
|
734
|
+
sha256: string;
|
|
735
|
+
}>;
|
|
736
|
+
}>;
|
|
714
737
|
};
|
|
715
738
|
type ResourceBundlePlan = Omit<ResourceBundle, "resources"> & {
|
|
716
739
|
resources: Array<Omit<ResourceBundleResource, "document">>;
|
|
@@ -739,6 +762,124 @@ type ResourceBundleCandidateOptions = {
|
|
|
739
762
|
offset?: number;
|
|
740
763
|
requiredCapability?: "chat" | "embedding";
|
|
741
764
|
};
|
|
765
|
+
type ResourceInstallationBinding = {
|
|
766
|
+
resource_key: string;
|
|
767
|
+
kind: string;
|
|
768
|
+
resource_id: string;
|
|
769
|
+
source_hash?: string | null;
|
|
770
|
+
retained_orphan?: boolean;
|
|
771
|
+
};
|
|
772
|
+
type ResourceInstallationOperation = {
|
|
773
|
+
operation_id: string;
|
|
774
|
+
installation_id: string;
|
|
775
|
+
status: "planned" | "applying" | "waiting" | "completed" | "failed";
|
|
776
|
+
phase: string;
|
|
777
|
+
result: Record<string, unknown>;
|
|
778
|
+
failure_id?: string | null;
|
|
779
|
+
};
|
|
780
|
+
type ResourceInstallation = {
|
|
781
|
+
id: string;
|
|
782
|
+
package_name: string;
|
|
783
|
+
primary_resource_key?: string | null;
|
|
784
|
+
integration_mode: "bff" | "client-deployment" | "publish-only";
|
|
785
|
+
client_deployment_id?: string | null;
|
|
786
|
+
status: string;
|
|
787
|
+
last_package_hash?: string | null;
|
|
788
|
+
last_applied_at?: string | null;
|
|
789
|
+
last_published_package_hash?: string | null;
|
|
790
|
+
last_published_at?: string | null;
|
|
791
|
+
publication_state?: "never_published" | "current" | "draft_changes";
|
|
792
|
+
bindings?: ResourceInstallationBinding[];
|
|
793
|
+
development_connections?: ArtifactDevelopmentSession[];
|
|
794
|
+
remote_artifact_stages?: Array<{
|
|
795
|
+
resource_key: string;
|
|
796
|
+
artifact_id: string;
|
|
797
|
+
target: "development" | "production";
|
|
798
|
+
status: string;
|
|
799
|
+
manifest_hash: string;
|
|
800
|
+
base_url?: string | null;
|
|
801
|
+
}>;
|
|
802
|
+
latest_operation?: ResourceInstallationOperation | null;
|
|
803
|
+
};
|
|
804
|
+
type ResourceInstallationList = {
|
|
805
|
+
items: ResourceInstallation[];
|
|
806
|
+
};
|
|
807
|
+
type ResourceInstallationCreateRequest = {
|
|
808
|
+
package_name: string;
|
|
809
|
+
operation_id: string;
|
|
810
|
+
};
|
|
811
|
+
type ResourceInstallationPlan = {
|
|
812
|
+
installation_id: string | null;
|
|
813
|
+
operation_id: string;
|
|
814
|
+
package_name: string;
|
|
815
|
+
package_hash: string;
|
|
816
|
+
actions: Array<Record<string, unknown>>;
|
|
817
|
+
content: Array<Record<string, unknown>>;
|
|
818
|
+
external_requirements: Array<Record<string, unknown>>;
|
|
819
|
+
artifact_actions: Array<Record<string, unknown>>;
|
|
820
|
+
generated_tool_changes: Array<Record<string, unknown>>;
|
|
821
|
+
publication_order: string[];
|
|
822
|
+
deployment: Record<string, unknown>;
|
|
823
|
+
blockers: Array<Record<string, unknown>>;
|
|
824
|
+
can_apply: boolean;
|
|
825
|
+
prune: boolean;
|
|
826
|
+
};
|
|
827
|
+
type ResourceInstallationLinkRequest = {
|
|
828
|
+
resource_key: string;
|
|
829
|
+
resource_id: string;
|
|
830
|
+
};
|
|
831
|
+
type ResourceInstallationSecretsRequest = {
|
|
832
|
+
secrets: Record<string, string>;
|
|
833
|
+
};
|
|
834
|
+
type ResourceInstallationSecretStatus = {
|
|
835
|
+
installation_id: string;
|
|
836
|
+
configured: string[];
|
|
837
|
+
};
|
|
838
|
+
type ResourceInstallationApplyRequest = {
|
|
839
|
+
secrets?: Record<string, string>;
|
|
840
|
+
primary_resource_key?: string;
|
|
841
|
+
integration_mode?: "bff" | "client-deployment" | "publish-only";
|
|
842
|
+
development_sessions?: Record<string, string>;
|
|
843
|
+
};
|
|
844
|
+
type ResourceInstallationPublishRequest = {
|
|
845
|
+
package_hash: string;
|
|
846
|
+
};
|
|
847
|
+
type ResourceInstallationPublication = {
|
|
848
|
+
installation_id: string;
|
|
849
|
+
operation_id: string;
|
|
850
|
+
package_hash: string;
|
|
851
|
+
status: "published" | "already_published";
|
|
852
|
+
published_at?: string | null;
|
|
853
|
+
client_deployment_id?: string | null;
|
|
854
|
+
};
|
|
855
|
+
type ArtifactDevelopmentSessionPrepareRequest = {
|
|
856
|
+
resource_key: string;
|
|
857
|
+
machine_label: string;
|
|
858
|
+
};
|
|
859
|
+
type ArtifactDevelopmentSession = {
|
|
860
|
+
id?: string;
|
|
861
|
+
installation_id: string;
|
|
862
|
+
resource_key: string;
|
|
863
|
+
artifact_id?: string | null;
|
|
864
|
+
status: "prepared" | "connecting" | "verified_provisional" | "connected" | "disconnected" | "expired" | "superseded" | "revoked";
|
|
865
|
+
machine_label?: string;
|
|
866
|
+
manifest_hash?: string | null;
|
|
867
|
+
last_heartbeat_at?: string | null;
|
|
868
|
+
expires_at?: string | null;
|
|
869
|
+
};
|
|
870
|
+
type ArtifactDevelopmentSessionAdmission = ArtifactDevelopmentSession & {
|
|
871
|
+
id: string;
|
|
872
|
+
relay_token: string;
|
|
873
|
+
relay_path: string;
|
|
874
|
+
};
|
|
875
|
+
type ResourceInstallationDeploymentRequest = {
|
|
876
|
+
client_deployment_id?: string | null;
|
|
877
|
+
};
|
|
878
|
+
type ResourceInstallationResourceListOptions = {
|
|
879
|
+
kind: string;
|
|
880
|
+
query?: string;
|
|
881
|
+
limit?: number;
|
|
882
|
+
};
|
|
742
883
|
type ResourcePolicySummary = {
|
|
743
884
|
id: string;
|
|
744
885
|
name: string;
|
|
@@ -760,6 +901,7 @@ type EmbedResourcePolicyRequest = {
|
|
|
760
901
|
external_user_id: string;
|
|
761
902
|
external_user_issuer?: string;
|
|
762
903
|
agent_version_id?: string;
|
|
904
|
+
runtime_target?: "draft" | "published";
|
|
763
905
|
};
|
|
764
906
|
type ResourcePolicySubjectRef = {
|
|
765
907
|
kind: "agent" | "client_deployment" | "organization_user" | "customer_principal";
|
|
@@ -938,7 +1080,7 @@ declare class EmbedNamespace {
|
|
|
938
1080
|
private stream;
|
|
939
1081
|
resumeAgentRun(agentId: string, runId: string, payload: ResumeRunRequest, options?: RequestOptions): Promise<RunResumeResult>;
|
|
940
1082
|
startAgentRunMcpAuth(agentId: string, runId: string, serverId: string, payload: McpAuthStartRequest, options?: RequestOptions): Promise<McpAuthStartResult>;
|
|
941
|
-
getRuntimeBootstrap(agentId: string, agentVersionId?: string): Promise<EmbedRuntimeBootstrap>;
|
|
1083
|
+
getRuntimeBootstrap(agentId: string, agentVersionId?: string, runtimeTarget?: "draft" | "published"): Promise<EmbedRuntimeBootstrap>;
|
|
942
1084
|
getResourcePolicy(agentId: string, request: EmbedResourcePolicyRequest): Promise<EffectiveResourcePolicy>;
|
|
943
1085
|
listAgentThreads(agentId: string, options: ThreadListOptions): Promise<ThreadsResponse>;
|
|
944
1086
|
listAgentThreadsMulti(options: MultiAgentThreadListRequest): Promise<ThreadsResponse>;
|
|
@@ -971,6 +1113,25 @@ declare class ResourcePackagesNamespace {
|
|
|
971
1113
|
compilePackage(upload: ResourcePackageUpload): Promise<ResourcePackageCompileResult>;
|
|
972
1114
|
}
|
|
973
1115
|
|
|
1116
|
+
declare class ResourceInstallationsNamespace {
|
|
1117
|
+
protected readonly http: Agents24HttpClient;
|
|
1118
|
+
constructor(http: Agents24HttpClient);
|
|
1119
|
+
list(): Promise<ResourceInstallationList>;
|
|
1120
|
+
create(request: ResourceInstallationCreateRequest, options?: RequestOptions): Promise<ResourceInstallation>;
|
|
1121
|
+
get(installationId: string): Promise<ResourceInstallation>;
|
|
1122
|
+
plan(upload: ResourceInstallationPlanUpload): Promise<ResourceInstallationPlan>;
|
|
1123
|
+
link(installationId: string, request: ResourceInstallationLinkRequest, options?: RequestOptions): Promise<ResourceInstallationBinding>;
|
|
1124
|
+
configureSecrets(installationId: string, request: ResourceInstallationSecretsRequest, options?: RequestOptions): Promise<ResourceInstallationSecretStatus>;
|
|
1125
|
+
apply(operationId: string, request: ResourceInstallationApplyRequest, options?: RequestOptions): Promise<ResourceInstallationOperation>;
|
|
1126
|
+
operationStatus(operationId: string): Promise<ResourceInstallationOperation>;
|
|
1127
|
+
publish(installationId: string, request: ResourceInstallationPublishRequest, options?: RequestOptions): Promise<ResourceInstallationPublication>;
|
|
1128
|
+
prepareDevelopmentSession(installationId: string, request: ArtifactDevelopmentSessionPrepareRequest, options?: RequestOptions): Promise<ArtifactDevelopmentSessionAdmission>;
|
|
1129
|
+
developmentSessionStatus(installationId: string, resourceKey: string): Promise<ArtifactDevelopmentSession>;
|
|
1130
|
+
revokeDevelopmentSession(installationId: string, sessionId: string, options?: RequestOptions): Promise<ArtifactDevelopmentSession>;
|
|
1131
|
+
bindDeployment(installationId: string, request: ResourceInstallationDeploymentRequest, options?: RequestOptions): Promise<ResourceInstallation>;
|
|
1132
|
+
resources(options: ResourceInstallationResourceListOptions): Promise<ResourceBundleCandidateList>;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
974
1135
|
declare class RunsNamespace {
|
|
975
1136
|
private readonly http;
|
|
976
1137
|
constructor(http: Agents24HttpClient);
|
|
@@ -1012,6 +1173,7 @@ declare class Agents24 {
|
|
|
1012
1173
|
readonly runs: RunsNamespace;
|
|
1013
1174
|
readonly resourceBundles: ResourceBundlesNamespace;
|
|
1014
1175
|
readonly resourcePackages: ResourcePackagesNamespace;
|
|
1176
|
+
readonly resourceInstallations: ResourceInstallationsNamespace;
|
|
1015
1177
|
readonly clientDeployments: ClientDeploymentsNamespace;
|
|
1016
1178
|
readonly clientSessions: ClientSessionsNamespace;
|
|
1017
1179
|
readonly instructions: InstructionsNamespace;
|
|
@@ -1021,4 +1183,4 @@ declare class Agents24 {
|
|
|
1021
1183
|
graph(): GraphBuilder;
|
|
1022
1184
|
}
|
|
1023
1185
|
|
|
1024
|
-
export {
|
|
1186
|
+
export { GraphBuilder as $, Agents24 as A, type BackendSessionRequestOptions as B, type ClearCustomerResourcePolicyAssignmentResult as C, type ClientDeploymentListQuery as D, type ClientDeploymentListResponse as E, type ClientNativeProfile as F, type ClientRuntimeNativeProfileInput as G, type ClientRuntimeOidcConfig as H, type ClientRuntimePolicyInput as I, type ClientSessionCredentials as J, type ControlPlaneRunEventsResponse as K, type CreateBackendClientSessionRequest as L, type CreateClientDeploymentRequest as M, type CustomerIdentityRequest as N, type CustomerResourcePolicyAssignment as O, type EffectiveCustomerResourcePolicyRequest as P, type EffectiveResourcePolicy as Q, type EmbedAttachmentContentAccessRequest as R, type EmbedResourcePolicyRequest as S, type EmbedRunCancelOptions as T, type EmbedRuntimeBootstrap as U, type EmbedStreamRequest as V, type EmbeddedResponseFeedbackInput as W, type FailureCategory as X, type FailureView as Y, type FeedbackRating as Z, type FeedbackReason as _, type AgentCreateRequest as a, type RunTrace as a$, type GraphDefinition as a0, type GraphEdge as a1, type GraphHints as a2, type GraphNode as a3, type GraphValueRef as a4, type HitlAction as a5, type HitlAnswer as a6, type LatestOrPinnedPolicy as a7, type McpAuthStartRequest as a8, type McpAuthStartResult as a9, type ResourceInstallationLinkRequest as aA, type ResourceInstallationList as aB, type ResourceInstallationOperation as aC, type ResourceInstallationPlan as aD, type ResourceInstallationPlanUpload as aE, type ResourceInstallationPublication as aF, type ResourceInstallationPublishRequest as aG, type ResourceInstallationResourceListOptions as aH, type ResourceInstallationSecretStatus as aI, type ResourceInstallationSecretsRequest as aJ, type ResourcePackageArchive as aK, type ResourcePackageCompileResult as aL, type ResourcePackageDiagnostic as aM, type ResourcePackageExportRequest as aN, type ResourcePackageUpload as aO, type ResourcePolicyList as aP, type ResourcePolicyQuotaSchedule as aQ, type ResourcePolicyQuotaScheduleResult as aR, type ResourcePolicySubjectRef as aS, type ResourcePolicySummary as aT, type ResourceSelector as aU, type ResponseFeedback as aV, type ResponseFeedbackResult as aW, type ResumeRunRequest as aX, type RunCancelOptions as aY, type RunContextOptions as aZ, type RunStatus as a_, type MultiAgentThreadListRequest as aa, type MultiAgentThreadSummaryEventOptions as ab, type NativePlatform as ac, type NodeAuthoringSpec as ad, type NodeCatalogItem as ae, type NodeCatalogResponse as af, type NodeSchemaResponse as ag, type PortableResourceKind as ah, type RequestOptions as ai, type ResetResourcePolicyQuotaRequest as aj, type ResourceBundle as ak, type ResourceBundleCandidateList as al, type ResourceBundleCandidateOptions as am, type ResourceBundleDependency as an, type ResourceBundleExportRequest as ao, type ResourceBundleImportPreview as ap, type ResourceBundleImportRequest as aq, type ResourceBundleImportResult as ar, type ResourceBundleOrigin as as, type ResourceBundlePlan as at, type ResourceBundleResource as au, type ResourceInstallation as av, type ResourceInstallationApplyRequest as aw, type ResourceInstallationBinding as ax, type ResourceInstallationCreateRequest as ay, type ResourceInstallationDeploymentRequest as az, AgentDefinitionBuilder as b, type ServerAttachmentUploadOptions as b0, type ServerEmbedAttachmentUploadOptions as b1, type SetCustomerResourcePolicyAssignmentRequest as b2, type SetResourcePolicyQuotaScheduleRequest as b3, type StartRunResult as b4, type StateVariableDefinition as b5, type StreamRequestOptions as b6, type StreamResult as b7, type ThreadDeleteOptions as b8, type ThreadDetailOptions as b9, type ThreadListOptions as ba, type ThreadSummaryEventOptions as bb, type TraceContent as bc, type TraceError as bd, type TraceSpan as be, type TraceSpanKind as bf, type TraceSpanStatus as bg, type TraceView as bh, type UpdateClientDeploymentRequest as bi, type WorkflowInputDefinition as bj, type AgentDefinitionOptions as c, type AgentListResponse as d, type AgentRef as e, type AgentResponse as f, type AgentStreamRequest as g, type AgentSummary as h, type AgentToolsetAttachment as i, type AgentUpdateRequest as j, type AgentValidationIssue as k, type AgentValidationResult as l, Agents24SDKError as m, type Agents24NodeErrorKind as n, type Agents24NodeOptions as o, type Agents24Options as p, type Agents24SDKErrorKind as q, type Agents24SDKSerializedError as r, type ArtifactDevelopmentSession as s, type ArtifactDevelopmentSessionAdmission as t, type ArtifactDevelopmentSessionPrepareRequest as u, type AttachRunRequest as v, type AttachmentContentAccessRequest as w, type BranchingHint as x, type ClientAuthMode as y, type ClientDeployment as z };
|