/** * BrainstormRouter TypeScript SDK * * Drop-in replacement for the OpenAI SDK with typed access to * BrainstormRouter-specific APIs: memory, guardrails, observability, * governance, prompt management, presets, MCP gateway, and more. * * @example * ```ts * import BrainstormRouter from "brainstormrouter"; * * const client = new BrainstormRouter({ apiKey: "br_live_..." }); * * // OpenAI-compatible (works with LangChain, Vercel AI SDK, etc.) * const response = await client.chat.completions.create({ * model: "anthropic/claude-sonnet-4", * messages: [{ role: "user", content: "Hello" }], * }); * * // BrainstormRouter-specific * await client.providers.register("groq", { apiKey: "gsk_..." }); * const entries = await client.memory.entries(); * const leaderboard = await client.models.list(); * ``` */ import OpenAI from "openai"; import { AgentProfiles } from "./resources/agent-profiles.js"; import { Governance } from "./resources/governance.js"; import { Guardrails } from "./resources/guardrails.js"; import { MCP } from "./resources/mcp.js"; import { Memory } from "./resources/memory.js"; import { Models } from "./resources/models.js"; import { Observability } from "./resources/observability.js"; import { Presets } from "./resources/presets.js"; import { Prompts } from "./resources/prompts.js"; import { Providers } from "./resources/providers.js"; import { Usage } from "./resources/usage.js"; import type { GuardianInfo } from "./types.js"; export { BrainstormRouterError } from "./resource.js"; export type { AuditEntry, AuditStats, BroadcastDestination, ComplianceResult, DestinationCreateParams, DestinationUpdateParams, DestinationType, GovernanceSummary, GuardianInfo, GuardrailConfig, GuardrailProvider, GuardrailProviderCreateParams, GuardrailTemplate, GuardrailTestResult, McpAuditEntry, McpServer, McpServerCreateParams, McpServerUpdateParams, McpTool, McpToolCallResult, McpTransport, MemoryBlock, MemoryBlockInfo, MemoryEntry, MemoryInitResult, Model, ObservabilityConfig, Preset, PresetCreateParams, PresetUpdateParams, PromptCreateParams, PromptDetail, PromptEnvironment, PromptSummary, PromptTestResult, PromptUpdateParams, PromptVersion, Provider, ProviderCatalogEntry, ProviderTestResult, ReplayDecision, RoutingStrategy, SimulationResult, SleepTimeReport, } from "./types.js"; export type BrainstormRouterOptions = { /** BrainstormRouter API key (br_live_... or br_test_...). */ apiKey?: string; /** API base URL. Defaults to https://api.brainstormrouter.com. */ baseURL?: string; /** Maximum estimated cost per request in USD. Sets X-BR-Max-Estimated-Cost header. */ maxEstimatedCost?: number; /** Disable Guardian Intelligence for all requests. */ guardianOff?: boolean; /** Path to client certificate PEM file for mTLS authentication. */ clientCert?: string; /** Path to client private key PEM file for mTLS authentication. */ clientKey?: string; }; /** * BrainstormRouter client. * * Extends the OpenAI SDK for drop-in compatibility with any OpenAI-based tool * (LangChain, Vercel AI SDK, CrewAI, etc.), while adding typed namespaces * for BrainstormRouter-specific APIs. */ export declare class BrainstormRouter extends OpenAI { private _brOpts; /** BYOK provider key management. */ readonly providers: Providers; /** Routing presets — saved configs referenced as `@preset/slug`. */ readonly presets: Presets; /** Prompt template management with versioning and A/B testing. */ readonly prompts: Prompts; /** Core memory (RMM) — read, write, and bootstrap agent memory. */ readonly memory: Memory; /** Guardrail pipeline — providers, config, and testing. */ readonly guardrails: Guardrails; /** Observability broadcast — destinations and config. */ readonly observability: Observability; /** Agent governance — audit, compliance, and executive dashboards. */ readonly governance: Governance; /** MCP gateway — register and proxy external MCP servers. */ readonly mcp: MCP; /** Model listing — BrainstormRouter's unified catalog via `/v1/models`. */ readonly brModels: Models; /** ARM: Agent profile management — identity, ownership, lifecycle. */ readonly agentProfiles: AgentProfiles; /** Usage analytics — spend by cost center, owner, and model. */ readonly usage: Usage; constructor(opts?: BrainstormRouterOptions); } /** Parse Guardian Intelligence info from HTTP response headers. */ export declare function parseGuardianHeaders(headers: Headers): GuardianInfo; /** * Parse Guardian payload from SSE [DONE] event. * The [DONE] line may contain: `[DONE] {"guardian":{...}}` */ export declare function parseGuardianStreamDone(data: string): Partial | undefined; /** Raised when a streaming chunk indicates the tool firewall blocked a tool call. */ export declare class ToolBlockedError extends Error { readonly reason: string; constructor(reason: string); } /** * Check if a streaming chunk is a synthetic denial from the tool firewall. * * The gateway emits a chunk with `finish_reason: "content_filter"` and * `delta.content` starting with `[TOOL BLOCKED]` when a tool call is denied. * * @example * ```ts * const stream = await client.chat.completions.create({ stream: true, ... }); * for await (const chunk of stream) { * const blocked = isToolBlocked(chunk); * if (blocked) { * console.warn("Tool blocked:", blocked.reason); * continue; * } * // normal chunk processing * } * ``` */ export declare function isToolBlocked(chunk: unknown): { reason: string; } | undefined; export default BrainstormRouter;