Commit 9ac6327
committed
🤖 feat: implement sub-workspaces/subagents system
Add comprehensive infrastructure for spawning child agent tasks from parent
workspaces. This enables parallel agent workflows with dedicated presets
(Research, Explore), tool policies, and automatic lifecycle management.
Core additions:
- TaskService: orchestrates task creation, execution, and cleanup
- Task/agent_report tools: spawn subagents and receive reports
- Agent presets: Research (web search) and Explore (codebase navigation)
- Nested sidebar: visual hierarchy for parent/child workspaces
Config extensions:
- taskSettings: global limits (maxParallelAgentTasks, maxTaskNestingDepth)
- taskState: per-workspace state tracking with parent chain
- getWorkspaceNestingDepth(), countRunningAgentTasks() helpers
UI changes:
- WorkspaceListItem: indented display with purple accent for agent tasks
- sortWithNesting(): depth-first traversal preserving parent→child ordering
Files added:
- src/common/constants/agentPresets.ts
- src/common/orpc/schemas/task.ts
- src/common/types/task.ts
- src/node/services/taskService.ts
- src/node/services/tools/task.ts
- src/node/services/tools/agent_report.ts
Change-Id: I9331e8235fb79c7efe104c8a60564682a1641e56
Signed-off-by: Thomas Kosiewski <tk@coder.com>1 parent 3445f7b commit 9ac6327
File tree
21 files changed
+1438
-39
lines changed- src
- browser
- components
- hooks
- utils
- ui
- common
- constants
- orpc
- schemas
- types
- utils/tools
- node
- services
- tools
21 files changed
+1438
-39
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
179 | 179 | | |
180 | 180 | | |
181 | 181 | | |
182 | | - | |
| 182 | + | |
183 | 183 | | |
184 | 184 | | |
185 | 185 | | |
| |||
613 | 613 | | |
614 | 614 | | |
615 | 615 | | |
616 | | - | |
| 616 | + | |
617 | 617 | | |
618 | 618 | | |
619 | 619 | | |
| |||
622 | 622 | | |
623 | 623 | | |
624 | 624 | | |
| 625 | + | |
625 | 626 | | |
626 | 627 | | |
627 | 628 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
| |||
39 | 41 | | |
40 | 42 | | |
41 | 43 | | |
| 44 | + | |
42 | 45 | | |
43 | 46 | | |
44 | 47 | | |
| |||
102 | 105 | | |
103 | 106 | | |
104 | 107 | | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
105 | 112 | | |
106 | 113 | | |
107 | 114 | | |
108 | 115 | | |
109 | | - | |
| 116 | + | |
110 | 117 | | |
111 | 118 | | |
112 | 119 | | |
113 | 120 | | |
114 | | - | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
115 | 124 | | |
| 125 | + | |
116 | 126 | | |
117 | 127 | | |
118 | 128 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
7 | 66 | | |
8 | 67 | | |
9 | 68 | | |
10 | 69 | | |
11 | 70 | | |
12 | 71 | | |
13 | 72 | | |
14 | | - | |
| 73 | + | |
15 | 74 | | |
16 | 75 | | |
17 | 76 | | |
18 | 77 | | |
19 | 78 | | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
| 79 | + | |
| 80 | + | |
25 | 81 | | |
26 | | - | |
| 82 | + | |
27 | 83 | | |
28 | 84 | | |
29 | 85 | | |
| |||
37 | 93 | | |
38 | 94 | | |
39 | 95 | | |
40 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
41 | 101 | | |
42 | 102 | | |
43 | 103 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
13 | 72 | | |
14 | 73 | | |
15 | 74 | | |
16 | 75 | | |
17 | 76 | | |
18 | | - | |
| 77 | + | |
| 78 | + | |
19 | 79 | | |
20 | 80 | | |
21 | 81 | | |
22 | 82 | | |
23 | 83 | | |
24 | | - | |
25 | | - | |
| 84 | + | |
| 85 | + | |
26 | 86 | | |
27 | 87 | | |
28 | | - | |
| 88 | + | |
| 89 | + | |
29 | 90 | | |
30 | 91 | | |
31 | 92 | | |
| |||
36 | 97 | | |
37 | 98 | | |
38 | 99 | | |
39 | | - | |
| 100 | + | |
40 | 101 | | |
41 | 102 | | |
42 | 103 | | |
43 | 104 | | |
44 | 105 | | |
45 | | - | |
| 106 | + | |
46 | 107 | | |
47 | | - | |
| 108 | + | |
48 | 109 | | |
49 | 110 | | |
50 | 111 | | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
58 | 115 | | |
59 | 116 | | |
60 | 117 | | |
| |||
76 | 133 | | |
77 | 134 | | |
78 | 135 | | |
79 | | - | |
80 | | - | |
81 | | - | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
82 | 139 | | |
83 | 140 | | |
84 | 141 | | |
85 | 142 | | |
86 | 143 | | |
87 | 144 | | |
88 | | - | |
89 | | - | |
| 145 | + | |
| 146 | + | |
90 | 147 | | |
91 | | - | |
| 148 | + | |
92 | 149 | | |
93 | 150 | | |
94 | 151 | | |
95 | 152 | | |
96 | 153 | | |
97 | 154 | | |
98 | 155 | | |
99 | | - | |
100 | | - | |
| 156 | + | |
| 157 | + | |
101 | 158 | | |
102 | 159 | | |
103 | 160 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
10 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
11 | 15 | | |
12 | 16 | | |
13 | 17 | | |
14 | 18 | | |
15 | 19 | | |
| 20 | + | |
| 21 | + | |
16 | 22 | | |
17 | 23 | | |
0 commit comments