@tryvira/sdk 0.0.0-stage → 0.1.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/LICENSE +1 -0
- package/README.md +96 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +779 -0
- package/dist/index.js.map +7 -0
- package/dist/js-client.d.ts +333 -0
- package/package.json +18 -6
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../sdks/js-client.ts"],
|
|
4
|
+
"sourcesContent": ["export interface RuntimeRequest {\r\n organizationId: string;\r\n projectId: string;\r\n environmentId: string;\r\n revisionId: string;\r\n idempotencyKey: string;\r\n nonce: string;\r\n expiresAt: number;\r\n}\r\nexport interface SdkRequest {\r\n method: \"GET\" | \"POST\";\r\n path: string;\r\n query?: Readonly<Record<string, string>>;\r\n body?: Readonly<Record<string, unknown>>;\r\n}\r\nexport type SdkFailureMode = \"throw\" | \"open\";\r\nexport interface ViraClientOptions {\r\n baseUrl: string;\r\n apiKey?: string;\r\n fetcher?: typeof fetch;\r\n timeoutMs?: number;\r\n retries?: number;\r\n failureMode?: SdkFailureMode;\r\n defaultHeaders?: Readonly<Record<string, string>>;\r\n}\r\nexport interface ViraResponse<T = unknown> {\r\n status: number;\r\n body: T;\r\n requestId: string;\r\n}\r\nexport interface ConnectOnceResult {\r\n system: ClientBody;\r\n connection: ClientBody;\r\n handshake: ClientBody;\r\n}\r\nexport interface StrategyContinuationInput {\r\n authorityDigest?: string;\r\n state?: Readonly<Record<string, unknown>>;\r\n references?: Readonly<Record<string, unknown>>;\r\n}\r\nexport class ViraApiError extends Error {\r\n readonly status: number;\r\n readonly body: unknown;\r\n readonly requestId: string;\r\n constructor(\r\n message: string,\r\n status: number,\r\n body: unknown,\r\n requestId: string,\r\n ) {\r\n super(message);\r\n this.name = \"ViraApiError\";\r\n this.status = status;\r\n this.body = body;\r\n this.requestId = requestId;\r\n }\r\n}\r\ntype ClientBody = Record<string, unknown>;\r\ntype ClientObservation = {\r\n eventId: string;\r\n eventType: string;\r\n aiSystemId: string;\r\n connectionId: string;\r\n [key: string]: unknown;\r\n};\r\nconst required = (value: unknown, code: string): string => {\r\n if (typeof value !== \"string\" || !value.trim()) throw new Error(code);\r\n return value;\r\n};\r\nconst wait = (ms: number) =>\r\n new Promise<void>((resolve) => setTimeout(resolve, ms));\r\n\r\n/** Small, authority-aware client over the existing versioned control API. */\r\nexport class ViraClient {\r\n private readonly baseUrl: string;\r\n private readonly apiKey?: string;\r\n private readonly fetcher: typeof fetch;\r\n private readonly timeoutMs: number;\r\n private readonly retries: number;\r\n private readonly failureMode: SdkFailureMode;\r\n private readonly defaultHeaders: Readonly<Record<string, string>>;\r\n constructor(options: ViraClientOptions) {\r\n this.baseUrl = required(options.baseUrl, \"SDK_BASE_URL_REQUIRED\").replace(\r\n /\\/$/,\r\n \"\",\r\n );\r\n this.apiKey = options.apiKey;\r\n this.fetcher = options.fetcher ?? fetch;\r\n this.timeoutMs = Math.max(\r\n 1_000,\r\n Math.min(options.timeoutMs ?? 15_000, 120_000),\r\n );\r\n this.retries = Math.max(0, Math.min(options.retries ?? 2, 5));\r\n this.failureMode = options.failureMode ?? \"throw\";\r\n this.defaultHeaders = options.defaultHeaders ?? {};\r\n }\r\n private async request<T = unknown>(\r\n request: SdkRequest,\r\n options: { idempotencyKey?: string; enforcing?: boolean } = {},\r\n ): Promise<ViraResponse<T> | null> {\r\n const url = new URL(this.baseUrl + request.path);\r\n for (const [key, value] of Object.entries(request.query ?? {}))\r\n url.searchParams.set(key, value);\r\n const headers: Record<string, string> = {\r\n accept: \"application/json\",\r\n ...this.defaultHeaders,\r\n };\r\n if (request.body) headers[\"content-type\"] = \"application/json\";\r\n if (this.apiKey) headers.authorization = `Bearer ${this.apiKey}`;\r\n if (options.idempotencyKey)\r\n headers[\"idempotency-key\"] = options.idempotencyKey;\r\n // A mutation is retryable only when the caller supplied an idempotency\r\n // key. Retrying an unkeyed POST after a network failure can duplicate a\r\n // persisted resource or release. GETs remain safely retryable.\r\n const retryable = request.method === \"GET\" || Boolean(options.idempotencyKey);\r\n const attempts = retryable ? this.retries + 1 : 1;\r\n let lastError: unknown;\r\n for (let attempt = 0; attempt < attempts; attempt += 1) {\r\n const controller = new AbortController();\r\n const timer = setTimeout(() => controller.abort(), this.timeoutMs);\r\n try {\r\n const response = await this.fetcher(url, {\r\n method: request.method,\r\n headers,\r\n body: request.body ? JSON.stringify(request.body) : undefined,\r\n signal: controller.signal,\r\n });\r\n const raw = await response.text();\r\n let body: unknown = null;\r\n try {\r\n body = raw ? JSON.parse(raw) : null;\r\n } catch {\r\n body = raw;\r\n }\r\n const requestId = response.headers.get(\"x-request-id\") ?? \"\";\r\n if (!response.ok) {\r\n const error = new ViraApiError(\r\n `VIRA_API_${response.status}`,\r\n response.status,\r\n body,\r\n requestId,\r\n );\r\n if ((response.status >= 500 || response.status === 429) && attempt + 1 < attempts) {\r\n const retryAfter = Number(response.headers.get(\"retry-after\") ?? \"\");\r\n const serverDelay = Number.isFinite(retryAfter) && retryAfter >= 0\r\n ? Math.min(retryAfter * 1000, 120_000)\r\n : 0;\r\n const jitter = Math.floor(Math.random() * 25);\r\n await wait(Math.max(serverDelay, 25 * 2 ** attempt) + jitter);\r\n continue;\r\n }\r\n if (\r\n this.failureMode === \"open\" &&\r\n !options.enforcing &&\r\n response.status >= 500\r\n )\r\n return null;\r\n throw error;\r\n }\r\n return { status: response.status, body: body as T, requestId };\r\n } catch (error) {\r\n lastError = error;\r\n if (error instanceof ViraApiError) throw error;\r\n if (attempt + 1 < attempts) {\r\n await wait(25 * 2 ** attempt);\r\n continue;\r\n }\r\n if (this.failureMode === \"open\" && !options.enforcing) return null;\r\n throw error;\r\n } finally {\r\n clearTimeout(timer);\r\n }\r\n }\r\n throw lastError;\r\n }\r\n connectSystem(input: {\r\n name: string;\r\n systemType: string;\r\n organizationId: string;\r\n projectId: string;\r\n environmentId: string;\r\n idempotencyKey?: string;\r\n }) {\r\n const request = buildAISystemRequest(input);\r\n return this.request<{ system: ClientBody }>(request, {\r\n idempotencyKey: input.idempotencyKey,\r\n });\r\n }\r\n connectAdapter(\r\n systemId: string,\r\n input: {\r\n adapterType: string;\r\n adapterVersion: string;\r\n capabilities?: readonly string[];\r\n config?: unknown;\r\n idempotencyKey?: string;\r\n },\r\n ) {\r\n required(systemId, \"SDK_SYSTEM_ID_REQUIRED\");\r\n const body: ClientBody = {\r\n ...input,\r\n capabilities: [...(input.capabilities ?? [])],\r\n };\r\n delete body.idempotencyKey;\r\n return this.request<{ connection: ClientBody; handshake: ClientBody }>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/ai-systems/${encodeURIComponent(systemId)}/connections`,\r\n body,\r\n },\r\n { idempotencyKey: input.idempotencyKey },\r\n );\r\n }\r\n async connectOnce(input: {\r\n name: string;\r\n systemType: string;\r\n organizationId: string;\r\n projectId: string;\r\n environmentId: string;\r\n adapterType: string;\r\n adapterVersion: string;\r\n capabilities?: readonly string[];\r\n config?: unknown;\r\n idempotencyKey?: string;\r\n }): Promise<ViraResponse<ConnectOnceResult> | null> {\r\n const systemResult = await this.connectSystem(input);\r\n if (!systemResult) return null;\r\n const systemId = String(systemResult.body.system.id ?? \"\");\r\n required(systemId, \"SDK_SYSTEM_ID_MISSING\");\r\n const connectionResult = await this.connectAdapter(systemId, {\r\n adapterType: input.adapterType,\r\n adapterVersion: input.adapterVersion,\r\n capabilities: input.capabilities,\r\n config: input.config,\r\n idempotencyKey: input.idempotencyKey,\r\n });\r\n if (!connectionResult) return null;\r\n return {\r\n status: connectionResult.status,\r\n requestId: connectionResult.requestId,\r\n body: {\r\n system: systemResult.body.system,\r\n connection: connectionResult.body.connection,\r\n handshake: connectionResult.body.handshake,\r\n },\r\n };\r\n }\r\n observe(event: ClientObservation, options: { idempotencyKey?: string } = {}) {\r\n return this.request<ClientBody>(buildObservationRequest(event), {\r\n idempotencyKey: options.idempotencyKey ?? event.eventId,\r\n });\r\n }\r\n trace(\r\n event: {\r\n eventId: string;\r\n aiSystemId: string;\r\n connectionId: string;\r\n traceId?: string;\r\n spanId?: string;\r\n [key: string]: unknown;\r\n },\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n return this.observe({ ...event, eventType: \"model.response\" }, options);\r\n }\r\n outcome(\r\n event: {\r\n eventId: string;\r\n aiSystemId: string;\r\n connectionId: string;\r\n [key: string]: unknown;\r\n },\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n return this.observe({ ...event, eventType: \"business.outcome\" }, options);\r\n }\r\n feedback(\r\n event: {\r\n eventId: string;\r\n aiSystemId: string;\r\n connectionId: string;\r\n [key: string]: unknown;\r\n },\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n return this.observe({ ...event, eventType: \"feedback.user\" }, options);\r\n }\r\n observeBatch(\r\n events: readonly {\r\n eventId: string;\r\n eventType: string;\r\n aiSystemId: string;\r\n connectionId: string;\r\n [key: string]: unknown;\r\n }[],\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n if (!Array.isArray(events) || events.length < 1 || events.length > 100)\r\n throw new Error(\"SDK_OBSERVATION_BATCH_INVALID\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/observations/batch\",\r\n body: { events: [...events] },\r\n },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n observeSdk(delivery: ClientBody, options: { idempotencyKey?: string } = {}) {\r\n return this.request<ClientBody>(\r\n { method: \"POST\", path: \"/v1/observations/sdk\", body: delivery },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n discover(reviewState?: string) {\r\n return this.request<{ candidates: readonly ClientBody[] }>({\r\n method: \"GET\",\r\n path: \"/v1/discovery/candidates\",\r\n query: reviewState ? { reviewState } : undefined,\r\n });\r\n }\r\n createSignalDiscoveryProposal(input: ClientBody, options: { idempotencyKey?: string } = {}) { return this.request<ClientBody>({method:\"POST\",path:\"/v1/signals/discovery-proposals\",body:input},{idempotencyKey:options.idempotencyKey ?? String(input.signalStableKey ?? \"\")}); }\r\n reviewSignalDiscoveryProposal(proposalId:string, decision:\"APPROVE\"|\"REJECT\", options:{idempotencyKey?:string}={}) { required(proposalId,\"SDK_SIGNAL_PROPOSAL_ID_REQUIRED\"); return this.request<ClientBody>({method:\"POST\",path:`/v1/signals/discovery-proposals/${encodeURIComponent(proposalId)}/review`,body:{decision}},{idempotencyKey:options.idempotencyKey ?? `signal-review:${proposalId}`}); }\r\n materializeSignalDiscovery(proposalId:string, input:ClientBody={}, options:{idempotencyKey?:string}={}) { required(proposalId,\"SDK_SIGNAL_PROPOSAL_ID_REQUIRED\"); return this.request<ClientBody>({method:\"POST\",path:`/v1/signals/discovery-proposals/${encodeURIComponent(proposalId)}/materialize`,body:input},{idempotencyKey:options.idempotencyKey ?? `signal-materialize:${proposalId}`}); }\r\n createSignalMapping(input:ClientBody, options:{idempotencyKey?:string}={}) { return this.request<ClientBody>({method:\"POST\",path:\"/v1/signals/mappings\",body:input},{idempotencyKey:options.idempotencyKey ?? String(input.signalStableKey ?? \"\")}); }\r\n getSignalMapping(mappingId:string) { required(mappingId,\"SDK_SIGNAL_MAPPING_ID_REQUIRED\"); return this.request<ClientBody>({method:\"GET\",path:`/v1/signals/mappings/${encodeURIComponent(mappingId)}`}); }\r\n reviewSignalMapping(mappingId:string, input:ClientBody={}, options:{idempotencyKey?:string}={}) { required(mappingId,\"SDK_SIGNAL_MAPPING_ID_REQUIRED\"); return this.request<ClientBody>({method:\"POST\",path:`/v1/signals/mappings/${encodeURIComponent(mappingId)}/review`,body:input},{idempotencyKey:options.idempotencyKey ?? `signal-mapping-review:${mappingId}`}); }\r\n connectionHealth(connectionId: string) {\r\n required(connectionId, \"SDK_CONNECTION_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"GET\",\r\n path: `/v1/connections/${encodeURIComponent(connectionId)}/health`,\r\n });\r\n }\r\n inventory(systemId: string) {\r\n required(systemId, \"SDK_SYSTEM_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"GET\",\r\n path: `/v1/ai-systems/${encodeURIComponent(systemId)}/inventory`,\r\n });\r\n }\r\n listPacks() {\r\n return this.request<{ packs: readonly ClientBody[] }>({\r\n method: \"GET\",\r\n path: \"/v1/packs\",\r\n });\r\n }\r\n importPack(input: {\r\n manifest?: unknown;\r\n objects?: Record<string, unknown>;\r\n archiveBase64?: string;\r\n fileName?: string;\r\n idempotencyKey?: string;\r\n }) {\r\n if (!input?.manifest && !input?.archiveBase64)\r\n throw new Error(\"SDK_PACK_MANIFEST_OR_ARCHIVE_REQUIRED\");\r\n if (input.archiveBase64 && !input.fileName)\r\n throw new Error(\"SDK_PACK_FILE_NAME_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/packs/import\",\r\n body: {\r\n ...(input.manifest ? { manifest: input.manifest } : {}),\r\n objects: input.objects ?? {},\r\n ...(input.archiveBase64\r\n ? { archiveBase64: input.archiveBase64, fileName: input.fileName }\r\n : {}),\r\n },\r\n },\r\n { idempotencyKey: input.idempotencyKey ?? `sdk:pack:${Date.now()}` },\r\n );\r\n }\r\n installPack(packId: string, variables: Record<string, unknown> = {}) {\r\n required(packId, \"SDK_PACK_ID_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/packs/${encodeURIComponent(packId)}/install`,\r\n body: { variables },\r\n },\r\n { idempotencyKey: `sdk:pack:install:${packId}` },\r\n );\r\n }\r\n evaluatePack(\r\n packId: string,\r\n input: { passed: boolean; score?: number; runId?: string },\r\n ) {\r\n required(packId, \"SDK_PACK_ID_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/packs/${encodeURIComponent(packId)}/evaluate`,\r\n body: { ...input },\r\n },\r\n { idempotencyKey: `sdk:pack:evaluate:${packId}` },\r\n );\r\n }\r\n approvePack(packId: string) {\r\n required(packId, \"SDK_PACK_ID_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/packs/${encodeURIComponent(packId)}/approve`,\r\n body: {},\r\n },\r\n { idempotencyKey: `sdk:pack:approve:${packId}` },\r\n );\r\n }\r\n releasePack(packId: string) {\r\n required(packId, \"SDK_PACK_ID_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/packs/${encodeURIComponent(packId)}/release`,\r\n body: {},\r\n },\r\n { idempotencyKey: `sdk:pack:release:${packId}` },\r\n );\r\n }\r\n previewPackUpgrade(packId: string, incoming: ClientBody) {\r\n required(packId, \"SDK_PACK_ID_REQUIRED\");\r\n if (!incoming || typeof incoming !== \"object\")\r\n throw new Error(\"SDK_PACK_UPGRADE_INPUT_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/packs/${encodeURIComponent(packId)}/upgrade-preview`,\r\n body: { incoming },\r\n },\r\n { idempotencyKey: `sdk:pack:upgrade-preview:${packId}` },\r\n );\r\n }\r\n executeRuntime(input: RuntimeRequest & Record<string, unknown>) {\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/runtime/execute\",\r\n body: buildRuntimeRequest(\r\n input as RuntimeRequest & Record<string, unknown>,\r\n ) as unknown as ClientBody,\r\n },\r\n { idempotencyKey: input.idempotencyKey, enforcing: true },\r\n );\r\n }\r\n resolveRuntime(input: {\r\n behaviorPoint?: string;\r\n executionBoundary?: Record<string, unknown>;\r\n semanticContext?: Record<string, unknown>;\r\n idempotencyKey?: string;\r\n }) {\r\n if (!input.behaviorPoint && !input.executionBoundary && !input.semanticContext)\r\n throw new Error(\"SDK_RUNTIME_ROUTE_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/runtime/resolve\",\r\n body: {\r\n ...(input.behaviorPoint ? { behaviorPoint: input.behaviorPoint } : {}),\r\n ...(input.executionBoundary\r\n ? { executionBoundary: input.executionBoundary }\r\n : {}),\r\n ...(input.semanticContext ? { semanticContext: input.semanticContext } : {}),\r\n },\r\n },\r\n {\r\n idempotencyKey:\r\n input.idempotencyKey ?? `sdk:resolve:${input.behaviorPoint ?? \"boundary\"}`,\r\n enforcing: true,\r\n },\r\n );\r\n }\r\n /** Resolve a runtime route from a governed execution boundary and semantic context. */\r\n resolveBoundary(input: {\r\n executionBoundary: Record<string, unknown>;\r\n semanticContext?: Record<string, unknown>;\r\n idempotencyKey?: string;\r\n }) {\r\n if (!input.executionBoundary || typeof input.executionBoundary !== \"object\")\r\n throw new Error(\"SDK_EXECUTION_BOUNDARY_REQUIRED\");\r\n return this.resolveRuntime({\r\n executionBoundary: input.executionBoundary,\r\n ...(input.semanticContext ? { semanticContext: input.semanticContext } : {}),\r\n idempotencyKey: input.idempotencyKey,\r\n });\r\n }\r\n resolveSemantic(input: {\r\n input: string;\r\n profile?: Record<string, unknown>;\r\n sessionId?: string;\r\n selection?: Record<string, unknown>;\r\n candidates?: readonly string[];\r\n timeoutMs?: number;\r\n requestId?: string;\r\n executionBoundary?: Record<string, unknown>;\r\n idempotencyKey?: string;\r\n }) {\r\n required(input.input, \"SDK_SEMANTIC_INPUT_REQUIRED\");\r\n const { idempotencyKey, requestId, ...body } = input;\r\n const resolvedRequestId =\r\n requestId ??\r\n `sdk-semantic-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/semantic/resolve\",\r\n body: { ...body, requestId: resolvedRequestId },\r\n },\r\n { idempotencyKey: idempotencyKey ?? `sdk:semantic:${resolvedRequestId}` },\r\n );\r\n }\r\n async resolveSemanticRuntime(input: {\r\n input: string;\r\n profile?: Record<string, unknown>;\r\n sessionId?: string;\r\n timeoutMs?: number;\r\n requestId?: string;\r\n executionBoundary?: Record<string, unknown>;\r\n idempotencyKey?: string;\r\n }) {\r\n const semantic = await this.resolveSemantic(input);\r\n if (!semantic) return null;\r\n const body = semantic.body as ClientBody;\r\n const receipt =\r\n body.receipt && typeof body.receipt === \"object\"\r\n ? (body.receipt as ClientBody)\r\n : {};\r\n if (receipt.outcome !== \"select\" || typeof receipt.taskKey !== \"string\")\r\n return { semantic, runtime: null };\r\n const capsules = Array.isArray(body.capsules) ? body.capsules : [];\r\n const firstCapsule =\r\n capsules[0] && typeof capsules[0] === \"object\"\r\n ? (capsules[0] as ClientBody)\r\n : {};\r\n const behaviorPoint =\r\n typeof firstCapsule.behaviorKey === \"string\" &&\r\n firstCapsule.behaviorKey.trim()\r\n ? firstCapsule.behaviorKey\r\n : receipt.taskKey;\r\n const runtime = input.executionBoundary\r\n ? await this.resolveBoundary({\r\n executionBoundary: input.executionBoundary,\r\n semanticContext: {\r\n taskKey: receipt.taskKey,\r\n behaviorPoint,\r\n capsule: firstCapsule,\r\n },\r\n idempotencyKey: input.idempotencyKey\r\n ? `sdk:runtime:${input.idempotencyKey}`\r\n : undefined,\r\n })\r\n : await this.resolveRuntime({\r\n semanticContext: {taskKey: receipt.taskKey, behaviorPoint, capsule: firstCapsule},\r\n idempotencyKey: input.idempotencyKey\r\n ? `sdk:runtime:${input.idempotencyKey}`\r\n : undefined,\r\n });\r\n return { semantic, runtime };\r\n }\r\n listBehaviorStrategies() {\r\n return this.request<ClientBody>({\r\n method: \"GET\",\r\n path: \"/v1/behavior-strategies\",\r\n });\r\n }\r\n getBehaviorStrategy(strategyId: string) {\r\n required(strategyId, \"SDK_STRATEGY_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"GET\",\r\n path: `/v1/behavior-strategies/${encodeURIComponent(strategyId)}`,\r\n });\r\n }\r\n createBehaviorStrategy(definition: Record<string, unknown>, id?: string) {\r\n if (!definition) throw new Error(\"SDK_STRATEGY_DEFINITION_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"POST\",\r\n path: \"/v1/behavior-strategies\",\r\n body: { definition, ...(id ? { id } : {}) },\r\n });\r\n }\r\n createBehaviorStrategyVariant(\r\n strategyId: string,\r\n variant: Record<string, unknown>,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n required(strategyId, \"SDK_STRATEGY_ID_REQUIRED\");\r\n if (!variant || typeof variant !== \"object\")\r\n throw new Error(\"SDK_STRATEGY_VARIANT_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/behavior-strategies/${encodeURIComponent(strategyId)}/variants`,\r\n body: variant,\r\n },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n validateBehaviorStrategy(strategyId: string) {\r\n required(strategyId, \"SDK_STRATEGY_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"POST\",\r\n path: `/v1/behavior-strategies/${encodeURIComponent(strategyId)}/validate`,\r\n body: {},\r\n });\r\n }\r\n simulateBehaviorStrategy(\r\n strategyId: string,\r\n initialState: Record<string, unknown> = {},\r\n ) {\r\n required(strategyId, \"SDK_STRATEGY_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"POST\",\r\n path: `/v1/behavior-strategies/${encodeURIComponent(strategyId)}/simulate`,\r\n body: { initialState },\r\n });\r\n }\r\n startStrategyExecution(input: {\r\n artifactDigest: string;\r\n organizationId: string;\r\n projectId: string;\r\n environmentId: string;\r\n revisionId: string;\r\n idempotencyKey: string;\r\n nonce: string;\r\n expiresAt: number;\r\n decisionPlanId: string;\r\n candidates: readonly Record<string, unknown>[];\r\n policy: string;\r\n behaviorPoint?: string;\r\n executionBoundary?: Record<string, unknown>;\r\n allowedIds?: readonly string[];\r\n calibrationId?: string;\r\n postModelJudge?: unknown;\r\n shadow?: unknown;\r\n traceId?: string;\r\n executionId?: string;\r\n state?: Record<string, unknown>;\r\n }) {\r\n required(input.artifactDigest, \"SDK_ARTIFACT_DIGEST_REQUIRED\");\r\n for (const value of [\r\n input.organizationId,\r\n input.projectId,\r\n input.environmentId,\r\n input.revisionId,\r\n input.idempotencyKey,\r\n input.nonce,\r\n input.decisionPlanId,\r\n input.policy,\r\n ])\r\n required(value, \"SDK_STRATEGY_START_FIELD_REQUIRED\");\r\n if (input.behaviorPoint !== undefined)\r\n required(input.behaviorPoint, \"SDK_BEHAVIOR_POINT_REQUIRED\");\r\n if (!Array.isArray(input.candidates) || input.candidates.length === 0)\r\n throw new Error(\"SDK_STRATEGY_CANDIDATES_REQUIRED\");\r\n if (!Number.isFinite(input.expiresAt))\r\n throw new Error(\"SDK_EXPIRY_REQUIRED\");\r\n const body = {\r\n ...buildRuntimeRequest(input as RuntimeRequest & Record<string, unknown>),\r\n artifactDigest: input.artifactDigest,\r\n ...(input.behaviorPoint ? { behaviorPoint: input.behaviorPoint } : {}),\r\n ...(input.executionBoundary\r\n ? { executionBoundary: input.executionBoundary }\r\n : {}),\r\n ...(input.traceId ? { traceId: input.traceId } : {}),\r\n ...(input.executionId ? { executionId: input.executionId } : {}),\r\n ...(input.state ? { state: input.state } : {}),\r\n };\r\n return this.request<ClientBody>(\r\n { method: \"POST\", path: \"/v1/runtime/strategy-executions\", body },\r\n { idempotencyKey: input.idempotencyKey },\r\n );\r\n }\r\n getStrategyExecution(executionId: string) {\r\n required(executionId, \"SDK_EXECUTION_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"GET\",\r\n path: `/v1/runtime/strategy-executions/${encodeURIComponent(executionId)}`,\r\n });\r\n }\r\n getStrategyExecutionTrace(executionId: string) {\r\n required(executionId, \"SDK_EXECUTION_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"GET\",\r\n path: `/v1/runtime/strategy-executions/${encodeURIComponent(executionId)}/trace`,\r\n });\r\n }\r\n continueStrategyExecution(\r\n executionId: string,\r\n continuation?: string | StrategyContinuationInput,\r\n ) {\r\n required(executionId, \"SDK_EXECUTION_ID_REQUIRED\");\r\n const input =\r\n typeof continuation === \"string\"\r\n ? { authorityDigest: continuation }\r\n : (continuation ?? {});\r\n return this.request<ClientBody>({\r\n method: \"POST\",\r\n path: `/v1/runtime/strategy-executions/${encodeURIComponent(executionId)}/continue`,\r\n body: {\r\n ...(input.authorityDigest\r\n ? { authorityDigest: input.authorityDigest }\r\n : {}),\r\n ...(input.state ? { state: input.state } : {}),\r\n ...(input.references ? { references: input.references } : {}),\r\n },\r\n });\r\n }\r\n cancelStrategyExecution(executionId: string) {\r\n required(executionId, \"SDK_EXECUTION_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"POST\",\r\n path: `/v1/runtime/strategy-executions/${encodeURIComponent(executionId)}/cancel`,\r\n body: {},\r\n });\r\n }\r\n listBehaviorPrograms() {\r\n return this.request<{ programs: readonly ClientBody[] }>({\r\n method: \"GET\",\r\n path: \"/v1/behavior-programs\",\r\n });\r\n }\r\n getBehaviorProgram(programId: string) {\r\n required(programId, \"SDK_PROGRAM_ID_REQUIRED\");\r\n return this.request<{ program: ClientBody }>({\r\n method: \"GET\",\r\n path: `/v1/behavior-programs/${encodeURIComponent(programId)}`,\r\n });\r\n }\r\n createBehaviorProgram(\r\n program: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n if (!program || typeof program !== \"object\")\r\n throw new Error(\"SDK_PROGRAM_REQUIRED\");\r\n return this.request<{ program: ClientBody }>(\r\n { method: \"POST\", path: \"/v1/behavior-programs\", body: program },\r\n {\r\n idempotencyKey:\r\n options.idempotencyKey ?? `sdk:program:${String(program.id ?? \"\")}`,\r\n },\r\n );\r\n }\r\n attestCapabilities(\r\n attestation: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/runtime/capabilities/attest\",\r\n body: attestation,\r\n },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n resolveCapabilities(\r\n attestationId: string,\r\n request: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n required(attestationId, \"SDK_ATTESTATION_ID_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/runtime/capabilities/resolve\",\r\n body: { attestationId, request },\r\n },\r\n { idempotencyKey: options.idempotencyKey, enforcing: true },\r\n );\r\n }\r\n recordCapabilityTrace(\r\n decisionDigest: string,\r\n trace: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n required(decisionDigest, \"SDK_DECISION_DIGEST_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/runtime/capabilities/traces\",\r\n body: { decisionDigest, trace },\r\n },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n resolveModelServing(\r\n request: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n return this.request<ClientBody>(\r\n { method: \"POST\", path: \"/v1/model-serving/resolve\", body: request },\r\n { idempotencyKey: options.idempotencyKey, enforcing: true },\r\n );\r\n }\r\n recordModelServingTrace(\r\n trace: ClientBody,\r\n selection: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/model-serving/traces\",\r\n body: { trace, selection },\r\n },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n submitTeachEvidence(\r\n evidence: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n return this.request<ClientBody>(\r\n { method: \"POST\", path: \"/v1/teach/evidence\", body: evidence },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n startEvaluation(\r\n input: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n return this.request<ClientBody>(\r\n { method: \"POST\", path: \"/v1/evaluations\", body: input },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n evaluateQuality(input: ClientBody, options: { idempotencyKey?: string } = {}) {\r\n return this.request<ClientBody>(\r\n { method: \"POST\", path: \"/v1/quality/evaluate\", body: input },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n getEvaluation(evaluationId: string) {\r\n required(evaluationId, \"SDK_EVALUATION_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"GET\",\r\n path: `/v1/evaluations/${encodeURIComponent(evaluationId)}`,\r\n });\r\n }\r\n createRelease(input: ClientBody, options: { idempotencyKey?: string } = {}) {\r\n return this.request<ClientBody>(\r\n { method: \"POST\", path: \"/v1/releases\", body: input },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n recordDeploymentComparison(\r\n deploymentId: string,\r\n comparison: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n required(deploymentId, \"SDK_DEPLOYMENT_ID_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/deployments/${encodeURIComponent(deploymentId)}/comparisons`,\r\n body: comparison,\r\n },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n recordDeploymentHealth(\r\n deploymentId: string,\r\n health: ClientBody,\r\n options: { idempotencyKey?: string } = {},\r\n ) {\r\n required(deploymentId, \"SDK_DEPLOYMENT_ID_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: `/v1/deployments/${encodeURIComponent(deploymentId)}/authoritative-health`,\r\n body: health,\r\n },\r\n { idempotencyKey: options.idempotencyKey },\r\n );\r\n }\r\n compileBehaviorCapsule(input: {\r\n programId: string;\r\n input: string;\r\n selection?: Record<string, unknown>;\r\n candidates?: readonly string[];\r\n idempotencyKey?: string;\r\n }) {\r\n required(input.programId, \"SDK_PROGRAM_ID_REQUIRED\");\r\n required(input.input, \"SDK_RUNTIME_INPUT_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/runtime/behavior-capsule\",\r\n body: { ...input },\r\n },\r\n {\r\n idempotencyKey:\r\n input.idempotencyKey ?? `sdk:capsule:${input.programId}`,\r\n },\r\n );\r\n }\r\n serveBehaviorProjection(input: {\r\n programId?: string;\r\n input: string;\r\n provider: string;\r\n protocol?: string;\r\n idempotencyKey?: string;\r\n }) {\r\n required(input.input, \"SDK_RUNTIME_INPUT_REQUIRED\");\r\n required(input.provider, \"SDK_PROVIDER_REQUIRED\");\r\n return this.request<ClientBody>(\r\n {\r\n method: \"POST\",\r\n path: \"/v1/runtime/behavior-projection\",\r\n body: { ...input },\r\n },\r\n {\r\n idempotencyKey:\r\n input.idempotencyKey ??\r\n `sdk:projection:${input.programId ?? \"active\"}`,\r\n },\r\n );\r\n }\r\n async testConnection(connectionId: string) {\r\n required(connectionId, \"SDK_CONNECTION_ID_REQUIRED\");\r\n return this.request<ClientBody>({\r\n method: \"POST\",\r\n path: `/v1/connections/${encodeURIComponent(connectionId)}/test`,\r\n body: {},\r\n });\r\n }\r\n}\r\nexport function buildRuntimeRequest(\r\n input: RuntimeRequest & Record<string, unknown>,\r\n): RuntimeRequest & Record<string, unknown> {\r\n const {\r\n organizationId,\r\n projectId,\r\n environmentId,\r\n revisionId,\r\n idempotencyKey,\r\n nonce,\r\n expiresAt,\r\n decisionPlanId,\r\n calibrationId,\r\n candidates,\r\n allowedIds,\r\n policy,\r\n postModelJudge,\r\n shadow,\r\n } = input;\r\n for (const value of [\r\n organizationId,\r\n projectId,\r\n environmentId,\r\n revisionId,\r\n idempotencyKey,\r\n nonce,\r\n ])\r\n if (typeof value !== \"string\" || !value.trim())\r\n throw new Error(\"SDK_REQUEST_FIELD_REQUIRED\");\r\n if (!Number.isFinite(expiresAt)) throw new Error(\"SDK_EXPIRY_REQUIRED\");\r\n const boundary = {\r\n ...(typeof decisionPlanId === \"string\" ? { decisionPlanId } : {}),\r\n ...(typeof calibrationId === \"string\" ? { calibrationId } : {}),\r\n ...(Array.isArray(candidates) ? { candidates } : {}),\r\n ...(Array.isArray(allowedIds) ? { allowedIds } : {}),\r\n ...(typeof policy === \"string\" ? { policy } : {}),\r\n ...(postModelJudge !== undefined ? { postModelJudge } : {}),\r\n ...(shadow !== undefined ? { shadow } : {}),\r\n };\r\n return Object.freeze({\r\n organizationId,\r\n projectId,\r\n environmentId,\r\n revisionId,\r\n idempotencyKey,\r\n nonce,\r\n expiresAt,\r\n ...boundary,\r\n });\r\n}\r\nexport function buildPublicContentRequest(input: {\r\n slug: string;\r\n version?: string;\r\n}): SdkRequest {\r\n const { slug, version = \"v1\" } = input;\r\n if (typeof slug !== \"string\" || !slug.trim())\r\n throw new Error(\"SDK_SLUG_REQUIRED\");\r\n if (version !== \"v1\") throw new Error(\"SDK_VERSION_UNSUPPORTED\");\r\n return Object.freeze({\r\n method: \"GET\",\r\n path: \"/v1/content\",\r\n query: Object.freeze({ slug }),\r\n });\r\n}\r\nexport function buildDocsQueryRequest(input: {\r\n query: string;\r\n operation?: \"search\" | \"ask\";\r\n}): SdkRequest {\r\n const { query, operation = \"search\" } = input;\r\n if (typeof query !== \"string\" || !query.trim())\r\n throw new Error(\"SDK_QUERY_REQUIRED\");\r\n if (![\"search\", \"ask\"].includes(operation))\r\n throw new Error(\"SDK_OPERATION_UNSUPPORTED\");\r\n return Object.freeze({\r\n method: \"GET\",\r\n path: `/docs/${operation}`,\r\n query: Object.freeze({ query }),\r\n });\r\n}\r\nexport function buildAISystemRequest(input: {\r\n name: string;\r\n systemType: string;\r\n organizationId: string;\r\n projectId: string;\r\n environmentId: string;\r\n}): SdkRequest {\r\n const { name, systemType, organizationId, projectId, environmentId } = input;\r\n for (const value of [\r\n name,\r\n systemType,\r\n organizationId,\r\n projectId,\r\n environmentId,\r\n ])\r\n if (typeof value !== \"string\" || !value.trim())\r\n throw new Error(\"SDK_AI_SYSTEM_FIELD_REQUIRED\");\r\n return Object.freeze({\r\n method: \"POST\",\r\n path: \"/v1/ai-systems\",\r\n body: Object.freeze({\r\n name,\r\n systemType,\r\n organizationId,\r\n projectId,\r\n environmentId,\r\n }),\r\n });\r\n}\r\nexport function buildObservationRequest(event: {\r\n eventId: string;\r\n eventType: string;\r\n aiSystemId: string;\r\n connectionId: string;\r\n [key: string]: unknown;\r\n}): SdkRequest {\r\n if (\r\n !event?.eventId ||\r\n !event.eventType ||\r\n !event.aiSystemId ||\r\n !event.connectionId\r\n )\r\n throw new Error(\"SDK_OBSERVATION_FIELD_REQUIRED\");\r\n return Object.freeze({\r\n method: \"POST\",\r\n path: \"/v1/observations\",\r\n body: Object.freeze({ ...event }),\r\n });\r\n}\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
export interface RuntimeRequest {
|
|
2
|
+
organizationId: string;
|
|
3
|
+
projectId: string;
|
|
4
|
+
environmentId: string;
|
|
5
|
+
revisionId: string;
|
|
6
|
+
idempotencyKey: string;
|
|
7
|
+
nonce: string;
|
|
8
|
+
expiresAt: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SdkRequest {
|
|
11
|
+
method: "GET" | "POST";
|
|
12
|
+
path: string;
|
|
13
|
+
query?: Readonly<Record<string, string>>;
|
|
14
|
+
body?: Readonly<Record<string, unknown>>;
|
|
15
|
+
}
|
|
16
|
+
export type SdkFailureMode = "throw" | "open";
|
|
17
|
+
export interface ViraClientOptions {
|
|
18
|
+
baseUrl: string;
|
|
19
|
+
apiKey?: string;
|
|
20
|
+
fetcher?: typeof fetch;
|
|
21
|
+
timeoutMs?: number;
|
|
22
|
+
retries?: number;
|
|
23
|
+
failureMode?: SdkFailureMode;
|
|
24
|
+
defaultHeaders?: Readonly<Record<string, string>>;
|
|
25
|
+
}
|
|
26
|
+
export interface ViraResponse<T = unknown> {
|
|
27
|
+
status: number;
|
|
28
|
+
body: T;
|
|
29
|
+
requestId: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ConnectOnceResult {
|
|
32
|
+
system: ClientBody;
|
|
33
|
+
connection: ClientBody;
|
|
34
|
+
handshake: ClientBody;
|
|
35
|
+
}
|
|
36
|
+
export interface StrategyContinuationInput {
|
|
37
|
+
authorityDigest?: string;
|
|
38
|
+
state?: Readonly<Record<string, unknown>>;
|
|
39
|
+
references?: Readonly<Record<string, unknown>>;
|
|
40
|
+
}
|
|
41
|
+
export declare class ViraApiError extends Error {
|
|
42
|
+
readonly status: number;
|
|
43
|
+
readonly body: unknown;
|
|
44
|
+
readonly requestId: string;
|
|
45
|
+
constructor(message: string, status: number, body: unknown, requestId: string);
|
|
46
|
+
}
|
|
47
|
+
type ClientBody = Record<string, unknown>;
|
|
48
|
+
type ClientObservation = {
|
|
49
|
+
eventId: string;
|
|
50
|
+
eventType: string;
|
|
51
|
+
aiSystemId: string;
|
|
52
|
+
connectionId: string;
|
|
53
|
+
[key: string]: unknown;
|
|
54
|
+
};
|
|
55
|
+
/** Small, authority-aware client over the existing versioned control API. */
|
|
56
|
+
export declare class ViraClient {
|
|
57
|
+
private readonly baseUrl;
|
|
58
|
+
private readonly apiKey?;
|
|
59
|
+
private readonly fetcher;
|
|
60
|
+
private readonly timeoutMs;
|
|
61
|
+
private readonly retries;
|
|
62
|
+
private readonly failureMode;
|
|
63
|
+
private readonly defaultHeaders;
|
|
64
|
+
constructor(options: ViraClientOptions);
|
|
65
|
+
private request;
|
|
66
|
+
connectSystem(input: {
|
|
67
|
+
name: string;
|
|
68
|
+
systemType: string;
|
|
69
|
+
organizationId: string;
|
|
70
|
+
projectId: string;
|
|
71
|
+
environmentId: string;
|
|
72
|
+
idempotencyKey?: string;
|
|
73
|
+
}): Promise<ViraResponse<{
|
|
74
|
+
system: ClientBody;
|
|
75
|
+
}> | null>;
|
|
76
|
+
connectAdapter(systemId: string, input: {
|
|
77
|
+
adapterType: string;
|
|
78
|
+
adapterVersion: string;
|
|
79
|
+
capabilities?: readonly string[];
|
|
80
|
+
config?: unknown;
|
|
81
|
+
idempotencyKey?: string;
|
|
82
|
+
}): Promise<ViraResponse<{
|
|
83
|
+
connection: ClientBody;
|
|
84
|
+
handshake: ClientBody;
|
|
85
|
+
}> | null>;
|
|
86
|
+
connectOnce(input: {
|
|
87
|
+
name: string;
|
|
88
|
+
systemType: string;
|
|
89
|
+
organizationId: string;
|
|
90
|
+
projectId: string;
|
|
91
|
+
environmentId: string;
|
|
92
|
+
adapterType: string;
|
|
93
|
+
adapterVersion: string;
|
|
94
|
+
capabilities?: readonly string[];
|
|
95
|
+
config?: unknown;
|
|
96
|
+
idempotencyKey?: string;
|
|
97
|
+
}): Promise<ViraResponse<ConnectOnceResult> | null>;
|
|
98
|
+
observe(event: ClientObservation, options?: {
|
|
99
|
+
idempotencyKey?: string;
|
|
100
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
101
|
+
trace(event: {
|
|
102
|
+
eventId: string;
|
|
103
|
+
aiSystemId: string;
|
|
104
|
+
connectionId: string;
|
|
105
|
+
traceId?: string;
|
|
106
|
+
spanId?: string;
|
|
107
|
+
[key: string]: unknown;
|
|
108
|
+
}, options?: {
|
|
109
|
+
idempotencyKey?: string;
|
|
110
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
111
|
+
outcome(event: {
|
|
112
|
+
eventId: string;
|
|
113
|
+
aiSystemId: string;
|
|
114
|
+
connectionId: string;
|
|
115
|
+
[key: string]: unknown;
|
|
116
|
+
}, options?: {
|
|
117
|
+
idempotencyKey?: string;
|
|
118
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
119
|
+
feedback(event: {
|
|
120
|
+
eventId: string;
|
|
121
|
+
aiSystemId: string;
|
|
122
|
+
connectionId: string;
|
|
123
|
+
[key: string]: unknown;
|
|
124
|
+
}, options?: {
|
|
125
|
+
idempotencyKey?: string;
|
|
126
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
127
|
+
observeBatch(events: readonly {
|
|
128
|
+
eventId: string;
|
|
129
|
+
eventType: string;
|
|
130
|
+
aiSystemId: string;
|
|
131
|
+
connectionId: string;
|
|
132
|
+
[key: string]: unknown;
|
|
133
|
+
}[], options?: {
|
|
134
|
+
idempotencyKey?: string;
|
|
135
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
136
|
+
observeSdk(delivery: ClientBody, options?: {
|
|
137
|
+
idempotencyKey?: string;
|
|
138
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
139
|
+
discover(reviewState?: string): Promise<ViraResponse<{
|
|
140
|
+
candidates: readonly ClientBody[];
|
|
141
|
+
}> | null>;
|
|
142
|
+
createSignalDiscoveryProposal(input: ClientBody, options?: {
|
|
143
|
+
idempotencyKey?: string;
|
|
144
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
145
|
+
reviewSignalDiscoveryProposal(proposalId: string, decision: "APPROVE" | "REJECT", options?: {
|
|
146
|
+
idempotencyKey?: string;
|
|
147
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
148
|
+
materializeSignalDiscovery(proposalId: string, input?: ClientBody, options?: {
|
|
149
|
+
idempotencyKey?: string;
|
|
150
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
151
|
+
createSignalMapping(input: ClientBody, options?: {
|
|
152
|
+
idempotencyKey?: string;
|
|
153
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
154
|
+
getSignalMapping(mappingId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
155
|
+
reviewSignalMapping(mappingId: string, input?: ClientBody, options?: {
|
|
156
|
+
idempotencyKey?: string;
|
|
157
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
158
|
+
connectionHealth(connectionId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
159
|
+
inventory(systemId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
160
|
+
listPacks(): Promise<ViraResponse<{
|
|
161
|
+
packs: readonly ClientBody[];
|
|
162
|
+
}> | null>;
|
|
163
|
+
importPack(input: {
|
|
164
|
+
manifest?: unknown;
|
|
165
|
+
objects?: Record<string, unknown>;
|
|
166
|
+
archiveBase64?: string;
|
|
167
|
+
fileName?: string;
|
|
168
|
+
idempotencyKey?: string;
|
|
169
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
170
|
+
installPack(packId: string, variables?: Record<string, unknown>): Promise<ViraResponse<ClientBody> | null>;
|
|
171
|
+
evaluatePack(packId: string, input: {
|
|
172
|
+
passed: boolean;
|
|
173
|
+
score?: number;
|
|
174
|
+
runId?: string;
|
|
175
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
176
|
+
approvePack(packId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
177
|
+
releasePack(packId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
178
|
+
previewPackUpgrade(packId: string, incoming: ClientBody): Promise<ViraResponse<ClientBody> | null>;
|
|
179
|
+
executeRuntime(input: RuntimeRequest & Record<string, unknown>): Promise<ViraResponse<ClientBody> | null>;
|
|
180
|
+
resolveRuntime(input: {
|
|
181
|
+
behaviorPoint?: string;
|
|
182
|
+
executionBoundary?: Record<string, unknown>;
|
|
183
|
+
semanticContext?: Record<string, unknown>;
|
|
184
|
+
idempotencyKey?: string;
|
|
185
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
186
|
+
/** Resolve a runtime route from a governed execution boundary and semantic context. */
|
|
187
|
+
resolveBoundary(input: {
|
|
188
|
+
executionBoundary: Record<string, unknown>;
|
|
189
|
+
semanticContext?: Record<string, unknown>;
|
|
190
|
+
idempotencyKey?: string;
|
|
191
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
192
|
+
resolveSemantic(input: {
|
|
193
|
+
input: string;
|
|
194
|
+
profile?: Record<string, unknown>;
|
|
195
|
+
sessionId?: string;
|
|
196
|
+
selection?: Record<string, unknown>;
|
|
197
|
+
candidates?: readonly string[];
|
|
198
|
+
timeoutMs?: number;
|
|
199
|
+
requestId?: string;
|
|
200
|
+
executionBoundary?: Record<string, unknown>;
|
|
201
|
+
idempotencyKey?: string;
|
|
202
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
203
|
+
resolveSemanticRuntime(input: {
|
|
204
|
+
input: string;
|
|
205
|
+
profile?: Record<string, unknown>;
|
|
206
|
+
sessionId?: string;
|
|
207
|
+
timeoutMs?: number;
|
|
208
|
+
requestId?: string;
|
|
209
|
+
executionBoundary?: Record<string, unknown>;
|
|
210
|
+
idempotencyKey?: string;
|
|
211
|
+
}): Promise<{
|
|
212
|
+
semantic: ViraResponse<ClientBody>;
|
|
213
|
+
runtime: ViraResponse<ClientBody> | null;
|
|
214
|
+
} | null>;
|
|
215
|
+
listBehaviorStrategies(): Promise<ViraResponse<ClientBody> | null>;
|
|
216
|
+
getBehaviorStrategy(strategyId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
217
|
+
createBehaviorStrategy(definition: Record<string, unknown>, id?: string): Promise<ViraResponse<ClientBody> | null>;
|
|
218
|
+
createBehaviorStrategyVariant(strategyId: string, variant: Record<string, unknown>, options?: {
|
|
219
|
+
idempotencyKey?: string;
|
|
220
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
221
|
+
validateBehaviorStrategy(strategyId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
222
|
+
simulateBehaviorStrategy(strategyId: string, initialState?: Record<string, unknown>): Promise<ViraResponse<ClientBody> | null>;
|
|
223
|
+
startStrategyExecution(input: {
|
|
224
|
+
artifactDigest: string;
|
|
225
|
+
organizationId: string;
|
|
226
|
+
projectId: string;
|
|
227
|
+
environmentId: string;
|
|
228
|
+
revisionId: string;
|
|
229
|
+
idempotencyKey: string;
|
|
230
|
+
nonce: string;
|
|
231
|
+
expiresAt: number;
|
|
232
|
+
decisionPlanId: string;
|
|
233
|
+
candidates: readonly Record<string, unknown>[];
|
|
234
|
+
policy: string;
|
|
235
|
+
behaviorPoint?: string;
|
|
236
|
+
executionBoundary?: Record<string, unknown>;
|
|
237
|
+
allowedIds?: readonly string[];
|
|
238
|
+
calibrationId?: string;
|
|
239
|
+
postModelJudge?: unknown;
|
|
240
|
+
shadow?: unknown;
|
|
241
|
+
traceId?: string;
|
|
242
|
+
executionId?: string;
|
|
243
|
+
state?: Record<string, unknown>;
|
|
244
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
245
|
+
getStrategyExecution(executionId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
246
|
+
getStrategyExecutionTrace(executionId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
247
|
+
continueStrategyExecution(executionId: string, continuation?: string | StrategyContinuationInput): Promise<ViraResponse<ClientBody> | null>;
|
|
248
|
+
cancelStrategyExecution(executionId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
249
|
+
listBehaviorPrograms(): Promise<ViraResponse<{
|
|
250
|
+
programs: readonly ClientBody[];
|
|
251
|
+
}> | null>;
|
|
252
|
+
getBehaviorProgram(programId: string): Promise<ViraResponse<{
|
|
253
|
+
program: ClientBody;
|
|
254
|
+
}> | null>;
|
|
255
|
+
createBehaviorProgram(program: ClientBody, options?: {
|
|
256
|
+
idempotencyKey?: string;
|
|
257
|
+
}): Promise<ViraResponse<{
|
|
258
|
+
program: ClientBody;
|
|
259
|
+
}> | null>;
|
|
260
|
+
attestCapabilities(attestation: ClientBody, options?: {
|
|
261
|
+
idempotencyKey?: string;
|
|
262
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
263
|
+
resolveCapabilities(attestationId: string, request: ClientBody, options?: {
|
|
264
|
+
idempotencyKey?: string;
|
|
265
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
266
|
+
recordCapabilityTrace(decisionDigest: string, trace: ClientBody, options?: {
|
|
267
|
+
idempotencyKey?: string;
|
|
268
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
269
|
+
resolveModelServing(request: ClientBody, options?: {
|
|
270
|
+
idempotencyKey?: string;
|
|
271
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
272
|
+
recordModelServingTrace(trace: ClientBody, selection: ClientBody, options?: {
|
|
273
|
+
idempotencyKey?: string;
|
|
274
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
275
|
+
submitTeachEvidence(evidence: ClientBody, options?: {
|
|
276
|
+
idempotencyKey?: string;
|
|
277
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
278
|
+
startEvaluation(input: ClientBody, options?: {
|
|
279
|
+
idempotencyKey?: string;
|
|
280
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
281
|
+
evaluateQuality(input: ClientBody, options?: {
|
|
282
|
+
idempotencyKey?: string;
|
|
283
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
284
|
+
getEvaluation(evaluationId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
285
|
+
createRelease(input: ClientBody, options?: {
|
|
286
|
+
idempotencyKey?: string;
|
|
287
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
288
|
+
recordDeploymentComparison(deploymentId: string, comparison: ClientBody, options?: {
|
|
289
|
+
idempotencyKey?: string;
|
|
290
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
291
|
+
recordDeploymentHealth(deploymentId: string, health: ClientBody, options?: {
|
|
292
|
+
idempotencyKey?: string;
|
|
293
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
294
|
+
compileBehaviorCapsule(input: {
|
|
295
|
+
programId: string;
|
|
296
|
+
input: string;
|
|
297
|
+
selection?: Record<string, unknown>;
|
|
298
|
+
candidates?: readonly string[];
|
|
299
|
+
idempotencyKey?: string;
|
|
300
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
301
|
+
serveBehaviorProjection(input: {
|
|
302
|
+
programId?: string;
|
|
303
|
+
input: string;
|
|
304
|
+
provider: string;
|
|
305
|
+
protocol?: string;
|
|
306
|
+
idempotencyKey?: string;
|
|
307
|
+
}): Promise<ViraResponse<ClientBody> | null>;
|
|
308
|
+
testConnection(connectionId: string): Promise<ViraResponse<ClientBody> | null>;
|
|
309
|
+
}
|
|
310
|
+
export declare function buildRuntimeRequest(input: RuntimeRequest & Record<string, unknown>): RuntimeRequest & Record<string, unknown>;
|
|
311
|
+
export declare function buildPublicContentRequest(input: {
|
|
312
|
+
slug: string;
|
|
313
|
+
version?: string;
|
|
314
|
+
}): SdkRequest;
|
|
315
|
+
export declare function buildDocsQueryRequest(input: {
|
|
316
|
+
query: string;
|
|
317
|
+
operation?: "search" | "ask";
|
|
318
|
+
}): SdkRequest;
|
|
319
|
+
export declare function buildAISystemRequest(input: {
|
|
320
|
+
name: string;
|
|
321
|
+
systemType: string;
|
|
322
|
+
organizationId: string;
|
|
323
|
+
projectId: string;
|
|
324
|
+
environmentId: string;
|
|
325
|
+
}): SdkRequest;
|
|
326
|
+
export declare function buildObservationRequest(event: {
|
|
327
|
+
eventId: string;
|
|
328
|
+
eventType: string;
|
|
329
|
+
aiSystemId: string;
|
|
330
|
+
connectionId: string;
|
|
331
|
+
[key: string]: unknown;
|
|
332
|
+
}): SdkRequest;
|
|
333
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@tryvira/sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@tryvira/sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Typed Vira SDK for connect-once, observation and governed runtime execution.",
|
|
5
|
+
"keywords": ["vira", "ai-governance", "ai-runtime", "semantic-routing"],
|
|
6
|
+
"engines": {"node": ">=20"},
|
|
7
|
+
"repository": {"type": "git", "url": "https://github.com/hrpering/vira_beh_redesign.git"},
|
|
8
|
+
"homepage": "https://github.com/hrpering/vira_beh_redesign#readme",
|
|
9
|
+
"bugs": {"url": "https://github.com/hrpering/vira_beh_redesign/issues"},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"main": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {".": {"types": "./dist/index.d.ts", "import": "./dist/index.js"}},
|
|
14
|
+
"files": ["dist", "README.md", "LICENSE"],
|
|
15
|
+
"publishConfig": {"access": "public"},
|
|
16
|
+
"scripts": {"build": "node ../../scripts/build-publishable-packages.mjs sdk", "pack:check": "npm run build && npm pack --dry-run && npm run public:surface:smoke", "public:surface:smoke": "node ../../scripts/public-surface-contract-acceptance.mjs --sdk-package", "prepublishOnly": "npm run pack:check && npm run public:surface:smoke", "publish:public": "npm run pack:check && npm run public:surface:smoke && npm publish --access public"},
|
|
17
|
+
"license": "Apache-2.0"
|
|
18
|
+
}
|