pi-crew 0.1.51 → 0.2.1

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 (240) hide show
  1. package/CHANGELOG.md +56 -1
  2. package/README.md +176 -781
  3. package/agents/analyst.md +11 -11
  4. package/agents/critic.md +11 -11
  5. package/agents/executor.md +11 -11
  6. package/agents/explorer.md +11 -11
  7. package/agents/planner.md +11 -11
  8. package/agents/reviewer.md +11 -11
  9. package/agents/security-reviewer.md +11 -11
  10. package/agents/test-engineer.md +11 -11
  11. package/agents/verifier.md +70 -11
  12. package/agents/writer.md +11 -11
  13. package/docs/actions-reference.md +595 -0
  14. package/docs/commands-reference.md +347 -0
  15. package/docs/runtime-flow.md +148 -148
  16. package/index.ts +6 -6
  17. package/package.json +99 -99
  18. package/skills/async-worker-recovery/SKILL.md +42 -42
  19. package/skills/context-artifact-hygiene/SKILL.md +52 -52
  20. package/skills/delegation-patterns/SKILL.md +54 -54
  21. package/skills/mailbox-interactive/SKILL.md +40 -40
  22. package/skills/model-routing-context/SKILL.md +39 -39
  23. package/skills/multi-perspective-review/SKILL.md +58 -58
  24. package/skills/observability-reliability/SKILL.md +41 -41
  25. package/skills/orchestration/SKILL.md +157 -157
  26. package/skills/ownership-session-security/SKILL.md +41 -41
  27. package/skills/pi-extension-lifecycle/SKILL.md +39 -39
  28. package/skills/requirements-to-task-packet/SKILL.md +63 -63
  29. package/skills/resource-discovery-config/SKILL.md +41 -41
  30. package/skills/runtime-state-reader/SKILL.md +44 -44
  31. package/skills/secure-agent-orchestration-review/SKILL.md +45 -45
  32. package/skills/state-mutation-locking/SKILL.md +42 -42
  33. package/skills/systematic-debugging/SKILL.md +67 -67
  34. package/skills/ui-render-performance/SKILL.md +39 -39
  35. package/skills/verification-before-done/SKILL.md +57 -57
  36. package/skills/worktree-isolation/SKILL.md +39 -39
  37. package/src/adapters/claude-adapter.ts +25 -0
  38. package/src/adapters/codex-adapter.ts +21 -0
  39. package/src/adapters/cursor-adapter.ts +17 -0
  40. package/src/adapters/export-util.ts +137 -0
  41. package/src/adapters/index.ts +15 -0
  42. package/src/adapters/registry.ts +18 -0
  43. package/src/adapters/types.ts +23 -0
  44. package/src/agents/agent-config.ts +2 -0
  45. package/src/agents/agent-search.ts +98 -98
  46. package/src/agents/discover-agents.ts +2 -1
  47. package/src/config/config.ts +13 -1
  48. package/src/config/drift-detector.ts +211 -0
  49. package/src/config/markers.ts +327 -0
  50. package/src/config/resilient-parser.ts +108 -0
  51. package/src/config/suggestions.ts +74 -0
  52. package/src/extension/cross-extension-rpc.ts +103 -94
  53. package/src/extension/project-init.ts +21 -1
  54. package/src/extension/register.ts +45 -14
  55. package/src/extension/registration/commands.ts +77 -8
  56. package/src/extension/registration/subagent-tools.ts +10 -1
  57. package/src/extension/registration/team-tool.ts +10 -1
  58. package/src/extension/registration/viewers.ts +48 -34
  59. package/src/extension/run-bundle-schema.ts +89 -89
  60. package/src/extension/run-import.ts +25 -1
  61. package/src/extension/run-index.ts +5 -1
  62. package/src/extension/run-maintenance.ts +142 -68
  63. package/src/extension/team-manager-command.ts +10 -1
  64. package/src/extension/team-tool/api.ts +441 -441
  65. package/src/extension/team-tool/doctor.ts +28 -3
  66. package/src/extension/team-tool/handle-settings.ts +195 -188
  67. package/src/extension/team-tool/inspect.ts +41 -41
  68. package/src/extension/team-tool/intent-policy.ts +42 -42
  69. package/src/extension/team-tool/lifecycle-actions.ts +27 -8
  70. package/src/extension/team-tool/plan.ts +19 -19
  71. package/src/extension/team-tool/run.ts +12 -1
  72. package/src/extension/team-tool.ts +332 -322
  73. package/src/i18n.ts +184 -184
  74. package/src/observability/exporters/otlp-exporter.ts +92 -77
  75. package/src/prompt/prompt-runtime.ts +72 -72
  76. package/src/runtime/agent-memory.ts +72 -72
  77. package/src/runtime/agent-observability.ts +114 -114
  78. package/src/runtime/async-marker.ts +26 -26
  79. package/src/runtime/attention-events.ts +28 -28
  80. package/src/runtime/auto-resume.ts +100 -0
  81. package/src/runtime/background-runner.ts +11 -1
  82. package/src/runtime/cancellation-token.ts +89 -89
  83. package/src/runtime/cancellation.ts +61 -61
  84. package/src/runtime/capability-inventory.ts +116 -116
  85. package/src/runtime/child-pi.ts +7 -2
  86. package/src/runtime/compaction-summary.ts +271 -0
  87. package/src/runtime/completion-guard.ts +190 -190
  88. package/src/runtime/crash-recovery.ts +33 -1
  89. package/src/runtime/delta-conflict.ts +360 -0
  90. package/src/runtime/direct-run.ts +35 -35
  91. package/src/runtime/foreground-control.ts +82 -82
  92. package/src/runtime/green-contract.ts +46 -46
  93. package/src/runtime/group-join.ts +106 -106
  94. package/src/runtime/heartbeat-gradient.ts +28 -28
  95. package/src/runtime/heartbeat-watcher.ts +124 -124
  96. package/src/runtime/iteration-hooks.ts +264 -0
  97. package/src/runtime/live-agent-control.ts +88 -88
  98. package/src/runtime/live-control-realtime.ts +36 -36
  99. package/src/runtime/live-extension-bridge.ts +150 -150
  100. package/src/runtime/live-irc.ts +92 -92
  101. package/src/runtime/live-session-health.ts +100 -100
  102. package/src/runtime/loop-gates.ts +129 -0
  103. package/src/runtime/metric-parser.ts +40 -0
  104. package/src/runtime/notebook-helpers.ts +90 -90
  105. package/src/runtime/orphan-sentinel.ts +7 -7
  106. package/src/runtime/parallel-research.ts +44 -44
  107. package/src/runtime/phase-progress.ts +217 -0
  108. package/src/runtime/pi-args.ts +38 -11
  109. package/src/runtime/pi-json-output.ts +111 -111
  110. package/src/runtime/pi-spawn.ts +57 -7
  111. package/src/runtime/policy-engine.ts +79 -79
  112. package/src/runtime/post-checks.ts +122 -0
  113. package/src/runtime/progress-event-coalescer.ts +43 -43
  114. package/src/runtime/prose-compressor.ts +164 -164
  115. package/src/runtime/recovery-recipes.ts +74 -74
  116. package/src/runtime/result-extractor.ts +121 -121
  117. package/src/runtime/role-permission.ts +39 -39
  118. package/src/runtime/sensitive-paths.ts +2 -2
  119. package/src/runtime/session-resources.ts +25 -25
  120. package/src/runtime/session-snapshot.ts +59 -59
  121. package/src/runtime/session-usage.ts +79 -79
  122. package/src/runtime/sidechain-output.ts +29 -29
  123. package/src/runtime/stream-preview.ts +177 -177
  124. package/src/runtime/supervisor-contact.ts +59 -59
  125. package/src/runtime/task-display.ts +38 -38
  126. package/src/runtime/task-graph.ts +207 -0
  127. package/src/runtime/task-quality.ts +207 -0
  128. package/src/runtime/task-runner/capabilities.ts +78 -78
  129. package/src/runtime/task-runner/live-executor.ts +7 -1
  130. package/src/runtime/task-runner/progress.ts +119 -119
  131. package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
  132. package/src/runtime/task-runner/result-utils.ts +14 -14
  133. package/src/runtime/task-runner/run-projection.ts +103 -103
  134. package/src/runtime/task-runner/state-helpers.ts +22 -22
  135. package/src/runtime/team-runner.ts +117 -7
  136. package/src/runtime/worker-heartbeat.ts +21 -21
  137. package/src/runtime/worker-startup.ts +57 -57
  138. package/src/runtime/workflow-state.ts +187 -0
  139. package/src/runtime/workspace-tree.ts +298 -298
  140. package/src/schema/config-schema.ts +11 -0
  141. package/src/schema/validation-types.ts +148 -0
  142. package/src/skills/skill-templates.ts +374 -0
  143. package/src/state/active-run-registry.ts +35 -11
  144. package/src/state/atomic-write.ts +33 -26
  145. package/src/state/contracts.ts +1 -0
  146. package/src/state/event-reconstructor.ts +217 -0
  147. package/src/state/locks.ts +2 -13
  148. package/src/state/mailbox.ts +4 -3
  149. package/src/state/state-store.ts +16 -6
  150. package/src/state/task-claims.ts +44 -44
  151. package/src/state/types.ts +9 -0
  152. package/src/state/usage.ts +29 -29
  153. package/src/subagents/async-entry.ts +1 -1
  154. package/src/subagents/index.ts +3 -3
  155. package/src/subagents/live/control.ts +1 -1
  156. package/src/subagents/live/manager.ts +1 -1
  157. package/src/subagents/live/realtime.ts +1 -1
  158. package/src/subagents/live/session-runtime.ts +1 -1
  159. package/src/subagents/manager.ts +1 -1
  160. package/src/subagents/spawn.ts +1 -1
  161. package/src/teams/team-serializer.ts +38 -38
  162. package/src/types/diff.d.ts +18 -18
  163. package/src/ui/crew-footer.ts +101 -101
  164. package/src/ui/crew-select-list.ts +111 -111
  165. package/src/ui/crew-widget.ts +5 -2
  166. package/src/ui/dashboard-panes/cancellation-pane.ts +42 -42
  167. package/src/ui/dashboard-panes/capability-pane.ts +59 -59
  168. package/src/ui/dashboard-panes/mailbox-pane.ts +35 -35
  169. package/src/ui/dashboard-panes/metrics-pane.ts +34 -34
  170. package/src/ui/dashboard-panes/progress-pane.ts +11 -0
  171. package/src/ui/dynamic-border.ts +25 -25
  172. package/src/ui/layout-primitives.ts +106 -106
  173. package/src/ui/loaders.ts +158 -158
  174. package/src/ui/render-coalescer.ts +51 -51
  175. package/src/ui/render-diff.ts +119 -119
  176. package/src/ui/render-scheduler.ts +143 -143
  177. package/src/ui/run-action-dispatcher.ts +10 -1
  178. package/src/ui/spinner.ts +17 -17
  179. package/src/ui/status-colors.ts +58 -58
  180. package/src/ui/syntax-highlight.ts +116 -116
  181. package/src/ui/transcript-entries.ts +258 -258
  182. package/src/utils/completion-dedupe.ts +63 -63
  183. package/src/utils/frontmatter.ts +68 -68
  184. package/src/utils/git.ts +262 -262
  185. package/src/utils/ids.ts +17 -17
  186. package/src/utils/incremental-reader.ts +104 -104
  187. package/src/utils/names.ts +27 -27
  188. package/src/utils/redaction.ts +44 -44
  189. package/src/utils/safe-paths.ts +47 -47
  190. package/src/utils/scan-cache.ts +136 -136
  191. package/src/utils/sleep.ts +40 -26
  192. package/src/utils/task-name-generator.ts +337 -337
  193. package/src/workflows/validate-workflow.ts +40 -40
  194. package/src/worktree/branch-freshness.ts +45 -45
  195. package/teams/default.team.md +12 -12
  196. package/teams/fast-fix.team.md +11 -11
  197. package/teams/implementation.team.md +18 -18
  198. package/teams/parallel-research.team.md +14 -14
  199. package/teams/research.team.md +11 -11
  200. package/teams/review.team.md +12 -12
  201. package/workflows/default.workflow.md +30 -29
  202. package/workflows/fast-fix.workflow.md +23 -22
  203. package/workflows/implementation.workflow.md +43 -43
  204. package/workflows/parallel-research.workflow.md +46 -46
  205. package/workflows/research.workflow.md +22 -22
  206. package/workflows/review.workflow.md +30 -30
  207. package/docs/refactor-tasks-phase3.md +0 -394
  208. package/docs/refactor-tasks-phase4.md +0 -564
  209. package/docs/refactor-tasks-phase5.md +0 -402
  210. package/docs/refactor-tasks-phase6.md +0 -662
  211. package/docs/refactor-tasks.md +0 -1484
  212. package/docs/research/AGENT-EXECUTION-ARCHITECTURE.md +0 -261
  213. package/docs/research/AGENT-LIFECYCLE-COMPARISON.md +0 -111
  214. package/docs/research/AUDIT_OH_MY_PI.md +0 -261
  215. package/docs/research/AUDIT_PI_CREW.md +0 -457
  216. package/docs/research/CAVEMAN-DEEP-RESEARCH.md +0 -281
  217. package/docs/research/COMPARISON_OH_MY_PI_VS_PI_CREW.md +0 -264
  218. package/docs/research/DEEP-RESEARCH-PI-POWERBAR.md +0 -343
  219. package/docs/research/DEEP_RESEARCH_SUBAGENT_ARCHITECTURE.md +0 -480
  220. package/docs/research/GAP_CLOSURE_IMPLEMENTATION_PLAN.md +0 -354
  221. package/docs/research/IMPLEMENTATION_PLAN.md +0 -385
  222. package/docs/research/LIVE-SESSION-PRODUCTION-READY-PLAN.md +0 -502
  223. package/docs/research/OH-MY-PI-DEEP-RESEARCH-v14.7.6.md +0 -266
  224. package/docs/research/REMAINING-GAPS-PLAN.md +0 -363
  225. package/docs/research/SESSION-SUMMARY-2026-05-08.md +0 -146
  226. package/docs/research/UI-RESPONSIVENESS-AUDIT.md +0 -173
  227. package/docs/research-awesome-agent-skills-distillation.md +0 -100
  228. package/docs/research-extension-examples.md +0 -297
  229. package/docs/research-extension-system.md +0 -324
  230. package/docs/research-oh-my-pi-distillation.md +0 -369
  231. package/docs/research-optimization-plan.md +0 -548
  232. package/docs/research-phase10-distillation.md +0 -199
  233. package/docs/research-phase11-distillation.md +0 -201
  234. package/docs/research-phase8-operator-experience-plan.md +0 -819
  235. package/docs/research-phase9-observability-reliability-plan.md +0 -1190
  236. package/docs/research-pi-coding-agent.md +0 -357
  237. package/docs/research-source-pi-crew-reference.md +0 -174
  238. package/docs/research-ui-optimization-plan.md +0 -480
  239. package/docs/source-runtime-refactor-map.md +0 -107
  240. package/src/utils/atomic-write.ts +0 -33
