@maxiaochao/pi-toolkit 0.13.0 → 0.13.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## 2026-10-21 - v0.13.2
2
+
3
+ - make agent-team user-invoked only and add post-release workflow/npm/tarball verification
4
+
5
+ ## Unreleased
6
+
7
+ - Make Agent Team user-invoked only through `/skill:agent-team`, hidden from automatic model selection.
8
+ - Add `npm run release:check -- vX.Y.Z` to wait for GitHub publication and verify exact npm versions, remote tags, integrity, and all tarball contents against the release commit, including coordinated child releases.
9
+
10
+ ## 2026-10-21 - v0.13.1
11
+
12
+ - herdr-subagents v0.7.2: clarify final answer submission through subagent_report
13
+ - Herdr Subagents: clarify that child tasks must finish through `subagent_report`, not a normal text reply; remove the process-exit condition from the report instructions.
14
+
1
15
  ## 2026-10-20 - v0.13.0
2
16
 
3
17
  - background-tasks v0.1.0: bundle background shell tasks with runtime limits, bounded logs, completion notifications and /bg controls
package/README.md CHANGED
@@ -77,7 +77,7 @@ bash scripts/install.sh
77
77
  | `html-artifact` | Build self-contained HTML explainers and diagrams |
78
78
  | `pdlog` | Decompress and inspect Pudu `.pdlog` files |
79
79
  | `herdr` | Control Herdr workspaces, tabs, panes, and agents |
80
- | `agent-team` | Let the main agent dispatch concurrent analysis using configured models and roles, collect results, and maintain investigation records; run extra review rounds as needed |
80
+ | `agent-team` | Manually invoke `/skill:agent-team` for concurrent analysis with configured models and roles, result collection, and investigation records; hidden from automatic model selection |
81
81
  | `tapd` | Investigate and operate on TAPD items with workspace, evidence, and safe-download guardrails |
82
82
 
83
83
  Package-specific skills, such as `pi-worktree`, are documented by their child package.
@@ -85,3 +85,17 @@ Package-specific skills, such as `pi-worktree`, are documented by their child pa
85
85
  ## Repository
86
86
 
87
87
  This repository is an npm workspace. Child implementations live under `packages/*`; `extensions/` contains only the toolkit-only BTW module. Development, testing, media generation, and release rules are documented in [AGENTS.md](AGENTS.md).
88
+
89
+ ### Post-release verification
90
+
91
+ After pushing a release, run from this checkout:
92
+
93
+ ```bash
94
+ npm run release:check -- v0.13.1
95
+ # Wait up to 15 minutes, polling every 15 seconds:
96
+ npm run release:check -- v0.13.1 --timeout 900 --interval 15
97
+ ```
98
+
99
+ Omit the tag to use the current root `package.json` version. Requires Node.js, Git, npm, tar, authenticated GitHub CLI (`gh auth login`), and local release tags (`git fetch origin --tags` if needed).
100
+
101
+ The read-only check verifies remote tag commits, waits for the matching `publish.yml` run to succeed, and checks exact public npm versions and tarball integrity. It compares every packaged file and mode against an isolated snapshot of the release tag, including an optional coordinated child release. It uses the tag rather than uncommitted checkout changes, never installs or publishes, and removes temporary downloads. Failures exit nonzero; only a pending workflow or npm `E404` is retried within the shared timeout (600 seconds by default). Local packing uses `--ignore-scripts`, matching this repository's source-only packages; packages that add generated prepack output will need this check updated.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maxiaochao/pi-toolkit",
3
- "version": "0.13.0",
3
+ "version": "0.13.2",
4
4
  "description": "Personal pi coding agent toolkit: background tasks, scheduler, /btw, /cache_export, apply_patch, browser automation, and bundled theme/skills.",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -61,10 +61,11 @@
61
61
  "ws": "^8.19.0"
62
62
  },
