@erichll/pi-sandbox 0.21.1 → 0.22.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/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.22.0 - 2026-09-30
4
+
5
+ - Raise the `@earendil-works/pi-coding-agent` peer floor to `^0.99.1` and the
6
+ development baseline to `^0.99.1`. Validated against Pi 0.99.1 with
7
+ `tsc --noEmit` and the test suite (92 pass, 1 macOS-only skip); the shipped
8
+ `src/` uses no API that changed between 0.87 and 0.99.
9
+ - Adapt two test fixtures to the 0.99 extension surface: `ToolInfo` now requires
10
+ `exposure`, and tool handlers receive `ExtensionToolContext` (`tools`,
11
+ `executeTool`). The shipped extension uses neither field, so runtime behavior
12
+ is unchanged.
13
+ - Raise the `pi-subagents` development dependency to `^0.72.1` and revalidate
14
+ the native-background loader against the published 0.72.1 package:
15
+ `discoverAgents` and `resolveAgentName` keep their signatures,
16
+ `src/agents/agents` only gains an optional `options.globalNpmRoot` argument,
17
+ `typebox` moved from a hard dependency to an optional host peer, and the
18
+ `./capability-ceiling` export still resolves to `.js`.
19
+ - Depend on `@erichll/pi-auto-review` `^0.22.0`.
20
+ - Document the three-way `subagents.provider` choice (`builtin` / `off` /
21
+ `pi-subagents`) with copy-ready example configs, including the duplicate
22
+ `subagent` tool that makes `builtin` unavailable whenever the pi-subagents
23
+ extension is loaded, and the scheduled-runs-disabled pi-subagents config that
24
+ protected mode requires.
25
+ - Bump the development `typescript` baseline to `^7.0.2`.
26
+
3
27
  ## 0.21.1 - 2026-09-26
4
28
 
5
29
  - Alias `@earendil-works/pi-tui` for the `jiti` instance that loads the
package/README.md CHANGED
@@ -92,7 +92,7 @@ Supported modes:
92
92
  ### `pi-subagents` native-background tool boundary
93
93
 
94
94
  This provider supports the `pi-subagents >=0.66.0` line (validated through
95
- 0.71.0) and fails closed if its public ceiling API, module layout, or internal
95
+ 0.72.1) and fails closed if its public ceiling API, module layout, or internal
96
96
  discovery layout drifts. The peer dependency is a floor with no upper pin; the
97
97
  loader's explicit export and layout checks are the real gate. The loader also
98
98
  aliases `@earendil-works/pi-tui`, a host peer that the `pi-subagents` internals
@@ -296,7 +296,7 @@ directory. It never reads or updates production Pi configuration. Model-backed
296
296
  acceptance requires `PI_SUBAGENTS_GATE_MODEL` and an already-exported matching
297
297
  credential; missing prerequisites are reported as `SKIP`. Protected mode with
298
298
  pi-subagents 0.68.0 or newer needs Pi 0.86.0 or newer. The development
299
- baseline is validated against Pi 0.87.1.
299
+ baseline is validated against Pi 0.99.1.
300
300
 
301
301
  The test suite covers real Linux Sandbox Runtime enforcement when its native
302
302
  dependencies are installed, plus deterministic broker, network approval,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@erichll/pi-sandbox",
3
- "version": "0.21.1",
3
+ "version": "0.22.0",
4
4
  "description": "Linux (bubblewrap) and macOS (Seatbelt) process sandbox for Pi backed by Anthropic's @anthropic-ai/sandbox-runtime. Fail-closed static filesystem policy plus per-connection network approval from pi-auto-review; sandboxes main-agent Bash and built-in subagent process trees.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -51,11 +51,11 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@anthropic-ai/sandbox-runtime": "^0.0.77",
54
- "@erichll/pi-auto-review": "^0.21.0",
54
+ "@erichll/pi-auto-review": "^0.22.0",
55
55
  "jiti": "2.7.0"
56
56
  },
57
57
  "peerDependencies": {
58
- "@earendil-works/pi-coding-agent": "^0.87.1",
58
+ "@earendil-works/pi-coding-agent": "^0.99.1",
59
59
  "pi-subagents": ">=0.66.0",
60
60
  "typebox": ">=1.0.0"
61
61
  },
@@ -65,12 +65,12 @@
65
65
  }
66
66
  },
67
67
  "devDependencies": {
68
- "@earendil-works/pi-ai": "^0.87.1",
69
- "@earendil-works/pi-coding-agent": "^0.87.1",
70
- "@earendil-works/pi-server": "^0.87.1",
68
+ "@earendil-works/pi-ai": "^0.99.1",
69
+ "@earendil-works/pi-coding-agent": "^0.99.1",
70
+ "@earendil-works/pi-server": "^0.99.1",
71
71
  "@types/node": "^26.6.2",
72
- "pi-subagents": "^0.71.0",
72
+ "pi-subagents": "^0.72.1",
73
73
  "typebox": "^1.3.34",
74
- "typescript": "^6.0.3"
74
+ "typescript": "^7.0.2"
75
75
  }
76
76
  }
@@ -16,10 +16,16 @@ import { createJiti } from "jiti";
16
16
  * 2026-09-23 against the published 0.71.0 package: the ceiling implementation
17
17
  * and the config loader are byte-identical to 0.70.0, `discoverAgents` and
18
18
  * `resolveAgentName` keep their signatures, and the `./capability-ceiling`
19
- * export still resolves to `.js`). Protected mode needs Pi 0.86.0 or newer
19
+ * export still resolves to `.js`), and revalidated 2026-09-27 against the
20
+ * published 0.72.1 package: the ceiling implementation and the config loader
21
+ * are still byte-identical to 0.70.0, `discoverAgents` and `resolveAgentName`
22
+ * keep their signatures, `src/agents/agents` only gains an optional
23
+ * `options.globalNpmRoot` argument, `typebox` moved from a hard dependency to
24
+ * an optional host peer, and the `./capability-ceiling` export still resolves
25
+ * to `.js`). Protected mode needs Pi 0.86.0 or newer
20
26
  * (the pi-subagents 0.68.0+ floor): 0.85.0 does not ship
21
27
  * `@earendil-works/pi-server`, so background children fail to launch there.
22
- * This package's own peer floor is Pi 0.87.1 (validated 2026-09-23).
28
+ * This package's own peer floor is Pi 0.99.1 (validated 2026-09-30).
23
29
  */
24
30
  export const PI_SUBAGENTS_COMPAT_RANGE = ">=0.66.0";
25
31
  export const NATIVE_CHILD_TOOLS = ["bash", "read", "grep", "find", "ls"] as const;