opencode-orchestrator 0.8.12 β†’ 0.8.13

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 (2) hide show
  1. package/README.md +265 -67
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -28,70 +28,202 @@ Multi-agent system that autonomously executes complex tasks. Commander delegates
28
28
 
29
29
  ---
30
30
 
31
- ## πŸ›οΈ Master Session Architecture
31
+ ## πŸ›οΈ Architecture Overview
32
+
33
+ ### πŸš€ User Flow Architecture
34
+
35
+ ```
36
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
37
+ β”‚ πŸ‘€ USER REQUEST β”‚
38
+ β”‚ /task "Build a REST API" β”‚
39
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
40
+ β”‚
41
+ β–Ό
42
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
43
+ β”‚ chat.message-handler.ts β”‚
44
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
45
+ β”‚ β”‚ 1. Detect /task command β”‚ β”‚
46
+ β”‚ β”‚ 2. Create SessionState in sessions Map β”‚ β”‚
47
+ β”‚ β”‚ 3. Call startMissionLoop() β†’ Write .opencode/loop-state.json β”‚ β”‚
48
+ β”‚ β”‚ 4. Apply mission template + Inject prompt to Commander β”‚ β”‚
49
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
50
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
51
+ β”‚
52
+ β–Ό
53
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
54
+ β”‚ 🎯 MASTER SESSION (Commander) β”‚
55
+ β”‚ β”‚
56
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
57
+ β”‚ β”‚ 1️⃣ THINK │───▢│ 2️⃣ PLAN │───▢│ 3️⃣ DELEGATE │───▢│ 4️⃣ MONITOR β”‚ β”‚
58
+ β”‚ β”‚ Analyze β”‚ β”‚ Create β”‚ β”‚ Spawn β”‚ β”‚ Watch β”‚ β”‚
59
+ β”‚ β”‚ request β”‚ β”‚ TODO.md β”‚ β”‚ Workers β”‚ β”‚ progress β”‚ β”‚
60
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
61
+ β”‚ β”‚
62
+ β”‚ Core Systems Active: β”‚
63
+ β”‚ β€’ πŸ”„ SessionRecovery (auto error handling) β”‚
64
+ β”‚ β€’ πŸ“‹ TodoContinuation (auto-resume on idle) β”‚
65
+ β”‚ β€’ πŸŽ–οΈ MissionSealHandler (completion detection) β”‚
66
+ β”‚ β€’ πŸ“£ TaskToastManager (consolidated notifications) β”‚
67
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
68
+ β”‚
69
+ delegate_task (background: true)
70
+ β”‚
71
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
72
+ β–Ό β–Ό β–Ό
73
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
74
+ β”‚ ⚑ Worker Session 1 β”‚ β”‚ ⚑ Worker Session 2 β”‚ β”‚ ⚑ Worker Session N β”‚
75
+ β”‚ Agent: Planner β”‚ β”‚ Agent: Worker β”‚ β”‚ Agent: Reviewer β”‚
76
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
77
+ β”‚ β€’ Independent exec β”‚ β”‚ β€’ Independent exec β”‚ β”‚ β€’ Read/Write β”‚
78
+ β”‚ β€’ Read/Write β”‚ β”‚ β€’ Read/Write β”‚ β”‚ .opencode/ β”‚
79
+ β”‚ .opencode/ β”‚ β”‚ .opencode/ β”‚ β”‚ β€’ Notify parent β”‚
80
+ β”‚ β€’ Notify parent β”‚ β”‚ β€’ Notify parent β”‚ β”‚ on complete β”‚
81
+ β”‚ on complete β”‚ β”‚ on complete β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
82
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
83
+ β”‚ β”‚ β”‚
84
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
85
+ β–Ό
86
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
87
+ β”‚ πŸ“ SHARED CONTEXT (.opencode/) β”‚
88
+ β”‚ β”‚
89
+ β”‚ todo.md ◄── Planner creates β”‚ Worker implements β”‚ Reviewer checks ──▢ [x] β”‚
90
+ β”‚ β”‚
91
+ β”‚ ⚑ All sessions read/write this shared workspace β”‚
92
+ β”‚ πŸ“Š Progress is tracked via todo.md checkboxes β”‚
93
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
94
+ β”‚
95
+ β–Ό
96
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
97
+ β”‚ πŸŽ–οΈ MISSION SEAL LOOP β”‚
98
+ β”‚ β”‚
99
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
100
+ β”‚ β”‚ β”‚ β”‚
101
+ β”‚ β”‚ session.idle event ──▢ Check for <mission_seal>SEALED</mission_seal> β”‚ β”‚
102
+ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
103
+ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
104
+ β”‚ β”‚ β”‚ β–Ό β–Ό β”‚ β”‚
105
+ β”‚ β”‚ β”‚ [Seal Found] [Not Found] β”‚ β”‚
106
+ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
107
+ β”‚ β”‚ β”‚ β–Ό β–Ό β”‚ β”‚
108
+ β”‚ β”‚ β”‚ βœ… Mission Complete iteration < max? β”‚ β”‚
109
+ β”‚ β”‚ β”‚ Clear state β”‚ β”‚ β”‚
110
+ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
111
+ β”‚ β”‚ β”‚ β–Ό β–Ό β”‚ β”‚
112
+ β”‚ β”‚ β”‚ [YES] [NO] β”‚ β”‚
113
+ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
114
+ β”‚ β”‚ β”‚ β–Ό β–Ό β”‚ β”‚
115
+ β”‚ β”‚ β”‚ 3s countdown toast ⚠️ Max iterations β”‚ β”‚
116
+ β”‚ β”‚ β”‚ Inject continuation Force stop β”‚ β”‚
117
+ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
118
+ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
119
+ β”‚ β”‚ LOOP β”‚ β”‚
120
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
121
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
122
+ ```
123
+
124
+ ### πŸ“Š Project Architecture
32
125
 
