paseo-room 0.1.0 → 0.3.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 +50 -33
- package/dist/index.js +256 -45
- package/dist/index.js.map +1 -1
- package/dist/plugin-assets/index.server.ts +50 -0
- package/dist/plugin-assets/package.json +5 -0
- package/dist/plugin-assets/paseo-plugin.json +4 -0
- package/dist/plugin-assets/server/carrier.ts +41 -0
- package/dist/plugin-assets/server/contract.ts +3 -0
- package/dist/plugin-assets/tsconfig.json +10 -0
- package/dist/prompts/contract/lead/complete-peer-brief.md +24 -2
- package/dist/prompts/contract/lead/peer-seat-lifecycle.md +20 -11
- package/dist/prompts/contract/peer/assignment-scope.md +10 -0
- package/dist/prompts/contract/peer/bounded-outcome.md +8 -0
- package/dist/prompts/contract/peer/no-orchestration.md +2 -2
- package/dist/prompts/contract/peer/reproducible-handoff.md +15 -3
- package/dist/prompts/contract/shared-lead-peer/challenge-signals.md +1 -1
- package/dist/prompts/contract/{shared → shared-supervisor-lead}/workspace-protocol-precedence.md +7 -4
- package/dist/prompts/documents/peer.md +2 -1
- package/dist/prompts/documents/workspace.md +3 -2
- package/dist/prompts/pi/runtime.md +6 -2
- package/dist/prompts/workspace/review.md +2 -2
- package/dist/prompts/workspace/verification.md +5 -3
- package/package.json +2 -2
- package/dist/prompts/contract/peer/writing-and-review-scope.md +0 -5
package/README.md
CHANGED
|
@@ -64,9 +64,12 @@ starts, its exit code is preserved; a signal is returned using the conventional
|
|
|
64
64
|
## Requirements
|
|
65
65
|
|
|
66
66
|
- Node 22 or newer, macOS or Linux.
|
|
67
|
-
- A running Paseo daemon with CLI and daemon on the same version. Codex
|
|
68
|
-
**0.8.0-beta.1 or newer**; any selection containing Pi requires **0.8.0 or newer**.
|
|
69
|
-
|
|
67
|
+
- A running Paseo daemon with CLI and daemon on the same version. Codex requires
|
|
68
|
+
**0.8.0-beta.1 or newer**; any selection containing Claude or Pi requires **0.8.0 or newer**.
|
|
69
|
+
Claude also requires Paseo plugins to be enabled explicitly: the generated trusted server plugin
|
|
70
|
+
is the strong contract carrier, and `paseo-room` never enables plugins for you. The plugin is
|
|
71
|
+
version-bounded to `>=0.8.0 <0.9.0`. `paseo-room` checks compatibility before touching anything,
|
|
72
|
+
and never installs or upgrades Paseo.
|
|
70
73
|
- An initialised Codex home (`~/.codex/config.toml`) and/or Claude Code home (`~/.claude`).
|
|
71
74
|
Codex must be new enough for `codex debug models` to print its JSON model catalog: the room
|
|
72
75
|
seats Codex only if it can generate the scrubbed catalog copy.
|
|
@@ -85,7 +88,10 @@ starts, its exit code is preserved; a signal is returned using the conventional
|
|
|
85
88
|
~/.paseo-room/
|
|
86
89
|
room.json # what this CLI created; verify and remove read it
|
|
87
90
|
AUTHENTICATION.md # exact per-role login commands; contains no secrets
|
|
88
|
-
room/WORKSPACE_PROTOCOL.md # the default protocol
|
|
91
|
+
room/WORKSPACE_PROTOCOL.md # the default protocol Lead and Supervisor carry, as one readable file
|
|
92
|
+
plugin/ # Claude only: trusted creation-time system-prompt append carrier
|
|
93
|
+
paseo-plugin.json # accepts Paseo >=0.8.0 <0.9.0
|
|
94
|
+
index.server.ts, server/ # exact provider map + generated role contracts
|
|
89
95
|
roles/codex/<role>/
|
|
90
96
|
config.toml # your config.toml + the room's overrides
|
|
91
97
|
role-instructions.md # readable copy of what this seat was told
|
|
@@ -237,18 +243,20 @@ holding older contract text.
|
|
|
237
243
|
|
|
238
244
|
**The room never replaces an agent's base prompt.** Codex's `model_instructions_file`,
|
|
239
245
|
Claude's `--system-prompt` and Pi's `SYSTEM.md` / `--system-prompt` all *replace* the vendor
|
|
240
|
-
system prompt; using them would mean
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
Claude
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
246
|
+
system prompt; using them would mean vendoring a full copy of that prompt and re-vendoring it
|
|
247
|
+
on every agent release. The role contract is additive instead: `developer_instructions` for
|
|
248
|
+
Codex, a room-owned Paseo creation hook that writes `config.systemPrompt` for Claude, and the
|
|
249
|
+
generated Pi `APPEND_SYSTEM.md` passed with `--append-system-prompt` for Pi. Pi keeps normal
|
|
250
|
+
project `AGENTS.md` / `CLAUDE.md` context loading.
|
|
251
|
+
|
|
252
|
+
For Claude, Paseo maps `config.systemPrompt` to the Claude Code preset's SDK `append` field,
|
|
253
|
+
so the native prompt remains intact while the generated role contract enters the instruction
|
|
254
|
+
layer. The trusted plugin targets only exact `claude-supervisor`, `claude-lead`, and
|
|
255
|
+
`claude-peer` room providers and skips internal agents; existing caller prompt text is
|
|
256
|
+
preserved. `CLAUDE.md` remains unchanged as a degraded and resume fallback. `verify` fails if
|
|
257
|
+
the plugin is absent, disabled, failed, registered from another path, or drifted, because a
|
|
258
|
+
silently missing carrier is not a guarantee. The hook runs for newly created sessions;
|
|
259
|
+
recreate an existing Claude session after setup or an update.
|
|
252
260
|
|
|
253
261
|
Pi providers use a strict command tail:
|
|
254
262
|
|
|
@@ -340,7 +348,8 @@ Supervisor reads the exact current `room-<agent>-lead` profile from `list_profil
|
|
|
340
348
|
materializes every field it defines (agent creation takes no profile id), uses `list_agents(cwd)`
|
|
341
349
|
only to find candidates, then inspects each one's full status for the profile's provider, the
|
|
342
350
|
intended workspace and its mode. For `room-<agent>-peer`, Lead copies provider, mode and
|
|
343
|
-
features exactly,
|
|
351
|
+
features exactly, keeps the profile's model unless the root workspace protocol routes models,
|
|
352
|
+
chooses the thinking effort for the brief, and additionally
|
|
344
353
|
requires the live seat's daemon-added `paseo.parent-agent-id` to name itself. Ownership must be
|
|
345
354
|
corroborated by parentage or known Human-opened history; an ambiguous candidate goes to
|
|
346
355
|
duplicate recovery and Human escalation instead of being adopted.
|
|
@@ -441,10 +450,12 @@ The exact model-facing wording every seat reads lives in the canonical Markdown
|
|
|
441
450
|
that settles it rather than pre-solving the work; any plan or file list in it is provisional.
|
|
442
451
|
One moving write scope has exactly one owner, and at most one Peer is writable at a time.
|
|
443
452
|
Room tools: on.
|
|
444
|
-
- **Peer** owns one bounded
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
and
|
|
453
|
+
- **Peer** owns one bounded assignment — writable inside an assigned scope, or read-only
|
|
454
|
+
against a named candidate, question or area — under exactly one disposition Lead names in the
|
|
455
|
+
brief (Engineer, Architect, Reviewer or Scout), forms its own technical position from the code
|
|
456
|
+
and its own verification, may challenge a failed premise with
|
|
457
|
+
`REOPEN_REQUEST` / `DEPENDENCY_REQUEST` / `BLOCKED`, hands back reproducible evidence either
|
|
458
|
+
way, and never accepts its own difficult change. Room tools: off.
|
|
448
459
|
|
|
449
460
|
Human keeps product goals, priority, material cost, external effects and irreversible risk.
|
|
450
461
|
|
|
@@ -465,18 +476,24 @@ Two further limits are deliberately conservative. **One writable Peer per projec
|
|
|
465
476
|
per moving scope: the room gives you no writer isolation, so separate scopes are not evidence
|
|
466
477
|
of separate working trees, and no workspace protocol relaxes the limit. Concurrent writable
|
|
467
478
|
Peers in isolated worktrees are a deferred decision, not an oversight. And a seat's **model and
|
|
468
|
-
reasoning effort are
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
479
|
+
reasoning effort are not one knob**: the model stays the profile's default unless the root
|
|
480
|
+
`WORKSPACE_PROTOCOL.md` explicitly supplies model routing, while the thinking effort is Lead's
|
|
481
|
+
per-brief choice on task risk, uncertainty, context size and verification burden — lowest that
|
|
482
|
+
reliably answers the task, higher for architecture-sensitive or weakly observable work, only an
|
|
483
|
+
option the live Paseo and provider context establishes as supported, and never up to a tier
|
|
484
|
+
advertising automatic delegation. Provider, mode, workspace, parent and feature values are
|
|
485
|
+
eligibility evidence and copied exactly.
|
|
486
|
+
|
|
487
|
+
Every seat that owns workflow also carries a **default workspace protocol** — topology by
|
|
488
|
+
difficulty, verification, review, repository conventions — so a project has that layer without
|
|
489
|
+
doing anything. It goes to Lead and Supervisor, not to Peer: Lead reads the protocol and quotes
|
|
490
|
+
what bears on an assignment into the brief, including the exact verification command, so a Peer
|
|
491
|
+
spends its attention on one brief rather than on deciding which repository rules apply. A
|
|
492
|
+
repository that needs different rules writes `WORKSPACE_PROTOCOL.md` at its root, which wins
|
|
493
|
+
wherever it speaks while the default holds wherever it is silent — the root, because it is
|
|
494
|
+
agent guidance rather than project documentation. `~/.paseo-room/room/WORKSPACE_PROTOCOL.md` is
|
|
495
|
+
the whole default as one file, so you can read what is in force and start from it. The CLI
|
|
496
|
+
never writes into a repository.
|
|
480
497
|
|
|
481
498
|
## Working the room
|
|
482
499
|
|