pi-crew 0.1.51 → 0.2.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.
Files changed (239) 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/doctor.ts +28 -3
  65. package/src/extension/team-tool/handle-settings.ts +195 -188
  66. package/src/extension/team-tool/inspect.ts +41 -41
  67. package/src/extension/team-tool/intent-policy.ts +42 -42
  68. package/src/extension/team-tool/lifecycle-actions.ts +27 -8
  69. package/src/extension/team-tool/plan.ts +19 -19
  70. package/src/extension/team-tool/run.ts +12 -1
  71. package/src/extension/team-tool.ts +11 -1
  72. package/src/i18n.ts +184 -184
  73. package/src/observability/exporters/otlp-exporter.ts +92 -77
  74. package/src/prompt/prompt-runtime.ts +72 -72
  75. package/src/runtime/agent-memory.ts +72 -72
  76. package/src/runtime/agent-observability.ts +114 -114
  77. package/src/runtime/async-marker.ts +26 -26
  78. package/src/runtime/attention-events.ts +28 -28
  79. package/src/runtime/auto-resume.ts +100 -0
  80. package/src/runtime/background-runner.ts +11 -1
  81. package/src/runtime/cancellation-token.ts +89 -89
  82. package/src/runtime/cancellation.ts +61 -61
  83. package/src/runtime/capability-inventory.ts +116 -116
  84. package/src/runtime/child-pi.ts +7 -2
  85. package/src/runtime/compaction-summary.ts +271 -0
  86. package/src/runtime/completion-guard.ts +190 -190
  87. package/src/runtime/crash-recovery.ts +33 -0
  88. package/src/runtime/delta-conflict.ts +360 -0
  89. package/src/runtime/direct-run.ts +35 -35
  90. package/src/runtime/foreground-control.ts +82 -82
  91. package/src/runtime/green-contract.ts +46 -46
  92. package/src/runtime/group-join.ts +106 -106
  93. package/src/runtime/heartbeat-gradient.ts +28 -28
  94. package/src/runtime/heartbeat-watcher.ts +124 -124
  95. package/src/runtime/iteration-hooks.ts +262 -0
  96. package/src/runtime/live-agent-control.ts +88 -88
  97. package/src/runtime/live-control-realtime.ts +36 -36
  98. package/src/runtime/live-extension-bridge.ts +150 -150
  99. package/src/runtime/live-irc.ts +92 -92
  100. package/src/runtime/live-session-health.ts +100 -100
  101. package/src/runtime/loop-gates.ts +129 -0
  102. package/src/runtime/metric-parser.ts +40 -0
  103. package/src/runtime/notebook-helpers.ts +90 -90
  104. package/src/runtime/orphan-sentinel.ts +7 -7
  105. package/src/runtime/parallel-research.ts +44 -44
  106. package/src/runtime/phase-progress.ts +217 -0
  107. package/src/runtime/pi-args.ts +38 -11
  108. package/src/runtime/pi-json-output.ts +111 -111
  109. package/src/runtime/pi-spawn.ts +57 -7
  110. package/src/runtime/policy-engine.ts +79 -79
  111. package/src/runtime/post-checks.ts +122 -0
  112. package/src/runtime/progress-event-coalescer.ts +43 -43
  113. package/src/runtime/prose-compressor.ts +164 -164
  114. package/src/runtime/recovery-recipes.ts +74 -74
  115. package/src/runtime/result-extractor.ts +121 -121
  116. package/src/runtime/role-permission.ts +39 -39
  117. package/src/runtime/sensitive-paths.ts +2 -2
  118. package/src/runtime/session-resources.ts +25 -25
  119. package/src/runtime/session-snapshot.ts +59 -59
  120. package/src/runtime/session-usage.ts +79 -79
  121. package/src/runtime/sidechain-output.ts +29 -29
  122. package/src/runtime/stream-preview.ts +177 -177
  123. package/src/runtime/supervisor-contact.ts +59 -59
  124. package/src/runtime/task-display.ts +38 -38
  125. package/src/runtime/task-graph.ts +207 -0
  126. package/src/runtime/task-quality.ts +207 -0
  127. package/src/runtime/task-runner/capabilities.ts +78 -78
  128. package/src/runtime/task-runner/live-executor.ts +7 -1
  129. package/src/runtime/task-runner/progress.ts +119 -119
  130. package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
  131. package/src/runtime/task-runner/result-utils.ts +14 -14
  132. package/src/runtime/task-runner/run-projection.ts +103 -103
  133. package/src/runtime/task-runner/state-helpers.ts +22 -22
  134. package/src/runtime/team-runner.ts +117 -7
  135. package/src/runtime/worker-heartbeat.ts +21 -21
  136. package/src/runtime/worker-startup.ts +57 -57
  137. package/src/runtime/workflow-state.ts +187 -0
  138. package/src/runtime/workspace-tree.ts +298 -298
  139. package/src/schema/config-schema.ts +11 -0
  140. package/src/schema/validation-types.ts +148 -0
  141. package/src/skills/skill-templates.ts +374 -0
  142. package/src/state/active-run-registry.ts +35 -11
  143. package/src/state/atomic-write.ts +33 -26
  144. package/src/state/contracts.ts +1 -0
  145. package/src/state/event-reconstructor.ts +217 -0
  146. package/src/state/locks.ts +2 -13
  147. package/src/state/mailbox.ts +4 -3
  148. package/src/state/state-store.ts +32 -14
  149. package/src/state/task-claims.ts +44 -44
  150. package/src/state/types.ts +9 -0
  151. package/src/state/usage.ts +29 -29
  152. package/src/subagents/async-entry.ts +1 -1
  153. package/src/subagents/index.ts +3 -3
  154. package/src/subagents/live/control.ts +1 -1
  155. package/src/subagents/live/manager.ts +1 -1
  156. package/src/subagents/live/realtime.ts +1 -1
  157. package/src/subagents/live/session-runtime.ts +1 -1
  158. package/src/subagents/manager.ts +1 -1
  159. package/src/subagents/spawn.ts +1 -1
  160. package/src/teams/team-serializer.ts +38 -38
  161. package/src/types/diff.d.ts +18 -18
  162. package/src/ui/crew-footer.ts +101 -101
  163. package/src/ui/crew-select-list.ts +111 -111
  164. package/src/ui/crew-widget.ts +5 -2
  165. package/src/ui/dashboard-panes/cancellation-pane.ts +42 -42
  166. package/src/ui/dashboard-panes/capability-pane.ts +59 -59
  167. package/src/ui/dashboard-panes/mailbox-pane.ts +35 -35
  168. package/src/ui/dashboard-panes/metrics-pane.ts +34 -34
  169. package/src/ui/dashboard-panes/progress-pane.ts +11 -0
  170. package/src/ui/dynamic-border.ts +25 -25
  171. package/src/ui/layout-primitives.ts +106 -106
  172. package/src/ui/loaders.ts +158 -158
  173. package/src/ui/render-coalescer.ts +51 -51
  174. package/src/ui/render-diff.ts +119 -119
  175. package/src/ui/render-scheduler.ts +143 -143
  176. package/src/ui/run-action-dispatcher.ts +10 -1
  177. package/src/ui/spinner.ts +17 -17
  178. package/src/ui/status-colors.ts +58 -58
  179. package/src/ui/syntax-highlight.ts +116 -116
  180. package/src/ui/transcript-entries.ts +258 -258
  181. package/src/utils/completion-dedupe.ts +63 -63
  182. package/src/utils/frontmatter.ts +68 -68
  183. package/src/utils/git.ts +262 -262
  184. package/src/utils/ids.ts +17 -17
  185. package/src/utils/incremental-reader.ts +104 -104
  186. package/src/utils/names.ts +27 -27
  187. package/src/utils/redaction.ts +44 -44
  188. package/src/utils/safe-paths.ts +47 -47
  189. package/src/utils/scan-cache.ts +136 -136
  190. package/src/utils/sleep.ts +40 -26
  191. package/src/utils/task-name-generator.ts +337 -337
  192. package/src/workflows/validate-workflow.ts +40 -40
  193. package/src/worktree/branch-freshness.ts +45 -45
  194. package/teams/default.team.md +12 -12
  195. package/teams/fast-fix.team.md +11 -11
  196. package/teams/implementation.team.md +18 -18
  197. package/teams/parallel-research.team.md +14 -14
  198. package/teams/research.team.md +11 -11
  199. package/teams/review.team.md +12 -12
  200. package/workflows/default.workflow.md +30 -29
  201. package/workflows/fast-fix.workflow.md +23 -22
  202. package/workflows/implementation.workflow.md +43 -43
  203. package/workflows/parallel-research.workflow.md +46 -46
  204. package/workflows/research.workflow.md +22 -22
  205. package/workflows/review.workflow.md +30 -30
  206. package/docs/refactor-tasks-phase3.md +0 -394
  207. package/docs/refactor-tasks-phase4.md +0 -564
  208. package/docs/refactor-tasks-phase5.md +0 -402
  209. package/docs/refactor-tasks-phase6.md +0 -662
  210. package/docs/refactor-tasks.md +0 -1484
  211. package/docs/research/AGENT-EXECUTION-ARCHITECTURE.md +0 -261
  212. package/docs/research/AGENT-LIFECYCLE-COMPARISON.md +0 -111
  213. package/docs/research/AUDIT_OH_MY_PI.md +0 -261
  214. package/docs/research/AUDIT_PI_CREW.md +0 -457
  215. package/docs/research/CAVEMAN-DEEP-RESEARCH.md +0 -281
  216. package/docs/research/COMPARISON_OH_MY_PI_VS_PI_CREW.md +0 -264
  217. package/docs/research/DEEP-RESEARCH-PI-POWERBAR.md +0 -343
  218. package/docs/research/DEEP_RESEARCH_SUBAGENT_ARCHITECTURE.md +0 -480
  219. package/docs/research/GAP_CLOSURE_IMPLEMENTATION_PLAN.md +0 -354
  220. package/docs/research/IMPLEMENTATION_PLAN.md +0 -385
  221. package/docs/research/LIVE-SESSION-PRODUCTION-READY-PLAN.md +0 -502
  222. package/docs/research/OH-MY-PI-DEEP-RESEARCH-v14.7.6.md +0 -266
  223. package/docs/research/REMAINING-GAPS-PLAN.md +0 -363
  224. package/docs/research/SESSION-SUMMARY-2026-05-08.md +0 -146
  225. package/docs/research/UI-RESPONSIVENESS-AUDIT.md +0 -173
  226. package/docs/research-awesome-agent-skills-distillation.md +0 -100
  227. package/docs/research-extension-examples.md +0 -297
  228. package/docs/research-extension-system.md +0 -324
  229. package/docs/research-oh-my-pi-distillation.md +0 -369
  230. package/docs/research-optimization-plan.md +0 -548
  231. package/docs/research-phase10-distillation.md +0 -199
  232. package/docs/research-phase11-distillation.md +0 -201
  233. package/docs/research-phase8-operator-experience-plan.md +0 -819
  234. package/docs/research-phase9-observability-reliability-plan.md +0 -1190
  235. package/docs/research-pi-coding-agent.md +0 -357
  236. package/docs/research-source-pi-crew-reference.md +0 -174
  237. package/docs/research-ui-optimization-plan.md +0 -480
  238. package/docs/source-runtime-refactor-map.md +0 -107
  239. 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
+ }