33
126
  ```
34
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
35
- β”‚ πŸ‘€ USER REQUEST β”‚
36
- β”‚ "/task Build a REST API" β”‚
37
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
38
- β”‚
39
- β–Ό
40
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
41
- β”‚ 🎯 MASTER SESSION (Commander Agent) β”‚
42
- β”‚ β”‚
43
- β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
44
- β”‚ β”‚ 1️⃣ THINK β†’ Analyze request, assess complexity (L1/L2/L3) β”‚ β”‚
45
- β”‚ β”‚ 2️⃣ PLAN β†’ Create .opencode/todo.md via Planner β”‚ β”‚
46
- β”‚ β”‚ 3️⃣ DELEGATE β†’ Spawn Worker Sessions via delegate_task β”‚ β”‚
47
- β”‚ β”‚ 4️⃣ MONITOR β†’ Watch .opencode/ for progress, handle completions β”‚ β”‚
48
- β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
49
- β”‚ β”‚
50
- β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
51
- β”‚ β”‚ Session State β”‚ β”‚ 4 CONSOLIDATED AGENTS β”‚ β”‚
52
- β”‚ β”‚ Map<id,state> β”‚ β”‚ 🎯 Commander πŸ“‹ Planner β”‚ β”‚
53
- β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ πŸ”¨ Worker βœ… Reviewer β”‚ β”‚
54
- β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
55
- β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
56
- β”‚ β”‚ Plugin Hooks β”‚ β”‚
57
- β”‚ β”‚ event β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
58
- β”‚ β”‚ chat.message β”‚ β”‚ πŸ”„ SessionRecovery (auto error handling) β”‚ β”‚
59
- β”‚ β”‚ tool.execute β”‚ β”‚ πŸ“‹ TodoContinuation (auto-resume on idle) β”‚ β”‚
60
- β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ πŸ“£ TaskToastManager (consolidated notifications)β”‚ β”‚
61
- β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
62
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
63
- β”‚
64
- delegate_task (async)
65
- β”‚
66
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
67
- β–Ό β–Ό β–Ό
127
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
128
+ β”‚ OpenCode Orchestrator Plugin β”‚
129
+ β”‚ src/index.ts β”‚
130
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
131
+ β”‚
132
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
133
+ β–Ό β–Ό β–Ό
134
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
135
+ β”‚ Plugin Hooks β”‚ β”‚ Core Systems β”‚ β”‚ Tools β”‚
136
+ β”‚ plugin-handlers/ β”‚ β”‚ src/core/ β”‚ β”‚ src/tools/ β”‚
137
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
138
+ β”‚ β€’ chat.message β”‚ β”‚ β€’ agents/ β”‚ β”‚ β€’ parallel/ β”‚
139
+ β”‚ β€’ event β”‚ β”‚ ParallelManager β”‚ β”‚ delegate_task β”‚
140
+ β”‚ β€’ tool.execute β”‚ β”‚ TaskStore β”‚ β”‚ get_task_result β”‚
141
+ β”‚ β€’ assistant.done β”‚ β”‚ Concurrency β”‚ β”‚ β€’ web/ β”‚
142
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β€’ loop/ β”‚ β”‚ webfetch, websearch β”‚
143
+ β”‚ MissionSeal β”‚ β”‚ β€’ background-cmd/ β”‚
144
+ β”‚ TodoContinuation β”‚ β”‚ run_background β”‚
145
+ β”‚ β€’ recovery/ β”‚ β”‚ β€’ search β”‚
146
+ β”‚ SessionRecovery β”‚ β”‚ grep, glob, mgrep β”‚
147
+ β”‚ β€’ notification/ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
148
+ β”‚ Toast, Manager β”‚
149
+ β”‚ β€’ session/ β”‚
150
+ β”‚ SharedContext β”‚
151
+ β”‚ β€’ cache/ β”‚
152
+ β”‚ DocumentCache β”‚
153
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
154
+ β”‚
155
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
156
+ β–Ό β–Ό β–Ό
68
157
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
69
- β”‚ ⚑ Worker Session 1 β”‚ β”‚ ⚑ Worker Session 2 β”‚ β”‚ ⚑ Worker Session N β”‚
70
- β”‚ Agent: Planner β”‚ β”‚ Agent: Worker β”‚ β”‚ Agent: Reviewer β”‚
71
- β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
72
- β”‚ β€’ Independent exec β”‚ β”‚ β€’ Independent exec β”‚ β”‚ β€’ Independent exec β”‚
73
- β”‚ β€’ Read/Write β”‚ β”‚ β€’ Read/Write β”‚ β”‚ β€’ Read/Write β”‚
74
- β”‚ .opencode/ β”‚ β”‚ .opencode/ β”‚ β”‚ .opencode/ β”‚
75
- β”‚ β€’ Notify parent β”‚ β”‚ β€’ Notify parent β”‚ β”‚ β€’ Notify parent β”‚
76
- β”‚ on complete β”‚ β”‚ on complete β”‚ β”‚ on complete β”‚
158
+ β”‚ 🎯 Commander β”‚ β”‚ πŸ“‹ Planner β”‚ β”‚ πŸ”¨ Worker β”‚
159
+ β”‚ Orchestrator β”‚ β”‚ Research+Plan β”‚ β”‚ Implementation β”‚
160
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
161
+ β”‚ β€’ Mission control β”‚ β”‚ β€’ Task decompose β”‚ β”‚ β€’ Code writing β”‚
162
+ β”‚ β€’ Parallel delegate β”‚ β”‚ β€’ Doc research β”‚ β”‚ β€’ File operations β”‚
163
+ β”‚ β€’ TODO monitoring β”‚ β”‚ β€’ TODO creation β”‚ β”‚ β€’ Command execution β”‚
77
164
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
78
- β”‚ β”‚ β”‚
79
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
80
- β–Ό
81
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
82
- β”‚ πŸ“ SHARED CONTEXT (.opencode/) β”‚
83
- β”‚ β”‚
84
- β”‚ .opencode/todo.md ← Master TODO (Planner creates, Reviewer updates) β”‚
85
- β”‚ .opencode/context.md ← Adaptive context (shrinks as progress increases) β”‚
86
- β”‚ .opencode/docs/ ← Cached docs (Planner/Worker save, auto-expire) β”‚
87
- β”‚ .opencode/archive/ ← Old context for reference β”‚
88
- β”‚ β”‚
89
- β”‚ ⚑ All sessions read/write this shared workspace β”‚
90
- β”‚ πŸ“Š Progress is tracked via todo.md checkboxes β”‚
91
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
165
+ β”‚ β”‚ β”‚
166
+ β”‚ β”‚ β”‚
167
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
168
+ β”‚ β–Ό β”‚ β”‚
169
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
170
+ β”‚ β”‚ βœ… Reviewer β”‚ β”‚ β”‚
171
+ β”‚ β”‚ Quality+Context β”‚ β”‚ β”‚
172
+ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚
173
+ β”‚ β”‚ β€’ Verification β”‚ β”‚ β”‚
174
+ β”‚ β”‚ β€’ TODO updates β”‚ β”‚ β”‚
175
+ β”‚ β”‚ β€’ Context manage β”‚ β”‚ β”‚
176
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
177
+ β”‚ β”‚ β”‚ β”‚
178
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
179
+ β–Ό
180
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
181
+ β”‚ πŸ“ Shared Workspace (.opencode/) β”‚
182
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
183
+ β”‚ todo.md β”‚ Hierarchical task list (Epic β†’ Task β†’ Subtask) β”‚
184
+ β”‚ context.md β”‚ Adaptive context (shrinks with progress) β”‚
185
+ β”‚ loop-state.json β”‚ Mission loop iteration state β”‚
186
+ β”‚ docs/ β”‚ Cached documentation (auto-expire) β”‚
187
+ β”‚ archive/ β”‚ Old context snapshots β”‚
188
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
189
+ ```
190
+
191
+
192
+ ### πŸ“‚ Directory Structure
193
+
194
+ ```
195
+ src/
196
+ β”œβ”€β”€ index.ts # Plugin main entry point
197
+ β”œβ”€β”€ agents/
198
+ β”‚ β”œβ”€β”€ commander.ts # Commander agent definition
199
+ β”‚ β”œβ”€β”€ definitions.ts # Agent exports
200
+ β”‚ β”œβ”€β”€ prompts/ # Prompt fragments (commander/, planner/, worker/, reviewer/)
201
+ β”‚ └── subagents/ # Subagent definitions (planner.ts, worker.ts, reviewer.ts)
202
+ β”œβ”€β”€ core/
203
+ β”‚ β”œβ”€β”€ agents/ # ParallelAgentManager, TaskStore, ConcurrencyController
204
+ β”‚ β”œβ”€β”€ cache/ # DocumentCache
205
+ β”‚ β”œβ”€β”€ loop/ # MissionSeal, TodoContinuation, TodoEnforcer
206
+ β”‚ β”œβ”€β”€ notification/ # Toast, TaskToastManager
207
+ β”‚ β”œβ”€β”€ recovery/ # SessionRecovery, ErrorPatterns
208
+ β”‚ β”œβ”€β”€ session/ # SharedContext
209
+ β”‚ └── task/ # TaskScheduler, TaskParser
210
+ β”œβ”€β”€ plugin-handlers/
211
+ β”‚ β”œβ”€β”€ chat-message-handler.ts # /task detection, mission start
212
+ β”‚ β”œβ”€β”€ event-handler.ts # session.idle, session.error handling
213
+ β”‚ β”œβ”€β”€ tool-execute-handler.ts # Tool completion tracking
214
+ β”‚ └── assistant-done-handler.ts # Response completion
215
+ β”œβ”€β”€ shared/
216
+ β”‚ β”œβ”€β”€ constants/ # PATHS, TOOL_NAMES, MISSION_SEAL, etc.
217
+ β”‚ β”œβ”€β”€ agent/ # Agent definitions, names
218
+ β”‚ └── errors/ # Error types
219
+ β”œβ”€β”€ tools/
220
+ β”‚ β”œβ”€β”€ parallel/ # delegate_task, get_task_result, list_tasks, cancel_task
221
+ β”‚ β”œβ”€β”€ web/ # webfetch, websearch, codesearch, cache_docs
222
+ β”‚ β”œβ”€β”€ background-cmd/ # run_background, check_background, list_background
223
+ β”‚ └── search.ts # grep_search, glob_search, mgrep
224
+ └── utils/ # Utility functions
92
225
  ```
