paseo-room 0.5.0 → 0.6.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.
Files changed (54) hide show
  1. package/README.md +56 -3
  2. package/dist/index.js +1745 -197
  3. package/dist/index.js.map +1 -1
  4. package/dist/plugin-assets/paseo-plugin.json +1 -1
  5. package/dist/prompts/contract/peer.md +12 -0
  6. package/dist/runtime-plugin/client/data.ts +67 -0
  7. package/dist/runtime-plugin/client/views.tsx +176 -0
  8. package/dist/runtime-plugin/index.client.tsx +21 -0
  9. package/dist/runtime-plugin/index.server.ts +53 -0
  10. package/dist/runtime-plugin/package.json +5 -0
  11. package/dist/runtime-plugin/paseo-plugin.json +4 -0
  12. package/dist/runtime-plugin/server/bridge/bridge.mjs +146 -0
  13. package/dist/runtime-plugin/server/brief.ts +39 -0
  14. package/dist/runtime-plugin/server/capabilities.ts +45 -0
  15. package/dist/runtime-plugin/server/context.ts +80 -0
  16. package/dist/runtime-plugin/server/contracts/actions.ts +39 -0
  17. package/dist/runtime-plugin/server/contracts/assignment.ts +51 -0
  18. package/dist/runtime-plugin/server/contracts/envelope.ts +26 -0
  19. package/dist/runtime-plugin/server/contracts/peer.ts +112 -0
  20. package/dist/runtime-plugin/server/controller.ts +558 -0
  21. package/dist/runtime-plugin/server/correlations.ts +157 -0
  22. package/dist/runtime-plugin/server/domain/acceptance.ts +69 -0
  23. package/dist/runtime-plugin/server/domain/authorize.ts +37 -0
  24. package/dist/runtime-plugin/server/domain/receipts.ts +73 -0
  25. package/dist/runtime-plugin/server/domain/state.ts +413 -0
  26. package/dist/runtime-plugin/server/domain/validate.ts +69 -0
  27. package/dist/runtime-plugin/server/domain/views.ts +233 -0
  28. package/dist/runtime-plugin/server/events/schema.ts +214 -0
  29. package/dist/runtime-plugin/server/gate.ts +233 -0
  30. package/dist/runtime-plugin/server/generated/location.ts +11 -0
  31. package/dist/runtime-plugin/server/git.ts +158 -0
  32. package/dist/runtime-plugin/server/handlers/actions.ts +130 -0
  33. package/dist/runtime-plugin/server/handlers/peer.ts +183 -0
  34. package/dist/runtime-plugin/server/handlers/turns.ts +113 -0
  35. package/dist/runtime-plugin/server/hooks.ts +73 -0
  36. package/dist/runtime-plugin/server/lifecycle.ts +60 -0
  37. package/dist/runtime-plugin/server/notices.ts +103 -0
  38. package/dist/runtime-plugin/server/ownership.ts +63 -0
  39. package/dist/runtime-plugin/server/paseo-port.ts +194 -0
  40. package/dist/runtime-plugin/server/recognition.ts +80 -0
  41. package/dist/runtime-plugin/server/recovery.ts +166 -0
  42. package/dist/runtime-plugin/server/rpc.ts +169 -0
  43. package/dist/runtime-plugin/server/spool.ts +143 -0
  44. package/dist/runtime-plugin/server/store/project.ts +228 -0
  45. package/dist/runtime-plugin/server/store/publish.ts +142 -0
  46. package/dist/runtime-plugin/server/tools.ts +91 -0
  47. package/dist/runtime-plugin/shared/identity.ts +16 -0
  48. package/dist/runtime-plugin/shared/limits.ts +40 -0
  49. package/dist/runtime-plugin/shared/manifest.ts +51 -0
  50. package/dist/runtime-plugin/shared/policy.ts +61 -0
  51. package/dist/runtime-plugin/shared/rpc-contracts.ts +66 -0
  52. package/dist/runtime-plugin/shared/rpc.ts +34 -0
  53. package/dist/runtime-plugin/tsconfig.json +22 -0
  54. package/package.json +9 -4
package/README.md CHANGED
@@ -30,9 +30,11 @@ npx paseo-room auth login codex lead # interactive login for exact
30
30
  npx paseo-room auth login claude peer
