Expand description
Shared foundation: stable typed IDs, the action registry, input, commands, errors.
The action registry here is the keystone of the whole design (ARCHITECTURE.md §3): the same named actions back the keymap, the command palette, and the agent’s ACP tool surface. Build this well and “agent-native” mostly falls out.
Re-exports§
pub use agent::AgentCapabilities;pub use agent::AgentEvent;pub use agent::AgentRequest;pub use agent::PermissionDecision;pub use agent::PromptCapabilities;pub use agent::StopReason;pub use fs::DirEntryInfo;pub use fs::EntryKind;pub use fs::FsError;pub use fs::FsEvent;pub use fs::FsRequest;pub use fs::FsResult;pub use git::GitBranch;pub use git::GitBranchStatus;pub use git::GitChangeKind;pub use git::GitContextDiff;pub use git::GitDiffTarget;pub use git::GitEvent;pub use git::GitFailure;pub use git::GitFailureKind;pub use git::GitFileDiff;pub use git::GitFileStatus;pub use git::GitOperation;pub use git::GitRepositorySnapshot;pub use git::GitRequest;pub use git::GitResult;pub use lsp::CodeAction;pub use lsp::CompletionItem;pub use lsp::Diagnostic;pub use lsp::DiagnosticOrigin;pub use lsp::DiagnosticSeverity;pub use lsp::DocumentSymbol;pub use lsp::HoverText;pub use lsp::Location;pub use lsp::LspEvent;pub use lsp::LspFailure;pub use lsp::LspFailureKind;pub use lsp::LspRequest;pub use lsp::LspResult;pub use lsp::SymbolKind;pub use lsp::SymbolLocation;pub use lsp::TextChange;pub use lsp::TextEdit;pub use lsp::TextPosition;pub use lsp::TextRange;pub use lsp::WatchedFileChange;pub use lsp::WorkspaceEdit;pub use message::AppMessage;pub use search::SearchEvent;pub use search::SearchMatch;pub use search::SearchMode;pub use search::SearchRequest;pub use task::Problem;pub use task::ProblemSeverity;pub use task::TaskOrigin;pub use task::TaskSpec;pub use task::TaskStatus;pub use terminal::AgentTerminalOperation;pub use terminal::AgentTerminalResponse;pub use terminal::PtyEvent;pub use terminal::PtyRequest;pub use terminal::TerminalExit;pub use terminal::TerminalOwner;pub use terminal::TerminalSize;pub use terminal::TerminalSpec;pub use terminal::TerminalStatus;
Modules§
- agent
- Agent data types shared across the service boundary.
- fs
- Filesystem data types shared across the service boundary.
- git
- Protocol-neutral Git state and worker messages (ADR-0010).
- input
- Backend-agnostic keyboard input. The
appcrate translates crossterm events into these types so the keymap (config) never depends on the terminal backend. - lsp
- Protocol-neutral language-server state and session messages (ADR-0011).
- message
- Typed application messages — the one channel the main loop wakes on (ARCHITECTURE.md §7.1).
- search
- Protocol-neutral vocabulary shared by search services and the application model.
- task
- Language-neutral task and diagnostic vocabulary.
- terminal
- Protocol-neutral terminal vocabulary shared across the application boundary.
Structs§
- Action
Registry - The one command surface: every user-invocable behaviour is an
Actionhere, and both the keymap and the palette are built from this list. - AgentId
- Agent
Terminal Request Id - One ACP terminal method awaiting a model/service response.
- Buffer
Id - Document
Id - GitRequest
Id - Location
Request Id - LspRequest
Id - LspServer
Id - NodeId
- A node in the file-explorer tree. Identity is the id, never the path — paths move under rename and watch events (ARCHITECTURE.md §7.3).
- PaneId
- Permission
Request Id - Preview
Request Id - Proposal
Id - Read
Request Id - One
fs/read_text_filecall from the agent. - Search
Request Id - Session
Id - Task
RunId - Terminal
Generation - Terminal
Id - TurnId
- Workspace
Id - A single open project/workspace root.
Enums§
- Action
- A named, invocable action — the shared vocabulary of the keymap, command palette, plugins, and the agent tool schema exposed over ACP (§3, §6.2).
- Command
- Everything the shell can be told to do. The keymap maps a
input::KeyChordto one of these, and the palette dispatchesCommand::Action— one dispatch path for keyboard and palette alike (ARCHITECTURE.md §3, §7.1).