93
226
 
94
- ---
95
227
 
96
228
  ## Installation
97
229
 
@@ -127,9 +259,17 @@ Use `/task` when you need the AI to **complete a mission autonomously**:
127
259
  **What Commander Mode Does:**
128
260
  - ♾️ **Runs until sealed** β€” Loops until agent outputs `<mission_seal>SEALED</mission_seal>`
129
261
  - 🧠 **Anti-Hallucination** β€” Researches docs before coding
130
- - ⚑ **Parallel Execution** β€” Up to 50 concurrent agents
131
- - πŸ”„ **Auto-Recovery** β€” Handles errors automatically
132
- - πŸ“Š **Triage System** β€” Adapts strategy to complexity (L1/L2/L3)
262
+ - ⚑ **Parallel Execution** β€” Up to 50 concurrent Worker Sessions
263
+ - πŸ”„ **Auto-Recovery** β€” Handles errors automatically with pattern matching
264
+ - πŸ“Š **Progress Tracking** β€” Monitors TODO completion and shows progress
265
+
266
+ **Concurrency Limits (per agent type):**
267
+ | Agent | Max Concurrent | Purpose |
268
+ |--------|---------------|-----------|
269
+ | Commander | 1 | Single orchestrator per mission |
270
+ | Planner | 3 | Research and TODO planning |
271
+ | Worker | 10 | Implementation tasks |
272
+ | Reviewer | 5 | Verification and testing |
133
273
 
