@rmrdeveloper/sideroom-pi 5.0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ronald Moreno Rodríguez
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,119 @@
1
+ # Sideroom Pi
2
+
3
+ Sideroom Pi is a global [Pi package](https://pi.dev/docs/latest/packages). It
4
+ registers the `/sideroom` command inside Pi and runs planner, implementer,
5
+ reviewer, verifier, and fixer as isolated Pi SDK sessions.
6
+
7
+ It creates no `.pi` configuration, task graph, harness state, or other files
8
+ in the repository being changed.
9
+
10
+ ## Install globally in Pi
11
+
12
+ Build the package, then let Pi install it globally. Do not use `-l`: that
13
+ would create project-local configuration.
14
+
15
+ ```bash
16
+ npm install
17
+ npm run build
18
+ pi install /absolute/path/to/sideroom-pi
19
+ ```
20
+
21
+ For a published release:
22
+
23
+ ```bash
24
+ pi install npm:@rmrdeveloper/sideroom-pi@5.0.0
25
+ ```
26
+
27
+ Start Pi from the repository you want to work in, then invoke the extension:
28
+
29
+ ```text
30
+ /sideroom "Add a health endpoint"
31
+ /sideroom --language php-laravel "Add invoice export"
32
+ /sideroom --read-only "Review the retry behavior"
33
+ ```
34
+
35
+ Pi extension commands are necessarily slash commands, so `/sideroom` is the
36
+ single command; there is no subcommand or separate binary to run. When the
37
+ request is omitted, Pi asks for it using its own UI.
38
+
39
+ Supported guideline variants are `typescript` (default), `javascript`,
40
+ `php-laravel`, `python`, and `java`. `--read-only` removes write-capable tools
41
+ from every role. `--max-fix-passes <number>` changes the default limit of two
42
+ repair passes.
43
+
44
+ ## Provenance and isolation
45
+
46
+ `/sideroom` is dispatched to the extension before Pi expands skills or sends
47
+ the command to the interactive agent. The extension then creates direct,
48
+ in-memory SDK sessions for the five Sideroom roles. Those child sessions load
49
+ only this package's skills and explicit policy; global Pi skills, extensions,
50
+ prompt templates, and global context files are excluded.
51
+
52
+ At the end of every run, Pi displays a `Sideroom completed` or `Sideroom
53
+ failed` message with its provenance and the completed roles. It also records
54
+ the same trace in Pi's session history as `sideroom:run`; this is Pi session
55
+ metadata, never a file in the target repository.
56
+
57
+ The packaged `sideroom-grilling` skill runs as the design-decision gate. Its
58
+ questions use Pi's native decision UI. During a run, a persistent Pi widget
59
+ shows the active phase, the waiting-for-answer state, and the direct-SDK
60
+ provenance. Selecting a recommendation accepts it; selecting the alternate
61
+ option opens a custom-answer field. The widget is removed automatically when a
62
+ run completes or fails; the final Pi session message remains as the durable
63
+ record. It is not a request to any global skill with the same name.
64
+
65
+ ## Content and guidelines
66
+
67
+ The five role prompts are in `src/assets/agents/`. The shared policy is
68
+ `src/assets/artifacts/GUIDELINES_TEMPLATE.md`; the language layers live in
69
+ `src/assets/artifacts/guidelines/`. Implementer and fixer receive those
70
+ policies before their write gate and must read them before every code-writing
71
+ tool call.
72
+
73
+ Reusable Pi skills ship in `skills/`: `sideroom-grilling`, `sideroom-critic`,
74
+ `sideroom-spec`, and `sideroom-transcribe-audio`. Pi loads them directly through
75
+ the package manifest.
76
+ The transcription skill needs `uv`, Python, and `ffmpeg` only when explicitly
77
+ used.
78
+
79
+ ## Development
80
+
81
+ ```bash
82
+ npm install
83
+ npm run check
84
+ npm run build
85
+ ```
86
+
87
+ Biome is the sole formatter and linter. Runtime code uses Pi's SDK only; Pi
88
+ provides `@earendil-works/pi-coding-agent` as a peer dependency.
89
+
90
+ ## Releases and commits
91
+
92
+ Commit messages must follow the Conventional Commits format. The existing
93
+ Husky `commit-msg` hook validates each local commit with Commitlint, for
94
+ example `feat: add a pipeline summary` or `fix: validate malformed findings`.
95
+
96
+ Every user-visible package change needs a Changeset. Create one with:
97
+
98
+ ```bash
99
+ npm run changeset
100
+ ```
101
+
102
+ Review pending release work with `npm run changeset:status`. On the release
103
+ branch, run `npm run version-packages`, review and commit the updated
104
+ `package.json`, `package-lock.json`, and `CHANGELOG.md`, then publish
105
+ deliberately with `npm run release`. The repository does not publish
106
+ automatically from CI.
107
+
108
+ ## Layout
109
+
110
+ ```text
111
+ src/
112
+ pi-extension.ts Pi extension entry point for /sideroom
113
+ pi-command.ts slash-command parsing
114
+ app.ts Pi pipeline assembly
115
+ core/ orchestration, roles, contracts, and content catalog
116
+ runtimes/pi.ts direct Pi SDK adapter for isolated child sessions
117
+ assets/ role prompts and coding guidelines
118
+ skills/ package-provided Pi skills
119
+ ```