pi-plus 0.1.18 → 0.1.20

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
@@ -2,9 +2,16 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ### Added
6
+
7
+ - The `/init` command (shared core, `packages/plus/src/extensions/init/`): analyzes the codebase and creates `PI.md` at the cwd root, or suggests improvements when it already exists; `PI.md` is auto-loaded into every session.
8
+ - `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`).
9
+ - The interactive TUI's `/login` is disabled: it shows a status line pointing at `pipi profile add <name> -p <provider>` instead of starting the login flow, and it no longer appears in autocomplete or `/help` (via the `interactive-mode` and `slash-commands` redirect wrappers in the shared core).
10
+
5
11
  ### Changed
6
12
 
7
13
  - **The repository split the pi-plus sources into three packages**: the shared override core (context/compaction/reasoning + the seven non-TUI extensions + the core redirect wrappers) stays in `packages/plus`, all CLI logic (hub dispatch, completion, usage print, banner/vim/tab-title/plain-tools/`/cd`, the main wrapper, the source-mode loader) moved to `packages/plus-cli`, and the programmatic entry moved to `packages/plus-api`. The published `pi-plus` package is now **CLI-only**: `api.js`/`api.d.ts` are gone from the artifact, the `exports` map has no `.` entry (so `import "pi-plus"` fails by design), and the `@earendil-works/pi-coding-agent` types dependency is dropped. Library hosts should depend on the new **`pi-plus-sdk`** package instead, published from `packages/plus-api`.
14
+ - The `/cd` working-directory switch extension moved to the shared core (`packages/plus/src/extensions/cd/`) so the `pi-plus-sdk` artifact registers it too; it is no longer CLI-only.
8
15
  - Entries below this note predate the split and describe the combined `pi-plus` artifact.
9
16
 
10
17
  ### Fixed
package/README.md CHANGED
@@ -11,11 +11,11 @@ not own pi's command). Library hosts embedding pi in-process use the separate
11
11
 
12
12
  ## What this layer adds on top of the shared core
13
13
 
14
- The context-detection/compaction/reasoning overrides and the seven non-TUI extensions
15
- (subagent, tasks, memory, plan, ask-user, hooks, context-guard) live in
14
+ The context-detection/compaction/reasoning overrides and the nine non-TUI extensions
15
+ (subagent, tasks, memory, plan, ask-user, hooks, context-guard, /cd, /init) live in
16
16
  [`../plus`](../plus) and are shared with the SDK. This package adds the CLI-only pieces:
17
17
 
18
- 1. **Hub profiles** (`src/coding-agent/main.ts` wrapper, backed by `@earendil-works/pi-hub` = [`../hub`](../hub)) — named pi profiles (provider/models/thinking/token/base URL) stored in `~/.pi/profiles.json`, materialized into isolated agent dirs under `~/.pi/pi-hub/profiles/<name>/`. Adds `pipi profile …`, `pipi use` / `pipi unuse`, and the `pipi --as <name>` flag. The wrapper resolves the profile, sets `PI_CODING_AGENT_DIR` in-process (read lazily by `getAgentDir()`), and delegates to the original `main`.
18
+ 1. **Hub profiles** (`src/coding-agent/main.ts` wrapper, backed by `@earendil-works/pi-hub` = [`../hub`](../hub)) — named pi profiles (provider/models/thinking/token/base URL) stored in `~/.pi/profiles.json`, materialized into isolated agent dirs under `~/.pi/pi-hub/profiles/<name>/`. Adds `pipi profile …`, `pipi use` / `pipi unuse`, and the `pipi --as <name>` flag. The wrapper resolves the profile, sets `PI_CODING_AGENT_DIR` in-process (read lazily by `getAgentDir()`), and delegates to the original `main`. `pipi profile add <name> -p <provider>` with no credential invokes the provider's interactive login (OAuth page / API-key setup) against the profile dir via hub's injected `login` hook, using `loginProvider` from [`../plus`](../plus)`/src/auth/login.ts`; the TUI `/login` is disabled by core redirect wrappers in favour of this flow.
19
19
  2. **Shell completion** (`src/completion/`) — `pipi completion <bash|zsh>` prints a completion script covering the whole CLI: hub subcommands (with dynamic profile/model names from `~/.pi/profiles.json`) plus pi's native commands and flags.
20
20
  3. **Usage print** (`src/coding-agent/cli/args.ts` wrapper) — `pipi --help` gains a "Profile commands (pi-plus)" section.
21
21
  4. **Welcome banner** (`src/coding-agent/ui/banner.ts`) — pipi's TUI startup header is a CC-style banner with a block-character π+ mark: condensed logo by default, boxed variant with Extensions/Skills feeds, compact/plain degradation on narrow terminals, `resumed <id> · <title>` on resume/fork.
@@ -23,7 +23,6 @@ The context-detection/compaction/reasoning overrides and the seven non-TUI exten
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 via the shared core's `context/threshold-setting.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. **`/cd` working-directory switch** (`src/extensions/cd/`) — `/cd <dir>` relocates the session to a different working directory (same conversation, re-bound project context).
27
26
 
28
27
  The CLI identifies as **`pipi`** (pi-plus) in CLI text via the shared config wrapper's
29
28
  `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.18",
3
+ "version": "0.1.20",
4
4
  "description": "pi coding agent with the pi-plus override layer (pipi CLI)",
5
5
  "type": "module",
6
6
  "piConfig": {