ac9f1fa7c2a1a6391cda70cf754e8d6361b767a3
Typed client + types for the arcadia integration registry (on arcadia-llm-gateway). One createIntegrationsApi(client, mode) factory serves both surfaces: - operator → /api/v1/integrations* (any scope, scope filters) - tenant → /api/v1/me/integrations* (scope forced server-side) Plus shared types (Integration/Credential/UsageEntry/*Input/TestVerdict) and display helpers (formatUsd, credentialHealth). Consumed by arcadia-admin and arcadia-console as a sibling lib via vite/tsconfig aliases (no build step). Secrets are write-only; the rich panels stay per-app. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@crema/integration-registry-client
Typed client + types for the arcadia integration registry — the external-API
credential plane hosted on arcadia-llm-gateway. Consumed by arcadia-admin
(operator) and arcadia-console (tenant) as a sibling lib via vite/tsconfig
aliases (no build step — the app compiles src/ directly).
import { createIntegrationsApi } from "@crema/integration-registry-client"
// gateway-pointed ArcadiaClient (see each app's app/lib/gateway.ts)
const api = createIntegrationsApi(gatewayClient, "tenant") // or "operator"
await api.list()
await api.create({ provider: "tavily", capability: "web_search" })
await api.test(id) // throws ArcadiaError on 409 expired / 429 over-budget
operatormode →/api/v1/integrations*(any scope, scope filters honoured).tenantmode →/api/v1/me/integrations*(scope forced to the caller server-side).
Secrets are write-only: reads carry has_secret, never a value.
The rich management page/components stay per-app (they use each app's shadcn primitives and the operator/tenant surfaces legitimately diverge) — this lib owns the client, types, and display helpers only.
Description
Typed client for the arcadia integration registry (on arcadia-llm-gateway). Shared by arcadia-admin + arcadia-console.
Languages
TypeScript
100%