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 | — |