How fanrec/uina-agent works
Uina is a local-terminal digital-agent runtime. A user starts an interactive or one-shot session; the host configures the model and capabilities, the agent builds requests and runs turns, and results and session facts are displayed and persisted for later recovery. Extensions add tools, hooks, and domain capabilities; the terminal UI exposes session, task, subagent, and trajectory controls. Relationships for unsampled extension and UI internals are limited to documented capabilities and references in the source index.
Main entry points: host.ts Runtime host · loop.ts Agent loop · runner.ts Extension runner · app.ts CLI application
Components 21
Entry and host
- CLI application
src/cli/app.ts - Runtime host
src/host/host.ts - Runtime profile
src/host/profile.ts
Agent runtime
- Agent loop
src/agent/loop.ts - Context projection
src/agent/context.ts - Input queues
src/agent/queue.ts - Runtime hooks
src/runtime/hooks.ts
Extensions and tools
- Tool broker
src/tools/broker.ts - Tool pipeline
src/tools/pipeline.ts - Extension runner
src/extensions/runner.ts - Workspace tools
src/extensions/workspace-tools - Cognition memory
src/extensions/cognition - Jobs and subagents
src/extensions
Session and providers
- Provider adapters
src/ai/providers.ts - Provider config
src/ai/config.ts - Session journal
src/session/jsonl-store.ts - Session recovery
src/session/recovery.ts
Terminal interface
- Terminal UI
src/ui/tui.ts - UI host
src/ui/ui-host.ts
Other components
- User
- Model provider
Connections 28
- User → CLI application: starts
- CLI application → Runtime profile: loads profile
src/cli/app.ts - CLI application → Runtime host: creates host
src/cli/app.ts - CLI application → Terminal UI: starts interface
src/cli/app.ts - Runtime host → Provider config: loads config
src/host/host.ts - Runtime host → Provider adapters: configures providers
src/host/host.ts - Runtime host → Agent loop: creates loop
src/host/host.ts - Runtime host → Tool broker: configures tools
src/host/host.ts - Runtime host → Extension runner: runs extensions
src/host/host.ts - Runtime host → Session journal: opens journal
src/host/host.ts - Agent loop → Context projection: builds context
src/agent/loop.ts - Agent loop → Input queues: consumes input
src/agent/loop.ts - Agent loop → Runtime hooks: invokes hooks
src/agent/loop.ts - Agent loop → Tool broker: dispatches tools
src/agent/loop.ts - Agent loop → Session journal: records turns
- Agent loop → Provider adapters: sends requests
- Tool broker → Tool pipeline: executes pipeline
src/tools/broker.ts - Tool pipeline → Runtime hooks: runs tool hooks
src/tools/pipeline.ts - Extension runner → Tool broker: registers tools
src/extensions/runner.ts - Extension runner → Runtime hooks: registers hooks
src/extensions/runner.ts - Extension runner → Workspace tools: loads capabilities
- Extension runner → Cognition memory: loads capabilities
src/extensions/cognition/context.ts - Extension runner → Jobs and subagents: loads capabilities
src/extensions/runner.ts - Provider adapters → Model provider: streams completions
- Session journal → Session recovery: rehydrates history
src/session/jsonl-store.ts - Session recovery → Agent loop: restores state
src/agent/loop.ts - Terminal UI → UI host: renders controls
- UI host → Runtime host: controls runtime