API
SDK methods, REST endpoints, and custom storage adapter.
SDK API
typescript
// Returns the effective model ID (string) to pass to your AI SDK. Uses override if set, else fallback.
const modelId = await modelKit.getModel("feature-id", "anthropic/claude-3.5-sonnet");
// → e.g. "anthropic/claude-3.5-sonnet" or "anthropic/claude-opus-4" if overridden
// Set or update the runtime override for a feature. modelId required; temperature, maxTokens, topP, topK optional.
await modelKit.setOverride("feature-id", {
modelId: "anthropic/claude-opus-4",
temperature: 0.9,
maxTokens: 4096,
});
// Returns the full override for a feature (modelId, temperature, maxTokens, etc.) or null if no override.
const config = await modelKit.getConfig("feature-id");
// → { modelId, temperature?, maxTokens?, ... } | null — use when you need params, not just the ID
await modelKit.listOverrides(); // All overrides: [{ featureId, override }, ...]
await modelKit.clearOverride("feature-id"); // Remove override; getModel will use fallback
REST API
Hono and Express routers expose:
GET
/overrides
List all
GET
/overrides/:featureId
Get one
POST
/overrides/:featureId
Set override
DELETE
/overrides/:featureId
Clear override
Custom Storage Adapter
typescript
import type { StorageAdapter } from "@benrobo/modelkit";
function createMyAdapter(): StorageAdapter {
return {
async get(featureId) { /* ... */ },
async set(featureId, override) { /* ... */ },
async delete(featureId) { /* ... */ },
async list() { /* ... */ },
};
}
const modelKit = createModelKit(createMyAdapter());