PRODUCT
Infrastructure, not a chatbot.
Each capability has its own page. Start with the client and the runtime — everything else hangs off that pair.
Infrastructure, not a chatbot.
Each capability has its own page: the JS client, Rust runtime, stream protocol, MCP and tools, model catalog, embed tokens, and host SDKs.
Start with @sveda-ai/core and sveda-server. Everything else composes on that pair without a separate control plane.
Pick a surface.
Product pages describe what ships in open source. Docs pages are the contract against package names, routes, and event types.
CLIENT
JS client
Install @sveda-ai/core. SvedaClient holds endpoints, headers, and tools. session.send posts a turn. Streaming stays on the wire — not a Vue widget, not a Laravel package.
RUNTIME
Rust runtime
sveda-server binds 0.0.0.0:8787 by default. It owns the agent loop, catalog, tools, and MCP. Your routes, auth, and deploy stay yours.
STREAM
Stream protocol
Tokens, tools, MCP, and errors travel one SSE pipe. The client asks for application/vnd.sveda.stream+json. The runtime answers with text/event-stream.
TOOLS
MCP & tools
Backend tools run in sveda-server. Frontend tools run in the browser. Host MCP is an HTTP server you pass when minting the embed token.
CATALOG
Models
Add a ChatGPT or Claude key, or any Responses / Anthropic API. DeepSeek is one builtin wrapper — not the product. Failover walks an ordered list. The stream does not restart.
EMBED
Embed token
Mint a scoped embed token per visitor. Map host roles to policy names on mint. The browser never holds your host key.
HOST
Host SDKs
The browser never holds SVEDA_EMBED_HOST_API_KEY. Your backend calls POST /sveda/embed/token, then the page opens JS chat or an iframe.
Start with the pair that matters.
Install @sveda-ai/core. Run sveda-server on :8787. Mint an embed token and send the first turn with session.send.