Glossary
A comprehensive reference for Viber terminology and concepts.
Artifact
Section titled “Artifact”A living document within a Space that evolves over time. Artifacts can be:
- Documents (Markdown, text, HTML)
- Code files
- Data files (JSON, CSV)
- Binary files (images, PDFs)
Each artifact maintains version history, allowing you to track changes and rollback if needed.
A specialized AI worker within Viber. Agents have specific roles and capabilities:
- XAgent: The orchestrating agent that coordinates the workspace
- Researcher: Gathers and synthesizes information
- Writer: Creates content and documentation
- Developer: Writes and reviews code
- Reviewer: Provides quality assurance
Adapter
Section titled “Adapter”A storage backend implementation. Viber supports:
- Local Adapter: SQLite + Filesystem (default)
- Supabase Adapter: PostgreSQL + Supabase Storage (cloud)
Context
Section titled “Context”The accumulated information within a Space that agents use to understand and respond to requests. Context includes:
- Conversation history
- Artifact contents
- Space goal and metadata
- Previous agent decisions
Conversation History
Section titled “Conversation History”The complete record of messages between users and agents within a Space. History persists across sessions, enabling agents to maintain continuity.
History
Section titled “History”See Conversation History.
Message
Section titled “Message”A single unit of communication within a conversation. Messages have:
- role:
user,assistant, orsystem - content: The message text
- metadata: Additional information (timestamps, agent info)
Metadata
Section titled “Metadata”Additional information attached to messages, Spaces, or artifacts. Used for tracking, filtering, and agent coordination.
The operational mode for agent interactions:
- agent: Standard agent mode for conversations
- tool: Mode for tool execution
Persistence
Section titled “Persistence”Viber’s core capability of saving and restoring workspace state. Persistence enables:
- Session continuity across restarts
- Multi-day workflows
- Collaboration across time
Provider
Section titled “Provider”An LLM service provider. Supported providers:
- OpenAI: GPT-4, GPT-4o, GPT-4o-mini
- Anthropic: Claude 3.5 Sonnet, Claude 3 Opus
- DeepSeek: DeepSeek Chat, DeepSeek Coder
- Google: Gemini 1.5 Pro, Gemini 1.5 Flash
The central container in Viber that holds all work. A Space includes:
- spaceId: Unique identifier
- name: Human-readable name
- goal: The workspace objective
- history: All conversation messages
- artifacts: Documents and files
Spaces are persistent — you can resume them at any time.
Space-Oriented
Section titled “Space-Oriented”Viber’s design philosophy that differs from task-oriented frameworks:
| Aspect | Task-Oriented | Space-Oriented |
|---|---|---|
| Lifecycle | One-shot execution | Persistent, continuous |
| State | Ephemeral | Persistent |
| Artifacts | Output files | Living documents |
| Mental Model | ”Run and done" | "Evolve and iterate” |
Stream
Section titled “Stream”Real-time delivery of agent responses as they’re generated. Streaming provides better UX by showing content immediately rather than waiting for completion.
const stream = await xAgent.streamText({...});for await (const chunk of stream.textStream) { process.stdout.write(chunk);}A capability that extends what agents can do. Tools allow agents to:
- Fetch external data
- Read/write files
- Search the web
- Execute code
- Interact with APIs
The Space-oriented Collaborative Workspace Platform. Main exports:
| Export | Purpose |
|---|---|
viber | Core runtime, types, orchestration, tools |
viber/react | React hooks and components |
viber/svelte | Svelte 5 reactive stores |
TypeScript SDK
Section titled “TypeScript SDK”Viber is built with TypeScript and provides type-safe APIs:
import { XAgent, Space } from "viber";import type { Message } from "viber";Version History
Section titled “Version History”The record of changes to an artifact over time. Enables:
- Tracking evolution of documents
- Rollback to previous versions
- Audit trail of modifications
XAgent
Section titled “XAgent”The Strategic Task Orchestrator and Project Manager. XAgent:
- Serves as the primary interface for user interaction
- Coordinates specialist agents within a Space
- Maintains context across sessions
- Adapts plans based on evolving requirements
// Start a new workspaceconst xAgent = await XAgent.start("Write my thesis");
// Resume an existing workspaceconst xAgent = await XAgent.resume(spaceId);
// Stream a responseconst stream = await xAgent.streamText({ messages: [{ role: "user", content: "Write the introduction" }], metadata: { mode: "agent", requestedAgent: "X" },});Quick Reference
Section titled “Quick Reference”Core API
Section titled “Core API”// Start a new Spaceconst xAgent = await XAgent.start(goal);
// Get the Space objectconst space = xAgent.getSpace();
// Stream a responseconst stream = await xAgent.streamText({ messages, metadata });
// Save the workspaceawait space.persistState();
// Resume a Spaceconst xAgent = await XAgent.resume(spaceId);Space Properties
Section titled “Space Properties”space.spaceId // Unique identifierspace.name // Human-readable namespace.goal // Workspace objectivespace.history // Conversation historyspace.history.messages // Array of messagesCommon Patterns
Section titled “Common Patterns”| Pattern | Description |
|---|---|
| Start → Work → Save | Create workspace, collaborate, persist |
| Resume → Continue | Load existing workspace, continue work |
| Multi-session | Work over multiple days with full context |
| Multi-agent | XAgent coordinates specialists |