pi-cohort 2.0.0 → 3.0.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,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.0.0] - 2026-07-02
4
+
5
+ Completes the `pi-subagents` -> `pi-cohort` rename by rebranding the last user-facing identifiers that still carried the old name.
6
+
7
+ ### Changed
8
+ - **BREAKING:** Renamed the `/subagents-doctor` slash command to `/cohort-doctor`. The old name is gone; update any muscle-memory or scripted invocations.
9
+ - **BREAKING:** Moved the extension config file from `<PI_CODING_AGENT_DIR>/extensions/subagent/config.json` to `<PI_CODING_AGENT_DIR>/extensions/pi-cohort/config.json`, aligning it with where `pi install npm:pi-cohort` places the extension. An existing `extensions/subagent/config.json` is no longer read; move it to the new path. The same rename applies to the default intercom-bridge settings dir and the documented `instructionFile` relative-path root.
10
+ - Rebranded the internal async widget and grand-total status keys (`subagent-async` -> `pi-cohort-async`, `subagents-grand-total` -> `pi-cohort-grand-total`). No user action required.
11
+
12
+ ## [2.0.1] - 2026-07-02
13
+
14
+ ### Fixed
15
+ - Removed the stale `pi-subagents` banner image and demo video from the README; they carried the old branding and rendered wrong on the GitHub and npm package pages.
16
+
3
17
  ## [2.0.0] - 2026-07-02
4
18
 
5
19
  First public npm release under the new name. Breaking public-identity change: package renamed, distribution moved from git-tag pins to npm.
package/README.md CHANGED
@@ -1,13 +1,7 @@
1
- <p>
2
- <img src="https://raw.githubusercontent.com/jjuraszek/pi-cohort/main/banner.png" alt="pi-cohort" width="1100">
3
- </p>
4
-
5
1
  # pi-cohort
6
2
 
7
3
  `pi-cohort` lets Pi delegate work to focused child agents. Use it for code review, scouting, implementation, parallel audits, saved workflows, background jobs, and anything else that benefits from a second or third set of model eyes.
8
4
 
9
- https://github.com/user-attachments/assets/702554ec-faaf-4635-80aa-fb5d6e292fd1
10
-
11
5
  ## Installation
12
6
 
13
7
  ```bash
@@ -194,7 +188,7 @@ Show me the current async runs.
194
188
  If something feels misconfigured, run:
195
189
 
196
190
  ```text
197
- /subagents-doctor
191
+ /cohort-doctor
198
192
  ```
199
193
 
200
194
  or ask:
@@ -263,7 +257,7 @@ If a child appears stalled, needs-attention notices can show up in the parent se
263
257
  If messages do not show up, run:
264
258
 
265
259
  ```text