@@ -0,0 +1,347 @@
1
+ # pi-crew — Slash Commands Reference
2
+
3
+ Slash commands là thao tác thủ công từ Pi chat. Autonomous tool use qua `team` action là path chính; slash commands dành cho ops/debug.
4
+
5
+ ## Lệnh chính
6
+
7
+ | Command | Mô tả |
8
+ |---------|-------|
9
+ | `/teams` | Liệt kê teams, agents, workflows, recent runs |
10
+ | `/team-run [options] <goal>` | Chạy team workflow |
11
+ | `/team-cancel <runId>` | Hủy run |
12
+ | `/team-status <runId>` | Xem trạng thái |
13
+ | `/team-summary <runId>` | Xem/ghi summary |
14
+ | `/team-resume <runId>` | Tiếp tục run đã dừng |
15
+ | `/team-events <runId>` | Xem event log |
16
+ | `/team-artifacts <runId>` | Xem artifacts |
17
+ | `/team-worktrees <runId>` | Xem worktree metadata |
18
+ | `/team-cleanup <runId>` | Xóa worktrees |
19
+ | `/team-forget <runId>` | Xóa run hoàn toàn |
20
+ | `/team-prune` | Xóa nhiều runs cũ |
21
+ | `/team-export <runId>` | Export run bundle |
22
+ | `/team-import <path>` | Import run bundle |
23
+ | `/team-imports` | Liệt kê imported bundles |
24
+ | `/team-api <runId> <op>` | State API interop |
25
+ | `/team-metrics [filter]` | Xem metrics |
26
+ | `/team-manager` | Interactive helper |
27
+ | `/team-dashboard` | Live dashboard overlay |
28
+ | `/team-init [options]` | Khởi tạo project layout |
29
+ | `/team-config [options]` | Xem/sửa config |
30
+ | `/team-settings <subcmd>` | Quản lý config keys |
31
+ | `/team-autonomy <subcmd>` | Quản lý delegation |
32
+ | `/team-validate` | Validate resources |
33
+ | `/team-help` | Help text |
34
+ | `/team-doctor` | Chẩn đoán môi trường |
35
+
36
+ ---
37
+
38
+ ## `/team-run` — Chi tiết
39
+
40
+ ```text
41
+ /team-run <goal>
42
+ /team-run --team=implementation <goal>
43
+ /team-run --team=default --workflow=default <goal>
44
+ /team-run --async <goal>
45
+ /team-run --worktree <goal>
46
+ ```
47
+
48
+ Options:
49
+
50
+ | Flag | Mô tả |
51
+ |------|-------|
52
+ | `--team=<name>` | Chọn team (default: `default`) |
53
+ | `--workflow=<name>` | Chọn workflow (default: team's defaultWorkflow) |
54
+ | `--async` | Chạy bất đồng bộ |
55
+ | `--worktree` | Sử dụng worktree isolation |
56
+
57
+ Ví dụ:
58
+
59
+ ```text
60
+ # Chạy default team
61
+ /team-run Investigate failing tests and propose a fix
62
+
63
+ # Implementation team, async
64
+ /team-run --team=implementation --async Refactor auth module
65
+
66
+ # Worktree isolation
67
+ /team-run --team=implementation --worktree Add API endpoint and tests
68
+ ```
69
+
70
+ ---
71
+
72
+ ## `/team-forget` — Xóa run
73
+
74
+ ```text
75
+ /team-forget <runId> --confirm # Xóa state + artifacts
76
+ /team-forget <runId> --confirm --force # Xóa kể cả dirty worktrees
77
+ ```
78
+
79
+ ⚠️ Cần `--confirm`. Dirty worktrees được giữ lại trừ khi thêm `--force`.
80
+
81
+ ---
82
+
83
+ ## `/team-prune` — Dọn dẹp hàng loạt
84
+
85
+ ```text
86
+ /team-prune --keep=20 --confirm
87
+ ```
88
+
89
+ Giữ lại 20 runs gần nhất, xóa phần còn lại.
90
+
91
+ ---
92
+
93
+ ## `/team-api` — State Operations
94
+
95
+ ```text
96
+ /team-api <runId> <operation> [key=value ...]
97
+ ```
98
+
99
+ ### Read operations
100
+
101
+ ```text
102
+ /team-api team_... read-manifest
103
+ /team-api team_... list-tasks
104
+ /team-api team_... read-task taskId=task_...
105
+ /team-api team_... read-events
106
+ /team-api team_... read-heartbeat taskId=task_...
107
+ /team-api team_... read-mailbox direction=outbox
108
+ /team-api team_... read-mailbox taskId=task_... direction=inbox
109
+ /team-api team_... read-delivery
110
+ ```
111
+
112
+ ### Write operations
113
+
114
+ ```text
115
+ /team-api team_... write-heartbeat taskId=task_... alive=true
116
+ /team-api team_... claim-task taskId=task_... owner=worker-1
117
+ /team-api team_... release-task-claim taskId=task_... owner=worker-1 token=...
118
+ /team-api team_... transition-task-status taskId=task_... owner=worker-1 token=... status=running
119
+ ```
120
+
121
+ ### Mailbox operations
122
+
123
+ ```text
124
+ /team-api team_... send-message direction=outbox to=worker body="please check this"
125
+ /team-api team_... send-message taskId=task_... direction=inbox to=worker body="task scoped"
126
+ /team-api team_... ack-message messageId=msg_...
127
+ /team-api team_... validate-mailbox repair=true
128
+ ```
129
+
130
+ ### Plan operations
131
+
132
+ ```text
133
+ /team-api team_... approve-plan
134
+ /team-api team_... cancel-plan
135
+ ```
136
+
137
+ ---
138
+
139
+ ## `/team-metrics` — Observability
140
+
141
+ ```text
142
+ /team-metrics # Toàn bộ metrics
143
+ /team-metrics crew.task.* # Filter theo glob pattern
144
+ ```
145
+
146
+ ---
147
+
148
+ ## `/team-config` — Configuration
149
+
150
+ ```text
151
+ /team-config # Xem config hiện tại
152
+ /team-config asyncByDefault=true # Update key
153
+ /team-config --unset=key.path # Unset key
154
+ /team-config ... --project # Project scope
155
+ ```
156
+
157
+ ---
158
+
159
+ ## `/team-settings` — Config Management
160
+
161
+ ```text
162
+ /team-settings # Liệt kê tất cả keys
163
+ /team-settings get limits.maxTurns # Đọc 1 key
164
+ /team-settings set limits.maxTurns 20 # Ghi key
165
+ /team-settings unset runtime.maxTurns # Reset về default
166
+ /team-settings path # Đường dẫn file config
167
+ /team-settings scope # Scope hiện tại (user/project)
168
+ ```
169
+
170
+ ### Supported Keys
171
+
172
+ | Key | Type | Default | Mô tả |
173
+ |-----|------|---------|-------|
174
+ | `asyncByDefault` | boolean | `false` | Chạy async mặc định |
175
+ | `executeWorkers` | boolean | `true` | Spawn child Pi workers |
176
+ | `notifierIntervalMs` | number | `5000` | Polling interval cho async notifications |
177
+ | `runtime.mode` | string | `"auto"` | Runtime: `auto`, `scaffold`, `child-process`, `live-session` |
178
+ | `runtime.maxTurns` | number | — | Max turns per worker |
179
+ | `runtime.graceTurns` | number | — | Grace turns sau max |
180
+ | `runtime.inheritContext` | boolean | — | Workers kế thừa parent context |
181
+ | `runtime.promptMode` | string | — | `replace` hoặc `append` |
182
+ | `runtime.groupJoin` | string | `"smart"` | Group join: `off`, `group`, `smart` |
183
+ | `runtime.groupJoinAckTimeoutMs` | number | `300000` | Group join ack timeout (ms) |
184
+ | `runtime.requirePlanApproval` | boolean | `false` | Yêu cầu approve plan trước execute |
185
+ | `runtime.completionMutationGuard` | string | `"warn"` | `off`, `warn`, `fail` |
186
+ | `limits.maxConcurrentWorkers` | number | — | Max workers chạy song song |
187
+ | `limits.maxTaskDepth` | number | `2` | Max task tree depth |
188
+ | `limits.maxChildrenPerTask` | number | `5` | Max children per task |
189
+ | `limits.maxRunMinutes` | number | `60` | Max run duration (phút) |
190
+ | `limits.maxRetriesPerTask` | number | `1` | Max retries per task |
191
+ | `limits.maxTasksPerRun` | number | — | Max tasks per run |
192
+ | `limits.heartbeatStaleMs` | number | `60000` | Heartbeat stale threshold |
193
+ | `control.enabled` | boolean | — | Enable agent control-plane |
194
+ | `control.needsAttentionAfterMs` | number | — | Attention timeout |
195
+ | `autonomous.profile` | string | `"suggested"` | `manual`, `suggested`, `assisted`, `aggressive` |
196
+ | `autonomous.injectPolicy` | boolean | `true` | Inject policy vào prompt |
197
+ | `autonomous.preferAsyncForLongTasks` | boolean | `false` | Auto-async cho tasks dài |
198
+ | `autonomous.allowWorktreeSuggestion` | boolean | `true` | Gợi ý worktree mode |
199
+ | `tools.enableClaudeStyleAliases` | boolean | `true` | Enable Claude-style aliases |
200
+ | `tools.enableSteer` | boolean | `true` | Enable steer tool |
201
+ | `tools.terminateOnForeground` | boolean | `false` | Return terminate từ foreground Agent |
202
+ | `agents.disableBuiltins` | boolean | `false` | Disable builtin agents |
203
+ | `observability.prometheus.enabled` | boolean | `false` | Enable Prometheus exporter |
204
+ | `observability.otlp.enabled` | boolean | `false` | Enable OTLP exporter |
205
+ | `worktree.enabled` | boolean | — | Enable worktree isolation |
206
+
207
+ ---
208
+
209
+ ## `/team-autonomy` — Delegation Policy
210
+
211
+ ```text
212
+ /team-autonomy status # Xem trạng thái
213
+ /team-autonomy on # Bật autonomous delegation
214
+ /team-autonomy off # Tắt
215
+ /team-autonomy manual # Profile: manual
216
+ /team-autonomy suggested # Profile: suggested (default)
217
+ /team-autonomy assisted # Profile: assisted
218
+ /team-autonomy aggressive # Profile: aggressive
219
+ ```
220
+
221
+ Options:
222
+
223
+ ```text
224
+ /team-autonomy suggested --prefer-async # Tự động async cho tasks dài
225
+ /team-autonomy suggested --no-worktree-suggest # Không gợi ý worktree
226
+ ```
227
+
228
+ ### Autonomy Profiles
229
+
230
+ | Profile | Hành vi |
231
+ |---------|---------|
232
+ | `manual` | Không tự động delegate. Chạy khi host agent gọi team tool trực tiếp |
233
+ | `suggested` | Đề xuất khi phù hợp, host agent quyết định (default) |
234
+ | `assisted` | Chủ động delegate cho hầu hết tasks phức tạp |
235
+ | `aggressive` | Luôn delegate, tối đa parallel execution |
236
+
237
+ ---
238
+
239
+ ## `/team-init` — Project Setup
240
+
241
+ ```text
242
+ /team-init # Khởi tạo layout cơ bản
243
+ /team-init --copy-builtins # Copy builtin resources vào project
244
+ /team-init --copy-builtins --overwrite # Copy và ghi đè
245
+ ```
246
+
247
+ Tạo directories:
248
+
249
+ ```text
250
+ # New projects (.crew/ layout)
251
+ .crew/agents/
252
+ .crew/teams/
253
+ .crew/workflows/
254
+ .crew/imports/
255
+
256
+ # Legacy (.pi/ layout, khi .pi/ đã tồn tại)
257
+ .pi/teams/agents/
258
+ .pi/teams/teams/
259
+ .pi/teams/workflows/
260
+ .pi/teams/imports/
261
+ ```
262
+
263
+ ---
264
+
265
+ ## `/team-dashboard` — Live Dashboard
266
+
267
+ ```text
268
+ /team-dashboard
269
+ ```
270
+
271
+ ### Keyboard Shortcuts
272
+
273
+ | Key | Hành động |
274
+ |-----|-----------|
275
+ | `↑`/`↓` hoặc `j`/`k` | Chọn run |
276
+ | `r` | Reload run list |
277
+ | `p` | Toggle short/long progress |
278
+ | `Enter` hoặc `s` | Xem status |
279
+ | `a` | Xem artifacts |
280
+ | `u` | Xem summary |
281
+ | `i` | API read-manifest |
282
+ | `q` hoặc `Esc` | Đóng |
283
+
284
+ ---
285
+
286
+ ## `/team-manager` — Interactive Helper
287
+
288
+ ```text
289
+ /team-manager
290
+ ```
291
+
292
+ Flows:
293
+ - Liệt kê resources/runs
294
+ - Chạy team
295
+ - Xem run status
296
+ - Cleanup worktrees
297
+ - Tạo/sửa agent/team resources
298
+ - Doctor check
299
+
300
+ ---
301
+
302
+ ## `/team-validate` — Resource Validation
303
+
304
+ ```text
305
+ /team-validate
306
+ ```
307
+
308
+ Kiểm tra:
309
+ - Agents, teams, workflows hợp lệ
310
+ - References đúng (agent tồn tại trong team roles)
311
+ - Model hints hợp lệ
312
+ - Workflow steps đúng format
313
+
314
+ ---
315
+
316
+ ## `/team-doctor` — Environment Check
317
+
318
+ ```text
319
+ /team-doctor
320
+ ```
321
+
322
+ Kiểm tra:
323
+ - cwd, platform, architecture
324
+ - Node.js version
325
+ - `pi --version`
326
+ - `git --version`
327
+ - State paths writable
328
+ - Config parse
329
+ - Discovery counts (agents, teams, workflows)
330
+ - Resource validation
331
+ - Current model/provider
332
+ - Model/fallback hints
333
+
334
+ Child Pi smoke test (explicit):
335
+
336
+ ```text
337
+ /team-api team_... doctor smokeChildPi=true
338
+ ```
339
+
340
+ hoặc qua tool:
341
+
342
+ ```json
343
+ {
344
+ "action": "doctor",
345
+ "config": { "smokeChildPi": true }
346
+ }
347
+ ```
@@ -1,148 +1,148 @@
1
- # pi-crew Runtime Flow
2
-
3
- This document is a compact map of the runtime paths used by `pi-crew`.
4
-
5
- ## Main sequence
6
-
7
- ```text
8
- User / model
9
- │ calls team({ action: "run", ... }) or /team-run
10
-
11
- handleTeamTool()
12
- │ validates schema and routes action
13
-
14
- handleRun()
15
- ├─ discoverTeams/discoverWorkflows/discoverAgents
16
- ├─ validateWorkflowForTeam
17
- ├─ expandParallelResearchWorkflow when applicable
18
- ├─ createRunManifest + tasks.json + goal artifact
19
- ├─ if async=true ─────────────────────────────────────────────┐
20
- │ spawnBackgroundTeamRun() │
21
- │ ├─ resolve jiti-register.mjs │
22
- │ ├─ fail-fast if jiti missing │
23
- │ ├─ node --import jiti-register.mjs background-runner.ts │
24
- │ └─ parent schedules early-exit guard │
25
- │ ▼
26
- │ background-runner.ts
27
- │ ├─ append async.started
28
- │ ├─ write async.pid startup marker
29
- │ ├─ rediscover team/workflow/agents
30
- │ └─ executeTeamRun()
31
-
32
- └─ if foreground/default
33
- ├─ startForegroundRun schedules session-bound run, or
34
- └─ executeTeamRun inline for scaffold/non-scheduled paths
35
-
36
- executeTeamRun()
37
- ├─ write run.running
38
- ├─ materialize queued/running agent records lazily
39
- ├─ build task graph index
40
- ├─ while queued tasks exist
41
- │ ├─ taskGraphSnapshot
42
- │ ├─ resolveBatchConcurrency
43
- │ ├─ getReadyTasks
44
- │ ├─ append task.progress batch event
45
- │ ├─ mapConcurrent ready batch
46
- │ │ └─ runTeamTask()
47
- │ │ ├─ prepare workspace/worktree
48
- │ │ ├─ build task packet
49
- │ │ ├─ render prompt + dependency context
50
- │ │ ├─ choose model candidates from Pi config
51
- │ │ ├─ spawn child Pi process
52
- │ │ ├─ ChildPiLineObserver parses stdout/stderr
53
- │ │ ├─ append per-agent events/output
54
- │ │ ├─ update agent progress/task state
55
- │ │ ├─ parse final JSONL/session usage
56
- │ │ └─ write result/log/transcript/metadata artifacts
57
- │ ├─ merge task updates monotonically
58
- │ ├─ optional adaptive plan injection
59
- │ ├─ save tasks/agents/progress
60
- │ └─ write batch artifact
61
- ├─ policy closeout
62
- └─ run.completed / run.failed / run.blocked / run.cancelled
63
- ```
64
-
65
- ## Action router
66
-
67
- | Action | Handler | Purpose |
68
- |---|---|---|
69
- | `run` | `team-tool/run.ts` | Create and execute a run, foreground or async. |
70
- | `status` | `team-tool.ts` | Show manifest/tasks/agents/events and mark stale async runs failed. |
71
- | `summary` | `session-summary.ts`/summary handler | Write/read run summary artifact. |
72
- | `events` | `team-tool.ts` | Tail durable run events. |
73
- | `artifacts` | `team-tool.ts` | List run artifacts. |
74
- | `resume` | `team-tool.ts` | Requeue failed/cancelled/skipped/running tasks. |
75
- | `cancel` | `team-tool.ts` | Mark queued/running tasks cancelled and request foreground interrupt. |
76
- | `forget` | `run-maintenance.ts` | Delete run state/artifacts with confirmation. |
77
- | `prune` | `run-maintenance.ts` | Remove old finished runs with confirmation. |
78
- | `export` | `run-export.ts` | Create portable run bundle. |
79
- | `import` / `imports` | `run-import.ts` / `import-index.ts` | Store/list imported bundles. |
80
- | `config` | `config.ts` + config action | Show/update user/project config. |
81
- | `doctor` | `team-tool/doctor.ts` | Platform/resource/runtime diagnostics. |
82
- | `validate` | `validate-resources.ts` | Validate agents/teams/workflows. |
83
- | `recommend` | `team-recommendation.ts` | Suggest team/workflow/action for a goal. |
84
- | management | `management.ts` | Create/update/delete/rename teams, agents, workflows. |
85
- | API | `team-tool/api.ts` | File-backed observability/control/mailbox API. |
86
-
87
- ## Worker modes
88
-
89
- | Mode | Behavior |
90
- |---|---|
91
- | `child-process` | Default. Launches real child `pi` processes per task. |
92
- | `scaffold` | Explicit dry-run. No child Pi worker execution. |
93
- | `live-session` | Experimental/gated in-process/live agent path. |
94
- | `auto` | Resolves to child-process unless config/env requests otherwise. |
95
-
96
- ## Important files
97
-
98
- ```text
99
- src/extension/register.ts Pi extension entry/wiring
100
- src/extension/team-tool/run.ts run creation and foreground/async split
101
- src/runtime/background-runner.ts detached async entrypoint
102
- src/runtime/async-runner.ts background spawn command/options
103
- src/runtime/team-runner.ts workflow/task graph scheduler
104
- src/runtime/task-runner.ts single task execution
105
- src/runtime/child-pi.ts child Pi process and output observer
106
- src/runtime/model-fallback.ts configured model candidates/routing
107
- src/runtime/concurrency.ts batch concurrency decisions
108
- src/runtime/process-status.ts pid/liveness/stale detection
109
- src/state/state-store.ts manifest/tasks persistence
110
- src/state/event-log.ts JSONL run events
111
- src/runtime/crew-agent-records.ts aggregate + per-agent status files
112
- ```
113
-
114
- ## Environment variables
115
-
116
- | Env | Effect |
117
- |---|---|
118
- | `PI_CREW_EXECUTE_WORKERS=0` | Disable real workers, use scaffold behavior. |
119
- | `PI_TEAMS_EXECUTE_WORKERS=0` | Legacy alias for worker disable. |
120
- | `PI_CREW_ENABLE_EXPERIMENTAL_LIVE_SESSION=1` | Allow experimental live-session runtime. |
121
- | `PI_CREW_MOCK_LIVE_SESSION=success` | Test hook for live-session mock. |
122
- | `PI_TEAMS_MOCK_CHILD_PI` | Test hook for mocked child Pi execution. |
123
- | `PI_CREW_DEPTH`, `PI_CREW_MAX_DEPTH` | Canonical subagent recursion guard. |
124
- | `PI_TEAMS_DEPTH`, `PI_TEAMS_MAX_DEPTH` | Legacy recursion guard aliases. |
125
- | `PI_TEAMS_HOME` | Override user config/state home in tests. |
126
- | `PI_TEAMS_PI_BIN` | Override child `pi` executable. |
127
- | `PI_CODING_AGENT_DIR` | Override Pi settings/models directory for model discovery. |
128
- | `PI_CREW_ASYNC_EARLY_EXIT_GUARD=0` | Disable 3s background early-exit guard. |
129
-
130
- ## State transition summary
131
-
132
- ```text
133
- queued/planning/running ── completed
134
- ├─ failed
135
- ├─ blocked
136
- └─ cancelled
137
- ```
138
-
139
- Task states follow the same durable contract plus `skipped`. Terminal states are monotonic during parallel merge.
140
-
141
- ## Observability tips
142
-
143
- - Use `/team-dashboard` for a UI overview.
144
- - Use `team status runId=...` for canonical state and stale async detection.
145
- - Read `background.log` for early import/spawn errors.
146
- - Read `events.jsonl` for event chronology.
147
- - Read `agents/{taskId}/status.json` for per-agent model/progress/tool status.
148
- - Read `artifacts/{runId}/transcripts/{taskId}.jsonl` for raw child Pi transcript.
1
+ # pi-crew Runtime Flow
2
+
3
+ This document is a compact map of the runtime paths used by `pi-crew`.
4
+
5
+ ## Main sequence
6
+
7
+ ```text
8
+ User / model
9
+ │ calls team({ action: "run", ... }) or /team-run
10
+
11
+ handleTeamTool()
12
+ │ validates schema and routes action
13
+
14
+ handleRun()
15
+ ├─ discoverTeams/discoverWorkflows/discoverAgents
16
+ ├─ validateWorkflowForTeam
17
+ ├─ expandParallelResearchWorkflow when applicable
18
+ ├─ createRunManifest + tasks.json + goal artifact
19
+ ├─ if async=true ─────────────────────────────────────────────┐
20
+ │ spawnBackgroundTeamRun() │
21
+ │ ├─ resolve jiti-register.mjs │
22
+ │ ├─ fail-fast if jiti missing │
23
+ │ ├─ node --import jiti-register.mjs background-runner.ts │
24
+ │ └─ parent schedules early-exit guard │
25
+ │ ▼
26
+ │ background-runner.ts
27
+ │ ├─ append async.started
28
+ │ ├─ write async.pid startup marker
29
+ │ ├─ rediscover team/workflow/agents
30
+ │ └─ executeTeamRun()
31
+
32
+ └─ if foreground/default
33
+ ├─ startForegroundRun schedules session-bound run, or
34
+ └─ executeTeamRun inline for scaffold/non-scheduled paths
35
+
36
+ executeTeamRun()
37
+ ├─ write run.running
38
+ ├─ materialize queued/running agent records lazily
39
+ ├─ build task graph index
40
+ ├─ while queued tasks exist
41
+ │ ├─ taskGraphSnapshot
42
+ │ ├─ resolveBatchConcurrency
43
+ │ ├─ getReadyTasks
44
+ │ ├─ append task.progress batch event
45
+ │ ├─ mapConcurrent ready batch
46
+ │ │ └─ runTeamTask()
47
+ │ │ ├─ prepare workspace/worktree
48
+ │ │ ├─ build task packet
49
+ │ │ ├─ render prompt + dependency context
50
+ │ │ ├─ choose model candidates from Pi config
51
+ │ │ ├─ spawn child Pi process
52
+ │ │ ├─ ChildPiLineObserver parses stdout/stderr
53
+ │ │ ├─ append per-agent events/output
54
+ │ │ ├─ update agent progress/task state
55
+ │ │ ├─ parse final JSONL/session usage
56
+ │ │ └─ write result/log/transcript/metadata artifacts
57
+ │ ├─ merge task updates monotonically
58
+ │ ├─ optional adaptive plan injection
59
+ │ ├─ save tasks/agents/progress
60
+ │ └─ write batch artifact
61
+ ├─ policy closeout
62
+ └─ run.completed / run.failed / run.blocked / run.cancelled
63
+ ```
64
+
65
+ ## Action router
66
+
67
+ | Action | Handler | Purpose |
68
+ |---|---|---|
69
+ | `run` | `team-tool/run.ts` | Create and execute a run, foreground or async. |
70
+ | `status` | `team-tool.ts` | Show manifest/tasks/agents/events and mark stale async runs failed. |
71
+ | `summary` | `session-summary.ts`/summary handler | Write/read run summary artifact. |
72
+ | `events` | `team-tool.ts` | Tail durable run events. |
73
+ | `artifacts` | `team-tool.ts` | List run artifacts. |
74
+ | `resume` | `team-tool.ts` | Requeue failed/cancelled/skipped/running tasks. |
75
+ | `cancel` | `team-tool.ts` | Mark queued/running tasks cancelled and request foreground interrupt. |
76
+ | `forget` | `run-maintenance.ts` | Delete run state/artifacts with confirmation. |
77
+ | `prune` | `run-maintenance.ts` | Remove old finished runs with confirmation. |
78
+ | `export` | `run-export.ts` | Create portable run bundle. |
79
+ | `import` / `imports` | `run-import.ts` / `import-index.ts` | Store/list imported bundles. |
80
+ | `config` | `config.ts` + config action | Show/update user/project config. |
81
+ | `doctor` | `team-tool/doctor.ts` | Platform/resource/runtime diagnostics. |
82
+ | `validate` | `validate-resources.ts` | Validate agents/teams/workflows. |
83
+ | `recommend` | `team-recommendation.ts` | Suggest team/workflow/action for a goal. |
84
+ | management | `management.ts` | Create/update/delete/rename teams, agents, workflows. |
85
+ | API | `team-tool/api.ts` | File-backed observability/control/mailbox API. |
86
+
87
+ ## Worker modes
88
+
89
+ | Mode | Behavior |
90
+ |---|---|
91
+ | `child-process` | Default. Launches real child `pi` processes per task. |
92
+ | `scaffold` | Explicit dry-run. No child Pi worker execution. |
93
+ | `live-session` | Experimental/gated in-process/live agent path. |
94
+ | `auto` | Resolves to child-process unless config/env requests otherwise. |
95
+
96
+ ## Important files
97
+
98
+ ```text
99
+ src/extension/register.ts Pi extension entry/wiring
100
+ src/extension/team-tool/run.ts run creation and foreground/async split
101
+ src/runtime/background-runner.ts detached async entrypoint
102
+ src/runtime/async-runner.ts background spawn command/options
103
+ src/runtime/team-runner.ts workflow/task graph scheduler
104
+ src/runtime/task-runner.ts single task execution
105
+ src/runtime/child-pi.ts child Pi process and output observer
106
+ src/runtime/model-fallback.ts configured model candidates/routing
107
+ src/runtime/concurrency.ts batch concurrency decisions
108
+ src/runtime/process-status.ts pid/liveness/stale detection
109
+ src/state/state-store.ts manifest/tasks persistence
110
+ src/state/event-log.ts JSONL run events
111
+ src/runtime/crew-agent-records.ts aggregate + per-agent status files
112
+ ```
113
+
114
+ ## Environment variables
115
+
116
+ | Env | Effect |
117
+ |---|---|
118
+ | `PI_CREW_EXECUTE_WORKERS=0` | Disable real workers, use scaffold behavior. |
119
+ | `PI_TEAMS_EXECUTE_WORKERS=0` | Legacy alias for worker disable. |
120
+ | `PI_CREW_ENABLE_EXPERIMENTAL_LIVE_SESSION=1` | Allow experimental live-session runtime. |
121
+ | `PI_CREW_MOCK_LIVE_SESSION=success` | Test hook for live-session mock. |
122
+ | `PI_TEAMS_MOCK_CHILD_PI` | Test hook for mocked child Pi execution. |
123
+ | `PI_CREW_DEPTH`, `PI_CREW_MAX_DEPTH` | Canonical subagent recursion guard. |
124
+ | `PI_TEAMS_DEPTH`, `PI_TEAMS_MAX_DEPTH` | Legacy recursion guard aliases. |
125
+ | `PI_TEAMS_HOME` | Override user config/state home in tests. |
126
+ | `PI_TEAMS_PI_BIN` | Override child `pi` executable. |
127
+ | `PI_CODING_AGENT_DIR` | Override Pi settings/models directory for model discovery. |
128
+ | `PI_CREW_ASYNC_EARLY_EXIT_GUARD=0` | Disable 3s background early-exit guard. |
129
+
130
+ ## State transition summary
131
+
132
+ ```text
133
+ queued/planning/running ── completed
134
+ ├─ failed
135
+ ├─ blocked
136
+ └─ cancelled
137
+ ```
138
+
139
+ Task states follow the same durable contract plus `skipped`. Terminal states are monotonic during parallel merge.
140
+
141
+ ## Observability tips
142
+
143
+ - Use `/team-dashboard` for a UI overview.
144
+ - Use `team status runId=...` for canonical state and stale async detection.
145
+ - Read `background.log` for early import/spawn errors.
146
+ - Read `events.jsonl` for event chronology.
147
+ - Read `agents/{taskId}/status.json` for per-agent model/progress/tool status.
148
+ - Read `artifacts/{runId}/transcripts/{taskId}.jsonl` for raw child Pi transcript.
package/index.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
- import { registerPiTeams } from "./src/extension/register.ts";
3
-
4
- export default function (pi: ExtensionAPI): void {
5
- registerPiTeams(pi);
6
- }
1
+ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import { registerPiTeams } from "./src/extension/register.ts";
3
+
4
+ export default function (pi: ExtensionAPI): void {
5
+ registerPiTeams(pi);
6
+ }