@braingrid/ai-sdk-provider
v0.1.0
Published
Vercel AI SDK provider for the BrainGrid AI Gateway — call Anthropic & Gemini with no LLM account or API keys
Downloads
392
Readme
@braingrid/ai-sdk-provider
Vercel AI SDK provider for the BrainGrid AI Gateway. Apps built on BrainGrid call Anthropic & Gemini through the gateway with no LLM account, no API keys, and no auth code — the project's signing key is provisioned automatically, and the provider mints short-lived, per-session tokens on the server.
It's a thin wrapper over @ai-sdk/anthropic: the gateway speaks the Anthropic Messages shape and translates other providers (Gemini, etc.) server-side, so a single provider serves every model your plan allows.
Install
npm i @braingrid/ai-sdk-provider aiUsage
import { generateText, streamText } from 'ai';
import { braingrid } from '@braingrid/ai-sdk-provider';
const ai = braingrid(); // reads BRAINGRID_PROJECT_SECRET_KEY from env — no setup
// Claude
const { text } = await generateText({
model: ai('claude-sonnet-4-6'),
prompt: 'Summarize this support ticket: …',
});
// Gemini — same call, different model string
const { textStream } = await streamText({
model: ai('gemini-2.5-pro'),
prompt: 'Write a release note for v2.3 …',
});Everything else — tool calls, structured outputs, multi-modal, streaming — comes from the AI SDK itself. There is no BrainGrid-specific API to learn.
Attribution
Carry per-end-user attribution into the gateway's usage events (for reporting, never for billing identity):
const ai = braingrid({
attribution: { end_user_id: 'cust_8842', metadata: { plan: 'pro' } },
});How it works
BRAINGRID_PROJECT_SECRET_KEY is a single bgpk_… credential bundling the project's private signing key, its key id, and the gateway URL. braingrid() decodes it and, for each request, mints a short-lived JWT (30-minute TTL, cached and re-minted on expiry) signed with that key. The gateway resolves the billing org/project from the key id, checks the model against the project's plan allowlist, proxies to the provider, and bills BrainGrid credits.
Server-only. The secret key must never reach the browser — call braingrid() from server code (route handlers, server actions), exactly as you would a provider holding an API key.
Direct (non-AI-SDK) calls
If you call the gateway HTTP API yourself, mint a session token by hand:
import { mintSession } from '@braingrid/ai-sdk-provider';
const token = await mintSession({ attribution: { end_user_id: 'cust_8842' } });
// fetch(`${gatewayUrl}/v1/messages`, { headers: { Authorization: `Bearer ${token}` }, … })License
Apache-2.0
