Docs
/

@leumas/providers

LLM provider adapters — one contract (complete / adapter step-loop / realtimeSession / available) over ollama, openai, openai-realtime, claude, gemini, codex, cursor-agent and leumas-slm. The brains...

@leumas/providers

The LLM provider adapter base — every brain Leumas can think with, behind one contract. @leumas/chatbots and the Leviathan runtime resolve a bot's provider here; Studio lists and prices them via GET /api/providers.

import { createProviderRegistry, providers } from '@leumas/providers';

const registry = createProviderRegistry(providers); // stub always included as fallback
const provider = await registry.resolve({ provider: 'auto' }); // first available: ollama → openai → claude → gemini
const { reply, toolCalls } = await provider.complete({ system, messages, tools, model });

Contract (defineProvider): capabilities {text,tools,stream,realtimeVoice} + envKeys + available() + either a step-loop adapter (createConversation/step/appendToolResults — the shape ported from leumas-cursor-agent-mvp's runners) or a direct complete(); realtime providers add realtimeSession(). runAgentLoop (from @leumas/providers/agent-loop) drives multi-step tool use and pauses/resumes around client-side tool calls.

Providers: ollama (bridges adapters/domain/ollama) · openai · openai-realtime · claude · gemini · codex (CLI wrap) · cursor-agent · leumas-slm · stub (echo fallback). SDKs are lazy-imported so a missing key/dep degrades to available: false, never a crash.

Source shared/engines/adapters/providers/README.md (no-git)markdownjson
Generated from the Leumas repository. Every page cites the file it came from.leumas.techllms.txt