@tryvira/sdk 0.1.1 → 0.1.2

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 CHANGED
@@ -82,15 +82,6 @@ const continued = await vira.continueStrategyExecution('execution-id', {
82
82
  });
83
83
  ```
84
84
 
85
- ## Local verification
85
+ ## Documentation
86
86
 
87
- From the repository root:
88
-
89
- ```bash
90
- npm run local:up
91
- npm run local:acceptance
92
- npm run public:surface:acceptance
93
- ```
94
-
95
- See [`docs/SDK_GUIDE.md`](../../docs/SDK_GUIDE.md) for the full public-client lifecycle and
96
- [`docs/AUTH_AND_SCOPING.md`](../../docs/AUTH_AND_SCOPING.md) for credential and scope rules.
87
+ See the public Vira documentation at https://github.com/hrpering/tryvira.
package/dist/index.js CHANGED
@@ -776,4 +776,3 @@ export {
776
776
  buildPublicContentRequest,
777
777
  buildRuntimeRequest
778
778
  };
779
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryvira/sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Typed Vira SDK for connect-once, observation and governed runtime execution.",
5
5
  "keywords": ["vira", "ai-governance", "ai-runtime", "semantic-routing"],
6
6
  "engines": {"node": ">=20"},
@@ -11,7 +11,7 @@
11
11
  "main": "./dist/index.js",
12
12
  "types": "./dist/index.d.ts",
13
13
  "exports": {".": {"types": "./dist/index.d.ts", "import": "./dist/index.js"}},
14
- "files": ["dist", "README.md", "LICENSE"],
14
+ "files": ["dist/index.js", "dist/index.d.ts", "dist/js-client.d.ts", "README.md", "LICENSE"],
15
15
  "publishConfig": {"access": "public"},
16
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
17
  "license": "Apache-2.0"
package/dist/index.js.map DELETED
@@ -1,7 +0,0 @@
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
- }