pi-herdr-agents 1.0.0 → 1.1.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/AGENTS.md +1 -1
- package/CHANGELOG.md +90 -0
- package/README.md +11 -2
- package/RELEASING.md +5 -2
- package/package.json +10 -2
- package/pi-extension/subagents/index.ts +5 -1
package/AGENTS.md
CHANGED
|
@@ -104,7 +104,7 @@ Use `PI_TEST_MODEL="openai-codex/gpt-5.6-luna" PI_TEST_TIMEOUT=180000 npm run te
|
|
|
104
104
|
Before committing:
|
|
105
105
|
|
|
106
106
|
- inspect `git status` and the final diff;
|
|
107
|
-
- confirm the package preview includes `skills/orchestrate/SKILL.md
|
|
107
|
+
- confirm the package preview includes `CHANGELOG.md`, `skills/orchestrate/SKILL.md`, and `pi-extension/subagents/workflow-worker.js`, while excluding plans, journals, sessions, prototypes, generated evidence, and local config;
|
|
108
108
|
- run `npm pack --dry-run` when package contents or documentation paths changed;
|
|
109
109
|
- confirm that no generated plans, journals, sessions, provider configuration, test scripts, or review artifacts are staged; and
|
|
110
110
|
- confirm that no accidental empty directory exists at the repository root:
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
9
|
+
|
|
10
|
+
## [v1.1.0](https://github.com/giuseppecrj/pi-herdr-agents/compare/v1.0.0...v1.1.0)
|
|
11
|
+
|
|
12
|
+
### Commits
|
|
13
|
+
|
|
14
|
+
- chore: initialize generated changelog [`77ca8eb`](https://github.com/giuseppecrj/pi-herdr-agents/commit/77ca8eb000e1d06f6d23bfbd8fdcac491bef581d)
|
|
15
|
+
- feat: label coordinated subagents [`e2d15ab`](https://github.com/giuseppecrj/pi-herdr-agents/commit/e2d15abf2cbe9f0557d14ab768dd39e64352577e)
|
|
16
|
+
|
|
17
|
+
## [v1.0.0](https://github.com/giuseppecrj/pi-herdr-agents/compare/v0.1.4...v1.0.0) - 2026-08-11
|
|
18
|
+
|
|
19
|
+
### Commits
|
|
20
|
+
|
|
21
|
+
- refactor: extract fresh Pi launch transaction [`2241084`](https://github.com/giuseppecrj/pi-herdr-agents/commit/22410845f8b62765fd2ac391cbd94156010abba6)
|
|
22
|
+
- refactor: remove external CLI subagent execution [`9c31fe7`](https://github.com/giuseppecrj/pi-herdr-agents/commit/9c31fe7e566c1fdb3fa8ac3c8a5879fbc25f0fb8)
|
|
23
|
+
- refactor: route Pi session resumes through launch module [`f16f42b`](https://github.com/giuseppecrj/pi-herdr-agents/commit/f16f42b003813852039be9ec1e91b65f28b87bb6)
|
|
24
|
+
- refactor: deliver subagent results through one message [`52c4e02`](https://github.com/giuseppecrj/pi-herdr-agents/commit/52c4e029bbe39170d16a0178b369ab2f68a2d40d)
|
|
25
|
+
- test: stabilize asynchronous subagent integration [`3d2cebb`](https://github.com/giuseppecrj/pi-herdr-agents/commit/3d2cebb41894f2c66038d636998a9b2e0b781431)
|
|
26
|
+
- _No commit message_ [`d5a5c2d`](https://github.com/giuseppecrj/pi-herdr-agents/commit/d5a5c2d0baa1b25a362e0c02de5f6d48342d9393)
|
|
27
|
+
- updates [`e345303`](https://github.com/giuseppecrj/pi-herdr-agents/commit/e345303338857ca19b8ce880c0707173505ad78b)
|
|
28
|
+
- chore: release v1.0.0 [`ccc0045`](https://github.com/giuseppecrj/pi-herdr-agents/commit/ccc0045f3bd6b937bf6acd238b97fe48341bd8ba)
|
|
29
|
+
- merge: deepen Pi subagent launch and resume [`674da9d`](https://github.com/giuseppecrj/pi-herdr-agents/commit/674da9dc5d752deca3538c0d8d7ffdbdecc00a4c)
|
|
30
|
+
|
|
31
|
+
## [v0.1.4](https://github.com/giuseppecrj/pi-herdr-agents/compare/v0.1.3...v0.1.4) - 2026-08-10
|
|
32
|
+
|
|
33
|
+
### Commits
|
|
34
|
+
|
|
35
|
+
- chore: release v0.1.4 [`0ce2fe4`](https://github.com/giuseppecrj/pi-herdr-agents/commit/0ce2fe45b3c76a2bffe1df561076d1c62537c139)
|
|
36
|
+
|
|
37
|
+
## [v0.1.3](https://github.com/giuseppecrj/pi-herdr-agents/compare/v0.1.2...v0.1.3) - 2026-08-07
|
|
38
|
+
|
|
39
|
+
### Commits
|
|
40
|
+
|
|
41
|
+
- fix: reject empty workflow completions [`338a788`](https://github.com/giuseppecrj/pi-herdr-agents/commit/338a788855c9ea7ac8b3f6214ff8b3130bc4b007)
|
|
42
|
+
- test: verify fallback completion from session evidence [`b2eb4b0`](https://github.com/giuseppecrj/pi-herdr-agents/commit/b2eb4b0fec5bd7d5ec9f473168cf3710e600052d)
|
|
43
|
+
- chore: release v0.1.3 [`a2cd1b5`](https://github.com/giuseppecrj/pi-herdr-agents/commit/a2cd1b5ab424226e371ee6388e79d8ccf3e9a304)
|
|
44
|
+
|
|
45
|
+
## [v0.1.2](https://github.com/giuseppecrj/pi-herdr-agents/compare/v0.1.1...v0.1.2) - 2026-08-07
|
|
46
|
+
|
|
47
|
+
### Commits
|
|
48
|
+
|
|
49
|
+
- chore: release v0.1.2 [`67608a5`](https://github.com/giuseppecrj/pi-herdr-agents/commit/67608a5b1950222b522277c2fb4a246cbffb91f8)
|
|
50
|
+
|
|
51
|
+
## [v0.1.1](https://github.com/giuseppecrj/pi-herdr-agents/compare/v0.1.0...v0.1.1) - 2026-08-07
|
|
52
|
+
|
|
53
|
+
### Commits
|
|
54
|
+
|
|
55
|
+
- fix: wait for Herdr shell readiness [`58bfa99`](https://github.com/giuseppecrj/pi-herdr-agents/commit/58bfa99c150963b4c7f7cc8348b8e2ead00399af)
|
|
56
|
+
- chore: release v0.1.1 [`9b9a3c9`](https://github.com/giuseppecrj/pi-herdr-agents/commit/9b9a3c9ded45f65be7c2814cb34230ee5bf82532)
|
|
57
|
+
|
|
58
|
+
## [v0.1.0](https://github.com/giuseppecrj/pi-herdr-agents/compare/v0.0.4...v0.1.0) - 2026-08-05
|
|
59
|
+
|
|
60
|
+
### Commits
|
|
61
|
+
|
|
62
|
+
- feat: add ordered subagent model fallbacks [`2ce041b`](https://github.com/giuseppecrj/pi-herdr-agents/commit/2ce041b51f1eb1906623bc0c361fea6a3acf019d)
|
|
63
|
+
- chore: release v0.1.0 [`b409457`](https://github.com/giuseppecrj/pi-herdr-agents/commit/b409457f58b738734b48a4e7cf3418da957db271)
|
|
64
|
+
|
|
65
|
+
## [v0.0.4](https://github.com/giuseppecrj/pi-herdr-agents/compare/v0.0.3...v0.0.4) - 2026-08-05
|
|
66
|
+
|
|
67
|
+
### Merged
|
|
68
|
+
|
|
69
|
+
- agents: extract Claude CLI adapter [`#5`](https://github.com/giuseppecrj/pi-herdr-agents/pull/5)
|
|
70
|
+
|
|
71
|
+
### Commits
|
|
72
|
+
|
|
73
|
+
- release: update version to 0.0.4 [`c685c35`](https://github.com/giuseppecrj/pi-herdr-agents/commit/c685c3553ec76d987972c1786d966b704ad9197b)
|
|
74
|
+
|
|
75
|
+
## [v0.0.3](https://github.com/giuseppecrj/pi-herdr-agents/compare/v0.0.2...v0.0.3) - 2026-08-05
|
|
76
|
+
|
|
77
|
+
### Commits
|
|
78
|
+
|
|
79
|
+
- docs: enhance documentation for adversarial-reviewer and runtime adapter policies; clarify model selection process and permissions [`ddf4a34`](https://github.com/giuseppecrj/pi-herdr-agents/commit/ddf4a3411e018c7335bc66e191d5d84b187d8d07)
|
|
80
|
+
- agents: remove bundled Claude reviewer adapter [`ed12ddf`](https://github.com/giuseppecrj/pi-herdr-agents/commit/ed12ddf774046dd0a708fd54d53f12d25118d006)
|
|
81
|
+
- docs: align release baseline with 0.0.2 [`c136b16`](https://github.com/giuseppecrj/pi-herdr-agents/commit/c136b1659370bc4265b1ed4c67c2b670c764a8b1)
|
|
82
|
+
- release: update version to 0.0.3 [`c6ce52c`](https://github.com/giuseppecrj/pi-herdr-agents/commit/c6ce52c6af3b9a3157c073aa257ea69f826597ad)
|
|
83
|
+
|
|
84
|
+
## v0.0.2 - 2026-08-05
|
|
85
|
+
|
|
86
|
+
### Commits
|
|
87
|
+
|
|
88
|
+
- feat: launch Pi Herdr Agents 0.2.0 [`4fa3f26`](https://github.com/giuseppecrj/pi-herdr-agents/commit/4fa3f26d743defa68ce1c068fbc80cc5f3062934)
|
|
89
|
+
- release: prepare 0.0.2 [`5d6e65d`](https://github.com/giuseppecrj/pi-herdr-agents/commit/5d6e65d4c25a8df427dd057b77267985bb505d1a)
|
|
90
|
+
- update version [`4ffd68f`](https://github.com/giuseppecrj/pi-herdr-agents/commit/4ffd68f55f58cedbfb9fd84cd139f81c107552eb)
|
package/README.md
CHANGED
|
@@ -67,7 +67,7 @@ pi -e npm:pi-herdr-agents
|
|
|
67
67
|
|
|
68
68
|
Pi packages execute with your user account's full system access. Review the package source before installation.
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
The documented `npm version` release step updates [CHANGELOG.md](CHANGELOG.md). Pushing that version change to `main` publishes to npm and creates the matching Git tag and GitHub Release. For bootstrap authentication, versioning, verification, and troubleshooting, see [RELEASING.md](RELEASING.md).
|
|
71
71
|
|
|
72
72
|
Start herdr, then run pi inside it:
|
|
73
73
|
|
|
@@ -348,7 +348,7 @@ subagent({
|
|
|
348
348
|
|
|
349
349
|
| Parameter | Type | Default | Description |
|
|
350
350
|
| ---------------------- | ------- | -------------- | ------------------------------------------------------------------------------------------------- |
|
|
351
|
-
| `name` | string | required |
|
|
351
|
+
| `name` | string | required | Short stable child label; coordinated groups use `<task>-<role>[-n]` (widget and pane title) |
|
|
352
352
|
| `task` | string | required | Task prompt for the sub-agent |
|
|
353
353
|
| `agent` | string | — | Load defaults from agent definition |
|
|
354
354
|
| `fork` | boolean | `false` | Force the full-context fork mode for this spawn, overriding any agent `session-mode` frontmatter |
|
|
@@ -361,6 +361,15 @@ subagent({
|
|
|
361
361
|
| `cwd` | string | — | Working directory, or source repository when `worktree` is set (see [Role Folders](#role-folders)) |
|
|
362
362
|
| `worktree` | object | — | Isolated Herdr-managed Git worktree; requires `branch`, with optional `base` (committed `HEAD` by default) |
|
|
363
363
|
|
|
364
|
+
### Naming coordinated children
|
|
365
|
+
|
|
366
|
+
Before launching a new group, choose a short task slug and label each new child
|
|
367
|
+
`<task>-<role>[-n]`, such as `login-api` or `login-test2`. Roles are `plan`,
|
|
368
|
+
`research`, `ui`, `api`, `build`, `test`, `review`, `browser`, `security`,
|
|
369
|
+
`perf`, and `merge`. Leave existing labels unchanged. After the final launch,
|
|
370
|
+
print `name | agent kind | role | model | worktree` and use each name in
|
|
371
|
+
prompts, handoffs, and results.
|
|
372
|
+
|
|
364
373
|
### Isolated worktree runs
|
|
365
374
|
|
|
366
375
|
Use one worktree per independent writing task; keep read-only agents in ordinary panes. `cwd` selects the source Git repository, `branch` must be unique, and `base` is resolved to an exact commit before creation. If `base` is omitted, the source checkout's committed `HEAD` is used. Parent-checkout changes that have not been committed are not copied.
|
package/RELEASING.md
CHANGED
|
@@ -40,7 +40,7 @@ The optional live-provider smoke test is not a release gate:
|
|
|
40
40
|
PI_TEST_MODEL="openai-codex/gpt-5.6-luna" PI_TEST_TIMEOUT=180000 npm run test:integration:live
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
Do not release from skipped Herdr tests. Confirm the package preview includes `README.md`, `AGENTS.md`, `docs/`, `agents/`, `skills/orchestrate/SKILL.md`, and `pi-extension/subagents/workflow-worker.js`. Confirm it excludes plans, journals, sessions, prototypes, generated evidence, and local `config.json`, and that the worktree integration tests leave no test workspace behind.
|
|
43
|
+
Do not release from skipped Herdr tests. Confirm the package preview includes `README.md`, `CHANGELOG.md`, `AGENTS.md`, `docs/`, `agents/`, `skills/orchestrate/SKILL.md`, and `pi-extension/subagents/workflow-worker.js`. Confirm it excludes plans, journals, sessions, prototypes, generated evidence, and local `config.json`, and that the worktree integration tests leave no test workspace behind.
|
|
44
44
|
|
|
45
45
|
## npm authentication
|
|
46
46
|
|
|
@@ -75,12 +75,15 @@ Choose the semantic version increment:
|
|
|
75
75
|
Create the version commit without a local tag:
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
+
git fetch --tags --prune
|
|
78
79
|
npm version patch --no-git-tag-version
|
|
79
|
-
git add package.json package-lock.json
|
|
80
|
+
git add package.json package-lock.json CHANGELOG.md
|
|
80
81
|
git commit -m "chore: release v$(node -p \"require('./package.json').version\")"
|
|
81
82
|
git push origin main
|
|
82
83
|
```
|
|
83
84
|
|
|
85
|
+
The `npm version` hook regenerates `CHANGELOG.md` with `auto-changelog`. Use `npm run changelog` to regenerate it without changing the version.
|
|
86
|
+
|
|
84
87
|
Replace `patch` with `minor` or `major` when appropriate. The push triggers the **Release** workflow, which installs dependencies, runs lint and unit tests, previews package contents, publishes to npm with provenance, creates and pushes the version tag, and creates the GitHub Release.
|
|
85
88
|
|
|
86
89
|
You can rerun a failed or incomplete release from **Actions → Release → Run workflow**. If npm already has `PACKAGE_NAME@VERSION`, the workflow reads that version's `gitHead` and continues only when it matches `GITHUB_SHA` (exact-commit retry). A foreign publish fails before tag or GitHub Release creation. Existing tags are verified to point at the release commit. The workflow does not create a GitHub Release for a version that still needs publish and failed to publish.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-herdr-agents",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -29,10 +29,17 @@
|
|
|
29
29
|
},
|
|
30
30
|
"type": "module",
|
|
31
31
|
"scripts": {
|
|
32
|
+
"changelog": "auto-changelog",
|
|
32
33
|
"lint": "oxlint pi-extension test",
|
|
33
34
|
"test": "node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js",
|
|
34
35
|
"test:integration": "node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts",
|
|
35
|
-
"test:integration:live": "PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"
|
|
36
|
+
"test:integration:live": "PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts",
|
|
37
|
+
"version": "auto-changelog --package && git add CHANGELOG.md"
|
|
38
|
+
},
|
|
39
|
+
"auto-changelog": {
|
|
40
|
+
"commitLimit": false,
|
|
41
|
+
"template": "keepachangelog",
|
|
42
|
+
"unreleased": true
|
|
36
43
|
},
|
|
37
44
|
"peerDependencies": {
|
|
38
45
|
"@earendil-works/pi-ai": "*",
|
|
@@ -53,6 +60,7 @@
|
|
|
53
60
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
54
61
|
"@earendil-works/pi-tui": "^0.84.0",
|
|
55
62
|
"@sinclair/typebox": "^0.34.52",
|
|
63
|
+
"auto-changelog": "^2.6.0",
|
|
56
64
|
"oxlint": "^1.73.0"
|
|
57
65
|
}
|
|
58
66
|
}
|
|
@@ -168,6 +168,7 @@ function buildSubagentRoutingGuidelines(catalog?: string): string[] {
|
|
|
168
168
|
"For subagent model and thinking selection, inherit the parent runtime by omitting both fields unless the task warrants an override.",
|
|
169
169
|
"For subagent tasks, prefer changing thinking before changing models: minimal/low for bounded mechanical work, medium for ordinary implementation or review, and high+ for architecture, concurrency, security, or hard diagnosis.",
|
|
170
170
|
"When overriding a subagent model, use an exact authenticated provider/model-id from the live catalog below. Do not invent aliases or fuzzy names.",
|
|
171
|
+
"Before launching a new group of subagents, choose a short task slug and name each new child <task>-<role>[-n], for example login-api or login-test2. Use only plan, research, ui, api, build, test, review, browser, security, perf, or merge as roles; leave existing names unchanged. After the final launch, print name | agent kind | role | model | worktree, then use each name in prompts, handoffs, and results.",
|
|
171
172
|
catalog ??
|
|
172
173
|
"Authenticated subagent model catalog becomes available after session start.",
|
|
173
174
|
];
|
|
@@ -184,7 +185,10 @@ const ThinkingLevelSchema = Type.Union(
|
|
|
184
185
|
);
|
|
185
186
|
|
|
186
187
|
const SubagentParams = Type.Object({
|
|
187
|
-
name: Type.String({
|
|
188
|
+
name: Type.String({
|
|
189
|
+
description:
|
|
190
|
+
"Short stable label for the subagent; for a new coordinated group use <task>-<role>[-n] (shown in the widget and pane title)",
|
|
191
|
+
}),
|
|
188
192
|
task: Type.String({ description: "Task/prompt for the sub-agent" }),
|
|
189
193
|
agent: Type.Optional(
|
|
190
194
|
Type.String({
|