cavi-ai/
@cavi-ai/api-clientv0.11.0 stable
GitHub ↗

Routing and capabilities

Use a provider registry to select an implementation by provider kind. Then call getRuntimeCapabilities() and gate optional work with runtimeSupports and the method itself. See registry routing and capability gating.

This client mirrors and verifies upstream-compatible behavior. Upstream runtimes remain the canonical protocol owners.

Referenced examples

Verified example · TypeScript

Runtime registry

examples/runtime-registry.ts

@cavi-ai/api-clientv0.11.048adfa6b
TypeScript · complete source
import { createRuntimeClient, createRuntimeProviderRegistry } from "@cavi-ai/api-client";
import { createClaudeProviderModule } from "@cavi-ai/api-client/providers/claude/messages";
import { createCodexProviderModule } from "@cavi-ai/api-client/providers/codex/runtime";

export function selectRuntime(provider: "claude" | "codex", apiKey: string) {
  const registry = createRuntimeProviderRegistry({
    modules: [createClaudeProviderModule({ apiKey }), createCodexProviderModule({ apiKey })],
  });
  return createRuntimeClient(provider, {
    registry,
    clientOptions: { baseUrl: provider === "claude" ? "https://api.anthropic.com" : "https://api.openai.com" },
  });
}

Package imports

Referenced by

Artifact provenance
Package
@cavi-ai/api-client@0.11.0
Release
v0.11.0
Commit
48adfa6ba7c3d5e8ffee0a6cf2572574ca630fa0
Source
examples/runtime-registry.ts
Tarball SHA-256
3379cd47b4890d0e00f5949583f90a83367705878b16141e825f66ef5d8819e5
Content SHA-256
306450f08c69a6e068f80490b1f2cc4f0808af0911fdec5b9b145e33a9ba5534

Verified example · TypeScript

Runtime capabilities

examples/runtime-capabilities.ts

@cavi-ai/api-clientv0.11.048adfa6b
TypeScript · complete source
import { runtimeSupports, type RuntimeClient } from "@cavi-ai/api-client";

export async function submitWhenBatchIsAvailable(client: RuntimeClient) {
  const capabilities = await client.getRuntimeCapabilities();
  if (!runtimeSupports(capabilities, "batch") || !client.submitBatch) return null;
  return client.submitBatch([{ customId: "summary", body: { input: "Summarize this." } }]);
}

Package imports

Referenced by

Artifact provenance
Package
@cavi-ai/api-client@0.11.0
Release
v0.11.0
Commit
48adfa6ba7c3d5e8ffee0a6cf2572574ca630fa0
Source
examples/runtime-capabilities.ts
Tarball SHA-256
3379cd47b4890d0e00f5949583f90a83367705878b16141e825f66ef5d8819e5
Content SHA-256
306450f08c69a6e068f80490b1f2cc4f0808af0911fdec5b9b145e33a9ba5534