Skip to content

overview glossary

Zachary BENSALEM edited this page Aug 15, 2026 · 1 revision

Glossary

Project-specific terms used across the codebase and docs. Terms are defined the way the code uses them, with source pointers where useful.

Core concepts

  • RLM (Recursive Language Model), the programming model where the agent can spawn recursive subagents (rlm(...)), use IPython as its primary tool, and manage its own context. See packages/coding-agent/docs/rlm.md and packages/coding-agent/src/core/rlm-runtime.ts.
  • AgentConnection, the single typed client-side seam between any front end (terminal, RPC, web) and the agent runtime. All session state, event streams, and commands flow through it, never directly to AgentSession (packages/coding-agent/src/modes/agent-connection/).
  • SessionView, read-only, serializable projection of AgentSession: cwd, session dir, header, context-tree walks, and session-file materialization. Excludes mutation.
  • ReplacedClientContext, narrow surface given to afterReplace hooks after newSession/fork/switchSession swaps the underlying session; exposes only sendUserMessage, notify, setEditorText.
  • afterReplace, the supported hook shape for client-side work that must run immediately after a session swap, so daemon-backed clients can queue it over the wire.
  • seedMessages, the supported way to populate a freshly created session with initial user/assistant messages without a raw session handle; carried on the daemon new_session command at protocol >= 8.
  • InteractiveModeLocalSessionHost, retired backdoor that exposed raw AgentSession, SessionManager, and ExtensionRunner to terminal UI code; deleted (see docs/adr/0001-kill-interactivemode-localsessionhost.md).
  • Daemon, a long-running background process that hosts agent sessions independent of the terminal, reachable over a Unix socket with a versioned protocol (packages/coding-agent/src/modes/daemon/).
  • Kernel (IPython), the persistent Jupyter kernel that is the agent's built-in tool; the model reads files, runs commands, and edits code through it. Provisioned via IpythonKernelProvisioner (packages/coding-agent/src/core/kernel/); the Python shim lives in prime-agent-runtime/.

Web wire surface

  • NDJSON, newline-delimited JSON; the format of the streaming turn stream over POST /api/chat.
  • SSE (Server-Sent Events), the push channel for out-of-turn events (GET /api/chat/events), with ring-buffer replay keyed on Last-Event-ID.
  • Ring buffer, the last 500 event frames per session kept in memory for SSE replay on reconnect (web/server/src/ring-buffer.ts).
  • Pending dialog, an interactive question (confirm/select/input) awaiting a client answer; tracked in PendingDialogRegistry with a 60-second timeout (web/server/src/pending-dialogs.ts).
  • ChatStreamEvent, the wire event type of the web contract (web/protocol/src/chat-protocol.ts); every frame the browser applies to its chat reducer.
  • tool-Question, the frame kind for interactive questions, rendered as an inline question card or the question bar.
  • PrimeBridge, the server-side session coordinator in web/server/src/prime-bridge.ts that owns sessions, ring buffers, pending dialogs, and kernel readiness.
  • Event mapper, the pure function AgentSessionEvent → ChatStreamEvent[] in web/server/src/event-mapper.ts; tool names pass through toPascalCase (tool-IPython, tool-Bash, tool-Edit, tool-Thinking, ...).

Agent features

  • Compaction, context compaction and branch summarization to keep the context tree bounded (packages/coding-agent/src/core/compaction/).
  • Refinement (/refine), the self-improving harness that reviews the current trajectory and applies evidence-backed updates to supplemental harness state; never rewrites the immutable base system prompt (packages/coding-agent/src/core/refinement/).
  • Skills, importable Python packages (and markdown prompts) that add capabilities; a built-in skill creator turns workflows into skills (packages/coding-agent/skills/, packages/coding-agent/src/core/skills.ts).
  • Extensions, TypeScript modules that add tools, commands, events, keybindings, and custom UI; run in-process only (packages/coding-agent/src/core/extensions/).
  • MCP (Model Context Protocol), client support for MCP servers, including an OAuth flow and catalog (packages/ai/src/mcp.ts, packages/ai/src/mcp/).
  • Slash commands, /command interactions with autocomplete; built-ins include /model, /effort, /refine, /compact, /settings, /new, /session, /login (packages/coding-agent/src/core/slash-commands.ts).
  • Tool cards, the web UI rendering of tool calls with a lifecycle (input-streaming → output-available | output-error), one card per tool kind (web/design/src/components/agent-elements/tools/).
  • JSONL transcript, the session persistence format under ~/.prime/agent/sessions/; one JSON object per line.

Ecosystem

  • pi-mono, the upstream project (by Mario Zechner / badlogic) that Prime Agent hard-forked; the fork retains @earendil-works/pi-* package identifiers for compatibility.
  • @earendil-works, the npm scope for the four core packages (pi-ai, pi-agent-core, pi-coding-agent, pi-tui).
  • RLM runtime, the Python side of the harness: prime-agent-runtime installs an importable rlm package (harness, skills, MCP base, subagent registry).
  • OpenUI, generative UI rendering used by the web chat (web/design/src/components/openui/), driven by @openuidev/lang-core from web/protocol.
  • PrimeBridge, see Web wire surface.

Clone this wiki locally