Read this when planning changes — module map and criticality tiers. | Module | Path | Tier | Summary | Spec link | |---|---|---|---|---| | Extension entry & wiring | `extensions/pi-mainagent.ts` (`piMainagentExtension`, `registerMainAgentFeatures`) | 1 | Registers command, events, widget; single-file extension | — | | Persona loading & state | `extensions/pi-mainagent.ts` (`loadAgents`, `readState`, `writeState`, `agentsDir`) | 1 | Reads `~/.pi/agent/agents/*.md`, persists active persona name to `agent-state.json` | @specs/persona-frontmatter.md | | Frontmatter parse & edit | `extensions/pi-mainagent.ts` (frontmatter helpers, `applyFrontmatterUpdates`) | 1 | Minimal YAML-subset parser + in-place field editing preserving user formatting | @specs/persona-frontmatter.md | | Selection application | `extensions/pi-mainagent.ts` (`applySelection`, tool pattern expansion) | 2 | Applies model/thinking/tool filters to the session; patterns like `ssh-manager_*` expanded against registered tools | — | | TUI dialogs | `extensions/pi-mainagent.ts` (`showAgentPicker`, `showAgentActions`, `showModelEffortPicker`) | 2 | SelectList-based menus; max 10 visible items, theme-aware | — |