@astralyn/pi 0.82.2 → 0.82.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/README.md +70 -634
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +3 -2
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +3 -2
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +31 -12
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/types.d.ts +11 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +13 -3
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +19 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +3 -0
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +2 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -0
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/plan/constants.d.ts +31 -0
- package/dist/extensions/plan/constants.d.ts.map +1 -0
- package/dist/extensions/plan/constants.js +57 -0
- package/dist/extensions/plan/constants.js.map +1 -0
- package/dist/extensions/plan/index.d.ts +21 -0
- package/dist/extensions/plan/index.d.ts.map +1 -0
- package/dist/extensions/plan/index.js +291 -0
- package/dist/extensions/plan/index.js.map +1 -0
- package/dist/extensions/plan/schema.d.ts +15 -0
- package/dist/extensions/plan/schema.d.ts.map +1 -0
- package/dist/extensions/plan/schema.js +13 -0
- package/dist/extensions/plan/schema.js.map +1 -0
- package/dist/extensions/plan/state.d.ts +29 -0
- package/dist/extensions/plan/state.d.ts.map +1 -0
- package/dist/extensions/plan/state.js +74 -0
- package/dist/extensions/plan/state.js.map +1 -0
- package/dist/extensions/plan/storage.d.ts +18 -0
- package/dist/extensions/plan/storage.d.ts.map +1 -0
- package/dist/extensions/plan/storage.js +58 -0
- package/dist/extensions/plan/storage.js.map +1 -0
- package/dist/extensions/rewind/anchor.d.ts +29 -0
- package/dist/extensions/rewind/anchor.d.ts.map +1 -0
- package/dist/extensions/rewind/anchor.js +35 -0
- package/dist/extensions/rewind/anchor.js.map +1 -0
- package/dist/extensions/rewind/engine.d.ts +2 -6
- package/dist/extensions/rewind/engine.d.ts.map +1 -1
- package/dist/extensions/rewind/engine.js +41 -10
- package/dist/extensions/rewind/engine.js.map +1 -1
- package/dist/extensions/rewind/index.d.ts.map +1 -1
- package/dist/extensions/rewind/index.js +55 -21
- package/dist/extensions/rewind/index.js.map +1 -1
- package/dist/extensions/rewind/menu.d.ts.map +1 -1
- package/dist/extensions/rewind/menu.js +7 -2
- package/dist/extensions/rewind/menu.js.map +1 -1
- package/dist/extensions/rewind/restore.d.ts +26 -9
- package/dist/extensions/rewind/restore.d.ts.map +1 -1
- package/dist/extensions/rewind/restore.js +58 -16
- package/dist/extensions/rewind/restore.js.map +1 -1
- package/dist/extensions/subagent/activity.d.ts +1 -0
- package/dist/extensions/subagent/activity.d.ts.map +1 -1
- package/dist/extensions/subagent/activity.js +20 -4
- package/dist/extensions/subagent/activity.js.map +1 -1
- package/dist/extensions/subagent/agents.d.ts.map +1 -1
- package/dist/extensions/subagent/agents.js +2 -13
- package/dist/extensions/subagent/agents.js.map +1 -1
- package/dist/extensions/subagent/constants.d.ts +4 -3
- package/dist/extensions/subagent/constants.d.ts.map +1 -1
- package/dist/extensions/subagent/constants.js +9 -3
- package/dist/extensions/subagent/constants.js.map +1 -1
- package/dist/extensions/subagent/index.d.ts.map +1 -1
- package/dist/extensions/subagent/index.js +12 -5
- package/dist/extensions/subagent/index.js.map +1 -1
- package/dist/extensions/subagent/render.d.ts.map +1 -1
- package/dist/extensions/subagent/render.js +166 -41
- package/dist/extensions/subagent/render.js.map +1 -1
- package/dist/extensions/subagent/resolve.d.ts +2 -5
- package/dist/extensions/subagent/resolve.d.ts.map +1 -1
- package/dist/extensions/subagent/resolve.js +8 -13
- package/dist/extensions/subagent/resolve.js.map +1 -1
- package/dist/extensions/subagent/runner.d.ts +3 -1
- package/dist/extensions/subagent/runner.d.ts.map +1 -1
- package/dist/extensions/subagent/runner.js +111 -66
- package/dist/extensions/subagent/runner.js.map +1 -1
- package/dist/extensions/subagent/schema.d.ts +0 -6
- package/dist/extensions/subagent/schema.d.ts.map +1 -1
- package/dist/extensions/subagent/schema.js +2 -3
- package/dist/extensions/subagent/schema.js.map +1 -1
- package/dist/extensions/subagent/sdk-runner.d.ts.map +1 -1
- package/dist/extensions/subagent/sdk-runner.js +32 -16
- package/dist/extensions/subagent/sdk-runner.js.map +1 -1
- package/dist/extensions/subagent/types.d.ts +3 -2
- package/dist/extensions/subagent/types.d.ts.map +1 -1
- package/dist/extensions/subagent/types.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +3 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +10 -2
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +22 -13
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +31 -18
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/utils/coalescing-terminal.d.ts +62 -0
- package/dist/utils/coalescing-terminal.d.ts.map +1 -0
- package/dist/utils/coalescing-terminal.js +151 -0
- package/dist/utils/coalescing-terminal.js.map +1 -0
- package/docs/bundled/README.md +38 -0
- package/docs/bundled/extensions/README.md +19 -0
- package/docs/bundled/extensions/plan.md +31 -0
- package/docs/{distribution → bundled}/extensions/question.md +0 -11
- package/docs/{distribution → bundled}/extensions/rewind.md +19 -18
- package/docs/{distribution → bundled}/extensions/router.md +1 -14
- package/docs/{distribution → bundled}/extensions/statusline.md +1 -2
- package/docs/{distribution → bundled}/extensions/subagent.md +15 -22
- package/docs/bundled/extensions/todo.md +28 -0
- package/docs/{distribution → bundled}/themes.md +4 -11
- package/docs/{distribution → bundled}/tool-presentation.md +4 -10
- package/docs/compaction.md +18 -14
- package/docs/custom-provider.md +8 -8
- package/docs/docs.json +61 -9
- package/docs/extensions.md +14 -13
- package/docs/index.md +12 -7
- package/docs/json.md +4 -4
- package/docs/providers.md +1 -1
- package/docs/rpc.md +3 -9
- package/docs/session-format.md +5 -5
- package/docs/skills.md +1 -1
- package/docs/themes.md +4 -8
- package/docs/tui.md +1 -1
- package/examples/extensions/README.md +0 -1
- package/examples/extensions/custom-provider-anthropic/index.ts +4 -4
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/gondolin/index.ts +4 -6
- package/examples/extensions/message-renderer.ts +2 -2
- package/examples/extensions/overlay-qa-tests.ts +2 -2
- package/examples/extensions/project-trust.ts +2 -2
- package/examples/sdk/README.md +38 -44
- package/npm-shrinkwrap.json +2 -2
- package/package.json +6 -2
- package/docs/development.md +0 -68
- package/docs/distribution/README.md +0 -34
- package/docs/distribution/architecture.md +0 -102
- package/docs/distribution/extensions/README.md +0 -17
- package/docs/distribution/maintenance.md +0 -121
- package/docs/distribution/release.md +0 -85
- package/examples/extensions/subagent/README.md +0 -175
- package/examples/extensions/subagent/agents/planner.md +0 -37
- package/examples/extensions/subagent/agents/reviewer.md +0 -35
- package/examples/extensions/subagent/agents/scout.md +0 -50
- package/examples/extensions/subagent/agents/worker.md +0 -24
- package/examples/extensions/subagent/agents.ts +0 -126
- package/examples/extensions/subagent/index.ts +0 -1009
- package/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
- package/examples/extensions/subagent/prompts/implement.md +0 -10
- package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
- /package/docs/{distribution → bundled}/extensions/deepwiki.md +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.82.4] - 2026-07-26
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added a bundled `plan` extension: `/plan` (or `--plan`) enters a read-only planning mode that disables `edit`, `write`, `bash`, and `subagent`, interviews via the `question` tool, and exits through a user-approved `exit_plan` tool call. Approval saves the plan to `<agentDir>/plans/<sessionId>/NN-<slug>.md` and either continues in place or compacts the context first, restarting execution with the plan embedded in the kickoff message. See [plan](docs/bundled/extensions/plan.md).
|
|
10
|
+
- Added subagent recovery from transient provider failures: the worker session's auto-retry backoff is now visible in the run status (`Retrying (n/m) in Xs…`), and a failure that produced no turns or tool uses — such as a preflight auth throw, which bypasses session-level retry entirely — is rerun at the task level with exponential backoff. Runs with partial work behind them are never rerun. See [subagent](docs/bundled/extensions/subagent.md).
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Reworked the subagent transcript views. Call headers drop the mode wording: a single delegation renders as `General Agent · <description>` with the profile name title-cased for display (`code-reviewer` → `Code Reviewer`), and a batch renders as `Multi-Agent · N tasks`. While running, the collapsed view leads with a tool-derived intent line (`Applying changes`, `Verifying changes`, `Exploring code` — now also covering inspection commands like `git status` and `rg`, `Investigating a failure`) over the raw tool summary, and shows live elapsed time plus a `ctx:` context watermark that tracks the worker's latest request size. Completed excerpts cut at sentence boundaries, and the expanded activity history grows from 4 to 12 entries.
|
|
15
|
+
- Retired the subagent renderer's own `●` status dots in favor of the tool shell's call-level dot: `›` now marks the current position (the running task in a batch, the running tool elsewhere), `○`/`✓`/`×`/`■` cover queued and terminal states, and progress headers omit zero counts. Expanded batches gain a numbered contents list matched to `──` section headers, activity rows show durations of a second or longer and color failed result excerpts, the expanded view keeps the streaming tail visible while a run is in flight, and run metadata names the working directory when it differs from the parent's.
|
|
16
|
+
- Raised the subagent concurrency gate from three to five workers, and re-headed parallel result sections as `### <description> (<agent>) — <status>` so repeated profile names stay distinguishable.
|
|
17
|
+
- Removed the subagent `chain` mode along with `{previous}` substitution: later steps had to be written before earlier results existed, so chains could only hand off blindly. Sequential work is now driven by the parent, which reads each report before writing the next single-mode briefing and can adapt or stop between steps. See [subagent](docs/bundled/extensions/subagent.md).
|
|
18
|
+
- Changed mid-turn auto-compaction to distinguish an extension's voluntary `session_before_compact` cancel from a failure: a cancel now lets the run continue (skipping further mid-turn checks for that run) instead of failing closed, and the event carries a new `timing` field (`"manual" | "midTurn" | "postRun" | "prePrompt"`) so extensions can tell the contexts apart. The "nothing to compact" error now includes the same remediation guidance as the retained-context warning. See [Compaction](docs/compaction.md).
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Fixed auto-compaction to also check the context before continuing a run with queued steering or follow-up messages; previously a turn without tool results skipped the mid-turn check and long follow-up chains could only recover via overflow.
|
|
23
|
+
- Fixed the IME candidate window jumping between the caret and the end of the input line while typing with a CJK input method in Windows Terminal and other terminals that anchor the candidate window to the hardware cursor. Each TUI render pass is now flushed to stdout as one atomic write instead of separate frame, cursor-reposition, and cursor-visibility writes, so the terminal never observes the intermediate cursor position (upstream [#6289](https://github.com/earendil-works/pi/issues/6289), [#5200](https://github.com/earendil-works/pi/issues/5200)).
|
|
24
|
+
- Fixed the terminal viewport jumping to the top of the buffer when scrolling up through history while a response is streaming, most visibly in Windows Terminal. Content-driven full redraws (triggered whenever a line above the viewport changes during streaming markdown reflow) previously cleared the terminal scrollback with `ESC[3J` and replayed the entire transcript; such frames are now rewritten to overwrite the visible screen in place (avoiding `ESC[2J`, which conhost implements by pushing the screen into scrollback), preserving scrollback, the reading position, and pre-session shell history without accumulating duplicate screen copies. Width-change redraws still clear scrollback since re-wrapped content invalidates it (upstream [#6502](https://github.com/earendil-works/pi/issues/6502), [#5576](https://github.com/earendil-works/pi/issues/5576), [#6050](https://github.com/earendil-works/pi/issues/6050)).
|
|
25
|
+
- Fixed the rewind extension's `/tree` restore semantics. Snapshots now anchor to the first user entry of a run (steering/follow-up messages no longer shift the anchor onto a mid-run message), and the restore target mirrors `/tree`'s leaf rules: user-message targets restore to the state before that turn, other targets to the state after it, and navigation is silent instead of rolling back the target turn's own edits when nothing was recorded afterwards. Also fixed resume/fork backup migration to link only retained frames (removing a race with over-cap blob pruning), made restore-side change detection immune to mtime-preserving content swaps, deduplicated case-insensitive tracking keys on Windows, and taught the storage menu's "remove all" to keep backups recently written by other running sessions. See [rewind](docs/bundled/extensions/rewind.md).
|
|
26
|
+
- Fixed subagent working-directory resolution under a symlinked parent directory (macOS `/tmp`, Windows junctions): the containment check compared the real parent path against the unresolved candidate, so every call — including the default inherit-cwd case — was rejected as an escape. Traversal and symlink escapes are still blocked.
|
|
27
|
+
- Fixed the subagent tool staying broken for the rest of the session after a transient `ModelRuntime` creation failure; the rejected promise is no longer cached, so the next invocation retries.
|
|
28
|
+
- Fixed subagent progress updates firing after the tool result had settled (a throttled emitter leaked its timer), and skipped redundant progress serialization when consecutive events change nothing user-visible.
|
|
29
|
+
|
|
30
|
+
## [0.82.3] - 2026-07-26
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- Exposed the `outputPad` setting to custom message renderers. See [Extensions](docs/extensions.md) ([#7045](https://github.com/earendil-works/pi/pull/7045) by [@xl0](https://github.com/xl0)).
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- Changed pi.dev model catalog refreshes to revalidate with `If-None-Match`, so unchanged provider catalogs answer with an empty `304` instead of a full download.
|
|
39
|
+
- Reworked the package documentation as distribution-owned `@astralyn/pi` user and API guidance, with dedicated bundled-feature pages, standalone examples, complete navigation, and automated checks for broken package links or monorepo-only paths. Repository architecture, upstream synchronization, development, and release procedures now live separately under `maintainers/` and are excluded from npm packages.
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- Fixed unavailable scoped models being hidden from `/models`, allowing them to be removed without editing settings manually ([#6949](https://github.com/earendil-works/pi/issues/6949), [#7032](https://github.com/earendil-works/pi/pull/7032) by [@christianklotz](https://github.com/christianklotz)).
|
|
44
|
+
- Fixed startup context file discovery to skip directories that match context file names such as `AGENTS.md`, which produced `EISDIR` warnings ([#7106](https://github.com/earendil-works/pi/pull/7106) by [@mrexodia](https://github.com/mrexodia)).
|
|
45
|
+
- Fixed the llama.cpp extension to persist its model catalog, so llama.cpp models stay listed before the first successful refresh. See [llama.cpp](docs/llama-cpp.md) ([#7072](https://github.com/earendil-works/pi/pull/7072) by [@davidbrai](https://github.com/davidbrai)).
|
|
46
|
+
|
|
5
47
|
## [0.82.2] - 2026-07-26
|
|
6
48
|
|
|
7
49
|
### Fixed
|