refactor: split pi-generic config into pi-toolkit repo
Parallel to the opencode-toolkit split earlier today. Pi's own config (keybindings, shell env loader, settings template) moves to a new sibling repo so opencode-devbox's mempalace opt-out can build slim containers that include pi without dragging in chromadb + embedding models (~300 MB). What moved to pi-toolkit (https://gitea.jordbo.se/joakimp/pi-toolkit): - extensions/pi/keybindings.json (mosh/tmux newline fix) - extensions/pi/pi-env.zsh (sources ~/.config/pi/.env) - extensions/pi/settings.example.json (Bedrock template) - install.sh::install_pi_keybindings (symlink step) - install.sh::install_pi_env_loader (cp step + bash fallback) - install.sh::check_pi_settings (probe) - install.sh::check_aws_env (probe) What stays here (this is the pi\u2194mempalace bridge, mempalace-side): - extensions/pi/mempalace.ts (the MCP extension) - install.sh::install_pi_extension (symlink step) - NEW: install.sh::check_pi_toolkit (probe: warns if pi is installed but pi-toolkit's artifacts are missing, with git-clone pointer) install.sh shrank from 520 to 403 lines. Uninstall mirror correctly does NOT touch pi-toolkit-owned files (explicit comment). Docs updated: - extensions/pi/README.md: rewritten as 'pi\u2194MemPalace MCP bridge', recipe becomes 'Deploying pi with mempalace' (pi-toolkit step 3, this repo step 5). - AGENTS.md: Structure block + 'What install.sh does' section reflect the narrower scope and list the four things that moved out. - README.md: repo-contents line + Setup section's deploy summary. Verified on tor-ms22: full install\u2192uninstall\u2192reinstall lifecycle clean. After mempalace-toolkit uninstall, pi-toolkit artifacts (~/.pi/agent/keybindings.json, ~/.oh-my-zsh/custom/pi-env.zsh) remain intact \u2014 correctly untouched. check_pi_toolkit probe fires green when both exist.
This commit is contained in:
@@ -19,12 +19,9 @@ bin/
|
||||
mempalace-pi-session # pi session → MemPalace bridge (bash + inline Python)
|
||||
contrib/ # systemd / launchd / cron templates for scheduling feeders
|
||||
extensions/
|
||||
pi/ # pi coding-agent bring-up: MCP bridge, keybindings, settings template
|
||||
pi/ # pi↔mempalace MCP bridge (bridge-only; pi's own config is in the pi-toolkit repo)
|
||||
mempalace.ts # Symlinked into ~/.pi/agent/extensions/ (MCP <→ pi glue)
|
||||
keybindings.json # Symlinked into ~/.pi/agent/ (mosh/tmux newline fix)
|
||||
pi-env.zsh # Copied into ~/.oh-my-zsh/custom/ or sourced from .bashrc (loads ~/.config/pi/.env)
|
||||
settings.example.json # Template; user copies + edits (pi rewrites settings.json at runtime)
|
||||
README.md # Extension internals, schema-passthrough gotcha, env setup
|
||||
README.md # Bridge internals, Type.Unsafe gotcha, pi+mempalace deploy recipe
|
||||
```
|
||||
|
||||
## What `install.sh` does
|
||||
@@ -37,19 +34,25 @@ Idempotent, safe to re-run. Always:
|
||||
Gated on pi being installed (`~/.pi/agent/extensions/` exists):
|
||||
|
||||
- Symlinks `extensions/pi/mempalace.ts` into `~/.pi/agent/extensions/`. Backs up any real file in the way.
|
||||
- Symlinks `extensions/pi/keybindings.json` into `~/.pi/agent/`. Backs up any real file in the way.
|
||||
- `settings.example.json` is **not** symlinked — pi rewrites `settings.json` at runtime, so we'd dirty the repo. Installer warns if `settings.json` is missing and prints the `cp` command.
|
||||
|
||||
Probes (never halt, `warn` + `return 0`):
|
||||
|
||||
- `~/.local/bin` is on `$PATH`.
|
||||
- `~/.config/opencode/instructions/mempalace.md` exists (opencode wake-up protocol).
|
||||
- `mempalace` is registered as an MCP server in `~/.config/opencode/opencode.json`.
|
||||
- `~/.pi/agent/settings.json` exists (if pi is installed).
|
||||
- `AWS_PROFILE`/`AWS_REGION` set, but only if `settings.json` exists *and* selects `amazon-bedrock`. Silent otherwise.
|
||||
- If pi is installed: pi-toolkit artifacts (`~/.pi/agent/keybindings.json` symlink, `~/.oh-my-zsh/custom/pi-env.zsh`) exist. Warns with a `git clone ssh://...pi-toolkit.git` pointer if missing.
|
||||
|
||||
All non-destructive: if something is already in place and points into this repo, prints "already linked" and moves on. If a non-symlink real file is in the way, backs it up with a timestamp.
|
||||
|
||||
**Not handled here any more** (split to [`pi-toolkit`](https://gitea.jordbo.se/joakimp/pi-toolkit) on 2026-05-05):
|
||||
|
||||
- `keybindings.json` symlink into `~/.pi/agent/`
|
||||
- `pi-env.zsh` cp into `~/.oh-my-zsh/custom/`
|
||||
- `settings.example.json` template + `check_pi_settings` probe
|
||||
- `check_aws_env` probe
|
||||
|
||||
Those are pi-generic concerns. This toolkit installs **only** the pi↔mempalace MCP bridge on top of whatever pi-toolkit set up.
|
||||
|
||||
|
||||
## Conventions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user