@melihmucuk/pi-crew 1.0.12 → 1.0.14

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 (68) hide show
  1. package/docs/architecture.md +24 -6
  2. package/extension/agent-discovery.ts +791 -0
  3. package/extension/bootstrap-session.ts +131 -0
  4. package/extension/index.ts +65 -0
  5. package/extension/integration/register-command.ts +59 -0
  6. package/extension/integration/register-renderers.ts +77 -0
  7. package/extension/integration/register-tools.ts +39 -0
  8. package/extension/integration/tool-presentation.ts +50 -0
  9. package/extension/integration/tools/crew-abort.ts +121 -0
  10. package/extension/integration/tools/crew-done.ts +42 -0
  11. package/extension/integration/tools/crew-list.ts +91 -0
  12. package/extension/integration/tools/crew-respond.ts +57 -0
  13. package/extension/integration/tools/crew-spawn.ts +88 -0
  14. package/extension/integration/tools/tool-deps.ts +16 -0
  15. package/extension/integration.ts +15 -0
  16. package/extension/runtime/crew-runtime.ts +426 -0
  17. package/extension/runtime/delivery-coordinator.ts +131 -0
  18. package/extension/runtime/overflow-recovery.ts +211 -0
  19. package/extension/runtime/subagent-registry.ts +85 -0
  20. package/extension/runtime/subagent-state.ts +73 -0
  21. package/extension/status-widget.ts +107 -0
  22. package/extension/subagent-messages.ts +124 -0
  23. package/extension/tool-registry.ts +19 -0
  24. package/package.json +11 -14
  25. package/dist/agent-discovery.d.ts +0 -29
  26. package/dist/agent-discovery.js +0 -527
  27. package/dist/bootstrap-session.d.ts +0 -21
  28. package/dist/bootstrap-session.js +0 -74
  29. package/dist/index.d.ts +0 -2
  30. package/dist/index.js +0 -46
  31. package/dist/integration/register-command.d.ts +0 -3
  32. package/dist/integration/register-command.js +0 -51
  33. package/dist/integration/register-renderers.d.ts +0 -2
  34. package/dist/integration/register-renderers.js +0 -53
  35. package/dist/integration/register-tools.d.ts +0 -3
  36. package/dist/integration/register-tools.js +0 -25
  37. package/dist/integration/tool-presentation.d.ts +0 -29
  38. package/dist/integration/tool-presentation.js +0 -28
  39. package/dist/integration/tools/crew-abort.d.ts +0 -2
  40. package/dist/integration/tools/crew-abort.js +0 -79
  41. package/dist/integration/tools/crew-done.d.ts +0 -2
  42. package/dist/integration/tools/crew-done.js +0 -28
  43. package/dist/integration/tools/crew-list.d.ts +0 -2
  44. package/dist/integration/tools/crew-list.js +0 -72
  45. package/dist/integration/tools/crew-respond.d.ts +0 -2
  46. package/dist/integration/tools/crew-respond.js +0 -32
  47. package/dist/integration/tools/crew-spawn.d.ts +0 -2
  48. package/dist/integration/tools/crew-spawn.js +0 -48
  49. package/dist/integration/tools/tool-deps.d.ts +0 -9
  50. package/dist/integration/tools/tool-deps.js +0 -1
  51. package/dist/integration.d.ts +0 -3
  52. package/dist/integration.js +0 -8
  53. package/dist/runtime/crew-runtime.d.ts +0 -62
  54. package/dist/runtime/crew-runtime.js +0 -285
  55. package/dist/runtime/delivery-coordinator.d.ts +0 -26
  56. package/dist/runtime/delivery-coordinator.js +0 -86
  57. package/dist/runtime/overflow-recovery.d.ts +0 -3
  58. package/dist/runtime/overflow-recovery.js +0 -155
  59. package/dist/runtime/subagent-registry.d.ts +0 -14
  60. package/dist/runtime/subagent-registry.js +0 -58
  61. package/dist/runtime/subagent-state.d.ts +0 -36
  62. package/dist/runtime/subagent-state.js +0 -34
  63. package/dist/status-widget.d.ts +0 -3
  64. package/dist/status-widget.js +0 -84
  65. package/dist/subagent-messages.d.ts +0 -33
  66. package/dist/subagent-messages.js +0 -59
  67. package/dist/tool-registry.d.ts +0 -5
  68. package/dist/tool-registry.js +0 -13
@@ -13,6 +13,7 @@ Primary components:
13
13
  - `extension/runtime/crew-runtime.ts` - Process-level singleton owning all subagent state
14
14
  - `extension/runtime/subagent-registry.ts` - In-memory subagent registry
15
15
  - `extension/runtime/delivery-coordinator.ts` - Owner-based result routing
