gentle-pi 3.5.0 → 3.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.
- package/README.md +50 -41
- package/assets/orchestrator-delegation.md +2 -0
- package/bin/gentle-shell.mjs +1068 -16
- package/docs/gentle-shell.md +1 -1
- package/docs/readme-reference.md +108 -19
- package/extensions/gentle-ai.ts +27 -48
- package/lib/gentle-shell-launcher.ts +734 -37
- package/lib/inprocess-reviewer.ts +54 -6
- package/lib/native-review-cli.ts +12 -0
- package/package.json +1 -1
- package/runtime/gentle-shell-launcher.mjs +732 -35
- package/runtime/native-review-cli.mjs +12 -0
- package/scripts/gentle-ai-installer.mjs +10 -10
- package/scripts/install-tui-mode-setting.mjs +21 -2
- package/scripts/verify-package-files.mjs +2 -2
- package/tests/agents-rpc-publisher.test.ts +66 -0
- package/tests/gentle-agents.test.ts +46 -0
- package/tests/gentle-ai-binary.test.ts +1 -1
- package/tests/gentle-ai-installer.test.ts +54 -49
- package/tests/gentle-ai.test.ts +147 -2
- package/tests/gentle-shell-bin.test.ts +2389 -6
- package/tests/gentle-shell-launcher.test.ts +1053 -10
- package/tests/inprocess-reviewer.test.ts +179 -0
- package/tests/install-tui-mode-setting.test.ts +22 -4
- package/tests/native-review-capability-contract.test.ts +28 -1
- package/tests/odd-runtime-delegation-gate.test.ts +18 -197
- package/tests/package-manifest.test.ts +6 -6
- package/tests/runtime-harness.mjs +1 -2
- package/lib/odd-runtime-delegation-gate.ts +0 -88
package/README.md
CHANGED
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
<a href="https://www.npmjs.com/package/gentle-pi"><img src="https://img.shields.io/npm/v/gentle-pi?style=for-the-badge&labelColor=1A1218&color=F095C8" alt="npm"></a>
|
|
13
13
|
<a href="https://pi.dev/packages/gentle-pi"><img src="https://img.shields.io/badge/Pi-native-F095C8?style=for-the-badge&labelColor=1A1218" alt="Pi-native package"></a>
|
|
14
14
|
<a href="LICENSE"><img src="https://img.shields.io/npm/l/gentle-pi?style=for-the-badge&labelColor=1A1218&color=F095C8" alt="MIT license"></a>
|
|
15
|
-
<a href="https://github.com/Gentleman-Programming/gentle-
|
|
16
|
-
<a href="https://github.com/Gentleman-Programming/gentle-
|
|
15
|
+
<a href="https://github.com/Gentleman-Programming/gentle-shell/stargazers"><img src="https://img.shields.io/github/stars/Gentleman-Programming/gentle-shell?style=for-the-badge&labelColor=1A1218&color=F095C8" alt="GitHub stars"></a>
|
|
16
|
+
<a href="https://github.com/Gentleman-Programming/gentle-shell"><img src="https://img.shields.io/github/last-commit/Gentleman-Programming/gentle-shell?style=for-the-badge&labelColor=1A1218&color=D7A0B8" alt="Last commit"></a>
|
|
17
17
|
</p>
|
|
18
18
|
|
|
19
19
|
<p align="center">
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
<p align="center"><strong>BUILT FOR PI</strong> · Coding-agent workspace · Focused agents · ODD</p>
|
|
38
38
|
|
|
39
39
|
<p align="center">
|
|
40
|
-
<a href="https://github.com/Gentleman-Programming/gentle-
|
|
40
|
+
<a href="https://github.com/Gentleman-Programming/gentle-shell/stargazers"><strong>★ Star gentle-shell on GitHub</strong></a>
|
|
41
41
|
</p>
|
|
42
42
|
|
|
43
43
|
<div align="center">
|
|
@@ -185,13 +185,13 @@ Extension commands are only useful if you can find them. `alt+k` opens a curated
|
|
|
185
185
|
|
|
186
186
|
---
|
|
187
187
|
|
|
188
|
-
### What's new in
|
|
188
|
+
### What's new in v3.5
|
|
189
189
|
|
|
190
|
-
The [
|
|
190
|
+
The [v3.5.1 release](https://github.com/Gentleman-Programming/gentle-shell/releases/tag/v3.5.1) makes Gentle Shell runnable on its own:
|
|
191
191
|
|
|
192
|
-
- **
|
|
193
|
-
- **
|
|
194
|
-
- **
|
|
192
|
+
- **Standalone launcher:** `npm i -g gentle-pi` installs `gentle-shell`, which opens Pi with the Gentle Shell package loaded from its own home (`~/.gentle-shell/agent`) or, with `--link`, from your existing `~/.pi/agent`; `gentle-shell install npm:<pkg>` and the other pi subcommands run against the selected home. A bundled or `PATH` pi is used, never a modified one.
|
|
193
|
+
- **Link mode take-over:** when `~/.pi/agent` already declares gentle-pi as a path package, the launcher takes over extension loading (`--no-extensions` plus explicit `-e` for every other declared package and loose extension) so tools never register twice.
|
|
194
|
+
- **Interactive RPC hosts:** with `GENTLE_SHELL_INTERACTIVE_HOST=1` and `--mode rpc`, ask-user tools use pi's RPC dialogs and gentle-agents publishes live subagent activity for the desktop app. See the [reference](docs/readme-reference.md#interactive-rpc-hosts).
|
|
195
195
|
|
|
196
196
|
---
|
|
197
197
|
|
|
@@ -203,13 +203,45 @@ The [v2.6.0 release](https://github.com/Gentleman-Programming/gentle-pi/releases
|
|
|
203
203
|
|
|
204
204
|
## Get started
|
|
205
205
|
|
|
206
|
-
Install the stable release, restart Pi, then synchronize the installed assets.
|
|
207
|
-
|
|
208
206
|
> **Naming transition:** The product is called `gentle-shell`; the current npm package and repository remain `gentle-pi` until migration.
|
|
209
207
|
|
|
208
|
+
### Path A: standalone `gentle-shell` (recommended, no pi changes)
|
|
209
|
+
|
|
210
|
+
`gentle-shell` opens Pi with the Gentle Shell package loaded, without installing it into your pi agent or editing its `settings.json`.
|
|
211
|
+
|
|
210
212
|
```bash
|
|
211
|
-
|
|
212
|
-
|
|
213
|
+
npm i -g gentle-pi
|
|
214
|
+
|
|
215
|
+
# Own home, never touches your pi install
|
|
216
|
+
gentle-shell
|
|
217
|
+
|
|
218
|
+
# Reuse your pi sign-ins, models and chats instead
|
|
219
|
+
gentle-shell --link
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
`gentle-shell` alone starts in its own home, `~/.gentle-shell/agent`, and sets that home up on first run — no separate step. Gentle Shell keeps its own home with the Gentle AI companion packages and no conflicting plugins; gentle-pi itself always stays this launcher's own copy, never one installed into the home; your pi install is untouched. That home also defaults to the Gentleman-Cute theme unless you set your own. `gentle-shell --link` reuses `~/.pi/agent` as-is, is never auto-provisioned, and never has its theme touched.
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Re-run provisioning by hand, e.g. to see the full install output
|
|
226
|
+
gentle-shell setup
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
`gentle-shell setup` installs the same companion packages gentle-ai provisions into a regular Pi, into this home only, then removes the one package that conflicts with gentle-pi's own `ask_user_question` tool (gentle-ai #4820). The first `gentle-shell` launch in a home already runs this automatically; `setup` is for re-running it by hand. See **[First run](docs/readme-reference.md#first-run-in-an-isolated-or-custom-home)** for the opt-out (`GENTLE_SHELL_NO_AUTO_SETUP=1`) and failure behavior.
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Make --link the default
|
|
233
|
+
gentle-shell home link
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Every other argument is forwarded to pi unchanged, for example `gentle-shell --mode rpc` or `gentle-shell -p "..."`. Full flags, env vars, and modes: **[launcher reference](docs/readme-reference.md#gentle-shell-launcher)**.
|
|
237
|
+
|
|
238
|
+
### Path B: inside an existing pi
|
|
239
|
+
|
|
240
|
+
Install the stable release into an existing pi agent, restart Pi, then synchronize the installed assets.
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
# Published stable release: v3.5.1
|
|
244
|
+
pi install npm:gentle-pi@3.5.1
|
|
213
245
|
|
|
214
246
|
# Restart Pi, then run:
|
|
215
247
|
gentle-ai sync
|
|
@@ -218,7 +250,7 @@ gentle-ai sync
|
|
|
218
250
|
pi
|
|
219
251
|
```
|
|
220
252
|
|
|
221
|
-
See the [
|
|
253
|
+
See the [v3.5.1 release notes](https://github.com/Gentleman-Programming/gentle-shell/releases/tag/v3.5.1) for version-specific changes.
|
|
222
254
|
|
|
223
255
|
```text
|
|
224
256
|
/gentle:status
|
|
@@ -233,29 +265,6 @@ See the [v2.6.0 release notes](https://github.com/Gentleman-Programming/gentle-p
|
|
|
233
265
|
|
|
234
266
|
For prerequisites, source-checkout instructions, full install behavior, and release policy, use the **[installation reference](docs/readme-reference.md#install)**. For everyday work, describe the outcome and follow [ODD](#odd--the-everyday-workflow).
|
|
235
267
|
|
|
236
|
-
### Without touching your pi
|
|
237
|
-
|
|
238
|
-
`gentle-shell` opens Pi with the Gentle Shell package loaded, without installing it into your pi agent or editing its `settings.json`.
|
|
239
|
-
|
|
240
|
-
```bash
|
|
241
|
-
npm i -g gentle-pi
|
|
242
|
-
|
|
243
|
-
# Own home, never touches your pi install
|
|
244
|
-
gentle-shell
|
|
245
|
-
|
|
246
|
-
# Reuse your pi sign-ins, models and chats instead
|
|
247
|
-
gentle-shell --link
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
`gentle-shell` alone starts in its own home, `~/.gentle-shell/agent`. `gentle-shell --link` reuses `~/.pi/agent` as-is.
|
|
251
|
-
|
|
252
|
-
```bash
|
|
253
|
-
# Make --link the default
|
|
254
|
-
gentle-shell home link
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
Every other argument is forwarded to pi unchanged, for example `gentle-shell --mode rpc` or `gentle-shell -p "..."`. Full flags, env vars, and modes: **[launcher reference](docs/readme-reference.md#gentle-shell-launcher)**.
|
|
258
|
-
|
|
259
268
|
<p align="right"><a href="#top">Back to top ↑</a></p>
|
|
260
269
|
|
|
261
270
|
<p align="center">
|
|
@@ -287,17 +296,17 @@ Start with the product-facing destination, then move into the operational refere
|
|
|
287
296
|
This project is built in public. Bring a real workflow, a sharp question, a bug report, or a small improvement that makes the next person’s work clearer.
|
|
288
297
|
|
|
289
298
|
<p align="center">
|
|
290
|
-
<a href="https://github.com/Gentleman-Programming/gentle-
|
|
291
|
-
<a href="https://github.com/Gentleman-Programming/gentle-
|
|
299
|
+
<a href="https://github.com/Gentleman-Programming/gentle-shell/issues"><img src="https://img.shields.io/badge/Issues-join%20the%20conversation-F095C8?style=for-the-badge&labelColor=1A1218" alt="GitHub issues"></a>
|
|
300
|
+
<a href="https://github.com/Gentleman-Programming/gentle-shell/graphs/contributors"><img src="https://img.shields.io/badge/Contributors-thank%20you-D7A0B8?style=for-the-badge&labelColor=1A1218" alt="Contributors"></a>
|
|
292
301
|
<a href="https://discord.com/invite/gentleman-programming-769863833996754944"><img src="https://img.shields.io/badge/Discord-Gentleman%20Programming-F095C8?style=for-the-badge&labelColor=1A1218" alt="Gentleman Programming Discord"></a>
|
|
293
302
|
</p>
|
|
294
303
|
|
|
295
304
|
<p align="center">
|
|
296
|
-
<a href="https://github.com/Gentleman-Programming/gentle-
|
|
305
|
+
<a href="https://github.com/Gentleman-Programming/gentle-shell/graphs/contributors"><img src="https://contrib.rocks/image?repo=Gentleman-Programming/gentle-shell" alt="gentle-shell contributors"></a>
|
|
297
306
|
</p>
|
|
298
307
|
|
|
299
|
-
- Open an [issue](https://github.com/Gentleman-Programming/gentle-
|
|
300
|
-
- See the people shaping the project in the [contributors graph](https://github.com/Gentleman-Programming/gentle-
|
|
308
|
+
- Open an [issue](https://github.com/Gentleman-Programming/gentle-shell/issues) with the context needed to reproduce or understand the idea.
|
|
309
|
+
- See the people shaping the project in the [contributors graph](https://github.com/Gentleman-Programming/gentle-shell/graphs/contributors).
|
|
301
310
|
- Follow [Gentleman Programming](https://github.com/Gentleman-Programming) for the wider ecosystem.
|
|
302
311
|
|
|
303
312
|
<p align="right"><a href="#top">Back to top ↑</a></p>
|
|
@@ -91,6 +91,8 @@ Return concise findings, recommendation, tradeoffs, open questions, and implemen
|
|
|
91
91
|
|
|
92
92
|
Use at most one scoped independent read-only assumption challenge for a high-consequence unproven premise, even in a small security-critical change. Name the premise, evidence, and consequence; do not start a debate loop. Deterministic failures need fixes, not model debate. The native RDD refuter owns native review claims; never duplicate or bypass it with this challenge.
|
|
93
93
|
|
|
94
|
+
Before building, validate any consequential premise whose failure would invalidate the approach. Reuse relevant findings from sibling investigations instead of repeating the same exploration; verify only what is stale or materially different. During iteration, run focused checks for the behavior being changed, then run the applicable full suite at closure. This sequencing guides effort rather than imposing a token counter or skipping required checks.
|
|
95
|
+
|
|
94
96
|
#### Checks and candidate consent
|
|
95
97
|
|
|
96
98
|
Resolve effective TDD on/off from existing project/session configuration or explicit user choice; retain its source and exact test runner. Record resolved mode, source, and runner in the feature document when present. Tests or frameworks being present does not enable TDD. Forward mode, source, and runner on every implementation delegation; refresh on resume. When enabled, require observed RED before implementation, GREEN, then REFACTOR; never invent evidence. When disabled, run ordinary functional checks, not no checks. If mode is unknown/conflicting or the runner is missing, disclose and resolve only the ambiguity affecting the next action; never invent precedence or a command, and never invoke sdd-init to determine ODD TDD.
|