pi-crew 0.2.2 → 0.2.4

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 (354) hide show
  1. package/AGENTS.md +57 -32
  2. package/CHANGELOG.md +466 -413
  3. package/LICENSE +21 -21
  4. package/NOTICE.md +16 -16
  5. package/README.md +323 -323
  6. package/docs/FEATURE_INTAKE.md +126 -0
  7. package/docs/HARNESS.md +86 -0
  8. package/docs/HARNESS_BACKLOG.md +41 -0
  9. package/docs/TEST_MATRIX.md +49 -0
  10. package/docs/actions-reference.md +595 -595
  11. package/docs/architecture.md +180 -180
  12. package/docs/code-review-2026-05-11.md +592 -0
  13. package/docs/commands-reference.md +347 -347
  14. package/docs/comparison-pi-subagents-vs-pi-crew.md +303 -0
  15. package/docs/decisions/0001-durable-state.md +41 -0
  16. package/docs/decisions/0002-child-process-for-async.md +42 -0
  17. package/docs/decisions/0003-depth-guard.md +36 -0
  18. package/docs/decisions/0004-execfile-over-exec.md +34 -0
  19. package/docs/decisions/0005-no-parameter-properties.md +49 -0
  20. package/docs/decisions/0006-publish-bundled-esm.md +63 -0
  21. package/docs/decisions/0007-active-run-binary-index.md +54 -0
  22. package/docs/decisions/0008-child-pi-warm-pool.md +61 -0
  23. package/docs/decisions/README.md +23 -0
  24. package/docs/followup-plan-2026-05-12.md +463 -0
  25. package/docs/followup-review-2026-05-12.md +297 -0
  26. package/docs/followup-review-round3-2026-05-12.md +342 -0
  27. package/docs/followup-review-round4-2026-05-13.md +107 -0
  28. package/docs/implementation-plan-top3.md +333 -0
  29. package/docs/live-mailbox-runtime.md +36 -36
  30. package/docs/next-upgrade-roadmap.md +808 -808
  31. package/docs/oh-my-pi-research.md +509 -0
  32. package/docs/perf/baseline-2026-05.md +113 -0
  33. package/docs/perf/final-report-2026-05.md +206 -0
  34. package/docs/perf/sprint-1-report.md +71 -0
  35. package/docs/perf/sprint-2-report.md +81 -0
  36. package/docs/perf/sprint-2.5-report.md +53 -0
  37. package/docs/perf/sprint-3-report.md +36 -0
  38. package/docs/perf/sprint-4-report.md +47 -0
  39. package/docs/perf/sprint-5-report.md +51 -0
  40. package/docs/perf/sprint-6-report.md +94 -0
  41. package/docs/perf/sprint-7-report.md +74 -0
  42. package/docs/perf/upgrade-plan-2026-05.md +147 -0
  43. package/docs/pi-subagents3-deep-analysis.md +508 -0
  44. package/docs/product/README.md +31 -0
  45. package/docs/product/platform.md +27 -0
  46. package/docs/product/runtime-safety.md +37 -0
  47. package/docs/product/team-run.md +39 -0
  48. package/docs/product/team-tool.md +37 -0
  49. package/docs/publishing.md +65 -65
  50. package/docs/resource-formats.md +134 -134
  51. package/docs/runtime-analysis-child-vs-live.md +171 -0
  52. package/docs/runtime-flow.md +148 -148
  53. package/docs/runtime-migration-in-process-analysis.md +250 -0
  54. package/docs/stories/README.md +30 -0
  55. package/docs/stories/backlog.md +36 -0
  56. package/docs/templates/decision.md +27 -0
  57. package/docs/templates/story.md +44 -0
  58. package/docs/templates/validation-report.md +32 -0
  59. package/docs/usage.md +238 -238
  60. package/index.ts +7 -6
  61. package/install.mjs +65 -65
  62. package/package.json +107 -99
  63. package/schema.json +222 -222
  64. package/skills/child-pi-spawning/SKILL.md +213 -0
  65. package/skills/context-artifact-hygiene/SKILL.md +32 -0
  66. package/skills/event-log-tracing/SKILL.md +299 -0
  67. package/skills/git-master/SKILL.md +225 -24
  68. package/skills/live-agent-lifecycle/SKILL.md +192 -0
  69. package/skills/mailbox-interactive/SKILL.md +300 -19
  70. package/skills/model-routing-context/SKILL.md +94 -0
  71. package/skills/multi-perspective-review/SKILL.md +88 -0
  72. package/skills/read-only-explorer/SKILL.md +250 -26
  73. package/skills/safe-bash/SKILL.md +307 -21
  74. package/skills/verification-before-done/SKILL.md +11 -2
  75. package/skills/widget-rendering/SKILL.md +258 -0
  76. package/skills/workspace-isolation/SKILL.md +202 -0
  77. package/skills/worktree-isolation/SKILL.md +202 -18
  78. package/src/adapters/claude-adapter.ts +25 -25
  79. package/src/adapters/codex-adapter.ts +21 -21
  80. package/src/adapters/cursor-adapter.ts +17 -17
  81. package/src/adapters/export-util.ts +137 -137
  82. package/src/adapters/index.ts +15 -15
  83. package/src/adapters/registry.ts +18 -18
  84. package/src/adapters/types.ts +23 -23
  85. package/src/agents/agent-config.ts +38 -38
  86. package/src/agents/agent-serializer.ts +38 -38
  87. package/src/agents/discover-agents.ts +121 -118
  88. package/src/config/config.ts +740 -858
  89. package/src/config/defaults.ts +96 -96
  90. package/src/config/drift-detector.ts +211 -211
  91. package/src/config/markers.ts +327 -327
  92. package/src/config/resilient-parser.ts +109 -108
  93. package/src/config/suggestions.ts +74 -74
  94. package/src/config/types.ts +199 -0
  95. package/src/extension/async-notifier.ts +123 -89
  96. package/src/extension/autonomous-policy.ts +169 -169
  97. package/src/extension/cross-extension-rpc.ts +104 -103
  98. package/src/extension/help.ts +47 -47
  99. package/src/extension/import-index.ts +69 -69
  100. package/src/extension/management.ts +395 -382
  101. package/src/extension/notification-router.ts +116 -116
  102. package/src/extension/notification-sink.ts +51 -51
  103. package/src/extension/project-init.ts +168 -168
  104. package/src/extension/register.ts +859 -668
  105. package/src/extension/registration/artifact-cleanup.ts +15 -15
  106. package/src/extension/registration/command-utils.ts +54 -54
  107. package/src/extension/registration/commands.ts +559 -452
  108. package/src/extension/registration/compaction-guard.ts +125 -125
  109. package/src/extension/registration/subagent-helpers.ts +102 -102
  110. package/src/extension/registration/subagent-tools.ts +220 -158
  111. package/src/extension/registration/team-tool.ts +159 -98
  112. package/src/extension/registration/viewers.ts +29 -0
  113. package/src/extension/result-watcher.ts +128 -128
  114. package/src/extension/run-bundle-schema.ts +89 -89
  115. package/src/extension/run-export.ts +73 -73
  116. package/src/extension/run-import.ts +84 -84
  117. package/src/extension/run-index.ts +94 -94
  118. package/src/extension/run-maintenance.ts +142 -142
  119. package/src/extension/session-summary.ts +8 -8
  120. package/src/extension/team-manager-command.ts +96 -95
  121. package/src/extension/team-recommendation.ts +188 -188
  122. package/src/extension/team-tool/api.ts +5 -2
  123. package/src/extension/team-tool/cancel.ts +224 -209
  124. package/src/extension/team-tool/config-patch.ts +36 -36
  125. package/src/extension/team-tool/context.ts +60 -60
  126. package/src/extension/team-tool/doctor.ts +242 -242
  127. package/src/extension/team-tool/handle-settings.ts +421 -195
  128. package/src/extension/team-tool/inspect.ts +41 -41
  129. package/src/extension/team-tool/lifecycle-actions.ts +139 -139
  130. package/src/extension/team-tool/parallel-dispatch.ts +156 -156
  131. package/src/extension/team-tool/plan.ts +19 -19
  132. package/src/extension/team-tool/respond.ts +112 -111
  133. package/src/extension/team-tool/run.ts +246 -228
  134. package/src/extension/team-tool/status.ts +110 -110
  135. package/src/extension/team-tool-types.ts +13 -13
  136. package/src/extension/team-tool.ts +16 -4
  137. package/src/extension/tool-result.ts +16 -16
  138. package/src/extension/validate-resources.ts +77 -77
  139. package/src/hooks/registry.ts +61 -61
  140. package/src/hooks/types.ts +40 -40
  141. package/src/i18n.ts +184 -184
  142. package/src/observability/correlation.ts +35 -35
  143. package/src/observability/event-to-metric.ts +68 -68
  144. package/src/observability/exporters/adapter.ts +30 -30
  145. package/src/observability/exporters/otlp-exporter.ts +106 -92
  146. package/src/observability/exporters/prometheus-exporter.ts +54 -54
  147. package/src/observability/metric-registry.ts +87 -87
  148. package/src/observability/metric-retention.ts +54 -54
  149. package/src/observability/metric-sink.ts +81 -56
  150. package/src/observability/metrics-primitives.ts +167 -167
  151. package/src/prompt/prompt-runtime.ts +72 -72
  152. package/src/runtime/adaptive-plan.ts +338 -0
  153. package/src/runtime/agent-control.ts +169 -169
  154. package/src/runtime/agent-memory.ts +72 -72
  155. package/src/runtime/agent-observability.ts +114 -114
  156. package/src/runtime/async-marker.ts +26 -26
  157. package/src/runtime/async-runner.ts +153 -79
  158. package/src/runtime/attention-events.ts +28 -28
  159. package/src/runtime/auto-resume.ts +100 -100
  160. package/src/runtime/background-runner.ts +122 -88
  161. package/src/runtime/cancellation.ts +61 -61
  162. package/src/runtime/capability-inventory.ts +116 -116
  163. package/src/runtime/child-pi-pool.ts +68 -0
  164. package/src/runtime/child-pi.ts +541 -463
  165. package/src/runtime/code-summary.ts +247 -247
  166. package/src/runtime/compaction-summary.ts +271 -271
  167. package/src/runtime/concurrency.ts +58 -58
  168. package/src/runtime/crash-recovery.ts +317 -301
  169. package/src/runtime/crew-agent-records.ts +379 -281
  170. package/src/runtime/crew-agent-runtime.ts +60 -60
  171. package/src/runtime/cross-extension-rpc.ts +72 -0
  172. package/src/runtime/custom-tools/irc-tool.ts +201 -201
  173. package/src/runtime/custom-tools/submit-result-tool.ts +90 -90
  174. package/src/runtime/deadletter.ts +47 -47
  175. package/src/runtime/delivery-coordinator.ts +176 -176
  176. package/src/runtime/delta-conflict.ts +360 -360
  177. package/src/runtime/diagnostic-export.ts +102 -102
  178. package/src/runtime/direct-run.ts +35 -35
  179. package/src/runtime/effectiveness.ts +82 -81
  180. package/src/runtime/errors/crew-errors.ts +166 -0
  181. package/src/runtime/event-stream-bridge.ts +92 -92
  182. package/src/runtime/foreground-control.ts +82 -82
  183. package/src/runtime/green-contract.ts +46 -46
  184. package/src/runtime/group-join.ts +234 -106
  185. package/src/runtime/heartbeat-watcher.ts +145 -124
  186. package/src/runtime/iteration-hooks.ts +267 -264
  187. package/src/runtime/live-agent-control.ts +88 -88
  188. package/src/runtime/live-agent-manager.ts +377 -179
  189. package/src/runtime/live-control-realtime.ts +36 -36
  190. package/src/runtime/live-session-runtime.ts +676 -599
  191. package/src/runtime/loop-gates.ts +129 -129
  192. package/src/runtime/manifest-cache.ts +263 -263
  193. package/src/runtime/mcp-proxy.ts +113 -113
  194. package/src/runtime/metric-parser.ts +40 -40
  195. package/src/runtime/model-fallback.ts +282 -274
  196. package/src/runtime/model-resolver.ts +118 -0
  197. package/src/runtime/output-validator.ts +187 -187
  198. package/src/runtime/overflow-recovery.ts +175 -175
  199. package/src/runtime/parallel-research.ts +44 -44
  200. package/src/runtime/parallel-utils.ts +156 -156
  201. package/src/runtime/parent-guard.ts +80 -80
  202. package/src/runtime/phase-progress.ts +217 -217
  203. package/src/runtime/pi-args.ts +165 -165
  204. package/src/runtime/pi-json-output.ts +111 -111
  205. package/src/runtime/pi-spawn.ts +167 -167
  206. package/src/runtime/policy-engine.ts +79 -79
  207. package/src/runtime/post-checks.ts +125 -122
  208. package/src/runtime/post-exit-stdio-guard.ts +86 -86
  209. package/src/runtime/process-status.ts +97 -73
  210. package/src/runtime/progress-event-coalescer.ts +43 -43
  211. package/src/runtime/recovery-recipes.ts +74 -74
  212. package/src/runtime/retry-executor.ts +81 -81
  213. package/src/runtime/role-permission.ts +39 -39
  214. package/src/runtime/run-tracker.ts +99 -0
  215. package/src/runtime/runtime-policy.ts +21 -0
  216. package/src/runtime/runtime-resolver.ts +94 -90
  217. package/src/runtime/scheduler.ts +294 -0
  218. package/src/runtime/semaphore.ts +131 -131
  219. package/src/runtime/sensitive-paths.ts +92 -92
  220. package/src/runtime/session-usage.ts +79 -79
  221. package/src/runtime/settings-store.ts +103 -0
  222. package/src/runtime/sidechain-output.ts +29 -29
  223. package/src/runtime/skill-instructions.ts +222 -222
  224. package/src/runtime/stale-reconciler.ts +198 -189
  225. package/src/runtime/streaming-output.ts +47 -0
  226. package/src/runtime/subagent-manager.ts +404 -395
  227. package/src/runtime/subprocess-tool-registry.ts +67 -67
  228. package/src/runtime/task-display.ts +38 -38
  229. package/src/runtime/task-graph-scheduler.ts +122 -122
  230. package/src/runtime/task-graph.ts +207 -207
  231. package/src/runtime/task-output-context.ts +177 -177
  232. package/src/runtime/task-packet.ts +93 -93
  233. package/src/runtime/task-quality.ts +207 -207
  234. package/src/runtime/task-runner/capabilities.ts +78 -78
  235. package/src/runtime/task-runner/live-executor.ts +131 -113
  236. package/src/runtime/task-runner/progress.ts +119 -119
  237. package/src/runtime/task-runner/prompt-builder.ts +139 -139
  238. package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
  239. package/src/runtime/task-runner/result-utils.ts +14 -14
  240. package/src/runtime/task-runner/run-projection.ts +103 -103
  241. package/src/runtime/task-runner/state-helpers.ts +22 -22
  242. package/src/runtime/task-runner.ts +469 -458
  243. package/src/runtime/team-runner.ts +693 -945
  244. package/src/runtime/usage-tracker.ts +71 -0
  245. package/src/runtime/worker-heartbeat.ts +21 -21
  246. package/src/runtime/worker-startup.ts +57 -57
  247. package/src/runtime/workflow-state.ts +187 -187
  248. package/src/runtime/yield-handler.ts +190 -189
  249. package/src/schema/config-schema.ts +172 -168
  250. package/src/schema/team-tool-schema.ts +126 -125
  251. package/src/schema/validation-types.ts +151 -148
  252. package/src/skills/discover-skills.ts +67 -67
  253. package/src/skills/skill-templates.ts +374 -374
  254. package/src/state/active-run-registry.ts +227 -191
  255. package/src/state/artifact-store.ts +130 -129
  256. package/src/state/atomic-write.ts +262 -178
  257. package/src/state/blob-store.ts +116 -116
  258. package/src/state/contracts.ts +111 -111
  259. package/src/state/event-log-rotation.ts +161 -158
  260. package/src/state/event-log.ts +383 -240
  261. package/src/state/event-reconstructor.ts +217 -217
  262. package/src/state/jsonl-writer.ts +82 -82
  263. package/src/state/locks.ts +146 -148
  264. package/src/state/mailbox.ts +446 -405
  265. package/src/state/state-store.ts +364 -351
  266. package/src/state/task-claims.ts +44 -44
  267. package/src/state/types.ts +285 -285
  268. package/src/state/usage.ts +29 -29
  269. package/src/subagents/async-entry.ts +1 -1
  270. package/src/subagents/index.ts +3 -3
  271. package/src/subagents/live/control.ts +1 -1
  272. package/src/subagents/live/manager.ts +1 -1
  273. package/src/subagents/live/realtime.ts +1 -1
  274. package/src/subagents/live/session-runtime.ts +1 -1
  275. package/src/subagents/manager.ts +1 -1
  276. package/src/subagents/spawn.ts +1 -1
  277. package/src/teams/discover-teams.ts +116 -116
  278. package/src/teams/team-config.ts +27 -27
  279. package/src/teams/team-serializer.ts +38 -38
  280. package/src/types/diff.d.ts +18 -18
  281. package/src/ui/agent-management-overlay.ts +144 -144
  282. package/src/ui/crew-widget.ts +487 -370
  283. package/src/ui/dashboard-panes/agents-pane.ts +109 -28
  284. package/src/ui/dashboard-panes/cancellation-pane.ts +42 -42
  285. package/src/ui/dashboard-panes/capability-pane.ts +59 -59
  286. package/src/ui/dashboard-panes/health-pane.ts +30 -30
  287. package/src/ui/dashboard-panes/mailbox-pane.ts +35 -35
  288. package/src/ui/dashboard-panes/progress-pane.ts +30 -30
  289. package/src/ui/dashboard-panes/transcript-pane.ts +10 -10
  290. package/src/ui/heartbeat-aggregator.ts +63 -63
  291. package/src/ui/keybinding-map.ts +97 -94
  292. package/src/ui/live-conversation-overlay.ts +152 -0
  293. package/src/ui/live-run-sidebar.ts +180 -180
  294. package/src/ui/mascot.ts +442 -442
  295. package/src/ui/overlays/agent-picker-overlay.ts +57 -57
  296. package/src/ui/overlays/confirm-overlay.ts +58 -58
  297. package/src/ui/overlays/mailbox-compose-overlay.ts +144 -144
  298. package/src/ui/overlays/mailbox-compose-preview.ts +63 -63
  299. package/src/ui/overlays/mailbox-detail-overlay.ts +122 -122
  300. package/src/ui/pi-ui-compat.ts +57 -57
  301. package/src/ui/powerbar-publisher.ts +221 -197
  302. package/src/ui/render-scheduler.ts +216 -143
  303. package/src/ui/run-action-dispatcher.ts +118 -117
  304. package/src/ui/run-dashboard.ts +526 -464
  305. package/src/ui/run-event-bus.ts +208 -208
  306. package/src/ui/run-snapshot-cache.ts +826 -777
  307. package/src/ui/settings-overlay.ts +721 -0
  308. package/src/ui/snapshot-types.ts +86 -70
  309. package/src/ui/theme-adapter.ts +190 -190
  310. package/src/ui/tool-progress-formatter.ts +89 -0
  311. package/src/ui/transcript-cache.ts +94 -94
  312. package/src/ui/transcript-viewer.ts +335 -335
  313. package/src/utils/conflict-detect.ts +662 -0
  314. package/src/utils/env-filter.ts +30 -0
  315. package/src/utils/file-coalescer.ts +86 -86
  316. package/src/utils/frontmatter.ts +68 -68
  317. package/src/utils/fs-watch.ts +88 -31
  318. package/src/utils/gh-protocol.ts +479 -0
  319. package/src/utils/ids.ts +17 -17
  320. package/src/utils/incremental-reader.ts +104 -104
  321. package/src/utils/internal-error.ts +6 -6
  322. package/src/utils/names.ts +27 -27
  323. package/src/utils/paths.ts +102 -63
  324. package/src/utils/redaction.ts +44 -44
  325. package/src/utils/resolve-shell.ts +34 -0
  326. package/src/utils/safe-paths.ts +47 -47
  327. package/src/utils/scan-cache.ts +136 -136
  328. package/src/utils/sleep.ts +2 -1
  329. package/src/utils/sse-parser.ts +134 -134
  330. package/src/utils/task-name-generator.ts +337 -337
  331. package/src/utils/timings.ts +33 -33
  332. package/src/utils/visual.ts +243 -198
  333. package/src/workflows/discover-workflows.ts +139 -139
  334. package/src/workflows/validate-workflow.ts +40 -40
  335. package/src/workflows/workflow-config.ts +26 -26
  336. package/src/workflows/workflow-serializer.ts +32 -32
  337. package/src/worktree/branch-freshness.ts +45 -45
  338. package/src/worktree/cleanup.ts +75 -72
  339. package/src/worktree/worktree-manager.ts +188 -146
  340. package/teams/default.team.md +12 -12
  341. package/teams/fast-fix.team.md +11 -11
  342. package/teams/implementation.team.md +18 -18
  343. package/teams/parallel-research.team.md +14 -14
  344. package/teams/research.team.md +11 -11
  345. package/teams/review.team.md +12 -12
  346. package/tsconfig.json +19 -19
  347. package/workflows/default.workflow.md +30 -30
  348. package/workflows/fast-fix.workflow.md +23 -23
  349. package/workflows/implementation.workflow.md +43 -43
  350. package/workflows/parallel-research.workflow.md +46 -46
  351. package/workflows/research.workflow.md +22 -22
  352. package/workflows/review.workflow.md +30 -30
  353. package/skills/task-packet/SKILL.md +0 -28
  354. package/skills/verify-evidence/SKILL.md +0 -27
