pi-neo-subagents 0.1.0 → 0.1.2

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 (3) hide show
  1. package/CHANGELOG.md +94 -59
  2. package/README.md +15 -1
  3. package/package.json +11 -3
package/CHANGELOG.md CHANGED
@@ -1,59 +1,94 @@
1
- # Changelog
2
-
3
- All notable changes to this project are documented here. The format follows
4
- [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project uses
5
- [semantic versioning](https://semver.org/spec/v2.0.0.html).
6
-
7
- ## [0.1.0] — 2026-10-24
8
-
9
- First public release. Covers the v1 delegation core and the v2 governance work.
10
-
11
- ### Added — delegation core
12
-
13
- - Named agent definitions as Markdown + frontmatter in `.pi/agents/` (project)
14
- and `~/.pi/agent/agents/` (user), with project-over-user precedence.
15
- - `task` tool for the main agent: isolated nested sessions, self-contained task
16
- text only, final reply returned as the tool result.
17
- - `/subagents` listing and detail views, and `/subagents run <name> [--to-context] <task>`
18
- for user-invoked delegation whose result stays out of the model's context by
19
- default.
20
- - Definition enforcement: tool whitelists, model overrides, `systemPrompt: replace`.
21
- - Result contract: 30,000-character truncation with the full result written to a
22
- temp file, structured details, merged usage, coarse progress updates.
23
- - Non-interactive output routing: stdout in print mode, stderr in JSON mode,
24
- notifications in TUI and RPC.
25
- - `create_subagent` tool and project-first placement, so a session with no
26
- definitions is never a dead end.
27
-
28
- ### Added — governance and scale (v2)
29
-
30
- - Execution controls: `maxTurns`, `timeoutMs`, `maxTokens`, and `thinking` in a
31
- definition or per call; cut-short work is reported as a budget stop, never as
32
- a failure.
33
- - Run ledger with `/subagents stats` and `stats reset`.
34
- - Fan-out dispatch (`tasks`) with a configurable concurrency cap, submission
35
- order results, per-task status, and cancellation of everything in flight.
36
- - Chained dispatch (`chain`) with `{previous}` substitution and stop-at-first-
37
- unfinished-step semantics.
38
- - Ad-hoc delegation with inline `instructions`, no definition file, accounted as
39
- `ad-hoc`.
40
- - Live TUI widget listing in-flight delegations with turn and current tool.
41
- - Strict definition validation: non-`replace` `systemPrompt`, unknown tools,
42
- unresolvable models, and invalid budgets are errors.
43
- - Discovery from nested working directories; listings show source file and
44
- modification time.
45
- - Managed definitions: `/subagents new`, `edit`, `rm`.
46
- - Authorization: project-level agents require first-use consent, plus settings
47
- `confirmProjectAgents`, `allowModelCreatedDefinitions`,
48
- `allowUserScopeCreation`, and `maxDepth`.
49
- - Controlled recursion: opt-in `allowSubagents`, depth-bounded, with depth
50
- reported in results and the ledger.
51
- - Hermetic test suite (112 tests) over a single session seam, plus an
52
- environment-gated live-model smoke suite (`npm run test:live`).
53
-
54
- ### Notes
55
-
56
- - Delegation is serial per call unless `tasks` is used; nesting requires an
57
- explicit opt-in.
58
- - `@earendil-works/pi-ai` and `@earendil-works/pi-coding-agent` are host-provided
59
- and declared as `peerDependencies` with a `*` range.
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented here. The format follows
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project uses
5
+ [semantic versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [0.1.2] — 2026-10-25
8
+
9
+ Corrects the declared Node floor and adds continuous integration.
10
+
11
+ ### Added
12
+
13
+ - GitHub Actions workflow: `npm ci`, typecheck, and the hermetic suite on Node 22
14
+ and 24 across Linux and Windows, with a build-status badge in the README. The
15
+ suite needs no credentials and costs nothing, because it drives in-memory
16
+ sessions against a scripted fake model.
17
+
18
+ ### Fixed
19
+
20
+ - `engines.node` claimed `>=20`, but the Pi host SDK requires `>=22.19.0`: on
21
+ Node 20 every test file fails to load (`fs.globSync` does not exist there).
22
+ The floor now matches the host.
23
+
24
+ ## [0.1.1] — 2026-10-25
25
+
26
+ Packaging metadata only; no behaviour changes.
27
+
28
+ ### Added
29
+
30
+ - `repository`, `homepage`, and `bugs` pointing at the source repository, so the
31
+ npm page links to the code and to the issue tracker.
32
+
33
+ ### Changed
34
+
35
+ - Development dependency `vitest` pinned to `^4`. Under `vitest` 5, a fresh
36
+ clone could not install rolldown's optional native binding through
37
+ `npm ci` ([npm/cli#4828]), which broke `npm test` on a clean checkout.
38
+ - `package-lock.json` regenerated at the same resolved versions.
39
+
40
+ [npm/cli#4828]: https://github.com/npm/cli/issues/4828
41
+
42
+ ## [0.1.0] — 2026-10-24
43
+
44
+ First public release. Covers the v1 delegation core and the v2 governance work.
45
+
46
+ ### Added — delegation core
47
+
48
+ - Named agent definitions as Markdown + frontmatter in `.pi/agents/` (project)
49
+ and `~/.pi/agent/agents/` (user), with project-over-user precedence.
50
+ - `task` tool for the main agent: isolated nested sessions, self-contained task
51
+ text only, final reply returned as the tool result.
52
+ - `/subagents` listing and detail views, and `/subagents run <name> [--to-context] <task>`
53
+ for user-invoked delegation whose result stays out of the model's context by
54
+ default.
55
+ - Definition enforcement: tool whitelists, model overrides, `systemPrompt: replace`.
56
+ - Result contract: 30,000-character truncation with the full result written to a
57
+ temp file, structured details, merged usage, coarse progress updates.
58
+ - Non-interactive output routing: stdout in print mode, stderr in JSON mode,
59
+ notifications in TUI and RPC.
60
+ - `create_subagent` tool and project-first placement, so a session with no
61
+ definitions is never a dead end.
62
+
63
+ ### Added — governance and scale (v2)
64
+
65
+ - Execution controls: `maxTurns`, `timeoutMs`, `maxTokens`, and `thinking` in a
66
+ definition or per call; cut-short work is reported as a budget stop, never as
67
+ a failure.
68
+ - Run ledger with `/subagents stats` and `stats reset`.
69
+ - Fan-out dispatch (`tasks`) with a configurable concurrency cap, submission
70
+ order results, per-task status, and cancellation of everything in flight.
71
+ - Chained dispatch (`chain`) with `{previous}` substitution and stop-at-first-
72
+ unfinished-step semantics.
73
+ - Ad-hoc delegation with inline `instructions`, no definition file, accounted as
74
+ `ad-hoc`.
75
+ - Live TUI widget listing in-flight delegations with turn and current tool.
76
+ - Strict definition validation: non-`replace` `systemPrompt`, unknown tools,
77
+ unresolvable models, and invalid budgets are errors.
78
+ - Discovery from nested working directories; listings show source file and
79
+ modification time.
80
+ - Managed definitions: `/subagents new`, `edit`, `rm`.
81
+ - Authorization: project-level agents require first-use consent, plus settings
82
+ `confirmProjectAgents`, `allowModelCreatedDefinitions`,
83
+ `allowUserScopeCreation`, and `maxDepth`.
84
+ - Controlled recursion: opt-in `allowSubagents`, depth-bounded, with depth
85
+ reported in results and the ledger.
86
+ - Hermetic test suite (112 tests) over a single session seam, plus an
87
+ environment-gated live-model smoke suite (`npm run test:live`).
88
+
89
+ ### Notes
90
+
91
+ - Delegation is serial per call unless `tasks` is used; nesting requires an
92
+ explicit opt-in.
93
+ - `@earendil-works/pi-ai` and `@earendil-works/pi-coding-agent` are host-provided
94
+ and declared as `peerDependencies` with a `*` range.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # pi-neo-subagents
2
2
 
3
+ [![CI](https://github.com/hmtx1024/pi-neo-subagents/actions/workflows/ci.yml/badge.svg)](https://github.com/hmtx1024/pi-neo-subagents/actions/workflows/ci.yml)
4
+
3
5
  Subagents for [Pi](https://github.com/earendil-works/pi): define named specialist
4
6
  agents as Markdown files, then let the main agent delegate self-contained tasks
5
7
  to them — or run them yourself. Each delegation runs in an isolated nested
@@ -307,8 +309,10 @@ dialog UI, `"ask"` proceeds (automation never hangs) while `"deny"` refuses.
307
309
 
308
310
  ## Development
309
311
 
312
+ Requires Node 22.19 or newer — the floor declared by the Pi host SDK.
313
+
310
314
  ```bash
311
- npm install
315
+ npm ci # installs from the committed lockfile
312
316
  npm test # vitest, hermetic: scripted fake model, no network
313
317
  npm run typecheck
314
318
  npm run test:live # live-model smoke suite (real provider, real cost)
@@ -330,3 +334,13 @@ from it and runs only through `npm run test:live`, which enables it with
330
334
  Tests drive full in-memory agent sessions through the Pi SDK with pi-ai's
331
335
  `fauxProvider` as the scripted model; behaviour is asserted only at the
332
336
  session boundary (tool results, visible messages, recorded UI output).
337
+
338
+ Repository layout:
339
+
340
+ | Path | Contents |
341
+ |---|---|
342
+ | `index.ts`, `src/` | the extension itself — everything that ships to npm |
343
+ | `test/` | hermetic suite; `test/live/` is the opt-in live suite |
344
+ | `docs/specs/` | behaviour specifications, current and superseded |
345
+ | `docs/history/` | design records: the tickets each version came from, and the real-model test report |
346
+ | `scripts/manual-test/` | RPC driver and fixtures for scripted end-to-end runs against a real `pi` process |
package/package.json CHANGED
@@ -1,12 +1,20 @@
1
1
  {
2
2
  "name": "pi-neo-subagents",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Subagents for Pi: define Markdown agent definitions and delegate tasks to isolated nested agent sessions",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "灰木同学 <hmtx1024@outlook.com>",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/hmtx1024/pi-neo-subagents.git"
11
+ },
12
+ "homepage": "https://github.com/hmtx1024/pi-neo-subagents#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/hmtx1024/pi-neo-subagents/issues"
15
+ },
8
16
  "engines": {
9
- "node": ">=20"
17
+ "node": ">=22.19.0"
10
18
  },
11
19
  "files": [
12
20
  "index.ts",
@@ -35,7 +43,7 @@
35
43
  "@earendil-works/pi-coding-agent": "^1.4.0",
36
44
  "@types/node": "^24.0.0",
37
45
  "typescript": "^5.9.0",
38
- "vitest": "^5.0.5"
46
+ "vitest": "^4.0.0"
39
47
  },
40
48
  "peerDependencies": {
41
49
  "@earendil-works/pi-ai": "*",