63
63
  "scripts": {
64
- "test": "node tests/package-layout.mjs && node tests/release-check.mjs && npm --prefix packages/todo test && npm --prefix packages/cache-export test && npm --prefix packages/codex-edit test && npm --prefix packages/herdr-subagents test && npm --prefix packages/openai-account-pool test && npm --prefix packages/scheduler test && npm --prefix packages/background-tasks test && npm --prefix packages/worktree test && node --experimental-strip-types extensions/btw/tests/history.mjs",
65
- "test:root": "node tests/package-layout.mjs && node tests/release-check.mjs && node --experimental-strip-types extensions/btw/tests/history.mjs",
64
+ "test": "node tests/package-layout.mjs && node tests/release-check.mjs && node tests/post-release-check.mjs && npm --prefix packages/todo test && npm --prefix packages/cache-export test && npm --prefix packages/codex-edit test && npm --prefix packages/herdr-subagents test && npm --prefix packages/openai-account-pool test && npm --prefix packages/scheduler test && npm --prefix packages/background-tasks test && npm --prefix packages/worktree test && node --experimental-strip-types extensions/btw/tests/history.mjs",
65
+ "test:root": "node tests/package-layout.mjs && node tests/release-check.mjs && node tests/post-release-check.mjs && node --experimental-strip-types extensions/btw/tests/history.mjs",
66
66
  "load-test": "pi -ne -e ./packages/cache-export/extensions/cache-export.ts && pi -ne -e ./extensions/btw/index.ts && pi -ne -e ./packages/codex-edit/extensions/codex-edit.ts && pi -ne -e ./packages/herdr-subagents/extensions/herdr-subagents.ts && pi -ne -e ./packages/scheduler/extensions/scheduler.ts && pi -ne -e ./packages/background-tasks/extensions/background-tasks.ts && pi -ne -e ./packages/worktree/extensions/worktree.ts && npm --prefix packages/background-tasks run load-test -- --toolkit",
67
67
  "load-test:root": "pi -ne -e ./extensions/btw/index.ts",
68
+ "release:check": "node scripts/post-release-check.mjs",
68
69
  "eval:agents": "node evaluations/agents-md/run.mjs",
69
70
  "eval:agents:test": "node evaluations/agents-md/tests/run-tests.mjs",
70
71
  "postinstall": "node scripts/install-agents.mjs"
@@ -1,3 +1,8 @@
1
+ ## 2026-10-21 - v0.7.2
2
+
3
+ - clarify final answer submission through subagent_report
4
+ - Clarify child report instructions: submit the final result through `subagent_report` when work finishes or cannot be completed, rather than tying submission to process exit or ending with a normal text reply.
5
+
1
6
  ## 2026-10-20 - v0.7.1
2
7
 
3
8
  - clarify Persona responsibilities and dispatch guidance
@@ -52,7 +52,7 @@ Cleanup belongs to the Pi session that created the run. Starting a new Pi sessio
52
52
 
53
53
  ## Result protocol
54
54
 
55
- The child must call `subagent_report` once with a terminal status:
55
+ When the task finishes or cannot be completed, the child must call `subagent_report` once instead of ending with a normal text reply. The terminal status is:
56
56
 
57
57
  - `completed`: the requested work finished.
58
58
  - `failed`: it cannot be completed; include `error`.
@@ -17,6 +17,7 @@ It verifies:
17
17
  - required explicit Personas in the tool schema and execution, including legacy single-task argument normalization;
18
18
  - model-facing role selection guidance for broad independent review, codebase investigation, file-changing work, and charter-driven agent-team execution;
19
19
  - effective Persona descriptions in parent listings, corresponding bodies in child system prompts, and unchanged read/write tool boundaries;
20
+ - child system prompts require a terminal `subagent_report` when work finishes or cannot be completed, not a normal text reply or a process-exit condition;
20
21
  - rejection of missing, blank, invalid, and unknown Personas before creating runs, while custom Personas remain supported;
21
22
  - explicit rejection of parallel write-capable tasks with the conflicting task, Persona, and corrective action;
22
23
  - waiting through a delayed authoritative report after a prompt transport error while the Pi process is alive;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maxiaochao/pi-herdr-subagents",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "Run inspectable interactive Pi subagent batches through Herdr.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -11,7 +11,7 @@ export function reportProtocolPrompt(systemPrompt: string, kind: ReportPromptKin
11
11
  TURN_INTRO[kind],
12
12
  systemPrompt.trim(),
13
13
  "",
14
- "Before this process exits, call subagent_report exactly once with a terminal result.",
14
+ "Submit your final answer by calling the subagent_report tool.",
15
15
  "Put the complete final answer in result, a concise parent-facing paragraph in summary, and list any useful document paths.",
16
16
  "Use status=completed when the task is finished, or status=failed with error when it cannot be completed.",
17
17
  "Do not pause for parent input; make a reasonable assumption or report failed with the missing requirement.",
@@ -155,7 +155,8 @@ async function run(tasks, concurrency, herdr = fakeHerdr(), signal) {
155
155
  const directory = parallel.details.tasks[index].recordDirectory;
156
156
  const instructions = readFileSync(join(directory, "system-prompt.md"), "utf8");
157
157
  assert.ok(instructions.startsWith(personas.get(name).systemPrompt), "Each child must receive its selected Persona body");
158
- assert.match(instructions, /call subagent_report exactly once/);
158
+ assert.ok(instructions.includes("Submit your final answer by calling the subagent_report tool."));
159
+ assert.doesNotMatch(instructions, /process exits/);
159
160
  }
160
161
 
161
162
  const projectAgents = join(root, ".pi", "herdr-subagents", "agents");
@@ -1,13 +1,14 @@
1
1
  ---
2
2
  name: agent-team
3
- description: 多模型协作分析:主 Agent 按配置的模型和角色调度独立子代理,汇总结果并维护调查档案。用于用户要求多模型分析或对抗评审,或高代价决策需要独立复核时。
3
+ description: 多模型协作分析:按配置的模型和角色调度独立子代理,汇总结果并维护调查档案。
4
+ disable-model-invocation: true
4
5
  ---
5
6
 
6
7
  当前会话是**主 Agent**,负责核心调度:按配置中的模型和角色启动独立子代理,分派用户问题,收集结果并维护调查档案。主 Agent 根据结果决定直接回答、补充核验或继续下一轮。子代理不需要常驻;跨轮连续性来自持久调查档案和逻辑成员身份,而不是聊天记忆。
7
8
 
8
- ## 何时值得开
9
+ ## 调用方式
9
10
 
10
- 用户明确要求多模型分析或对抗评审时开启;主 Agent 也可在结论会驱动高代价动作(改内核、下线设备、向客户定责)时主动开启。查一个事实、读一份文件用不上。
11
+ 用户通过 `/skill:agent-team` 显式加载后开启。此 skill 不参与模型自动选择;高代价决策也不构成自动加载或启动的授权。
11
12
 
12
13
  ## 1. 建立调查档案
13
14