package/README.md CHANGED
@@ -1,323 +1,323 @@
1
- # pi-crew
2
-
3
- **Coordinate AI agent teams inside [Pi](https://github.com/nicekate/pi-coding-agent).**
4
-
5
- pi-crew is a Pi extension that orchestrates autonomous multi-agent workflows — research, implementation, review, testing, and more — with durable state, parallel execution, worktree isolation, and safe defaults.
6
-
7
- ```text
8
- npm: pi-crew
9
- repo: https://github.com/baphuongna/pi-crew
10
- ```
11
-
12
- **v0.2.0**: Security hardening + 76% faster startup. See [CHANGELOG.md](CHANGELOG.md).
13
-
14
- ---
15
-
16
- ## Features
17
-
18
- - **One Pi tool** — `team` handles routing, planning, execution, review, and cleanup
19
- - **Autonomous delegation** — policy injection decides when/how to delegate based on task complexity
20
- - **Real child Pi workers** — each task spawns a separate Pi process by default; scaffold/dry-run opt-out
21
- - **Adaptive planning** — implementation workflow lets a planner agent decide subagent fanout
22
- - **Parallel execution** — tasks in the same phase run concurrently with configurable concurrency
23
- - **Durable state** — manifest, tasks, events, artifacts all persisted to disk
24
- - **Async/background runs** — detached runs survive session switches with completion notifications
25
- - **Worktree isolation** — opt-in git worktrees per task for safe parallel edits
26
- - **Rich UI** — live widget, dashboard, progress tracking, model/token display
27
- - **Observability** — metrics registry, Prometheus/OTLP exporters, heartbeat watching, deadletter queue
28
- - **Resource management** — create/update/delete agents, teams, workflows with validation
29
- - **Import/export** — portable run bundles for sharing and archiving
30
-
31
- ---
32
-
33
- ## Install
34
-
35
- ```bash
36
- pi install npm:pi-crew
37
- ```
38
-
39
- Local development:
40
-
41
- ```bash
42
- pi install ./pi-crew
43
- ```
44
-
45
- Post-install config bootstrap:
46
-
47
- ```bash
48
- pi-crew # after npm install
49
- node ./pi-crew/install.mjs # from local clone
50
- ```
51
-
52
- ---
53
-
54
- ## Quick Start
55
-
56
- ### 1. Initialize project
57
-
58
- ```text
59
- /team-init
60
- ```
61
-
62
- ### 2. Run a team
63
-
64
- ```text
65
- /team-run Investigate failing tests and propose a fix
66
- ```
67
-
68
- Or via tool call:
69
-
70
- ```json
71
- {
72
- "action": "run",
73
- "team": "default",
74
- "goal": "Investigate failing tests and propose a fix"
75
- }
76
- ```
77
-
78
- ### 3. Check status
79
-
80
- ```text
81
- /team-status <runId>
82
- /team-dashboard
83
- ```
84
-
85
- ### 4. Get a recommendation
86
-
87
- When unsure which team/workflow fits:
88
-
89
- ```json
90
- {
91
- "action": "recommend",
92
- "goal": "Refactor auth flow and add tests"
93
- }
94
- ```
95
-
96
- ---
97
-
98
- ## Builtin Teams
99
-
100
- | Team | Workflow | Mục đích |
101
- |------|----------|----------|
102
- | `default` | explore → plan → execute → verify | Cân bằng, đa năng |
103
- | `fast-fix` | explore → execute → verify | Sửa bug nhỏ nhanh |
104
- | `implementation` | Adaptive planner quyết fanout | Multi-file implementation |
105
- | `review` | explore → code-review → security-review → verify | Code review + security audit |
106
- | `research` | explore → analyze → write | Nghiên cứu và viết tài liệu |
107
-
108
- ## Builtin Agents
109
-
110
- ```
111
- analyst · critic · executor · explorer · planner · reviewer
112
- security-reviewer · test-engineer · verifier · writer
113
- ```
114
-
115
- ---
116
-
117
- ## Runtime Safety
118
-
119
- By default, `run` launches each task as a **separate child Pi process**. Workers execute independently and stream output to durable state.
120
-
121
- Scaffold/dry-run mode (no real workers):
122
-
123
- ```json
124
- { "runtime": { "mode": "scaffold" } }
125
- ```
126
-
127
- Disable workers globally:
128
-
129
- ```json
130
- { "executeWorkers": false }
131
- ```
132
-
133
- Worktree mode is **opt-in** and requires a clean repo:
134
-
135
- ```json
136
- {
137
- "action": "run",
138
- "team": "implementation",
139
- "goal": "Refactor auth",
140
- "workspaceMode": "worktree"
141
- }
142
- ```
143
-
144
- ---
145
-
146
- ## Configuration
147
-
148
- ### Config Paths
149
-
150
- | Scope | Path |
151
- |-------|------|
152
- | User | `~/.pi/agent/extensions/pi-crew/config.json` |
153
- | Project (new) | `.crew/config.json` |
154
- | Project (legacy) | `.pi/teams/config.json` |
155
-
156
- ### Quick Config
157
-
158
- ```text
159
- /team-config # view
160
- /team-config asyncByDefault=true # update
161
- /team-config runtime.mode=scaffold # scaffold mode
162
- /team-config --unset=asyncByDefault # reset
163
- /team-config autonomous.profile=assisted --project # project scope
164
- ```
165
-
166
- ### Key Settings
167
-
168
- | Section | Key Settings | Default |
169
- |---------|-------------|---------|
170
- | **Runtime** | `mode`: `auto` \| `scaffold` \| `child-process` \| `live-session` | `auto` |
171
- | **Concurrency** | `limits.maxConcurrentWorkers` | workflow-dependent (2–4) |
172
- | **Async** | `asyncByDefault`, `runtime.groupJoin` | `false`, `smart` |
173
- | **Autonomy** | `profile`: `manual` \| `suggested` \| `assisted` \| `aggressive` | `suggested` |
174
- | **UI** | `widgetPlacement`, `dashboardPlacement`, `showModel`, `showTokens` | compact widget |
175
- | **Reliability** | `autoRetry`, `autoRecover`, `deadletterThreshold` | all opt-in |
176
- | **Observability** | `prometheus.enabled`, `otlp.enabled` | opt-in |
177
-
178
- > ⚠️ **Trust boundary**: project config cannot override sensitive execution controls (workers, runtime mode, autonomy, agent overrides). Set those in **user config** only.
179
-
180
- 📖 Full config reference: [docs/configuration.md](docs/configuration.md) *(coming soon — see [docs/usage.md](docs/usage.md) for now)*
181
-
182
- ---
183
-
184
- ## Tool Actions
185
-
186
- ```json
187
- { "action": "run", "team": "default", "goal": "..." } // execute
188
- { "action": "status", "runId": "team_..." } // monitor
189
- { "action": "cancel", "runId": "team_..." } // stop
190
- { "action": "resume", "runId": "team_..." } // continue
191
- { "action": "recommend", "goal": "..." } // get advice
192
- { "action": "list" } // discover
193
- { "action": "create", "resource": "agent", ... } // extend
194
- { "action": "doctor" } // diagnose
195
- ```
196
-
197
- 📖 Full actions reference: [docs/actions-reference.md](docs/actions-reference.md)
198
-
199
- ---
200
-
201
- ## Slash Commands
202
-
203
- ```text
204
- /team-run [--team=X] [--async] [--worktree] <goal>
205
- /team-status <runId>
206
- /team-dashboard
207
- /team-doctor
208
- /team-init [--copy-builtins]
209
- /team-config [key=value]
210
- /team-autonomy [status|on|off|suggested|assisted]
211
- ```
212
-
213
- 📖 Full commands reference: [docs/commands-reference.md](docs/commands-reference.md)
214
-
215
- ---
216
-
217
- ## Resource Discovery
218
-
219
- Agents, teams, and workflows are discovered from three layers:
220
-
221
- ```
222
- builtin (package) < user (~/.pi/agent/) < project (.crew/ or .pi/teams/)
223
- ```
224
-
225
- Project resources can add new names but **cannot shadow** builtin/user resources.
226
-
227
- ### Resource Paths
228
-
229
- | Type | Builtin | User | Project |
230
- |------|---------|------|---------|
231
- | Agent | `agents/*.md` | `~/.pi/agent/agents/*.md` | `.crew/agents/*.md` |
232
- | Team | `teams/*.team.md` | `~/.pi/agent/teams/*.team.md` | `.crew/teams/*.team.md` |
233
- | Workflow | `workflows/*.workflow.md` | `~/.pi/agent/workflows/*.workflow.md` | `.crew/workflows/*.workflow.md` |
234
-
235
- ### Custom Resources with Routing Metadata
236
-
237
- ```yaml
238
- ---
239
- name: api-reviewer
240
- description: Reviews API changes
241
- triggers: api, endpoint, contract
242
- useWhen: backend API changes, OpenAPI changes
243
- avoidWhen: docs-only edits
244
- cost: cheap
245
- category: backend
246
- ---
247
- Your system prompt here.
248
- ```
249
-
250
- 📖 Full resource formats: [docs/resource-formats.md](docs/resource-formats.md)
251
-
252
- ---
253
-
254
- ## State Layout
255
-
256
- ```
257
- <crewRoot>/ # .crew/ (new) or .pi/teams/ (legacy)
258
- ├── state/runs/{runId}/
259
- │ ├── manifest.json # run metadata
260
- │ ├── tasks.json # task graph + status
261
- │ ├── events.jsonl # append-only events
262
- │ └── agents/{taskId}/status.json # per-agent state
263
- ├── artifacts/{runId}/
264
- │ ├── goal.md
265
- │ ├── prompts/{taskId}.md
266
- │ ├── results/{taskId}.txt
267
- │ ├── logs/{taskId}.log
268
- │ └── summary.md
269
- ├── worktrees/{runId}/{taskId}/
270
- └── imports/{runId}/run-export.json
271
- ```
272
-
273
- ---
274
-
275
- ## Environment Variables
276
-
277
- | Variable | Purpose |
278
- |----------|---------|
279
- | `PI_CREW_EXECUTE_WORKERS=0` | Disable child workers (scaffold mode) |
280
- | `PI_TEAMS_EXECUTE_WORKERS=0` | Legacy disable flag |
281
- | `PI_TEAMS_MOCK_CHILD_PI=success` | Mock child worker for testing |
282
- | `PI_TEAMS_PI_BIN=<path>` | Explicit Pi CLI path |
283
- | `PI_TEAMS_HOME=<path>` | Override home for tests |
284
-
285
- ---
286
-
287
- ## Development
288
-
289
- ```bash
290
- cd pi-crew
291
- npm install # dependencies
292
- npm test # unit + integration tests
293
- npm run typecheck # tsc --noEmit
294
- npm run ci # full CI-equivalent check
295
- npm pack --dry-run # package verification
296
- ```
297
-
298
- CI runs on: `ubuntu-latest` · `windows-latest` · `macos-latest`
299
-
300
- ---
301
-
302
- ## Documentation
303
-
304
- | Doc | Contents |
305
- |-----|----------|
306
- | [docs/actions-reference.md](docs/actions-reference.md) | Full tool actions + examples |
307
- | [docs/commands-reference.md](docs/commands-reference.md) | Slash commands + `/team-api` |
308
- | [docs/resource-formats.md](docs/resource-formats.md) | Agent/team/workflow file formats |
309
- | [docs/usage.md](docs/usage.md) | Usage patterns + config examples |
310
- | [docs/architecture.md](docs/architecture.md) | Internal architecture + run flow |
311
- | [docs/runtime-flow.md](docs/runtime-flow.md) | Runtime execution details |
312
- | [docs/live-mailbox-runtime.md](docs/live-mailbox-runtime.md) | Mailbox + live-session runtime |
313
- | [docs/publishing.md](docs/publishing.md) | Release & publish process |
314
- | [docs/next-upgrade-roadmap.md](docs/next-upgrade-roadmap.md) | Future upgrade roadmap |
315
- | [schema.json](schema.json) | Config JSON schema |
316
-
317
- Research docs (not in package): [`docs/pi-crew-research/`](https://github.com/baphuongna/pi-crew/tree/main/docs) — audits, deep research, distillation notes.
318
-
319
- ---
320
-
321
- ## Acknowledgements
322
-
323
- `pi-crew` builds on ideas and selected MIT-licensed implementation patterns from `pi-subagents` and `oh-my-claudecode`, with conceptual inspiration from `oh-my-openagent`.
1
+ # pi-crew
2
+
3
+ **Coordinate AI agent teams inside [Pi](https://github.com/nicekate/pi-coding-agent).**
4
+
5
+ pi-crew is a Pi extension that orchestrates autonomous multi-agent workflows — research, implementation, review, testing, and more — with durable state, parallel execution, worktree isolation, and safe defaults.
6
+
7
+ ```text
8
+ npm: pi-crew
9
+ repo: https://github.com/baphuongna/pi-crew
10
+ ```
11
+
12
+ **v0.2.0**: Security hardening + 76% faster startup. See [CHANGELOG.md](CHANGELOG.md).
13
+
14
+ ---
15
+
16
+ ## Features
17
+
18
+ - **One Pi tool** — `team` handles routing, planning, execution, review, and cleanup
19
+ - **Autonomous delegation** — policy injection decides when/how to delegate based on task complexity
20
+ - **Real child Pi workers** — each task spawns a separate Pi process by default; scaffold/dry-run opt-out
21
+ - **Adaptive planning** — implementation workflow lets a planner agent decide subagent fanout
22
+ - **Parallel execution** — tasks in the same phase run concurrently with configurable concurrency
23
+ - **Durable state** — manifest, tasks, events, artifacts all persisted to disk
24
+ - **Async/background runs** — detached runs survive session switches with completion notifications
25
+ - **Worktree isolation** — opt-in git worktrees per task for safe parallel edits
26
+ - **Rich UI** — live widget, dashboard, progress tracking, model/token display
27
+ - **Observability** — metrics registry, Prometheus/OTLP exporters, heartbeat watching, deadletter queue
28
+ - **Resource management** — create/update/delete agents, teams, workflows with validation
29
+ - **Import/export** — portable run bundles for sharing and archiving
30
+
31
+ ---
32
+
33
+ ## Install
34
+
35
+ ```bash
36
+ pi install npm:pi-crew
37
+ ```
38
+
39
+ Local development:
40
+
41
+ ```bash
42
+ pi install ./pi-crew
43
+ ```
44
+
45
+ Post-install config bootstrap:
46
+
47
+ ```bash
48
+ pi-crew # after npm install
49
+ node ./pi-crew/install.mjs # from local clone
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Quick Start
55
+
56
+ ### 1. Initialize project
57
+
58
+ ```text
59
+ /team-init
60
+ ```
61
+
62
+ ### 2. Run a team
63
+
64
+ ```text
65
+ /team-run Investigate failing tests and propose a fix
66
+ ```
67
+
68
+ Or via tool call:
69
+
70
+ ```json
71
+ {
72
+ "action": "run",
73
+ "team": "default",
74
+ "goal": "Investigate failing tests and propose a fix"
75
+ }
76
+ ```
77
+
78
+ ### 3. Check status
79
+
80
+ ```text
81
+ /team-status <runId>
82
+ /team-dashboard
83
+ ```
84
+
85
+ ### 4. Get a recommendation
86
+
87
+ When unsure which team/workflow fits:
88
+
89
+ ```json
90
+ {
91
+ "action": "recommend",
92
+ "goal": "Refactor auth flow and add tests"
93
+ }
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Builtin Teams
99
+
100
+ | Team | Workflow | Mục đích |
101
+ |------|----------|----------|
102
+ | `default` | explore → plan → execute → verify | Cân bằng, đa năng |
103
+ | `fast-fix` | explore → execute → verify | Sửa bug nhỏ nhanh |
104
+ | `implementation` | Adaptive planner quyết fanout | Multi-file implementation |
105
+ | `review` | explore → code-review → security-review → verify | Code review + security audit |
106
+ | `research` | explore → analyze → write | Nghiên cứu và viết tài liệu |
107
+
108
+ ## Builtin Agents
109
+
110
+ ```
111
+ analyst · critic · executor · explorer · planner · reviewer
112
+ security-reviewer · test-engineer · verifier · writer
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Runtime Safety
118
+
119
+ By default, `run` launches each task as a **separate child Pi process**. Workers execute independently and stream output to durable state.
120
+
121
+ Scaffold/dry-run mode (no real workers):
122
+
123
+ ```json
124
+ { "runtime": { "mode": "scaffold" } }
125
+ ```
126
+
127
+ Disable workers globally:
128
+
129
+ ```json
130
+ { "executeWorkers": false }
131
+ ```
132
+
133
+ Worktree mode is **opt-in** and requires a clean repo:
134
+
135
+ ```json
136
+ {
137
+ "action": "run",
138
+ "team": "implementation",
139
+ "goal": "Refactor auth",
140
+ "workspaceMode": "worktree"
141
+ }
142
+ ```
143
+
144
+ ---
145
+
146
+ ## Configuration
147
+
148
+ ### Config Paths
149
+
150
+ | Scope | Path |
151
+ |-------|------|
152
+ | User | `~/.pi/agent/extensions/pi-crew/config.json` |
153
+ | Project (new) | `.crew/config.json` |
154
+ | Project (legacy) | `.pi/teams/config.json` |
155
+
156
+ ### Quick Config
157
+
158
+ ```text
159
+ /team-config # view
160
+ /team-config asyncByDefault=true # update
161
+ /team-config runtime.mode=scaffold # scaffold mode
162
+ /team-config --unset=asyncByDefault # reset
163
+ /team-config autonomous.profile=assisted --project # project scope
164
+ ```
165
+
166
+ ### Key Settings
167
+
168
+ | Section | Key Settings | Default |
169
+ |---------|-------------|---------|
170
+ | **Runtime** | `mode`: `auto` \| `scaffold` \| `child-process` \| `live-session` | `auto` |
171
+ | **Concurrency** | `limits.maxConcurrentWorkers` | workflow-dependent (2–4) |
172
+ | **Async** | `asyncByDefault`, `runtime.groupJoin` | `false`, `smart` |
173
+ | **Autonomy** | `profile`: `manual` \| `suggested` \| `assisted` \| `aggressive` | `suggested` |
174
+ | **UI** | `widgetPlacement`, `dashboardPlacement`, `showModel`, `showTokens` | compact widget |
175
+ | **Reliability** | `autoRetry`, `autoRecover`, `deadletterThreshold` | all opt-in |
176
+ | **Observability** | `prometheus.enabled`, `otlp.enabled` | opt-in |
177
+
178
+ > ⚠️ **Trust boundary**: project config cannot override sensitive execution controls (workers, runtime mode, autonomy, agent overrides). Set those in **user config** only.
179
+
180
+ 📖 Full config reference: [docs/configuration.md](docs/configuration.md) *(coming soon — see [docs/usage.md](docs/usage.md) for now)*
181
+
182
+ ---
183
+
184
+ ## Tool Actions
185
+
186
+ ```json
187
+ { "action": "run", "team": "default", "goal": "..." } // execute
188
+ { "action": "status", "runId": "team_..." } // monitor
189
+ { "action": "cancel", "runId": "team_..." } // stop
190
+ { "action": "resume", "runId": "team_..." } // continue
191
+ { "action": "recommend", "goal": "..." } // get advice
192
+ { "action": "list" } // discover
193
+ { "action": "create", "resource": "agent", ... } // extend
194
+ { "action": "doctor" } // diagnose
195
+ ```
196
+
197
+ 📖 Full actions reference: [docs/actions-reference.md](docs/actions-reference.md)
198
+
199
+ ---
200
+
201
+ ## Slash Commands
202
+
203
+ ```text
204
+ /team-run [--team=X] [--async] [--worktree] <goal>
205
+ /team-status <runId>
206
+ /team-dashboard
207
+ /team-doctor
208
+ /team-init [--copy-builtins]
209
+ /team-config [key=value]
210
+ /team-autonomy [status|on|off|suggested|assisted]
211
+ ```
212
+
213
+ 📖 Full commands reference: [docs/commands-reference.md](docs/commands-reference.md)
214
+
215
+ ---
216
+
217
+ ## Resource Discovery
218
+
219
+ Agents, teams, and workflows are discovered from three layers:
220
+
221
+ ```
222
+ builtin (package) < user (~/.pi/agent/) < project (.crew/ or .pi/teams/)
223
+ ```
224
+
225
+ Project resources can add new names but **cannot shadow** builtin/user resources.
226
+
227
+ ### Resource Paths
228
+
229
+ | Type | Builtin | User | Project |
230
+ |------|---------|------|---------|
231
+ | Agent | `agents/*.md` | `~/.pi/agent/agents/*.md` | `.crew/agents/*.md` |
232
+ | Team | `teams/*.team.md` | `~/.pi/agent/teams/*.team.md` | `.crew/teams/*.team.md` |
233
+ | Workflow | `workflows/*.workflow.md` | `~/.pi/agent/workflows/*.workflow.md` | `.crew/workflows/*.workflow.md` |
234
+
235
+ ### Custom Resources with Routing Metadata
236
+
237
+ ```yaml
238
+ ---
239
+ name: api-reviewer
240
+ description: Reviews API changes
241
+ triggers: api, endpoint, contract
242
+ useWhen: backend API changes, OpenAPI changes
243
+ avoidWhen: docs-only edits
244
+ cost: cheap
245
+ category: backend
246
+ ---
247
+ Your system prompt here.
248
+ ```
249
+
250
+ 📖 Full resource formats: [docs/resource-formats.md](docs/resource-formats.md)
251
+
252
+ ---
253
+
254
+ ## State Layout
255
+
256
+ ```
257
+ <crewRoot>/ # .crew/ (new) or .pi/teams/ (legacy)
258
+ ├── state/runs/{runId}/
259
+ │ ├── manifest.json # run metadata
260
+ │ ├── tasks.json # task graph + status
261
+ │ ├── events.jsonl # append-only events
262
+ │ └── agents/{taskId}/status.json # per-agent state
263
+ ├── artifacts/{runId}/
264
+ │ ├── goal.md
265
+ │ ├── prompts/{taskId}.md
266
+ │ ├── results/{taskId}.txt
267
+ │ ├── logs/{taskId}.log
268
+ │ └── summary.md
269
+ ├── worktrees/{runId}/{taskId}/
270
+ └── imports/{runId}/run-export.json
271
+ ```
272
+
273
+ ---
274
+
275
+ ## Environment Variables
276
+
277
+ | Variable | Purpose |
278
+ |----------|---------|
279
+ | `PI_CREW_EXECUTE_WORKERS=0` | Disable child workers (scaffold mode) |
280
+ | `PI_TEAMS_EXECUTE_WORKERS=0` | Legacy disable flag |
281
+ | `PI_TEAMS_MOCK_CHILD_PI=success` | Mock child worker for testing |
282
+ | `PI_TEAMS_PI_BIN=<path>` | Explicit Pi CLI path |
283
+ | `PI_TEAMS_HOME=<path>` | Override home for tests |
284
+
285
+ ---
286
+
287
+ ## Development
288
+
289
+ ```bash
290
+ cd pi-crew
291
+ npm install # dependencies
292
+ npm test # unit + integration tests
293
+ npm run typecheck # tsc --noEmit
294
+ npm run ci # full CI-equivalent check
295
+ npm pack --dry-run # package verification
296
+ ```
297
+
298
+ CI runs on: `ubuntu-latest` · `windows-latest` · `macos-latest`
299
+
300
+ ---
301
+
302
+ ## Documentation
303
+
304
+ | Doc | Contents |
305
+ |-----|----------|
306
+ | [docs/actions-reference.md](docs/actions-reference.md) | Full tool actions + examples |
307
+ | [docs/commands-reference.md](docs/commands-reference.md) | Slash commands + `/team-api` |
308
+ | [docs/resource-formats.md](docs/resource-formats.md) | Agent/team/workflow file formats |
309
+ | [docs/usage.md](docs/usage.md) | Usage patterns + config examples |
310
+ | [docs/architecture.md](docs/architecture.md) | Internal architecture + run flow |
311
+ | [docs/runtime-flow.md](docs/runtime-flow.md) | Runtime execution details |
312
+ | [docs/live-mailbox-runtime.md](docs/live-mailbox-runtime.md) | Mailbox + live-session runtime |
313
+ | [docs/publishing.md](docs/publishing.md) | Release & publish process |
314
+ | [docs/next-upgrade-roadmap.md](docs/next-upgrade-roadmap.md) | Future upgrade roadmap |
315
+ | [schema.json](schema.json) | Config JSON schema |
316
+
317
+ Research docs (not in package): [`docs/pi-crew-research/`](https://github.com/baphuongna/pi-crew/tree/main/docs) — audits, deep research, distillation notes.
318
+
319
+ ---
320
+
321
+ ## Acknowledgements
322
+
323
+ `pi-crew` builds on ideas and selected MIT-licensed implementation patterns from `pi-subagents` and `oh-my-claudecode`, with conceptual inspiration from `oh-my-openagent`.