@agents24/node 0.1.0 → 0.2.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 +10 -1
- package/compatibility.json +6 -6
- package/dist/bff.cjs +295 -0
- package/dist/bff.cjs.map +1 -0
- package/dist/bff.d.cts +23 -0
- package/dist/bff.d.ts +23 -0
- package/dist/bff.js +293 -0
- package/dist/bff.js.map +1 -0
- package/dist/client-6MWalxux.d.cts +658 -0
- package/dist/client-6MWalxux.d.ts +658 -0
- package/dist/index.cjs +95 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -560
- package/dist/index.d.ts +3 -560
- package/dist/index.js +95 -13
- package/dist/index.js.map +1 -1
- package/dist/types/bff.d.ts +20 -0
- package/dist/types/bff.d.ts.map +1 -0
- package/dist/types/client-runtime-admin.d.ts +2 -2
- package/dist/types/client-runtime-admin.d.ts.map +1 -1
- package/dist/types/client.d.ts +4 -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/resourceBundles.d.ts +9 -0
- package/dist/types/generated/resourceBundles.d.ts.map +1 -0
- package/dist/types/generated/resourcePackages.d.ts +10 -0
- package/dist/types/generated/resourcePackages.d.ts.map +1 -0
- package/dist/types/types.d.ts +89 -8
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +8 -2
package/dist/index.cjs
CHANGED
|
@@ -280,11 +280,11 @@ function toolsetAttachments(options) {
|
|
|
280
280
|
const id = refId(attachment.toolset);
|
|
281
281
|
if (!id || seen.has(id)) return [];
|
|
282
282
|
seen.add(id);
|
|
283
|
-
const policy = attachment.versionPolicy || { mode: "
|
|
283
|
+
const policy = attachment.versionPolicy || { mode: "latest_published" };
|
|
284
284
|
return [{
|
|
285
285
|
toolset_id: id,
|
|
286
286
|
loading_mode: attachment.loadingMode || "static",
|
|
287
|
-
version_policy: policy.mode === "pinned" ? { mode: "pinned", version_id: policy.versionId } : { mode: "
|
|
287
|
+
version_policy: policy.mode === "pinned" ? { mode: "pinned", version_id: policy.versionId } : { mode: "latest_published" }
|
|
288
288
|
}];
|
|
289
289
|
});
|
|
290
290
|
}
|
|
@@ -395,6 +395,15 @@ var ClientDeploymentsNamespace = class {
|
|
|
395
395
|
mutation: true
|
|
396
396
|
});
|
|
397
397
|
}
|
|
398
|
+
list(query) {
|
|
399
|
+
const params = new URLSearchParams({ agent_id: query.agentId });
|
|
400
|
+
if (query.status) params.set("status", query.status);
|
|
401
|
+
if (query.cursor) params.set("cursor", query.cursor);
|
|
402
|
+
if (query.limit !== void 0) params.set("limit", String(query.limit));
|
|
403
|
+
return this.http.requestJson(
|
|
404
|
+
`/client-runtime/deployments?${params.toString()}`
|
|
405
|
+
);
|
|
406
|
+
}
|
|
398
407
|
get(deploymentId) {
|
|
399
408
|
return this.http.requestJson(`/client-runtime/deployments/${deploymentId}`);
|
|
400
409
|
}
|
|
@@ -406,14 +415,6 @@ var ClientDeploymentsNamespace = class {
|
|
|
406
415
|
mutation: true
|
|
407
416
|
});
|
|
408
417
|
}
|
|
409
|
-
promote(deploymentId, request, options) {
|
|
410
|
-
return this.http.requestJson(`/client-runtime/deployments/${deploymentId}/promote`, {
|
|
411
|
-
method: "POST",
|
|
412
|
-
body: request,
|
|
413
|
-
options,
|
|
414
|
-
mutation: true
|
|
415
|
-
});
|
|
416
|
-
}
|
|
417
418
|
revoke(deploymentId, options) {
|
|
418
419
|
return this.http.requestJson(`/client-runtime/deployments/${deploymentId}`, {
|
|
419
420
|
method: "DELETE",
|
|
@@ -474,8 +475,10 @@ var EmbedNamespace = class {
|
|
|
474
475
|
startAgentRunMcpAuth(agentId, runId, serverId, payload, options) {
|
|
475
476
|
return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/mcp/servers/${serverId}/auth/start`, { method: "POST", body: payload, options, mutation: true });
|
|
476
477
|
}
|
|
477
|
-
getRuntimeBootstrap(agentId) {
|
|
478
|
-
return this.http.requestJson(`/public/embed/agents/${agentId}/runtime/bootstrap
|
|
478
|
+
getRuntimeBootstrap(agentId, agentVersionId) {
|
|
479
|
+
return this.http.requestJson(`/public/embed/agents/${agentId}/runtime/bootstrap`, {
|
|
480
|
+
query: { agent_version_id: agentVersionId }
|
|
481
|
+
});
|
|
479
482
|
}
|
|
480
483
|
listAgentThreads(agentId, options) {
|
|
481
484
|
return this.http.requestJson(`/public/embed/agents/${agentId}/threads`, { query: {
|
|
@@ -554,6 +557,76 @@ var EmbedNamespace = class {
|
|
|
554
557
|
}
|
|
555
558
|
};
|
|
556
559
|
|
|
560
|
+
// src/generated/resourceBundles.ts
|
|
561
|
+
var ResourceBundlesNamespace = class {
|
|
562
|
+
constructor(http) {
|
|
563
|
+
this.http = http;
|
|
564
|
+
}
|
|
565
|
+
http;
|
|
566
|
+
importPreview(request) {
|
|
567
|
+
return this.http.requestJson("/resource-bundles/import/preview", {
|
|
568
|
+
method: "POST",
|
|
569
|
+
body: request
|
|
570
|
+
});
|
|
571
|
+
}
|
|
572
|
+
importBundle(request, options) {
|
|
573
|
+
return this.http.requestJson("/resource-bundles/import", {
|
|
574
|
+
method: "POST",
|
|
575
|
+
body: request,
|
|
576
|
+
options,
|
|
577
|
+
mutation: true
|
|
578
|
+
});
|
|
579
|
+
}
|
|
580
|
+
};
|
|
581
|
+
|
|
582
|
+
// src/generated/resourcePackages.ts
|
|
583
|
+
var ResourcePackagesNamespace = class {
|
|
584
|
+
constructor(http) {
|
|
585
|
+
this.http = http;
|
|
586
|
+
}
|
|
587
|
+
http;
|
|
588
|
+
async exportPackage(request) {
|
|
589
|
+
const response = await this.http.fetchOrThrow(
|
|
590
|
+
this.http.url("/resource-packages/export"),
|
|
591
|
+
{ method: "POST", headers: this.http.jsonHeaders(), body: JSON.stringify(request) },
|
|
592
|
+
"Failed to export the Agents24 resource package."
|
|
593
|
+
);
|
|
594
|
+
await assertOk(response);
|
|
595
|
+
const disposition = response.headers.get("content-disposition") || "";
|
|
596
|
+
const candidate = /filename="?([^";]+)"?/i.exec(disposition)?.[1] || "";
|
|
597
|
+
const filename = /^[A-Za-z0-9][A-Za-z0-9._-]{0,200}\.zip$/.test(candidate) ? candidate : "resource.agents24.zip";
|
|
598
|
+
return { data: new Uint8Array(await response.arrayBuffer()), filename };
|
|
599
|
+
}
|
|
600
|
+
async validatePackage(upload) {
|
|
601
|
+
const formData = new FormData();
|
|
602
|
+
const archiveBytes = upload.data.slice().buffer;
|
|
603
|
+
const candidate = upload.filename || "";
|
|
604
|
+
const filename = /^[A-Za-z0-9][A-Za-z0-9._-]{0,200}\.zip$/.test(candidate) ? candidate : "resource.agents24.zip";
|
|
605
|
+
formData.append("file", new Blob([archiveBytes]), filename);
|
|
606
|
+
const response = await this.http.fetchOrThrow(
|
|
607
|
+
this.http.url("/resource-packages/validate"),
|
|
608
|
+
{ method: "POST", headers: this.http.multipartHeaders(), body: formData },
|
|
609
|
+
"Failed to upload the Agents24 resource package."
|
|
610
|
+
);
|
|
611
|
+
await assertOk(response);
|
|
612
|
+
return await response.json();
|
|
613
|
+
}
|
|
614
|
+
async compilePackage(upload) {
|
|
615
|
+
const formData = new FormData();
|
|
616
|
+
const archiveBytes = upload.data.slice().buffer;
|
|
617
|
+
const candidate = upload.filename || "";
|
|
618
|
+
const filename = /^[A-Za-z0-9][A-Za-z0-9._-]{0,200}\.zip$/.test(candidate) ? candidate : "resource.agents24.zip";
|
|
619
|
+
formData.append("file", new Blob([archiveBytes]), filename);
|
|
620
|
+
const response = await this.http.fetchOrThrow(
|
|
621
|
+
this.http.url("/resource-packages/compile"),
|
|
622
|
+
{ method: "POST", headers: this.http.multipartHeaders(), body: formData },
|
|
623
|
+
"Failed to upload the Agents24 resource package."
|
|
624
|
+
);
|
|
625
|
+
await assertOk(response);
|
|
626
|
+
return await response.json();
|
|
627
|
+
}
|
|
628
|
+
};
|
|
629
|
+
|
|
557
630
|
// src/runs.ts
|
|
558
631
|
var RunsNamespace = class {
|
|
559
632
|
constructor(http) {
|
|
@@ -586,6 +659,8 @@ var Agents24 = class {
|
|
|
586
659
|
agents;
|
|
587
660
|
embed;
|
|
588
661
|
runs;
|
|
662
|
+
resourceBundles;
|
|
663
|
+
resourcePackages;
|
|
589
664
|
clientDeployments;
|
|
590
665
|
clientSessions;
|
|
591
666
|
constructor(options) {
|
|
@@ -593,6 +668,8 @@ var Agents24 = class {
|
|
|
593
668
|
this.agents = new AgentsNamespace(http);
|
|
594
669
|
this.embed = new EmbedNamespace(http);
|
|
595
670
|
this.runs = new RunsNamespace(http);
|
|
671
|
+
this.resourceBundles = new ResourceBundlesNamespace(http);
|
|
672
|
+
this.resourcePackages = new ResourcePackagesNamespace(http);
|
|
596
673
|
this.clientDeployments = new ClientDeploymentsNamespace(http);
|
|
597
674
|
this.clientSessions = new ClientSessionsNamespace(http);
|
|
598
675
|
}
|
|
@@ -626,7 +703,7 @@ var SDK_OPERATION_IDS = [
|
|
|
626
703
|
"client.chat.stream",
|
|
627
704
|
"client.deployments.create",
|
|
628
705
|
"client.deployments.get",
|
|
629
|
-
"client.deployments.
|
|
706
|
+
"client.deployments.list",
|
|
630
707
|
"client.deployments.revoke",
|
|
631
708
|
"client.deployments.update",
|
|
632
709
|
"client.hitl.resume",
|
|
@@ -657,6 +734,11 @@ var SDK_OPERATION_IDS = [
|
|
|
657
734
|
"embed.stream_agent_thread_events",
|
|
658
735
|
"embed.stream_agent_thread_events_multi",
|
|
659
736
|
"embed.upload_agent_attachments",
|
|
737
|
+
"resource_bundles.import",
|
|
738
|
+
"resource_bundles.import_preview",
|
|
739
|
+
"resource_packages.compile",
|
|
740
|
+
"resource_packages.export",
|
|
741
|
+
"resource_packages.validate",
|
|
660
742
|
"runs.get",
|
|
661
743
|
"runs.get_context",
|
|
662
744
|
"runs.get_events",
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/http.ts","../src/streams.ts","../src/agents.ts","../src/builders.ts","../src/client-runtime-admin.ts","../src/embed.ts","../src/runs.ts","../src/client.ts","../src/generated/manifest.ts"],"names":["message","randomUUID","createSseParser","parseRuntimeSsePayload","parseThreadSummarySsePayload"],"mappings":"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","file":"index.cjs","sourcesContent":["export type Agents24SDKErrorKind = \"protocol\" | \"network\" | \"http\";\nexport type Agents24NodeErrorKind = Agents24SDKErrorKind;\n\nexport class Agents24SDKError extends Error {\n readonly kind: Agents24SDKErrorKind;\n readonly status?: number;\n readonly details?: unknown;\n readonly responseHeaders?: Readonly<Record<string, string>>;\n\n constructor(\n message: string,\n options: {\n kind: Agents24SDKErrorKind;\n status?: number;\n details?: unknown;\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.details = options.details;\n this.responseHeaders = options.responseHeaders;\n }\n}\n\nexport { Agents24SDKError as Agents24NodeError };\n","import { randomUUID } from \"node:crypto\";\n\nimport { Agents24SDKError } from \"./errors.js\";\nimport type { Agents24NodeOptions, RequestOptions } from \"./types.js\";\n\nfunction required(value: string, name: string): string {\n const normalized = String(value || \"\").trim();\n if (!normalized) throw new Agents24SDKError(`Agents24 requires ${name}.`, { kind: \"protocol\" });\n return normalized;\n}\n\nfunction normalizeBaseUrl(value: string): string {\n try {\n return new URL(required(value, \"baseUrl\")).toString().replace(/\\/+$/, \"\");\n } catch (cause) {\n if (cause instanceof Agents24SDKError) throw cause;\n throw new Agents24SDKError(\"Agents24 received an invalid baseUrl.\", { kind: \"protocol\", cause });\n }\n}\n\nasync function errorDetails(response: Response): Promise<unknown> {\n const text = await response.text().catch(() => \"\");\n if (!text) return null;\n try { return JSON.parse(text) as unknown; }\n catch { return text; }\n}\n\nfunction detailMessage(details: unknown): string | undefined {\n if (typeof details === \"string\" && details.trim()) return details.trim();\n if (!details || typeof details !== \"object\" || Array.isArray(details)) return undefined;\n const detail = (details as Record<string, unknown>).detail;\n if (typeof detail === \"string\" && detail.trim()) return detail.trim();\n if (detail && typeof detail === \"object\" && !Array.isArray(detail)) {\n const message = (detail as Record<string, unknown>).message;\n if (typeof message === \"string\" && message.trim()) return message.trim();\n }\n const message = (details as Record<string, unknown>).message;\n return typeof message === \"string\" && message.trim() ? message.trim() : undefined;\n}\n\nfunction responseHeaders(response: Response): Record<string, string> {\n const headers: Record<string, string> = {};\n for (const name of [\"dpop-nonce\", \"retry-after\", \"www-authenticate\", \"x-request-id\"]) {\n const value = response.headers.get(name);\n if (value) headers[name] = value;\n }\n return headers;\n}\n\nexport async function assertOk(response: Response): Promise<void> {\n if (response.ok) return;\n const details = await errorDetails(response);\n throw new Agents24SDKError(detailMessage(details) || response.statusText || \"Agents24 request failed.\", {\n kind: \"http\",\n status: response.status,\n details,\n responseHeaders: responseHeaders(response),\n });\n}\n\nexport type RequestConfig = {\n method?: string;\n query?: Record<string, unknown>;\n body?: unknown;\n headers?: HeadersInit;\n options?: RequestOptions;\n mutation?: boolean;\n};\n\nexport class Agents24HttpClient {\n private readonly base: string;\n private readonly apiKey: string;\n private readonly organizationId: string;\n private readonly projectId: string;\n private readonly fetchImpl: typeof fetch;\n\n constructor(options: Agents24NodeOptions) {\n if (typeof process === \"undefined\" || process.release?.name !== \"node\") {\n throw new Agents24SDKError(\"@agents24/node is for trusted server runtimes only.\", { kind: \"protocol\" });\n }\n this.base = normalizeBaseUrl(options.baseUrl);\n this.apiKey = required(options.apiKey, \"apiKey\");\n this.organizationId = required(options.organizationId, \"organizationId\");\n this.projectId = required(options.projectId, \"projectId\");\n if (typeof options.fetchImpl !== \"function\" && typeof fetch !== \"function\") {\n throw new Agents24SDKError(\"No fetch implementation is available. Use Node 22 or 24.\", { kind: \"protocol\" });\n }\n this.fetchImpl = options.fetchImpl || fetch;\n }\n\n url(requestPath: string, query?: Record<string, unknown>): string {\n const url = new URL(`${this.base}${requestPath}`);\n for (const [key, value] of Object.entries(query || {})) {\n if (value === undefined || value === null || value === \"\") continue;\n if (Array.isArray(value)) {\n for (const item of value) {\n if (item !== undefined && item !== null && item !== \"\") url.searchParams.append(key, String(item));\n }\n } else {\n url.searchParams.set(key, String(value));\n }\n }\n return url.toString();\n }\n\n jsonHeaders(extra?: HeadersInit, options?: RequestOptions, mutation = false): HeadersInit {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"X-Organization-ID\": this.organizationId,\n \"X-Project-ID\": this.projectId,\n \"X-SDK-Contract\": \"1\",\n ...(mutation ? { \"Idempotency-Key\": options?.idempotencyKey || randomUUID() } : {}),\n ...(options?.requestMetadata ? { \"X-Request-Metadata\": JSON.stringify(options.requestMetadata) } : {}),\n ...(extra || {}),\n };\n }\n\n streamHeaders(extra?: HeadersInit, options?: RequestOptions, mutation = false): HeadersInit {\n return this.jsonHeaders({ Accept: \"text/event-stream\", ...(extra || {}) }, options, mutation);\n }\n\n multipartHeaders(extra?: HeadersInit, options?: RequestOptions, mutation = false): HeadersInit {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: \"application/json\",\n \"X-Organization-ID\": this.organizationId,\n \"X-Project-ID\": this.projectId,\n \"X-SDK-Contract\": \"1\",\n ...(mutation ? { \"Idempotency-Key\": options?.idempotencyKey || randomUUID() } : {}),\n ...(extra || {}),\n };\n }\n\n async requestJson<T>(requestPath: string, config: RequestConfig = {}): Promise<T> {\n const query = { ...(config.query || {}) };\n if (config.options?.dryRun !== undefined) query.dry_run = config.options.dryRun;\n if (config.options?.validateOnly !== undefined) query.validate_only = config.options.validateOnly;\n const response = await this.fetchOrThrow(this.url(requestPath, query), {\n method: config.method || \"GET\",\n headers: this.jsonHeaders(config.headers, config.options, Boolean(config.mutation)),\n ...(config.body === undefined ? {} : { body: JSON.stringify(config.body) }),\n }, \"Failed to connect to the Agents24 API.\");\n await assertOk(response);\n return await response.json() as T;\n }\n\n async fetchOrThrow(url: string, init: RequestInit, message: string): Promise<Response> {\n try { return await this.fetchImpl(url, init); }\n catch (cause) {\n if (cause instanceof Agents24SDKError) throw cause;\n throw new Agents24SDKError(message, { kind: \"network\", cause });\n }\n }\n}\n","import {\n createSseParser,\n parseRuntimeSsePayload,\n parseThreadSummarySsePayload,\n} from \"@agents24/client/protocol\";\nimport type { RuntimeEvent, ThreadSummaryEvent } from \"@agents24/client/protocol\";\n\nimport { Agents24SDKError } from \"./errors.js\";\n\nasync function consumePayloads(\n response: Response,\n onPayload: (payload: string) => void | Promise<void>,\n signal?: AbortSignal,\n): Promise<void> {\n if (!response.body) {\n throw new Agents24SDKError(\"Stream response did not include a readable body.\", { kind: \"protocol\" });\n }\n const reader = response.body.getReader();\n const parser = createSseParser({ decoder: new TextDecoder(), onPayload, signal });\n const abort = () => { void reader.cancel(signal?.reason).catch(() => undefined); };\n if (signal?.aborted) return abort();\n signal?.addEventListener(\"abort\", abort, { once: true });\n try {\n while (!signal?.aborted) {\n const { done, value } = await reader.read();\n if (value) await parser.push(value);\n if (done) break;\n }\n if (!signal?.aborted) await parser.finish();\n } finally {\n signal?.removeEventListener(\"abort\", abort);\n reader.releaseLock();\n }\n}\n\nexport async function consumeRuntimeEventStream(\n response: Response,\n onEvent?: (event: RuntimeEvent) => void | Promise<void>,\n signal?: AbortSignal,\n): Promise<void> {\n await consumePayloads(response, async (payload) => {\n const event = parseRuntimeSsePayload(payload);\n if (onEvent) await onEvent(event);\n }, signal);\n}\n\nexport async function consumeThreadSummaryEventStream(\n response: Response,\n onEvent: (event: ThreadSummaryEvent) => void | Promise<void>,\n signal?: AbortSignal,\n): Promise<void> {\n await consumePayloads(response, async (payload) => {\n await onEvent(parseThreadSummarySsePayload(payload));\n }, signal);\n}\n","import { assertOk, type Agents24HttpClient } from \"./http.js\";\nimport { consumeRuntimeEventStream } from \"./streams.js\";\nimport type {\n AgentCreateRequest,\n AgentListResponse,\n AgentResponse,\n AgentStreamRequest,\n AgentUpdateRequest,\n AttachmentUploadResult,\n GraphDefinition,\n RequestOptions,\n RunCancelOptions,\n RunCancelResult,\n RuntimeEvent,\n ServerAttachmentUploadOptions,\n StartRunResult,\n StreamRequestOptions,\n StreamResult,\n} from \"./types.js\";\n\nexport type ListAgentsOptions = { status?: string; skip?: number; limit?: number; view?: \"summary\" | \"full\" | string };\n\nexport class AgentsNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n\n list(options: ListAgentsOptions = {}): Promise<AgentListResponse> {\n return this.http.requestJson(\"/agents\", { query: { status: options.status, skip: options.skip ?? 0, limit: options.limit ?? 20, view: options.view ?? \"summary\" } });\n }\n get(agentId: string): Promise<AgentResponse> { return this.http.requestJson(`/agents/${agentId}`); }\n create(request: AgentCreateRequest, options?: RequestOptions): Promise<AgentResponse> {\n return this.http.requestJson(\"/agents\", { method: \"POST\", body: request, options, mutation: true });\n }\n update(agentId: string, request: AgentUpdateRequest, options?: RequestOptions): Promise<AgentResponse> {\n return this.http.requestJson(`/agents/${agentId}`, { method: \"PATCH\", body: request, options, mutation: true });\n }\n updateGraph(agentId: string, graph: GraphDefinition, options?: RequestOptions): Promise<AgentResponse> {\n return this.http.requestJson(`/agents/${agentId}/graph`, { method: \"PUT\", body: graph, options, mutation: true });\n }\n delete(agentId: string, options?: RequestOptions): Promise<unknown> {\n return this.http.requestJson(`/agents/${agentId}`, { method: \"DELETE\", options, mutation: true });\n }\n catalog(): Promise<Record<string, unknown>> { return this.http.requestJson(\"/agents/nodes/catalog\"); }\n schema(nodeTypes: string[]): Promise<Record<string, unknown>> {\n return this.http.requestJson(\"/agents/nodes/schema\", { method: \"POST\", body: { node_types: nodeTypes } });\n }\n validate(agentId: string): Promise<Record<string, unknown>> {\n return this.http.requestJson(`/agents/${agentId}/validate`, { method: \"POST\", body: {} });\n }\n publish(agentId: string, options?: RequestOptions): Promise<AgentResponse> {\n return this.http.requestJson(`/agents/${agentId}/publish`, { method: \"POST\", body: {}, options, mutation: true });\n }\n startRun(agentId: string, payload: AgentStreamRequest, options?: RequestOptions): Promise<StartRunResult> {\n return this.http.requestJson(`/agents/${agentId}/run`, { method: \"POST\", body: payload, options, mutation: true });\n }\n async stream(\n agentId: string,\n payload: AgentStreamRequest,\n onEvent?: (event: RuntimeEvent) => void | Promise<void>,\n mode?: \"debug\" | \"production\" | string,\n options: StreamRequestOptions = {},\n ): Promise<StreamResult> {\n const response = await this.http.fetchOrThrow(this.http.url(`/agents/${agentId}/stream`, { mode }), {\n method: \"POST\", headers: this.http.streamHeaders(), body: JSON.stringify(payload), signal: options.signal,\n }, \"Failed to connect to the agent stream endpoint.\");\n await assertOk(response);\n let runId = response.headers.get(\"X-Run-ID\");\n await consumeRuntimeEventStream(response, async (event) => { runId ||= event.run_id; if (onEvent) await onEvent(event); }, options.signal);\n return { threadId: response.headers.get(\"X-Thread-ID\"), runId };\n }\n resumeRun(runId: string, payload: Record<string, unknown>, options?: RequestOptions): Promise<Record<string, unknown>> {\n return this.http.requestJson(`/agents/runs/${runId}/resume`, { method: \"POST\", body: payload, options, mutation: true });\n }\n cancelRun(runId: string, options: RunCancelOptions = {}): Promise<RunCancelResult> {\n return this.http.requestJson(`/agents/runs/${runId}/cancel`, { method: \"POST\", body: { assistant_output_text: options.assistantOutputText }, mutation: true });\n }\n async uploadAttachments(agentId: string, options: ServerAttachmentUploadOptions): Promise<AttachmentUploadResult> {\n const form = new FormData();\n if (options.threadId) form.set(\"thread_id\", options.threadId);\n for (const file of options.files) form.append(\"files\", file, file.name);\n const response = await this.http.fetchOrThrow(this.http.url(`/agents/${agentId}/attachments/upload`), {\n method: \"POST\", headers: this.http.multipartHeaders(), body: form,\n }, \"Failed to connect to the agent attachment endpoint.\");\n await assertOk(response);\n return await response.json() as AttachmentUploadResult;\n }\n}\n","import type { AgentsNamespace } from \"./agents.js\";\nimport type {\n AgentCreateRequest,\n AgentDefinitionOptions,\n AgentRef,\n AgentResponse,\n GraphDefinition,\n GraphEdge,\n GraphNode,\n RequestOptions,\n} from \"./types.js\";\n\nfunction refId(ref: AgentRef): string { return typeof ref === \"string\" ? ref : ref.id; }\nfunction refs(values: AgentRef[] | undefined): string[] { return [...new Set((values || []).map(refId).filter(Boolean))]; }\nfunction graphNode(id: string, type: string, x: number, y: number, config: Record<string, unknown> = {}): GraphNode {\n return { id, type, position: { x, y }, config };\n}\n\nfunction toolsetAttachments(options: AgentDefinitionOptions): Array<Record<string, unknown>> {\n const seen = new Set<string>();\n return (options.toolsetAttachments || []).flatMap((attachment) => {\n const id = refId(attachment.toolset);\n if (!id || seen.has(id)) return [];\n seen.add(id);\n const policy = attachment.versionPolicy || { mode: \"latest\" as const };\n return [{\n toolset_id: id,\n loading_mode: attachment.loadingMode || \"static\",\n version_policy: policy.mode === \"pinned\" ? { mode: \"pinned\", version_id: policy.versionId } : { mode: \"latest\" },\n }];\n });\n}\n\nexport class AgentDefinitionBuilder {\n constructor(private readonly agents: AgentsNamespace, private readonly options: AgentDefinitionOptions) {}\n toGraph(): GraphDefinition {\n const agentConfig: Record<string, unknown> = {\n instructions: this.options.instructions || \"\",\n tools: refs(this.options.tools),\n toolset_attachments: toolsetAttachments(this.options),\n input_sources: [{ id: \"workflow-text\", value_ref: { namespace: \"workflow_input\", key: \"text\", label: \"Workflow input / Text\" } }],\n };\n if (this.options.model) agentConfig.model_id = refId(this.options.model);\n return {\n spec_version: \"4.0\",\n graph_type: \"agent\",\n workflow_contract: { inputs: [] },\n state_contract: { variables: [] },\n nodes: [\n graphNode(\"start\", \"start\", 0, 0),\n graphNode(\"agent\", \"agent\", 260, 0, agentConfig),\n graphNode(\"end\", \"end\", 520, 0, {\n output_schema: {\n name: \"workflow_result\", mode: \"simple\",\n schema: { type: \"object\", additionalProperties: false, properties: { response: { type: \"string\" } }, required: [\"response\"] },\n },\n output_bindings: [{ json_pointer: \"/response\", value_ref: { namespace: \"node_output\", node_id: \"agent\", key: \"output_text\", label: \"Agent response\" } }],\n }),\n ],\n edges: [\n { id: \"start-agent\", source: \"start\", target: \"agent\", type: \"control\" },\n { id: \"agent-end\", source: \"agent\", target: \"end\", type: \"control\" },\n ],\n };\n }\n toCreateRequest(): AgentCreateRequest {\n const knowledge = refs(this.options.knowledge);\n return {\n name: this.options.name,\n description: this.options.description ?? null,\n graph_definition: this.toGraph(),\n memory_config: {\n ...(this.options.memory || {}),\n ...(knowledge.length ? { long_term_enabled: true, long_term_index_id: knowledge[0], knowledge_refs: knowledge } : {}),\n },\n execution_constraints: this.options.execution || {},\n };\n }\n create(options?: RequestOptions): Promise<AgentResponse> { return this.agents.create(this.toCreateRequest(), options); }\n}\n\nexport class GraphBuilder {\n private readonly nodes = new Map<string, GraphNode>();\n private readonly edges: GraphEdge[] = [];\n node(type: string, config: Record<string, unknown> = {}, options: { id?: string; x?: number; y?: number; label?: string } = {}): GraphNode {\n const id = options.id || `${type}_${this.nodes.size + 1}`;\n if (this.nodes.has(id)) throw new Error(`Duplicate graph node id: ${id}`);\n const value = graphNode(id, type, options.x ?? this.nodes.size * 260, options.y ?? 0, config);\n if (options.label) value.label = options.label;\n this.nodes.set(id, value);\n return value;\n }\n connect(source: GraphNode | string, target: GraphNode | string, options: { id?: string; sourceHandle?: string; targetHandle?: string } = {}): this {\n const sourceId = typeof source === \"string\" ? source : source.id;\n const targetId = typeof target === \"string\" ? target : target.id;\n if (!this.nodes.has(sourceId)) throw new Error(`Unknown source node id: ${sourceId}`);\n if (!this.nodes.has(targetId)) throw new Error(`Unknown target node id: ${targetId}`);\n this.edges.push({\n id: options.id || `${sourceId}-${targetId}`, source: sourceId, target: targetId, type: \"control\",\n source_handle: options.sourceHandle, target_handle: options.targetHandle,\n });\n return this;\n }\n toGraph(): GraphDefinition {\n return {\n spec_version: \"4.0\", graph_type: \"agent\", workflow_contract: { inputs: [] }, state_contract: { variables: [] },\n nodes: [...this.nodes.values()], edges: [...this.edges],\n };\n }\n}\n","import type { Agents24HttpClient } from \"./http.js\";\nimport type {\n BackendSessionRequestOptions,\n ClientDeployment,\n ClientSessionCredentials,\n CreateBackendClientSessionRequest,\n CreateClientDeploymentRequest,\n PromoteClientDeploymentRequest,\n RequestOptions,\n UpdateClientDeploymentRequest,\n} from \"./types.js\";\n\nexport class ClientDeploymentsNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n\n create(request: CreateClientDeploymentRequest, options?: RequestOptions): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(\"/client-runtime/deployments\", {\n method: \"POST\", body: request, options, mutation: true,\n });\n }\n\n get(deploymentId: string): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(`/client-runtime/deployments/${deploymentId}`);\n }\n\n update(deploymentId: string, request: UpdateClientDeploymentRequest, options?: RequestOptions): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(`/client-runtime/deployments/${deploymentId}`, {\n method: \"PATCH\", body: request, options, mutation: true,\n });\n }\n\n promote(deploymentId: string, request: PromoteClientDeploymentRequest, options?: RequestOptions): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(`/client-runtime/deployments/${deploymentId}/promote`, {\n method: \"POST\", body: request, options, mutation: true,\n });\n }\n\n revoke(deploymentId: string, options?: RequestOptions): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(`/client-runtime/deployments/${deploymentId}`, {\n method: \"DELETE\", options, mutation: true,\n });\n }\n}\n\nexport class ClientSessionsNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n\n createBackendSession(\n deploymentId: string,\n request: CreateBackendClientSessionRequest,\n options?: BackendSessionRequestOptions,\n ): Promise<ClientSessionCredentials> {\n return this.http.requestJson<ClientSessionCredentials>(\n `/client-runtime/deployments/${deploymentId}/session-tokens`,\n {\n method: \"POST\",\n body: request,\n options,\n mutation: true,\n headers: options?.dpopProof ? { DPoP: options.dpopProof } : undefined,\n },\n );\n }\n}\n","import { assertOk, type Agents24HttpClient } from \"./http.js\";\nimport { consumeRuntimeEventStream, consumeThreadSummaryEventStream } from \"./streams.js\";\nimport type {\n AttachRunRequest,\n AttachmentUploadResult,\n EmbedRuntimeBootstrap,\n EmbedRunCancelOptions,\n EmbedStreamRequest,\n McpAuthStartRequest,\n McpAuthStartResult,\n MultiAgentThreadListRequest,\n MultiAgentThreadSummaryEventOptions,\n RequestOptions,\n ResumeRunRequest,\n RunCancelResult,\n RunContext,\n RunContextOptions,\n RunResumeResult,\n RuntimeEvent,\n ServerEmbedAttachmentUploadOptions,\n StreamRequestOptions,\n StreamResult,\n ThreadDeleteOptions,\n ThreadDeleteResult,\n ThreadDetail,\n ThreadDetailOptions,\n ThreadListOptions,\n ThreadSummaryEvent,\n ThreadSummaryEventOptions,\n ThreadsResponse,\n} from \"./types.js\";\n\nexport class EmbedNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n\n async streamAgent(\n agentId: string,\n payload: EmbedStreamRequest,\n onEvent?: (event: RuntimeEvent) => void | Promise<void>,\n options: StreamRequestOptions = {},\n ): Promise<StreamResult> {\n return this.stream(`/public/embed/agents/${agentId}/chat/stream`, payload, onEvent, options);\n }\n\n async attachAgentRun(\n agentId: string,\n runId: string,\n payload: AttachRunRequest,\n onEvent?: (event: RuntimeEvent) => void | Promise<void>,\n options: StreamRequestOptions = {},\n ): Promise<StreamResult> {\n return this.stream(`/public/embed/agents/${agentId}/runs/${runId}/stream`, payload, onEvent, options);\n }\n\n private async stream(\n path: string,\n payload: unknown,\n onEvent: ((event: RuntimeEvent) => void | Promise<void>) | undefined,\n options: StreamRequestOptions,\n ): Promise<StreamResult> {\n const response = await this.http.fetchOrThrow(this.http.url(path), {\n method: \"POST\",\n headers: this.http.streamHeaders(undefined, options, true),\n body: JSON.stringify(payload),\n signal: options.signal,\n }, \"Failed to connect to the embedded-agent stream endpoint.\");\n await assertOk(response);\n let runId = response.headers.get(\"X-Run-ID\");\n await consumeRuntimeEventStream(response, async (event) => { runId ||= event.run_id; if (onEvent) await onEvent(event); }, options.signal);\n return { threadId: response.headers.get(\"X-Thread-ID\"), runId };\n }\n\n resumeAgentRun(agentId: string, runId: string, payload: ResumeRunRequest, options?: RequestOptions): Promise<RunResumeResult> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/resume`, { method: \"POST\", body: payload, options, mutation: true });\n }\n startAgentRunMcpAuth(agentId: string, runId: string, serverId: string, payload: McpAuthStartRequest, options?: RequestOptions): Promise<McpAuthStartResult> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/mcp/servers/${serverId}/auth/start`, { method: \"POST\", body: payload, options, mutation: true });\n }\n getRuntimeBootstrap(agentId: string): Promise<EmbedRuntimeBootstrap> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runtime/bootstrap`);\n }\n listAgentThreads(agentId: string, options: ThreadListOptions): Promise<ThreadsResponse> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/threads`, { query: {\n external_user_id: options.externalUserId,\n external_session_id: options.externalSessionId,\n skip: options.skip ?? 0,\n limit: options.limit ?? 20,\n } });\n }\n listAgentThreadsMulti(options: MultiAgentThreadListRequest): Promise<ThreadsResponse> {\n return this.http.requestJson(\"/public/embed/threads/query\", { method: \"POST\", body: options });\n }\n async subscribeAgentThreadEvents(\n agentId: string,\n options: ThreadSummaryEventOptions,\n onEvent: (event: ThreadSummaryEvent) => void | Promise<void>,\n ): Promise<void> {\n const response = await this.http.fetchOrThrow(this.http.url(`/public/embed/agents/${agentId}/threads/events`, {\n external_user_id: options.externalUserId, external_session_id: options.externalSessionId, cursor: options.cursor,\n }), { method: \"GET\", headers: this.http.streamHeaders(), signal: options.signal }, \"Failed to connect to the embedded-agent thread event endpoint.\");\n await assertOk(response);\n await consumeThreadSummaryEventStream(response, onEvent, options.signal);\n }\n async subscribeAgentThreadEventsMulti(\n options: MultiAgentThreadSummaryEventOptions,\n onEvent: (event: ThreadSummaryEvent) => void | Promise<void>,\n ): Promise<void> {\n const response = await this.http.fetchOrThrow(this.http.url(\"/public/embed/threads/events\", {\n agent_ids: options.agentIds, external_user_id: options.externalUserId, external_session_id: options.externalSessionId, cursor: options.cursor,\n }), { method: \"GET\", headers: this.http.streamHeaders(), signal: options.signal }, \"Failed to connect to the embedded-agent thread event endpoint.\");\n await assertOk(response);\n await consumeThreadSummaryEventStream(response, onEvent, options.signal);\n }\n getAgentThread(agentId: string, threadId: string, options: ThreadDetailOptions): Promise<ThreadDetail> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/threads/${threadId}`, { query: {\n external_user_id: options.externalUserId,\n external_session_id: options.externalSessionId,\n before_turn_index: options.beforeTurnIndex,\n limit: options.limit,\n include_run_events: options.includeRunEvents,\n include_subthreads: options.includeSubthreads,\n subthread_depth: options.subthreadDepth,\n subthread_turn_limit: options.subthreadTurnLimit,\n subthread_child_limit: options.subthreadChildLimit,\n } });\n }\n deleteAgentThread(agentId: string, threadId: string, options: ThreadDeleteOptions): Promise<ThreadDeleteResult> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/threads/${threadId}`, { method: \"DELETE\", query: {\n external_user_id: options.externalUserId, external_session_id: options.externalSessionId,\n }, mutation: true });\n }\n getAgentRunContext(agentId: string, runId: string, options: RunContextOptions): Promise<RunContext> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/context`, { query: {\n external_user_id: options.externalUserId, external_session_id: options.externalSessionId,\n } });\n }\n cancelAgentRun(agentId: string, runId: string, options: EmbedRunCancelOptions): Promise<RunCancelResult> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/cancel`, { method: \"POST\", query: {\n external_user_id: options.externalUserId, external_session_id: options.externalSessionId,\n }, body: {}, mutation: true });\n }\n async uploadAgentAttachments(agentId: string, options: ServerEmbedAttachmentUploadOptions): Promise<AttachmentUploadResult> {\n const form = new FormData();\n form.set(\"external_user_id\", options.externalUserId);\n if (options.externalSessionId) form.set(\"external_session_id\", options.externalSessionId);\n if (options.threadId) form.set(\"thread_id\", options.threadId);\n for (const file of options.files) form.append(\"files\", file, file.name);\n const response = await this.http.fetchOrThrow(this.http.url(`/public/embed/agents/${agentId}/attachments/upload`), {\n method: \"POST\",\n headers: this.http.multipartHeaders(undefined, { idempotencyKey: options.idempotencyKey }, true),\n body: form,\n }, \"Failed to connect to the embedded-agent attachment endpoint.\");\n await assertOk(response);\n return await response.json() as AttachmentUploadResult;\n }\n}\n","import type { Agents24HttpClient } from \"./http.js\";\nimport type { ControlPlaneRunEventsResponse, RunContext, RunStatus, RunTrace } from \"./types.js\";\n\nexport class RunsNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n get(runId: string, options: { includeTree?: boolean } = {}): Promise<RunStatus> {\n return this.http.requestJson(`/agents/runs/${runId}`, { query: { include_tree: options.includeTree } });\n }\n getTree(runId: string): Promise<Record<string, unknown>> { return this.http.requestJson(`/agents/runs/${runId}/tree`); }\n getEvents(runId: string, options: { afterSequence?: number; limit?: number } = {}): Promise<ControlPlaneRunEventsResponse> {\n return this.http.requestJson(`/agents/runs/${runId}/events`, { query: { after_sequence: options.afterSequence, limit: options.limit } });\n }\n getContext(runId: string): Promise<RunContext> { return this.http.requestJson(`/agents/runs/${runId}/context`); }\n async getTrace(runId: string): Promise<RunTrace> {\n const run = await this.get(runId);\n const tree = await this.getTree(runId);\n const events = await this.getEvents(runId);\n const context = await this.getContext(runId);\n return { run, tree, events, context };\n }\n}\n","import { AgentsNamespace } from \"./agents.js\";\nimport { AgentDefinitionBuilder, GraphBuilder } from \"./builders.js\";\nimport { ClientDeploymentsNamespace, ClientSessionsNamespace } from \"./client-runtime-admin.js\";\nimport { EmbedNamespace } from \"./embed.js\";\nimport { Agents24HttpClient } from \"./http.js\";\nimport { RunsNamespace } from \"./runs.js\";\nimport type { AgentDefinitionOptions, Agents24NodeOptions } from \"./types.js\";\n\nexport class Agents24 {\n readonly agents: AgentsNamespace;\n readonly embed: EmbedNamespace;\n readonly runs: RunsNamespace;\n readonly clientDeployments: ClientDeploymentsNamespace;\n readonly clientSessions: ClientSessionsNamespace;\n\n constructor(options: Agents24NodeOptions) {\n const http = new Agents24HttpClient(options);\n this.agents = new AgentsNamespace(http);\n this.embed = new EmbedNamespace(http);\n this.runs = new RunsNamespace(http);\n this.clientDeployments = new ClientDeploymentsNamespace(http);\n this.clientSessions = new ClientSessionsNamespace(http);\n }\n\n agent(options: AgentDefinitionOptions): AgentDefinitionBuilder {\n return new AgentDefinitionBuilder(this.agents, options);\n }\n\n graph(): GraphBuilder { return new GraphBuilder(); }\n}\n","// @generated by @agents24/sdk-contract; DO NOT EDIT.\n// contract-sha256: de2b507f5d56de2bf7c4d6739c03617c4b4feef6ae827aaaac5f1d6150ec678e\nexport const SDK_OPERATION_IDS = [\n \"agents.cancel_run\",\n \"agents.catalog\",\n \"agents.create\",\n \"agents.delete\",\n \"agents.get\",\n \"agents.list\",\n \"agents.publish\",\n \"agents.resume_run\",\n \"agents.schema\",\n \"agents.start_run\",\n \"agents.stream\",\n \"agents.update\",\n \"agents.update_graph\",\n \"agents.upload_attachments\",\n \"agents.validate\",\n \"client.attachments.upload\",\n \"client.bootstrap\",\n \"client.chat.stream\",\n \"client.deployments.create\",\n \"client.deployments.get\",\n \"client.deployments.promote\",\n \"client.deployments.revoke\",\n \"client.deployments.update\",\n \"client.hitl.resume\",\n \"client.jwks\",\n \"client.mcp.redeem\",\n \"client.mcp.start\",\n \"client.runs.attach\",\n \"client.runs.cancel\",\n \"client.sessions.anonymous\",\n \"client.sessions.backendExchange\",\n \"client.sessions.refresh\",\n \"client.sessions.revoke\",\n \"client.threads.delete\",\n \"client.threads.events\",\n \"client.threads.get\",\n \"client.threads.list\",\n \"embed.attach_agent_run\",\n \"embed.cancel_agent_run\",\n \"embed.delete_agent_thread\",\n \"embed.get_agent_run_context\",\n \"embed.get_agent_thread\",\n \"embed.get_runtime_bootstrap\",\n \"embed.list_agent_threads\",\n \"embed.list_agent_threads_multi\",\n \"embed.resume_agent_run\",\n \"embed.start_agent_run_mcp_auth\",\n \"embed.stream_agent\",\n \"embed.stream_agent_thread_events\",\n \"embed.stream_agent_thread_events_multi\",\n \"embed.upload_agent_attachments\",\n \"runs.get\",\n \"runs.get_context\",\n \"runs.get_events\",\n \"runs.get_tree\"\n] as const;\n\nexport type SDKOperationId = (typeof SDK_OPERATION_IDS)[number];\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/http.ts","../src/streams.ts","../src/agents.ts","../src/builders.ts","../src/client-runtime-admin.ts","../src/embed.ts","../src/generated/resourceBundles.ts","../src/generated/resourcePackages.ts","../src/runs.ts","../src/client.ts","../src/generated/manifest.ts"],"names":["message","randomUUID","createSseParser","parseRuntimeSsePayload","parseThreadSummarySsePayload"],"mappings":";;;;;;;;AAGO,IAAM,gBAAA,GAAN,cAA+B,KAAA,CAAM;AAAA,EACjC,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EAET,WAAA,CACE,SACA,OAAA,EAOA;AACA,IAAA,KAAA,CAAM,OAAA,EAAS,EAAE,KAAA,EAAO,OAAA,CAAQ,OAAO,CAAA;AACvC,IAAA,IAAA,CAAK,IAAA,GAAO,kBAAA;AACZ,IAAA,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA;AACpB,IAAA,IAAA,CAAK,SAAS,OAAA,CAAQ,MAAA;AACtB,IAAA,IAAA,CAAK,UAAU,OAAA,CAAQ,OAAA;AACvB,IAAA,IAAA,CAAK,kBAAkB,OAAA,CAAQ,eAAA;AAAA,EACjC;AACF;;;ACrBA,SAAS,QAAA,CAAS,OAAe,IAAA,EAAsB;AACrD,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,KAAA,IAAS,EAAE,EAAE,IAAA,EAAK;AAC5C,EAAA,IAAI,CAAC,UAAA,EAAY,MAAM,IAAI,gBAAA,CAAiB,CAAA,kBAAA,EAAqB,IAAI,CAAA,CAAA,CAAA,EAAK,EAAE,IAAA,EAAM,UAAA,EAAY,CAAA;AAC9F,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,iBAAiB,KAAA,EAAuB;AAC/C,EAAA,IAAI;AACF,IAAA,OAAO,IAAI,GAAA,CAAI,QAAA,CAAS,KAAA,EAAO,SAAS,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AAAA,EAC1E,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,KAAA,YAAiB,kBAAkB,MAAM,KAAA;AAC7C,IAAA,MAAM,IAAI,gBAAA,CAAiB,uCAAA,EAAyC,EAAE,IAAA,EAAM,UAAA,EAAY,OAAO,CAAA;AAAA,EACjG;AACF;AAEA,eAAe,aAAa,QAAA,EAAsC;AAChE,EAAA,MAAM,OAAO,MAAM,QAAA,CAAS,MAAK,CAAE,KAAA,CAAM,MAAM,EAAE,CAAA;AACjD,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,IAAI;AAAE,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EAAc,CAAA,CAAA,MACpC;AAAE,IAAA,OAAO,IAAA;AAAA,EAAM;AACvB;AAEA,SAAS,cAAc,OAAA,EAAsC;AAC3D,EAAA,IAAI,OAAO,YAAY,QAAA,IAAY,OAAA,CAAQ,MAAK,EAAG,OAAO,QAAQ,IAAA,EAAK;AACvE,EAAA,IAAI,CAAC,WAAW,OAAO,OAAA,KAAY,YAAY,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG,OAAO,MAAA;AAC9E,EAAA,MAAM,SAAU,OAAA,CAAoC,MAAA;AACpD,EAAA,IAAI,OAAO,WAAW,QAAA,IAAY,MAAA,CAAO,MAAK,EAAG,OAAO,OAAO,IAAA,EAAK;AACpE,EAAA,IAAI,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAClE,IAAA,MAAMA,WAAW,MAAA,CAAmC,OAAA;AACpD,IAAA,IAAI,OAAOA,aAAY,QAAA,IAAYA,QAAAA,CAAQ,MAAK,EAAG,OAAOA,SAAQ,IAAA,EAAK;AAAA,EACzE;AACA,EAAA,MAAM,UAAW,OAAA,CAAoC,OAAA;AACrD,EAAA,OAAO,OAAO,YAAY,QAAA,IAAY,OAAA,CAAQ,MAAK,GAAI,OAAA,CAAQ,MAAK,GAAI,MAAA;AAC1E;AAEA,SAAS,gBAAgB,QAAA,EAA4C;AACnE,EAAA,MAAM,UAAkC,EAAC;AACzC,EAAA,KAAA,MAAW,QAAQ,CAAC,YAAA,EAAc,aAAA,EAAe,kBAAA,EAAoB,cAAc,CAAA,EAAG;AACpF,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,IAAI,CAAA;AACvC,IAAA,IAAI,KAAA,EAAO,OAAA,CAAQ,IAAI,CAAA,GAAI,KAAA;AAAA,EAC7B;AACA,EAAA,OAAO,OAAA;AACT;AAEA,eAAsB,SAAS,QAAA,EAAmC;AAChE,EAAA,IAAI,SAAS,EAAA,EAAI;AACjB,EAAA,MAAM,OAAA,GAAU,MAAM,YAAA,CAAa,QAAQ,CAAA;AAC3C,EAAA,MAAM,IAAI,gBAAA,CAAiB,aAAA,CAAc,OAAO,CAAA,IAAK,QAAA,CAAS,cAAc,0BAAA,EAA4B;AAAA,IACtG,IAAA,EAAM,MAAA;AAAA,IACN,QAAQ,QAAA,CAAS,MAAA;AAAA,IACjB,OAAA;AAAA,IACA,eAAA,EAAiB,gBAAgB,QAAQ;AAAA,GAC1C,CAAA;AACH;AAWO,IAAM,qBAAN,MAAyB;AAAA,EACb,IAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EAEjB,YAAY,OAAA,EAA8B;AACxC,IAAA,IAAI,OAAO,OAAA,KAAY,WAAA,IAAe,OAAA,CAAQ,OAAA,EAAS,SAAS,MAAA,EAAQ;AACtE,MAAA,MAAM,IAAI,gBAAA,CAAiB,qDAAA,EAAuD,EAAE,IAAA,EAAM,YAAY,CAAA;AAAA,IACxG;AACA,IAAA,IAAA,CAAK,IAAA,GAAO,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAC5C,IAAA,IAAA,CAAK,MAAA,GAAS,QAAA,CAAS,OAAA,CAAQ,MAAA,EAAQ,QAAQ,CAAA;AAC/C,IAAA,IAAA,CAAK,cAAA,GAAiB,QAAA,CAAS,OAAA,CAAQ,cAAA,EAAgB,gBAAgB,CAAA;AACvE,IAAA,IAAA,CAAK,SAAA,GAAY,QAAA,CAAS,OAAA,CAAQ,SAAA,EAAW,WAAW,CAAA;AACxD,IAAA,IAAI,OAAO,OAAA,CAAQ,SAAA,KAAc,UAAA,IAAc,OAAO,UAAU,UAAA,EAAY;AAC1E,MAAA,MAAM,IAAI,gBAAA,CAAiB,0DAAA,EAA4D,EAAE,IAAA,EAAM,YAAY,CAAA;AAAA,IAC7G;AACA,IAAA,IAAA,CAAK,SAAA,GAAY,QAAQ,SAAA,IAAa,KAAA;AAAA,EACxC;AAAA,EAEA,GAAA,CAAI,aAAqB,KAAA,EAAyC;AAChE,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,CAAA,EAAG,KAAK,IAAI,CAAA,EAAG,WAAW,CAAA,CAAE,CAAA;AAChD,IAAA,KAAA,MAAW,CAAC,KAAK,KAAK,CAAA,IAAK,OAAO,OAAA,CAAQ,KAAA,IAAS,EAAE,CAAA,EAAG;AACtD,MAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,IAAQ,UAAU,EAAA,EAAI;AAC3D,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,QAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,UAAA,IAAI,IAAA,KAAS,MAAA,IAAa,IAAA,KAAS,IAAA,IAAQ,IAAA,KAAS,EAAA,EAAI,GAAA,CAAI,YAAA,CAAa,MAAA,CAAO,GAAA,EAAK,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,QACnG;AAAA,MACF,CAAA,MAAO;AACL,QAAA,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,GAAA,EAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,MACzC;AAAA,IACF;AACA,IAAA,OAAO,IAAI,QAAA,EAAS;AAAA,EACtB;AAAA,EAEA,WAAA,CAAY,KAAA,EAAqB,OAAA,EAA0B,QAAA,GAAW,KAAA,EAAoB;AACxF,IAAA,OAAO;AAAA,MACL,aAAA,EAAe,CAAA,OAAA,EAAU,IAAA,CAAK,MAAM,CAAA,CAAA;AAAA,MACpC,MAAA,EAAQ,kBAAA;AAAA,MACR,cAAA,EAAgB,kBAAA;AAAA,MAChB,qBAAqB,IAAA,CAAK,cAAA;AAAA,MAC1B,gBAAgB,IAAA,CAAK,SAAA;AAAA,MACrB,gBAAA,EAAkB,GAAA;AAAA,MAClB,GAAI,WAAW,EAAE,iBAAA,EAAmB,SAAS,cAAA,IAAkBC,iBAAA,EAAW,EAAE,GAAI,EAAC;AAAA,MACjF,GAAI,OAAA,EAAS,eAAA,GAAkB,EAAE,oBAAA,EAAsB,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,eAAe,CAAA,EAAE,GAAI,EAAC;AAAA,MACpG,GAAI,SAAS;AAAC,KAChB;AAAA,EACF;AAAA,EAEA,aAAA,CAAc,KAAA,EAAqB,OAAA,EAA0B,QAAA,GAAW,KAAA,EAAoB;AAC1F,IAAA,OAAO,IAAA,CAAK,WAAA,CAAY,EAAE,MAAA,EAAQ,mBAAA,EAAqB,GAAI,KAAA,IAAS,EAAC,EAAG,EAAG,OAAA,EAAS,QAAQ,CAAA;AAAA,EAC9F;AAAA,EAEA,gBAAA,CAAiB,KAAA,EAAqB,OAAA,EAA0B,QAAA,GAAW,KAAA,EAAoB;AAC7F,IAAA,OAAO;AAAA,MACL,aAAA,EAAe,CAAA,OAAA,EAAU,IAAA,CAAK,MAAM,CAAA,CAAA;AAAA,MACpC,MAAA,EAAQ,kBAAA;AAAA,MACR,qBAAqB,IAAA,CAAK,cAAA;AAAA,MAC1B,gBAAgB,IAAA,CAAK,SAAA;AAAA,MACrB,gBAAA,EAAkB,GAAA;AAAA,MAClB,GAAI,WAAW,EAAE,iBAAA,EAAmB,SAAS,cAAA,IAAkBA,iBAAA,EAAW,EAAE,GAAI,EAAC;AAAA,MACjF,GAAI,SAAS;AAAC,KAChB;AAAA,EACF;AAAA,EAEA,MAAM,WAAA,CAAe,WAAA,EAAqB,MAAA,GAAwB,EAAC,EAAe;AAChF,IAAA,MAAM,QAAQ,EAAE,GAAI,MAAA,CAAO,KAAA,IAAS,EAAC,EAAG;AACxC,IAAA,IAAI,OAAO,OAAA,EAAS,MAAA,KAAW,QAAW,KAAA,CAAM,OAAA,GAAU,OAAO,OAAA,CAAQ,MAAA;AACzE,IAAA,IAAI,OAAO,OAAA,EAAS,YAAA,KAAiB,QAAW,KAAA,CAAM,aAAA,GAAgB,OAAO,OAAA,CAAQ,YAAA;AACrF,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,YAAA,CAAa,KAAK,GAAA,CAAI,WAAA,EAAa,KAAK,CAAA,EAAG;AAAA,MACrE,MAAA,EAAQ,OAAO,MAAA,IAAU,KAAA;AAAA,MACzB,OAAA,EAAS,IAAA,CAAK,WAAA,CAAY,MAAA,CAAO,OAAA,EAAS,OAAO,OAAA,EAAS,OAAA,CAAQ,MAAA,CAAO,QAAQ,CAAC,CAAA;AAAA,MAClF,GAAI,MAAA,CAAO,IAAA,KAAS,MAAA,GAAY,EAAC,GAAI,EAAE,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,IAAI,CAAA;AAAE,OACxE,wCAAwC,CAAA;AAC3C,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,OAAO,MAAM,SAAS,IAAA,EAAK;AAAA,EAC7B;AAAA,EAEA,MAAM,YAAA,CAAa,GAAA,EAAa,IAAA,EAAmB,OAAA,EAAoC;AACrF,IAAA,IAAI;AAAE,MAAA,OAAO,MAAM,IAAA,CAAK,SAAA,CAAU,GAAA,EAAK,IAAI,CAAA;AAAA,IAAG,SACvC,KAAA,EAAO;AACZ,MAAA,IAAI,KAAA,YAAiB,kBAAkB,MAAM,KAAA;AAC7C,MAAA,MAAM,IAAI,gBAAA,CAAiB,OAAA,EAAS,EAAE,IAAA,EAAM,SAAA,EAAW,OAAO,CAAA;AAAA,IAChE;AAAA,EACF;AACF,CAAA;AClJA,eAAe,eAAA,CACb,QAAA,EACA,SAAA,EACA,MAAA,EACe;AACf,EAAA,IAAI,CAAC,SAAS,IAAA,EAAM;AAClB,IAAA,MAAM,IAAI,gBAAA,CAAiB,kDAAA,EAAoD,EAAE,IAAA,EAAM,YAAY,CAAA;AAAA,EACrG;AACA,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,IAAA,CAAK,SAAA,EAAU;AACvC,EAAA,MAAM,MAAA,GAASC,yBAAgB,EAAE,OAAA,EAAS,IAAI,WAAA,EAAY,EAAG,SAAA,EAAW,MAAA,EAAQ,CAAA;AAChF,EAAA,MAAM,QAAQ,MAAM;AAAE,IAAA,KAAK,OAAO,MAAA,CAAO,MAAA,EAAQ,MAAM,CAAA,CAAE,KAAA,CAAM,MAAM,MAAS,CAAA;AAAA,EAAG,CAAA;AACjF,EAAA,IAAI,MAAA,EAAQ,OAAA,EAAS,OAAO,KAAA,EAAM;AAClC,EAAA,MAAA,EAAQ,iBAAiB,OAAA,EAAS,KAAA,EAAO,EAAE,IAAA,EAAM,MAAM,CAAA;AACvD,EAAA,IAAI;AACF,IAAA,OAAO,CAAC,QAAQ,OAAA,EAAS;AACvB,MAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAM,GAAI,MAAM,OAAO,IAAA,EAAK;AAC1C,MAAA,IAAI,KAAA,EAAO,MAAM,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAClC,MAAA,IAAI,IAAA,EAAM;AAAA,IACZ;AACA,IAAA,IAAI,CAAC,MAAA,EAAQ,OAAA,EAAS,MAAM,OAAO,MAAA,EAAO;AAAA,EAC5C,CAAA,SAAE;AACA,IAAA,MAAA,EAAQ,mBAAA,CAAoB,SAAS,KAAK,CAAA;AAC1C,IAAA,MAAA,CAAO,WAAA,EAAY;AAAA,EACrB;AACF;AAEA,eAAsB,yBAAA,CACpB,QAAA,EACA,OAAA,EACA,MAAA,EACe;AACf,EAAA,MAAM,eAAA,CAAgB,QAAA,EAAU,OAAO,OAAA,KAAY;AACjD,IAAA,MAAM,KAAA,GAAQC,gCAAuB,OAAO,CAAA;AAC5C,IAAA,IAAI,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,EAClC,GAAG,MAAM,CAAA;AACX;AAEA,eAAsB,+BAAA,CACpB,QAAA,EACA,OAAA,EACA,MAAA,EACe;AACf,EAAA,MAAM,eAAA,CAAgB,QAAA,EAAU,OAAO,OAAA,KAAY;AACjD,IAAA,MAAM,OAAA,CAAQC,qCAAA,CAA6B,OAAO,CAAC,CAAA;AAAA,EACrD,GAAG,MAAM,CAAA;AACX;;;AChCO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,IAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAA2B;AAAA,EAA3B,IAAA;AAAA,EAE7B,IAAA,CAAK,OAAA,GAA6B,EAAC,EAA+B;AAChE,IAAA,OAAO,IAAA,CAAK,KAAK,WAAA,CAAY,SAAA,EAAW,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,OAAA,CAAQ,MAAA,EAAQ,IAAA,EAAM,QAAQ,IAAA,IAAQ,CAAA,EAAG,KAAA,EAAO,OAAA,CAAQ,KAAA,IAAS,EAAA,EAAI,MAAM,OAAA,CAAQ,IAAA,IAAQ,SAAA,EAAU,EAAG,CAAA;AAAA,EACrK;AAAA,EACA,IAAI,OAAA,EAAyC;AAAE,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE,CAAA;AAAA,EAAG;AAAA,EACnG,MAAA,CAAO,SAA6B,OAAA,EAAkD;AACpF,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,SAAA,EAAW,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,IAAA,EAAM,CAAA;AAAA,EACpG;AAAA,EACA,MAAA,CAAO,OAAA,EAAiB,OAAA,EAA6B,OAAA,EAAkD;AACrG,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,QAAA,EAAW,OAAO,CAAA,CAAA,EAAI,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,MAAM,CAAA;AAAA,EAChH;AAAA,EACA,WAAA,CAAY,OAAA,EAAiB,KAAA,EAAwB,OAAA,EAAkD;AACrG,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,QAAA,EAAW,OAAO,CAAA,MAAA,CAAA,EAAU,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,MAAM,CAAA;AAAA,EAClH;AAAA,EACA,MAAA,CAAO,SAAiB,OAAA,EAA4C;AAClE,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,QAAA,EAAW,OAAO,CAAA,CAAA,EAAI,EAAE,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,QAAA,EAAU,IAAA,EAAM,CAAA;AAAA,EAClG;AAAA,EACA,OAAA,GAA4C;AAAE,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,uBAAuB,CAAA;AAAA,EAAG;AAAA,EACrG,OAAO,SAAA,EAAuD;AAC5D,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,sBAAA,EAAwB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,EAAE,UAAA,EAAY,SAAA,EAAU,EAAG,CAAA;AAAA,EAC1G;AAAA,EACA,SAAS,OAAA,EAAmD;AAC1D,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,QAAA,EAAW,OAAO,CAAA,SAAA,CAAA,EAAa,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,EAAC,EAAG,CAAA;AAAA,EAC1F;AAAA,EACA,OAAA,CAAQ,SAAiB,OAAA,EAAkD;AACzE,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,QAAA,EAAW,OAAO,CAAA,QAAA,CAAA,EAAY,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAM,EAAC,EAAG,OAAA,EAAS,QAAA,EAAU,MAAM,CAAA;AAAA,EAClH;AAAA,EACA,QAAA,CAAS,OAAA,EAAiB,OAAA,EAA6B,OAAA,EAAmD;AACxG,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,QAAA,EAAW,OAAO,CAAA,IAAA,CAAA,EAAQ,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,MAAM,CAAA;AAAA,EACnH;AAAA,EACA,MAAM,OACJ,OAAA,EACA,OAAA,EACA,SACA,IAAA,EACA,OAAA,GAAgC,EAAC,EACV;AACvB,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,aAAa,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAA,QAAA,EAAW,OAAO,CAAA,OAAA,CAAA,EAAW,EAAE,IAAA,EAAM,CAAA,EAAG;AAAA,MAClG,MAAA,EAAQ,MAAA;AAAA,MAAQ,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,aAAA,EAAc;AAAA,MAAG,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA;AAAA,MAAG,QAAQ,OAAA,CAAQ;AAAA,OAClG,iDAAiD,CAAA;AACpD,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,IAAI,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA;AAC3C,IAAA,MAAM,yBAAA,CAA0B,QAAA,EAAU,OAAO,KAAA,KAAU;AAAE,MAAA,KAAA,KAAU,KAAA,CAAM,MAAA;AAAQ,MAAA,IAAI,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,IAAG,CAAA,EAAG,QAAQ,MAAM,CAAA;AACzI,IAAA,OAAO,EAAE,QAAA,EAAU,QAAA,CAAS,QAAQ,GAAA,CAAI,aAAa,GAAG,KAAA,EAAM;AAAA,EAChE;AAAA,EACA,SAAA,CAAU,KAAA,EAAe,OAAA,EAAkC,OAAA,EAA4D;AACrH,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,aAAA,EAAgB,KAAK,CAAA,OAAA,CAAA,EAAW,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,MAAM,CAAA;AAAA,EACzH;AAAA,EACA,SAAA,CAAU,KAAA,EAAe,OAAA,GAA4B,EAAC,EAA6B;AACjF,IAAA,OAAO,KAAK,IAAA,CAAK,WAAA,CAAY,CAAA,aAAA,EAAgB,KAAK,WAAW,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,EAAE,qBAAA,EAAuB,OAAA,CAAQ,qBAAoB,EAAG,QAAA,EAAU,MAAM,CAAA;AAAA,EAC/J;AAAA,EACA,MAAM,iBAAA,CAAkB,OAAA,EAAiB,OAAA,EAAyE;AAChH,IAAA,MAAM,IAAA,GAAO,IAAI,QAAA,EAAS;AAC1B,IAAA,IAAI,QAAQ,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,WAAA,EAAa,QAAQ,QAAQ,CAAA;AAC5D,IAAA,KAAA,MAAW,IAAA,IAAQ,QAAQ,KAAA,EAAO,IAAA,CAAK,OAAO,OAAA,EAAS,IAAA,EAAM,KAAK,IAAI,CAAA;AACtE,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAA,QAAA,EAAW,OAAO,CAAA,mBAAA,CAAqB,CAAA,EAAG;AAAA,MACpG,MAAA,EAAQ,MAAA;AAAA,MAAQ,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,gBAAA,EAAiB;AAAA,MAAG,IAAA,EAAM;AAAA,OAC5D,qDAAqD,CAAA;AACxD,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,OAAO,MAAM,SAAS,IAAA,EAAK;AAAA,EAC7B;AACF,CAAA;;;ACzEA,SAAS,MAAM,GAAA,EAAuB;AAAE,EAAA,OAAO,OAAO,GAAA,KAAQ,QAAA,GAAW,GAAA,GAAM,GAAA,CAAI,EAAA;AAAI;AACvF,SAAS,KAAK,MAAA,EAA0C;AAAE,EAAA,OAAO,CAAC,GAAG,IAAI,GAAA,CAAA,CAAK,MAAA,IAAU,EAAC,EAAG,GAAA,CAAI,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAC,CAAC,CAAA;AAAG;AAC1H,SAAS,UAAU,EAAA,EAAY,IAAA,EAAc,GAAW,CAAA,EAAW,MAAA,GAAkC,EAAC,EAAc;AAClH,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,QAAA,EAAU,EAAE,CAAA,EAAG,CAAA,IAAK,MAAA,EAAO;AAChD;AAEA,SAAS,mBAAmB,OAAA,EAAiE;AAC3F,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,EAAA,OAAA,CAAQ,QAAQ,kBAAA,IAAsB,EAAC,EAAG,OAAA,CAAQ,CAAC,UAAA,KAAe;AAChE,IAAA,MAAM,EAAA,GAAK,KAAA,CAAM,UAAA,CAAW,OAAO,CAAA;AACnC,IAAA,IAAI,CAAC,EAAA,IAAM,IAAA,CAAK,IAAI,EAAE,CAAA,SAAU,EAAC;AACjC,IAAA,IAAA,CAAK,IAAI,EAAE,CAAA;AACX,IAAA,MAAM,MAAA,GAAS,UAAA,CAAW,aAAA,IAAiB,EAAE,MAAM,kBAAA,EAA4B;AAC/E,IAAA,OAAO,CAAC;AAAA,MACN,UAAA,EAAY,EAAA;AAAA,MACZ,YAAA,EAAc,WAAW,WAAA,IAAe,QAAA;AAAA,MACxC,cAAA,EAAgB,MAAA,CAAO,IAAA,KAAS,QAAA,GAAW,EAAE,IAAA,EAAM,QAAA,EAAU,UAAA,EAAY,MAAA,CAAO,SAAA,EAAU,GAAI,EAAE,MAAM,kBAAA;AAAmB,KAC1H,CAAA;AAAA,EACH,CAAC,CAAA;AACH;AAEO,IAAM,yBAAN,MAA6B;AAAA,EAClC,WAAA,CAA6B,QAA0C,OAAA,EAAiC;AAA3E,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAA0C,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA,EAAkC;AAAA,EAA5E,MAAA;AAAA,EAA0C,OAAA;AAAA,EACvE,OAAA,GAA2B;AACzB,IAAA,MAAM,WAAA,GAAuC;AAAA,MAC3C,YAAA,EAAc,IAAA,CAAK,OAAA,CAAQ,YAAA,IAAgB,EAAA;AAAA,MAC3C,KAAA,EAAO,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAAA,MAC9B,mBAAA,EAAqB,kBAAA,CAAmB,IAAA,CAAK,OAAO,CAAA;AAAA,MACpD,aAAA,EAAe,CAAC,EAAE,EAAA,EAAI,iBAAiB,SAAA,EAAW,EAAE,SAAA,EAAW,gBAAA,EAAkB,GAAA,EAAK,MAAA,EAAQ,KAAA,EAAO,uBAAA,IAA2B;AAAA,KAClI;AACA,IAAA,IAAI,IAAA,CAAK,QAAQ,KAAA,EAAO,WAAA,CAAY,WAAW,KAAA,CAAM,IAAA,CAAK,QAAQ,KAAK,CAAA;AACvE,IAAA,OAAO;AAAA,MACL,YAAA,EAAc,KAAA;AAAA,MACd,UAAA,EAAY,OAAA;AAAA,MACZ,iBAAA,EAAmB,EAAE,MAAA,EAAQ,EAAC,EAAE;AAAA,MAChC,cAAA,EAAgB,EAAE,SAAA,EAAW,EAAC,EAAE;AAAA,MAChC,KAAA,EAAO;AAAA,QACL,SAAA,CAAU,OAAA,EAAS,OAAA,EAAS,CAAA,EAAG,CAAC,CAAA;AAAA,QAChC,SAAA,CAAU,OAAA,EAAS,OAAA,EAAS,GAAA,EAAK,GAAG,WAAW,CAAA;AAAA,QAC/C,SAAA,CAAU,KAAA,EAAO,KAAA,EAAO,GAAA,EAAK,CAAA,EAAG;AAAA,UAC9B,aAAA,EAAe;AAAA,YACb,IAAA,EAAM,iBAAA;AAAA,YAAmB,IAAA,EAAM,QAAA;AAAA,YAC/B,QAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,oBAAA,EAAsB,OAAO,UAAA,EAAY,EAAE,QAAA,EAAU,EAAE,MAAM,QAAA,EAAS,IAAK,QAAA,EAAU,CAAC,UAAU,CAAA;AAAE,WAC9H;AAAA,UACA,iBAAiB,CAAC,EAAE,YAAA,EAAc,WAAA,EAAa,WAAW,EAAE,SAAA,EAAW,aAAA,EAAe,OAAA,EAAS,SAAS,GAAA,EAAK,aAAA,EAAe,KAAA,EAAO,gBAAA,IAAoB;AAAA,SACxJ;AAAA,OACH;AAAA,MACA,KAAA,EAAO;AAAA,QACL,EAAE,IAAI,aAAA,EAAe,MAAA,EAAQ,SAAS,MAAA,EAAQ,OAAA,EAAS,MAAM,SAAA,EAAU;AAAA,QACvE,EAAE,IAAI,WAAA,EAAa,MAAA,EAAQ,SAAS,MAAA,EAAQ,KAAA,EAAO,MAAM,SAAA;AAAU;AACrE,KACF;AAAA,EACF;AAAA,EACA,eAAA,GAAsC;AACpC,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,SAAS,CAAA;AAC7C,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,KAAK,OAAA,CAAQ,IAAA;AAAA,MACnB,WAAA,EAAa,IAAA,CAAK,OAAA,CAAQ,WAAA,IAAe,IAAA;AAAA,MACzC,gBAAA,EAAkB,KAAK,OAAA,EAAQ;AAAA,MAC/B,aAAA,EAAe;AAAA,QACb,GAAI,IAAA,CAAK,OAAA,CAAQ,MAAA,IAAU,EAAC;AAAA,QAC5B,GAAI,SAAA,CAAU,MAAA,GAAS,EAAE,iBAAA,EAAmB,IAAA,EAAM,kBAAA,EAAoB,SAAA,CAAU,CAAC,CAAA,EAAG,cAAA,EAAgB,SAAA,KAAc;AAAC,OACrH;AAAA,MACA,qBAAA,EAAuB,IAAA,CAAK,OAAA,CAAQ,SAAA,IAAa;AAAC,KACpD;AAAA,EACF;AAAA,EACA,OAAO,OAAA,EAAkD;AAAE,IAAA,OAAO,KAAK,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,eAAA,IAAmB,OAAO,CAAA;AAAA,EAAG;AACzH;AAEO,IAAM,eAAN,MAAmB;AAAA,EACP,KAAA,uBAAY,GAAA,EAAuB;AAAA,EACnC,QAAqB,EAAC;AAAA,EACvC,KAAK,IAAA,EAAc,MAAA,GAAkC,EAAC,EAAG,OAAA,GAAmE,EAAC,EAAc;AACzI,IAAA,MAAM,EAAA,GAAK,QAAQ,EAAA,IAAM,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,CAAC,CAAA,CAAA;AACvD,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,EAAE,CAAA,QAAS,IAAI,KAAA,CAAM,CAAA,yBAAA,EAA4B,EAAE,CAAA,CAAE,CAAA;AACxE,IAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,EAAA,EAAI,IAAA,EAAM,OAAA,CAAQ,CAAA,IAAK,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,GAAA,EAAK,OAAA,CAAQ,CAAA,IAAK,GAAG,MAAM,CAAA;AAC5F,IAAA,IAAI,OAAA,CAAQ,KAAA,EAAO,KAAA,CAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA;AACzC,IAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,EAAA,EAAI,KAAK,CAAA;AACxB,IAAA,OAAO,KAAA;AAAA,EACT;AAAA,EACA,OAAA,CAAQ,MAAA,EAA4B,MAAA,EAA4B,OAAA,GAAyE,EAAC,EAAS;AACjJ,IAAA,MAAM,QAAA,GAAW,OAAO,MAAA,KAAW,QAAA,GAAW,SAAS,MAAA,CAAO,EAAA;AAC9D,IAAA,MAAM,QAAA,GAAW,OAAO,MAAA,KAAW,QAAA,GAAW,SAAS,MAAA,CAAO,EAAA;AAC9D,IAAA,IAAI,CAAC,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,QAAQ,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,CAAA,wBAAA,EAA2B,QAAQ,CAAA,CAAE,CAAA;AACpF,IAAA,IAAI,CAAC,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,QAAQ,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,CAAA,wBAAA,EAA2B,QAAQ,CAAA,CAAE,CAAA;AACpF,IAAA,IAAA,CAAK,MAAM,IAAA,CAAK;AAAA,MACd,IAAI,OAAA,CAAQ,EAAA,IAAM,CAAA,EAAG,QAAQ,IAAI,QAAQ,CAAA,CAAA;AAAA,MAAI,MAAA,EAAQ,QAAA;AAAA,MAAU,MAAA,EAAQ,QAAA;AAAA,MAAU,IAAA,EAAM,SAAA;AAAA,MACvF,eAAe,OAAA,CAAQ,YAAA;AAAA,MAAc,eAAe,OAAA,CAAQ;AAAA,KAC7D,CAAA;AACD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EACA,OAAA,GAA2B;AACzB,IAAA,OAAO;AAAA,MACL,YAAA,EAAc,KAAA;AAAA,MAAO,UAAA,EAAY,OAAA;AAAA,MAAS,iBAAA,EAAmB,EAAE,MAAA,EAAQ,EAAC,EAAE;AAAA,MAAG,cAAA,EAAgB,EAAE,SAAA,EAAW,EAAC,EAAE;AAAA,MAC7G,OAAO,CAAC,GAAG,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AAAA,MAAG,KAAA,EAAO,CAAC,GAAG,IAAA,CAAK,KAAK;AAAA,KACxD;AAAA,EACF;AACF;;;AChGO,IAAM,6BAAN,MAAiC;AAAA,EACtC,YAA6B,IAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAA2B;AAAA,EAA3B,IAAA;AAAA,EAE7B,MAAA,CAAO,SAAwC,OAAA,EAAqD;AAClG,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAA8B,6BAAA,EAA+B;AAAA,MAC5E,MAAA,EAAQ,MAAA;AAAA,MAAQ,IAAA,EAAM,OAAA;AAAA,MAAS,OAAA;AAAA,MAAS,QAAA,EAAU;AAAA,KACnD,CAAA;AAAA,EACH;AAAA,EAEA,KAAK,KAAA,EAAyE;AAC5E,IAAA,MAAM,SAAS,IAAI,eAAA,CAAgB,EAAE,QAAA,EAAU,KAAA,CAAM,SAAS,CAAA;AAC9D,IAAA,IAAI,MAAM,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,QAAA,EAAU,MAAM,MAAM,CAAA;AACnD,IAAA,IAAI,MAAM,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,QAAA,EAAU,MAAM,MAAM,CAAA;AACnD,IAAA,IAAI,KAAA,CAAM,UAAU,MAAA,EAAW,MAAA,CAAO,IAAI,OAAA,EAAS,MAAA,CAAO,KAAA,CAAM,KAAK,CAAC,CAAA;AACtE,IAAA,OAAO,KAAK,IAAA,CAAK,WAAA;AAAA,MACf,CAAA,4BAAA,EAA+B,MAAA,CAAO,QAAA,EAAU,CAAA;AAAA,KAClD;AAAA,EACF;AAAA,EAEA,IAAI,YAAA,EAAiD;AACnD,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAA8B,CAAA,4BAAA,EAA+B,YAAY,CAAA,CAAE,CAAA;AAAA,EAC9F;AAAA,EAEA,MAAA,CAAO,YAAA,EAAsB,OAAA,EAAwC,OAAA,EAAqD;AACxH,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAA8B,CAAA,4BAAA,EAA+B,YAAY,CAAA,CAAA,EAAI;AAAA,MAC5F,MAAA,EAAQ,OAAA;AAAA,MAAS,IAAA,EAAM,OAAA;AAAA,MAAS,OAAA;AAAA,MAAS,QAAA,EAAU;AAAA,KACpD,CAAA;AAAA,EACH;AAAA,EAEA,MAAA,CAAO,cAAsB,OAAA,EAAqD;AAChF,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAA8B,CAAA,4BAAA,EAA+B,YAAY,CAAA,CAAA,EAAI;AAAA,MAC5F,MAAA,EAAQ,QAAA;AAAA,MAAU,OAAA;AAAA,MAAS,QAAA,EAAU;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,0BAAN,MAA8B;AAAA,EACnC,YAA6B,IAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAA2B;AAAA,EAA3B,IAAA;AAAA,EAE7B,oBAAA,CACE,YAAA,EACA,OAAA,EACA,OAAA,EACmC;AACnC,IAAA,OAAO,KAAK,IAAA,CAAK,WAAA;AAAA,MACf,+BAA+B,YAAY,CAAA,eAAA,CAAA;AAAA,MAC3C;AAAA,QACE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,OAAA;AAAA,QACN,OAAA;AAAA,QACA,QAAA,EAAU,IAAA;AAAA,QACV,SAAS,OAAA,EAAS,SAAA,GAAY,EAAE,IAAA,EAAM,OAAA,CAAQ,WAAU,GAAI;AAAA;AAC9D,KACF;AAAA,EACF;AACF,CAAA;;;ACpCO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,IAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAA2B;AAAA,EAA3B,IAAA;AAAA,EAE7B,MAAM,WAAA,CACJ,OAAA,EACA,SACA,OAAA,EACA,OAAA,GAAgC,EAAC,EACV;AACvB,IAAA,OAAO,KAAK,MAAA,CAAO,CAAA,qBAAA,EAAwB,OAAO,CAAA,YAAA,CAAA,EAAgB,OAAA,EAAS,SAAS,OAAO,CAAA;AAAA,EAC7F;AAAA,EAEA,MAAM,eACJ,OAAA,EACA,KAAA,EACA,SACA,OAAA,EACA,OAAA,GAAgC,EAAC,EACV;AACvB,IAAA,OAAO,IAAA,CAAK,OAAO,CAAA,qBAAA,EAAwB,OAAO,SAAS,KAAK,CAAA,OAAA,CAAA,EAAW,OAAA,EAAS,OAAA,EAAS,OAAO,CAAA;AAAA,EACtG;AAAA,EAEA,MAAc,MAAA,CACZ,IAAA,EACA,OAAA,EACA,SACA,OAAA,EACuB;AACvB,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,aAAa,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,EAAG;AAAA,MACjE,MAAA,EAAQ,MAAA;AAAA,MACR,SAAS,IAAA,CAAK,IAAA,CAAK,aAAA,CAAc,MAAA,EAAW,SAAS,IAAI,CAAA;AAAA,MACzD,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA;AAAA,MAC5B,QAAQ,OAAA,CAAQ;AAAA,OACf,0DAA0D,CAAA;AAC7D,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,IAAI,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA;AAC3C,IAAA,MAAM,yBAAA,CAA0B,QAAA,EAAU,OAAO,KAAA,KAAU;AAAE,MAAA,KAAA,KAAU,KAAA,CAAM,MAAA;AAAQ,MAAA,IAAI,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,IAAG,CAAA,EAAG,QAAQ,MAAM,CAAA;AACzI,IAAA,OAAO,EAAE,QAAA,EAAU,QAAA,CAAS,QAAQ,GAAA,CAAI,aAAa,GAAG,KAAA,EAAM;AAAA,EAChE;AAAA,EAEA,cAAA,CAAe,OAAA,EAAiB,KAAA,EAAe,OAAA,EAA2B,OAAA,EAAoD;AAC5H,IAAA,OAAO,KAAK,IAAA,CAAK,WAAA,CAAY,CAAA,qBAAA,EAAwB,OAAO,SAAS,KAAK,CAAA,OAAA,CAAA,EAAW,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,MAAM,CAAA;AAAA,EACjJ;AAAA,EACA,oBAAA,CAAqB,OAAA,EAAiB,KAAA,EAAe,QAAA,EAAkB,SAA8B,OAAA,EAAuD;AAC1J,IAAA,OAAO,KAAK,IAAA,CAAK,WAAA,CAAY,wBAAwB,OAAO,CAAA,MAAA,EAAS,KAAK,CAAA,aAAA,EAAgB,QAAQ,CAAA,WAAA,CAAA,EAAe,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,SAAS,OAAA,EAAS,QAAA,EAAU,MAAM,CAAA;AAAA,EAC7K;AAAA,EACA,mBAAA,CAAoB,SAAiB,cAAA,EAAyD;AAC5F,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,qBAAA,EAAwB,OAAO,CAAA,kBAAA,CAAA,EAAsB;AAAA,MAChF,KAAA,EAAO,EAAE,gBAAA,EAAkB,cAAA;AAAe,KAC3C,CAAA;AAAA,EACH;AAAA,EACA,gBAAA,CAAiB,SAAiB,OAAA,EAAsD;AACtF,IAAA,OAAO,KAAK,IAAA,CAAK,WAAA,CAAY,wBAAwB,OAAO,CAAA,QAAA,CAAA,EAAY,EAAE,KAAA,EAAO;AAAA,MAC/E,kBAAkB,OAAA,CAAQ,cAAA;AAAA,MAC1B,qBAAqB,OAAA,CAAQ,iBAAA;AAAA,MAC7B,IAAA,EAAM,QAAQ,IAAA,IAAQ,CAAA;AAAA,MACtB,KAAA,EAAO,QAAQ,KAAA,IAAS;AAAA,OACvB,CAAA;AAAA,EACL;AAAA,EACA,sBAAsB,OAAA,EAAgE;AACpF,IAAA,OAAO,IAAA,CAAK,KAAK,WAAA,CAAY,6BAAA,EAA+B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,EAC/F;AAAA,EACA,MAAM,0BAAA,CACJ,OAAA,EACA,OAAA,EACA,OAAA,EACe;AACf,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,YAAA,CAAa,KAAK,IAAA,CAAK,GAAA,CAAI,CAAA,qBAAA,EAAwB,OAAO,CAAA,eAAA,CAAA,EAAmB;AAAA,MAC5G,kBAAkB,OAAA,CAAQ,cAAA;AAAA,MAAgB,qBAAqB,OAAA,CAAQ,iBAAA;AAAA,MAAmB,QAAQ,OAAA,CAAQ;AAAA,KAC3G,CAAA,EAAG,EAAE,MAAA,EAAQ,OAAO,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,aAAA,EAAc,EAAG,MAAA,EAAQ,OAAA,CAAQ,MAAA,IAAU,gEAAgE,CAAA;AACnJ,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,MAAM,+BAAA,CAAgC,QAAA,EAAU,OAAA,EAAS,OAAA,CAAQ,MAAM,CAAA;AAAA,EACzE;AAAA,EACA,MAAM,+BAAA,CACJ,OAAA,EACA,OAAA,EACe;AACf,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,aAAa,IAAA,CAAK,IAAA,CAAK,IAAI,8BAAA,EAAgC;AAAA,MAC1F,WAAW,OAAA,CAAQ,QAAA;AAAA,MAAU,kBAAkB,OAAA,CAAQ,cAAA;AAAA,MAAgB,qBAAqB,OAAA,CAAQ,iBAAA;AAAA,MAAmB,QAAQ,OAAA,CAAQ;AAAA,KACxI,CAAA,EAAG,EAAE,MAAA,EAAQ,OAAO,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,aAAA,EAAc,EAAG,MAAA,EAAQ,OAAA,CAAQ,MAAA,IAAU,gEAAgE,CAAA;AACnJ,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,MAAM,+BAAA,CAAgC,QAAA,EAAU,OAAA,EAAS,OAAA,CAAQ,MAAM,CAAA;AAAA,EACzE;AAAA,EACA,cAAA,CAAe,OAAA,EAAiB,QAAA,EAAkB,OAAA,EAAqD;AACrG,IAAA,OAAO,IAAA,CAAK,KAAK,WAAA,CAAY,CAAA,qBAAA,EAAwB,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAA,EAAI,EAAE,KAAA,EAAO;AAAA,MAC3F,kBAAkB,OAAA,CAAQ,cAAA;AAAA,MAC1B,qBAAqB,OAAA,CAAQ,iBAAA;AAAA,MAC7B,mBAAmB,OAAA,CAAQ,eAAA;AAAA,MAC3B,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,oBAAoB,OAAA,CAAQ,gBAAA;AAAA,MAC5B,oBAAoB,OAAA,CAAQ,iBAAA;AAAA,MAC5B,iBAAiB,OAAA,CAAQ,cAAA;AAAA,MACzB,sBAAsB,OAAA,CAAQ,kBAAA;AAAA,MAC9B,uBAAuB,OAAA,CAAQ;AAAA,OAC9B,CAAA;AAAA,EACL;AAAA,EACA,iBAAA,CAAkB,OAAA,EAAiB,QAAA,EAAkB,OAAA,EAA2D;AAC9G,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,qBAAA,EAAwB,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAA,EAAI,EAAE,MAAA,EAAQ,QAAA,EAAU,KAAA,EAAO;AAAA,MAC7G,kBAAkB,OAAA,CAAQ,cAAA;AAAA,MAAgB,qBAAqB,OAAA,CAAQ;AAAA,KACzE,EAAG,QAAA,EAAU,IAAA,EAAM,CAAA;AAAA,EACrB;AAAA,EACA,kBAAA,CAAmB,OAAA,EAAiB,KAAA,EAAe,OAAA,EAAiD;AAClG,IAAA,OAAO,IAAA,CAAK,KAAK,WAAA,CAAY,CAAA,qBAAA,EAAwB,OAAO,CAAA,MAAA,EAAS,KAAK,CAAA,QAAA,CAAA,EAAY,EAAE,KAAA,EAAO;AAAA,MAC7F,kBAAkB,OAAA,CAAQ,cAAA;AAAA,MAAgB,qBAAqB,OAAA,CAAQ;AAAA,OACtE,CAAA;AAAA,EACL;AAAA,EACA,cAAA,CAAe,OAAA,EAAiB,KAAA,EAAe,OAAA,EAA0D;AACvG,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,qBAAA,EAAwB,OAAO,CAAA,MAAA,EAAS,KAAK,CAAA,OAAA,CAAA,EAAW,EAAE,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO;AAAA,MAC5G,kBAAkB,OAAA,CAAQ,cAAA;AAAA,MAAgB,qBAAqB,OAAA,CAAQ;AAAA,OACtE,IAAA,EAAM,EAAC,EAAG,QAAA,EAAU,MAAM,CAAA;AAAA,EAC/B;AAAA,EACA,MAAM,sBAAA,CAAuB,OAAA,EAAiB,OAAA,EAA8E;AAC1H,IAAA,MAAM,IAAA,GAAO,IAAI,QAAA,EAAS;AAC1B,IAAA,IAAA,CAAK,GAAA,CAAI,kBAAA,EAAoB,OAAA,CAAQ,cAAc,CAAA;AACnD,IAAA,IAAI,QAAQ,iBAAA,EAAmB,IAAA,CAAK,GAAA,CAAI,qBAAA,EAAuB,QAAQ,iBAAiB,CAAA;AACxF,IAAA,IAAI,QAAQ,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,WAAA,EAAa,QAAQ,QAAQ,CAAA;AAC5D,IAAA,KAAA,MAAW,IAAA,IAAQ,QAAQ,KAAA,EAAO,IAAA,CAAK,OAAO,OAAA,EAAS,IAAA,EAAM,KAAK,IAAI,CAAA;AACtE,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAA,qBAAA,EAAwB,OAAO,CAAA,mBAAA,CAAqB,CAAA,EAAG;AAAA,MACjH,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,gBAAA,CAAiB,MAAA,EAAW,EAAE,cAAA,EAAgB,OAAA,CAAQ,cAAA,EAAe,EAAG,IAAI,CAAA;AAAA,MAC/F,IAAA,EAAM;AAAA,OACL,8DAA8D,CAAA;AACjE,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,OAAO,MAAM,SAAS,IAAA,EAAK;AAAA,EAC7B;AACF,CAAA;;;ACnJO,IAAM,2BAAN,MAA+B;AAAA,EACpC,YAA+B,IAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAA2B;AAAA,EAA3B,IAAA;AAAA,EAE/B,cAAc,OAAA,EAA4E;AACxF,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAyC,kCAAA,EAAoC;AAAA,MAC5F,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA,EAEA,YAAA,CAAa,SAAsC,OAAA,EAA+D;AAChH,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAwC,0BAAA,EAA4B;AAAA,MACnF,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,OAAA;AAAA,MACN,OAAA;AAAA,MACA,QAAA,EAAU;AAAA,KACX,CAAA;AAAA,EACH;AACF,CAAA;;;ACjBO,IAAM,4BAAN,MAAgC;AAAA,EACrC,YAA+B,IAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAA2B;AAAA,EAA3B,IAAA;AAAA,EAE/B,MAAM,cAAc,OAAA,EAAwE;AAC1F,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,YAAA;AAAA,MAC/B,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,2BAA2B,CAAA;AAAA,MACzC,EAAE,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA,EAAE;AAAA,MAClF;AAAA,KACF;AACA,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,MAAM,WAAA,GAAc,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,qBAAqB,CAAA,IAAK,EAAA;AACnE,IAAA,MAAM,YAAY,wBAAA,CAAyB,IAAA,CAAK,WAAW,CAAA,GAAI,CAAC,CAAA,IAAK,EAAA;AACrE,IAAA,MAAM,QAAA,GAAW,yCAAA,CAA0C,IAAA,CAAK,SAAS,IAAI,SAAA,GAAY,uBAAA;AACzF,IAAA,OAAO,EAAE,MAAM,IAAI,UAAA,CAAW,MAAM,QAAA,CAAS,WAAA,EAAa,CAAA,EAAG,QAAA,EAAS;AAAA,EACxE;AAAA,EAEA,MAAM,gBAAgB,MAAA,EAAsE;AAC1F,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAS;AAC9B,IAAA,MAAM,YAAA,GAAe,MAAA,CAAO,IAAA,CAAK,KAAA,EAAM,CAAE,MAAA;AACzC,IAAA,MAAM,SAAA,GAAY,OAAO,QAAA,IAAY,EAAA;AACrC,IAAA,MAAM,QAAA,GAAW,yCAAA,CAA0C,IAAA,CAAK,SAAS,IAAI,SAAA,GAAY,uBAAA;AACzF,IAAA,QAAA,CAAS,MAAA,CAAO,QAAQ,IAAI,IAAA,CAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,YAAA;AAAA,MAC/B,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,6BAA6B,CAAA;AAAA,MAC3C,EAAE,QAAQ,MAAA,EAAQ,OAAA,EAAS,KAAK,IAAA,CAAK,gBAAA,EAAiB,EAAG,IAAA,EAAM,QAAA,EAAS;AAAA,MACxE;AAAA,KACF;AACA,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,OAAQ,MAAM,SAAS,IAAA,EAAK;AAAA,EAC9B;AAAA,EAEA,MAAM,eAAe,MAAA,EAAsE;AACzF,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAS;AAC9B,IAAA,MAAM,YAAA,GAAe,MAAA,CAAO,IAAA,CAAK,KAAA,EAAM,CAAE,MAAA;AACzC,IAAA,MAAM,SAAA,GAAY,OAAO,QAAA,IAAY,EAAA;AACrC,IAAA,MAAM,QAAA,GAAW,yCAAA,CAA0C,IAAA,CAAK,SAAS,IAAI,SAAA,GAAY,uBAAA;AACzF,IAAA,QAAA,CAAS,MAAA,CAAO,QAAQ,IAAI,IAAA,CAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,YAAA;AAAA,MAC/B,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,4BAA4B,CAAA;AAAA,MAC1C,EAAE,QAAQ,MAAA,EAAQ,OAAA,EAAS,KAAK,IAAA,CAAK,gBAAA,EAAiB,EAAG,IAAA,EAAM,QAAA,EAAS;AAAA,MACxE;AAAA,KACF;AACA,IAAA,MAAM,SAAS,QAAQ,CAAA;AACvB,IAAA,OAAQ,MAAM,SAAS,IAAA,EAAK;AAAA,EAC9B;AACF,CAAA;;;ACrDO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA6B,IAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAA2B;AAAA,EAA3B,IAAA;AAAA,EAC7B,GAAA,CAAI,KAAA,EAAe,OAAA,GAAqC,EAAC,EAAuB;AAC9E,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAA,EAAI,EAAE,KAAA,EAAO,EAAE,YAAA,EAAc,OAAA,CAAQ,WAAA,IAAe,CAAA;AAAA,EACxG;AAAA,EACA,QAAQ,KAAA,EAAiD;AAAE,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,aAAA,EAAgB,KAAK,CAAA,KAAA,CAAO,CAAA;AAAA,EAAG;AAAA,EACvH,SAAA,CAAU,KAAA,EAAe,OAAA,GAAsD,EAAC,EAA2C;AACzH,IAAA,OAAO,KAAK,IAAA,CAAK,WAAA,CAAY,CAAA,aAAA,EAAgB,KAAK,WAAW,EAAE,KAAA,EAAO,EAAE,cAAA,EAAgB,QAAQ,aAAA,EAAe,KAAA,EAAO,OAAA,CAAQ,KAAA,IAAS,CAAA;AAAA,EACzI;AAAA,EACA,WAAW,KAAA,EAAoC;AAAE,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,CAAA,aAAA,EAAgB,KAAK,CAAA,QAAA,CAAU,CAAA;AAAA,EAAG;AAAA,EAChH,MAAM,SAAS,KAAA,EAAkC;AAC/C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAChC,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AACrC,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AACzC,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,UAAA,CAAW,KAAK,CAAA;AAC3C,IAAA,OAAO,EAAE,GAAA,EAAK,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAQ;AAAA,EACtC;AACF,CAAA;;;ACVO,IAAM,WAAN,MAAe;AAAA,EACX,MAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EAET,YAAY,OAAA,EAA8B;AACxC,IAAA,MAAM,IAAA,GAAO,IAAI,kBAAA,CAAmB,OAAO,CAAA;AAC3C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,eAAA,CAAgB,IAAI,CAAA;AACtC,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,cAAA,CAAe,IAAI,CAAA;AACpC,IAAA,IAAA,CAAK,IAAA,GAAO,IAAI,aAAA,CAAc,IAAI,CAAA;AAClC,IAAA,IAAA,CAAK,eAAA,GAAkB,IAAI,wBAAA,CAAyB,IAAI,CAAA;AACxD,IAAA,IAAA,CAAK,gBAAA,GAAmB,IAAI,yBAAA,CAA0B,IAAI,CAAA;AAC1D,IAAA,IAAA,CAAK,iBAAA,GAAoB,IAAI,0BAAA,CAA2B,IAAI,CAAA;AAC5D,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAI,uBAAA,CAAwB,IAAI,CAAA;AAAA,EACxD;AAAA,EAEA,MAAM,OAAA,EAAyD;AAC7D,IAAA,OAAO,IAAI,sBAAA,CAAuB,IAAA,CAAK,MAAA,EAAQ,OAAO,CAAA;AAAA,EACxD;AAAA,EAEA,KAAA,GAAsB;AAAE,IAAA,OAAO,IAAI,YAAA,EAAa;AAAA,EAAG;AACrD;;;ACjCO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,mBAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,qBAAA;AAAA,EACA,2BAAA;AAAA,EACA,iBAAA;AAAA,EACA,2BAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,2BAAA;AAAA,EACA,wBAAA;AAAA,EACA,yBAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,oBAAA;AAAA,EACA,aAAA;AAAA,EACA,mBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,2BAAA;AAAA,EACA,iCAAA;AAAA,EACA,yBAAA;AAAA,EACA,wBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,oBAAA;AAAA,EACA,qBAAA;AAAA,EACA,wBAAA;AAAA,EACA,wBAAA;AAAA,EACA,2BAAA;AAAA,EACA,6BAAA;AAAA,EACA,wBAAA;AAAA,EACA,6BAAA;AAAA,EACA,0BAAA;AAAA,EACA,gCAAA;AAAA,EACA,wBAAA;AAAA,EACA,gCAAA;AAAA,EACA,oBAAA;AAAA,EACA,kCAAA;AAAA,EACA,wCAAA;AAAA,EACA,gCAAA;AAAA,EACA,yBAAA;AAAA,EACA,iCAAA;AAAA,EACA,2BAAA;AAAA,EACA,0BAAA;AAAA,EACA,4BAAA;AAAA,EACA,UAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF","file":"index.cjs","sourcesContent":["export type Agents24SDKErrorKind = \"protocol\" | \"network\" | \"http\";\nexport type Agents24NodeErrorKind = Agents24SDKErrorKind;\n\nexport class Agents24SDKError extends Error {\n readonly kind: Agents24SDKErrorKind;\n readonly status?: number;\n readonly details?: unknown;\n readonly responseHeaders?: Readonly<Record<string, string>>;\n\n constructor(\n message: string,\n options: {\n kind: Agents24SDKErrorKind;\n status?: number;\n details?: unknown;\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.details = options.details;\n this.responseHeaders = options.responseHeaders;\n }\n}\n\nexport { Agents24SDKError as Agents24NodeError };\n","import { randomUUID } from \"node:crypto\";\n\nimport { Agents24SDKError } from \"./errors.js\";\nimport type { Agents24NodeOptions, RequestOptions } from \"./types.js\";\n\nfunction required(value: string, name: string): string {\n const normalized = String(value || \"\").trim();\n if (!normalized) throw new Agents24SDKError(`Agents24 requires ${name}.`, { kind: \"protocol\" });\n return normalized;\n}\n\nfunction normalizeBaseUrl(value: string): string {\n try {\n return new URL(required(value, \"baseUrl\")).toString().replace(/\\/+$/, \"\");\n } catch (cause) {\n if (cause instanceof Agents24SDKError) throw cause;\n throw new Agents24SDKError(\"Agents24 received an invalid baseUrl.\", { kind: \"protocol\", cause });\n }\n}\n\nasync function errorDetails(response: Response): Promise<unknown> {\n const text = await response.text().catch(() => \"\");\n if (!text) return null;\n try { return JSON.parse(text) as unknown; }\n catch { return text; }\n}\n\nfunction detailMessage(details: unknown): string | undefined {\n if (typeof details === \"string\" && details.trim()) return details.trim();\n if (!details || typeof details !== \"object\" || Array.isArray(details)) return undefined;\n const detail = (details as Record<string, unknown>).detail;\n if (typeof detail === \"string\" && detail.trim()) return detail.trim();\n if (detail && typeof detail === \"object\" && !Array.isArray(detail)) {\n const message = (detail as Record<string, unknown>).message;\n if (typeof message === \"string\" && message.trim()) return message.trim();\n }\n const message = (details as Record<string, unknown>).message;\n return typeof message === \"string\" && message.trim() ? message.trim() : undefined;\n}\n\nfunction responseHeaders(response: Response): Record<string, string> {\n const headers: Record<string, string> = {};\n for (const name of [\"dpop-nonce\", \"retry-after\", \"www-authenticate\", \"x-request-id\"]) {\n const value = response.headers.get(name);\n if (value) headers[name] = value;\n }\n return headers;\n}\n\nexport async function assertOk(response: Response): Promise<void> {\n if (response.ok) return;\n const details = await errorDetails(response);\n throw new Agents24SDKError(detailMessage(details) || response.statusText || \"Agents24 request failed.\", {\n kind: \"http\",\n status: response.status,\n details,\n responseHeaders: responseHeaders(response),\n });\n}\n\nexport type RequestConfig = {\n method?: string;\n query?: Record<string, unknown>;\n body?: unknown;\n headers?: HeadersInit;\n options?: RequestOptions;\n mutation?: boolean;\n};\n\nexport class Agents24HttpClient {\n private readonly base: string;\n private readonly apiKey: string;\n private readonly organizationId: string;\n private readonly projectId: string;\n private readonly fetchImpl: typeof fetch;\n\n constructor(options: Agents24NodeOptions) {\n if (typeof process === \"undefined\" || process.release?.name !== \"node\") {\n throw new Agents24SDKError(\"@agents24/node is for trusted server runtimes only.\", { kind: \"protocol\" });\n }\n this.base = normalizeBaseUrl(options.baseUrl);\n this.apiKey = required(options.apiKey, \"apiKey\");\n this.organizationId = required(options.organizationId, \"organizationId\");\n this.projectId = required(options.projectId, \"projectId\");\n if (typeof options.fetchImpl !== \"function\" && typeof fetch !== \"function\") {\n throw new Agents24SDKError(\"No fetch implementation is available. Use Node 22 or 24.\", { kind: \"protocol\" });\n }\n this.fetchImpl = options.fetchImpl || fetch;\n }\n\n url(requestPath: string, query?: Record<string, unknown>): string {\n const url = new URL(`${this.base}${requestPath}`);\n for (const [key, value] of Object.entries(query || {})) {\n if (value === undefined || value === null || value === \"\") continue;\n if (Array.isArray(value)) {\n for (const item of value) {\n if (item !== undefined && item !== null && item !== \"\") url.searchParams.append(key, String(item));\n }\n } else {\n url.searchParams.set(key, String(value));\n }\n }\n return url.toString();\n }\n\n jsonHeaders(extra?: HeadersInit, options?: RequestOptions, mutation = false): HeadersInit {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"X-Organization-ID\": this.organizationId,\n \"X-Project-ID\": this.projectId,\n \"X-SDK-Contract\": \"1\",\n ...(mutation ? { \"Idempotency-Key\": options?.idempotencyKey || randomUUID() } : {}),\n ...(options?.requestMetadata ? { \"X-Request-Metadata\": JSON.stringify(options.requestMetadata) } : {}),\n ...(extra || {}),\n };\n }\n\n streamHeaders(extra?: HeadersInit, options?: RequestOptions, mutation = false): HeadersInit {\n return this.jsonHeaders({ Accept: \"text/event-stream\", ...(extra || {}) }, options, mutation);\n }\n\n multipartHeaders(extra?: HeadersInit, options?: RequestOptions, mutation = false): HeadersInit {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: \"application/json\",\n \"X-Organization-ID\": this.organizationId,\n \"X-Project-ID\": this.projectId,\n \"X-SDK-Contract\": \"1\",\n ...(mutation ? { \"Idempotency-Key\": options?.idempotencyKey || randomUUID() } : {}),\n ...(extra || {}),\n };\n }\n\n async requestJson<T>(requestPath: string, config: RequestConfig = {}): Promise<T> {\n const query = { ...(config.query || {}) };\n if (config.options?.dryRun !== undefined) query.dry_run = config.options.dryRun;\n if (config.options?.validateOnly !== undefined) query.validate_only = config.options.validateOnly;\n const response = await this.fetchOrThrow(this.url(requestPath, query), {\n method: config.method || \"GET\",\n headers: this.jsonHeaders(config.headers, config.options, Boolean(config.mutation)),\n ...(config.body === undefined ? {} : { body: JSON.stringify(config.body) }),\n }, \"Failed to connect to the Agents24 API.\");\n await assertOk(response);\n return await response.json() as T;\n }\n\n async fetchOrThrow(url: string, init: RequestInit, message: string): Promise<Response> {\n try { return await this.fetchImpl(url, init); }\n catch (cause) {\n if (cause instanceof Agents24SDKError) throw cause;\n throw new Agents24SDKError(message, { kind: \"network\", cause });\n }\n }\n}\n","import {\n createSseParser,\n parseRuntimeSsePayload,\n parseThreadSummarySsePayload,\n} from \"@agents24/client/protocol\";\nimport type { RuntimeEvent, ThreadSummaryEvent } from \"@agents24/client/protocol\";\n\nimport { Agents24SDKError } from \"./errors.js\";\n\nasync function consumePayloads(\n response: Response,\n onPayload: (payload: string) => void | Promise<void>,\n signal?: AbortSignal,\n): Promise<void> {\n if (!response.body) {\n throw new Agents24SDKError(\"Stream response did not include a readable body.\", { kind: \"protocol\" });\n }\n const reader = response.body.getReader();\n const parser = createSseParser({ decoder: new TextDecoder(), onPayload, signal });\n const abort = () => { void reader.cancel(signal?.reason).catch(() => undefined); };\n if (signal?.aborted) return abort();\n signal?.addEventListener(\"abort\", abort, { once: true });\n try {\n while (!signal?.aborted) {\n const { done, value } = await reader.read();\n if (value) await parser.push(value);\n if (done) break;\n }\n if (!signal?.aborted) await parser.finish();\n } finally {\n signal?.removeEventListener(\"abort\", abort);\n reader.releaseLock();\n }\n}\n\nexport async function consumeRuntimeEventStream(\n response: Response,\n onEvent?: (event: RuntimeEvent) => void | Promise<void>,\n signal?: AbortSignal,\n): Promise<void> {\n await consumePayloads(response, async (payload) => {\n const event = parseRuntimeSsePayload(payload);\n if (onEvent) await onEvent(event);\n }, signal);\n}\n\nexport async function consumeThreadSummaryEventStream(\n response: Response,\n onEvent: (event: ThreadSummaryEvent) => void | Promise<void>,\n signal?: AbortSignal,\n): Promise<void> {\n await consumePayloads(response, async (payload) => {\n await onEvent(parseThreadSummarySsePayload(payload));\n }, signal);\n}\n","import { assertOk, type Agents24HttpClient } from \"./http.js\";\nimport { consumeRuntimeEventStream } from \"./streams.js\";\nimport type {\n AgentCreateRequest,\n AgentListResponse,\n AgentResponse,\n AgentStreamRequest,\n AgentUpdateRequest,\n AttachmentUploadResult,\n GraphDefinition,\n RequestOptions,\n RunCancelOptions,\n RunCancelResult,\n RuntimeEvent,\n ServerAttachmentUploadOptions,\n StartRunResult,\n StreamRequestOptions,\n StreamResult,\n} from \"./types.js\";\n\nexport type ListAgentsOptions = { status?: string; skip?: number; limit?: number; view?: \"summary\" | \"full\" | string };\n\nexport class AgentsNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n\n list(options: ListAgentsOptions = {}): Promise<AgentListResponse> {\n return this.http.requestJson(\"/agents\", { query: { status: options.status, skip: options.skip ?? 0, limit: options.limit ?? 20, view: options.view ?? \"summary\" } });\n }\n get(agentId: string): Promise<AgentResponse> { return this.http.requestJson(`/agents/${agentId}`); }\n create(request: AgentCreateRequest, options?: RequestOptions): Promise<AgentResponse> {\n return this.http.requestJson(\"/agents\", { method: \"POST\", body: request, options, mutation: true });\n }\n update(agentId: string, request: AgentUpdateRequest, options?: RequestOptions): Promise<AgentResponse> {\n return this.http.requestJson(`/agents/${agentId}`, { method: \"PATCH\", body: request, options, mutation: true });\n }\n updateGraph(agentId: string, graph: GraphDefinition, options?: RequestOptions): Promise<AgentResponse> {\n return this.http.requestJson(`/agents/${agentId}/graph`, { method: \"PUT\", body: graph, options, mutation: true });\n }\n delete(agentId: string, options?: RequestOptions): Promise<unknown> {\n return this.http.requestJson(`/agents/${agentId}`, { method: \"DELETE\", options, mutation: true });\n }\n catalog(): Promise<Record<string, unknown>> { return this.http.requestJson(\"/agents/nodes/catalog\"); }\n schema(nodeTypes: string[]): Promise<Record<string, unknown>> {\n return this.http.requestJson(\"/agents/nodes/schema\", { method: \"POST\", body: { node_types: nodeTypes } });\n }\n validate(agentId: string): Promise<Record<string, unknown>> {\n return this.http.requestJson(`/agents/${agentId}/validate`, { method: \"POST\", body: {} });\n }\n publish(agentId: string, options?: RequestOptions): Promise<AgentResponse> {\n return this.http.requestJson(`/agents/${agentId}/publish`, { method: \"POST\", body: {}, options, mutation: true });\n }\n startRun(agentId: string, payload: AgentStreamRequest, options?: RequestOptions): Promise<StartRunResult> {\n return this.http.requestJson(`/agents/${agentId}/run`, { method: \"POST\", body: payload, options, mutation: true });\n }\n async stream(\n agentId: string,\n payload: AgentStreamRequest,\n onEvent?: (event: RuntimeEvent) => void | Promise<void>,\n mode?: \"debug\" | \"production\" | string,\n options: StreamRequestOptions = {},\n ): Promise<StreamResult> {\n const response = await this.http.fetchOrThrow(this.http.url(`/agents/${agentId}/stream`, { mode }), {\n method: \"POST\", headers: this.http.streamHeaders(), body: JSON.stringify(payload), signal: options.signal,\n }, \"Failed to connect to the agent stream endpoint.\");\n await assertOk(response);\n let runId = response.headers.get(\"X-Run-ID\");\n await consumeRuntimeEventStream(response, async (event) => { runId ||= event.run_id; if (onEvent) await onEvent(event); }, options.signal);\n return { threadId: response.headers.get(\"X-Thread-ID\"), runId };\n }\n resumeRun(runId: string, payload: Record<string, unknown>, options?: RequestOptions): Promise<Record<string, unknown>> {\n return this.http.requestJson(`/agents/runs/${runId}/resume`, { method: \"POST\", body: payload, options, mutation: true });\n }\n cancelRun(runId: string, options: RunCancelOptions = {}): Promise<RunCancelResult> {\n return this.http.requestJson(`/agents/runs/${runId}/cancel`, { method: \"POST\", body: { assistant_output_text: options.assistantOutputText }, mutation: true });\n }\n async uploadAttachments(agentId: string, options: ServerAttachmentUploadOptions): Promise<AttachmentUploadResult> {\n const form = new FormData();\n if (options.threadId) form.set(\"thread_id\", options.threadId);\n for (const file of options.files) form.append(\"files\", file, file.name);\n const response = await this.http.fetchOrThrow(this.http.url(`/agents/${agentId}/attachments/upload`), {\n method: \"POST\", headers: this.http.multipartHeaders(), body: form,\n }, \"Failed to connect to the agent attachment endpoint.\");\n await assertOk(response);\n return await response.json() as AttachmentUploadResult;\n }\n}\n","import type { AgentsNamespace } from \"./agents.js\";\nimport type {\n AgentCreateRequest,\n AgentDefinitionOptions,\n AgentRef,\n AgentResponse,\n GraphDefinition,\n GraphEdge,\n GraphNode,\n RequestOptions,\n} from \"./types.js\";\n\nfunction refId(ref: AgentRef): string { return typeof ref === \"string\" ? ref : ref.id; }\nfunction refs(values: AgentRef[] | undefined): string[] { return [...new Set((values || []).map(refId).filter(Boolean))]; }\nfunction graphNode(id: string, type: string, x: number, y: number, config: Record<string, unknown> = {}): GraphNode {\n return { id, type, position: { x, y }, config };\n}\n\nfunction toolsetAttachments(options: AgentDefinitionOptions): Array<Record<string, unknown>> {\n const seen = new Set<string>();\n return (options.toolsetAttachments || []).flatMap((attachment) => {\n const id = refId(attachment.toolset);\n if (!id || seen.has(id)) return [];\n seen.add(id);\n const policy = attachment.versionPolicy || { mode: \"latest_published\" as const };\n return [{\n toolset_id: id,\n loading_mode: attachment.loadingMode || \"static\",\n version_policy: policy.mode === \"pinned\" ? { mode: \"pinned\", version_id: policy.versionId } : { mode: \"latest_published\" },\n }];\n });\n}\n\nexport class AgentDefinitionBuilder {\n constructor(private readonly agents: AgentsNamespace, private readonly options: AgentDefinitionOptions) {}\n toGraph(): GraphDefinition {\n const agentConfig: Record<string, unknown> = {\n instructions: this.options.instructions || \"\",\n tools: refs(this.options.tools),\n toolset_attachments: toolsetAttachments(this.options),\n input_sources: [{ id: \"workflow-text\", value_ref: { namespace: \"workflow_input\", key: \"text\", label: \"Workflow input / Text\" } }],\n };\n if (this.options.model) agentConfig.model_id = refId(this.options.model);\n return {\n spec_version: \"4.0\",\n graph_type: \"agent\",\n workflow_contract: { inputs: [] },\n state_contract: { variables: [] },\n nodes: [\n graphNode(\"start\", \"start\", 0, 0),\n graphNode(\"agent\", \"agent\", 260, 0, agentConfig),\n graphNode(\"end\", \"end\", 520, 0, {\n output_schema: {\n name: \"workflow_result\", mode: \"simple\",\n schema: { type: \"object\", additionalProperties: false, properties: { response: { type: \"string\" } }, required: [\"response\"] },\n },\n output_bindings: [{ json_pointer: \"/response\", value_ref: { namespace: \"node_output\", node_id: \"agent\", key: \"output_text\", label: \"Agent response\" } }],\n }),\n ],\n edges: [\n { id: \"start-agent\", source: \"start\", target: \"agent\", type: \"control\" },\n { id: \"agent-end\", source: \"agent\", target: \"end\", type: \"control\" },\n ],\n };\n }\n toCreateRequest(): AgentCreateRequest {\n const knowledge = refs(this.options.knowledge);\n return {\n name: this.options.name,\n description: this.options.description ?? null,\n graph_definition: this.toGraph(),\n memory_config: {\n ...(this.options.memory || {}),\n ...(knowledge.length ? { long_term_enabled: true, long_term_index_id: knowledge[0], knowledge_refs: knowledge } : {}),\n },\n execution_constraints: this.options.execution || {},\n };\n }\n create(options?: RequestOptions): Promise<AgentResponse> { return this.agents.create(this.toCreateRequest(), options); }\n}\n\nexport class GraphBuilder {\n private readonly nodes = new Map<string, GraphNode>();\n private readonly edges: GraphEdge[] = [];\n node(type: string, config: Record<string, unknown> = {}, options: { id?: string; x?: number; y?: number; label?: string } = {}): GraphNode {\n const id = options.id || `${type}_${this.nodes.size + 1}`;\n if (this.nodes.has(id)) throw new Error(`Duplicate graph node id: ${id}`);\n const value = graphNode(id, type, options.x ?? this.nodes.size * 260, options.y ?? 0, config);\n if (options.label) value.label = options.label;\n this.nodes.set(id, value);\n return value;\n }\n connect(source: GraphNode | string, target: GraphNode | string, options: { id?: string; sourceHandle?: string; targetHandle?: string } = {}): this {\n const sourceId = typeof source === \"string\" ? source : source.id;\n const targetId = typeof target === \"string\" ? target : target.id;\n if (!this.nodes.has(sourceId)) throw new Error(`Unknown source node id: ${sourceId}`);\n if (!this.nodes.has(targetId)) throw new Error(`Unknown target node id: ${targetId}`);\n this.edges.push({\n id: options.id || `${sourceId}-${targetId}`, source: sourceId, target: targetId, type: \"control\",\n source_handle: options.sourceHandle, target_handle: options.targetHandle,\n });\n return this;\n }\n toGraph(): GraphDefinition {\n return {\n spec_version: \"4.0\", graph_type: \"agent\", workflow_contract: { inputs: [] }, state_contract: { variables: [] },\n nodes: [...this.nodes.values()], edges: [...this.edges],\n };\n }\n}\n","import type { Agents24HttpClient } from \"./http.js\";\nimport type {\n BackendSessionRequestOptions,\n ClientDeployment,\n ClientDeploymentListQuery,\n ClientDeploymentListResponse,\n ClientSessionCredentials,\n CreateBackendClientSessionRequest,\n CreateClientDeploymentRequest,\n RequestOptions,\n UpdateClientDeploymentRequest,\n} from \"./types.js\";\n\nexport class ClientDeploymentsNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n\n create(request: CreateClientDeploymentRequest, options?: RequestOptions): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(\"/client-runtime/deployments\", {\n method: \"POST\", body: request, options, mutation: true,\n });\n }\n\n list(query: ClientDeploymentListQuery): Promise<ClientDeploymentListResponse> {\n const params = new URLSearchParams({ agent_id: query.agentId });\n if (query.status) params.set(\"status\", query.status);\n if (query.cursor) params.set(\"cursor\", query.cursor);\n if (query.limit !== undefined) params.set(\"limit\", String(query.limit));\n return this.http.requestJson<ClientDeploymentListResponse>(\n `/client-runtime/deployments?${params.toString()}`,\n );\n }\n\n get(deploymentId: string): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(`/client-runtime/deployments/${deploymentId}`);\n }\n\n update(deploymentId: string, request: UpdateClientDeploymentRequest, options?: RequestOptions): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(`/client-runtime/deployments/${deploymentId}`, {\n method: \"PATCH\", body: request, options, mutation: true,\n });\n }\n\n revoke(deploymentId: string, options?: RequestOptions): Promise<ClientDeployment> {\n return this.http.requestJson<ClientDeployment>(`/client-runtime/deployments/${deploymentId}`, {\n method: \"DELETE\", options, mutation: true,\n });\n }\n}\n\nexport class ClientSessionsNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n\n createBackendSession(\n deploymentId: string,\n request: CreateBackendClientSessionRequest,\n options?: BackendSessionRequestOptions,\n ): Promise<ClientSessionCredentials> {\n return this.http.requestJson<ClientSessionCredentials>(\n `/client-runtime/deployments/${deploymentId}/session-tokens`,\n {\n method: \"POST\",\n body: request,\n options,\n mutation: true,\n headers: options?.dpopProof ? { DPoP: options.dpopProof } : undefined,\n },\n );\n }\n}\n","import { assertOk, type Agents24HttpClient } from \"./http.js\";\nimport { consumeRuntimeEventStream, consumeThreadSummaryEventStream } from \"./streams.js\";\nimport type {\n AttachRunRequest,\n AttachmentUploadResult,\n EmbedRuntimeBootstrap,\n EmbedRunCancelOptions,\n EmbedStreamRequest,\n McpAuthStartRequest,\n McpAuthStartResult,\n MultiAgentThreadListRequest,\n MultiAgentThreadSummaryEventOptions,\n RequestOptions,\n ResumeRunRequest,\n RunCancelResult,\n RunContext,\n RunContextOptions,\n RunResumeResult,\n RuntimeEvent,\n ServerEmbedAttachmentUploadOptions,\n StreamRequestOptions,\n StreamResult,\n ThreadDeleteOptions,\n ThreadDeleteResult,\n ThreadDetail,\n ThreadDetailOptions,\n ThreadListOptions,\n ThreadSummaryEvent,\n ThreadSummaryEventOptions,\n ThreadsResponse,\n} from \"./types.js\";\n\nexport class EmbedNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n\n async streamAgent(\n agentId: string,\n payload: EmbedStreamRequest,\n onEvent?: (event: RuntimeEvent) => void | Promise<void>,\n options: StreamRequestOptions = {},\n ): Promise<StreamResult> {\n return this.stream(`/public/embed/agents/${agentId}/chat/stream`, payload, onEvent, options);\n }\n\n async attachAgentRun(\n agentId: string,\n runId: string,\n payload: AttachRunRequest,\n onEvent?: (event: RuntimeEvent) => void | Promise<void>,\n options: StreamRequestOptions = {},\n ): Promise<StreamResult> {\n return this.stream(`/public/embed/agents/${agentId}/runs/${runId}/stream`, payload, onEvent, options);\n }\n\n private async stream(\n path: string,\n payload: unknown,\n onEvent: ((event: RuntimeEvent) => void | Promise<void>) | undefined,\n options: StreamRequestOptions,\n ): Promise<StreamResult> {\n const response = await this.http.fetchOrThrow(this.http.url(path), {\n method: \"POST\",\n headers: this.http.streamHeaders(undefined, options, true),\n body: JSON.stringify(payload),\n signal: options.signal,\n }, \"Failed to connect to the embedded-agent stream endpoint.\");\n await assertOk(response);\n let runId = response.headers.get(\"X-Run-ID\");\n await consumeRuntimeEventStream(response, async (event) => { runId ||= event.run_id; if (onEvent) await onEvent(event); }, options.signal);\n return { threadId: response.headers.get(\"X-Thread-ID\"), runId };\n }\n\n resumeAgentRun(agentId: string, runId: string, payload: ResumeRunRequest, options?: RequestOptions): Promise<RunResumeResult> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/resume`, { method: \"POST\", body: payload, options, mutation: true });\n }\n startAgentRunMcpAuth(agentId: string, runId: string, serverId: string, payload: McpAuthStartRequest, options?: RequestOptions): Promise<McpAuthStartResult> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/mcp/servers/${serverId}/auth/start`, { method: \"POST\", body: payload, options, mutation: true });\n }\n getRuntimeBootstrap(agentId: string, agentVersionId?: string): Promise<EmbedRuntimeBootstrap> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runtime/bootstrap`, {\n query: { agent_version_id: agentVersionId },\n });\n }\n listAgentThreads(agentId: string, options: ThreadListOptions): Promise<ThreadsResponse> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/threads`, { query: {\n external_user_id: options.externalUserId,\n external_session_id: options.externalSessionId,\n skip: options.skip ?? 0,\n limit: options.limit ?? 20,\n } });\n }\n listAgentThreadsMulti(options: MultiAgentThreadListRequest): Promise<ThreadsResponse> {\n return this.http.requestJson(\"/public/embed/threads/query\", { method: \"POST\", body: options });\n }\n async subscribeAgentThreadEvents(\n agentId: string,\n options: ThreadSummaryEventOptions,\n onEvent: (event: ThreadSummaryEvent) => void | Promise<void>,\n ): Promise<void> {\n const response = await this.http.fetchOrThrow(this.http.url(`/public/embed/agents/${agentId}/threads/events`, {\n external_user_id: options.externalUserId, external_session_id: options.externalSessionId, cursor: options.cursor,\n }), { method: \"GET\", headers: this.http.streamHeaders(), signal: options.signal }, \"Failed to connect to the embedded-agent thread event endpoint.\");\n await assertOk(response);\n await consumeThreadSummaryEventStream(response, onEvent, options.signal);\n }\n async subscribeAgentThreadEventsMulti(\n options: MultiAgentThreadSummaryEventOptions,\n onEvent: (event: ThreadSummaryEvent) => void | Promise<void>,\n ): Promise<void> {\n const response = await this.http.fetchOrThrow(this.http.url(\"/public/embed/threads/events\", {\n agent_ids: options.agentIds, external_user_id: options.externalUserId, external_session_id: options.externalSessionId, cursor: options.cursor,\n }), { method: \"GET\", headers: this.http.streamHeaders(), signal: options.signal }, \"Failed to connect to the embedded-agent thread event endpoint.\");\n await assertOk(response);\n await consumeThreadSummaryEventStream(response, onEvent, options.signal);\n }\n getAgentThread(agentId: string, threadId: string, options: ThreadDetailOptions): Promise<ThreadDetail> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/threads/${threadId}`, { query: {\n external_user_id: options.externalUserId,\n external_session_id: options.externalSessionId,\n before_turn_index: options.beforeTurnIndex,\n limit: options.limit,\n include_run_events: options.includeRunEvents,\n include_subthreads: options.includeSubthreads,\n subthread_depth: options.subthreadDepth,\n subthread_turn_limit: options.subthreadTurnLimit,\n subthread_child_limit: options.subthreadChildLimit,\n } });\n }\n deleteAgentThread(agentId: string, threadId: string, options: ThreadDeleteOptions): Promise<ThreadDeleteResult> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/threads/${threadId}`, { method: \"DELETE\", query: {\n external_user_id: options.externalUserId, external_session_id: options.externalSessionId,\n }, mutation: true });\n }\n getAgentRunContext(agentId: string, runId: string, options: RunContextOptions): Promise<RunContext> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/context`, { query: {\n external_user_id: options.externalUserId, external_session_id: options.externalSessionId,\n } });\n }\n cancelAgentRun(agentId: string, runId: string, options: EmbedRunCancelOptions): Promise<RunCancelResult> {\n return this.http.requestJson(`/public/embed/agents/${agentId}/runs/${runId}/cancel`, { method: \"POST\", query: {\n external_user_id: options.externalUserId, external_session_id: options.externalSessionId,\n }, body: {}, mutation: true });\n }\n async uploadAgentAttachments(agentId: string, options: ServerEmbedAttachmentUploadOptions): Promise<AttachmentUploadResult> {\n const form = new FormData();\n form.set(\"external_user_id\", options.externalUserId);\n if (options.externalSessionId) form.set(\"external_session_id\", options.externalSessionId);\n if (options.threadId) form.set(\"thread_id\", options.threadId);\n for (const file of options.files) form.append(\"files\", file, file.name);\n const response = await this.http.fetchOrThrow(this.http.url(`/public/embed/agents/${agentId}/attachments/upload`), {\n method: \"POST\",\n headers: this.http.multipartHeaders(undefined, { idempotencyKey: options.idempotencyKey }, true),\n body: form,\n }, \"Failed to connect to the embedded-agent attachment endpoint.\");\n await assertOk(response);\n return await response.json() as AttachmentUploadResult;\n }\n}\n","// @generated by @agents24/sdk-contract; DO NOT EDIT.\n// contract-sha256: 90a64d2df2facc3c4510edc7a0762cb86a336578667d3bc6cfeb7ae035133e00\nimport { assertOk, type Agents24HttpClient } from \"../http\";\nimport type {\n RequestOptions,\n ResourceBundleImportPreview,\n ResourceBundleImportRequest,\n ResourceBundleImportResult\n} from \"../types\";\n\nexport class ResourceBundlesNamespace {\n constructor(protected readonly http: Agents24HttpClient) {}\n\n importPreview(request: ResourceBundleImportRequest): Promise<ResourceBundleImportPreview> {\n return this.http.requestJson<ResourceBundleImportPreview>(\"/resource-bundles/import/preview\", {\n method: \"POST\",\n body: request,\n });\n }\n\n importBundle(request: ResourceBundleImportRequest, options?: RequestOptions): Promise<ResourceBundleImportResult> {\n return this.http.requestJson<ResourceBundleImportResult>(\"/resource-bundles/import\", {\n method: \"POST\",\n body: request,\n options,\n mutation: true,\n });\n }\n}\n","// @generated by @agents24/sdk-contract; DO NOT EDIT.\n// contract-sha256: 90a64d2df2facc3c4510edc7a0762cb86a336578667d3bc6cfeb7ae035133e00\nimport { assertOk, type Agents24HttpClient } from \"../http\";\nimport type {\n RequestOptions,\n ResourcePackageArchive,\n ResourcePackageCompileResult,\n ResourcePackageExportRequest,\n ResourcePackageUpload\n} from \"../types\";\n\nexport class ResourcePackagesNamespace {\n constructor(protected readonly http: Agents24HttpClient) {}\n\n async exportPackage(request: ResourcePackageExportRequest): Promise<ResourcePackageArchive> {\n const response = await this.http.fetchOrThrow(\n this.http.url(\"/resource-packages/export\"),\n { method: \"POST\", headers: this.http.jsonHeaders(), body: JSON.stringify(request) },\n \"Failed to export the Agents24 resource package.\",\n );\n await assertOk(response);\n const disposition = response.headers.get(\"content-disposition\") || \"\";\n const candidate = /filename=\"?([^\";]+)\"?/i.exec(disposition)?.[1] || \"\";\n const filename = /^[A-Za-z0-9][A-Za-z0-9._-]{0,200}\\.zip$/.test(candidate) ? candidate : \"resource.agents24.zip\";\n return { data: new Uint8Array(await response.arrayBuffer()), filename };\n }\n\n async validatePackage(upload: ResourcePackageUpload): Promise<ResourcePackageCompileResult> {\n const formData = new FormData();\n const archiveBytes = upload.data.slice().buffer as ArrayBuffer;\n const candidate = upload.filename || \"\";\n const filename = /^[A-Za-z0-9][A-Za-z0-9._-]{0,200}\\.zip$/.test(candidate) ? candidate : \"resource.agents24.zip\";\n formData.append(\"file\", new Blob([archiveBytes]), filename);\n const response = await this.http.fetchOrThrow(\n this.http.url(\"/resource-packages/validate\"),\n { method: \"POST\", headers: this.http.multipartHeaders(), body: formData },\n \"Failed to upload the Agents24 resource package.\",\n );\n await assertOk(response);\n return (await response.json()) as ResourcePackageCompileResult;\n }\n\n async compilePackage(upload: ResourcePackageUpload): Promise<ResourcePackageCompileResult> {\n const formData = new FormData();\n const archiveBytes = upload.data.slice().buffer as ArrayBuffer;\n const candidate = upload.filename || \"\";\n const filename = /^[A-Za-z0-9][A-Za-z0-9._-]{0,200}\\.zip$/.test(candidate) ? candidate : \"resource.agents24.zip\";\n formData.append(\"file\", new Blob([archiveBytes]), filename);\n const response = await this.http.fetchOrThrow(\n this.http.url(\"/resource-packages/compile\"),\n { method: \"POST\", headers: this.http.multipartHeaders(), body: formData },\n \"Failed to upload the Agents24 resource package.\",\n );\n await assertOk(response);\n return (await response.json()) as ResourcePackageCompileResult;\n }\n}\n","import type { Agents24HttpClient } from \"./http.js\";\nimport type { ControlPlaneRunEventsResponse, RunContext, RunStatus, RunTrace } from \"./types.js\";\n\nexport class RunsNamespace {\n constructor(private readonly http: Agents24HttpClient) {}\n get(runId: string, options: { includeTree?: boolean } = {}): Promise<RunStatus> {\n return this.http.requestJson(`/agents/runs/${runId}`, { query: { include_tree: options.includeTree } });\n }\n getTree(runId: string): Promise<Record<string, unknown>> { return this.http.requestJson(`/agents/runs/${runId}/tree`); }\n getEvents(runId: string, options: { afterSequence?: number; limit?: number } = {}): Promise<ControlPlaneRunEventsResponse> {\n return this.http.requestJson(`/agents/runs/${runId}/events`, { query: { after_sequence: options.afterSequence, limit: options.limit } });\n }\n getContext(runId: string): Promise<RunContext> { return this.http.requestJson(`/agents/runs/${runId}/context`); }\n async getTrace(runId: string): Promise<RunTrace> {\n const run = await this.get(runId);\n const tree = await this.getTree(runId);\n const events = await this.getEvents(runId);\n const context = await this.getContext(runId);\n return { run, tree, events, context };\n }\n}\n","import { AgentsNamespace } from \"./agents.js\";\nimport { AgentDefinitionBuilder, GraphBuilder } from \"./builders.js\";\nimport { ClientDeploymentsNamespace, ClientSessionsNamespace } from \"./client-runtime-admin.js\";\nimport { EmbedNamespace } from \"./embed.js\";\nimport { ResourceBundlesNamespace } from \"./generated/resourceBundles.js\";\nimport { ResourcePackagesNamespace } from \"./generated/resourcePackages.js\";\nimport { Agents24HttpClient } from \"./http.js\";\nimport { RunsNamespace } from \"./runs.js\";\nimport type { AgentDefinitionOptions, Agents24NodeOptions } from \"./types.js\";\n\nexport class Agents24 {\n readonly agents: AgentsNamespace;\n readonly embed: EmbedNamespace;\n readonly runs: RunsNamespace;\n readonly resourceBundles: ResourceBundlesNamespace;\n readonly resourcePackages: ResourcePackagesNamespace;\n readonly clientDeployments: ClientDeploymentsNamespace;\n readonly clientSessions: ClientSessionsNamespace;\n\n constructor(options: Agents24NodeOptions) {\n const http = new Agents24HttpClient(options);\n this.agents = new AgentsNamespace(http);\n this.embed = new EmbedNamespace(http);\n this.runs = new RunsNamespace(http);\n this.resourceBundles = new ResourceBundlesNamespace(http);\n this.resourcePackages = new ResourcePackagesNamespace(http);\n this.clientDeployments = new ClientDeploymentsNamespace(http);\n this.clientSessions = new ClientSessionsNamespace(http);\n }\n\n agent(options: AgentDefinitionOptions): AgentDefinitionBuilder {\n return new AgentDefinitionBuilder(this.agents, options);\n }\n\n graph(): GraphBuilder { return new GraphBuilder(); }\n}\n","// @generated by @agents24/sdk-contract; DO NOT EDIT.\n// contract-sha256: 90a64d2df2facc3c4510edc7a0762cb86a336578667d3bc6cfeb7ae035133e00\nexport const SDK_OPERATION_IDS = [\n \"agents.cancel_run\",\n \"agents.catalog\",\n \"agents.create\",\n \"agents.delete\",\n \"agents.get\",\n \"agents.list\",\n \"agents.publish\",\n \"agents.resume_run\",\n \"agents.schema\",\n \"agents.start_run\",\n \"agents.stream\",\n \"agents.update\",\n \"agents.update_graph\",\n \"agents.upload_attachments\",\n \"agents.validate\",\n \"client.attachments.upload\",\n \"client.bootstrap\",\n \"client.chat.stream\",\n \"client.deployments.create\",\n \"client.deployments.get\",\n \"client.deployments.list\",\n \"client.deployments.revoke\",\n \"client.deployments.update\",\n \"client.hitl.resume\",\n \"client.jwks\",\n \"client.mcp.redeem\",\n \"client.mcp.start\",\n \"client.runs.attach\",\n \"client.runs.cancel\",\n \"client.sessions.anonymous\",\n \"client.sessions.backendExchange\",\n \"client.sessions.refresh\",\n \"client.sessions.revoke\",\n \"client.threads.delete\",\n \"client.threads.events\",\n \"client.threads.get\",\n \"client.threads.list\",\n \"embed.attach_agent_run\",\n \"embed.cancel_agent_run\",\n \"embed.delete_agent_thread\",\n \"embed.get_agent_run_context\",\n \"embed.get_agent_thread\",\n \"embed.get_runtime_bootstrap\",\n \"embed.list_agent_threads\",\n \"embed.list_agent_threads_multi\",\n \"embed.resume_agent_run\",\n \"embed.start_agent_run_mcp_auth\",\n \"embed.stream_agent\",\n \"embed.stream_agent_thread_events\",\n \"embed.stream_agent_thread_events_multi\",\n \"embed.upload_agent_attachments\",\n \"resource_bundles.import\",\n \"resource_bundles.import_preview\",\n \"resource_packages.compile\",\n \"resource_packages.export\",\n \"resource_packages.validate\",\n \"runs.get\",\n \"runs.get_context\",\n \"runs.get_events\",\n \"runs.get_tree\"\n] as const;\n\nexport type SDKOperationId = (typeof SDK_OPERATION_IDS)[number];\n"]}
|