@amigo-ai/sdk 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -37
- package/dist/index.cjs +36 -2
- package/dist/index.cjs.map +2 -2
- package/dist/index.mjs +36 -2
- package/dist/index.mjs.map +2 -2
- package/dist/platform.cjs +1788 -0
- package/dist/platform.cjs.map +7 -0
- package/dist/platform.mjs +1757 -0
- package/dist/platform.mjs.map +7 -0
- package/dist/types/core/errors.d.ts +11 -1
- package/dist/types/core/utils.d.ts +11 -0
- package/dist/types/generated/api-types.d.ts +1 -1
- package/dist/types/generated/platform-api-types.d.ts +45240 -0
- package/dist/types/platform/core/auth.d.ts +6 -0
- package/dist/types/platform/core/branded-types.d.ts +59 -0
- package/dist/types/platform/core/openapi-client.d.ts +6 -0
- package/dist/types/platform/core/websocket.d.ts +8 -0
- package/dist/types/platform/index.d.ts +59 -0
- package/dist/types/platform/resources/agents.d.ts +107 -0
- package/dist/types/platform/resources/api-keys.d.ts +57 -0
- package/dist/types/platform/resources/context-graphs.d.ts +114 -0
- package/dist/types/platform/resources/conversations.d.ts +154 -0
- package/dist/types/platform/resources/data-sources.d.ts +143 -0
- package/dist/types/platform/resources/events.d.ts +253 -0
- package/dist/types/platform/resources/fhir.d.ts +186 -0
- package/dist/types/platform/resources/integrations.d.ts +114 -0
- package/dist/types/platform/resources/phone-numbers.d.ts +170 -0
- package/dist/types/platform/resources/services.d.ts +133 -0
- package/dist/types/platform/resources/sessions.d.ts +61 -0
- package/dist/types/platform/resources/skills.d.ts +169 -0
- package/dist/types/platform/resources/workspaces.d.ts +187 -0
- package/package.json +15 -11
- package/assets/readme/amigo-banner.png +0 -0
- package/assets/readme/classic-ts-architecture.png +0 -0
- package/assets/readme/classic-ts-architecture.svg +0 -102
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/core/utils.ts", "../src/core/errors.ts", "../src/platform/core/openapi-client.ts", "../src/platform/core/auth.ts", "../src/core/retry.ts", "../src/platform/core/websocket.ts", "../src/platform/resources/agents.ts", "../src/platform/resources/api-keys.ts", "../src/platform/resources/context-graphs.ts", "../src/platform/resources/conversations.ts", "../src/platform/resources/data-sources.ts", "../src/platform/resources/events.ts", "../src/platform/resources/fhir.ts", "../src/platform/resources/integrations.ts", "../src/platform/resources/phone-numbers.ts", "../src/platform/resources/services.ts", "../src/platform/resources/sessions.ts", "../src/platform/resources/skills.ts", "../src/platform/resources/workspaces.ts", "../src/platform/core/branded-types.ts", "../src/platform/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { ParseError } from './errors'\n\n// Type helper to extract the data type from openapi-fetch responses\nexport type ExtractDataType<T> = T extends { data?: infer D } ? NonNullable<D> : never\n\n// Helper function to extract data from openapi-fetch responses\n// Since our middleware throws on errors, successful responses will have data\nexport async function extractData<T extends { data?: unknown }>(\n responsePromise: Promise<T>\n): Promise<ExtractDataType<T>> {\n const result = await responsePromise\n const data = (result as { data?: ExtractDataType<T> }).data\n\n if (data === undefined || data === null) {\n // Invariant: our error middleware throws for non-2xx responses.\n // If we reach here without data, treat as a parse/protocol error.\n throw new ParseError('Expected response data to be present for successful request', 'response')\n }\n\n return data\n}\n\n/**\n * Parse an NDJSON HTTP response body into an async generator of parsed JSON objects.\n * The generator yields one parsed object per line. Empty lines are skipped.\n */\nexport async function* parseNdjsonStream<T = unknown>(response: Response): AsyncGenerator<T> {\n const body = response.body\n if (!body) return\n\n const reader = body.getReader()\n const decoder = new TextDecoder()\n let bufferedText = ''\n\n try {\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n bufferedText += decoder.decode(value, { stream: true })\n\n let newlineIndex: number\n // Process all complete lines in the buffer\n while ((newlineIndex = bufferedText.indexOf('\\n')) !== -1) {\n const line = bufferedText.slice(0, newlineIndex).trim()\n bufferedText = bufferedText.slice(newlineIndex + 1)\n if (!line) continue\n try {\n yield JSON.parse(line) as T\n } catch (err) {\n throw new ParseError('Failed to parse NDJSON line', 'json', err as Error)\n }\n }\n }\n\n // Flush any trailing line without a newline\n const trailing = bufferedText.trim()\n if (trailing) {\n try {\n yield JSON.parse(trailing) as T\n } catch (err) {\n throw new ParseError('Failed to parse trailing NDJSON line', 'json', err as Error)\n }\n }\n } finally {\n reader.releaseLock()\n }\n}\n\nexport interface ServerSentEvent<T = unknown> {\n id?: string\n event?: string\n data: T | string\n retry?: number\n}\n\n/**\n * Parse an SSE HTTP response body into an async generator of parsed events.\n * JSON data payloads are parsed; non-JSON payloads are returned as strings.\n */\nexport async function* parseSseStream<T = unknown>(\n response: Response\n): AsyncGenerator<ServerSentEvent<T>> {\n const body = response.body\n if (!body) return\n\n const reader = body.getReader()\n const decoder = new TextDecoder()\n let bufferedText = ''\n let eventId: string | undefined\n let eventName: string | undefined\n let retry: number | undefined\n let dataLines: string[] = []\n\n const flushEvent = function* (): Generator<ServerSentEvent<T>> {\n if (dataLines.length === 0) {\n eventName = undefined\n retry = undefined\n return\n }\n\n const rawData = dataLines.join('\\n')\n let data: T | string = rawData\n try {\n data = JSON.parse(rawData) as T\n } catch {\n // SSE allows plain text data frames.\n }\n\n const event: ServerSentEvent<T> = { data }\n if (eventId !== undefined) event.id = eventId\n if (eventName !== undefined) event.event = eventName\n if (retry !== undefined) event.retry = retry\n\n eventName = undefined\n retry = undefined\n dataLines = []\n yield event\n }\n\n const processLine = function* (line: string): Generator<ServerSentEvent<T>> {\n if (line === '') {\n yield* flushEvent()\n return\n }\n if (line.startsWith(':')) return\n\n const colonIndex = line.indexOf(':')\n const field = colonIndex === -1 ? line : line.slice(0, colonIndex)\n const value = colonIndex === -1 ? '' : line.slice(colonIndex + 1).replace(/^ /, '')\n\n switch (field) {\n case 'id':\n eventId = value\n break\n case 'event':\n eventName = value\n break\n case 'data':\n dataLines.push(value)\n break\n case 'retry': {\n const retryMs = Number.parseInt(value, 10)\n if (!Number.isNaN(retryMs)) retry = retryMs\n break\n }\n }\n }\n\n try {\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n bufferedText += decoder.decode(value, { stream: true })\n\n let newlineIndex: number\n while ((newlineIndex = bufferedText.search(/\\r?\\n/)) !== -1) {\n const line = bufferedText.slice(0, newlineIndex)\n const newlineLength =\n bufferedText[newlineIndex] === '\\r' && bufferedText[newlineIndex + 1] === '\\n' ? 2 : 1\n bufferedText = bufferedText.slice(newlineIndex + newlineLength)\n yield* processLine(line)\n }\n }\n\n const trailing = bufferedText.trimEnd()\n if (trailing) {\n yield* processLine(trailing)\n }\n yield* flushEvent()\n } finally {\n reader.releaseLock()\n }\n}\n\n// Utility function to safely parse response bodies without throwing errors\nexport async function parseResponseBody(response: Response): Promise<unknown> {\n try {\n const text = await response.text()\n if (!text) return undefined\n try {\n return JSON.parse(text)\n } catch {\n return text // Return as string if not valid JSON\n }\n } catch {\n return undefined // Return undefined if any error occurs\n }\n}\n\n// Helper to detect network-related errors\nexport function isNetworkError(error: unknown): boolean {\n if (!(error instanceof Error)) return false\n\n return (\n error instanceof TypeError ||\n error.message.includes('fetch') ||\n error.message.includes('Failed to fetch') ||\n error.message.includes('Network request failed') ||\n error.message.includes('ECONNREFUSED') ||\n error.message.includes('ETIMEDOUT') ||\n error.message.includes('ENOTFOUND') ||\n error.message.includes('network')\n )\n}\n", "import type { Middleware } from 'openapi-fetch'\nimport { isNetworkError, parseResponseBody } from './utils'\n\n/** Fields that may contain sensitive tokens or credentials. */\nconst SENSITIVE_FIELDS = new Set([\n 'id_token',\n 'access_token',\n 'refresh_token',\n 'authorization',\n 'api_key',\n 'apikey',\n 'token',\n 'secret',\n 'password',\n 'x-api-key',\n])\n\n/**\n * Recursively strips sensitive fields from an object to prevent token leakage in error contexts.\n * Returns a shallow copy with sensitive keys replaced by '[REDACTED]'.\n */\nexport function sanitizeErrorContext(obj: unknown): unknown {\n if (obj === null || obj === undefined) return obj\n if (typeof obj !== 'object') return obj\n if (Array.isArray(obj)) return obj.map(sanitizeErrorContext)\n\n const result: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(obj as Record<string, unknown>)) {\n if (SENSITIVE_FIELDS.has(key.toLowerCase())) {\n result[key] = '[REDACTED]'\n } else if (typeof value === 'object' && value !== null) {\n result[key] = sanitizeErrorContext(value)\n } else {\n result[key] = value\n }\n }\n return result\n}\n\n/**\n * Base error class for all Amigo SDK errors.\n * Provides common functionality and error identification.\n */\nexport class AmigoError extends Error {\n /** Unique error code for programmatic error handling */\n readonly errorCode?: string\n\n /** HTTP status code if applicable */\n readonly statusCode?: number\n\n /** Additional context data */\n readonly context?: Record<string, unknown>\n\n constructor(\n message: string,\n options?: { statusCode?: number; errorCode?: string; context?: Record<string, unknown> }\n ) {\n super(message)\n this.name = this.constructor.name\n\n // Ensure proper prototype chain for instanceof checks\n Object.setPrototypeOf(this, new.target.prototype)\n\n // Capture stack trace\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor)\n }\n\n this.statusCode = options?.statusCode\n this.errorCode = options?.errorCode\n this.context = options?.context\n }\n\n /**\n * Returns a JSON-serializable representation of the error.\n * Sensitive fields (tokens, keys) are redacted to prevent leakage.\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n code: this.errorCode,\n statusCode: this.statusCode,\n context: sanitizeErrorContext(this.context) as Record<string, unknown> | undefined,\n stack: this.stack,\n }\n }\n}\n\ntype AmigoErrorOptions = NonNullable<ConstructorParameters<typeof AmigoError>[1]>\n\nfunction isAmigoErrorOptions(value: unknown): value is AmigoErrorOptions {\n if (!value || typeof value !== 'object') return false\n const options = value as Record<string, unknown>\n return (\n ('statusCode' in options &&\n (typeof options.statusCode === 'number' || options.statusCode === undefined)) ||\n ('errorCode' in options &&\n (typeof options.errorCode === 'string' || options.errorCode === undefined)) ||\n ('context' in options && (typeof options.context === 'object' || options.context === undefined))\n )\n}\n\n/* 4xx client errors */\nexport class BadRequestError extends AmigoError {\n constructor(message: string, options?: AmigoErrorOptions) {\n super(message, { ...options, statusCode: options?.statusCode ?? 400 })\n }\n}\nexport class AuthenticationError extends AmigoError {\n constructor(message: string, options?: AmigoErrorOptions) {\n super(message, { ...options, statusCode: options?.statusCode ?? 401 })\n }\n}\nexport class PermissionError extends AmigoError {\n constructor(message: string, options?: AmigoErrorOptions) {\n super(message, { ...options, statusCode: options?.statusCode ?? 403 })\n }\n}\nexport class NotFoundError extends AmigoError {\n constructor(message: string, options?: AmigoErrorOptions) {\n super(message, { ...options, statusCode: options?.statusCode ?? 404 })\n }\n}\nexport class ConflictError extends AmigoError {\n constructor(message: string, options?: AmigoErrorOptions) {\n super(message, { ...options, statusCode: options?.statusCode ?? 409 })\n }\n}\nexport class RateLimitError extends AmigoError {\n constructor(message: string, options?: AmigoErrorOptions) {\n super(message, { ...options, statusCode: options?.statusCode ?? 429 })\n }\n}\n\n/* 5xx server errors */\nexport class ServerError extends AmigoError {\n constructor(message: string, options?: AmigoErrorOptions) {\n super(message, { ...options, statusCode: options?.statusCode ?? 500 })\n }\n}\nexport class ServiceUnavailableError extends ServerError {\n constructor(message: string, options?: AmigoErrorOptions) {\n super(message, { ...options, statusCode: options?.statusCode ?? 503 })\n }\n}\n\n/* Internal SDK errors */\nexport class ConfigurationError extends AmigoError {\n constructor(\n message: string,\n public readonly field?: string\n ) {\n super(message, { context: { field } })\n }\n}\n\n/* Validation errors */\nexport class ValidationError extends BadRequestError {\n constructor(\n msg: string,\n optionsOrFieldErrors?: AmigoErrorOptions | Record<string, string>,\n public fieldErrors?: Record<string, string>\n ) {\n const isErrorOptions = isAmigoErrorOptions(optionsOrFieldErrors)\n super(\n msg,\n isErrorOptions\n ? { ...optionsOrFieldErrors, statusCode: optionsOrFieldErrors.statusCode ?? 422 }\n : { statusCode: 422 }\n )\n this.fieldErrors = isErrorOptions\n ? fieldErrors\n : (optionsOrFieldErrors as Record<string, string> | undefined)\n }\n}\n\n/* Network-related errors */\nexport class NetworkError extends AmigoError {\n constructor(\n message: string,\n public readonly originalError?: Error,\n public readonly request?: {\n url?: string\n method?: string\n }\n ) {\n super(message, { context: { request } })\n }\n}\n\n/* Parsing errors */\nexport class ParseError extends AmigoError {\n constructor(\n message: string,\n public readonly parseType: 'json' | 'response' | 'other',\n public readonly originalError?: Error\n ) {\n super(message, { context: { parseType } })\n }\n}\n\n/* Type guard functions */\nexport function isAmigoError(error: unknown): error is AmigoError {\n return error instanceof AmigoError\n}\n\n/* Error factory to create appropriate error instances from API responses */\nexport function createApiError(response: Response, body?: unknown): AmigoError {\n const map: Record<number, typeof AmigoError> = {\n 400: BadRequestError,\n 401: AuthenticationError,\n 403: PermissionError,\n 404: NotFoundError,\n 409: ConflictError,\n 422: ValidationError,\n 429: RateLimitError,\n 500: ServerError,\n 503: ServiceUnavailableError,\n }\n\n const errorMessageKeys = ['message', 'error', 'detail']\n\n const ErrorClass = map[response.status] ?? AmigoError\n let message = `HTTP ${response.status} ${response.statusText}`\n\n if (body && typeof body === 'object') {\n for (const key of errorMessageKeys) {\n if (key in body) {\n message = String((body as Record<string, unknown>)[key])\n break\n }\n }\n }\n\n const error = new ErrorClass(message, {\n statusCode: response.status,\n errorCode:\n body && typeof body === 'object' && 'code' in body\n ? String((body as Record<string, unknown>).code)\n : undefined,\n context: { response: sanitizeErrorContext(body) },\n })\n\n return error\n}\n\nexport function createErrorMiddleware(): Middleware {\n return {\n onResponse: async ({ response }) => {\n if (!response.ok) {\n const body = await parseResponseBody(response)\n throw createApiError(response, body)\n }\n },\n onError: async ({ error, request }) => {\n // Handle network-related errors consistently\n if (isNetworkError(error)) {\n throw new NetworkError(\n `Network error: ${error instanceof Error ? error.message : String(error)}`,\n error instanceof Error ? error : new Error(String(error)),\n {\n url: request?.url,\n method: request?.method,\n }\n )\n }\n throw error\n },\n }\n}\n", "import type { Client } from 'openapi-fetch'\nimport openapiFetchImport from 'openapi-fetch'\nimport { createErrorMiddleware } from '../../core/errors'\nimport { createPlatformAuthMiddleware } from './auth'\nimport type { paths } from '../../generated/platform-api-types'\nimport type { PlatformClientConfig } from '..'\nimport { createRetryingFetch } from '../../core/retry'\n\n// Handle ESM/CJS interop\nconst createClient: typeof openapiFetchImport =\n typeof openapiFetchImport === 'function'\n ? openapiFetchImport\n : (openapiFetchImport as unknown as { default: typeof openapiFetchImport }).default\n\nexport type PlatformFetch = Client<paths>\n\n/** Create an OpenAPI-typed fetch client for the Platform API. */\nexport function createPlatformFetch(\n config: PlatformClientConfig,\n mockFetch?: typeof fetch\n): PlatformFetch {\n const wrappedFetch = createRetryingFetch(\n config.retry,\n mockFetch ?? config.fetch ?? (globalThis.fetch as typeof fetch)\n )\n\n const client = createClient<paths>({\n baseUrl: config.baseUrl,\n fetch: wrappedFetch,\n })\n\n client.use(createErrorMiddleware())\n client.use(createPlatformAuthMiddleware(config.apiKey))\n\n return client\n}\n", "import type { Middleware } from 'openapi-fetch'\n\n/**\n * Create a middleware that sets the Authorization header with a raw API key.\n * Platform API uses simple Bearer token auth \u2014 no token exchange needed.\n */\nexport function createPlatformAuthMiddleware(apiKey: string): Middleware {\n return {\n onRequest: async ({ request }) => {\n request.headers.set('Authorization', `Bearer ${apiKey}`)\n return request\n },\n }\n}\n", "export type RetryOptions = {\n /** Maximum number of attempts to make (default: 3) */\n maxAttempts?: number\n /** Base delay between attempts (default: 250ms) */\n backoffBaseMs?: number\n /** Maximum delay between attempts (default: 30s) */\n maxDelayMs?: number\n /** Status codes to retry on (default: 408, 429, 500, 502, 503, 504) */\n retryOnStatus?: Set<number>\n /** Methods to retry on (default: GET) */\n retryOnMethods?: Set<string>\n}\n\nconst DEFAULT_RETRYABLE_STATUS = new Set([408, 429, 500, 502, 503, 504])\nconst DEFAULT_RETRYABLE_METHODS = new Set(['GET']) as Set<string>\n\n/** Merge user-provided retry options with sensible defaults. */\nexport function resolveRetryOptions(options?: RetryOptions): Required<RetryOptions> {\n return {\n maxAttempts: options?.maxAttempts ?? 3,\n backoffBaseMs: options?.backoffBaseMs ?? 250,\n maxDelayMs: options?.maxDelayMs ?? 30_000,\n retryOnStatus: new Set(options?.retryOnStatus ?? DEFAULT_RETRYABLE_STATUS),\n retryOnMethods: new Set(options?.retryOnMethods ?? DEFAULT_RETRYABLE_METHODS),\n }\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value))\n}\n\nfunction parseRetryAfterMs(headerValue: string | null, maxDelayMs: number): number | null {\n if (!headerValue) return null\n const seconds = Number(headerValue)\n if (Number.isFinite(seconds)) {\n return clamp(seconds * 1000, 0, maxDelayMs)\n }\n const date = new Date(headerValue)\n const ms = date.getTime() - Date.now()\n if (Number.isFinite(ms)) {\n return clamp(ms, 0, maxDelayMs)\n }\n return null\n}\n\nfunction computeBackoffWithJitterMs(\n attemptIndexZeroBased: number,\n baseMs: number,\n capMs: number\n): number {\n const windowMs = Math.min(capMs, baseMs * Math.pow(2, attemptIndexZeroBased))\n return Math.random() * windowMs\n}\n\nfunction isAbortError(err: unknown): boolean {\n return typeof err === 'object' && err !== null && 'name' in err && err['name'] === 'AbortError'\n}\n\nfunction isNetworkError(err: unknown): boolean {\n // Undici & browsers use TypeError for network failures\n return err instanceof TypeError && !isAbortError(err)\n}\n\nasync function abortableSleep(ms: number, signal?: AbortSignal): Promise<void> {\n if (ms <= 0) {\n signal?.throwIfAborted?.()\n return\n }\n await new Promise<void>((resolve, reject) => {\n const rejectWith =\n signal?.reason instanceof Error ? signal.reason : (signal?.reason ?? new Error('AbortError'))\n\n if (signal?.aborted) {\n reject(rejectWith)\n return\n }\n const t = setTimeout(() => {\n off()\n resolve()\n }, ms)\n const onAbort = () => {\n off()\n clearTimeout(t)\n reject(rejectWith)\n }\n const off = () => signal?.removeEventListener('abort', onAbort)\n signal?.addEventListener('abort', onAbort, { once: true })\n })\n}\n\n/** Wrap a fetch function with retry logic (exponential backoff, Retry-After support). */\nexport function createRetryingFetch(\n retryOptions?: RetryOptions,\n baseFetch?: typeof fetch\n): typeof fetch {\n const resolved = resolveRetryOptions(retryOptions)\n const underlying: typeof fetch = baseFetch ?? (globalThis.fetch as typeof fetch)\n\n const retryingFetch: typeof fetch = async (\n input: RequestInfo | URL,\n init?: RequestInit\n ): Promise<Response> => {\n const inputMethod =\n typeof Request !== 'undefined' && input instanceof Request ? input.method : undefined\n const method = ((init?.method ?? inputMethod ?? 'GET') as string).toUpperCase()\n const signal = init?.signal\n\n const isMethodRetryableByDefault = resolved.retryOnMethods.has(method)\n const maxAttempts = Math.max(1, resolved.maxAttempts)\n\n for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {\n let response: Response | null = null\n let error: unknown = null\n\n try {\n response = await underlying(input, init)\n } catch (err) {\n error = err\n }\n\n if (!error && response && response.ok) {\n return response\n }\n\n let shouldRetry = false\n let delayMs: number | null = null\n\n if (isNetworkError(error)) {\n shouldRetry = isMethodRetryableByDefault\n if (shouldRetry) {\n delayMs = computeBackoffWithJitterMs(\n attempt - 1,\n resolved.backoffBaseMs,\n resolved.maxDelayMs\n )\n }\n } else if (response) {\n const status = response.status\n if (method === 'POST') {\n if (status === 429) {\n const ra = response.headers.get('Retry-After')\n const parsed = parseRetryAfterMs(ra, resolved.maxDelayMs)\n if (parsed !== null) {\n shouldRetry = true\n delayMs = parsed\n }\n }\n } else if (isMethodRetryableByDefault && resolved.retryOnStatus.has(status)) {\n const ra = response.headers.get('Retry-After')\n delayMs =\n parseRetryAfterMs(ra, resolved.maxDelayMs) ??\n computeBackoffWithJitterMs(attempt - 1, resolved.backoffBaseMs, resolved.maxDelayMs)\n shouldRetry = true\n }\n }\n\n const attemptsRemain = attempt < maxAttempts\n if (!shouldRetry || !attemptsRemain) {\n if (error) throw error\n return response as Response\n }\n\n if (signal?.aborted) {\n if (error) throw error\n return response as Response\n }\n\n await abortableSleep(delayMs ?? 0, signal ?? undefined)\n }\n\n throw new Error('Retry loop exited unexpectedly')\n }\n\n return retryingFetch\n}\n\nexport type { RetryOptions as AmigoRetryOptions }\n", "import { ConfigurationError } from '../../core/errors'\n\nexport interface PlatformWebSocketLike {\n close(code?: number, reason?: string): void\n send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void\n readonly readyState: number\n}\n\nexport type PlatformWebSocketConstructor = new (\n url: string,\n protocols?: string | string[]\n) => PlatformWebSocketLike\n\nexport function webSocketBaseFromHttpBase(baseUrl: string): string {\n const url = new URL(baseUrl)\n if (url.protocol === 'https:') {\n url.protocol = 'wss:'\n } else if (url.protocol === 'http:') {\n url.protocol = 'ws:'\n } else if (url.protocol !== 'ws:' && url.protocol !== 'wss:') {\n throw new ConfigurationError(`Unsupported Platform API protocol: ${url.protocol}`, 'baseUrl')\n }\n return url.toString().replace(/\\/$/, '')\n}\n\nexport function getWebSocketConstructor(\n override?: PlatformWebSocketConstructor\n): PlatformWebSocketConstructor {\n if (override) return override\n if (typeof globalThis.WebSocket === 'function') {\n return globalThis.WebSocket as unknown as PlatformWebSocketConstructor\n }\n throw new ConfigurationError(\n 'WebSocket is not available in this runtime; pass WebSocket in the PlatformClient config',\n 'WebSocket'\n )\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId, PlatformAgentId } from '../core/branded-types'\n\n/** Resource for managing platform agents. */\nexport class PlatformAgentResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** List agents in the workspace. */\n async list(options?: {\n query?: operations['list-agents']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/agents', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get an agent by ID. */\n async get(options: { agentId: PlatformAgentId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/agents/{agent_id}', {\n params: { path: { workspace_id: this.workspaceId, agent_id: options.agentId } },\n })\n )\n }\n\n /** Create a new agent. */\n async create(options: {\n body: components['schemas']['CreateAgentRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/agents', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Update an agent. */\n async update(options: {\n agentId: PlatformAgentId\n body: components['schemas']['UpdateAgentRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/agents/{agent_id}', {\n params: { path: { workspace_id: this.workspaceId, agent_id: options.agentId } },\n body: options.body,\n })\n )\n }\n\n /** Delete an agent. */\n async delete(options: { agentId: PlatformAgentId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/agents/{agent_id}', {\n params: { path: { workspace_id: this.workspaceId, agent_id: options.agentId } },\n })\n return undefined\n }\n\n /** List agent versions. */\n async listVersions(options: {\n agentId: PlatformAgentId\n query?: operations['list-agent-versions']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/agents/{agent_id}/versions', {\n params: {\n path: { workspace_id: this.workspaceId, agent_id: options.agentId },\n query: options.query,\n },\n })\n )\n }\n\n /** Get a specific agent version, or pass `\"latest\"` for the most recent version. */\n async getVersion(options: { agentId: PlatformAgentId; version: number | 'latest' }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/agents/{agent_id}/versions/{version}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n agent_id: options.agentId,\n version: options.version,\n },\n },\n })\n )\n }\n\n /** Create a new agent version. */\n async createVersion(options: {\n agentId: PlatformAgentId\n body: components['schemas']['CreateAgentVersionRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/agents/{agent_id}/versions', {\n params: { path: { workspace_id: this.workspaceId, agent_id: options.agentId } },\n body: options.body,\n })\n )\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId, PlatformApiKeyId } from '../core/branded-types'\n\n/** Resource for managing API keys. */\nexport class PlatformApiKeyResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** Get information about the currently authenticated API key. */\n async me() {\n return extractData(this.c.GET('/v1/auth/me'))\n }\n\n /** List API keys in the workspace. */\n async list(options?: {\n query?: operations['list-api-keys']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/api-keys', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Create a new API key. */\n async create(options: {\n body: components['schemas']['CreateApiKeyRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/api-keys', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Delete an API key. */\n async delete(options: { keyId: PlatformApiKeyId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/api-keys/{key_id}', {\n params: { path: { workspace_id: this.workspaceId, key_id: options.keyId } },\n })\n return undefined\n }\n\n /** Rotate an API key and return the replacement secret. */\n async rotate(options: {\n keyId: PlatformApiKeyId\n body: components['schemas']['RotateApiKeyRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/api-keys/{key_id}/rotate', {\n params: { path: { workspace_id: this.workspaceId, key_id: options.keyId } },\n body: options.body,\n })\n )\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { ContextGraphId, WorkspaceId } from '../core/branded-types'\n\n/** Resource for managing platform context graphs. */\nexport class ContextGraphResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** List context graphs in the workspace. */\n async list(options?: {\n query?: operations['list-context_graphs']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/context-graphs', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get a context graph by ID. */\n async get(options: { contextGraphId: ContextGraphId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/context-graphs/{context_graph_id}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n context_graph_id: options.contextGraphId,\n },\n },\n })\n )\n }\n\n /** Create a new context graph. */\n async create(options: {\n body: components['schemas']['CreateContextGraphRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/context-graphs', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Update a context graph. */\n async update(options: {\n contextGraphId: ContextGraphId\n body: components['schemas']['UpdateContextGraphRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/context-graphs/{context_graph_id}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n context_graph_id: options.contextGraphId,\n },\n },\n body: options.body,\n })\n )\n }\n\n /** Delete a context graph. */\n async delete(options: { contextGraphId: ContextGraphId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/context-graphs/{context_graph_id}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n context_graph_id: options.contextGraphId,\n },\n },\n })\n return undefined\n }\n\n /** List context graph versions. */\n async listVersions(options: {\n contextGraphId: ContextGraphId\n query?: operations['list-context_graph-versions']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/context-graphs/{context_graph_id}/versions', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n context_graph_id: options.contextGraphId,\n },\n query: options.query,\n },\n })\n )\n }\n\n /** Get a specific context graph version. */\n async getVersion(options: { contextGraphId: ContextGraphId; version: number | 'latest' }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/context-graphs/{context_graph_id}/versions/{version}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n context_graph_id: options.contextGraphId,\n version: options.version,\n },\n },\n })\n )\n }\n\n /** Create a new context graph version. */\n async createVersion(options: {\n contextGraphId: ContextGraphId\n body: components['schemas']['CreateContextGraphVersionRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/context-graphs/{context_graph_id}/versions', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n context_graph_id: options.contextGraphId,\n },\n },\n body: options.body,\n })\n )\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData, parseSseStream } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { PlatformConversationId, WorkspaceId } from '../core/branded-types'\n\n/** Resource for managing unified platform conversations. */\nexport class PlatformConversationResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** List voice and text conversations in the workspace. */\n async list(options?: {\n query?: operations['list_conversations_v1__workspace_id__conversations_get']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/conversations', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Create a text conversation. */\n async create(options: {\n body: components['schemas']['CreateConversationRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/conversations', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Get a conversation detail by ID. */\n async get(options: { conversationId: PlatformConversationId | string }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/conversations/{conversation_id}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n conversation_id: options.conversationId,\n },\n },\n })\n )\n }\n\n /** Close a text conversation. */\n async close(options: { conversationId: PlatformConversationId | string }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/conversations/{conversation_id}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n conversation_id: options.conversationId,\n },\n },\n })\n return undefined\n }\n\n /** Send a text turn and receive the full JSON response. */\n async createTurn(options: {\n conversationId: PlatformConversationId | string\n body: components['schemas']['TurnRequest']\n query?: operations['create_turn_v1__workspace_id__conversations__conversation_id__turns_post']['parameters']['query']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/conversations/{conversation_id}/turns', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n conversation_id: options.conversationId,\n },\n query: options.query,\n },\n body: options.body,\n headers: { Accept: 'application/json' },\n })\n )\n }\n\n /** Send a text turn and receive typed Server-Sent Events. */\n async streamTurn(options: {\n conversationId: PlatformConversationId | string\n body: components['schemas']['TurnRequest']\n query?: operations['create_turn_v1__workspace_id__conversations__conversation_id__turns_post']['parameters']['query']\n signal?: AbortSignal\n }) {\n const resp = await this.c.POST('/v1/{workspace_id}/conversations/{conversation_id}/turns', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n conversation_id: options.conversationId,\n },\n query: options.query,\n },\n body: options.body,\n headers: { Accept: 'text/event-stream' },\n parseAs: 'stream',\n ...(options.signal && { signal: options.signal }),\n })\n\n return parseSseStream<components['schemas']['TurnStreamEvent']>(resp.response)\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId, DataSourceId } from '../core/branded-types'\n\n/** Resource for managing data sources. */\nexport class DataSourceResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** List data sources in the workspace. */\n async list(options?: {\n query?: operations['list-data-sources']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/data-sources', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get a data source by ID. */\n async get(options: { dataSourceId: DataSourceId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/data-sources/{data_source_id}', {\n params: {\n path: { workspace_id: this.workspaceId, data_source_id: options.dataSourceId },\n },\n })\n )\n }\n\n /** Create a new data source. */\n async create(options: {\n body: components['schemas']['CreateDataSourceRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/data-sources', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Update a data source. */\n async update(options: {\n dataSourceId: DataSourceId\n body: components['schemas']['UpdateDataSourceRequest']\n }) {\n return extractData(\n this.c.PATCH('/v1/{workspace_id}/data-sources/{data_source_id}', {\n params: {\n path: { workspace_id: this.workspaceId, data_source_id: options.dataSourceId },\n },\n body: options.body,\n })\n )\n }\n\n /** Get data source status. */\n async getStatus(options: { dataSourceId: DataSourceId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/data-sources/{data_source_id}/status', {\n params: {\n path: { workspace_id: this.workspaceId, data_source_id: options.dataSourceId },\n },\n })\n )\n }\n\n /** Get data source sync history. */\n async getSyncHistory(options: {\n dataSourceId: DataSourceId\n query?: operations['data-source-sync-history']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/data-sources/{data_source_id}/sync-history', {\n params: {\n path: { workspace_id: this.workspaceId, data_source_id: options.dataSourceId },\n query: options.query,\n },\n })\n )\n }\n\n /** Trigger a data source sync. */\n async triggerSync(options: { dataSourceId: DataSourceId }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/data-sources/{data_source_id}/sync', {\n params: {\n path: { workspace_id: this.workspaceId, data_source_id: options.dataSourceId },\n },\n })\n )\n }\n\n /** Delete a data source. */\n async delete(options: { dataSourceId: DataSourceId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/data-sources/{data_source_id}', {\n params: {\n path: { workspace_id: this.workspaceId, data_source_id: options.dataSourceId },\n },\n })\n return undefined\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { parseSseStream } from '../../core/utils'\nimport type { components } from '../../generated/platform-api-types'\nimport type { WorkspaceId } from '../core/branded-types'\n\n/** Resource for streaming workspace-level platform events. */\nexport class PlatformEventResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** Open the workspace Server-Sent Events stream. */\n async stream(options?: { lastEventId?: string; signal?: AbortSignal }) {\n const headers: Record<string, string> = { Accept: 'text/event-stream' }\n if (options?.lastEventId) {\n headers['Last-Event-ID'] = options.lastEventId\n }\n\n const resp = await this.c.GET('/v1/{workspace_id}/events/stream', {\n params: { path: { workspace_id: this.workspaceId } },\n headers,\n parseAs: 'stream',\n ...(options?.signal && { signal: options.signal }),\n })\n\n return parseSseStream<components['schemas']['WorkspaceSSEEvent']>(resp.response)\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId } from '../core/branded-types'\n\n/** Resource for managing FHIR health data. */\nexport class FhirResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** Get FHIR store status for the workspace. */\n async status() {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/status', {\n params: { path: { workspace_id: this.workspaceId } },\n })\n )\n }\n\n /** Search FHIR resources by type. */\n async searchResources(options: {\n resourceType: string\n query?: operations['fhir-search-resources']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/resources/{resource_type}', {\n params: {\n path: { workspace_id: this.workspaceId, resource_type: options.resourceType },\n query: options.query,\n },\n })\n )\n }\n\n /** Get a specific FHIR resource by type and ID. */\n async getResource(options: { resourceType: string; resourceId: string }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n resource_type: options.resourceType,\n resource_id: options.resourceId,\n },\n },\n })\n )\n }\n\n /** Create a FHIR resource. */\n async createResource(options: {\n resourceType: string\n body: Record<string, unknown>\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/fhir/resources/{resource_type}', {\n params: {\n path: { workspace_id: this.workspaceId, resource_type: options.resourceType },\n },\n body: options.body as components['schemas']['FhirWriteRequest'],\n })\n )\n }\n\n /** Update a FHIR resource. */\n async updateResource(options: {\n resourceType: string\n resourceId: string\n body: Record<string, unknown>\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n resource_type: options.resourceType,\n resource_id: options.resourceId,\n },\n },\n body: options.body as components['schemas']['FhirWriteRequest'],\n })\n )\n }\n\n /** Get sync failures. */\n async syncFailures(options?: {\n query?: operations['fhir-sync-failures']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/sync-failures', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Import FHIR data. */\n async import(options: {\n body: components['schemas']['FhirImportRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/fhir/import', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Search patients. */\n async searchPatients(options?: {\n query?: operations['fhir-patient-search']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/patients', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get patient timeline. */\n async getPatientTimeline(options: {\n patientId: string\n query?: operations['fhir-patient-timeline']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/patients/{patient_id}/timeline', {\n params: {\n path: { workspace_id: this.workspaceId, patient_id: options.patientId },\n query: options.query,\n },\n })\n )\n }\n\n /** Get patient summary. */\n async getPatientSummary(options: { patientId: string }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/patients/{patient_id}/summary', {\n params: {\n path: { workspace_id: this.workspaceId, patient_id: options.patientId },\n },\n })\n )\n }\n\n /** Get FHIR views \u2014 patients. */\n async viewPatients(options?: {\n query?: operations['fhir-patients-view']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/views/patients', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get FHIR views \u2014 practitioners. */\n async viewPractitioners(options?: {\n query?: operations['fhir-practitioners-view']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/views/practitioners', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get FHIR views \u2014 locations. */\n async viewLocations(options?: {\n query?: operations['fhir-locations-view']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/views/locations', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get FHIR views \u2014 appointments. */\n async viewAppointments(options?: {\n query?: operations['fhir-appointments-view']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/views/appointments', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get FHIR views \u2014 organizations. */\n async viewOrganizations(options?: {\n query?: operations['fhir-organizations-view']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/views/organizations', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get FHIR views \u2014 slots. */\n async viewSlots(options?: {\n query?: operations['fhir-slots-view']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/fhir/views/slots', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId, IntegrationId } from '../core/branded-types'\n\n/** Resource for managing integrations. */\nexport class IntegrationResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** List integrations in the workspace. */\n async list(options?: {\n query?: operations['list-integrations']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/integrations', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get an integration by ID. */\n async get(options: { integrationId: IntegrationId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/integrations/{integration_id}', {\n params: {\n path: { workspace_id: this.workspaceId, integration_id: options.integrationId },\n },\n })\n )\n }\n\n /** Create a new integration. */\n async create(options: {\n body: components['schemas']['CreateIntegrationRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/integrations', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Update an integration. */\n async update(options: {\n integrationId: IntegrationId\n body: components['schemas']['UpdateIntegrationRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/integrations/{integration_id}', {\n params: {\n path: { workspace_id: this.workspaceId, integration_id: options.integrationId },\n },\n body: options.body,\n })\n )\n }\n\n /** Delete an integration. */\n async delete(options: { integrationId: IntegrationId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/integrations/{integration_id}', {\n params: {\n path: { workspace_id: this.workspaceId, integration_id: options.integrationId },\n },\n })\n return undefined\n }\n\n /** Test an integration endpoint. */\n async testEndpoint(options: {\n integrationId: IntegrationId\n endpointName: string\n body: components['schemas']['TestEndpointRequest']\n }) {\n return extractData(\n this.c.POST(\n '/v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_name}/test',\n {\n params: {\n path: {\n workspace_id: this.workspaceId,\n integration_id: options.integrationId,\n endpoint_name: options.endpointName,\n },\n },\n body: options.body,\n }\n )\n )\n }\n\n /** Check integration health for the workspace. */\n async healthCheck() {\n return extractData(\n this.c.GET('/v1/{workspace_id}/integrations/health-check', {\n params: { path: { workspace_id: this.workspaceId } },\n })\n )\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId, PhoneNumberId } from '../core/branded-types'\n\n/** Resource for managing phone numbers. */\nexport class PhoneNumberResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** List phone numbers in the workspace. */\n async list(options?: {\n query?: operations['list-phone-numbers']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/phone-numbers', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get a phone number by ID. */\n async get(options: { phoneNumberId: PhoneNumberId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/phone-numbers/{phone_number_id}', {\n params: {\n path: { workspace_id: this.workspaceId, phone_number_id: options.phoneNumberId },\n },\n })\n )\n }\n\n /** Create a phone number. */\n async create(options: {\n body: components['schemas']['CreatePhoneNumberRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/phone-numbers', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Update a phone number. */\n async update(options: {\n phoneNumberId: PhoneNumberId\n body: components['schemas']['UpdatePhoneNumberRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/phone-numbers/{phone_number_id}', {\n params: {\n path: { workspace_id: this.workspaceId, phone_number_id: options.phoneNumberId },\n },\n body: options.body,\n })\n )\n }\n\n /** Delete a phone number. */\n async delete(options: { phoneNumberId: PhoneNumberId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/phone-numbers/{phone_number_id}', {\n params: {\n path: { workspace_id: this.workspaceId, phone_number_id: options.phoneNumberId },\n },\n })\n return undefined\n }\n\n /** Set call forwarding for a phone number. */\n async setForwarding(options: {\n phoneNumberId: PhoneNumberId\n body: components['schemas']['ForwardingConfigRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/phone-numbers/{phone_number_id}/forwarding', {\n params: {\n path: { workspace_id: this.workspaceId, phone_number_id: options.phoneNumberId },\n },\n body: options.body,\n })\n )\n }\n\n /** Clear call forwarding for a phone number. */\n async clearForwarding(options: { phoneNumberId: PhoneNumberId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/phone-numbers/{phone_number_id}/forwarding', {\n params: {\n path: { workspace_id: this.workspaceId, phone_number_id: options.phoneNumberId },\n },\n })\n return undefined\n }\n\n /** Get the Twilio sub-account for the workspace. */\n async getTwilioSubAccount() {\n return extractData(\n this.c.GET('/v1/{workspace_id}/twilio/sub-account', {\n params: { path: { workspace_id: this.workspaceId } },\n })\n )\n }\n\n /** Provision a Twilio sub-account for the workspace. */\n async provisionTwilioSubAccount() {\n return extractData(\n this.c.POST('/v1/{workspace_id}/twilio/sub-account', {\n params: { path: { workspace_id: this.workspaceId } },\n })\n )\n }\n\n /** Search available phone numbers for purchase. */\n async searchAvailable(options?: {\n query?: operations['search-available-phone-numbers']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/twilio/phone-numbers/available', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Purchase a phone number. */\n async purchase(options: {\n body: components['schemas']['PurchasePhoneNumberRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/twilio/phone-numbers/purchase', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Release a purchased phone number. */\n async release(options: { phoneNumberId: PhoneNumberId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/twilio/phone-numbers/{phone_number_id}/release', {\n params: {\n path: { workspace_id: this.workspaceId, phone_number_id: options.phoneNumberId },\n },\n })\n return undefined\n }\n\n /** Bind a channel-manager phone number to a workspace/service. */\n async bind(options: {\n body: components['schemas']['BindChannelPhoneRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/phone-numbers/bind', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId, PlatformServiceId } from '../core/branded-types'\n\n/** Resource for managing services. */\nexport class PlatformServiceResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** List services in the workspace. */\n async list(options?: {\n query?: operations['list-services']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/services', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get a service by ID. */\n async get(options: { serviceId: PlatformServiceId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/services/{service_id}', {\n params: { path: { workspace_id: this.workspaceId, service_id: options.serviceId } },\n })\n )\n }\n\n /** Create a new service. */\n async create(options: {\n body: components['schemas']['CreateServiceRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/services', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Update a service. */\n async update(options: {\n serviceId: PlatformServiceId\n body: components['schemas']['UpdateServiceRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/services/{service_id}', {\n params: { path: { workspace_id: this.workspaceId, service_id: options.serviceId } },\n body: options.body,\n })\n )\n }\n\n /** Delete a service. */\n async delete(options: { serviceId: PlatformServiceId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/services/{service_id}', {\n params: { path: { workspace_id: this.workspaceId, service_id: options.serviceId } },\n })\n return undefined\n }\n\n /** Upsert a version set for a service. */\n async upsertVersionSet(options: {\n serviceId: PlatformServiceId\n name: string\n body: components['schemas']['UpsertVersionSetRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/services/{service_id}/version-sets/{name}', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n service_id: options.serviceId,\n name: options.name,\n },\n },\n body: options.body,\n })\n )\n }\n\n /** Resolve all tools available to a service. */\n async resolveTools(options: {\n serviceId: PlatformServiceId\n query?: operations['resolve-service-tools']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/services/{service_id}/tools/resolve', {\n params: {\n path: { workspace_id: this.workspaceId, service_id: options.serviceId },\n query: options.query,\n },\n })\n )\n }\n\n /** Run one voice turn through a service. */\n async voiceTurn(options: {\n serviceId: PlatformServiceId\n body: components['schemas']['Body_voice-turn'] | FormData\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/services/{service_id}/voice-turn', {\n params: { path: { workspace_id: this.workspaceId, service_id: options.serviceId } },\n body: options.body as components['schemas']['Body_voice-turn'],\n })\n )\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport {\n getWebSocketConstructor,\n type PlatformWebSocketConstructor,\n type PlatformWebSocketLike,\n} from '../core/websocket'\nimport { extractData } from '../../core/utils'\nimport type { components } from '../../generated/platform-api-types'\nimport type { CallSid, EntityId, PlatformServiceId, WorkspaceId } from '../core/branded-types'\n\nexport interface PlatformSessionSocketOptions {\n serviceId: PlatformServiceId | string\n entityId: EntityId | string\n conversationId?: string\n toolEvents?: boolean\n token?: string\n WebSocket?: PlatformWebSocketConstructor\n}\n\ninterface PlatformSessionRealtimeConfig {\n apiKey: string\n webSocketBaseUrl: string\n WebSocket?: PlatformWebSocketConstructor\n}\n\n/** Resource for active sessions, text-session starts, injection, and WebSocket connect. */\nexport class PlatformSessionResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId,\n private realtime: PlatformSessionRealtimeConfig\n ) {}\n\n /** List active voice sessions. */\n async listActive() {\n return extractData(\n this.c.GET('/v1/{workspace_id}/sessions/active', {\n params: { path: { workspace_id: this.workspaceId } },\n })\n )\n }\n\n /** Start an SMS, WhatsApp, or web text session with an entity. */\n async start(options: {\n body: components['schemas']['StartSessionRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/sessions/start', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Inject an external event or operator guidance into an active voice session. */\n async inject(options: {\n callSid: CallSid | string\n body: components['schemas']['InjectRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/sessions/{call_sid}/inject', {\n params: {\n path: {\n workspace_id: this.workspaceId,\n call_sid: options.callSid,\n },\n },\n body: options.body,\n })\n )\n }\n\n /** Build the public platform text-session WebSocket URL. */\n buildTextSessionUrl(options: Omit<PlatformSessionSocketOptions, 'token' | 'WebSocket'>): string {\n const url = new URL(\n `/v1/${encodeURIComponent(this.workspaceId)}/sessions/connect`,\n `${this.realtime.webSocketBaseUrl}/`\n )\n url.searchParams.set('service_id', options.serviceId)\n url.searchParams.set('entity_id', options.entityId)\n url.searchParams.set('tool_events', String(options.toolEvents ?? true))\n if (options.conversationId) {\n url.searchParams.set('conversation_id', options.conversationId)\n }\n return url.toString()\n }\n\n /** Connect to the public bidirectional text-session WebSocket. */\n connectTextSession(options: PlatformSessionSocketOptions): PlatformWebSocketLike {\n const WebSocketCtor = getWebSocketConstructor(options.WebSocket ?? this.realtime.WebSocket)\n const token = options.token ?? this.realtime.apiKey\n const url = this.buildTextSessionUrl(options)\n return new WebSocketCtor(url, ['auth', token])\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId, SkillId } from '../core/branded-types'\n\n/** Resource for managing skills. */\nexport class SkillResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId: WorkspaceId\n ) {}\n\n /** List skills in the workspace. */\n async list(options?: {\n query?: operations['list-skills']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/skills', {\n params: { path: { workspace_id: this.workspaceId }, query: options?.query },\n })\n )\n }\n\n /** Get a skill by ID. */\n async get(options: { skillId: SkillId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/skills/{skill_id}', {\n params: { path: { workspace_id: this.workspaceId, skill_id: options.skillId } },\n })\n )\n }\n\n /** Create a new skill. */\n async create(options: {\n body: components['schemas']['CreateSkillRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/skills', {\n params: { path: { workspace_id: this.workspaceId } },\n body: options.body,\n })\n )\n }\n\n /** Update a skill. */\n async update(options: {\n skillId: SkillId\n body: components['schemas']['UpdateSkillRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/skills/{skill_id}', {\n params: { path: { workspace_id: this.workspaceId, skill_id: options.skillId } },\n body: options.body,\n })\n )\n }\n\n /** Delete a skill. */\n async delete(options: { skillId: SkillId }): Promise<void> {\n await this.c.DELETE('/v1/{workspace_id}/skills/{skill_id}', {\n params: { path: { workspace_id: this.workspaceId, skill_id: options.skillId } },\n })\n return undefined\n }\n\n /** Test a skill in isolation. */\n async test(options: {\n skillId: SkillId\n body: components['schemas']['TestSkillRequest']\n }) {\n return extractData(\n this.c.POST('/v1/{workspace_id}/skills/{skill_id}/test', {\n params: { path: { workspace_id: this.workspaceId, skill_id: options.skillId } },\n body: options.body,\n })\n )\n }\n\n /** Get HSM/service references for a skill. */\n async getReferences(options: { skillId: SkillId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/skills/{skill_id}/references', {\n params: { path: { workspace_id: this.workspaceId, skill_id: options.skillId } },\n })\n )\n }\n}\n", "import type { PlatformFetch } from '../core/openapi-client'\nimport { extractData } from '../../core/utils'\nimport type { components, operations } from '../../generated/platform-api-types'\nimport type { WorkspaceId } from '../core/branded-types'\n\n/** Resource for managing workspaces. */\nexport class WorkspaceResource {\n constructor(\n private c: PlatformFetch,\n private workspaceId?: WorkspaceId\n ) {}\n\n private requireWorkspaceId(): WorkspaceId {\n if (!this.workspaceId) {\n throw new Error('workspaceId is required for this operation')\n }\n return this.workspaceId\n }\n\n /** List workspaces accessible to this API key. */\n async list(options?: {\n query?: operations['list-workspaces']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/workspaces', {\n params: { query: options?.query },\n })\n )\n }\n\n /** Get a workspace by ID. */\n async get(options?: { workspaceId?: WorkspaceId }) {\n return extractData(\n this.c.GET('/v1/workspaces/{workspace_id}', {\n params: { path: { workspace_id: options?.workspaceId ?? this.requireWorkspaceId() } },\n })\n )\n }\n\n /** Create a new workspace. */\n async create(options: {\n body: components['schemas']['CreateWorkspaceRequest']\n }) {\n return extractData(\n this.c.POST('/v1/workspaces', {\n body: options.body,\n })\n )\n }\n\n /** Create a self-service workspace. */\n async createSelfService(options: {\n body: components['schemas']['CreateWorkspaceRequest']\n }) {\n return extractData(\n this.c.POST('/v1/workspaces/self-service', {\n body: options.body,\n })\n )\n }\n\n /** Update a workspace. */\n async update(options: {\n workspaceId?: WorkspaceId\n body: components['schemas']['UpdateWorkspaceRequest']\n }) {\n return extractData(\n this.c.PATCH('/v1/workspaces/{workspace_id}', {\n params: { path: { workspace_id: options.workspaceId ?? this.requireWorkspaceId() } },\n body: options.body,\n })\n )\n }\n\n /** Provision workspace resources (idempotent). */\n async provision(options?: { workspaceId?: WorkspaceId }) {\n return extractData(\n this.c.POST('/v1/workspaces/{workspace_id}/provision', {\n params: { path: { workspace_id: options?.workspaceId ?? this.requireWorkspaceId() } },\n })\n )\n }\n\n /** Archive a workspace. */\n async archive(options: {\n workspaceId?: WorkspaceId\n body: components['schemas']['ArchiveWorkspaceRequest']\n }) {\n return extractData(\n this.c.POST('/v1/workspaces/{workspace_id}/archive', {\n params: { path: { workspace_id: options.workspaceId ?? this.requireWorkspaceId() } },\n body: options.body,\n })\n )\n }\n\n /** Check whether a workspace can be converted between environments. */\n async checkEnvironmentConversion(options?: {\n workspaceId?: WorkspaceId\n query?: operations['check-environment-conversion']['parameters']['query']\n }) {\n return extractData(\n this.c.GET('/v1/workspaces/{workspace_id}/environment-check', {\n params: {\n path: { workspace_id: options?.workspaceId ?? this.requireWorkspaceId() },\n query: options?.query,\n },\n })\n )\n }\n\n /** Convert a workspace environment. */\n async convertEnvironment(options: {\n workspaceId?: WorkspaceId\n body: components['schemas']['ConvertEnvironmentRequest']\n }) {\n return extractData(\n this.c.POST('/v1/workspaces/{workspace_id}/convert-environment', {\n params: { path: { workspace_id: options.workspaceId ?? this.requireWorkspaceId() } },\n body: options.body,\n })\n )\n }\n\n /** Get voice settings for a workspace. */\n async getVoiceSettings(options?: { workspaceId?: WorkspaceId }) {\n return extractData(\n this.c.GET('/v1/{workspace_id}/settings/voice', {\n params: { path: { workspace_id: options?.workspaceId ?? this.requireWorkspaceId() } },\n })\n )\n }\n\n /** Update voice settings for a workspace. */\n async updateVoiceSettings(options: {\n workspaceId?: WorkspaceId\n body: components['schemas']['VoiceSettingsRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/{workspace_id}/settings/voice', {\n params: { path: { workspace_id: options.workspaceId ?? this.requireWorkspaceId() } },\n body: options.body,\n })\n )\n }\n\n /** Get test caller numbers for a workspace. */\n async getTestCallerNumbers(options?: { workspaceId?: WorkspaceId }) {\n return extractData(\n this.c.GET('/v1/workspaces/{workspace_id}/test-caller-numbers', {\n params: { path: { workspace_id: options?.workspaceId ?? this.requireWorkspaceId() } },\n })\n )\n }\n\n /** Update test caller numbers for a workspace. */\n async updateTestCallerNumbers(options: {\n workspaceId?: WorkspaceId\n body: components['schemas']['TestCallerNumbersRequest']\n }) {\n return extractData(\n this.c.PUT('/v1/workspaces/{workspace_id}/test-caller-numbers', {\n params: { path: { workspace_id: options.workspaceId ?? this.requireWorkspaceId() } },\n body: options.body,\n })\n )\n }\n}\n", "declare const __brand: unique symbol\ntype Brand<T, B extends string> = T & { readonly [__brand]: B }\n\n/** A branded string representing a Workspace ID. */\nexport type WorkspaceId = Brand<string, 'WorkspaceId'>\n/** A branded string representing a Skill ID. */\nexport type SkillId = Brand<string, 'SkillId'>\n/** A branded string representing an Integration ID. */\nexport type IntegrationId = Brand<string, 'IntegrationId'>\n/** A branded string representing an HSM ID. */\nexport type HsmId = Brand<string, 'HsmId'>\n/** A branded string representing a Context Graph ID. */\nexport type ContextGraphId = Brand<string, 'ContextGraphId'>\n/** A branded string representing a Platform Agent ID. */\nexport type PlatformAgentId = Brand<string, 'PlatformAgentId'>\n/** A branded string representing a Platform Service ID. */\nexport type PlatformServiceId = Brand<string, 'PlatformServiceId'>\n/** A branded string representing a Phone Number ID. */\nexport type PhoneNumberId = Brand<string, 'PhoneNumberId'>\n/** A branded string representing a Platform API Key ID. */\nexport type PlatformApiKeyId = Brand<string, 'PlatformApiKeyId'>\n/** A branded string representing a Call SID. */\nexport type CallSid = Brand<string, 'CallSid'>\n/** A branded string representing a Platform Conversation ID. */\nexport type PlatformConversationId = Brand<string, 'PlatformConversationId'>\n/** A branded string representing a Data Source ID. */\nexport type DataSourceId = Brand<string, 'DataSourceId'>\n/** A branded string representing an Operator ID. */\nexport type OperatorId = Brand<string, 'OperatorId'>\n/** A branded string representing a Review Item ID. */\nexport type ReviewItemId = Brand<string, 'ReviewItemId'>\n/** A branded string representing a Monitor Concept ID. */\nexport type MonitorConceptId = Brand<string, 'MonitorConceptId'>\n/** A branded string representing a Unification Rule ID. */\nexport type UnificationRuleId = Brand<string, 'UnificationRuleId'>\n/** A branded string representing an Entity ID. */\nexport type EntityId = Brand<string, 'EntityId'>\n/** A branded string representing a Task ID. */\nexport type TaskId = Brand<string, 'TaskId'>\n\nexport function workspaceId(id: string): WorkspaceId {\n return id as WorkspaceId\n}\nexport function skillId(id: string): SkillId {\n return id as SkillId\n}\nexport function integrationId(id: string): IntegrationId {\n return id as IntegrationId\n}\nexport function hsmId(id: string): HsmId {\n return id as HsmId\n}\nexport function contextGraphId(id: string): ContextGraphId {\n return id as ContextGraphId\n}\nexport function platformAgentId(id: string): PlatformAgentId {\n return id as PlatformAgentId\n}\nexport function platformServiceId(id: string): PlatformServiceId {\n return id as PlatformServiceId\n}\nexport function phoneNumberId(id: string): PhoneNumberId {\n return id as PhoneNumberId\n}\nexport function platformApiKeyId(id: string): PlatformApiKeyId {\n return id as PlatformApiKeyId\n}\nexport function callSid(id: string): CallSid {\n return id as CallSid\n}\nexport function platformConversationId(id: string): PlatformConversationId {\n return id as PlatformConversationId\n}\nexport function dataSourceId(id: string): DataSourceId {\n return id as DataSourceId\n}\nexport function operatorId(id: string): OperatorId {\n return id as OperatorId\n}\nexport function reviewItemId(id: string): ReviewItemId {\n return id as ReviewItemId\n}\nexport function monitorConceptId(id: string): MonitorConceptId {\n return id as MonitorConceptId\n}\nexport function unificationRuleId(id: string): UnificationRuleId {\n return id as UnificationRuleId\n}\nexport function entityId(id: string): EntityId {\n return id as EntityId\n}\nexport function taskId(id: string): TaskId {\n return id as TaskId\n}\n", "import { ConfigurationError } from '../core/errors'\nimport type { RetryOptions } from '../core/retry'\nimport { createPlatformFetch, type PlatformFetch } from './core/openapi-client'\nimport {\n type PlatformWebSocketConstructor,\n webSocketBaseFromHttpBase,\n} from './core/websocket'\nimport { PlatformAgentResource } from './resources/agents'\nimport { PlatformApiKeyResource } from './resources/api-keys'\nimport { ContextGraphResource } from './resources/context-graphs'\nimport { PlatformConversationResource } from './resources/conversations'\nimport { DataSourceResource } from './resources/data-sources'\nimport { PlatformEventResource } from './resources/events'\nimport { FhirResource } from './resources/fhir'\nimport { IntegrationResource } from './resources/integrations'\nimport { PhoneNumberResource } from './resources/phone-numbers'\nimport { PlatformServiceResource } from './resources/services'\nimport { PlatformSessionResource } from './resources/sessions'\nimport { SkillResource } from './resources/skills'\nimport { WorkspaceResource } from './resources/workspaces'\nimport type { WorkspaceId } from './core/branded-types'\n\nexport interface PlatformClientConfig {\n /** Platform API key or JWT. */\n apiKey: string\n /** Workspace ID used by workspace-scoped resources. */\n workspaceId: WorkspaceId\n /** Platform API base URL. */\n baseUrl?: string\n /** Platform WebSocket base URL. Defaults to `baseUrl` with ws/wss protocol. */\n webSocketBaseUrl?: string\n /** Retry configuration for HTTP requests. */\n retry?: RetryOptions\n /** Fetch implementation override for tests or non-standard runtimes. */\n fetch?: typeof fetch\n /** WebSocket constructor override for Node runtimes without global WebSocket. */\n WebSocket?: PlatformWebSocketConstructor\n}\n\nconst defaultBaseUrl = 'https://api.platform.amigo.ai'\n\n/** Main client for the workspace-scoped Amigo Platform API. */\nexport class PlatformClient {\n readonly api: PlatformFetch\n readonly agents: PlatformAgentResource\n readonly apiKeys: PlatformApiKeyResource\n readonly contextGraphs: ContextGraphResource\n readonly conversations: PlatformConversationResource\n readonly dataSources: DataSourceResource\n readonly events: PlatformEventResource\n readonly fhir: FhirResource\n readonly integrations: IntegrationResource\n readonly phoneNumbers: PhoneNumberResource\n readonly services: PlatformServiceResource\n readonly sessions: PlatformSessionResource\n readonly skills: SkillResource\n readonly workspaces: WorkspaceResource\n readonly config: Required<Pick<PlatformClientConfig, 'apiKey' | 'workspaceId' | 'baseUrl' | 'webSocketBaseUrl'>> &\n Omit<PlatformClientConfig, 'apiKey' | 'workspaceId' | 'baseUrl' | 'webSocketBaseUrl'>\n\n constructor(config: PlatformClientConfig) {\n this.config = validateConfig(config)\n this.api = createPlatformFetch(this.config)\n\n this.workspaces = new WorkspaceResource(this.api, this.config.workspaceId)\n this.agents = new PlatformAgentResource(this.api, this.config.workspaceId)\n this.apiKeys = new PlatformApiKeyResource(this.api, this.config.workspaceId)\n this.contextGraphs = new ContextGraphResource(this.api, this.config.workspaceId)\n this.conversations = new PlatformConversationResource(this.api, this.config.workspaceId)\n this.dataSources = new DataSourceResource(this.api, this.config.workspaceId)\n this.events = new PlatformEventResource(this.api, this.config.workspaceId)\n this.fhir = new FhirResource(this.api, this.config.workspaceId)\n this.integrations = new IntegrationResource(this.api, this.config.workspaceId)\n this.phoneNumbers = new PhoneNumberResource(this.api, this.config.workspaceId)\n this.services = new PlatformServiceResource(this.api, this.config.workspaceId)\n this.sessions = new PlatformSessionResource(this.api, this.config.workspaceId, {\n apiKey: this.config.apiKey,\n webSocketBaseUrl: this.config.webSocketBaseUrl,\n WebSocket: this.config.WebSocket,\n })\n this.skills = new SkillResource(this.api, this.config.workspaceId)\n }\n}\n\nfunction validateConfig(config: PlatformClientConfig): PlatformClient['config'] {\n if (!config.apiKey) {\n throw new ConfigurationError('Platform API key is required', 'apiKey')\n }\n if (!config.workspaceId) {\n throw new ConfigurationError('Workspace ID is required', 'workspaceId')\n }\n\n const baseUrl = config.baseUrl ?? defaultBaseUrl\n const webSocketBaseUrl = config.webSocketBaseUrl ?? webSocketBaseFromHttpBase(baseUrl)\n\n return {\n ...config,\n baseUrl,\n webSocketBaseUrl,\n }\n}\n\nexport { createPlatformFetch }\nexport type { PlatformFetch, PlatformWebSocketConstructor }\nexport type { ServerSentEvent } from '../core/utils'\n\nexport {\n AmigoError,\n BadRequestError,\n AuthenticationError,\n PermissionError,\n NotFoundError,\n ConflictError,\n RateLimitError,\n ServerError,\n ServiceUnavailableError,\n ConfigurationError,\n ValidationError,\n NetworkError,\n ParseError,\n isAmigoError,\n} from '../core/errors'\n\nexport type { components, operations, paths } from '../generated/platform-api-types'\n\nexport type {\n CallSid,\n ContextGraphId,\n DataSourceId,\n EntityId,\n IntegrationId,\n MonitorConceptId,\n OperatorId,\n PhoneNumberId,\n PlatformAgentId,\n PlatformApiKeyId,\n PlatformConversationId,\n PlatformServiceId,\n ReviewItemId,\n SkillId,\n TaskId,\n UnificationRuleId,\n WorkspaceId,\n} from './core/branded-types'\nexport {\n callSid,\n contextGraphId,\n dataSourceId,\n entityId,\n integrationId,\n monitorConceptId,\n operatorId,\n phoneNumberId,\n platformAgentId,\n platformApiKeyId,\n platformConversationId,\n platformServiceId,\n reviewItemId,\n skillId,\n taskId,\n unificationRuleId,\n workspaceId,\n} from './core/branded-types'\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["isNetworkError", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId", "workspaceId"]
|
|
7
|
+
}
|
|
@@ -26,21 +26,30 @@ export declare class AmigoError extends Error {
|
|
|
26
26
|
*/
|
|
27
27
|
toJSON(): Record<string, unknown>;
|
|
28
28
|
}
|
|
29
|
+
type AmigoErrorOptions = NonNullable<ConstructorParameters<typeof AmigoError>[1]>;
|
|
29
30
|
export declare class BadRequestError extends AmigoError {
|
|
31
|
+
constructor(message: string, options?: AmigoErrorOptions);
|
|
30
32
|
}
|
|
31
33
|
export declare class AuthenticationError extends AmigoError {
|
|
34
|
+
constructor(message: string, options?: AmigoErrorOptions);
|
|
32
35
|
}
|
|
33
36
|
export declare class PermissionError extends AmigoError {
|
|
37
|
+
constructor(message: string, options?: AmigoErrorOptions);
|
|
34
38
|
}
|
|
35
39
|
export declare class NotFoundError extends AmigoError {
|
|
40
|
+
constructor(message: string, options?: AmigoErrorOptions);
|
|
36
41
|
}
|
|
37
42
|
export declare class ConflictError extends AmigoError {
|
|
43
|
+
constructor(message: string, options?: AmigoErrorOptions);
|
|
38
44
|
}
|
|
39
45
|
export declare class RateLimitError extends AmigoError {
|
|
46
|
+
constructor(message: string, options?: AmigoErrorOptions);
|
|
40
47
|
}
|
|
41
48
|
export declare class ServerError extends AmigoError {
|
|
49
|
+
constructor(message: string, options?: AmigoErrorOptions);
|
|
42
50
|
}
|
|
43
51
|
export declare class ServiceUnavailableError extends ServerError {
|
|
52
|
+
constructor(message: string, options?: AmigoErrorOptions);
|
|
44
53
|
}
|
|
45
54
|
export declare class ConfigurationError extends AmigoError {
|
|
46
55
|
readonly field?: string | undefined;
|
|
@@ -48,7 +57,7 @@ export declare class ConfigurationError extends AmigoError {
|
|
|
48
57
|
}
|
|
49
58
|
export declare class ValidationError extends BadRequestError {
|
|
50
59
|
fieldErrors?: Record<string, string> | undefined;
|
|
51
|
-
constructor(msg: string, fieldErrors?: Record<string, string> | undefined);
|
|
60
|
+
constructor(msg: string, optionsOrFieldErrors?: AmigoErrorOptions | Record<string, string>, fieldErrors?: Record<string, string> | undefined);
|
|
52
61
|
}
|
|
53
62
|
export declare class NetworkError extends AmigoError {
|
|
54
63
|
readonly originalError?: Error | undefined;
|
|
@@ -69,3 +78,4 @@ export declare class ParseError extends AmigoError {
|
|
|
69
78
|
export declare function isAmigoError(error: unknown): error is AmigoError;
|
|
70
79
|
export declare function createApiError(response: Response, body?: unknown): AmigoError;
|
|
71
80
|
export declare function createErrorMiddleware(): Middleware;
|
|
81
|
+
export {};
|
|
@@ -9,5 +9,16 @@ export declare function extractData<T extends {
|
|
|
9
9
|
* The generator yields one parsed object per line. Empty lines are skipped.
|
|
10
10
|
*/
|
|
11
11
|
export declare function parseNdjsonStream<T = unknown>(response: Response): AsyncGenerator<T>;
|
|
12
|
+
export interface ServerSentEvent<T = unknown> {
|
|
13
|
+
id?: string;
|
|
14
|
+
event?: string;
|
|
15
|
+
data: T | string;
|
|
16
|
+
retry?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Parse an SSE HTTP response body into an async generator of parsed events.
|
|
20
|
+
* JSON data payloads are parsed; non-JSON payloads are returned as strings.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseSseStream<T = unknown>(response: Response): AsyncGenerator<ServerSentEvent<T>>;
|
|
12
23
|
export declare function parseResponseBody(response: Response): Promise<unknown>;
|
|
13
24
|
export declare function isNetworkError(error: unknown): boolean;
|
|
@@ -5458,7 +5458,7 @@ export interface components {
|
|
|
5458
5458
|
"StrippedNonemptyString_a-z-_____a-z-____0_2____": string;
|
|
5459
5459
|
"StrippedNonemptyString_a-z0-9______": string;
|
|
5460
5460
|
"StrippedNonemptyString_a-z___a-z0-9_______": string;
|
|
5461
|
-
"StrippedNonemptyString_a-z___a-z0-
|
|
5461
|
+
"StrippedNonemptyString_a-z___a-z0-9___lambda__at_0xffff7b2fd0c0__": string;
|
|
5462
5462
|
/** SucceededInvocationResult */
|
|
5463
5463
|
SucceededInvocationResult: {
|
|
5464
5464
|
/**
|