@getsupervisor/agents-studio-sdk 1.31.0 → 1.32.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 +15 -2
- package/dist/index.cjs +21 -98
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -51
- package/dist/index.d.ts +1 -51
- package/dist/index.js +21 -96
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/http.ts","../src/utils/query.ts","../src/api/agent-blueprints.ts","../src/utils/pagination.ts","../src/api/agent-instructions.ts","../src/api/agent-phones.ts","../src/api/agent-schedule-exceptions.ts","../src/api/agent-schedule.ts","../src/api/agent-stage-triggers.ts","../src/api/agent-stages.ts","../src/api/agent-tags.ts","../src/api/agent-versions.ts","../src/entities/agent.ts","../src/api/agents.ts","../src/api/api-keys.ts","../src/api/catalog-templates.ts","../src/api/catalogs.ts","../src/api/tools.ts","../src/utils/catalog-voices.ts","../src/utils/catalog-filter.ts","../src/api/voices.ts","../src/api/webhooks.ts","../src/api/workspaces.ts","../src/client.ts"],"sourcesContent":["export * from './api/agent-blueprints';\nexport * from './api/agent-instructions';\nexport * from './api/agent-phones';\nexport * from './api/agent-schedule-exceptions';\nexport * from './api/agent-schedule';\nexport * from './api/agent-stage-triggers';\nexport * from './api/agent-stages';\nexport * from './api/agent-tags';\nexport * from './api/agent-versions';\nexport * from './api/agents';\nexport * from './api/api-keys';\nexport * from './api/catalog-templates';\nexport * from './api/catalogs';\nexport * from './api/tools';\nexport * from './api/voices';\nexport * from './api/webhooks';\nexport * from './api/workspaces';\nexport * from './client';\nexport * from './entities/agent';\nexport * from './errors';\nexport * from './http';\nexport * from './types';\n","export class HttpError extends Error {\n constructor(\n public status: number,\n public statusText: string,\n public body?: unknown,\n public url?: string,\n ) {\n super(`HTTP ${status} ${statusText}`);\n this.name = 'HttpError';\n }\n}\n\nexport class TimeoutError extends Error {\n constructor(\n public ms: number,\n public url?: string,\n ) {\n super(`Timeout after ${ms}ms`);\n this.name = 'TimeoutError';\n }\n}\n\nexport class NetworkError extends Error {\n constructor(\n public cause?: unknown,\n public url?: string,\n ) {\n super('Network error');\n this.name = 'NetworkError';\n }\n}\n\nexport type RetryPolicy = {\n maxRetries?: number; // default 2\n baseDelayMs?: number; // default 300\n maxDelayMs?: number; // default 3000\n retryOn?: (err: unknown, attempt: number) => boolean; // default: network or 5xx\n};\n","import { ClientConfig } from './types';\nimport { HttpError, NetworkError, RetryPolicy, TimeoutError } from './errors';\n\ntype QueryParamPrimitive = string | number | boolean;\ntype QueryParamValue =\n | QueryParamPrimitive\n | QueryParamPrimitive[]\n | null\n | undefined;\ntype QueryInit = string | URLSearchParams | Record<string, QueryParamValue>;\n\ntype FetchOptions = RequestInit & { query?: QueryInit };\n\nfunction toQueryString(query?: QueryInit): string | undefined {\n if (!query) return undefined;\n\n if (typeof query === 'string') {\n const normalized = query.trim().replace(/^\\?/, '');\n return normalized.length > 0 ? normalized : undefined;\n }\n\n if (query instanceof URLSearchParams) {\n const result = query.toString();\n return result.length > 0 ? result : undefined;\n }\n\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value === null || value === undefined) return;\n const values = Array.isArray(value) ? value : [value];\n values.forEach((item) => {\n params.append(key, String(item));\n });\n });\n const result = params.toString();\n return result.length > 0 ? result : undefined;\n}\n\nfunction appendQuery(url: string, query?: QueryInit): string {\n const qs = toQueryString(query);\n if (!qs) return url;\n\n const [base, hash] = url.split('#');\n const hasQuery = base.includes('?');\n const needsSeparator = hasQuery\n ? base.endsWith('?') || base.endsWith('&')\n ? ''\n : '&'\n : '?';\n const built = `${base}${needsSeparator}${qs}`;\n return hash ? `${built}#${hash}` : built;\n}\n\nfunction sleep(ms: number) {\n return new Promise((r) => setTimeout(r, ms));\n}\n\nasync function withTimeout<T>(\n p: Promise<T>,\n ms: number,\n ab?: AbortController,\n url?: string,\n) {\n return new Promise<T>((resolve, reject) => {\n const to = setTimeout(() => {\n ab?.abort();\n reject(new TimeoutError(ms, url));\n }, ms);\n p.then((v) => {\n clearTimeout(to);\n resolve(v);\n }).catch((e) => {\n clearTimeout(to);\n reject(e);\n });\n });\n}\n\nasync function withRetry<T>(\n fn: (attempt: number) => Promise<T>,\n policy?: RetryPolicy,\n): Promise<T> {\n const max = policy?.maxRetries ?? 2;\n const base = policy?.baseDelayMs ?? 300;\n const maxDelay = policy?.maxDelayMs ?? 3000;\n const retryOn =\n policy?.retryOn ??\n ((err) =>\n err instanceof NetworkError ||\n (err instanceof HttpError && err.status >= 500));\n let attempt = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n try {\n return await fn(attempt);\n } catch (e) {\n if (attempt >= max || !retryOn(e, attempt)) throw e;\n const delay =\n Math.min(maxDelay, base * 2 ** attempt) +\n Math.floor(Math.random() * 100);\n await sleep(delay);\n attempt += 1;\n }\n }\n}\n\nexport function createHttp(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const base = cfg.baseUrl.replace(/\\/$/, '');\n const fx = cfg.fetchImpl ?? fetch;\n const baseHeaders = { ...(cfg.headers ?? {}) };\n const timeout = cfg.timeoutMs ?? 35000;\n const log = cfg.logger ?? {};\n const retry = cfg.retry;\n const WORKSPACE_HEADER = 'x-workspace-id';\n const API_KEY_HEADER = 'x-api-key';\n const AUTHORIZATION_HEADER = 'authorization';\n\n const resolveWorkspaceId = () =>\n cfg.getWorkspaceId?.() ?? cfg.workspaceId ?? undefined;\n\n const resolveApiKey = () => cfg.getApiKey?.() ?? cfg.apiKey ?? undefined;\n\n const resolveAccessToken = () =>\n cfg.getAccessToken?.() ?? cfg.accessToken ?? undefined;\n\n const normalizeHeaders = (headers?: HeadersInit): Record<string, string> => {\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n const result: Record<string, string> = {};\n headers.forEach((value, key) => {\n result[key] = value;\n });\n return result;\n }\n\n if (Array.isArray(headers)) {\n return headers.reduce<Record<string, string>>((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n }\n\n return { ...headers } as Record<string, string>;\n };\n\n const buildHeaders = (extra?: HeadersInit): Record<string, string> => {\n const workspaceId = resolveWorkspaceId();\n const normalizedExtra = normalizeHeaders(extra);\n const headersWithWorkspace = workspaceId\n ? { [WORKSPACE_HEADER]: workspaceId }\n : {};\n const apiKey = resolveApiKey();\n const headersWithApiKey = apiKey ? { [API_KEY_HEADER]: apiKey } : {};\n const accessToken = resolveAccessToken();\n const headersWithAuthorization = accessToken\n ? {\n [AUTHORIZATION_HEADER]: accessToken.startsWith('Bearer ')\n ? accessToken\n : `Bearer ${accessToken}`,\n }\n : {};\n\n return {\n ...baseHeaders,\n ...headersWithWorkspace,\n ...headersWithApiKey,\n ...headersWithAuthorization,\n ...normalizedExtra,\n };\n };\n\n async function doFetch(url: string, init: FetchOptions = {}) {\n const { query, ...requestInit } = init;\n const targetUrl = appendQuery(url, query);\n const ab = new AbortController();\n const req = async () => {\n try {\n const finalHeaders = buildHeaders(requestInit.headers);\n const res = await withTimeout(\n fx(targetUrl, {\n ...requestInit,\n headers: finalHeaders,\n signal: ab.signal,\n }),\n timeout,\n ab,\n targetUrl,\n );\n if (!res.ok) {\n const body = await res\n .clone()\n .json()\n .catch(() => undefined);\n throw new HttpError(res.status, res.statusText, body, targetUrl);\n }\n return res;\n } catch (e: any) {\n if (e.name === 'AbortError') throw new TimeoutError(timeout, targetUrl);\n if (e instanceof HttpError) throw e;\n throw new NetworkError(e, targetUrl);\n }\n };\n return withRetry(req, retry);\n }\n\n return {\n base,\n timeout,\n log,\n retry,\n doFetch,\n buildHeaders,\n resolveWorkspaceId,\n resolveApiKey,\n resolveAccessToken,\n };\n}\n","import type {\n ListQueryOptions,\n QueryBuilderInput,\n QueryBuilderSerializable,\n QueryFilters,\n QueryOrGroups,\n} from '../types';\n\ntype Primitive = string | number | boolean | bigint;\ntype PlainObject = Record<string, unknown>;\n\nexport function buildSearchParams(\n entries: Array<[string, unknown]>,\n): URLSearchParams {\n const searchParams = new URLSearchParams();\n entries.forEach(([key, value]) => appendParam(searchParams, key, value));\n return searchParams;\n}\n\nexport function serializeListOptions(\n options: ListQueryOptions = {},\n extra: PlainObject = {},\n): string {\n const params = new URLSearchParams();\n\n appendParam(params, 'page', options.page);\n appendParam(params, 'limit', options.limit);\n appendParam(params, 'sort', options.sort);\n appendParam(params, 'fields', options.fields);\n appendParam(params, 'include', options.include);\n appendParam(params, 'q', options.search);\n appendParam(params, 'filter', mapQueryValue(options.filter));\n appendParam(params, 'or', mapQueryValue(options.or));\n\n Object.entries(extra).forEach(([key, value]) => {\n appendParam(params, key, value);\n });\n\n return params.toString();\n}\n\nfunction mapQueryValue(\n value: QueryFilters | QueryOrGroups | QueryBuilderInput | undefined,\n): unknown {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n if (isQueryBuilderSerializable(value)) {\n return getQueryBuilderString(value);\n }\n\n return value;\n}\n\nfunction appendParam(\n params: URLSearchParams,\n key: string,\n value: unknown,\n): void {\n if (value === undefined || value === null) {\n return;\n }\n\n if (value instanceof Date) {\n params.set(key, value.toISOString());\n return;\n }\n\n if (isQueryBuilderSerializable(value)) {\n params.set(key, getQueryBuilderString(value));\n return;\n }\n\n if (typeof value === 'string') {\n params.set(key, value);\n return;\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n params.set(key, String(value));\n return;\n }\n\n if (typeof value === 'bigint') {\n params.set(key, value.toString());\n return;\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return;\n }\n\n if (value.every(isPrimitive)) {\n params.set(key, value.map((item) => String(item)).join(','));\n return;\n }\n\n value.forEach((item, idx) => {\n appendParam(params, `${key}[${idx}]`, item);\n });\n return;\n }\n\n if (isPlainObject(value)) {\n Object.entries(value).forEach(([childKey, childValue]) => {\n appendParam(params, `${key}[${childKey}]`, childValue);\n });\n return;\n }\n\n params.set(key, String(value));\n}\n\nfunction isPrimitive(value: unknown): value is Primitive {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'bigint'\n );\n}\n\nfunction isPlainObject(value: unknown): value is PlainObject {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\nfunction isQueryBuilderSerializable(\n value: unknown,\n): value is QueryBuilderSerializable {\n return (\n !!value &&\n typeof value === 'object' &&\n typeof (value as QueryBuilderSerializable).build === 'function'\n );\n}\n\nfunction getQueryBuilderString(value: QueryBuilderSerializable): string {\n const build = value.build;\n if (typeof build !== 'function') {\n throw new TypeError(\n 'Query builder values must expose a build() method returning a string.',\n );\n }\n\n if (build.length > 0) {\n const stringValue = value.toString?.();\n if (stringValue && stringValue !== '[object Object]') {\n return stringValue;\n }\n\n throw new TypeError(\n 'Query builder instances passed to the SDK must expose a zero-argument build() method. Did you pass QueryBuilder instead of Query?',\n );\n }\n\n const result = build.call(value);\n if (typeof result === 'string') {\n return result;\n }\n\n if (result === undefined || result === null) {\n throw new TypeError(\n 'Query builder build() must return a string representation of the query.',\n );\n }\n\n return String(result);\n}\n","import type {\n AgentBlueprint,\n AgentBlueprintListResponse,\n ClientConfig,\n CreateAgentBlueprintRequest,\n ListQueryOptions,\n UpdateAgentBlueprintRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentBlueprintsOptions = Pick<ListQueryOptions, 'filter'>;\n\nexport type AgentBlueprintsApi = {\n list(\n agentId: string,\n options?: ListAgentBlueprintsOptions,\n ): Promise<AgentBlueprintListResponse>;\n get(agentId: string, versionId: string): Promise<AgentBlueprint>;\n create(\n agentId: string,\n versionId: string,\n payload: CreateAgentBlueprintRequest,\n ): Promise<AgentBlueprint>;\n update(\n agentId: string,\n versionId: string,\n payload: UpdateAgentBlueprintRequest,\n ): Promise<AgentBlueprint>;\n};\n\nexport function createAgentBlueprintsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n): AgentBlueprintsApi {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const list = async (\n agentId: string,\n options: ListAgentBlueprintsOptions = {},\n ): Promise<AgentBlueprintListResponse> => {\n const query = serializeListOptions({ filter: options.filter });\n const res = await doFetch(`${base}/agents/${agentId}/blueprints`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n const get = async (\n agentId: string,\n versionId: string,\n ): Promise<AgentBlueprint> => {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/blueprint`,\n {\n method: 'GET',\n },\n );\n return res.json();\n };\n\n const create = async (\n agentId: string,\n versionId: string,\n payload: CreateAgentBlueprintRequest,\n ): Promise<AgentBlueprint> => {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/blueprint`,\n {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n },\n );\n return res.json();\n };\n\n const update = async (\n agentId: string,\n versionId: string,\n payload: UpdateAgentBlueprintRequest,\n ): Promise<AgentBlueprint> => {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/blueprint`,\n {\n method: 'PATCH',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n },\n );\n return res.json();\n };\n\n return {\n list,\n get,\n create,\n update,\n } satisfies AgentBlueprintsApi;\n}\n","import type {\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n} from '../types';\n\ntype PaginationMetaLike = PaginationMeta & {\n pageSize?: number;\n totalItems?: number;\n totalPages?: number;\n hasPrevious?: boolean;\n};\n\nconst toNumber = (value: unknown): number | undefined => {\n return typeof value === 'number' ? value : undefined;\n};\n\nconst toBoolean = (value: unknown): boolean | undefined => {\n return typeof value === 'boolean' ? value : undefined;\n};\n\nfunction cloneOptions<TOptions extends ListQueryOptions>(\n options: TOptions,\n overrides?: Partial<TOptions>,\n): TOptions {\n return {\n ...(options ?? ({} as TOptions)),\n ...(overrides ?? {}),\n };\n}\n\nfunction normalizeMeta(meta?: PaginationMeta): PaginationMetaLike | undefined {\n if (!meta) {\n return undefined;\n }\n\n const metaRecord = meta as PaginationMetaLike;\n return {\n ...metaRecord,\n page: toNumber(metaRecord.page),\n limit: toNumber(metaRecord.limit) ?? toNumber(metaRecord.pageSize),\n total: toNumber(metaRecord.total) ?? toNumber(metaRecord.totalItems),\n hasNext: toBoolean(metaRecord.hasNext),\n hasPrevious: toBoolean(metaRecord.hasPrevious),\n totalPages: toNumber(metaRecord.totalPages),\n } satisfies PaginationMetaLike;\n}\n\nfunction resolveHasNext(meta: PaginationMetaLike | undefined, limit?: number) {\n if (typeof meta?.hasNext === 'boolean') {\n return meta.hasNext;\n }\n\n if (\n typeof meta?.total === 'number' &&\n typeof meta?.page === 'number' &&\n typeof limit === 'number'\n ) {\n return meta.page * limit < meta.total;\n }\n\n if (typeof meta?.totalPages === 'number' && typeof meta?.page === 'number') {\n return meta.page < meta.totalPages;\n }\n\n return false;\n}\n\nfunction resolveHasPrevious(meta: PaginationMetaLike | undefined) {\n if (typeof meta?.hasPrevious === 'boolean') {\n return meta.hasPrevious;\n }\n\n if (typeof meta?.page === 'number') {\n return meta.page > 1;\n }\n\n return false;\n}\n\nexport function attachPaginator<\n TResponse extends { meta?: PaginationMeta },\n TOptions extends ListQueryOptions,\n>(\n response: TResponse,\n fetchPage: (options: TOptions) => Promise<TResponse>,\n options: TOptions,\n): PaginatedResult<TResponse, TOptions> {\n const baseOptions = options ?? ({} as TOptions);\n const meta = normalizeMeta(response.meta);\n\n const currentPage =\n typeof meta?.page === 'number'\n ? meta.page\n : typeof baseOptions.page === 'number'\n ? baseOptions.page\n : 1;\n const currentLimit =\n typeof meta?.limit === 'number'\n ? meta.limit\n : typeof baseOptions.limit === 'number'\n ? baseOptions.limit\n : undefined;\n\n const getNextResponse = async (\n page: number,\n overrides?: Partial<TOptions>,\n ): Promise<PaginatedResult<TResponse, TOptions>> => {\n const nextOptions = cloneOptions(baseOptions, {\n ...overrides,\n page,\n });\n const nextResponse = await fetchPage(nextOptions);\n return attachPaginator(nextResponse, fetchPage, nextOptions);\n };\n\n return Object.assign(response, {\n async next() {\n if (!resolveHasNext(meta, currentLimit)) {\n return null;\n }\n\n return getNextResponse(currentPage + 1);\n },\n async prev() {\n if (!resolveHasPrevious(meta)) {\n return null;\n }\n\n return getNextResponse(Math.max(1, currentPage - 1));\n },\n async page(pageNumber: number) {\n if (typeof pageNumber !== 'number' || Number.isNaN(pageNumber)) {\n throw new TypeError('page(pageNumber) requires a numeric value.');\n }\n\n if (pageNumber < 1) {\n throw new RangeError(\n 'Page numbers must be greater than or equal to 1.',\n );\n }\n\n return getNextResponse(pageNumber);\n },\n async reload() {\n return getNextResponse(currentPage);\n },\n });\n}\n","import type {\n ClientConfig,\n CreateInstructionRequest,\n Instruction,\n InstructionCreatedResponse,\n InstructionListResponse,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n UpdateInstructionRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentInstructionsOptions = ListQueryOptions & {\n versionId?: string;\n};\n\ntype InstructionsResponseWithMeta = InstructionListResponse & {\n meta?: PaginationMeta;\n};\n\nexport function createAgentInstructionsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\n\n const fetchInstructionPage = async (\n agentId: string,\n opts: ListAgentInstructionsOptions = {},\n ): Promise<InstructionsResponseWithMeta> => {\n const { versionId, ...queryOptions } = opts ?? {};\n const query = serializeListOptions(queryOptions, { versionId });\n const res = await doFetch(`${base}/agents/${agentId}/instructions`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n agentId: string,\n opts: ListAgentInstructionsOptions = {},\n ): Promise<\n PaginatedResult<InstructionListResponse, ListAgentInstructionsOptions>\n > {\n const normalizedOptions = {\n ...(opts ?? {}),\n } as ListAgentInstructionsOptions;\n const fetchPage = (options: ListAgentInstructionsOptions) =>\n fetchInstructionPage(agentId, options);\n const response = await fetchPage(normalizedOptions);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async create(\n agentId: string,\n payload: CreateInstructionRequest,\n ): Promise<InstructionCreatedResponse> {\n const res = await doFetch(`${base}/agents/${agentId}/instructions`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async update(\n agentId: string,\n instructionId: string,\n payload: UpdateInstructionRequest,\n ): Promise<Instruction> {\n const res = await doFetch(\n `${base}/agents/${agentId}/instructions/${instructionId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async delete(agentId: string, instructionId: string): Promise<void> {\n await doFetch(`${base}/agents/${agentId}/instructions/${instructionId}`, {\n method: 'DELETE',\n });\n },\n };\n}\n","import type {\n ClientConfig,\n ConnectPhoneRequest,\n PhoneAssignmentResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentPhonesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\n\n return {\n async connect(\n agentId: string,\n payload: ConnectPhoneRequest,\n ): Promise<PhoneAssignmentResponse> {\n const res = await doFetch(`${base}/agents/${agentId}/phones`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async disconnect(agentId: string, phoneId: string): Promise<void> {\n await doFetch(`${base}/agents/${agentId}/phones/${phoneId}`, {\n method: 'DELETE',\n });\n },\n };\n}\n","import type {\n AgentScheduleException,\n AgentScheduleExceptionListResponse,\n ClientConfig,\n CreateAgentScheduleExceptionRequest,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n UpdateAgentScheduleExceptionRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentScheduleExceptionsOptions = ListQueryOptions;\n\ntype AgentScheduleExceptionsResponseWithMeta =\n AgentScheduleExceptionListResponse & {\n meta?: PaginationMeta;\n };\n\nexport function createAgentScheduleExceptionsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchExceptionsPage = async (\n agentId: string,\n options: ListAgentScheduleExceptionsOptions = {},\n ): Promise<AgentScheduleExceptionsResponseWithMeta> => {\n const query = serializeListOptions(options ?? {});\n const res = await doFetch(`${base}/agents/${agentId}/schedule/exceptions`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n agentId: string,\n options: ListAgentScheduleExceptionsOptions = {},\n ): Promise<\n PaginatedResult<\n AgentScheduleExceptionListResponse,\n ListAgentScheduleExceptionsOptions\n >\n > {\n const normalizedOptions = {\n ...(options ?? {}),\n } as ListAgentScheduleExceptionsOptions;\n const fetchPage = (pageOptions: ListAgentScheduleExceptionsOptions) =>\n fetchExceptionsPage(agentId, pageOptions);\n const response = await fetchPage(normalizedOptions);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async get(\n agentId: string,\n exceptionId: string,\n ): Promise<AgentScheduleException> {\n const res = await doFetch(\n `${base}/agents/${agentId}/schedule/exceptions/${exceptionId}`,\n {\n method: 'GET',\n },\n );\n return res.json();\n },\n async create(\n agentId: string,\n payload: CreateAgentScheduleExceptionRequest,\n ): Promise<AgentScheduleException> {\n const res = await doFetch(\n `${base}/agents/${agentId}/schedule/exceptions`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async update(\n agentId: string,\n exceptionId: string,\n payload: UpdateAgentScheduleExceptionRequest,\n ): Promise<AgentScheduleException> {\n const res = await doFetch(\n `${base}/agents/${agentId}/schedule/exceptions/${exceptionId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async delete(agentId: string, exceptionId: string): Promise<void> {\n await doFetch(\n `${base}/agents/${agentId}/schedule/exceptions/${exceptionId}`,\n {\n method: 'DELETE',\n },\n );\n },\n };\n}\n","import type {\n AgentSchedule,\n ClientConfig,\n UpdateAgentScheduleRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentScheduleApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n return {\n async get(agentId: string): Promise<AgentSchedule> {\n const res = await doFetch(`${base}/agents/${agentId}/schedule`, {\n method: 'GET',\n });\n return res.json();\n },\n async create(\n agentId: string,\n payload: UpdateAgentScheduleRequest,\n ): Promise<AgentSchedule> {\n const res = await doFetch(`${base}/agents/${agentId}/schedule`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async update(\n agentId: string,\n payload: UpdateAgentScheduleRequest,\n ): Promise<AgentSchedule> {\n const res = await doFetch(`${base}/agents/${agentId}/schedule`, {\n method: 'PUT',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type {\n BlueprintStageTrigger,\n BlueprintStageTriggerListResponse,\n ClientConfig,\n CreateBlueprintStageTriggerRequest,\n ListQueryOptions,\n PaginatedResult,\n UpdateBlueprintStageTriggerRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentStageTriggersOptions = ListQueryOptions;\n\nexport type AgentStageTriggersApi = {\n list(\n agentId: string,\n blueprintId: string,\n stageId: string,\n options?: ListAgentStageTriggersOptions,\n ): Promise<\n PaginatedResult<\n BlueprintStageTriggerListResponse,\n ListAgentStageTriggersOptions\n >\n >;\n get(\n agentId: string,\n blueprintId: string,\n stageId: string,\n triggerId: string,\n ): Promise<BlueprintStageTrigger>;\n create(\n agentId: string,\n blueprintId: string,\n stageId: string,\n payload: CreateBlueprintStageTriggerRequest,\n ): Promise<BlueprintStageTrigger>;\n update(\n agentId: string,\n blueprintId: string,\n stageId: string,\n triggerId: string,\n payload: UpdateBlueprintStageTriggerRequest,\n ): Promise<BlueprintStageTrigger>;\n delete(\n agentId: string,\n blueprintId: string,\n stageId: string,\n triggerId: string,\n ): Promise<void>;\n};\n\nexport function createAgentStageTriggersApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n): AgentStageTriggersApi {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchTriggerPage = async (\n agentId: string,\n blueprintId: string,\n stageId: string,\n options: ListAgentStageTriggersOptions = {},\n ): Promise<BlueprintStageTriggerListResponse> => {\n const normalizedOptions: ListAgentStageTriggersOptions = {\n page: options.page,\n limit: options.limit,\n sort: options.sort,\n fields: options.fields,\n include: options.include,\n filter: options.filter,\n search: options.search,\n or: options.or,\n };\n const query = serializeListOptions(normalizedOptions);\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers`,\n {\n method: 'GET',\n query,\n },\n );\n return res.json();\n };\n\n return {\n async list(agentId, blueprintId, stageId, options = {}) {\n const normalized = {\n ...(options ?? {}),\n } as ListAgentStageTriggersOptions;\n const fetchPage = (opts: ListAgentStageTriggersOptions) =>\n fetchTriggerPage(agentId, blueprintId, stageId, opts);\n const response = await fetchPage(normalized);\n return attachPaginator(response, fetchPage, normalized);\n },\n async get(agentId, blueprintId, stageId, triggerId) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers/${triggerId}`,\n {\n method: 'GET',\n },\n );\n return res.json();\n },\n async create(agentId, blueprintId, stageId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async update(agentId, blueprintId, stageId, triggerId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers/${triggerId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async delete(agentId, blueprintId, stageId, triggerId) {\n await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers/${triggerId}`,\n {\n method: 'DELETE',\n },\n );\n },\n } satisfies AgentStageTriggersApi;\n}\n","import type {\n BlueprintStage,\n BlueprintStageListResponse,\n BlueprintStageReorderRequest,\n ClientConfig,\n CreateBlueprintStageRequest,\n ListQueryOptions,\n PaginatedResult,\n UpdateBlueprintStageRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentStagesOptions = ListQueryOptions;\n\nexport type AgentStagesApi = {\n list(\n agentId: string,\n blueprintId: string,\n options?: ListAgentStagesOptions,\n ): Promise<\n PaginatedResult<BlueprintStageListResponse, ListAgentStagesOptions>\n >;\n get(\n agentId: string,\n blueprintId: string,\n stageId: string,\n ): Promise<BlueprintStage>;\n create(\n agentId: string,\n blueprintId: string,\n payload: CreateBlueprintStageRequest,\n ): Promise<BlueprintStage>;\n update(\n agentId: string,\n blueprintId: string,\n stageId: string,\n payload: UpdateBlueprintStageRequest,\n ): Promise<BlueprintStage>;\n delete(agentId: string, blueprintId: string, stageId: string): Promise<void>;\n reorder(\n agentId: string,\n blueprintId: string,\n payload: BlueprintStageReorderRequest,\n ): Promise<BlueprintStageListResponse>;\n};\n\nexport function createAgentStagesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n): AgentStagesApi {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchStagePage = async (\n agentId: string,\n blueprintId: string,\n options: ListAgentStagesOptions = {},\n ): Promise<BlueprintStageListResponse> => {\n const normalizedOptions: ListAgentStagesOptions = {\n page: options.page,\n limit: options.limit,\n sort: options.sort,\n filter: options.filter,\n search: options.search,\n };\n const query = serializeListOptions(normalizedOptions);\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages`,\n {\n method: 'GET',\n query,\n },\n );\n return res.json();\n };\n\n return {\n async list(agentId, blueprintId, options = {}) {\n const normalized = { ...(options ?? {}) } as ListAgentStagesOptions;\n const fetchPage = (opts: ListAgentStagesOptions) =>\n fetchStagePage(agentId, blueprintId, opts);\n const response = await fetchPage(normalized);\n return attachPaginator(response, fetchPage, normalized);\n },\n async get(agentId, blueprintId, stageId) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}`,\n {\n method: 'GET',\n },\n );\n return res.json();\n },\n async create(agentId, blueprintId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async update(agentId, blueprintId, stageId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async delete(agentId, blueprintId, stageId) {\n await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}`,\n {\n method: 'DELETE',\n },\n );\n },\n async reorder(agentId, blueprintId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages:reorder`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n } satisfies AgentStagesApi;\n}\n","import type {\n AgentTagRequest,\n AgentTagsResponse,\n ClientConfig,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentTagsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n return {\n async add(\n agentId: string,\n payload: AgentTagRequest,\n ): Promise<AgentTagsResponse> {\n const res = await doFetch(`${base}/agents/${agentId}/tags`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async remove(agentId: string, tagId: string): Promise<void> {\n await doFetch(`${base}/agents/${agentId}/tags/${tagId}`, {\n method: 'DELETE',\n });\n },\n } as const;\n}\n","import type {\n AgentVersionDetail,\n AgentVersionListResponse,\n ClientConfig,\n CreateAgentVersionRequest,\n CreateInstructionRequest,\n Instruction,\n InstructionCreatedResponse,\n InstructionListResponse,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n PublishAgentVersionRequest,\n UpdateAgentVersionNotesRequest,\n UpdateInstructionRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentVersionsOptions = Pick<\n ListQueryOptions,\n 'page' | 'limit' | 'filter'\n>;\n\nexport type ListAgentVersionInstructionsOptions = ListQueryOptions;\n\ntype AgentVersionListResponseWithMeta = AgentVersionListResponse & {\n meta?: PaginationMeta;\n};\n\nexport function createAgentVersionsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchVersionsPage = async (\n agentId: string,\n opts: ListAgentVersionsOptions = {},\n ): Promise<AgentVersionListResponseWithMeta> => {\n const queryOptions: ListQueryOptions = {\n page: opts.page,\n limit: opts.limit,\n filter: opts.filter,\n };\n const query = serializeListOptions(queryOptions);\n const res = await doFetch(`${base}/agents/${agentId}/versions`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n agentId: string,\n opts: ListAgentVersionsOptions = {},\n ): Promise<\n PaginatedResult<AgentVersionListResponse, ListAgentVersionsOptions>\n > {\n const normalizedOptions = { ...(opts ?? {}) } as ListAgentVersionsOptions;\n const fetchPage = (options: ListAgentVersionsOptions) =>\n fetchVersionsPage(agentId, options);\n const response = await fetchPage(normalizedOptions);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async get(agentId: string, versionId: string): Promise<AgentVersionDetail> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}`,\n {\n method: 'GET',\n },\n );\n return res.json();\n },\n async create(\n agentId: string,\n payload?: CreateAgentVersionRequest,\n ): Promise<AgentVersionDetail> {\n const res = await doFetch(`${base}/agents/${agentId}/versions`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload ?? {}),\n });\n return res.json();\n },\n async clone(\n agentId: string,\n versionId: string,\n ): Promise<AgentVersionDetail> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/clone`,\n {\n method: 'POST',\n },\n );\n return res.json();\n },\n async publish(\n agentId: string,\n versionId: string,\n payload?: PublishAgentVersionRequest,\n ): Promise<AgentVersionDetail> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/publish`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload ?? {}),\n },\n );\n return res.json();\n },\n async updateNotes(\n agentId: string,\n versionId: string,\n payload: UpdateAgentVersionNotesRequest,\n ): Promise<AgentVersionDetail> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/notes`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async listInstructions(\n agentId: string,\n versionId: string,\n opts: ListAgentVersionInstructionsOptions = {},\n ): Promise<InstructionListResponse> {\n const query = serializeListOptions(opts);\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/instructions`,\n {\n method: 'GET',\n query,\n },\n );\n return res.json();\n },\n async createInstruction(\n agentId: string,\n versionId: string,\n payload: CreateInstructionRequest,\n ): Promise<InstructionCreatedResponse> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/instructions`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async updateInstruction(\n agentId: string,\n versionId: string,\n instructionId: string,\n payload: UpdateInstructionRequest,\n ): Promise<Instruction> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/instructions/${instructionId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async deleteInstruction(\n agentId: string,\n versionId: string,\n instructionId: string,\n ): Promise<void> {\n await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/instructions/${instructionId}`,\n {\n method: 'DELETE',\n },\n );\n },\n };\n}\n","import type {\n AgentDetail,\n AgentSummary,\n AgentTagsResponse,\n BlueprintStage,\n BlueprintStageReorderRequest,\n BlueprintStageTrigger,\n ConnectPhoneRequest,\n CreateAgentBlueprintRequest,\n CreateAgentScheduleExceptionRequest,\n CreateAgentVersionRequest,\n CreateBlueprintStageRequest,\n CreateBlueprintStageTriggerRequest,\n CreateInstructionRequest,\n PublishAgentVersionRequest,\n UpdateAgentBlueprintRequest,\n UpdateAgentRequest,\n UpdateAgentScheduleExceptionRequest,\n UpdateAgentScheduleRequest,\n UpdateAgentVersionNotesRequest,\n UpdateBlueprintStageRequest,\n UpdateBlueprintStageTriggerRequest,\n UpdateInstructionRequest,\n} from '../types';\nimport type {\n createAgentBlueprintsApi,\n ListAgentBlueprintsOptions,\n} from '../api/agent-blueprints';\nimport type {\n createAgentInstructionsApi,\n ListAgentInstructionsOptions,\n} from '../api/agent-instructions';\nimport type { createAgentPhonesApi } from '../api/agent-phones';\nimport type { createAgentScheduleApi } from '../api/agent-schedule';\nimport type {\n createAgentScheduleExceptionsApi,\n ListAgentScheduleExceptionsOptions,\n} from '../api/agent-schedule-exceptions';\nimport type {\n createAgentStagesApi,\n ListAgentStagesOptions,\n} from '../api/agent-stages';\nimport type { createAgentTagsApi } from '../api/agent-tags';\nimport type {\n createAgentStageTriggersApi,\n ListAgentStageTriggersOptions,\n} from '../api/agent-stage-triggers';\nimport type {\n createAgentVersionsApi,\n ListAgentVersionInstructionsOptions,\n ListAgentVersionsOptions,\n} from '../api/agent-versions';\n\ntype AgentInstructionsApi = ReturnType<typeof createAgentInstructionsApi>;\ntype AgentTagsApi = ReturnType<typeof createAgentTagsApi>;\ntype AgentPhonesApi = ReturnType<typeof createAgentPhonesApi>;\ntype AgentScheduleApi = ReturnType<typeof createAgentScheduleApi>;\ntype AgentScheduleExceptionsApi = ReturnType<\n typeof createAgentScheduleExceptionsApi\n>;\ntype AgentVersionsApi = ReturnType<typeof createAgentVersionsApi>;\ntype AgentBlueprintsApi = ReturnType<typeof createAgentBlueprintsApi>;\ntype AgentStagesApi = ReturnType<typeof createAgentStagesApi>;\ntype AgentStageTriggersApi = ReturnType<typeof createAgentStageTriggersApi>;\n\ntype AgentInstructionsHelper = ReturnType<typeof bindAgentInstructions>;\ntype AgentTagsHelper = ReturnType<typeof bindAgentTags>;\ntype AgentPhonesHelper = ReturnType<typeof bindAgentPhones>;\ntype AgentScheduleHelper = ReturnType<typeof bindAgentSchedule>;\ntype AgentVersionsHelper = ReturnType<typeof bindAgentVersions>;\ntype AgentBlueprintsHelper = ReturnType<typeof bindAgentBlueprints>;\ntype AgentStageTriggersHelper = ReturnType<typeof bindAgentStageTriggers>;\ntype AgentStagesHelper = ReturnType<typeof bindAgentStages>;\n\ntype AgentBase = AgentSummary & Partial<Omit<AgentDetail, keyof AgentSummary>>;\n\nexport interface AgentEntity extends AgentBase {\n agentId: string;\n instructions: AgentInstructionsHelper;\n tagAssignments: AgentTagsHelper;\n phones: AgentPhonesHelper;\n schedule: AgentScheduleHelper;\n versions: AgentVersionsHelper;\n blueprints: AgentBlueprintsHelper;\n stages: AgentStagesHelper;\n save(patch: UpdateAgentRequest): Promise<AgentEntity>;\n delete(): Promise<void>;\n refresh(): Promise<AgentEntity>;\n}\n\nexport type AgentEntityFactoryOptions = {\n instructionsApi: AgentInstructionsApi;\n tagsApi: AgentTagsApi;\n phonesApi: AgentPhonesApi;\n scheduleApi: AgentScheduleApi;\n scheduleExceptionsApi: AgentScheduleExceptionsApi;\n versionsApi: AgentVersionsApi;\n blueprintsApi: AgentBlueprintsApi;\n stagesApi: AgentStagesApi;\n stageTriggersApi: AgentStageTriggersApi;\n reload(agentId: string): Promise<AgentEntity>;\n updateAgent(\n agentId: string,\n payload: UpdateAgentRequest,\n ): Promise<AgentEntity>;\n deleteAgent(agentId: string): Promise<void>;\n};\n\nexport const bindAgentInstructions = (\n api: AgentInstructionsApi,\n agentId: string,\n) => ({\n list(opts?: ListAgentInstructionsOptions) {\n return api.list(agentId, opts);\n },\n create(payload: CreateInstructionRequest) {\n return api.create(agentId, payload);\n },\n update(instructionId: string, payload: UpdateInstructionRequest) {\n return api.update(agentId, instructionId, payload);\n },\n delete(instructionId: string) {\n return api.delete(agentId, instructionId);\n },\n});\n\nexport const bindAgentStageTriggers = (\n api: AgentStageTriggersApi,\n agentId: string,\n blueprintId: string,\n stageId: string,\n) => ({\n list(opts?: ListAgentStageTriggersOptions) {\n return api.list(agentId, blueprintId, stageId, opts);\n },\n get(triggerId: string): Promise<BlueprintStageTrigger> {\n return api.get(agentId, blueprintId, stageId, triggerId);\n },\n create(payload: CreateBlueprintStageTriggerRequest) {\n return api.create(agentId, blueprintId, stageId, payload);\n },\n update(triggerId: string, payload: UpdateBlueprintStageTriggerRequest) {\n return api.update(agentId, blueprintId, stageId, triggerId, payload);\n },\n delete(triggerId: string) {\n return api.delete(agentId, blueprintId, stageId, triggerId);\n },\n});\n\nexport const bindAgentStages = (\n stagesApi: AgentStagesApi,\n triggersApi: AgentStageTriggersApi,\n agentId: string,\n) => {\n const forBlueprint = (blueprintId: string) => ({\n list(opts?: ListAgentStagesOptions) {\n return stagesApi.list(agentId, blueprintId, opts);\n },\n get(stageId: string): Promise<BlueprintStage> {\n return stagesApi.get(agentId, blueprintId, stageId);\n },\n create(payload: CreateBlueprintStageRequest) {\n return stagesApi.create(agentId, blueprintId, payload);\n },\n update(stageId: string, payload: UpdateBlueprintStageRequest) {\n return stagesApi.update(agentId, blueprintId, stageId, payload);\n },\n delete(stageId: string) {\n return stagesApi.delete(agentId, blueprintId, stageId);\n },\n reorder(payload: BlueprintStageReorderRequest) {\n return stagesApi.reorder(agentId, blueprintId, payload);\n },\n triggers(stageId: string): AgentStageTriggersHelper {\n return bindAgentStageTriggers(triggersApi, agentId, blueprintId, stageId);\n },\n });\n\n return Object.assign(forBlueprint, {\n list(blueprintId: string, opts?: ListAgentStagesOptions) {\n return stagesApi.list(agentId, blueprintId, opts);\n },\n get(blueprintId: string, stageId: string): Promise<BlueprintStage> {\n return stagesApi.get(agentId, blueprintId, stageId);\n },\n create(blueprintId: string, payload: CreateBlueprintStageRequest) {\n return stagesApi.create(agentId, blueprintId, payload);\n },\n update(\n blueprintId: string,\n stageId: string,\n payload: UpdateBlueprintStageRequest,\n ) {\n return stagesApi.update(agentId, blueprintId, stageId, payload);\n },\n delete(blueprintId: string, stageId: string) {\n return stagesApi.delete(agentId, blueprintId, stageId);\n },\n reorder(blueprintId: string, payload: BlueprintStageReorderRequest) {\n return stagesApi.reorder(agentId, blueprintId, payload);\n },\n triggers(blueprintId: string, stageId: string): AgentStageTriggersHelper {\n return bindAgentStageTriggers(triggersApi, agentId, blueprintId, stageId);\n },\n });\n};\n\nexport const bindAgentTags = (api: AgentTagsApi, agentId: string) => ({\n add(tagId: string): Promise<AgentTagsResponse> {\n return api.add(agentId, { tagId });\n },\n remove(tagId: string) {\n return api.remove(agentId, tagId);\n },\n});\n\nexport const bindAgentPhones = (api: AgentPhonesApi, agentId: string) => ({\n connect(payload: ConnectPhoneRequest) {\n return api.connect(agentId, payload);\n },\n disconnect(phoneId: string) {\n return api.disconnect(agentId, phoneId);\n },\n});\n\nexport const bindAgentScheduleExceptions = (\n api: AgentScheduleExceptionsApi,\n agentId: string,\n) => ({\n list(opts?: ListAgentScheduleExceptionsOptions) {\n return api.list(agentId, opts);\n },\n get(exceptionId: string) {\n return api.get(agentId, exceptionId);\n },\n create(payload: CreateAgentScheduleExceptionRequest) {\n return api.create(agentId, payload);\n },\n update(exceptionId: string, payload: UpdateAgentScheduleExceptionRequest) {\n return api.update(agentId, exceptionId, payload);\n },\n delete(exceptionId: string) {\n return api.delete(agentId, exceptionId);\n },\n});\n\nexport const bindAgentSchedule = (\n scheduleApi: AgentScheduleApi,\n exceptionsApi: AgentScheduleExceptionsApi,\n agentId: string,\n) => ({\n get() {\n return scheduleApi.get(agentId);\n },\n create(payload: UpdateAgentScheduleRequest) {\n return scheduleApi.create(agentId, payload);\n },\n update(payload: UpdateAgentScheduleRequest) {\n return scheduleApi.update(agentId, payload);\n },\n exceptions: bindAgentScheduleExceptions(exceptionsApi, agentId),\n});\n\nexport const bindAgentVersions = (api: AgentVersionsApi, agentId: string) => ({\n list(opts?: ListAgentVersionsOptions) {\n return api.list(agentId, opts);\n },\n get(versionId: string) {\n return api.get(agentId, versionId);\n },\n create(payload?: CreateAgentVersionRequest) {\n return api.create(agentId, payload);\n },\n clone(versionId: string) {\n return api.clone(agentId, versionId);\n },\n publish(versionId: string, payload?: PublishAgentVersionRequest) {\n return api.publish(agentId, versionId, payload);\n },\n updateNotes(versionId: string, payload: UpdateAgentVersionNotesRequest) {\n return api.updateNotes(agentId, versionId, payload);\n },\n instructions(versionId: string) {\n return {\n list(opts?: ListAgentVersionInstructionsOptions) {\n return api.listInstructions(agentId, versionId, opts);\n },\n create(payload: CreateInstructionRequest) {\n return api.createInstruction(agentId, versionId, payload);\n },\n update(instructionId: string, payload: UpdateInstructionRequest) {\n return api.updateInstruction(\n agentId,\n versionId,\n instructionId,\n payload,\n );\n },\n delete(instructionId: string) {\n return api.deleteInstruction(agentId, versionId, instructionId);\n },\n } as const;\n },\n});\n\nexport const bindAgentBlueprints = (\n api: AgentBlueprintsApi,\n agentId: string,\n) => ({\n list(opts?: ListAgentBlueprintsOptions) {\n return api.list(agentId, opts);\n },\n version(versionId: string) {\n return {\n get() {\n return api.get(agentId, versionId);\n },\n create(payload: CreateAgentBlueprintRequest) {\n return api.create(agentId, versionId, payload);\n },\n update(payload: UpdateAgentBlueprintRequest) {\n return api.update(agentId, versionId, payload);\n },\n } as const;\n },\n});\n\ntype AgentSnapshot = AgentDetail | AgentSummary;\n\nexport const createAgentEntity = (\n dto: AgentSnapshot,\n options: AgentEntityFactoryOptions,\n): AgentEntity => {\n const {\n instructionsApi,\n tagsApi,\n phonesApi,\n scheduleApi,\n scheduleExceptionsApi,\n versionsApi,\n blueprintsApi,\n stagesApi,\n stageTriggersApi,\n reload,\n updateAgent,\n deleteAgent,\n } = options;\n\n const entity: AgentEntity = {\n ...(dto as AgentBase),\n instructions: bindAgentInstructions(instructionsApi, dto.agentId),\n tagAssignments: bindAgentTags(tagsApi, dto.agentId),\n phones: bindAgentPhones(phonesApi, dto.agentId),\n schedule: bindAgentSchedule(\n scheduleApi,\n scheduleExceptionsApi,\n dto.agentId,\n ),\n versions: bindAgentVersions(versionsApi, dto.agentId),\n blueprints: bindAgentBlueprints(blueprintsApi, dto.agentId),\n stages: bindAgentStages(stagesApi, stageTriggersApi, dto.agentId),\n async save(patch: UpdateAgentRequest) {\n return updateAgent(dto.agentId, patch);\n },\n async delete() {\n await deleteAgent(dto.agentId);\n },\n async refresh() {\n return reload(dto.agentId);\n },\n };\n\n return Object.freeze(entity);\n};\n","import type {\n AgentDetail,\n AgentListResponse,\n AgentSummary,\n ClientConfig,\n CreateAgentRequest,\n ForkAgentFromTemplateRequest,\n ListQueryOptions,\n PaginatedResult,\n UpdateAgentRequest,\n} from '../types';\nimport type { AgentEntity } from '../entities/agent';\nimport type { createAgentBlueprintsApi } from './agent-blueprints';\nimport type { createAgentInstructionsApi } from './agent-instructions';\nimport type { createAgentPhonesApi } from './agent-phones';\nimport type { createAgentScheduleApi } from './agent-schedule';\nimport type { createAgentScheduleExceptionsApi } from './agent-schedule-exceptions';\nimport type { createAgentStagesApi } from './agent-stages';\nimport type { createAgentStageTriggersApi } from './agent-stage-triggers';\nimport type { createAgentTagsApi } from './agent-tags';\nimport type { createAgentVersionsApi } from './agent-versions';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createAgentEntity } from '../entities/agent';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\ntype AgentEntityDependencies = {\n instructionsApi: ReturnType<typeof createAgentInstructionsApi>;\n tagsApi: ReturnType<typeof createAgentTagsApi>;\n phonesApi: ReturnType<typeof createAgentPhonesApi>;\n scheduleApi: ReturnType<typeof createAgentScheduleApi>;\n scheduleExceptionsApi: ReturnType<typeof createAgentScheduleExceptionsApi>;\n versionsApi: ReturnType<typeof createAgentVersionsApi>;\n blueprintsApi: ReturnType<typeof createAgentBlueprintsApi>;\n stagesApi: ReturnType<typeof createAgentStagesApi>;\n stageTriggersApi: ReturnType<typeof createAgentStageTriggersApi>;\n};\n\nexport type ListAgentsOptions = Pick<\n ListQueryOptions,\n 'page' | 'limit' | 'filter'\n>;\n\nexport type AgentsApi = {\n list(\n options?: ListAgentsOptions,\n ): Promise<PaginatedResult<AgentListResponse, ListAgentsOptions>>;\n get(agentId: string): Promise<AgentDetail>;\n create(payload: CreateAgentRequest): Promise<AgentDetail>;\n forkFromTemplate(payload: ForkAgentFromTemplateRequest): Promise<AgentDetail>;\n update(agentId: string, payload: UpdateAgentRequest): Promise<AgentDetail>;\n delete(agent: string | AgentEntity): Promise<void>;\n};\n\ntype AgentListResponseWithEntities = {\n data: AgentEntity[];\n meta: AgentListResponse['meta'];\n};\n\nexport type AgentsApiWithEntities = Omit<\n AgentsApi,\n 'get' | 'create' | 'update' | 'list' | 'forkFromTemplate'\n> & {\n list(\n options?: ListAgentsOptions,\n ): Promise<PaginatedResult<AgentListResponseWithEntities, ListAgentsOptions>>;\n get(agentId: string): Promise<AgentEntity>;\n create(payload: CreateAgentRequest): Promise<AgentEntity>;\n forkFromTemplate(payload: ForkAgentFromTemplateRequest): Promise<AgentEntity>;\n update(agentId: string, payload: UpdateAgentRequest): Promise<AgentEntity>;\n};\n\nexport function createAgentsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n relatedApis?: AgentEntityDependencies,\n): AgentsApi | AgentsApiWithEntities {\n const { base, doFetch } = createHttp(cfg);\n\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchAgentsPage = async (\n options: ListAgentsOptions = {},\n ): Promise<AgentListResponse> => {\n const sanitizedOptions: ListAgentsOptions = {\n page: options.page,\n limit: options.limit,\n filter: options.filter,\n };\n const query = serializeListOptions(sanitizedOptions);\n const res = await doFetch(`${base}/agents`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n const listAgents = async (\n options: ListAgentsOptions = {},\n ): Promise<PaginatedResult<AgentListResponse, ListAgentsOptions>> => {\n const normalizedOptions = { ...(options ?? {}) } as ListAgentsOptions;\n const response = await fetchAgentsPage(normalizedOptions);\n return attachPaginator(response, fetchAgentsPage, normalizedOptions);\n };\n\n const getAgentDetail = async (agentId: string): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/agents/${agentId}`, {\n method: 'GET',\n });\n return res.json();\n };\n\n const createAgent = async (\n payload: CreateAgentRequest,\n ): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/agents`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n });\n return res.json();\n };\n\n const forkAgentFromTemplate = async (\n payload: ForkAgentFromTemplateRequest,\n ): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/agents/from-template`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n });\n return res.json();\n };\n\n const updateAgent = async (\n agentId: string,\n payload: UpdateAgentRequest,\n ): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/agents/${agentId}`, {\n method: 'PATCH',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n });\n return res.json();\n };\n\n const resolveAgentId = (agent: string | AgentEntity): string => {\n return typeof agent === 'string' ? agent : agent.agentId;\n };\n\n const deleteAgent = async (agent: string | AgentEntity): Promise<void> => {\n const agentId = resolveAgentId(agent);\n await doFetch(`${base}/agents/${agentId}`, {\n method: 'DELETE',\n });\n };\n\n const baseApi: AgentsApi = {\n list: listAgents,\n get: getAgentDetail,\n create: createAgent,\n forkFromTemplate: forkAgentFromTemplate,\n update: updateAgent,\n delete: deleteAgent,\n };\n\n if (!relatedApis) {\n return baseApi;\n }\n\n const wrapAgent = (detail: AgentDetail | AgentSummary): AgentEntity =>\n createAgentEntity(detail, {\n instructionsApi: relatedApis.instructionsApi,\n tagsApi: relatedApis.tagsApi,\n phonesApi: relatedApis.phonesApi,\n scheduleApi: relatedApis.scheduleApi,\n scheduleExceptionsApi: relatedApis.scheduleExceptionsApi,\n versionsApi: relatedApis.versionsApi,\n blueprintsApi: relatedApis.blueprintsApi,\n stagesApi: relatedApis.stagesApi,\n stageTriggersApi: relatedApis.stageTriggersApi,\n reload: async (agentId: string) => {\n const latest = await getAgentDetail(agentId);\n return wrapAgent(latest);\n },\n updateAgent: async (agentId: string, payload: UpdateAgentRequest) => {\n const updated = await updateAgent(agentId, payload);\n return wrapAgent(updated);\n },\n deleteAgent: async (agentId: string) => {\n await deleteAgent(agentId);\n },\n });\n\n return {\n ...baseApi,\n async list(options: ListAgentsOptions = {}) {\n const normalizedOptions = { ...(options ?? {}) } as ListAgentsOptions;\n const applyWrap = async (\n opts: ListAgentsOptions,\n ): Promise<AgentListResponseWithEntities> => {\n const result = await fetchAgentsPage(opts);\n const items = Array.isArray(result.data) ? result.data : [];\n return {\n ...result,\n data: items.map((summary) => wrapAgent(summary)),\n } satisfies AgentListResponseWithEntities;\n };\n\n const initial = await applyWrap(normalizedOptions);\n return attachPaginator(initial, applyWrap, normalizedOptions);\n },\n async get(agentId: string) {\n const detail = await getAgentDetail(agentId);\n return wrapAgent(detail);\n },\n async create(payload: CreateAgentRequest) {\n const detail = await createAgent(payload);\n return wrapAgent(detail);\n },\n async forkFromTemplate(payload: ForkAgentFromTemplateRequest) {\n const detail = await forkAgentFromTemplate(payload);\n return wrapAgent(detail);\n },\n async update(agentId: string, payload: UpdateAgentRequest) {\n const detail = await updateAgent(agentId, payload);\n return wrapAgent(detail);\n },\n } satisfies AgentsApiWithEntities;\n}\n","import type {\n ApiKeyListResponse,\n CreateApiKeyRequest,\n CreateApiKeyResponse,\n ClientConfig,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport type ApiKeysApi = {\n list(): Promise<ApiKeyListResponse>;\n create(payload: CreateApiKeyRequest): Promise<CreateApiKeyResponse>;\n revoke(apiKeyId: string): Promise<void>;\n show(apiKeyId: string): Promise<CreateApiKeyResponse>;\n};\n\nexport function createApiKeysApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n): ApiKeysApi {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n return {\n async list() {\n const res = await doFetch(`${base}/api-keys`, { method: 'GET' });\n return res.json() as Promise<ApiKeyListResponse>;\n },\n async create(payload) {\n const res = await doFetch(`${base}/api-keys`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json() as Promise<CreateApiKeyResponse>;\n },\n async revoke(apiKeyId) {\n await doFetch(`${base}/api-keys/${apiKeyId}`, {\n method: 'DELETE',\n });\n },\n async show(apiKeyId) {\n const res = await doFetch(`${base}/api-keys/${apiKeyId}/show`, {\n method: 'GET',\n });\n return res.json() as Promise<CreateApiKeyResponse>;\n },\n };\n}\n","import type {\n CatalogTemplateDetail,\n CatalogTemplateSummary,\n CatalogTemplateVisibility,\n ClientConfig,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport type ListCatalogTemplatesOptions = {\n visibility?: CatalogTemplateVisibility;\n tags?: string[];\n};\n\nexport function createCatalogTemplatesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n\n const buildListQuery = (options: ListCatalogTemplatesOptions) => {\n const query: Record<string, string | string[] | undefined> = {};\n if (options.visibility) {\n query.visibility = options.visibility;\n }\n if (options.tags && options.tags.length > 0) {\n query.tags = options.tags;\n }\n return query;\n };\n\n return {\n async list(\n options: ListCatalogTemplatesOptions = {},\n ): Promise<CatalogTemplateSummary[]> {\n const res = await doFetch(`${base}/catalogs/templates`, {\n method: 'GET',\n query: buildListQuery(options),\n });\n return res.json();\n },\n async get(templateId: string): Promise<CatalogTemplateDetail> {\n const res = await doFetch(`${base}/catalogs/templates/${templateId}`, {\n method: 'GET',\n });\n return res.json();\n },\n };\n}\n","import type {\n CatalogItemCreateRequest,\n CatalogItemDetail,\n CatalogItemListResponse,\n ClientConfig,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListCatalogItemsOptions = ListQueryOptions;\n\ntype CatalogItemListWithMeta = CatalogItemListResponse & {\n meta?: PaginationMeta;\n};\n\nexport function createCatalogsApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchCatalogItemsPage = async (\n options: ListCatalogItemsOptions = {},\n ): Promise<CatalogItemListWithMeta> => {\n const query = serializeListOptions(options ?? {});\n const res = await doFetch(`${base}/catalogs/items`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n options: ListCatalogItemsOptions = {},\n ): Promise<\n PaginatedResult<CatalogItemListResponse, ListCatalogItemsOptions>\n > {\n const normalizedOptions = {\n ...(options ?? {}),\n } as ListCatalogItemsOptions;\n const response = await fetchCatalogItemsPage(normalizedOptions);\n return attachPaginator(\n response,\n fetchCatalogItemsPage,\n normalizedOptions,\n );\n },\n async get(itemId: string): Promise<CatalogItemDetail> {\n const res = await doFetch(`${base}/catalogs/items/${itemId}`, {\n method: 'GET',\n });\n return res.json();\n },\n async create(\n payload: CatalogItemCreateRequest,\n ): Promise<CatalogItemDetail> {\n const res = await doFetch(`${base}/catalogs/items`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async remove(itemId: string): Promise<void> {\n await doFetch(`${base}/catalogs/items/${itemId}`, {\n method: 'DELETE',\n });\n },\n };\n}\n","import type {\n ClientConfig,\n ExecuteToolRequest,\n ExecuteToolResponse,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n ToolConnectionRequest,\n ToolConnectionResponse,\n ToolListResponse,\n ToolResourceListResponse,\n ToolResourceReloadResponse,\n ToolResourceUploadRequest,\n ToolResourceUploadResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nconst IDEMPOTENCY_HEADER = 'Idempotency-Key';\n\ntype IdempotentRequestOptions = {\n idempotencyKey?: string;\n};\n\ntype CryptoLike = {\n randomUUID?: () => string;\n getRandomValues?: (array: Uint8Array) => Uint8Array | void;\n};\n\nconst generateIdempotencyKey = (explicit?: string): string => {\n if (explicit && explicit.length > 0) {\n return explicit;\n }\n\n const globalRef = globalThis as unknown as {\n crypto?: CryptoLike;\n };\n\n const cryptoRef = globalRef?.crypto;\n if (cryptoRef?.randomUUID) {\n return cryptoRef.randomUUID();\n }\n\n if (cryptoRef?.getRandomValues) {\n const buffer = new Uint8Array(16);\n cryptoRef.getRandomValues(buffer);\n return Array.from(buffer, (byte) =>\n byte.toString(16).padStart(2, '0'),\n ).join('');\n }\n\n const randomChunk = () => Math.random().toString(36).slice(2, 10);\n return `idemp_${Date.now().toString(36)}_${randomChunk()}${randomChunk()}`;\n};\n\nexport type ListToolsOptions = ListQueryOptions & {\n agentType?: 'chat' | 'voice';\n};\n\nexport type ListToolResourcesOptions = Pick<\n ListQueryOptions,\n 'page' | 'limit'\n> & {\n type?: 'document' | 'media' | 'file';\n};\n\ntype UploadToolResourcePayload =\n | FormData\n | (Omit<ToolResourceUploadRequest, 'file'> & {\n file: unknown;\n });\n\ntype ToolsCatalogWithMeta = ToolListResponse & {\n meta?: PaginationMeta;\n};\n\ntype ToolResourceListWithMeta = ToolResourceListResponse & {\n meta?: PaginationMeta;\n};\n\nconst isFormData = (value: unknown): value is FormData => {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n};\n\nconst toFormData = (payload: UploadToolResourcePayload): FormData => {\n if (isFormData(payload)) {\n return payload;\n }\n\n if (typeof FormData === 'undefined') {\n throw new TypeError(\n 'FormData is not available in this environment. Pass a FormData instance instead.',\n );\n }\n\n const formData = new FormData();\n formData.append('file', payload.file as any);\n\n if (payload.type) {\n formData.append('type', payload.type);\n }\n\n if (payload.title) {\n formData.append('title', payload.title);\n }\n\n if (payload.metadata) {\n formData.append('metadata', JSON.stringify(payload.metadata));\n }\n\n return formData;\n};\n\nexport function createToolsApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\n\n const fetchToolsPage = async (\n options: ListToolsOptions = {},\n ): Promise<ToolsCatalogWithMeta> => {\n const { agentType, ...queryOptions } = options ?? {};\n const query = serializeListOptions(queryOptions, { agentType });\n const res = await doFetch(`${base}/tools`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n const fetchToolResourcesPage = async (\n toolId: string,\n options: ListToolResourcesOptions = {},\n ): Promise<ToolResourceListWithMeta> => {\n const { type, ...queryOptions } = options ?? {};\n const query = serializeListOptions(queryOptions, { type });\n const res = await doFetch(`${base}/tools/${toolId}/resources`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n options: ListToolsOptions = {},\n ): Promise<PaginatedResult<ToolListResponse, ListToolsOptions>> {\n const normalizedOptions = { ...(options ?? {}) } as ListToolsOptions;\n const response = await fetchToolsPage(normalizedOptions);\n return attachPaginator(response, fetchToolsPage, normalizedOptions);\n },\n async listResources(\n toolId: string,\n options: ListToolResourcesOptions = {},\n ): Promise<\n PaginatedResult<ToolResourceListResponse, ListToolResourcesOptions>\n > {\n const normalizedOptions = {\n ...(options ?? {}),\n } as ListToolResourcesOptions;\n const fetchPage = (opts: ListToolResourcesOptions) =>\n fetchToolResourcesPage(toolId, opts);\n const response = await fetchPage(normalizedOptions);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async uploadResource(\n toolId: string,\n payload: UploadToolResourcePayload,\n ): Promise<ToolResourceUploadResponse> {\n const formData = toFormData(payload);\n const res = await doFetch(`${base}/tools/${toolId}/resources`, {\n method: 'POST',\n body: formData,\n });\n return res.json();\n },\n async deleteResource(toolId: string, resourceId: string): Promise<void> {\n await doFetch(`${base}/tools/${toolId}/resources/${resourceId}`, {\n method: 'DELETE',\n });\n },\n async reloadResource(\n toolId: string,\n resourceId: string,\n ): Promise<ToolResourceReloadResponse> {\n const res = await doFetch(\n `${base}/tools/${toolId}/resources/${resourceId}/reload`,\n {\n method: 'POST',\n },\n );\n return res.json();\n },\n async execute(\n toolId: string,\n payload: ExecuteToolRequest,\n options: IdempotentRequestOptions = {},\n ): Promise<ExecuteToolResponse> {\n const idempotencyKey = generateIdempotencyKey(options.idempotencyKey);\n const res = await doFetch(`${base}/tools/${toolId}/execute`, {\n method: 'POST',\n headers: {\n ...jsonHeaders,\n [IDEMPOTENCY_HEADER]: idempotencyKey,\n },\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async connect(\n toolId: string,\n payload: ToolConnectionRequest,\n options: IdempotentRequestOptions = {},\n ): Promise<ToolConnectionResponse> {\n const idempotencyKey = generateIdempotencyKey(options.idempotencyKey);\n const res = await doFetch(`${base}/tools/${toolId}/connections`, {\n method: 'POST',\n headers: {\n ...jsonHeaders,\n [IDEMPOTENCY_HEADER]: idempotencyKey,\n },\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type { CatalogItemSummary, VoiceSummary } from '../types';\n\nconst FALLBACK_LOCALE = 'und';\nconst FALLBACK_PROVIDER = 'catalog';\n\ntype VoiceMetadata = {\n language?: string;\n locale?: string | null;\n gender?: 'female' | 'male' | 'neutral';\n provider?: string | null;\n previewUrl?: string | null;\n tags?: string[];\n providerVoiceId?: string;\n [key: string]: unknown;\n};\n\nexport function catalogItemToVoice(item: CatalogItemSummary): VoiceSummary {\n const metadata = normalizeVoiceMetadata(item.metadata);\n const locale = metadata.locale ?? metadata.language ?? FALLBACK_LOCALE;\n\n return {\n id: item.id,\n providerVoiceId: metadata.providerVoiceId ?? item.systemIdentifier,\n name: item.name,\n gender: metadata.gender,\n locale,\n tags: metadata.tags ?? [],\n previewUrl: metadata.previewUrl ?? undefined,\n provider: metadata.provider ?? FALLBACK_PROVIDER,\n };\n}\n\nfunction normalizeVoiceMetadata(\n metadata: CatalogItemSummary['metadata'],\n): VoiceMetadata {\n if (!metadata || typeof metadata !== 'object') {\n return {};\n }\n\n const raw = metadata as Record<string, unknown>;\n\n return {\n language: pickString(raw.language),\n locale: pickString(raw.locale, true),\n gender: pickGender(raw.gender),\n provider: pickString(raw.provider, true),\n previewUrl: pickString(raw.previewUrl, true),\n tags: pickStringArray(raw.tags),\n providerVoiceId: pickString(raw.providerVoiceId),\n };\n}\n\nfunction pickString(\n value: unknown,\n allowNull = false,\n): string | null | undefined {\n if (typeof value === 'string') {\n return value;\n }\n\n if (allowNull && value === null) {\n return null;\n }\n\n return undefined;\n}\n\nfunction pickStringArray(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n const items = value.filter(\n (item): item is string => typeof item === 'string',\n );\n return items.length > 0 ? items : undefined;\n}\n\nfunction pickGender(value: unknown): VoiceSummary['gender'] | undefined {\n if (value === 'female' || value === 'male' || value === 'neutral') {\n return value;\n }\n\n return undefined;\n}\n","import { Query } from '@getsupervisor/api-query-builder';\n\nimport type {\n ListQueryOptions,\n QueryFilterOperators,\n QueryValue,\n} from '../types';\n\nexport type ListFilter = ListQueryOptions['filter'];\n\ntype QueryBuilderLike = { build: () => string };\ntype FilterRecord = Record<string, QueryValue | QueryFilterOperators>;\n\nexport function createCatalogTypeQuery(type: string): Query {\n return new Query((qb) => qb.eq('type', type));\n}\n\nexport function ensureCatalogTypeFilter(\n filter: ListFilter,\n type: string,\n): ListFilter {\n const requiredQuery = createCatalogTypeQuery(type);\n const requiredExpression = requiredQuery.build();\n\n if (filter === undefined || filter === null) {\n return requiredQuery;\n }\n\n if (typeof filter === 'string') {\n return ensureTypeForString(filter, requiredQuery, requiredExpression);\n }\n\n if (isQueryBuilderLike(filter)) {\n return ensureTypeForBuilder(filter, requiredQuery, requiredExpression);\n }\n\n if (isFilterRecord(filter)) {\n return ensureTypeForObject(filter, type);\n }\n\n return filter;\n}\n\nfunction ensureTypeForString(\n value: string,\n requiredQuery: Query,\n requiredExpression: string,\n): string | Query {\n const normalized = value.trim();\n if (!normalized.length) {\n return requiredQuery;\n }\n\n return containsTypePredicate(normalized, requiredExpression)\n ? normalized\n : `and(${requiredExpression},${normalized})`;\n}\n\nfunction ensureTypeForBuilder(\n builder: QueryBuilderLike,\n requiredQuery: Query,\n requiredExpression: string,\n): QueryBuilderLike | Query {\n const normalized = builder.build().trim();\n if (!normalized.length) {\n return requiredQuery;\n }\n\n if (containsTypePredicate(normalized, requiredExpression)) {\n return builder;\n }\n\n const combined = `and(${requiredExpression},${normalized})`;\n return {\n build: () => combined,\n };\n}\n\nfunction ensureTypeForObject(\n candidate: FilterRecord,\n type: string,\n): FilterRecord {\n if (hasTypeEquality(candidate, type)) {\n return candidate;\n }\n\n const typeConfig = candidate.type;\n const normalizedType: QueryFilterOperators = isFilterOperators(typeConfig)\n ? { ...typeConfig, eq: type }\n : { eq: type };\n\n return {\n ...candidate,\n type: normalizedType,\n };\n}\n\nfunction hasTypeEquality(candidate: FilterRecord, type: string): boolean {\n const typeConfig = candidate.type;\n\n if (typeof typeConfig === 'string') {\n return typeConfig === type;\n }\n\n if (!isFilterOperators(typeConfig)) {\n return false;\n }\n\n const equality = typeConfig.eq;\n return typeof equality === 'string' ? equality === type : false;\n}\n\nfunction containsTypePredicate(expression: string, required: string): boolean {\n const normalizedExpression = expression.replace(/\\s+/g, '').toLowerCase();\n const normalizedRequired = required.replace(/\\s+/g, '').toLowerCase();\n\n return normalizedExpression.includes(normalizedRequired);\n}\n\nfunction isQueryBuilderLike(candidate: unknown): candidate is QueryBuilderLike {\n return (\n !!candidate &&\n typeof candidate === 'object' &&\n typeof (candidate as QueryBuilderLike).build === 'function'\n );\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\nfunction isFilterRecord(value: unknown): value is FilterRecord {\n return isPlainObject(value);\n}\n\nfunction isFilterOperators(value: unknown): value is QueryFilterOperators {\n return isPlainObject(value);\n}\n","import type {\n CatalogItemListResponse,\n ClientConfig,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n VoiceListResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { catalogItemToVoice } from '../utils/catalog-voices';\nimport { createHttp } from '../http';\nimport { ensureCatalogTypeFilter } from '../utils/catalog-filter';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListVoicesOptions = ListQueryOptions & {\n agentId?: string;\n agentVersionId?: string;\n gender?: 'female' | 'male' | 'neutral';\n locale?: string;\n page?: number;\n pageSize?: number;\n};\n\ntype VoiceListResponseWithMeta = VoiceListResponse & {\n meta?: PaginationMeta;\n};\n\nfunction mapCatalogResponseToVoiceList(\n response: CatalogItemListResponse,\n): VoiceListResponseWithMeta {\n return {\n data: response.data\n .filter((item) => item.type === 'voice')\n .map(catalogItemToVoice),\n meta: response.meta,\n };\n}\n\nexport function createVoicesApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, doFetch } = createHttp(cfg);\n\n const fetchVoicesPage = async (\n options: ListVoicesOptions = {},\n ): Promise<VoiceListResponseWithMeta> => {\n const normalizedOptions: ListVoicesOptions = {\n ...options,\n filter: ensureCatalogTypeFilter(options.filter, 'voice'),\n };\n const { agentId, agentVersionId, gender, locale } = normalizedOptions;\n\n const query = serializeListOptions(\n {\n page: normalizedOptions.page,\n limit: normalizedOptions.limit ?? normalizedOptions.pageSize,\n sort: normalizedOptions.sort,\n fields: normalizedOptions.fields,\n include: normalizedOptions.include,\n search: normalizedOptions.search,\n filter: normalizedOptions.filter,\n or: normalizedOptions.or,\n },\n {\n agentId,\n agentVersionId,\n gender,\n locale,\n },\n );\n const res = await doFetch(`${base}/catalogs/items`, {\n method: 'GET',\n query,\n });\n const raw = (await res.json()) as CatalogItemListResponse;\n\n return mapCatalogResponseToVoiceList(raw);\n };\n\n return {\n async list(\n options: ListVoicesOptions = {},\n ): Promise<PaginatedResult<VoiceListResponse, ListVoicesOptions>> {\n const normalizedOptions = { ...(options ?? {}) } as ListVoicesOptions;\n const response = await fetchVoicesPage(normalizedOptions);\n return attachPaginator(response, fetchVoicesPage, normalizedOptions);\n },\n };\n}\n","import type {\n ClientConfig,\n CreateEventSubscriptionRequest,\n CreateWebhookRequest,\n EventSubscriptionDetail,\n EventSubscriptionListResponse,\n ListQueryOptions,\n PaginatedResult,\n UpdateEventSubscriptionRequest,\n UpdateWebhookRequest,\n WebhookDetail,\n WebhookListResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListWebhooksOptions = Pick<\n ListQueryOptions,\n 'page' | 'limit' | 'sort' | 'fields' | 'include' | 'search' | 'filter'\n>;\n\nexport function createWebhooksApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchWebhooksPage = async (\n options: ListWebhooksOptions = {},\n ): Promise<WebhookListResponse> => {\n // Importante: no incluir `or` en estas rutas según el estándar\n const query = serializeListOptions({\n page: options.page,\n limit: options.limit,\n sort: options.sort,\n fields: options.fields,\n include: options.include,\n search: options.search,\n filter: options.filter,\n });\n\n const res = await doFetch(`${base}/webhooks`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n options: ListWebhooksOptions = {},\n ): Promise<PaginatedResult<WebhookListResponse, ListWebhooksOptions>> {\n const normalized = { ...(options ?? {}) } as ListWebhooksOptions;\n const response = await fetchWebhooksPage(normalized);\n return attachPaginator(response, fetchWebhooksPage, normalized);\n },\n\n async create(payload: CreateWebhookRequest): Promise<WebhookDetail> {\n const res = await doFetch(`${base}/webhooks`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n\n async get(webhookId: string): Promise<WebhookDetail> {\n const res = await doFetch(`${base}/webhooks/${webhookId}`, {\n method: 'GET',\n });\n return res.json();\n },\n\n async update(\n webhookId: string,\n payload: UpdateWebhookRequest,\n ): Promise<WebhookDetail> {\n const res = await doFetch(`${base}/webhooks/${webhookId}`, {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n\n async delete(webhookId: string): Promise<void> {\n await doFetch(`${base}/webhooks/${webhookId}`, { method: 'DELETE' });\n },\n\n // Subscriptions\n async listSubscriptions(\n webhookId: string,\n options: ListWebhooksOptions = {},\n ): Promise<\n PaginatedResult<EventSubscriptionListResponse, ListWebhooksOptions>\n > {\n const fetchPage = async (\n opts: ListWebhooksOptions,\n ): Promise<EventSubscriptionListResponse> => {\n const query = serializeListOptions({\n page: opts.page,\n limit: opts.limit,\n sort: opts.sort,\n fields: opts.fields,\n include: opts.include,\n search: opts.search,\n filter: opts.filter,\n });\n const res = await doFetch(\n `${base}/webhooks/${webhookId}/subscriptions`,\n { method: 'GET', query },\n );\n return res.json();\n };\n\n const normalized = { ...(options ?? {}) } as ListWebhooksOptions;\n const response = await fetchPage(normalized);\n return attachPaginator(response, fetchPage, normalized);\n },\n\n async createSubscription(\n webhookId: string,\n payload: CreateEventSubscriptionRequest,\n ): Promise<EventSubscriptionDetail> {\n const res = await doFetch(`${base}/webhooks/${webhookId}/subscriptions`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n\n async getSubscription(\n webhookId: string,\n subscriptionId: string,\n ): Promise<EventSubscriptionDetail> {\n const res = await doFetch(\n `${base}/webhooks/${webhookId}/subscriptions/${subscriptionId}`,\n { method: 'GET' },\n );\n return res.json();\n },\n\n async updateSubscription(\n webhookId: string,\n subscriptionId: string,\n payload: UpdateEventSubscriptionRequest,\n ): Promise<EventSubscriptionDetail> {\n const res = await doFetch(\n `${base}/webhooks/${webhookId}/subscriptions/${subscriptionId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n\n async deleteSubscription(\n webhookId: string,\n subscriptionId: string,\n ): Promise<void> {\n await doFetch(\n `${base}/webhooks/${webhookId}/subscriptions/${subscriptionId}`,\n { method: 'DELETE' },\n );\n },\n };\n}\n","import type {\n ClientConfig,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n WorkspaceEnableRequest,\n WorkspaceEnableResponse,\n WorkspacePhoneChannel,\n WorkspacePhonesResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListWorkspacePhonesOptions = ListQueryOptions & {\n channel?: WorkspacePhoneChannel;\n};\n\ntype WorkspacePhonesResponseWithMeta = WorkspacePhonesResponse & {\n meta?: PaginationMeta;\n};\n\nexport function createWorkspacesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\n\n const fetchPhonesPage = async (\n workspaceId: string,\n opts: ListWorkspacePhonesOptions = {},\n ): Promise<WorkspacePhonesResponseWithMeta> => {\n const { channel } = opts ?? {};\n const query = serializeListOptions(\n {\n page: opts.page,\n limit: opts.limit,\n sort: opts.sort,\n fields: opts.fields,\n include: opts.include,\n search: opts.search,\n filter: opts.filter,\n or: opts.or,\n },\n { channel },\n );\n const res = await doFetch(`${base}/workspaces/${workspaceId}/phones`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async listPhones(\n workspaceId: string,\n opts: ListWorkspacePhonesOptions = {},\n ): Promise<\n PaginatedResult<WorkspacePhonesResponse, ListWorkspacePhonesOptions>\n > {\n const normalizedOptions = {\n ...(opts ?? {}),\n } as ListWorkspacePhonesOptions;\n const response = await fetchPhonesPage(workspaceId, normalizedOptions);\n const fetchPage = (options: ListWorkspacePhonesOptions) =>\n fetchPhonesPage(workspaceId, options);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async enable(\n workspaceId: string,\n payload: WorkspaceEnableRequest,\n ): Promise<WorkspaceEnableResponse> {\n const res = await doFetch(`${base}/workspaces/${workspaceId}/enable`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type { AgentsApiWithEntities } from './api/agents';\nimport type { ClientConfig } from './types';\nimport type { RetryPolicy } from './errors';\nimport {\n bindAgentBlueprints,\n bindAgentInstructions,\n bindAgentPhones,\n bindAgentSchedule,\n bindAgentScheduleExceptions,\n bindAgentStages,\n bindAgentStageTriggers,\n bindAgentTags,\n bindAgentVersions,\n} from './entities/agent';\nimport { createAgentBlueprintsApi } from './api/agent-blueprints';\nimport { createAgentInstructionsApi } from './api/agent-instructions';\nimport { createAgentPhonesApi } from './api/agent-phones';\nimport { createAgentsApi } from './api/agents';\nimport { createAgentScheduleApi } from './api/agent-schedule';\nimport { createAgentScheduleExceptionsApi } from './api/agent-schedule-exceptions';\nimport { createAgentStagesApi } from './api/agent-stages';\nimport { createAgentStageTriggersApi } from './api/agent-stage-triggers';\nimport { createAgentTagsApi } from './api/agent-tags';\nimport { createAgentVersionsApi } from './api/agent-versions';\nimport { createApiKeysApi } from './api/api-keys';\nimport { createCatalogsApi } from './api/catalogs';\nimport { createCatalogTemplatesApi } from './api/catalog-templates';\nimport { createToolsApi } from './api/tools';\nimport { createVoicesApi } from './api/voices';\nimport { createWebhooksApi } from './api/webhooks';\nimport { createWorkspacesApi } from './api/workspaces';\n\nexport function createClient(\n initialCfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const runtimeCfg: ClientConfig & { retry?: RetryPolicy } = {\n ...initialCfg,\n };\n\n const resolveWorkspaceId = () =>\n runtimeCfg.workspaceId ?? runtimeCfg.getWorkspaceId?.();\n\n const resolveApiKey = () => runtimeCfg.apiKey ?? runtimeCfg.getApiKey?.();\n\n const resolveAccessToken = () =>\n runtimeCfg.accessToken ?? runtimeCfg.getAccessToken?.();\n\n const setWorkspaceId = (workspaceId?: string) => {\n runtimeCfg.workspaceId = workspaceId;\n };\n\n const setWorkspaceGetter = (\n getter?: (() => string | undefined) | undefined,\n ) => {\n runtimeCfg.getWorkspaceId = getter;\n };\n\n const setApiKey = (apiKey?: string) => {\n runtimeCfg.apiKey = apiKey;\n };\n\n const setApiKeyGetter = (getter?: (() => string | undefined) | undefined) => {\n runtimeCfg.getApiKey = getter;\n };\n\n const setAccessToken = (token?: string) => {\n runtimeCfg.accessToken = token;\n };\n\n const setAccessTokenGetter = (\n getter?: (() => string | undefined) | undefined,\n ) => {\n runtimeCfg.getAccessToken = getter;\n };\n\n const instructionsApi = createAgentInstructionsApi(runtimeCfg);\n const tagsApi = createAgentTagsApi(runtimeCfg);\n const phonesApi = createAgentPhonesApi(runtimeCfg);\n const scheduleApi = createAgentScheduleApi(runtimeCfg);\n const scheduleExceptionsApi = createAgentScheduleExceptionsApi(runtimeCfg);\n const versionsApi = createAgentVersionsApi(runtimeCfg);\n const blueprintsApi = createAgentBlueprintsApi(runtimeCfg);\n const stageTriggersApi = createAgentStageTriggersApi(runtimeCfg);\n const stagesApi = createAgentStagesApi(runtimeCfg);\n const voicesApi = createVoicesApi(runtimeCfg);\n const apiKeysApi = createApiKeysApi(runtimeCfg);\n const catalogsApi = createCatalogsApi(runtimeCfg);\n const catalogTemplatesApi = createCatalogTemplatesApi(runtimeCfg);\n const webhooksApi = createWebhooksApi(runtimeCfg);\n\n const agentsApi = createAgentsApi(runtimeCfg, {\n instructionsApi,\n tagsApi,\n phonesApi,\n scheduleApi,\n scheduleExceptionsApi,\n versionsApi,\n blueprintsApi,\n stagesApi,\n stageTriggersApi,\n }) as AgentsApiWithEntities;\n\n const instructionsNamespace = Object.assign(\n (agentId: string) => bindAgentInstructions(instructionsApi, agentId),\n instructionsApi,\n ) as typeof instructionsApi &\n ((agentId: string) => ReturnType<typeof bindAgentInstructions>);\n\n const tagsNamespace = Object.assign(\n (agentId: string) => bindAgentTags(tagsApi, agentId),\n tagsApi,\n ) as typeof tagsApi & ((agentId: string) => ReturnType<typeof bindAgentTags>);\n\n const phonesNamespace = Object.assign(\n (agentId: string) => bindAgentPhones(phonesApi, agentId),\n phonesApi,\n ) as typeof phonesApi &\n ((agentId: string) => ReturnType<typeof bindAgentPhones>);\n\n const scheduleExceptionsNamespace = Object.assign(\n (agentId: string) =>\n bindAgentScheduleExceptions(scheduleExceptionsApi, agentId),\n scheduleExceptionsApi,\n ) as typeof scheduleExceptionsApi &\n ((agentId: string) => ReturnType<typeof bindAgentScheduleExceptions>);\n\n const scheduleNamespace = Object.assign(\n (agentId: string) =>\n bindAgentSchedule(scheduleApi, scheduleExceptionsApi, agentId),\n {\n ...scheduleApi,\n exceptions: scheduleExceptionsNamespace,\n },\n ) as typeof scheduleApi &\n ((agentId: string) => ReturnType<typeof bindAgentSchedule>) & {\n exceptions: typeof scheduleExceptionsNamespace;\n };\n\n const versionsNamespace = Object.assign(\n (agentId: string) => bindAgentVersions(versionsApi, agentId),\n versionsApi,\n ) as typeof versionsApi &\n ((agentId: string) => ReturnType<typeof bindAgentVersions>);\n\n const blueprintsNamespace = Object.assign(\n (agentId: string) => bindAgentBlueprints(blueprintsApi, agentId),\n blueprintsApi,\n ) as typeof blueprintsApi &\n ((agentId: string) => ReturnType<typeof bindAgentBlueprints>);\n\n const stageTriggersNamespace = Object.assign(\n (agentId: string, blueprintId: string, stageId: string) =>\n bindAgentStageTriggers(stageTriggersApi, agentId, blueprintId, stageId),\n stageTriggersApi,\n ) as typeof stageTriggersApi &\n ((\n agentId: string,\n blueprintId: string,\n stageId: string,\n ) => ReturnType<typeof bindAgentStageTriggers>);\n\n const stagesNamespace = Object.assign(\n (agentId: string) => bindAgentStages(stagesApi, stageTriggersApi, agentId),\n {\n ...stagesApi,\n triggers: stageTriggersNamespace,\n },\n ) as typeof stagesApi &\n ((agentId: string) => ReturnType<typeof bindAgentStages>) & {\n triggers: typeof stageTriggersNamespace;\n };\n\n const apis = {\n agents: {\n ...agentsApi,\n instructions: instructionsNamespace,\n tags: tagsNamespace,\n phones: phonesNamespace,\n schedule: scheduleNamespace,\n versions: versionsNamespace,\n blueprints: blueprintsNamespace,\n stages: stagesNamespace,\n },\n workspaces: createWorkspacesApi(runtimeCfg),\n tools: createToolsApi(runtimeCfg),\n catalogs: {\n ...catalogsApi,\n templates: catalogTemplatesApi,\n },\n voices: voicesApi,\n apiKeys: apiKeysApi,\n webhooks: webhooksApi,\n };\n\n return {\n ...apis,\n auth: {\n getApiKey: resolveApiKey,\n setApiKey(key?: string) {\n setApiKeyGetter(undefined);\n setApiKey(key);\n },\n useApiKey(getter?: () => string | undefined) {\n setApiKeyGetter(getter);\n },\n clearApiKey() {\n setApiKeyGetter(undefined);\n setApiKey(undefined);\n },\n getAccessToken: resolveAccessToken,\n setAccessToken(token?: string) {\n setAccessTokenGetter(undefined);\n setAccessToken(token);\n },\n useAccessToken(getter?: () => string | undefined) {\n setAccessTokenGetter(getter);\n },\n clearAccessToken() {\n setAccessTokenGetter(undefined);\n setAccessToken(undefined);\n },\n },\n workspace: {\n get: resolveWorkspaceId,\n set(id?: string) {\n setWorkspaceGetter(undefined);\n setWorkspaceId(id);\n },\n useGetter(getter?: () => string | undefined) {\n setWorkspaceGetter(getter);\n },\n clear() {\n setWorkspaceGetter(undefined);\n setWorkspaceId(undefined);\n },\n scoped(id: string) {\n return createClient({\n ...initialCfg,\n workspaceId: id,\n getWorkspaceId: undefined,\n apiKey: runtimeCfg.apiKey,\n getApiKey: runtimeCfg.getApiKey,\n accessToken: runtimeCfg.accessToken,\n getAccessToken: runtimeCfg.getAccessToken,\n });\n },\n },\n };\n}\n"],"mappings":"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","names":["result","isPlainObject"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/http.ts","../src/utils/query.ts","../src/api/agent-blueprints.ts","../src/api/agent-phones.ts","../src/utils/pagination.ts","../src/api/agent-schedule-exceptions.ts","../src/api/agent-schedule.ts","../src/api/agent-stage-triggers.ts","../src/api/agent-stages.ts","../src/api/agent-tags.ts","../src/api/agent-versions.ts","../src/entities/agent.ts","../src/api/agents.ts","../src/api/api-keys.ts","../src/api/catalog-templates.ts","../src/api/catalogs.ts","../src/api/tools.ts","../src/utils/catalog-voices.ts","../src/utils/catalog-filter.ts","../src/api/voices.ts","../src/api/webhooks.ts","../src/api/workspaces.ts","../src/client.ts"],"sourcesContent":["export * from './api/agent-blueprints';\nexport * from './api/agent-phones';\nexport * from './api/agent-schedule-exceptions';\nexport * from './api/agent-schedule';\nexport * from './api/agent-stage-triggers';\nexport * from './api/agent-stages';\nexport * from './api/agent-tags';\nexport * from './api/agent-versions';\nexport * from './api/agents';\nexport * from './api/api-keys';\nexport * from './api/catalog-templates';\nexport * from './api/catalogs';\nexport * from './api/tools';\nexport * from './api/voices';\nexport * from './api/webhooks';\nexport * from './api/workspaces';\nexport * from './client';\nexport * from './entities/agent';\nexport * from './errors';\nexport * from './http';\nexport * from './types';\n","export class HttpError extends Error {\n constructor(\n public status: number,\n public statusText: string,\n public body?: unknown,\n public url?: string,\n ) {\n super(`HTTP ${status} ${statusText}`);\n this.name = 'HttpError';\n }\n}\n\nexport class TimeoutError extends Error {\n constructor(\n public ms: number,\n public url?: string,\n ) {\n super(`Timeout after ${ms}ms`);\n this.name = 'TimeoutError';\n }\n}\n\nexport class NetworkError extends Error {\n constructor(\n public cause?: unknown,\n public url?: string,\n ) {\n super('Network error');\n this.name = 'NetworkError';\n }\n}\n\nexport type RetryPolicy = {\n maxRetries?: number; // default 2\n baseDelayMs?: number; // default 300\n maxDelayMs?: number; // default 3000\n retryOn?: (err: unknown, attempt: number) => boolean; // default: network or 5xx\n};\n","import { ClientConfig } from './types';\nimport { HttpError, NetworkError, RetryPolicy, TimeoutError } from './errors';\n\ntype QueryParamPrimitive = string | number | boolean;\ntype QueryParamValue =\n | QueryParamPrimitive\n | QueryParamPrimitive[]\n | null\n | undefined;\ntype QueryInit = string | URLSearchParams | Record<string, QueryParamValue>;\n\ntype FetchOptions = RequestInit & { query?: QueryInit };\n\nfunction toQueryString(query?: QueryInit): string | undefined {\n if (!query) return undefined;\n\n if (typeof query === 'string') {\n const normalized = query.trim().replace(/^\\?/, '');\n return normalized.length > 0 ? normalized : undefined;\n }\n\n if (query instanceof URLSearchParams) {\n const result = query.toString();\n return result.length > 0 ? result : undefined;\n }\n\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value === null || value === undefined) return;\n const values = Array.isArray(value) ? value : [value];\n values.forEach((item) => {\n params.append(key, String(item));\n });\n });\n const result = params.toString();\n return result.length > 0 ? result : undefined;\n}\n\nfunction appendQuery(url: string, query?: QueryInit): string {\n const qs = toQueryString(query);\n if (!qs) return url;\n\n const [base, hash] = url.split('#');\n const hasQuery = base.includes('?');\n const needsSeparator = hasQuery\n ? base.endsWith('?') || base.endsWith('&')\n ? ''\n : '&'\n : '?';\n const built = `${base}${needsSeparator}${qs}`;\n return hash ? `${built}#${hash}` : built;\n}\n\nfunction sleep(ms: number) {\n return new Promise((r) => setTimeout(r, ms));\n}\n\nasync function withTimeout<T>(\n p: Promise<T>,\n ms: number,\n ab?: AbortController,\n url?: string,\n) {\n return new Promise<T>((resolve, reject) => {\n const to = setTimeout(() => {\n ab?.abort();\n reject(new TimeoutError(ms, url));\n }, ms);\n p.then((v) => {\n clearTimeout(to);\n resolve(v);\n }).catch((e) => {\n clearTimeout(to);\n reject(e);\n });\n });\n}\n\nasync function withRetry<T>(\n fn: (attempt: number) => Promise<T>,\n policy?: RetryPolicy,\n): Promise<T> {\n const max = policy?.maxRetries ?? 2;\n const base = policy?.baseDelayMs ?? 300;\n const maxDelay = policy?.maxDelayMs ?? 3000;\n const retryOn =\n policy?.retryOn ??\n ((err) =>\n err instanceof NetworkError ||\n (err instanceof HttpError && err.status >= 500));\n let attempt = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n try {\n return await fn(attempt);\n } catch (e) {\n if (attempt >= max || !retryOn(e, attempt)) throw e;\n const delay =\n Math.min(maxDelay, base * 2 ** attempt) +\n Math.floor(Math.random() * 100);\n await sleep(delay);\n attempt += 1;\n }\n }\n}\n\nexport function createHttp(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const base = cfg.baseUrl.replace(/\\/$/, '');\n const fx = cfg.fetchImpl ?? fetch;\n const baseHeaders = { ...(cfg.headers ?? {}) };\n const timeout = cfg.timeoutMs ?? 35000;\n const log = cfg.logger ?? {};\n const retry = cfg.retry;\n const WORKSPACE_HEADER = 'x-workspace-id';\n const API_KEY_HEADER = 'x-api-key';\n const AUTHORIZATION_HEADER = 'authorization';\n\n const resolveWorkspaceId = () =>\n cfg.getWorkspaceId?.() ?? cfg.workspaceId ?? undefined;\n\n const resolveApiKey = () => cfg.getApiKey?.() ?? cfg.apiKey ?? undefined;\n\n const resolveAccessToken = () =>\n cfg.getAccessToken?.() ?? cfg.accessToken ?? undefined;\n\n const normalizeHeaders = (headers?: HeadersInit): Record<string, string> => {\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n const result: Record<string, string> = {};\n headers.forEach((value, key) => {\n result[key] = value;\n });\n return result;\n }\n\n if (Array.isArray(headers)) {\n return headers.reduce<Record<string, string>>((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n }\n\n return { ...headers } as Record<string, string>;\n };\n\n const buildHeaders = (extra?: HeadersInit): Record<string, string> => {\n const workspaceId = resolveWorkspaceId();\n const normalizedExtra = normalizeHeaders(extra);\n const headersWithWorkspace = workspaceId\n ? { [WORKSPACE_HEADER]: workspaceId }\n : {};\n const apiKey = resolveApiKey();\n const headersWithApiKey = apiKey ? { [API_KEY_HEADER]: apiKey } : {};\n const accessToken = resolveAccessToken();\n const headersWithAuthorization = accessToken\n ? {\n [AUTHORIZATION_HEADER]: accessToken.startsWith('Bearer ')\n ? accessToken\n : `Bearer ${accessToken}`,\n }\n : {};\n\n return {\n ...baseHeaders,\n ...headersWithWorkspace,\n ...headersWithApiKey,\n ...headersWithAuthorization,\n ...normalizedExtra,\n };\n };\n\n async function doFetch(url: string, init: FetchOptions = {}) {\n const { query, ...requestInit } = init;\n const targetUrl = appendQuery(url, query);\n const ab = new AbortController();\n const req = async () => {\n try {\n const finalHeaders = buildHeaders(requestInit.headers);\n const res = await withTimeout(\n fx(targetUrl, {\n ...requestInit,\n headers: finalHeaders,\n signal: ab.signal,\n }),\n timeout,\n ab,\n targetUrl,\n );\n if (!res.ok) {\n const body = await res\n .clone()\n .json()\n .catch(() => undefined);\n throw new HttpError(res.status, res.statusText, body, targetUrl);\n }\n return res;\n } catch (e: any) {\n if (e.name === 'AbortError') throw new TimeoutError(timeout, targetUrl);\n if (e instanceof HttpError) throw e;\n throw new NetworkError(e, targetUrl);\n }\n };\n return withRetry(req, retry);\n }\n\n return {\n base,\n timeout,\n log,\n retry,\n doFetch,\n buildHeaders,\n resolveWorkspaceId,\n resolveApiKey,\n resolveAccessToken,\n };\n}\n","import type {\n ListQueryOptions,\n QueryBuilderInput,\n QueryBuilderSerializable,\n QueryFilters,\n QueryOrGroups,\n} from '../types';\n\ntype Primitive = string | number | boolean | bigint;\ntype PlainObject = Record<string, unknown>;\n\nexport function buildSearchParams(\n entries: Array<[string, unknown]>,\n): URLSearchParams {\n const searchParams = new URLSearchParams();\n entries.forEach(([key, value]) => appendParam(searchParams, key, value));\n return searchParams;\n}\n\nexport function serializeListOptions(\n options: ListQueryOptions = {},\n extra: PlainObject = {},\n): string {\n const params = new URLSearchParams();\n\n appendParam(params, 'page', options.page);\n appendParam(params, 'limit', options.limit);\n appendParam(params, 'sort', options.sort);\n appendParam(params, 'fields', options.fields);\n appendParam(params, 'include', options.include);\n appendParam(params, 'q', options.search);\n appendParam(params, 'filter', mapQueryValue(options.filter));\n appendParam(params, 'or', mapQueryValue(options.or));\n\n Object.entries(extra).forEach(([key, value]) => {\n appendParam(params, key, value);\n });\n\n return params.toString();\n}\n\nfunction mapQueryValue(\n value: QueryFilters | QueryOrGroups | QueryBuilderInput | undefined,\n): unknown {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n if (isQueryBuilderSerializable(value)) {\n return getQueryBuilderString(value);\n }\n\n return value;\n}\n\nfunction appendParam(\n params: URLSearchParams,\n key: string,\n value: unknown,\n): void {\n if (value === undefined || value === null) {\n return;\n }\n\n if (value instanceof Date) {\n params.set(key, value.toISOString());\n return;\n }\n\n if (isQueryBuilderSerializable(value)) {\n params.set(key, getQueryBuilderString(value));\n return;\n }\n\n if (typeof value === 'string') {\n params.set(key, value);\n return;\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n params.set(key, String(value));\n return;\n }\n\n if (typeof value === 'bigint') {\n params.set(key, value.toString());\n return;\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return;\n }\n\n if (value.every(isPrimitive)) {\n params.set(key, value.map((item) => String(item)).join(','));\n return;\n }\n\n value.forEach((item, idx) => {\n appendParam(params, `${key}[${idx}]`, item);\n });\n return;\n }\n\n if (isPlainObject(value)) {\n Object.entries(value).forEach(([childKey, childValue]) => {\n appendParam(params, `${key}[${childKey}]`, childValue);\n });\n return;\n }\n\n params.set(key, String(value));\n}\n\nfunction isPrimitive(value: unknown): value is Primitive {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'bigint'\n );\n}\n\nfunction isPlainObject(value: unknown): value is PlainObject {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\nfunction isQueryBuilderSerializable(\n value: unknown,\n): value is QueryBuilderSerializable {\n return (\n !!value &&\n typeof value === 'object' &&\n typeof (value as QueryBuilderSerializable).build === 'function'\n );\n}\n\nfunction getQueryBuilderString(value: QueryBuilderSerializable): string {\n const build = value.build;\n if (typeof build !== 'function') {\n throw new TypeError(\n 'Query builder values must expose a build() method returning a string.',\n );\n }\n\n if (build.length > 0) {\n const stringValue = value.toString?.();\n if (stringValue && stringValue !== '[object Object]') {\n return stringValue;\n }\n\n throw new TypeError(\n 'Query builder instances passed to the SDK must expose a zero-argument build() method. Did you pass QueryBuilder instead of Query?',\n );\n }\n\n const result = build.call(value);\n if (typeof result === 'string') {\n return result;\n }\n\n if (result === undefined || result === null) {\n throw new TypeError(\n 'Query builder build() must return a string representation of the query.',\n );\n }\n\n return String(result);\n}\n","import type {\n AgentBlueprint,\n AgentBlueprintListResponse,\n ClientConfig,\n CreateAgentBlueprintRequest,\n ListQueryOptions,\n UpdateAgentBlueprintRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentBlueprintsOptions = Pick<ListQueryOptions, 'filter'>;\n\nexport type AgentBlueprintsApi = {\n list(\n agentId: string,\n options?: ListAgentBlueprintsOptions,\n ): Promise<AgentBlueprintListResponse>;\n get(agentId: string, versionId: string): Promise<AgentBlueprint>;\n create(\n agentId: string,\n versionId: string,\n payload: CreateAgentBlueprintRequest,\n ): Promise<AgentBlueprint>;\n update(\n agentId: string,\n versionId: string,\n payload: UpdateAgentBlueprintRequest,\n ): Promise<AgentBlueprint>;\n};\n\nexport function createAgentBlueprintsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n): AgentBlueprintsApi {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const list = async (\n agentId: string,\n options: ListAgentBlueprintsOptions = {},\n ): Promise<AgentBlueprintListResponse> => {\n const query = serializeListOptions({ filter: options.filter });\n const res = await doFetch(`${base}/agents/${agentId}/blueprints`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n const get = async (\n agentId: string,\n versionId: string,\n ): Promise<AgentBlueprint> => {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/blueprint`,\n {\n method: 'GET',\n },\n );\n return res.json();\n };\n\n const create = async (\n agentId: string,\n versionId: string,\n payload: CreateAgentBlueprintRequest,\n ): Promise<AgentBlueprint> => {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/blueprint`,\n {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n },\n );\n return res.json();\n };\n\n const update = async (\n agentId: string,\n versionId: string,\n payload: UpdateAgentBlueprintRequest,\n ): Promise<AgentBlueprint> => {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/blueprint`,\n {\n method: 'PATCH',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n },\n );\n return res.json();\n };\n\n return {\n list,\n get,\n create,\n update,\n } satisfies AgentBlueprintsApi;\n}\n","import type {\n ClientConfig,\n ConnectPhoneRequest,\n PhoneAssignmentResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentPhonesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\n\n return {\n async connect(\n agentId: string,\n payload: ConnectPhoneRequest,\n ): Promise<PhoneAssignmentResponse> {\n const res = await doFetch(`${base}/agents/${agentId}/phones`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async disconnect(agentId: string, phoneId: string): Promise<void> {\n await doFetch(`${base}/agents/${agentId}/phones/${phoneId}`, {\n method: 'DELETE',\n });\n },\n };\n}\n","import type {\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n} from '../types';\n\ntype PaginationMetaLike = PaginationMeta & {\n pageSize?: number;\n totalItems?: number;\n totalPages?: number;\n hasPrevious?: boolean;\n};\n\nconst toNumber = (value: unknown): number | undefined => {\n return typeof value === 'number' ? value : undefined;\n};\n\nconst toBoolean = (value: unknown): boolean | undefined => {\n return typeof value === 'boolean' ? value : undefined;\n};\n\nfunction cloneOptions<TOptions extends ListQueryOptions>(\n options: TOptions,\n overrides?: Partial<TOptions>,\n): TOptions {\n return {\n ...(options ?? ({} as TOptions)),\n ...(overrides ?? {}),\n };\n}\n\nfunction normalizeMeta(meta?: PaginationMeta): PaginationMetaLike | undefined {\n if (!meta) {\n return undefined;\n }\n\n const metaRecord = meta as PaginationMetaLike;\n return {\n ...metaRecord,\n page: toNumber(metaRecord.page),\n limit: toNumber(metaRecord.limit) ?? toNumber(metaRecord.pageSize),\n total: toNumber(metaRecord.total) ?? toNumber(metaRecord.totalItems),\n hasNext: toBoolean(metaRecord.hasNext),\n hasPrevious: toBoolean(metaRecord.hasPrevious),\n totalPages: toNumber(metaRecord.totalPages),\n } satisfies PaginationMetaLike;\n}\n\nfunction resolveHasNext(meta: PaginationMetaLike | undefined, limit?: number) {\n if (typeof meta?.hasNext === 'boolean') {\n return meta.hasNext;\n }\n\n if (\n typeof meta?.total === 'number' &&\n typeof meta?.page === 'number' &&\n typeof limit === 'number'\n ) {\n return meta.page * limit < meta.total;\n }\n\n if (typeof meta?.totalPages === 'number' && typeof meta?.page === 'number') {\n return meta.page < meta.totalPages;\n }\n\n return false;\n}\n\nfunction resolveHasPrevious(meta: PaginationMetaLike | undefined) {\n if (typeof meta?.hasPrevious === 'boolean') {\n return meta.hasPrevious;\n }\n\n if (typeof meta?.page === 'number') {\n return meta.page > 1;\n }\n\n return false;\n}\n\nexport function attachPaginator<\n TResponse extends { meta?: PaginationMeta },\n TOptions extends ListQueryOptions,\n>(\n response: TResponse,\n fetchPage: (options: TOptions) => Promise<TResponse>,\n options: TOptions,\n): PaginatedResult<TResponse, TOptions> {\n const baseOptions = options ?? ({} as TOptions);\n const meta = normalizeMeta(response.meta);\n\n const currentPage =\n typeof meta?.page === 'number'\n ? meta.page\n : typeof baseOptions.page === 'number'\n ? baseOptions.page\n : 1;\n const currentLimit =\n typeof meta?.limit === 'number'\n ? meta.limit\n : typeof baseOptions.limit === 'number'\n ? baseOptions.limit\n : undefined;\n\n const getNextResponse = async (\n page: number,\n overrides?: Partial<TOptions>,\n ): Promise<PaginatedResult<TResponse, TOptions>> => {\n const nextOptions = cloneOptions(baseOptions, {\n ...overrides,\n page,\n });\n const nextResponse = await fetchPage(nextOptions);\n return attachPaginator(nextResponse, fetchPage, nextOptions);\n };\n\n return Object.assign(response, {\n async next() {\n if (!resolveHasNext(meta, currentLimit)) {\n return null;\n }\n\n return getNextResponse(currentPage + 1);\n },\n async prev() {\n if (!resolveHasPrevious(meta)) {\n return null;\n }\n\n return getNextResponse(Math.max(1, currentPage - 1));\n },\n async page(pageNumber: number) {\n if (typeof pageNumber !== 'number' || Number.isNaN(pageNumber)) {\n throw new TypeError('page(pageNumber) requires a numeric value.');\n }\n\n if (pageNumber < 1) {\n throw new RangeError(\n 'Page numbers must be greater than or equal to 1.',\n );\n }\n\n return getNextResponse(pageNumber);\n },\n async reload() {\n return getNextResponse(currentPage);\n },\n });\n}\n","import type {\n AgentScheduleException,\n AgentScheduleExceptionListResponse,\n ClientConfig,\n CreateAgentScheduleExceptionRequest,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n UpdateAgentScheduleExceptionRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentScheduleExceptionsOptions = ListQueryOptions;\n\ntype AgentScheduleExceptionsResponseWithMeta =\n AgentScheduleExceptionListResponse & {\n meta?: PaginationMeta;\n };\n\nexport function createAgentScheduleExceptionsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchExceptionsPage = async (\n agentId: string,\n options: ListAgentScheduleExceptionsOptions = {},\n ): Promise<AgentScheduleExceptionsResponseWithMeta> => {\n const query = serializeListOptions(options ?? {});\n const res = await doFetch(`${base}/agents/${agentId}/schedule/exceptions`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n agentId: string,\n options: ListAgentScheduleExceptionsOptions = {},\n ): Promise<\n PaginatedResult<\n AgentScheduleExceptionListResponse,\n ListAgentScheduleExceptionsOptions\n >\n > {\n const normalizedOptions = {\n ...(options ?? {}),\n } as ListAgentScheduleExceptionsOptions;\n const fetchPage = (pageOptions: ListAgentScheduleExceptionsOptions) =>\n fetchExceptionsPage(agentId, pageOptions);\n const response = await fetchPage(normalizedOptions);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async get(\n agentId: string,\n exceptionId: string,\n ): Promise<AgentScheduleException> {\n const res = await doFetch(\n `${base}/agents/${agentId}/schedule/exceptions/${exceptionId}`,\n {\n method: 'GET',\n },\n );\n return res.json();\n },\n async create(\n agentId: string,\n payload: CreateAgentScheduleExceptionRequest,\n ): Promise<AgentScheduleException> {\n const res = await doFetch(\n `${base}/agents/${agentId}/schedule/exceptions`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async update(\n agentId: string,\n exceptionId: string,\n payload: UpdateAgentScheduleExceptionRequest,\n ): Promise<AgentScheduleException> {\n const res = await doFetch(\n `${base}/agents/${agentId}/schedule/exceptions/${exceptionId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async delete(agentId: string, exceptionId: string): Promise<void> {\n await doFetch(\n `${base}/agents/${agentId}/schedule/exceptions/${exceptionId}`,\n {\n method: 'DELETE',\n },\n );\n },\n };\n}\n","import type {\n AgentSchedule,\n ClientConfig,\n UpdateAgentScheduleRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentScheduleApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n return {\n async get(agentId: string): Promise<AgentSchedule> {\n const res = await doFetch(`${base}/agents/${agentId}/schedule`, {\n method: 'GET',\n });\n return res.json();\n },\n async create(\n agentId: string,\n payload: UpdateAgentScheduleRequest,\n ): Promise<AgentSchedule> {\n const res = await doFetch(`${base}/agents/${agentId}/schedule`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async update(\n agentId: string,\n payload: UpdateAgentScheduleRequest,\n ): Promise<AgentSchedule> {\n const res = await doFetch(`${base}/agents/${agentId}/schedule`, {\n method: 'PUT',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type {\n BlueprintStageTrigger,\n BlueprintStageTriggerListResponse,\n ClientConfig,\n CreateBlueprintStageTriggerRequest,\n ListQueryOptions,\n PaginatedResult,\n UpdateBlueprintStageTriggerRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentStageTriggersOptions = ListQueryOptions;\n\nexport type AgentStageTriggersApi = {\n list(\n agentId: string,\n blueprintId: string,\n stageId: string,\n options?: ListAgentStageTriggersOptions,\n ): Promise<\n PaginatedResult<\n BlueprintStageTriggerListResponse,\n ListAgentStageTriggersOptions\n >\n >;\n get(\n agentId: string,\n blueprintId: string,\n stageId: string,\n triggerId: string,\n ): Promise<BlueprintStageTrigger>;\n create(\n agentId: string,\n blueprintId: string,\n stageId: string,\n payload: CreateBlueprintStageTriggerRequest,\n ): Promise<BlueprintStageTrigger>;\n update(\n agentId: string,\n blueprintId: string,\n stageId: string,\n triggerId: string,\n payload: UpdateBlueprintStageTriggerRequest,\n ): Promise<BlueprintStageTrigger>;\n delete(\n agentId: string,\n blueprintId: string,\n stageId: string,\n triggerId: string,\n ): Promise<void>;\n};\n\nexport function createAgentStageTriggersApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n): AgentStageTriggersApi {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchTriggerPage = async (\n agentId: string,\n blueprintId: string,\n stageId: string,\n options: ListAgentStageTriggersOptions = {},\n ): Promise<BlueprintStageTriggerListResponse> => {\n const normalizedOptions: ListAgentStageTriggersOptions = {\n page: options.page,\n limit: options.limit,\n sort: options.sort,\n fields: options.fields,\n include: options.include,\n filter: options.filter,\n search: options.search,\n or: options.or,\n };\n const query = serializeListOptions(normalizedOptions);\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers`,\n {\n method: 'GET',\n query,\n },\n );\n return res.json();\n };\n\n return {\n async list(agentId, blueprintId, stageId, options = {}) {\n const normalized = {\n ...(options ?? {}),\n } as ListAgentStageTriggersOptions;\n const fetchPage = (opts: ListAgentStageTriggersOptions) =>\n fetchTriggerPage(agentId, blueprintId, stageId, opts);\n const response = await fetchPage(normalized);\n return attachPaginator(response, fetchPage, normalized);\n },\n async get(agentId, blueprintId, stageId, triggerId) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers/${triggerId}`,\n {\n method: 'GET',\n },\n );\n return res.json();\n },\n async create(agentId, blueprintId, stageId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async update(agentId, blueprintId, stageId, triggerId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers/${triggerId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async delete(agentId, blueprintId, stageId, triggerId) {\n await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}/triggers/${triggerId}`,\n {\n method: 'DELETE',\n },\n );\n },\n } satisfies AgentStageTriggersApi;\n}\n","import type {\n BlueprintStage,\n BlueprintStageListResponse,\n BlueprintStageReorderRequest,\n ClientConfig,\n CreateBlueprintStageRequest,\n ListQueryOptions,\n PaginatedResult,\n UpdateBlueprintStageRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentStagesOptions = ListQueryOptions;\n\nexport type AgentStagesApi = {\n list(\n agentId: string,\n blueprintId: string,\n options?: ListAgentStagesOptions,\n ): Promise<\n PaginatedResult<BlueprintStageListResponse, ListAgentStagesOptions>\n >;\n get(\n agentId: string,\n blueprintId: string,\n stageId: string,\n ): Promise<BlueprintStage>;\n create(\n agentId: string,\n blueprintId: string,\n payload: CreateBlueprintStageRequest,\n ): Promise<BlueprintStage>;\n update(\n agentId: string,\n blueprintId: string,\n stageId: string,\n payload: UpdateBlueprintStageRequest,\n ): Promise<BlueprintStage>;\n delete(agentId: string, blueprintId: string, stageId: string): Promise<void>;\n reorder(\n agentId: string,\n blueprintId: string,\n payload: BlueprintStageReorderRequest,\n ): Promise<BlueprintStageListResponse>;\n};\n\nexport function createAgentStagesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n): AgentStagesApi {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchStagePage = async (\n agentId: string,\n blueprintId: string,\n options: ListAgentStagesOptions = {},\n ): Promise<BlueprintStageListResponse> => {\n const normalizedOptions: ListAgentStagesOptions = {\n page: options.page,\n limit: options.limit,\n sort: options.sort,\n filter: options.filter,\n search: options.search,\n };\n const query = serializeListOptions(normalizedOptions);\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages`,\n {\n method: 'GET',\n query,\n },\n );\n return res.json();\n };\n\n return {\n async list(agentId, blueprintId, options = {}) {\n const normalized = { ...(options ?? {}) } as ListAgentStagesOptions;\n const fetchPage = (opts: ListAgentStagesOptions) =>\n fetchStagePage(agentId, blueprintId, opts);\n const response = await fetchPage(normalized);\n return attachPaginator(response, fetchPage, normalized);\n },\n async get(agentId, blueprintId, stageId) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}`,\n {\n method: 'GET',\n },\n );\n return res.json();\n },\n async create(agentId, blueprintId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async update(agentId, blueprintId, stageId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async delete(agentId, blueprintId, stageId) {\n await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages/${stageId}`,\n {\n method: 'DELETE',\n },\n );\n },\n async reorder(agentId, blueprintId, payload) {\n const res = await doFetch(\n `${base}/agents/${agentId}/blueprints/${blueprintId}/stages:reorder`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n } satisfies AgentStagesApi;\n}\n","import type {\n AgentTagRequest,\n AgentTagsResponse,\n ClientConfig,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentTagsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n return {\n async add(\n agentId: string,\n payload: AgentTagRequest,\n ): Promise<AgentTagsResponse> {\n const res = await doFetch(`${base}/agents/${agentId}/tags`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async remove(agentId: string, tagId: string): Promise<void> {\n await doFetch(`${base}/agents/${agentId}/tags/${tagId}`, {\n method: 'DELETE',\n });\n },\n } as const;\n}\n","import type {\n AgentVersionDetail,\n AgentVersionListResponse,\n ClientConfig,\n CreateAgentVersionRequest,\n CreateInstructionRequest,\n Instruction,\n InstructionCreatedResponse,\n InstructionListResponse,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n PublishAgentVersionRequest,\n UpdateAgentVersionNotesRequest,\n UpdateInstructionRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListAgentVersionsOptions = Pick<\n ListQueryOptions,\n 'page' | 'limit' | 'filter'\n>;\n\nexport type ListAgentVersionInstructionsOptions = ListQueryOptions;\n\ntype AgentVersionListResponseWithMeta = AgentVersionListResponse & {\n meta?: PaginationMeta;\n};\n\nexport function createAgentVersionsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchVersionsPage = async (\n agentId: string,\n opts: ListAgentVersionsOptions = {},\n ): Promise<AgentVersionListResponseWithMeta> => {\n const queryOptions: ListQueryOptions = {\n page: opts.page,\n limit: opts.limit,\n filter: opts.filter,\n };\n const query = serializeListOptions(queryOptions);\n const res = await doFetch(`${base}/agents/${agentId}/versions`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n agentId: string,\n opts: ListAgentVersionsOptions = {},\n ): Promise<\n PaginatedResult<AgentVersionListResponse, ListAgentVersionsOptions>\n > {\n const normalizedOptions = { ...(opts ?? {}) } as ListAgentVersionsOptions;\n const fetchPage = (options: ListAgentVersionsOptions) =>\n fetchVersionsPage(agentId, options);\n const response = await fetchPage(normalizedOptions);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async get(agentId: string, versionId: string): Promise<AgentVersionDetail> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}`,\n {\n method: 'GET',\n },\n );\n return res.json();\n },\n async create(\n agentId: string,\n payload?: CreateAgentVersionRequest,\n ): Promise<AgentVersionDetail> {\n const res = await doFetch(`${base}/agents/${agentId}/versions`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload ?? {}),\n });\n return res.json();\n },\n async clone(\n agentId: string,\n versionId: string,\n ): Promise<AgentVersionDetail> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/clone`,\n {\n method: 'POST',\n },\n );\n return res.json();\n },\n async publish(\n agentId: string,\n versionId: string,\n payload?: PublishAgentVersionRequest,\n ): Promise<AgentVersionDetail> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/publish`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload ?? {}),\n },\n );\n return res.json();\n },\n async updateNotes(\n agentId: string,\n versionId: string,\n payload: UpdateAgentVersionNotesRequest,\n ): Promise<AgentVersionDetail> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/notes`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async listInstructions(\n agentId: string,\n versionId: string,\n opts: ListAgentVersionInstructionsOptions = {},\n ): Promise<InstructionListResponse> {\n const query = serializeListOptions(opts);\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/instructions`,\n {\n method: 'GET',\n query,\n },\n );\n return res.json();\n },\n async createInstruction(\n agentId: string,\n versionId: string,\n payload: CreateInstructionRequest,\n ): Promise<InstructionCreatedResponse> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/instructions`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async updateInstruction(\n agentId: string,\n versionId: string,\n instructionId: string,\n payload: UpdateInstructionRequest,\n ): Promise<Instruction> {\n const res = await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/instructions/${instructionId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async deleteInstruction(\n agentId: string,\n versionId: string,\n instructionId: string,\n ): Promise<void> {\n await doFetch(\n `${base}/agents/${agentId}/versions/${versionId}/instructions/${instructionId}`,\n {\n method: 'DELETE',\n },\n );\n },\n };\n}\n","import type {\n AgentDetail,\n AgentSummary,\n AgentTagsResponse,\n BlueprintStage,\n BlueprintStageReorderRequest,\n BlueprintStageTrigger,\n ConnectPhoneRequest,\n CreateAgentBlueprintRequest,\n CreateAgentScheduleExceptionRequest,\n CreateAgentVersionRequest,\n CreateBlueprintStageRequest,\n CreateBlueprintStageTriggerRequest,\n CreateInstructionRequest,\n PublishAgentVersionRequest,\n UpdateAgentBlueprintRequest,\n UpdateAgentRequest,\n UpdateAgentScheduleExceptionRequest,\n UpdateAgentScheduleRequest,\n UpdateAgentVersionNotesRequest,\n UpdateBlueprintStageRequest,\n UpdateBlueprintStageTriggerRequest,\n UpdateInstructionRequest,\n} from '../types';\nimport type {\n createAgentBlueprintsApi,\n ListAgentBlueprintsOptions,\n} from '../api/agent-blueprints';\nimport type { createAgentPhonesApi } from '../api/agent-phones';\nimport type { createAgentScheduleApi } from '../api/agent-schedule';\nimport type {\n createAgentScheduleExceptionsApi,\n ListAgentScheduleExceptionsOptions,\n} from '../api/agent-schedule-exceptions';\nimport type {\n createAgentStagesApi,\n ListAgentStagesOptions,\n} from '../api/agent-stages';\nimport type { createAgentTagsApi } from '../api/agent-tags';\nimport type {\n createAgentStageTriggersApi,\n ListAgentStageTriggersOptions,\n} from '../api/agent-stage-triggers';\nimport type {\n createAgentVersionsApi,\n ListAgentVersionInstructionsOptions,\n ListAgentVersionsOptions,\n} from '../api/agent-versions';\n\ntype AgentTagsApi = ReturnType<typeof createAgentTagsApi>;\ntype AgentPhonesApi = ReturnType<typeof createAgentPhonesApi>;\ntype AgentScheduleApi = ReturnType<typeof createAgentScheduleApi>;\ntype AgentScheduleExceptionsApi = ReturnType<\n typeof createAgentScheduleExceptionsApi\n>;\ntype AgentVersionsApi = ReturnType<typeof createAgentVersionsApi>;\ntype AgentBlueprintsApi = ReturnType<typeof createAgentBlueprintsApi>;\ntype AgentStagesApi = ReturnType<typeof createAgentStagesApi>;\ntype AgentStageTriggersApi = ReturnType<typeof createAgentStageTriggersApi>;\n\ntype AgentTagsHelper = ReturnType<typeof bindAgentTags>;\ntype AgentPhonesHelper = ReturnType<typeof bindAgentPhones>;\ntype AgentScheduleHelper = ReturnType<typeof bindAgentSchedule>;\ntype AgentVersionsHelper = ReturnType<typeof bindAgentVersions>;\ntype AgentBlueprintsHelper = ReturnType<typeof bindAgentBlueprints>;\ntype AgentStageTriggersHelper = ReturnType<typeof bindAgentStageTriggers>;\ntype AgentStagesHelper = ReturnType<typeof bindAgentStages>;\n\ntype AgentBase = AgentSummary & Partial<Omit<AgentDetail, keyof AgentSummary>>;\n\nexport interface AgentEntity extends AgentBase {\n agentId: string;\n tagAssignments: AgentTagsHelper;\n phones: AgentPhonesHelper;\n schedule: AgentScheduleHelper;\n versions: AgentVersionsHelper;\n blueprints: AgentBlueprintsHelper;\n stages: AgentStagesHelper;\n save(patch: UpdateAgentRequest): Promise<AgentEntity>;\n delete(): Promise<void>;\n refresh(): Promise<AgentEntity>;\n}\n\nexport type AgentEntityFactoryOptions = {\n tagsApi: AgentTagsApi;\n phonesApi: AgentPhonesApi;\n scheduleApi: AgentScheduleApi;\n scheduleExceptionsApi: AgentScheduleExceptionsApi;\n versionsApi: AgentVersionsApi;\n blueprintsApi: AgentBlueprintsApi;\n stagesApi: AgentStagesApi;\n stageTriggersApi: AgentStageTriggersApi;\n reload(agentId: string): Promise<AgentEntity>;\n updateAgent(\n agentId: string,\n payload: UpdateAgentRequest,\n ): Promise<AgentEntity>;\n deleteAgent(agentId: string): Promise<void>;\n};\n\nexport const bindAgentStageTriggers = (\n api: AgentStageTriggersApi,\n agentId: string,\n blueprintId: string,\n stageId: string,\n) => ({\n list(opts?: ListAgentStageTriggersOptions) {\n return api.list(agentId, blueprintId, stageId, opts);\n },\n get(triggerId: string): Promise<BlueprintStageTrigger> {\n return api.get(agentId, blueprintId, stageId, triggerId);\n },\n create(payload: CreateBlueprintStageTriggerRequest) {\n return api.create(agentId, blueprintId, stageId, payload);\n },\n update(triggerId: string, payload: UpdateBlueprintStageTriggerRequest) {\n return api.update(agentId, blueprintId, stageId, triggerId, payload);\n },\n delete(triggerId: string) {\n return api.delete(agentId, blueprintId, stageId, triggerId);\n },\n});\n\nexport const bindAgentStages = (\n stagesApi: AgentStagesApi,\n triggersApi: AgentStageTriggersApi,\n agentId: string,\n) => {\n const forBlueprint = (blueprintId: string) => ({\n list(opts?: ListAgentStagesOptions) {\n return stagesApi.list(agentId, blueprintId, opts);\n },\n get(stageId: string): Promise<BlueprintStage> {\n return stagesApi.get(agentId, blueprintId, stageId);\n },\n create(payload: CreateBlueprintStageRequest) {\n return stagesApi.create(agentId, blueprintId, payload);\n },\n update(stageId: string, payload: UpdateBlueprintStageRequest) {\n return stagesApi.update(agentId, blueprintId, stageId, payload);\n },\n delete(stageId: string) {\n return stagesApi.delete(agentId, blueprintId, stageId);\n },\n reorder(payload: BlueprintStageReorderRequest) {\n return stagesApi.reorder(agentId, blueprintId, payload);\n },\n triggers(stageId: string): AgentStageTriggersHelper {\n return bindAgentStageTriggers(triggersApi, agentId, blueprintId, stageId);\n },\n });\n\n return Object.assign(forBlueprint, {\n list(blueprintId: string, opts?: ListAgentStagesOptions) {\n return stagesApi.list(agentId, blueprintId, opts);\n },\n get(blueprintId: string, stageId: string): Promise<BlueprintStage> {\n return stagesApi.get(agentId, blueprintId, stageId);\n },\n create(blueprintId: string, payload: CreateBlueprintStageRequest) {\n return stagesApi.create(agentId, blueprintId, payload);\n },\n update(\n blueprintId: string,\n stageId: string,\n payload: UpdateBlueprintStageRequest,\n ) {\n return stagesApi.update(agentId, blueprintId, stageId, payload);\n },\n delete(blueprintId: string, stageId: string) {\n return stagesApi.delete(agentId, blueprintId, stageId);\n },\n reorder(blueprintId: string, payload: BlueprintStageReorderRequest) {\n return stagesApi.reorder(agentId, blueprintId, payload);\n },\n triggers(blueprintId: string, stageId: string): AgentStageTriggersHelper {\n return bindAgentStageTriggers(triggersApi, agentId, blueprintId, stageId);\n },\n });\n};\n\nexport const bindAgentTags = (api: AgentTagsApi, agentId: string) => ({\n add(tagId: string): Promise<AgentTagsResponse> {\n return api.add(agentId, { tagId });\n },\n remove(tagId: string) {\n return api.remove(agentId, tagId);\n },\n});\n\nexport const bindAgentPhones = (api: AgentPhonesApi, agentId: string) => ({\n connect(payload: ConnectPhoneRequest) {\n return api.connect(agentId, payload);\n },\n disconnect(phoneId: string) {\n return api.disconnect(agentId, phoneId);\n },\n});\n\nexport const bindAgentScheduleExceptions = (\n api: AgentScheduleExceptionsApi,\n agentId: string,\n) => ({\n list(opts?: ListAgentScheduleExceptionsOptions) {\n return api.list(agentId, opts);\n },\n get(exceptionId: string) {\n return api.get(agentId, exceptionId);\n },\n create(payload: CreateAgentScheduleExceptionRequest) {\n return api.create(agentId, payload);\n },\n update(exceptionId: string, payload: UpdateAgentScheduleExceptionRequest) {\n return api.update(agentId, exceptionId, payload);\n },\n delete(exceptionId: string) {\n return api.delete(agentId, exceptionId);\n },\n});\n\nexport const bindAgentSchedule = (\n scheduleApi: AgentScheduleApi,\n exceptionsApi: AgentScheduleExceptionsApi,\n agentId: string,\n) => ({\n get() {\n return scheduleApi.get(agentId);\n },\n create(payload: UpdateAgentScheduleRequest) {\n return scheduleApi.create(agentId, payload);\n },\n update(payload: UpdateAgentScheduleRequest) {\n return scheduleApi.update(agentId, payload);\n },\n exceptions: bindAgentScheduleExceptions(exceptionsApi, agentId),\n});\n\nexport const bindAgentVersions = (api: AgentVersionsApi, agentId: string) => ({\n list(opts?: ListAgentVersionsOptions) {\n return api.list(agentId, opts);\n },\n get(versionId: string) {\n return api.get(agentId, versionId);\n },\n create(payload?: CreateAgentVersionRequest) {\n return api.create(agentId, payload);\n },\n clone(versionId: string) {\n return api.clone(agentId, versionId);\n },\n publish(versionId: string, payload?: PublishAgentVersionRequest) {\n return api.publish(agentId, versionId, payload);\n },\n updateNotes(versionId: string, payload: UpdateAgentVersionNotesRequest) {\n return api.updateNotes(agentId, versionId, payload);\n },\n instructions(versionId: string) {\n return {\n list(opts?: ListAgentVersionInstructionsOptions) {\n return api.listInstructions(agentId, versionId, opts);\n },\n create(payload: CreateInstructionRequest) {\n return api.createInstruction(agentId, versionId, payload);\n },\n update(instructionId: string, payload: UpdateInstructionRequest) {\n return api.updateInstruction(\n agentId,\n versionId,\n instructionId,\n payload,\n );\n },\n delete(instructionId: string) {\n return api.deleteInstruction(agentId, versionId, instructionId);\n },\n } as const;\n },\n});\n\nexport const bindAgentBlueprints = (\n api: AgentBlueprintsApi,\n agentId: string,\n) => ({\n list(opts?: ListAgentBlueprintsOptions) {\n return api.list(agentId, opts);\n },\n version(versionId: string) {\n return {\n get() {\n return api.get(agentId, versionId);\n },\n create(payload: CreateAgentBlueprintRequest) {\n return api.create(agentId, versionId, payload);\n },\n update(payload: UpdateAgentBlueprintRequest) {\n return api.update(agentId, versionId, payload);\n },\n } as const;\n },\n});\n\ntype AgentSnapshot = AgentDetail | AgentSummary;\n\nexport const createAgentEntity = (\n dto: AgentSnapshot,\n options: AgentEntityFactoryOptions,\n): AgentEntity => {\n const {\n tagsApi,\n phonesApi,\n scheduleApi,\n scheduleExceptionsApi,\n versionsApi,\n blueprintsApi,\n stagesApi,\n stageTriggersApi,\n reload,\n updateAgent,\n deleteAgent,\n } = options;\n\n const entity: AgentEntity = {\n ...(dto as AgentBase),\n tagAssignments: bindAgentTags(tagsApi, dto.agentId),\n phones: bindAgentPhones(phonesApi, dto.agentId),\n schedule: bindAgentSchedule(\n scheduleApi,\n scheduleExceptionsApi,\n dto.agentId,\n ),\n versions: bindAgentVersions(versionsApi, dto.agentId),\n blueprints: bindAgentBlueprints(blueprintsApi, dto.agentId),\n stages: bindAgentStages(stagesApi, stageTriggersApi, dto.agentId),\n async save(patch: UpdateAgentRequest) {\n return updateAgent(dto.agentId, patch);\n },\n async delete() {\n await deleteAgent(dto.agentId);\n },\n async refresh() {\n return reload(dto.agentId);\n },\n };\n\n return Object.freeze(entity);\n};\n","import type {\n AgentDetail,\n AgentListResponse,\n AgentSummary,\n ClientConfig,\n CreateAgentRequest,\n ForkAgentFromTemplateRequest,\n ListQueryOptions,\n PaginatedResult,\n UpdateAgentRequest,\n} from '../types';\nimport type { AgentEntity } from '../entities/agent';\nimport type { createAgentBlueprintsApi } from './agent-blueprints';\nimport type { createAgentPhonesApi } from './agent-phones';\nimport type { createAgentScheduleApi } from './agent-schedule';\nimport type { createAgentScheduleExceptionsApi } from './agent-schedule-exceptions';\nimport type { createAgentStagesApi } from './agent-stages';\nimport type { createAgentStageTriggersApi } from './agent-stage-triggers';\nimport type { createAgentTagsApi } from './agent-tags';\nimport type { createAgentVersionsApi } from './agent-versions';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createAgentEntity } from '../entities/agent';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\ntype AgentEntityDependencies = {\n tagsApi: ReturnType<typeof createAgentTagsApi>;\n phonesApi: ReturnType<typeof createAgentPhonesApi>;\n scheduleApi: ReturnType<typeof createAgentScheduleApi>;\n scheduleExceptionsApi: ReturnType<typeof createAgentScheduleExceptionsApi>;\n versionsApi: ReturnType<typeof createAgentVersionsApi>;\n blueprintsApi: ReturnType<typeof createAgentBlueprintsApi>;\n stagesApi: ReturnType<typeof createAgentStagesApi>;\n stageTriggersApi: ReturnType<typeof createAgentStageTriggersApi>;\n};\n\nexport type ListAgentsOptions = Pick<\n ListQueryOptions,\n 'page' | 'limit' | 'filter'\n>;\n\nexport type AgentsApi = {\n list(\n options?: ListAgentsOptions,\n ): Promise<PaginatedResult<AgentListResponse, ListAgentsOptions>>;\n get(agentId: string): Promise<AgentDetail>;\n create(payload: CreateAgentRequest): Promise<AgentDetail>;\n forkFromTemplate(payload: ForkAgentFromTemplateRequest): Promise<AgentDetail>;\n update(agentId: string, payload: UpdateAgentRequest): Promise<AgentDetail>;\n delete(agent: string | AgentEntity): Promise<void>;\n};\n\ntype AgentListResponseWithEntities = {\n data: AgentEntity[];\n meta: AgentListResponse['meta'];\n};\n\nexport type AgentsApiWithEntities = Omit<\n AgentsApi,\n 'get' | 'create' | 'update' | 'list' | 'forkFromTemplate'\n> & {\n list(\n options?: ListAgentsOptions,\n ): Promise<PaginatedResult<AgentListResponseWithEntities, ListAgentsOptions>>;\n get(agentId: string): Promise<AgentEntity>;\n create(payload: CreateAgentRequest): Promise<AgentEntity>;\n forkFromTemplate(payload: ForkAgentFromTemplateRequest): Promise<AgentEntity>;\n update(agentId: string, payload: UpdateAgentRequest): Promise<AgentEntity>;\n};\n\nexport function createAgentsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n relatedApis?: AgentEntityDependencies,\n): AgentsApi | AgentsApiWithEntities {\n const { base, doFetch } = createHttp(cfg);\n\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchAgentsPage = async (\n options: ListAgentsOptions = {},\n ): Promise<AgentListResponse> => {\n const sanitizedOptions: ListAgentsOptions = {\n page: options.page,\n limit: options.limit,\n filter: options.filter,\n };\n const query = serializeListOptions(sanitizedOptions);\n const res = await doFetch(`${base}/agents`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n const listAgents = async (\n options: ListAgentsOptions = {},\n ): Promise<PaginatedResult<AgentListResponse, ListAgentsOptions>> => {\n const normalizedOptions = { ...(options ?? {}) } as ListAgentsOptions;\n const response = await fetchAgentsPage(normalizedOptions);\n return attachPaginator(response, fetchAgentsPage, normalizedOptions);\n };\n\n const getAgentDetail = async (agentId: string): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/agents/${agentId}`, {\n method: 'GET',\n });\n return res.json();\n };\n\n const createAgent = async (\n payload: CreateAgentRequest,\n ): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/agents`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n });\n return res.json();\n };\n\n const forkAgentFromTemplate = async (\n payload: ForkAgentFromTemplateRequest,\n ): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/agents/from-template`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n });\n return res.json();\n };\n\n const updateAgent = async (\n agentId: string,\n payload: UpdateAgentRequest,\n ): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/agents/${agentId}`, {\n method: 'PATCH',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n });\n return res.json();\n };\n\n const resolveAgentId = (agent: string | AgentEntity): string => {\n return typeof agent === 'string' ? agent : agent.agentId;\n };\n\n const deleteAgent = async (agent: string | AgentEntity): Promise<void> => {\n const agentId = resolveAgentId(agent);\n await doFetch(`${base}/agents/${agentId}`, {\n method: 'DELETE',\n });\n };\n\n const baseApi: AgentsApi = {\n list: listAgents,\n get: getAgentDetail,\n create: createAgent,\n forkFromTemplate: forkAgentFromTemplate,\n update: updateAgent,\n delete: deleteAgent,\n };\n\n if (!relatedApis) {\n return baseApi;\n }\n\n const wrapAgent = (detail: AgentDetail | AgentSummary): AgentEntity =>\n createAgentEntity(detail, {\n tagsApi: relatedApis.tagsApi,\n phonesApi: relatedApis.phonesApi,\n scheduleApi: relatedApis.scheduleApi,\n scheduleExceptionsApi: relatedApis.scheduleExceptionsApi,\n versionsApi: relatedApis.versionsApi,\n blueprintsApi: relatedApis.blueprintsApi,\n stagesApi: relatedApis.stagesApi,\n stageTriggersApi: relatedApis.stageTriggersApi,\n reload: async (agentId: string) => {\n const latest = await getAgentDetail(agentId);\n return wrapAgent(latest);\n },\n updateAgent: async (agentId: string, payload: UpdateAgentRequest) => {\n const updated = await updateAgent(agentId, payload);\n return wrapAgent(updated);\n },\n deleteAgent: async (agentId: string) => {\n await deleteAgent(agentId);\n },\n });\n\n return {\n ...baseApi,\n async list(options: ListAgentsOptions = {}) {\n const normalizedOptions = { ...(options ?? {}) } as ListAgentsOptions;\n const applyWrap = async (\n opts: ListAgentsOptions,\n ): Promise<AgentListResponseWithEntities> => {\n const result = await fetchAgentsPage(opts);\n const items = Array.isArray(result.data) ? result.data : [];\n return {\n ...result,\n data: items.map((summary) => wrapAgent(summary)),\n } satisfies AgentListResponseWithEntities;\n };\n\n const initial = await applyWrap(normalizedOptions);\n return attachPaginator(initial, applyWrap, normalizedOptions);\n },\n async get(agentId: string) {\n const detail = await getAgentDetail(agentId);\n return wrapAgent(detail);\n },\n async create(payload: CreateAgentRequest) {\n const detail = await createAgent(payload);\n return wrapAgent(detail);\n },\n async forkFromTemplate(payload: ForkAgentFromTemplateRequest) {\n const detail = await forkAgentFromTemplate(payload);\n return wrapAgent(detail);\n },\n async update(agentId: string, payload: UpdateAgentRequest) {\n const detail = await updateAgent(agentId, payload);\n return wrapAgent(detail);\n },\n } satisfies AgentsApiWithEntities;\n}\n","import type {\n ApiKeyListResponse,\n CreateApiKeyRequest,\n CreateApiKeyResponse,\n ClientConfig,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport type ApiKeysApi = {\n list(): Promise<ApiKeyListResponse>;\n create(payload: CreateApiKeyRequest): Promise<CreateApiKeyResponse>;\n revoke(apiKeyId: string): Promise<void>;\n show(apiKeyId: string): Promise<CreateApiKeyResponse>;\n};\n\nexport function createApiKeysApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n): ApiKeysApi {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n return {\n async list() {\n const res = await doFetch(`${base}/api-keys`, { method: 'GET' });\n return res.json() as Promise<ApiKeyListResponse>;\n },\n async create(payload) {\n const res = await doFetch(`${base}/api-keys`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json() as Promise<CreateApiKeyResponse>;\n },\n async revoke(apiKeyId) {\n await doFetch(`${base}/api-keys/${apiKeyId}`, {\n method: 'DELETE',\n });\n },\n async show(apiKeyId) {\n const res = await doFetch(`${base}/api-keys/${apiKeyId}/show`, {\n method: 'GET',\n });\n return res.json() as Promise<CreateApiKeyResponse>;\n },\n };\n}\n","import type {\n CatalogTemplateDetail,\n CatalogTemplateSummary,\n CatalogTemplateVisibility,\n ClientConfig,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport type ListCatalogTemplatesOptions = {\n visibility?: CatalogTemplateVisibility;\n tags?: string[];\n};\n\nexport function createCatalogTemplatesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n\n const buildListQuery = (options: ListCatalogTemplatesOptions) => {\n const query: Record<string, string | string[] | undefined> = {};\n if (options.visibility) {\n query.visibility = options.visibility;\n }\n if (options.tags && options.tags.length > 0) {\n query.tags = options.tags;\n }\n return query;\n };\n\n return {\n async list(\n options: ListCatalogTemplatesOptions = {},\n ): Promise<CatalogTemplateSummary[]> {\n const res = await doFetch(`${base}/catalogs/templates`, {\n method: 'GET',\n query: buildListQuery(options),\n });\n return res.json();\n },\n async get(templateId: string): Promise<CatalogTemplateDetail> {\n const res = await doFetch(`${base}/catalogs/templates/${templateId}`, {\n method: 'GET',\n });\n return res.json();\n },\n };\n}\n","import type {\n CatalogItemCreateRequest,\n CatalogItemDetail,\n CatalogItemListResponse,\n ClientConfig,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListCatalogItemsOptions = ListQueryOptions;\n\ntype CatalogItemListWithMeta = CatalogItemListResponse & {\n meta?: PaginationMeta;\n};\n\nexport function createCatalogsApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchCatalogItemsPage = async (\n options: ListCatalogItemsOptions = {},\n ): Promise<CatalogItemListWithMeta> => {\n const query = serializeListOptions(options ?? {});\n const res = await doFetch(`${base}/catalogs/items`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n options: ListCatalogItemsOptions = {},\n ): Promise<\n PaginatedResult<CatalogItemListResponse, ListCatalogItemsOptions>\n > {\n const normalizedOptions = {\n ...(options ?? {}),\n } as ListCatalogItemsOptions;\n const response = await fetchCatalogItemsPage(normalizedOptions);\n return attachPaginator(\n response,\n fetchCatalogItemsPage,\n normalizedOptions,\n );\n },\n async get(itemId: string): Promise<CatalogItemDetail> {\n const res = await doFetch(`${base}/catalogs/items/${itemId}`, {\n method: 'GET',\n });\n return res.json();\n },\n async create(\n payload: CatalogItemCreateRequest,\n ): Promise<CatalogItemDetail> {\n const res = await doFetch(`${base}/catalogs/items`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async remove(itemId: string): Promise<void> {\n await doFetch(`${base}/catalogs/items/${itemId}`, {\n method: 'DELETE',\n });\n },\n };\n}\n","import type {\n ClientConfig,\n ExecuteToolRequest,\n ExecuteToolResponse,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n ToolConnectionRequest,\n ToolConnectionResponse,\n ToolListResponse,\n ToolResourceListResponse,\n ToolResourceReloadResponse,\n ToolResourceUploadRequest,\n ToolResourceUploadResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nconst IDEMPOTENCY_HEADER = 'Idempotency-Key';\n\ntype IdempotentRequestOptions = {\n idempotencyKey?: string;\n};\n\ntype CryptoLike = {\n randomUUID?: () => string;\n getRandomValues?: (array: Uint8Array) => Uint8Array | void;\n};\n\nconst generateIdempotencyKey = (explicit?: string): string => {\n if (explicit && explicit.length > 0) {\n return explicit;\n }\n\n const globalRef = globalThis as unknown as {\n crypto?: CryptoLike;\n };\n\n const cryptoRef = globalRef?.crypto;\n if (cryptoRef?.randomUUID) {\n return cryptoRef.randomUUID();\n }\n\n if (cryptoRef?.getRandomValues) {\n const buffer = new Uint8Array(16);\n cryptoRef.getRandomValues(buffer);\n return Array.from(buffer, (byte) =>\n byte.toString(16).padStart(2, '0'),\n ).join('');\n }\n\n const randomChunk = () => Math.random().toString(36).slice(2, 10);\n return `idemp_${Date.now().toString(36)}_${randomChunk()}${randomChunk()}`;\n};\n\nexport type ListToolsOptions = ListQueryOptions & {\n agentType?: 'chat' | 'voice';\n};\n\nexport type ListToolResourcesOptions = Pick<\n ListQueryOptions,\n 'page' | 'limit'\n> & {\n type?: 'document' | 'media' | 'file';\n};\n\ntype UploadToolResourcePayload =\n | FormData\n | (Omit<ToolResourceUploadRequest, 'file'> & {\n file: unknown;\n });\n\ntype ToolsCatalogWithMeta = ToolListResponse & {\n meta?: PaginationMeta;\n};\n\ntype ToolResourceListWithMeta = ToolResourceListResponse & {\n meta?: PaginationMeta;\n};\n\nconst isFormData = (value: unknown): value is FormData => {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n};\n\nconst toFormData = (payload: UploadToolResourcePayload): FormData => {\n if (isFormData(payload)) {\n return payload;\n }\n\n if (typeof FormData === 'undefined') {\n throw new TypeError(\n 'FormData is not available in this environment. Pass a FormData instance instead.',\n );\n }\n\n const formData = new FormData();\n formData.append('file', payload.file as any);\n\n if (payload.type) {\n formData.append('type', payload.type);\n }\n\n if (payload.title) {\n formData.append('title', payload.title);\n }\n\n if (payload.metadata) {\n formData.append('metadata', JSON.stringify(payload.metadata));\n }\n\n return formData;\n};\n\nexport function createToolsApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\n\n const fetchToolsPage = async (\n options: ListToolsOptions = {},\n ): Promise<ToolsCatalogWithMeta> => {\n const { agentType, ...queryOptions } = options ?? {};\n const query = serializeListOptions(queryOptions, { agentType });\n const res = await doFetch(`${base}/tools`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n const fetchToolResourcesPage = async (\n toolId: string,\n options: ListToolResourcesOptions = {},\n ): Promise<ToolResourceListWithMeta> => {\n const { type, ...queryOptions } = options ?? {};\n const query = serializeListOptions(queryOptions, { type });\n const res = await doFetch(`${base}/tools/${toolId}/resources`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n options: ListToolsOptions = {},\n ): Promise<PaginatedResult<ToolListResponse, ListToolsOptions>> {\n const normalizedOptions = { ...(options ?? {}) } as ListToolsOptions;\n const response = await fetchToolsPage(normalizedOptions);\n return attachPaginator(response, fetchToolsPage, normalizedOptions);\n },\n async listResources(\n toolId: string,\n options: ListToolResourcesOptions = {},\n ): Promise<\n PaginatedResult<ToolResourceListResponse, ListToolResourcesOptions>\n > {\n const normalizedOptions = {\n ...(options ?? {}),\n } as ListToolResourcesOptions;\n const fetchPage = (opts: ListToolResourcesOptions) =>\n fetchToolResourcesPage(toolId, opts);\n const response = await fetchPage(normalizedOptions);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async uploadResource(\n toolId: string,\n payload: UploadToolResourcePayload,\n ): Promise<ToolResourceUploadResponse> {\n const formData = toFormData(payload);\n const res = await doFetch(`${base}/tools/${toolId}/resources`, {\n method: 'POST',\n body: formData,\n });\n return res.json();\n },\n async deleteResource(toolId: string, resourceId: string): Promise<void> {\n await doFetch(`${base}/tools/${toolId}/resources/${resourceId}`, {\n method: 'DELETE',\n });\n },\n async reloadResource(\n toolId: string,\n resourceId: string,\n ): Promise<ToolResourceReloadResponse> {\n const res = await doFetch(\n `${base}/tools/${toolId}/resources/${resourceId}/reload`,\n {\n method: 'POST',\n },\n );\n return res.json();\n },\n async execute(\n toolId: string,\n payload: ExecuteToolRequest,\n options: IdempotentRequestOptions = {},\n ): Promise<ExecuteToolResponse> {\n const idempotencyKey = generateIdempotencyKey(options.idempotencyKey);\n const res = await doFetch(`${base}/tools/${toolId}/execute`, {\n method: 'POST',\n headers: {\n ...jsonHeaders,\n [IDEMPOTENCY_HEADER]: idempotencyKey,\n },\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async connect(\n toolId: string,\n payload: ToolConnectionRequest,\n options: IdempotentRequestOptions = {},\n ): Promise<ToolConnectionResponse> {\n const idempotencyKey = generateIdempotencyKey(options.idempotencyKey);\n const res = await doFetch(`${base}/tools/${toolId}/connections`, {\n method: 'POST',\n headers: {\n ...jsonHeaders,\n [IDEMPOTENCY_HEADER]: idempotencyKey,\n },\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type { CatalogItemSummary, VoiceSummary } from '../types';\n\nconst FALLBACK_LOCALE = 'und';\nconst FALLBACK_PROVIDER = 'catalog';\n\ntype VoiceMetadata = {\n language?: string;\n locale?: string | null;\n gender?: 'female' | 'male' | 'neutral';\n provider?: string | null;\n previewUrl?: string | null;\n tags?: string[];\n providerVoiceId?: string;\n [key: string]: unknown;\n};\n\nexport function catalogItemToVoice(item: CatalogItemSummary): VoiceSummary {\n const metadata = normalizeVoiceMetadata(item.metadata);\n const locale = metadata.locale ?? metadata.language ?? FALLBACK_LOCALE;\n\n return {\n id: item.id,\n providerVoiceId: metadata.providerVoiceId ?? item.systemIdentifier,\n name: item.name,\n gender: metadata.gender,\n locale,\n tags: metadata.tags ?? [],\n previewUrl: metadata.previewUrl ?? undefined,\n provider: metadata.provider ?? FALLBACK_PROVIDER,\n };\n}\n\nfunction normalizeVoiceMetadata(\n metadata: CatalogItemSummary['metadata'],\n): VoiceMetadata {\n if (!metadata || typeof metadata !== 'object') {\n return {};\n }\n\n const raw = metadata as Record<string, unknown>;\n\n return {\n language: pickString(raw.language),\n locale: pickString(raw.locale, true),\n gender: pickGender(raw.gender),\n provider: pickString(raw.provider, true),\n previewUrl: pickString(raw.previewUrl, true),\n tags: pickStringArray(raw.tags),\n providerVoiceId: pickString(raw.providerVoiceId),\n };\n}\n\nfunction pickString(\n value: unknown,\n allowNull = false,\n): string | null | undefined {\n if (typeof value === 'string') {\n return value;\n }\n\n if (allowNull && value === null) {\n return null;\n }\n\n return undefined;\n}\n\nfunction pickStringArray(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n const items = value.filter(\n (item): item is string => typeof item === 'string',\n );\n return items.length > 0 ? items : undefined;\n}\n\nfunction pickGender(value: unknown): VoiceSummary['gender'] | undefined {\n if (value === 'female' || value === 'male' || value === 'neutral') {\n return value;\n }\n\n return undefined;\n}\n","import { Query } from '@getsupervisor/api-query-builder';\n\nimport type {\n ListQueryOptions,\n QueryFilterOperators,\n QueryValue,\n} from '../types';\n\nexport type ListFilter = ListQueryOptions['filter'];\n\ntype QueryBuilderLike = { build: () => string };\ntype FilterRecord = Record<string, QueryValue | QueryFilterOperators>;\n\nexport function createCatalogTypeQuery(type: string): Query {\n return new Query((qb) => qb.eq('type', type));\n}\n\nexport function ensureCatalogTypeFilter(\n filter: ListFilter,\n type: string,\n): ListFilter {\n const requiredQuery = createCatalogTypeQuery(type);\n const requiredExpression = requiredQuery.build();\n\n if (filter === undefined || filter === null) {\n return requiredQuery;\n }\n\n if (typeof filter === 'string') {\n return ensureTypeForString(filter, requiredQuery, requiredExpression);\n }\n\n if (isQueryBuilderLike(filter)) {\n return ensureTypeForBuilder(filter, requiredQuery, requiredExpression);\n }\n\n if (isFilterRecord(filter)) {\n return ensureTypeForObject(filter, type);\n }\n\n return filter;\n}\n\nfunction ensureTypeForString(\n value: string,\n requiredQuery: Query,\n requiredExpression: string,\n): string | Query {\n const normalized = value.trim();\n if (!normalized.length) {\n return requiredQuery;\n }\n\n return containsTypePredicate(normalized, requiredExpression)\n ? normalized\n : `and(${requiredExpression},${normalized})`;\n}\n\nfunction ensureTypeForBuilder(\n builder: QueryBuilderLike,\n requiredQuery: Query,\n requiredExpression: string,\n): QueryBuilderLike | Query {\n const normalized = builder.build().trim();\n if (!normalized.length) {\n return requiredQuery;\n }\n\n if (containsTypePredicate(normalized, requiredExpression)) {\n return builder;\n }\n\n const combined = `and(${requiredExpression},${normalized})`;\n return {\n build: () => combined,\n };\n}\n\nfunction ensureTypeForObject(\n candidate: FilterRecord,\n type: string,\n): FilterRecord {\n if (hasTypeEquality(candidate, type)) {\n return candidate;\n }\n\n const typeConfig = candidate.type;\n const normalizedType: QueryFilterOperators = isFilterOperators(typeConfig)\n ? { ...typeConfig, eq: type }\n : { eq: type };\n\n return {\n ...candidate,\n type: normalizedType,\n };\n}\n\nfunction hasTypeEquality(candidate: FilterRecord, type: string): boolean {\n const typeConfig = candidate.type;\n\n if (typeof typeConfig === 'string') {\n return typeConfig === type;\n }\n\n if (!isFilterOperators(typeConfig)) {\n return false;\n }\n\n const equality = typeConfig.eq;\n return typeof equality === 'string' ? equality === type : false;\n}\n\nfunction containsTypePredicate(expression: string, required: string): boolean {\n const normalizedExpression = expression.replace(/\\s+/g, '').toLowerCase();\n const normalizedRequired = required.replace(/\\s+/g, '').toLowerCase();\n\n return normalizedExpression.includes(normalizedRequired);\n}\n\nfunction isQueryBuilderLike(candidate: unknown): candidate is QueryBuilderLike {\n return (\n !!candidate &&\n typeof candidate === 'object' &&\n typeof (candidate as QueryBuilderLike).build === 'function'\n );\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\nfunction isFilterRecord(value: unknown): value is FilterRecord {\n return isPlainObject(value);\n}\n\nfunction isFilterOperators(value: unknown): value is QueryFilterOperators {\n return isPlainObject(value);\n}\n","import type {\n CatalogItemListResponse,\n ClientConfig,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n VoiceListResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { catalogItemToVoice } from '../utils/catalog-voices';\nimport { createHttp } from '../http';\nimport { ensureCatalogTypeFilter } from '../utils/catalog-filter';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListVoicesOptions = ListQueryOptions & {\n agentId?: string;\n agentVersionId?: string;\n gender?: 'female' | 'male' | 'neutral';\n locale?: string;\n page?: number;\n pageSize?: number;\n};\n\ntype VoiceListResponseWithMeta = VoiceListResponse & {\n meta?: PaginationMeta;\n};\n\nfunction mapCatalogResponseToVoiceList(\n response: CatalogItemListResponse,\n): VoiceListResponseWithMeta {\n return {\n data: response.data\n .filter((item) => item.type === 'voice')\n .map(catalogItemToVoice),\n meta: response.meta,\n };\n}\n\nexport function createVoicesApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, doFetch } = createHttp(cfg);\n\n const fetchVoicesPage = async (\n options: ListVoicesOptions = {},\n ): Promise<VoiceListResponseWithMeta> => {\n const normalizedOptions: ListVoicesOptions = {\n ...options,\n filter: ensureCatalogTypeFilter(options.filter, 'voice'),\n };\n const { agentId, agentVersionId, gender, locale } = normalizedOptions;\n\n const query = serializeListOptions(\n {\n page: normalizedOptions.page,\n limit: normalizedOptions.limit ?? normalizedOptions.pageSize,\n sort: normalizedOptions.sort,\n fields: normalizedOptions.fields,\n include: normalizedOptions.include,\n search: normalizedOptions.search,\n filter: normalizedOptions.filter,\n or: normalizedOptions.or,\n },\n {\n agentId,\n agentVersionId,\n gender,\n locale,\n },\n );\n const res = await doFetch(`${base}/catalogs/items`, {\n method: 'GET',\n query,\n });\n const raw = (await res.json()) as CatalogItemListResponse;\n\n return mapCatalogResponseToVoiceList(raw);\n };\n\n return {\n async list(\n options: ListVoicesOptions = {},\n ): Promise<PaginatedResult<VoiceListResponse, ListVoicesOptions>> {\n const normalizedOptions = { ...(options ?? {}) } as ListVoicesOptions;\n const response = await fetchVoicesPage(normalizedOptions);\n return attachPaginator(response, fetchVoicesPage, normalizedOptions);\n },\n };\n}\n","import type {\n ClientConfig,\n CreateEventSubscriptionRequest,\n CreateWebhookRequest,\n EventSubscriptionDetail,\n EventSubscriptionListResponse,\n ListQueryOptions,\n PaginatedResult,\n UpdateEventSubscriptionRequest,\n UpdateWebhookRequest,\n WebhookDetail,\n WebhookListResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListWebhooksOptions = Pick<\n ListQueryOptions,\n 'page' | 'limit' | 'sort' | 'fields' | 'include' | 'search' | 'filter'\n>;\n\nexport function createWebhooksApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const fetchWebhooksPage = async (\n options: ListWebhooksOptions = {},\n ): Promise<WebhookListResponse> => {\n // Importante: no incluir `or` en estas rutas según el estándar\n const query = serializeListOptions({\n page: options.page,\n limit: options.limit,\n sort: options.sort,\n fields: options.fields,\n include: options.include,\n search: options.search,\n filter: options.filter,\n });\n\n const res = await doFetch(`${base}/webhooks`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async list(\n options: ListWebhooksOptions = {},\n ): Promise<PaginatedResult<WebhookListResponse, ListWebhooksOptions>> {\n const normalized = { ...(options ?? {}) } as ListWebhooksOptions;\n const response = await fetchWebhooksPage(normalized);\n return attachPaginator(response, fetchWebhooksPage, normalized);\n },\n\n async create(payload: CreateWebhookRequest): Promise<WebhookDetail> {\n const res = await doFetch(`${base}/webhooks`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n\n async get(webhookId: string): Promise<WebhookDetail> {\n const res = await doFetch(`${base}/webhooks/${webhookId}`, {\n method: 'GET',\n });\n return res.json();\n },\n\n async update(\n webhookId: string,\n payload: UpdateWebhookRequest,\n ): Promise<WebhookDetail> {\n const res = await doFetch(`${base}/webhooks/${webhookId}`, {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n\n async delete(webhookId: string): Promise<void> {\n await doFetch(`${base}/webhooks/${webhookId}`, { method: 'DELETE' });\n },\n\n // Subscriptions\n async listSubscriptions(\n webhookId: string,\n options: ListWebhooksOptions = {},\n ): Promise<\n PaginatedResult<EventSubscriptionListResponse, ListWebhooksOptions>\n > {\n const fetchPage = async (\n opts: ListWebhooksOptions,\n ): Promise<EventSubscriptionListResponse> => {\n const query = serializeListOptions({\n page: opts.page,\n limit: opts.limit,\n sort: opts.sort,\n fields: opts.fields,\n include: opts.include,\n search: opts.search,\n filter: opts.filter,\n });\n const res = await doFetch(\n `${base}/webhooks/${webhookId}/subscriptions`,\n { method: 'GET', query },\n );\n return res.json();\n };\n\n const normalized = { ...(options ?? {}) } as ListWebhooksOptions;\n const response = await fetchPage(normalized);\n return attachPaginator(response, fetchPage, normalized);\n },\n\n async createSubscription(\n webhookId: string,\n payload: CreateEventSubscriptionRequest,\n ): Promise<EventSubscriptionDetail> {\n const res = await doFetch(`${base}/webhooks/${webhookId}/subscriptions`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n\n async getSubscription(\n webhookId: string,\n subscriptionId: string,\n ): Promise<EventSubscriptionDetail> {\n const res = await doFetch(\n `${base}/webhooks/${webhookId}/subscriptions/${subscriptionId}`,\n { method: 'GET' },\n );\n return res.json();\n },\n\n async updateSubscription(\n webhookId: string,\n subscriptionId: string,\n payload: UpdateEventSubscriptionRequest,\n ): Promise<EventSubscriptionDetail> {\n const res = await doFetch(\n `${base}/webhooks/${webhookId}/subscriptions/${subscriptionId}`,\n {\n method: 'PATCH',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n\n async deleteSubscription(\n webhookId: string,\n subscriptionId: string,\n ): Promise<void> {\n await doFetch(\n `${base}/webhooks/${webhookId}/subscriptions/${subscriptionId}`,\n { method: 'DELETE' },\n );\n },\n };\n}\n","import type {\n ClientConfig,\n ListQueryOptions,\n PaginatedResult,\n PaginationMeta,\n WorkspaceEnableRequest,\n WorkspaceEnableResponse,\n WorkspacePhoneChannel,\n WorkspacePhonesResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { attachPaginator } from '../utils/pagination';\nimport { createHttp } from '../http';\nimport { serializeListOptions } from '../utils/query';\n\nexport type ListWorkspacePhonesOptions = ListQueryOptions & {\n channel?: WorkspacePhoneChannel;\n};\n\ntype WorkspacePhonesResponseWithMeta = WorkspacePhonesResponse & {\n meta?: PaginationMeta;\n};\n\nexport function createWorkspacesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\n\n const fetchPhonesPage = async (\n workspaceId: string,\n opts: ListWorkspacePhonesOptions = {},\n ): Promise<WorkspacePhonesResponseWithMeta> => {\n const { channel } = opts ?? {};\n const query = serializeListOptions(\n {\n page: opts.page,\n limit: opts.limit,\n sort: opts.sort,\n fields: opts.fields,\n include: opts.include,\n search: opts.search,\n filter: opts.filter,\n or: opts.or,\n },\n { channel },\n );\n const res = await doFetch(`${base}/workspaces/${workspaceId}/phones`, {\n method: 'GET',\n query,\n });\n return res.json();\n };\n\n return {\n async listPhones(\n workspaceId: string,\n opts: ListWorkspacePhonesOptions = {},\n ): Promise<\n PaginatedResult<WorkspacePhonesResponse, ListWorkspacePhonesOptions>\n > {\n const normalizedOptions = {\n ...(opts ?? {}),\n } as ListWorkspacePhonesOptions;\n const response = await fetchPhonesPage(workspaceId, normalizedOptions);\n const fetchPage = (options: ListWorkspacePhonesOptions) =>\n fetchPhonesPage(workspaceId, options);\n return attachPaginator(response, fetchPage, normalizedOptions);\n },\n async enable(\n workspaceId: string,\n payload: WorkspaceEnableRequest,\n ): Promise<WorkspaceEnableResponse> {\n const res = await doFetch(`${base}/workspaces/${workspaceId}/enable`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type { AgentsApiWithEntities } from './api/agents';\nimport type { ClientConfig } from './types';\nimport type { RetryPolicy } from './errors';\nimport {\n bindAgentBlueprints,\n bindAgentPhones,\n bindAgentSchedule,\n bindAgentScheduleExceptions,\n bindAgentStages,\n bindAgentStageTriggers,\n bindAgentTags,\n bindAgentVersions,\n} from './entities/agent';\nimport { createAgentBlueprintsApi } from './api/agent-blueprints';\nimport { createAgentPhonesApi } from './api/agent-phones';\nimport { createAgentsApi } from './api/agents';\nimport { createAgentScheduleApi } from './api/agent-schedule';\nimport { createAgentScheduleExceptionsApi } from './api/agent-schedule-exceptions';\nimport { createAgentStagesApi } from './api/agent-stages';\nimport { createAgentStageTriggersApi } from './api/agent-stage-triggers';\nimport { createAgentTagsApi } from './api/agent-tags';\nimport { createAgentVersionsApi } from './api/agent-versions';\nimport { createApiKeysApi } from './api/api-keys';\nimport { createCatalogsApi } from './api/catalogs';\nimport { createCatalogTemplatesApi } from './api/catalog-templates';\nimport { createToolsApi } from './api/tools';\nimport { createVoicesApi } from './api/voices';\nimport { createWebhooksApi } from './api/webhooks';\nimport { createWorkspacesApi } from './api/workspaces';\n\nexport function createClient(\n initialCfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const runtimeCfg: ClientConfig & { retry?: RetryPolicy } = {\n ...initialCfg,\n };\n\n const resolveWorkspaceId = () =>\n runtimeCfg.workspaceId ?? runtimeCfg.getWorkspaceId?.();\n\n const resolveApiKey = () => runtimeCfg.apiKey ?? runtimeCfg.getApiKey?.();\n\n const resolveAccessToken = () =>\n runtimeCfg.accessToken ?? runtimeCfg.getAccessToken?.();\n\n const setWorkspaceId = (workspaceId?: string) => {\n runtimeCfg.workspaceId = workspaceId;\n };\n\n const setWorkspaceGetter = (\n getter?: (() => string | undefined) | undefined,\n ) => {\n runtimeCfg.getWorkspaceId = getter;\n };\n\n const setApiKey = (apiKey?: string) => {\n runtimeCfg.apiKey = apiKey;\n };\n\n const setApiKeyGetter = (getter?: (() => string | undefined) | undefined) => {\n runtimeCfg.getApiKey = getter;\n };\n\n const setAccessToken = (token?: string) => {\n runtimeCfg.accessToken = token;\n };\n\n const setAccessTokenGetter = (\n getter?: (() => string | undefined) | undefined,\n ) => {\n runtimeCfg.getAccessToken = getter;\n };\n\n const tagsApi = createAgentTagsApi(runtimeCfg);\n const phonesApi = createAgentPhonesApi(runtimeCfg);\n const scheduleApi = createAgentScheduleApi(runtimeCfg);\n const scheduleExceptionsApi = createAgentScheduleExceptionsApi(runtimeCfg);\n const versionsApi = createAgentVersionsApi(runtimeCfg);\n const blueprintsApi = createAgentBlueprintsApi(runtimeCfg);\n const stageTriggersApi = createAgentStageTriggersApi(runtimeCfg);\n const stagesApi = createAgentStagesApi(runtimeCfg);\n const voicesApi = createVoicesApi(runtimeCfg);\n const apiKeysApi = createApiKeysApi(runtimeCfg);\n const catalogsApi = createCatalogsApi(runtimeCfg);\n const catalogTemplatesApi = createCatalogTemplatesApi(runtimeCfg);\n const webhooksApi = createWebhooksApi(runtimeCfg);\n\n const agentsApi = createAgentsApi(runtimeCfg, {\n tagsApi,\n phonesApi,\n scheduleApi,\n scheduleExceptionsApi,\n versionsApi,\n blueprintsApi,\n stagesApi,\n stageTriggersApi,\n }) as AgentsApiWithEntities;\n\n const tagsNamespace = Object.assign(\n (agentId: string) => bindAgentTags(tagsApi, agentId),\n tagsApi,\n ) as typeof tagsApi & ((agentId: string) => ReturnType<typeof bindAgentTags>);\n\n const phonesNamespace = Object.assign(\n (agentId: string) => bindAgentPhones(phonesApi, agentId),\n phonesApi,\n ) as typeof phonesApi &\n ((agentId: string) => ReturnType<typeof bindAgentPhones>);\n\n const scheduleExceptionsNamespace = Object.assign(\n (agentId: string) =>\n bindAgentScheduleExceptions(scheduleExceptionsApi, agentId),\n scheduleExceptionsApi,\n ) as typeof scheduleExceptionsApi &\n ((agentId: string) => ReturnType<typeof bindAgentScheduleExceptions>);\n\n const scheduleNamespace = Object.assign(\n (agentId: string) =>\n bindAgentSchedule(scheduleApi, scheduleExceptionsApi, agentId),\n {\n ...scheduleApi,\n exceptions: scheduleExceptionsNamespace,\n },\n ) as typeof scheduleApi &\n ((agentId: string) => ReturnType<typeof bindAgentSchedule>) & {\n exceptions: typeof scheduleExceptionsNamespace;\n };\n\n const versionsNamespace = Object.assign(\n (agentId: string) => bindAgentVersions(versionsApi, agentId),\n versionsApi,\n ) as typeof versionsApi &\n ((agentId: string) => ReturnType<typeof bindAgentVersions>);\n\n const blueprintsNamespace = Object.assign(\n (agentId: string) => bindAgentBlueprints(blueprintsApi, agentId),\n blueprintsApi,\n ) as typeof blueprintsApi &\n ((agentId: string) => ReturnType<typeof bindAgentBlueprints>);\n\n const stageTriggersNamespace = Object.assign(\n (agentId: string, blueprintId: string, stageId: string) =>\n bindAgentStageTriggers(stageTriggersApi, agentId, blueprintId, stageId),\n stageTriggersApi,\n ) as typeof stageTriggersApi &\n ((\n agentId: string,\n blueprintId: string,\n stageId: string,\n ) => ReturnType<typeof bindAgentStageTriggers>);\n\n const stagesNamespace = Object.assign(\n (agentId: string) => bindAgentStages(stagesApi, stageTriggersApi, agentId),\n {\n ...stagesApi,\n triggers: stageTriggersNamespace,\n },\n ) as typeof stagesApi &\n ((agentId: string) => ReturnType<typeof bindAgentStages>) & {\n triggers: typeof stageTriggersNamespace;\n };\n\n const apis = {\n agents: {\n ...agentsApi,\n tags: tagsNamespace,\n phones: phonesNamespace,\n schedule: scheduleNamespace,\n versions: versionsNamespace,\n blueprints: blueprintsNamespace,\n stages: stagesNamespace,\n },\n workspaces: createWorkspacesApi(runtimeCfg),\n tools: createToolsApi(runtimeCfg),\n catalogs: {\n ...catalogsApi,\n templates: catalogTemplatesApi,\n },\n voices: voicesApi,\n apiKeys: apiKeysApi,\n webhooks: webhooksApi,\n };\n\n return {\n ...apis,\n auth: {\n getApiKey: resolveApiKey,\n setApiKey(key?: string) {\n setApiKeyGetter(undefined);\n setApiKey(key);\n },\n useApiKey(getter?: () => string | undefined) {\n setApiKeyGetter(getter);\n },\n clearApiKey() {\n setApiKeyGetter(undefined);\n setApiKey(undefined);\n },\n getAccessToken: resolveAccessToken,\n setAccessToken(token?: string) {\n setAccessTokenGetter(undefined);\n setAccessToken(token);\n },\n useAccessToken(getter?: () => string | undefined) {\n setAccessTokenGetter(getter);\n },\n clearAccessToken() {\n setAccessTokenGetter(undefined);\n setAccessToken(undefined);\n },\n },\n workspace: {\n get: resolveWorkspaceId,\n set(id?: string) {\n setWorkspaceGetter(undefined);\n setWorkspaceId(id);\n },\n useGetter(getter?: () => string | undefined) {\n setWorkspaceGetter(getter);\n },\n clear() {\n setWorkspaceGetter(undefined);\n setWorkspaceId(undefined);\n },\n scoped(id: string) {\n return createClient({\n ...initialCfg,\n workspaceId: id,\n getWorkspaceId: undefined,\n apiKey: runtimeCfg.apiKey,\n getApiKey: runtimeCfg.getApiKey,\n accessToken: runtimeCfg.accessToken,\n getAccessToken: runtimeCfg.getAccessToken,\n });\n },\n },\n };\n}\n"],"mappings":"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","names":["result","isPlainObject"]}
|