How disler/self-compact-pi-agent works
Self Compact is a Pi coding-agent extension for autonomous agents that monitor context usage, write a handoff note, trigger compaction, and resume without a human prompt. The main path runs from Pi lifecycle and usage events through threshold guidance and forced tool gating to the self_compact handoff, summary generation, and note restoration. It also exposes live context data and a footer gauge. README capabilities are included; wiring details not established by the sampled excerpts are omitted.
Main entry points: self-compact.ts Extension Entry · summary.ts Summary Generator · state.ts Handoff State · thresholds.ts Threshold Resolver
Components 17
Extension Runtime
- Extension Entry
apps/self-compact/extensions/self-compact/self-compact.ts - Context Usage
- Forced Tool Gate
apps/self-compact/extensions/self-compact/self-compact.ts
Compaction Handoff
- Handoff State
apps/self-compact/extensions/self-compact/state.ts - Pi Session
- Summary Generator
apps/self-compact/extensions/self-compact/summary.ts - Returned Note
Agent Interface
- view_context Tool
apps/self-compact/extensions/self-compact/self-compact.ts - Context Footer
apps/self-compact/extensions/self-compact/context-bar.ts - self_compact Tool
apps/self-compact/extensions/self-compact/self-compact.ts
Thresholds And Prompts
- Threshold Resolver
apps/self-compact/extensions/self-compact/thresholds.ts - Threshold Defaults
apps/self-compact/extensions/self-compact/defaults.ts - Prompt Loader
apps/self-compact/extensions/self-compact/prompts.ts - Editable Prompts
apps/self-compact/.pi/self-compact/USER_PROMPT_SOFT_SELF_COMPACT.md
Other components
- Autonomous Agent
- Pi Host
- Model Provider
Connections 22
- Autonomous Agent → Pi Host: sends prompts
- Pi Host → Extension Entry: dispatches events
- Pi Host → Extension Entry: reports usage
- Extension Entry → Threshold Resolver: resolves limits
- Threshold Resolver → Threshold Defaults: uses defaults
- Extension Entry → Prompt Loader: loads guidance
- Prompt Loader → Editable Prompts: reads files
- Extension Entry → Forced Tool Gate: enforces cutoff
- Extension Entry → view_context Tool: registers tool
- view_context Tool → Context Usage: returns numbers
- Extension Entry → Context Footer: renders gauge
- Extension Entry → self_compact Tool: registers tool
- self_compact Tool → Handoff State: saves note
- Extension Entry → Pi Session: journals state
- Extension Entry → Summary Generator: requests summary
- Summary Generator → Pi Host: calls compaction
- Summary Generator → Model Provider: requests completion
- Pi Host → Pi Session: stores compaction
- Extension Entry → Handoff State: recovers handoff
- Handoff State → Pi Session: reads entries
- Extension Entry → Returned Note: returns verbatim
- Returned Note → Autonomous Agent: resumes work