paseo-room 0.17.0 → 0.19.0
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/README.md +41 -21
- package/dist/index.js +234 -86
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ interactive stdin/stdout/stderr, and targets exactly one selected agent and role
|
|
|
54
54
|
| `--room-home <path>` | `~/.paseo-room` | Where role homes are written. |
|
|
55
55
|
| `--codex-home <path>` | `~/.codex` | Source Codex configuration. |
|
|
56
56
|
| `--claude-home <path>` | `~/.claude` | Source Claude Code configuration. |
|
|
57
|
-
| `--pi-home <path>` | `~/.pi/agent` | Source Pi configuration and
|
|
57
|
+
| `--pi-home <path>` | `~/.pi/agent` | Source Pi configuration and the packages `--pi-extension` selects. |
|
|
58
58
|
| `--codex-bin`, `--claude-bin`, `--pi-bin`, `--paseo-bin` | found on `PATH` | Executable overrides. |
|
|
59
59
|
|
|
60
60
|
Environment equivalents: `PASEO_ROOM_HOME`, `CODEX_HOME`, `CLAUDE_CONFIG_DIR`, `PASEO_HOME`,
|
|
@@ -71,7 +71,9 @@ starts, its exit code is preserved; a signal is returned using the conventional
|
|
|
71
71
|
|
|
72
72
|
- Node 22 or newer, macOS or Linux.
|
|
73
73
|
- A running Paseo daemon with CLI and daemon on the same version. Codex requires
|
|
74
|
-
**0.8.0-beta.1 or newer**; any selection containing Claude
|
|
74
|
+
**0.8.0-beta.1 or newer**; any selection containing Claude requires **0.8.0 or newer**, and
|
|
75
|
+
any selection containing Pi **0.11.1 or newer**, the first Paseo that hands a Pi seat its tools
|
|
76
|
+
through Pi's built-in MCP extension.
|
|
75
77
|
Claude also requires Paseo plugins to be enabled explicitly: the generated trusted server plugin
|
|
76
78
|
is the strong contract carrier, and `paseo-room` never enables plugins for you. The plugin
|
|
77
79
|
requires Paseo `>=0.8.0` and has no upper bound. `paseo-room` checks compatibility before
|
|
@@ -84,9 +86,9 @@ starts, its exit code is preserved; a signal is returned using the conventional
|
|
|
84
86
|
pins both `CLAUDE_CONFIG_DIR` and `CLAUDE_SECURESTORAGE_CONFIG_DIR` per role. It does not
|
|
85
87
|
query Keychain state, and reports older-runtime Keychain isolation as unverifiable. See
|
|
86
88
|
Anthropic's [credential-management reference](https://code.claude.com/docs/en/authentication#credential-management).
|
|
87
|
-
- An initialised Pi home (`~/.pi/agent`) and
|
|
88
|
-
`pi-mcp-adapter`
|
|
89
|
-
|
|
89
|
+
- An initialised Pi home (`~/.pi/agent`) and Pi 1.1.0 or newer. Seats use Pi's built-in `mcp`
|
|
90
|
+
and `codemode` extensions; `pi-mcp-adapter` is not needed, and the room never loads it. The
|
|
91
|
+
room never installs or upgrades Pi.
|
|
90
92
|
|
|
91
93
|
## What gets created
|
|
92
94
|
|
|
@@ -172,10 +174,9 @@ configuration.
|
|
|
172
174
|
Pi role homes deliberately do not link `extensions`, `npm`, `git`, `trust.json`, runtime
|
|
173
175
|
caches or session state. Their copied `settings.json` removes `packages` and `extensions`,
|
|
174
176
|
so startup cannot install configured packages or discover unrelated configured extensions.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
MCP config discovery.
|
|
177
|
+
Pi's built-in MCP extension reads only the role home's linked `mcp.json` and, for a trusted
|
|
178
|
+
project, its `.pi/mcp.json`; seats run with `--no-approve`, so no project is trusted and the
|
|
179
|
+
role home's file is the only configuration source besides the servers Paseo registers.
|
|
179
180
|
|
|
180
181
|
### Role authentication diagnostics
|
|
181
182
|
|
|
@@ -215,7 +216,7 @@ a minimal interactive login session in that role's home, isolated from the calle
|
|
|
215
216
|
`--no-extensions --no-approve --append-system-prompt ''` and visibly asks you to run `/login`.
|
|
216
217
|
The explicit empty append override suppresses discovery of the generated role
|
|
217
218
|
`APPEND_SYSTEM.md`, including its runtime capsule and role instructions. This direct launch
|
|
218
|
-
does not load
|
|
219
|
+
does not load Pi's MCP extension, Paseo's integration extension, or the room-equivalent provider
|
|
219
220
|
argv. No login path reads, copies, links, replaces, validates, or deletes a credential store.
|
|
220
221
|
|
|
221
222
|
Codex diagnostics recognize an explicit `cli_auth_credentials_store` of `file`, `ephemeral`,
|
|
@@ -285,21 +286,40 @@ but what the model actually reads is not proven, and `CLAUDE.md` is what covers
|
|
|
285
286
|
Pi providers use a strict command tail:
|
|
286
287
|
|
|
287
288
|
```text
|
|
288
|
-
--no-extensions --extension
|
|
289
|
+
--no-extensions --extension builtin:mcp --extension builtin:codemode
|
|
290
|
+
[--extension <canonical entry of each selected package>] --no-approve
|
|
289
291
|
--append-system-prompt <role APPEND_SYSTEM.md>
|
|
290
292
|
```
|
|
291
293
|
|
|
294
|
+
Each Pi provider also pins `PASEO_ROOM_ROLE=<role>`, so an extension can tell it runs as a
|
|
295
|
+
seat. To load more of your own installed Pi packages in the seats, select them at setup:
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
paseo-room setup --agent pi --pi-extension pi-blackbytes --pi-extension pi-provider-kiro=supervisor,lead,peer --apply
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Roles default to `supervisor,lead`; Peer gets an extension only when named, with a warning.
|
|
302
|
+
Packages load only from your Pi home's `npm/node_modules`, and every declared entry must
|
|
303
|
+
resolve inside the package; package prompts, skills and themes are not loaded. A package that is not
|
|
304
|
+
installed is a warning with its `pi install npm:<package>` command and the seat starts without
|
|
305
|
+
it; the room never installs one. Selecting a package states that it opens no second
|
|
306
|
+
multi-agent path in a seat (`pi-blackbytes` 3.1.0 turns its sub-agents off when
|
|
307
|
+
`PASEO_ROOM_ROLE` is set). The choice is recorded in `room.json`; a later `setup` without the
|
|
308
|
+
flag removes the extensions and warns which ones. See
|
|
309
|
+
[docs/design/pi-seat-extensions.md](docs/design/pi-seat-extensions.md).
|
|
310
|
+
|
|
292
311
|
This is Paseo's core `pi` provider, not an OMP provider or compatibility layer.
|
|
293
312
|
Paseo appends and owns its own generated temporary integration extension; `paseo-room` does
|
|
294
|
-
not resolve, create or include it.
|
|
295
|
-
|
|
296
|
-
`
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
313
|
+
not resolve, create or include it. Paseo registers the seat's MCP servers through that extension
|
|
314
|
+
with `pi.registerMcpServer`, but only after it finds a `/mcp` command from `builtin:mcp`. Their
|
|
315
|
+
tools default to `codemode` exposure, which is why `builtin:codemode` loads too: without it a
|
|
316
|
+
seat would hold Paseo's tools and have no way to call them. Before planning any writes, the room
|
|
317
|
+
runs one bounded offline Pi RPC `get_commands` probe that loads the same built-in extensions and
|
|
318
|
+
every selected extension, with `PASEO_ROOM_ROLE=lead`, `HOME` set to a fresh temporary working
|
|
319
|
+
directory that is removed afterwards, and `PI_CODING_AGENT_DIR` an empty directory inside it, so
|
|
320
|
+
no operator or caller-project MCP configuration is read. The correlated response must attribute
|
|
321
|
+
exactly one `/mcp` to `source: "extension"` at `builtin:mcp`; anything else fails closed. The
|
|
322
|
+
probe and setup do not write the operator or planned role homes.
|
|
303
323
|
|
|
304
324
|
Each seat combines generated agent configuration with Paseo provider pins. Provider fields are
|
|
305
325
|
still required where Paseo launch state outranks the agent's own configuration:
|
|
@@ -312,7 +332,7 @@ still required where Paseo launch state outranks the agent's own configuration:
|
|
|
312
332
|
| `disableWorkflows: true` + `CLAUDE_CODE_DISABLE_WORKFLOWS=1` | Claude | Disables dynamic workflows through every entry point, beyond denying the `Workflow` tool. |
|
|
313
333
|
| `crossSessionInbound: "refuse"` | Claude | Prevents another Claude session from injecting a turn into a room seat. |
|
|
314
334
|
| `disableClaudeAiConnectors: true` + `ENABLE_CLAUDEAI_MCP_SERVERS=0` | Claude | Keeps the signed-in account's claude.ai connectors (Canva, Claude Docs, …) out of every seat. They bypass the room's MCP check and reach Peer, and one that needs authorising makes each seat ask you to connect it. Your own Claude Code sessions keep them. |
|
|
315
|
-
| strict argv +
|
|
335
|
+
| strict argv + additive runtime capsule | Pi | Disables extension discovery and project trust, so Pi's built-in MCP reads only the role-home `mcp.json`; forbids a second agent control plane without claiming sandboxing. |
|
|
316
336
|
| `paseoTools: {enabled}` | all | Room tools for Supervisor and Lead, never for Peer. |
|
|
317
337
|
|
|
318
338
|
`verify` compares each provider's `command`, `env`, `paseoTools` and pins against what the
|