31
31
  npx paseo-room auth login pi supervisor # minimal Pi login session; run /login, then exit
32
32
  npx paseo-room remove --apply # delete ~/.paseo-room (including role credentials) and providers
33
+ npx paseo-room setup --runtime --apply # opt in to runtime coordination (preview)
34
+ npx paseo-room export --apply # copy runtime state out for review; no daemon needed
33
35
  ```
34
36
 
35
- `setup` and `remove` are dry runs unless you pass `--apply`. Running with no arguments in a
37
+ `setup`, `remove` and `export` are dry runs unless you pass `--apply`. Running with no arguments in a
36
38
  terminal starts a short wizard: pick an action, pick the agents, review the plan, confirm.
37
39
  Setup and the wizard never start login. `auth login` is a separate explicit action, requires
38
40
  interactive stdin/stdout/stderr, and targets exactly one selected agent and role; it has no
@@ -46,6 +48,9 @@ interactive stdin/stdout/stderr, and targets exactly one selected agent and role
46
48
  | `--apply` | off | Actually write setup/remove changes; `auth login` does not use it. |
47
49
  | `--json` | off | One machine-readable document instead of text. |
48
50
  | `--no-claude-memory-contract` | off | Omit the role contract from Claude role `CLAUDE.md` files, leaving the room plugin as the only Claude carrier. Your global memory is still carried. `setup` only. |
51
+ | `--runtime` | off | Opt in to [runtime coordination](#runtime-coordination-preview) (preview). A per-run `setup` choice recorded in the room marker; running setup without it deselects runtime. |
52
+ | `--out <dir>` | a new directory under `~/.paseo-room/runtime/v1/exports` | `export` only: where to write the export. Must be new or empty. |
53
+ | `--include-gate-output` | off | `export` only: also copy the bounded, best-effort-masked gate output tails. |
49
54
  | `--room-home <path>` | `~/.paseo-room` | Where role homes are written. |
50
55
  | `--codex-home <path>` | `~/.codex` | Source Codex configuration. |
51
56
  | `--claude-home <path>` | `~/.claude` | Source Claude Code configuration. |
@@ -69,7 +74,7 @@ starts, its exit code is preserved; a signal is returned using the conventional
69
74
  **0.8.0-beta.1 or newer**; any selection containing Claude or Pi requires **0.8.0 or newer**.
70
75
  Claude also requires Paseo plugins to be enabled explicitly: the generated trusted server plugin
71
76
  is the strong contract carrier, and `paseo-room` never enables plugins for you. The plugin is
72
- version-bounded to `>=0.8.0 <0.9.0`. `paseo-room` checks compatibility before touching anything,
77
+ version-bounded to `>=0.8.0 <0.10.0`. `paseo-room` checks compatibility before touching anything,
73
78
  and never installs or upgrades Paseo.
74
79
  - An initialised Codex home (`~/.codex/config.toml`) and/or Claude Code home (`~/.claude`).
75
80
  Codex must be new enough for `codex debug models` to print its JSON model catalog: the room
@@ -93,7 +98,7 @@ starts, its exit code is preserved; a signal is returned using the conventional
93
98
  SKILL.md, references/ # procedure plus a scaffold loaded only when the skill runs
94
99
  room/skill-projections/<agent>/lead/ # exact Lead skill aggregate for each seated agent
95
100
  plugin/ # Claude only: trusted creation-time system-prompt append carrier
96
- paseo-plugin.json # accepts Paseo >=0.8.0 <0.9.0
101
+ paseo-plugin.json # accepts Paseo >=0.8.0 <0.10.0
97
102
  index.server.ts, server/ # exact provider map + generated role contracts
98
103
  roles/codex/<role>/
99
104
  config.toml # your config.toml + the room's overrides
@@ -591,6 +596,50 @@ reading a candidate is more independent than a fresh session of the family that
591
596
  one project on one family and keep the other for the review seat. Ask the existing Lead for
592
597
  that review; Supervisor must route the request to Lead rather than opening a fresh Lead.
593
598
 
599
+ ## Runtime coordination (preview)
600
+
601
+ An opt-in second plugin, `paseo-room-runtime`, gives the room a durable record of delegated work:
602
+ typed assignments, one writer at a time, Peer questions and handoffs, commit-bound candidates, an
603
+ optional independent gate rerun and Lead's acceptance — kept across daemon and plugin restarts.
604
+ It is separate from the Claude contract carrier; a runtime fault never touches that plugin.
605
+
606
+ ```bash
607
+ npx paseo-room setup --agent codex --agent claude --runtime # dry run first
608
+ npx paseo-room setup --agent codex --agent claude --runtime --apply
609
+ npx paseo-room verify
610
+ ```
611
+
612
+ - **Trust.** Like the carrier, the runtime is trusted, unsandboxed code running in your daemon.
613
+ Enable Paseo plugins yourself; `paseo-room` never does. It is not an operating-system sandbox and
614
+ cannot stop a process running as your user.
615
+ - **Range.** Runtime requires Paseo `>=0.8.0 <0.10.0`. `0.8.0` and `0.9.1` are both live-qualified
616
+ points, so a daemon outside that range is refused for runtime while the baseline room keeps
617
+ working.
618
+ - **Lead** gains room tools such as `assignment_create`, `assignment_dispatch`, `assignment_answer`,
619
+ `assignment_accept` and `gate_run`. **Supervisor** gains `room_status`, `runtime_findings` and
620
+ `message_lead`, and cannot change an assignment.
621
+ - **A runtime-dispatched Peer** gets exactly two tools, `ask` and `handoff`, for its own assignment,
622
+ and still no Paseo room tools. A report exists only once one of those calls is accepted; its
623
+ final message is never read as a report. Claude asks for permission before a Peer's first call
624
+ to `mcp__paseo_room__ask` or `mcp__paseo_room__handoff`: approve it in Paseo, since the runtime
625
+ never answers a permission for a seat. Codex and Pi Peers do not ask.
626
+ - **A Peer that Lead opens directly** with Paseo's own tools is not runtime-managed: it gets no
627
+ reporting tools and appears in no assignment. That is allowed; it is simply outside the record.
628
+ - **Writable work** starts from a clean workspace at an exact base commit and is handed back as an
629
+ immutable commit. The runtime reads the commit and changed paths itself, never merges, resets,
630
+ cleans or stashes, and releases a writer only after Paseo proves the Peer archived.
631
+ - **State** lives under `~/.paseo-room/runtime/v1` as append-only event files. Setup never edits it.
632
+ The **Room runtime** sidebar item and workspace panel show projects, assignments, writer
633
+ ownership and findings, each labelled with how it is known (enforced, detected, procedural,
634
+ unverifiable).
635
+
636
+ To stop using it, finish, close or abandon the recorded work, then run setup **without**
637
+ `--runtime`. Setup refuses while anything is still active or uncertain, and keeps the recorded
638
+ state once it proceeds. `npx paseo-room export --apply` copies that state out; the export omits gate
639
+ output unless you add `--include-gate-output`, and briefs or commands written by a seat cannot be
640
+ proven secret-free. `remove --apply` warns about runtime history and then deletes it with the rest
641
+ of the room.
642
+
594
643
  ## Documentation
595
644
 
596
645
  - [docs/demonthorn-agent-orchestration-deep-dive.md](docs/demonthorn-agent-orchestration-deep-dive.md)
@@ -599,6 +648,10 @@ that review; Supervisor must route the request to Lead rather than opening a fre
599
648
  - [docs/design.md](docs/design.md) — how and why this tool implements that model, and what
600
649
  it deliberately does not do. Read this before changing an override.
601
650
  - [AGENTS.md](AGENTS.md) — working rules for contributors and coding agents.
651
+ - [docs/product/runtime-coordination-prd.md](docs/product/runtime-coordination-prd.md),
652
+ [docs/design/runtime-coordination.md](docs/design/runtime-coordination.md) and
653
+ [docs/plans/runtime-coordination-phase1-implementation-plan.md](docs/plans/runtime-coordination-phase1-implementation-plan.md)
654
+ — the runtime coordination preview: requirements, technical design and Phase 1 plan.
602
655
  - [docs/product/paseo-room-prd.md](docs/product/paseo-room-prd.md) — the original PRD, kept
603
656
  for history; the transactional-installer requirements in it were deliberately dropped.
604
657