134
274
  **πŸŽ–οΈ Mission Seal Loop:**
135
275
  ```
@@ -172,7 +312,65 @@ What's the difference between useState and useReducer?
172
312
 
173
313
  ---
174
314
 
175
- ## The 7 Agents
315
+ ## πŸ”„ Mission Loop Mechanism
316
+
317
+ The Commander uses an event-driven mission loop to autonomously complete missions:
318
+
319
+ ```
320
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
321
+ β”‚ MISSION LOOP LIFECYCLE β”‚
322
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
323
+
324
+ 1️⃣ User sends "/task 'mission'"
325
+ ↓
326
+ 2️⃣ chat.message handler detects /task
327
+ ↓
328
+ 3️⃣ Create session + startMissionLoop()
329
+ ↓
330
+ Write .opencode/loop-state.json:
331
+ {
332
+ "active": true,
333
+ "sessionID": "ses_abc",
334
+ "iteration": 1,
335
+ "maxIterations": 20
336
+ }
337
+ ↓
338
+ 4️⃣ Commander receives prompt β†’ delegates work
339
+ ↓
340
+ 5️⃣ Worker sessions execute β†’ results collected
341
+ ↓
342
+ 6️⃣ session.idle event triggers
343
+ ↓
344
+ Check for <mission_seal>SEALED</mission_seal>
345
+ β”œβ”€ Seal found? β†’ Clear loop state β†’ Complete βœ…
346
+ └─ Not found? β†’ Increment iteration β†’ Continue loop
347
+ ↓
348
+ Show countdown toast (3 seconds)
349
+ ↓
350
+ Inject continuation prompt
351
+ ↓
352
+ [Loop back to step 4]
353
+ ```
354
+
355
+ **Key Loop Components:**
356
+
357
+ | Component | File | Purpose |
358
+ |-----------|-------|---------|
359
+ | Loop State | `src/core/loop/mission-seal.ts` | State management (.opencode/loop-state.json) |
360
+ | Seal Detection | `src/core/loop/mission-seal-handler.ts` | Detect `<mission_seal>` in responses |
361
+ | Continuation | `src/core/loop/mission-seal-handler.ts` | Inject prompts to continue work |
362
+ | Countdown | `src/core/loop/mission-seal-handler.ts` | 3-second countdown toast |
363
+ | Idle Handler | `src/plugin-handlers/assistant-done-handler.ts` | Monitor session.idle events |
364
+
365
+ **Why Event-Driven?**
366
+ - No fixed iteration limits - loop continues until sealed
367
+ - Resilient to network delays
368
+ - Can be interrupted by user at any time
369
+ - Efficient polling (500ms interval with backoff)
370
+
371
+ ---
372
+
373
+ ## The 4 Agents
176
374
 
177
375
  | Agent | Role | Responsibility |
178
376
  | :--------------- | :----------- | :--------------------------------- |
@@ -210,7 +408,7 @@ What's the difference between useState and useReducer?
210
408
  | Notifications | 100/parent | FIFO eviction |
211
409
  | Event History | 100 | Ring buffer |
212
410
  | Session TTL | 60 min | Auto cleanup |
213
- | Poll Interval | 1 second | Fast completion detection |
411
+ | Poll Interval | 500ms | Fast completion detection |
214
412
  | Max Poll Count | 600 | Hard limit prevents infinite loops |
215
413
  | Sync Timeout | 5 min | Safe delegate_task timeout |
216
414
  | Recovery Attempts | 3 | Auto session error recovery |
@@ -238,9 +436,9 @@ Automatic recovery from common errors:
238
436
 
239
437
  ### Todo Continuation
240
438
  - Monitors `session.idle` events
241
- - 2-second countdown before auto-continuation
439
+ - 3-second countdown toast before auto-continuation
242
440
  - Cancels on user interaction
243
- - Skips if background tasks running
441
+ - Skips if background tasks running or session is recovering
244
442
 
245
443
  ### noReply Optimization
246
444
  - Individual task completion: `noReply: true` (saves tokens)
@@ -274,9 +472,9 @@ tail -f "$(node -e 'console.log(require("os").tmpdir())')/opencode-orchestrator.
274
472
  ## Documentation
275
473
 
276
474
  - **[System Architecture](docs/SYSTEM_ARCHITECTURE.md)** β€” Detailed technical docs
277
- - **[OpenCode SDK Reference](docs/OPENCODE_SDK_REFERENCE.md)** β€” API usage reference
475
+ - **[Architecture and Flow](docs/ARCHITECTURE_AND_FLOW.md)** β€” Complete architecture guide with scenarios
476
+ - **[Improvement Suggestions](docs/IMPROVEMENT_SUGGESTIONS.md)** β€” Project improvement recommendations
278
477
  - [Release Notes](docs/releases/) β€” Version history
279
- - [Troubleshooting](docs/PLUGIN_TROUBLESHOOTING.md)
280
478
 
281
479
  ---
282
480
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "opencode-orchestrator",
3
3
  "displayName": "OpenCode Orchestrator",
4
4
  "description": "Distributed Cognitive Architecture for OpenCode. Turns simple prompts into specialized multi-agent workflows (Planner, Coder, Reviewer).",
5
- "version": "0.8.12",
5
+ "version": "0.8.13",
6
6
  "author": "agnusdei1207",
7
7
  "license": "MIT",
8
8
  "repository": {