16
+ - `extension/runtime/overflow-recovery.ts` - Context overflow retry tracking for subagent prompts
16
17
  - `extension/bootstrap-session.ts` - Subagent session construction with extension filtering
17
18
  - `extension/agent-discovery.ts` - Subagent definition discovery and validation
18
19
 
@@ -26,6 +27,7 @@ Responsibilities:
26
27
 
27
28
  - Create subagent state records
28
29
  - Bootstrap isolated subagent sessions
30
+ - Run subagent prompt cycles with overflow recovery
29
31
  - Transition subagents between states
30
32
  - Deliver results to owner sessions
31
33
 
@@ -40,7 +42,19 @@ Routes subagent results to the correct session at the correct time. Key behavior
40
42
 
41
43
  Underlying delivery: see pi's `sendMessage({ deliverAs, triggerTurn })` in extensions.md.
42
44
 
43
- ### 2.3 Subagent registry
45
+ `crew_list` uses the same idle/streaming delivery rules for its `crew-list-warning` custom message when active subagents exist. The warning is separate from tool output so the list remains a one-time snapshot while anti-polling guidance is delivered as a visible message.
46
+
47
+ ### 2.3 Overflow recovery
48
+
49
+ Subagent prompt cycles are wrapped by overflow recovery tracking. The tracker observes `agent_end`, `compaction_start`, `compaction_end`, `auto_retry_start`, and `auto_retry_end` events to distinguish normal completion from context-overflow compaction and retry.
50
+
51
+ Outcomes:
52
+
53
+ - No overflow observed → prompt outcome is based on the final assistant message.
54
+ - Overflow compaction completes with retry and the retry reaches a terminal `agent_end` → recovered; prompt outcome is based on the final assistant message.
55
+ - Overflow handling times out, is cancelled, or compaction does not retry → failed; the subagent settles as `error` unless the final assistant message already reported an error.
56
+
57
+ ### 2.4 Subagent registry
44
58
 
45
59
  In-memory, process-scoped: `Map<subagentId, SubagentState>`
46
60
 
@@ -80,7 +94,7 @@ Critical: `deliverAs: "steer"` to an idle session leaves the message unprocessed
80
94
 
81
95
  ### 4.3 Deferred flush
82
96
 
83
- Pending message flush after `session_start` is deferred to next macrotask. Synchronous delivery loses custom message persistence (pi-core emits `session_start` before reconnecting agent listener during resume).
97
+ Pending message flush after `session_start` is deferred to next macrotask. Synchronous delivery loses custom message persistence (pi-core emits `session_start` before reconnecting agent listener during resume). While a flush is scheduled, new deliveries for that owner are queued so ordering is preserved.
84
98
 
85
99
  ### 4.4 TTL cleanup
86
100
 
@@ -109,6 +123,10 @@ After prompt cycle completion, inspect assistant stop reason:
109
123
 
110
124
  `interactive: true` subagents enter `waiting` after each response. They accept follow-up messages via `crew_respond` until explicitly closed with `crew_done`. Closing does NOT emit a duplicate `crew-result`.
111
125
 
126
+ ### 5.4 Tool completion behavior
127
+
128
+ `crew_respond` returns immediately and delivers the subagent response asynchronously. Successful `crew_abort` results terminate the current tool turn after aborting owned subagents.
129
+
112
130
  ## 6. Ownership and isolation
113
131
 
114
132
  Invariants:
@@ -145,9 +163,10 @@ JSON overrides: `~/.pi/agent/pi-crew.json` (global), `<cwd>/.pi/pi-crew.json` (p
145
163
  5. `crew_done` cleans up only; no duplicate result message.
146
164
  6. Queued results flush when owner session becomes active.
147
165
  7. `crew-result` messages appear before `crew-remaining` notes (ordering via `triggerTurn` split).
148
- 8. Pending messages preserved for inactive sessions; TTL (24h) prevents memory leak.
149
- 9. Active subagent state survives runtime replacement within same process.
150
- 10. Graceful quit aborts subagents through `session_shutdown.reason === "quit"`; replacement paths do not.
166
+ 8. `crew-list-warning` is delivered as a separate custom message when `crew_list` is called while the owner has active subagents.
167
+ 9. Pending messages preserved for inactive sessions; TTL (24h) prevents memory leak.
168
+ 10. Active subagent state survives runtime replacement within same process.
169
+ 11. Graceful quit aborts subagents through `session_shutdown.reason === "quit"`; replacement paths do not.
151
170
 
152
171
  ## 9. Reading guide
153
172
 
@@ -164,5 +183,4 @@ JSON overrides: `~/.pi/agent/pi-crew.json` (global), `<cwd>/.pi/pi-crew.json` (p
164
183
 
165
184
  ```bash
166
185
  npm run typecheck
167
- npm run build
168
186
  ```