266
- /subagents-doctor
260
+ /cohort-doctor
267
261
  ```
268
262
 
269
263
  For normal use, you do not need to configure anything. Advanced users can tune the bridge with `intercomBridge` in the configuration section below.
@@ -290,7 +284,7 @@ Skip this section until you want exact syntax.
290
284
  | `/chain agent1 "task1" -> agent2 "task2"` | Run agents in sequence |
291
285
  | `/parallel agent1 "task1" -> agent2 "task2"` | Run agents in parallel |
292
286
  | `/run-chain <chainName> -- <task>` | Launch a saved `.chain.md` or `.chain.json` workflow |
293
- | `/subagents-doctor` | Show read-only setup diagnostics |
287
+ | `/cohort-doctor` | Show read-only setup diagnostics |
294
288
 
295
289
  Commands validate agent names locally, support tab completion, and send results back into the conversation.
296
290
 
@@ -400,7 +394,7 @@ Agent locations, lowest to highest priority:
400
394
 
401
395
  | Scope | Path |
402
396
  |-------|------|
403
- | Builtin | `<agent-dir>/extensions/subagent/agents/` |
397
+ | Builtin | `<agent-dir>/extensions/pi-cohort/agents/` |
404
398
  | User (global) | `~/.agents/*.md` |
405
399
  | User (pi profile) | `<PI_CODING_AGENT_DIR>/agents/*.md` |
406
400
  | Project (legacy) * | `<level>/.agents/*.md` |
@@ -953,7 +947,7 @@ After a worktree parallel step completes, per-agent diff stats are appended to t
953
947
 
954
948
  ## Configuration
955
949
 
956
- `pi-cohort` reads optional JSON config from `<PI_CODING_AGENT_DIR>/extensions/subagent/config.json`.
950
+ `pi-cohort` reads optional JSON config from `<PI_CODING_AGENT_DIR>/extensions/pi-cohort/config.json`.
957
951
 
958
952
  ### `PI_CODING_AGENT_DIR`
959
953
 
@@ -1037,7 +1031,7 @@ Controls whether subagents receive runtime intercom coordination instructions an
1037
1031
  Fields:
1038
1032
 
1039
1033
  - `mode`: default `always`; use `fork-only` to inject only for forked runs, or `off` to disable the bridge.
1040
- - `instructionFile`: optional Markdown template replacing the default bridge instructions. `{orchestratorTarget}` is interpolated. Relative paths resolve from `~/.pi/agent/extensions/subagent/`.
1034
+ - `instructionFile`: optional Markdown template replacing the default bridge instructions. `{orchestratorTarget}` is interpolated. Relative paths resolve from `~/.pi/agent/extensions/pi-cohort/`.
1041
1035
 
1042
1036
  Bridge activation also requires `pi-intercom` to be installed and enabled through `pi install npm:pi-intercom` or a legacy local extension checkout, a targetable current session name or fallback alias, and `pi-intercom` in any explicit agent `extensions` allowlist.
1043
1037
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-cohort",
3
- "version": "2.0.0",
3
+ "version": "3.0.0",
4
4
  "description": "Delegate Pi work to focused child agents: code review, scouting, implementation, parallel audits, saved chains, and background jobs.",
5
5
  "author": "Jacek Juraszek",
6
6
  "license": "MIT",
@@ -33,7 +33,7 @@ Humans often use the slash-command layer instead:
33
33
  - `/chain` — launch a chain of steps
34
34
  - `/parallel` — launch top-level parallel tasks
35
35
  - `/run-chain` — launch a saved `.chain.md` or `.chain.json` workflow
36
- - `/subagents-doctor` — diagnose setup, discovery, async paths, and intercom bridge state
36
+ - `/cohort-doctor` — diagnose setup, discovery, async paths, and intercom bridge state
37
37
 
38
38
  Prefer the tool when you are writing agent logic. Prefer the slash commands when
39
39
  you are guiding a human through an interactive flow.
@@ -349,7 +349,7 @@ Use diagnostics when setup or child startup looks wrong:
349
349
  subagent({ action: "doctor" })
350
350
  ```
351
351
 
352
- Humans can use `/subagents-doctor` for the same read-only report. It checks runtime paths, discovery counts, async support, current session context, and intercom bridge state.
352
+ Humans can use `/cohort-doctor` for the same read-only report. It checks runtime paths, discovery counts, async support, current session context, and intercom bridge state.
353
353
 
354
354
  ### Subagent control
355
355
 
@@ -497,7 +497,7 @@ Or inspects unresolved asks first:
497
497
  intercom({ action: "pending" })
498
498
  ```
499
499
 
500
- If intercom messages do not show up, run `subagent({ action: "doctor" })` or `/subagents-doctor`.
500
+ If intercom messages do not show up, run `subagent({ action: "doctor" })` or `/cohort-doctor`.
501
501
 
502
502
  ## Management Mode
503
503
 
@@ -4,13 +4,13 @@ import type { ExtensionConfig } from "../shared/types.ts";
4
4
  import { getAgentDir } from "../shared/utils.ts";
5
5
 
6
6
  export function loadConfig(): ExtensionConfig {
7
- const configPath = path.join(getAgentDir(), "extensions", "subagent", "config.json");
7
+ const configPath = path.join(getAgentDir(), "extensions", "pi-cohort", "config.json");
8
8
  try {
9
9
  if (fs.existsSync(configPath)) {
10
10
  return JSON.parse(fs.readFileSync(configPath, "utf-8")) as ExtensionConfig;
11
11
  }
12
12
  } catch (error) {
13
- console.error(`Failed to load subagent config from '${configPath}':`, error);
13
+ console.error(`Failed to load pi-cohort config from '${configPath}':`, error);
14
14
  }
15
15
  return {};
16
16
  }
@@ -8,7 +8,7 @@
8
8
  * Modes: single (agent + task), parallel (tasks[]), chain (chain[] with {previous})
9
9
  * Toggle: async parameter (default: false, configurable via config.json)
10
10
  *
11
- * Config file: ~/.pi/agent/extensions/subagent/config.json
11
+ * Config file: ~/.pi/agent/extensions/pi-cohort/config.json
12
12
  * { "asyncByDefault": true, "forceTopLevelAsync": true, "maxSubagentDepth": 1, "showRosterOnStart": true, "intercomBridge": { "mode": "always", "instructionFile": "./intercom-bridge.md" }, "worktreeSetupHook": "./scripts/setup-worktree.mjs" }
13
13
  */
14
14
 
@@ -22,7 +22,7 @@ function defaultIntercomConfigPath(agentDir = defaultAgentDir()): string {
22
22
  }
23
23
 
24
24
  function defaultSubagentConfigDir(agentDir = defaultAgentDir()): string {
25
- return path.join(agentDir, "extensions", "subagent");
25
+ return path.join(agentDir, "extensions", "pi-cohort");
26
26
  }
27
27
 
28
28
  const DEFAULT_INTERCOM_TARGET_PREFIX = "subagent-chat";
@@ -929,8 +929,8 @@ export const RESULTS_DIR = path.join(TEMP_ROOT_DIR, "async-subagent-results");
929
929
  export const ASYNC_DIR = path.join(TEMP_ROOT_DIR, "async-subagent-runs");
930
930
  export const CHAIN_RUNS_DIR = path.join(TEMP_ROOT_DIR, "chain-runs");
931
931
  export const TEMP_ARTIFACTS_DIR = path.join(TEMP_ROOT_DIR, "artifacts");
932
- export const WIDGET_KEY = "subagent-async";
933
- export const GRAND_TOTAL_STATUS_KEY = "subagents-grand-total";
932
+ export const WIDGET_KEY = "pi-cohort-async";
933
+ export const GRAND_TOTAL_STATUS_KEY = "pi-cohort-grand-total";
934
934
  export const SLASH_RESULT_TYPE = "subagent-slash-result";
935
935
  export const SLASH_SUBAGENT_REQUEST_EVENT = "subagent:slash:request";
936
936
  export const SLASH_SUBAGENT_STARTED_EVENT = "subagent:slash:started";
@@ -557,8 +557,8 @@ export function registerSlashCommands(
557
557
  });
558
558
 
559
559
 
560
- pi.registerCommand("subagents-doctor", {
561
- description: "Show subagent diagnostics",
560
+ pi.registerCommand("cohort-doctor", {
561
+ description: "Show pi-cohort diagnostics",
562
562
  handler: async (_args, ctx) => {
563
563
  await runSlashSubagent(pi, ctx, { action: "doctor" });
564
564
  },