pi-plus 0.1.38 → 0.1.39

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 CHANGED
@@ -4,6 +4,7 @@
4
4
 
5
5
  ### Added
6
6
 
7
+ - The fancy content-change diff extension (`pi-plus-fancy-diff`): the TUI rendering of `edit` and `write` is taken over via `registerToolRenderer` — diff bodies are syntax-highlighted (upstream's cli-highlight pipeline, by file extension), markers are colored `+`/`-` over a dim line-number gutter, the header carries `+N −M` change stats and a language badge, 1:1 modified lines get bold word-level emphasis, and elided context shows a `⋮` separator. A `write` that overwrites an existing file now renders an old-vs-new diff: the pre-image is captured by a `tool_call` handler before execution (LRU-bounded, 256 KB per-file cap); new files keep the streaming content preview. Errors, restored sessions without a pre-image, and all other tools fall back to upstream rendering. No background fills anywhere, consistent with plain tool blocks.
7
8
  - The web search extension (`pi-plus-web-search`, shared core `packages/plus/src/extensions/web-search/`) is registered in the `pipi` CLI: `WebSearch` searches the web through the provider chain selected by `WEB_SEARCH_PROVIDER`/`*_API_KEY` env vars (keyless DuckDuckGo fallback last) and `WebFetch` reads a URL as text, both returning citation-ready results.
8
9
  - The `/init` command (shared core, `packages/plus/src/extensions/init/`): analyzes the codebase and creates `AGENTS.md` at the cwd root, or suggests improvements when it already exists; pi loads `AGENTS.md` automatically.
9
10
  - `pipi profile add <name> -p <provider>` with no token/model/url/thinking/--set now invokes that provider's interactive login after saving the profile: the OAuth login page opens in the browser (or the API-key setup prompts run in the terminal) and the credential is persisted into the profile's isolated agent dir (`~/.pi/pi-hub/profiles/<name>/auth.json`), so the profile is ready to launch. A cancelled or failed login keeps the profile and suggests `pipi profile update <name> -t <key>`. The CLI injects the flow via hub's `dispatchHubCommand` `login` hook; the flow itself lives in the shared core (`packages/plus/src/auth/login.ts`).
package/README.md CHANGED
@@ -23,6 +23,7 @@ The context-detection/compaction/reasoning overrides and the eleven non-TUI exte
23
23
  6. **Settings selector rows** (`src/coding-agent/ui/settings-selector.ts` wrapper) — `/settings` gains "Auto-compact threshold", "Context floor", and "Context window cap" rows (persisted in the `piPlus` block of the base agent settings.json via the shared core's `context/plus-settings.ts`).
24
24
  7. **Tab title + busy spinner** (`src/extensions/tab-title/`) — the terminal window/tab title brands as `pi+ - [sessionName -] cwdBasename` with a braille spinner while the agent or compaction is working. TUI mode only.
25
25
  8. **Plain tool blocks** (`src/extensions/plain-tools/`) — strips background fills from tool result blocks so tool status reads as text (words, never colored blocks).
26
+ 9. **Fancy content-change diffs** (`src/extensions/fancy-diff/`) — takes over the TUI rendering of `edit` and `write`: syntax-highlighted diff bodies, colored +/- markers, a dim line-number gutter, `+N −M` change stats with a language badge, bold word-level emphasis on modified lines, and a ⋮ separator for elided context. A `write` that overwrites an existing file renders as an old-vs-new diff (the pre-image is captured in a `tool_call` handler before execution; new files keep the streaming content preview). No background fills, consistent with plain tool blocks.
26
27
 
27
28
  The CLI identifies as **`pipi`** (pi-plus) in CLI text via the shared config wrapper's
28
29
  `APP_NAME` shadow; the terminal tab title brands as **`pi+`** via `APP_TITLE`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-plus",
3
- "version": "0.1.38",
3
+ "version": "0.1.39",
4
4
  "description": "pi coding agent with the pi-plus override layer (pipi CLI)",
5
5
  "type": "module",
6
6
  "piConfig": {