brainstormrouter
v0.1.0
Published
BrainstormRouter TypeScript SDK — AI gateway with memory, guardrails, and governance
Maintainers
Readme
BrainstormRouter TypeScript SDK
Drop-in replacement for the OpenAI SDK with intelligent routing, memory, guardrails, and governance across 247 model endpoints.
Install
npm install brainstormrouterQuick Start
import BrainstormRouter from "brainstormrouter";
const client = new BrainstormRouter({ apiKey: "brk_..." });
// OpenAI-compatible — works with LangChain, Vercel AI SDK, CrewAI, etc.
const response = await client.chat.completions.create({
model: "anthropic/claude-sonnet-4",
messages: [{ role: "user", content: "Hello" }],
});
console.log(response.choices[0].message.content);Use "auto" as the model to let BrainstormRouter's Thompson sampling pick the best model for your request:
const response = await client.chat.completions.create({
model: "auto",
messages: [{ role: "user", content: "Explain quantum computing" }],
});Streaming
const stream = await client.chat.completions.create({
model: "auto",
messages: [{ role: "user", content: "Write a poem" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}Memory (4-Block RMM)
// Append a memory entry
await client.memory.append("User prefers concise answers", {
block: "semantic",
});
// List memory entries
const { entries } = await client.memory.entries();
// List memory blocks with entry counts
const { blocks } = await client.memory.blocks();
// Bootstrap memory from documents
await client.memory.init([{ content: "Product requirements doc...", source: "prd.md" }]);Guardrails
// Test content against guardrail pipeline
const result = await client.guardrails.test({
content: "Check this message for PII",
direction: "inbound",
});Provider Keys (BYOK)
// Register your own provider key
await client.providers.register("anthropic", {
apiKey: "sk-ant-...",
});
// Validate a key with a live request
const result = await client.providers.test("anthropic", "sk-ant-...");Prompt Management
// Create a versioned prompt template
const prompt = await client.prompts.create({
name: "customer-support",
template: "You are a helpful support agent for {{company}}.",
variables: ["company"],
});
// Test a prompt
const result = await client.prompts.test(prompt.id, {
variables: { company: "Acme Corp" },
});Configuration
const client = new BrainstormRouter({
apiKey: "brk_...", // or set BRAINSTORMROUTER_API_KEY env var
baseURL: "https://api.brainstormrouter.com", // default
maxEstimatedCost: 0.1, // Guardian: cap cost per request
guardianOff: false, // disable Guardian Intelligence
});Resources
License
MIT
