How devsohm/axi works
Axi is a monorepo of typed libraries for agent applications. Its packages cover model access, object runtimes, durable conversations and tasks, isolated code execution, MCP clients, environments, telemetry, and terminal interfaces. The documented agent workflow runs through Durable’s Harness, which connects models and extensions to queued input, generation, tools, and persisted state; applications can then observe committed state. The README establishes the package-level relationships below, but sampled source is limited, so internal call edges are omitted where they are not evidenced.
Main entry points: host.ts Host runtime · harness.ts Agent Harness · session.ts Conversations · types.ts AI runtime
Components 28
Model Runtime
- AI runtime
packages/ai/src/types.ts - Model catalog
packages/ai/src/models.ts - Provider factories
packages/ai/src/providers/openrouter.ts - Provider protocols
packages/ai/src/api/anthropic-client.ts - OAuth flows
packages/ai/src/auth/oauth/openrouter.ts - Client identity
packages/ai/src/utils/identity.ts
Object Runtime
- Object contracts
packages/objects/src/contracts/index.ts - Host runtime
packages/objects/src/host/host.ts - Host routing
packages/objects/src/host/route.ts - Principal and errors
packages/objects/src/data/principal.ts - State and deltas
packages/objects/src/delta/tracker.ts - JSON validation
packages/objects/src/json.ts - App host
packages/objects/src/node/app/app.ts - Object store
packages/objects/src/store/engine.ts
Durable Agents
- Agent Harness
packages/durable/src/harness/harness.ts - Conversations
packages/durable/src/session/session.ts - Tasks and tools
packages/durable/src/tasks.ts - Views and events
packages/durable/src/harness/view.ts - Memory storage
packages/durable/src/storage/memory.ts - JSONL storage
packages/durable/src/storage/jsonl/storage.ts - SQLite storage
packages/durable/src/storage/sqlite/storage.ts
Integrations
- Code Mode
packages/codemode/src/runtime/execution.ts - MCP client
packages/mcp/src/client.ts - Environment access
packages/env/src/connection.ts - Native daemon
packages/env/daemon/src/main.rs - Telemetry
packages/telemetry/src/index.ts
Interfaces
- Terminal UI
packages/tui/src/tui.ts
Other components
- Application developer
Connections 27
- Application developer → AI runtime: uses
- AI runtime → Model catalog: uses catalog
- AI runtime → Provider factories: calls providers
packages/ai/src/providers/openrouter.ts - Provider factories → Provider protocols: uses protocols
- Provider factories → OAuth flows: supports OAuth
- Application developer → App host: hosts app
- App host → Host runtime: hosts objects
- Host runtime → Object contracts: uses contracts
- Host runtime → Host routing: routes hosts
packages/objects/src/host/route.ts - Host runtime → Principal and errors: uses principals
- Host runtime → Object store: persists state
- Object store → State and deltas: tracks changes
- Object store → JSON validation: validates data
packages/objects/src/store/engine.ts - Application developer → Agent Harness: runs agents
- Agent Harness → AI runtime: uses models
- Agent Harness → Conversations: manages conversations
- Agent Harness → Tasks and tools: runs tasks
- Agent Harness → Views and events: publishes state
- Conversations → Memory storage: stores data
- Conversations → JSONL storage: stores data
- Conversations → SQLite storage: stores data
- Application developer → Code Mode: runs isolated code
- Application developer → MCP client: connects MCP
- Application developer → Environment access: uses environments
- Environment access → Native daemon: connects daemon
- Application developer → Telemetry: records spans
- Application developer → Terminal UI: builds terminal UI