@markusylisiurunen/tau 0.2.8 → 0.2.10

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 (90) hide show
  1. package/README.md +9 -5
  2. package/dist/core/config/builtin_themes.js +49 -15
  3. package/dist/core/config/builtin_themes.js.map +1 -1
  4. package/dist/core/config/content_loader.js +75 -12
  5. package/dist/core/config/content_loader.js.map +1 -1
  6. package/dist/core/events/index.js.map +1 -1
  7. package/dist/core/events/types.js.map +1 -1
  8. package/dist/core/index.js +4 -2
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/core/personas.js +9 -3
  11. package/dist/core/personas.js.map +1 -1
  12. package/dist/core/session/core_session.js +6 -0
  13. package/dist/core/session/core_session.js.map +1 -1
  14. package/dist/core/session/runner.js +53 -189
  15. package/dist/core/session/runner.js.map +1 -1
  16. package/dist/core/session/session_engine.js +26 -1
  17. package/dist/core/session/session_engine.js.map +1 -1
  18. package/dist/core/subagents/control_plane.js +256 -0
  19. package/dist/core/subagents/control_plane.js.map +1 -0
  20. package/dist/core/subagents/explore.js +6 -4
  21. package/dist/core/subagents/explore.js.map +1 -1
  22. package/dist/core/subagents/subagent_engine.js +31 -19
  23. package/dist/core/subagents/subagent_engine.js.map +1 -1
  24. package/dist/core/subagents/web.js +7 -4
  25. package/dist/core/subagents/web.js.map +1 -1
  26. package/dist/core/tools/catalog.js +24 -6
  27. package/dist/core/tools/catalog.js.map +1 -1
  28. package/dist/core/tools/communicate.js +45 -0
  29. package/dist/core/tools/communicate.js.map +1 -0
  30. package/dist/core/tools/edit.js +1 -1
  31. package/dist/core/tools/edit.js.map +1 -1
  32. package/dist/core/tools/execution_backend.js +2 -2
  33. package/dist/core/tools/execution_backend.js.map +1 -1
  34. package/dist/core/tools/registry.js.map +1 -1
  35. package/dist/core/tools/spawn_agent.js +173 -0
  36. package/dist/core/tools/spawn_agent.js.map +1 -0
  37. package/dist/core/tools/subagent_ui.js +39 -0
  38. package/dist/core/tools/subagent_ui.js.map +1 -0
  39. package/dist/core/tools/terminate_agent.js +141 -0
  40. package/dist/core/tools/terminate_agent.js.map +1 -0
  41. package/dist/core/tools/wait_for_agent.js +178 -0
  42. package/dist/core/tools/wait_for_agent.js.map +1 -0
  43. package/dist/core/utils/auto_retry.js +27 -2
  44. package/dist/core/utils/auto_retry.js.map +1 -1
  45. package/dist/core/utils/{fork.js → compact.js} +2 -2
  46. package/dist/core/utils/compact.js.map +1 -0
  47. package/dist/core/utils/format.js +17 -0
  48. package/dist/core/utils/format.js.map +1 -1
  49. package/dist/core/utils/project_files.js +31 -5
  50. package/dist/core/utils/project_files.js.map +1 -1
  51. package/dist/core/utils/subagent_utils.js +4 -0
  52. package/dist/core/utils/subagent_utils.js.map +1 -1
  53. package/dist/core/version.js +1 -1
  54. package/dist/core/version.js.map +1 -1
  55. package/dist/tui/chat_controller.js +65 -16
  56. package/dist/tui/chat_controller.js.map +1 -1
  57. package/dist/tui/chat_view.js +29 -5
  58. package/dist/tui/chat_view.js.map +1 -1
  59. package/dist/tui/export/html.js +21 -10
  60. package/dist/tui/export/html.js.map +1 -1
  61. package/dist/tui/tool_ui_router.js +89 -77
  62. package/dist/tui/tool_ui_router.js.map +1 -1
  63. package/dist/tui/ui/chat_message_model.js +0 -2
  64. package/dist/tui/ui/chat_message_model.js.map +1 -1
  65. package/dist/tui/ui/custom_editor.js +26 -4
  66. package/dist/tui/ui/custom_editor.js.map +1 -1
  67. package/dist/tui/ui/subagent_editor_pane.js +67 -0
  68. package/dist/tui/ui/subagent_editor_pane.js.map +1 -0
  69. package/dist/tui/ui/subagent_panel.js +249 -0
  70. package/dist/tui/ui/subagent_panel.js.map +1 -0
  71. package/dist/tui/ui/theme/index.js +1 -1
  72. package/dist/tui/ui/theme/index.js.map +1 -1
  73. package/dist/tui/ui/theme/palette.js +21 -19
  74. package/dist/tui/ui/theme/palette.js.map +1 -1
  75. package/dist/tui/ui/theme/theme.js +5 -2
  76. package/dist/tui/ui/theme/theme.js.map +1 -1
  77. package/dist/tui/ui/theme/tokens.js +2 -41
  78. package/dist/tui/ui/theme/tokens.js.map +1 -1
  79. package/dist/tui/ui/tool_ui_registry.js +226 -41
  80. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  81. package/package.json +1 -1
  82. package/dist/core/tools/fork.js +0 -239
  83. package/dist/core/tools/fork.js.map +0 -1
  84. package/dist/core/tools/task.js +0 -151
  85. package/dist/core/tools/task.js.map +0 -1
  86. package/dist/core/tools/task_schema.js +0 -29
  87. package/dist/core/tools/task_schema.js.map +0 -1
  88. package/dist/core/utils/fork.js.map +0 -1
  89. package/dist/tui/ui/task_execution.js +0 -256
  90. package/dist/tui/ui/task_execution.js.map +0 -1
package/README.md CHANGED
@@ -107,6 +107,7 @@ built-in themes are available by default with ids: `crimson`, `ember`, `gold`, `
107
107
  available palette tokens (theme keys):
108
108
 
109
109
  - core: `brandAccent`, `textMuted`, `textDim`, `linkText`, `thinkingText`, `codeInlineText`, `codeBlockText`
110
+ - editor: `editorBorderNone`, `editorBorderMinimal`, `editorBorderLow`, `editorBorderMedium`, `editorBorderHigh`, `editorBorderXhigh`, `editorSubagentBorder`
110
111
  - status: `statusWarn`, `statusError`, `modeMemory`, `modeBash`
111
112
  - action: `actionRunning`, `actionSuccess`, `actionError`, `actionOutput`
112
113
  - diff: `diffAdd`, `diffRemove`
@@ -192,13 +193,13 @@ tau --persona opus-4.5-coder
192
193
 
193
194
  ## sub-agents
194
195
 
195
- some personas can run isolated sub-agents via the internal `task` tool.
196
-
197
- tau also supports an internal `fork` tool, which runs an autonomous fork of the current session using the full conversation history and returns the fork's final answer.
196
+ some personas can run isolated sub-agents via the `spawn_agent`, `wait_for_agent`, and `terminate_agent` tools. sub-agents return their output through the subagent-only `communicate` tool, which is collected by `wait_for_agent`.
198
197
 
199
198
  - `explore`: read-only, multi-turn codebase investigation
200
199
  - `web`: high-threshold web research using Parallel Search/Extract (`web_search`/`web_fetch`) plus read-only bash for curl/filtering
201
200
 
201
+ sub-agent progress appears in a sticky panel. use `alt+down` to cycle active subagents and `ctrl+g` to terminate the selected one. tau caps active subagents at 3.
202
+
202
203
  to use the web sub-agent, set `apiKeys.parallel` in `~/.config/tau/config.json` (see above). tau will only make web calls when you explicitly ask for web research.
203
204
 
204
205
  ## trigger sensitivity
@@ -276,6 +277,7 @@ tau supports slash commands for common actions:
276
277
  | `/bash:<id>` | run a saved shell command |
277
278
  | `/risk:<level>` | change the risk level |
278
279
  | `!<cmd>` | run a shell command directly (bypasses risk checks; uses sandbox if enabled) |
280
+ | `!!<cmd>` | run a shell command without adding output to the model context |
279
281
 
280
282
  the compact commands are useful when conversations get long. they compress everything into a summary so the model retains context without the overhead of a full history.
281
283
 
@@ -391,15 +393,17 @@ optional frontmatter fields:
391
393
  - `reasoning`: one of `none`, `minimal`, `low`, `medium`, `high`, `xhigh`
392
394
  - `allowedReasoningLevels`: list of reasoning levels shown in the ui
393
395
  - `skills`: list of enabled skill names (matched by `name` in skill frontmatter), or `"*"` to enable all discovered skills
394
- - `subagents`: enable sub-agents (`explore` for multi-turn codebase investigation, `web` for web research). you can specify as a list (`subagents: [explore]`, `subagents: [web]`, or `subagents: [explore, web]`) to use the main persona's model, or as an object to customize each sub-agent's model and reasoning. when specifying a model for a subagent, `provider` and `model` must be provided together. example:
396
+ - `subagents`: enable sub-agents (`explore` for multi-turn codebase investigation, `web` for web research). you can specify as a list (`subagents: [explore]`, `subagents: [web]`, or `subagents: [explore, web]`) to use the main persona's model, or as an object to customize each sub-agent's model, reasoning, tools, and risk level. when specifying a model for a subagent, `provider` and `model` must be provided together. example:
395
397
  ```yaml
396
398
  subagents:
397
399
  explore:
398
400
  provider: anthropic
399
401
  model: claude-haiku-4-5
400
402
  reasoning: medium
403
+ tools: [bash]
404
+ riskLevel: read-only
401
405
  ```
402
- - `tools`: list of tool names to enable for this persona. allowed: `bash`, `write`, `edit`, `task`, `fork`. if omitted, defaults to `bash`, `write`, `edit` (and `task` when subagents are enabled). risk levels still apply.
406
+ - `tools`: list of tool names to enable for this persona. allowed: `bash`, `write`, `edit`, `spawn_agent`, `wait_for_agent`, `terminate_agent`. if omitted, defaults to `bash`, `write`, `edit` (and subagent tools when subagents are enabled). risk levels still apply.
403
407
 
404
408
  the markdown body becomes the system prompt.
405
409
 
@@ -1,3 +1,37 @@
1
+ export const PALETTE_TOKEN_NAMES = [
2
+ "brandAccent",
3
+ "textMuted",
4
+ "textDim",
5
+ "linkText",
6
+ "thinkingText",
7
+ "codeInlineText",
8
+ "codeBlockText",
9
+ "editorBorderNone",
10
+ "editorBorderMinimal",
11
+ "editorBorderLow",
12
+ "editorBorderMedium",
13
+ "editorBorderHigh",
14
+ "editorBorderXhigh",
15
+ "editorSubagentBorder",
16
+ "statusWarn",
17
+ "statusError",
18
+ "modeMemory",
19
+ "modeBash",
20
+ "actionRunning",
21
+ "actionSuccess",
22
+ "actionError",
23
+ "actionOutput",
24
+ "diffAdd",
25
+ "diffRemove",
26
+ "toastSuccess",
27
+ "toastWarn",
28
+ "toastError",
29
+ "userSurface",
30
+ "userMemorySurface",
31
+ "userMemoryText",
32
+ "riskReadOnlyText",
33
+ "riskReadWriteText",
34
+ ];
1
35
  export const builtinThemes = [
2
36
  {
3
37
  id: "crimson",
@@ -15,6 +49,7 @@ export const builtinThemes = [
15
49
  editorBorderMedium: "#a37885",
16
50
  editorBorderHigh: "#a37885",
17
51
  editorBorderXhigh: "#a37885",
52
+ editorSubagentBorder: "#fbc1f8",
18
53
  statusWarn: "#ca8470",
19
54
  statusError: "#ca8089",
20
55
  modeMemory: "#bec4ff",
@@ -31,7 +66,6 @@ export const builtinThemes = [
31
66
  userSurface: "#1c1a1a",
32
67
  userMemorySurface: "#1d1e2b",
33
68
  userMemoryText: "#c0c6fc",
34
- riskRestrictedText: "#7f787a",
35
69
  riskReadOnlyText: "#9f9598",
36
70
  riskReadWriteText: "#9f9598",
37
71
  },
@@ -54,6 +88,7 @@ export const builtinThemes = [
54
88
  editorBorderMedium: "#a67976",
55
89
  editorBorderHigh: "#a67976",
56
90
  editorBorderXhigh: "#a67976",
91
+ editorSubagentBorder: "#ffbfde",
57
92
  statusWarn: "#ca8470",
58
93
  statusError: "#ca8089",
59
94
  modeMemory: "#bec4ff",
@@ -70,7 +105,6 @@ export const builtinThemes = [
70
105
  userSurface: "#1c1a1a",
71
106
  userMemorySurface: "#1d1e2b",
72
107
  userMemoryText: "#c0c6fc",
73
- riskRestrictedText: "#7f7978",
74
108
  riskReadOnlyText: "#a09695",
75
109
  riskReadWriteText: "#a09695",
76
110
  },
@@ -93,6 +127,7 @@ export const builtinThemes = [
93
127
  editorBorderMedium: "#a37c69",
94
128
  editorBorderHigh: "#a37c69",
95
129
  editorBorderXhigh: "#a37c69",
130
+ editorSubagentBorder: "#ffc2c5",
96
131
  statusWarn: "#ca8470",
97
132
  statusError: "#ca8089",
98
133
  modeMemory: "#bec4ff",
@@ -109,7 +144,6 @@ export const builtinThemes = [
109
144
  userSurface: "#1c1a19",
110
145
  userMemorySurface: "#1d1e2b",
111
146
  userMemoryText: "#c0c6fc",
112
- riskRestrictedText: "#7f7976",
113
147
  riskReadOnlyText: "#9f9692",
114
148
  riskReadWriteText: "#9f9692",
115
149
  },
@@ -132,6 +166,7 @@ export const builtinThemes = [
132
166
  editorBorderMedium: "#9c8161",
133
167
  editorBorderHigh: "#9c8161",
134
168
  editorBorderXhigh: "#9c8161",
169
+ editorSubagentBorder: "#ffc6b0",
135
170
  statusWarn: "#ca8470",
136
171
  statusError: "#ca8089",
137
172
  modeMemory: "#bec4ff",
@@ -148,7 +183,6 @@ export const builtinThemes = [
148
183
  userSurface: "#1c1a19",
149
184
  userMemorySurface: "#1d1e2b",
150
185
  userMemoryText: "#c0c6fc",
151
- riskRestrictedText: "#7d7a75",
152
186
  riskReadOnlyText: "#9d9790",
153
187
  riskReadWriteText: "#9d9790",
154
188
  },
@@ -171,6 +205,7 @@ export const builtinThemes = [
171
205
  editorBorderMedium: "#90865f",
172
206
  editorBorderHigh: "#90865f",
173
207
  editorBorderXhigh: "#90865f",
208
+ editorSubagentBorder: "#ffca94",
174
209
  statusWarn: "#ca8470",
175
210
  statusError: "#ca8089",
176
211
  modeMemory: "#bec4ff",
@@ -187,7 +222,6 @@ export const builtinThemes = [
187
222
  userSurface: "#1b1b19",
188
223
  userMemorySurface: "#1d1e2b",
189
224
  userMemoryText: "#c0c6fc",
190
- riskRestrictedText: "#7c7a75",
191
225
  riskReadOnlyText: "#9a9890",
192
226
  riskReadWriteText: "#9a9890",
193
227
  },
@@ -210,6 +244,7 @@ export const builtinThemes = [
210
244
  editorBorderMedium: "#828c65",
211
245
  editorBorderHigh: "#828c65",
212
246
  editorBorderXhigh: "#828c65",
247
+ editorSubagentBorder: "#f2d48d",
213
248
  statusWarn: "#ca8470",
214
249
  statusError: "#ca8089",
215
250
  modeMemory: "#bec4ff",
@@ -226,7 +261,6 @@ export const builtinThemes = [
226
261
  userSurface: "#1a1b19",
227
262
  userMemorySurface: "#1d1e2b",
228
263
  userMemoryText: "#c0c6fc",
229
- riskRestrictedText: "#797b76",
230
264
  riskReadOnlyText: "#979991",
231
265
  riskReadWriteText: "#979991",
232
266
  },
@@ -249,6 +283,7 @@ export const builtinThemes = [
249
283
  editorBorderMedium: "#728f71",
250
284
  editorBorderHigh: "#728f71",
251
285
  editorBorderXhigh: "#728f71",
286
+ editorSubagentBorder: "#d9de94",
252
287
  statusWarn: "#ca8470",
253
288
  statusError: "#ca8089",
254
289
  modeMemory: "#bec4ff",
@@ -265,7 +300,6 @@ export const builtinThemes = [
265
300
  userSurface: "#191b19",
266
301
  userMemorySurface: "#1d1e2b",
267
302
  userMemoryText: "#c0c6fc",
268
- riskRestrictedText: "#787c77",
269
303
  riskReadOnlyText: "#949a94",
270
304
  riskReadWriteText: "#949a94",
271
305
  },
@@ -288,6 +322,7 @@ export const builtinThemes = [
288
322
  editorBorderMedium: "#659180",
289
323
  editorBorderHigh: "#659180",
290
324
  editorBorderXhigh: "#659180",
325
+ editorSubagentBorder: "#bbe7a7",
291
326
  statusWarn: "#ca8470",
292
327
  statusError: "#ca8089",
293
328
  modeMemory: "#bec4ff",
@@ -304,7 +339,6 @@ export const builtinThemes = [
304
339
  userSurface: "#191b1a",
305
340
  userMemorySurface: "#1d1e2b",
306
341
  userMemoryText: "#c0c6fc",
307
- riskRestrictedText: "#767c79",
308
342
  riskReadOnlyText: "#929b97",
309
343
  riskReadWriteText: "#929b97",
310
344
  },
@@ -327,6 +361,7 @@ export const builtinThemes = [
327
361
  editorBorderMedium: "#5d918f",
328
362
  editorBorderHigh: "#5d918f",
329
363
  editorBorderXhigh: "#5d918f",
364
+ editorSubagentBorder: "#9eecc2",
330
365
  statusWarn: "#ca8470",
331
366
  statusError: "#ca8089",
332
367
  modeMemory: "#bec4ff",
@@ -343,7 +378,6 @@ export const builtinThemes = [
343
378
  userSurface: "#191b1b",
344
379
  userMemorySurface: "#1d1e2b",
345
380
  userMemoryText: "#c0c6fc",
346
- riskRestrictedText: "#757c7b",
347
381
  riskReadOnlyText: "#909b9a",
348
382
  riskReadWriteText: "#909b9a",
349
383
  },
@@ -366,6 +400,7 @@ export const builtinThemes = [
366
400
  editorBorderMedium: "#5e8f9c",
367
401
  editorBorderHigh: "#5e8f9c",
368
402
  editorBorderXhigh: "#5e8f9c",
403
+ editorSubagentBorder: "#8aedde",
369
404
  statusWarn: "#ca8470",
370
405
  statusError: "#ca8089",
371
406
  modeMemory: "#bec4ff",
@@ -382,7 +417,6 @@ export const builtinThemes = [
382
417
  userSurface: "#191b1c",
383
418
  userMemorySurface: "#1d1e2b",
384
419
  userMemoryText: "#c0c6fc",
385
- riskRestrictedText: "#757c7d",
386
420
  riskReadOnlyText: "#909a9d",
387
421
  riskReadWriteText: "#909a9d",
388
422
  },
@@ -405,6 +439,7 @@ export const builtinThemes = [
405
439
  editorBorderMedium: "#678ba5",
406
440
  editorBorderHigh: "#678ba5",
407
441
  editorBorderXhigh: "#678ba5",
442
+ editorSubagentBorder: "#86eaf9",
408
443
  statusWarn: "#ca8470",
409
444
  statusError: "#ca8089",
410
445
  modeMemory: "#bec4ff",
@@ -421,7 +456,6 @@ export const builtinThemes = [
421
456
  userSurface: "#191b1c",
422
457
  userMemorySurface: "#1d1e2b",
423
458
  userMemoryText: "#c0c6fc",
424
- riskRestrictedText: "#767b7f",
425
459
  riskReadOnlyText: "#92999f",
426
460
  riskReadWriteText: "#92999f",
427
461
  },
@@ -444,6 +478,7 @@ export const builtinThemes = [
444
478
  editorBorderMedium: "#7586a9",
445
479
  editorBorderHigh: "#7586a9",
446
480
  editorBorderXhigh: "#7586a9",
481
+ editorSubagentBorder: "#9ce2ff",
447
482
  statusWarn: "#ca8470",
448
483
  statusError: "#ca8089",
449
484
  modeMemory: "#bec4ff",
@@ -460,7 +495,6 @@ export const builtinThemes = [
460
495
  userSurface: "#1a1b1c",
461
496
  userMemorySurface: "#1d1e2b",
462
497
  userMemoryText: "#c0c6fc",
463
- riskRestrictedText: "#787a7f",
464
498
  riskReadOnlyText: "#9498a0",
465
499
  riskReadWriteText: "#9498a0",
466
500
  },
@@ -483,6 +517,7 @@ export const builtinThemes = [
483
517
  editorBorderMedium: "#8481a7",
484
518
  editorBorderHigh: "#8481a7",
485
519
  editorBorderXhigh: "#8481a7",
520
+ editorSubagentBorder: "#b8daff",
486
521
  statusWarn: "#ca8470",
487
522
  statusError: "#ca8089",
488
523
  modeMemory: "#bec4ff",
@@ -499,7 +534,6 @@ export const builtinThemes = [
499
534
  userSurface: "#1a1a1c",
500
535
  userMemorySurface: "#1d1e2b",
501
536
  userMemoryText: "#c0c6fc",
502
- riskRestrictedText: "#7a7a7f",
503
537
  riskReadOnlyText: "#98979f",
504
538
  riskReadWriteText: "#98979f",
505
539
  },
@@ -522,6 +556,7 @@ export const builtinThemes = [
522
556
  editorBorderMedium: "#927d9f",
523
557
  editorBorderHigh: "#927d9f",
524
558
  editorBorderXhigh: "#927d9f",
559
+ editorSubagentBorder: "#cdd3ff",
525
560
  statusWarn: "#ca8470",
526
561
  statusError: "#ca8089",
527
562
  modeMemory: "#bec4ff",
@@ -538,7 +573,6 @@ export const builtinThemes = [
538
573
  userSurface: "#1b1a1c",
539
574
  userMemorySurface: "#1d1e2b",
540
575
  userMemoryText: "#c0c6fc",
541
- riskRestrictedText: "#7c797e",
542
576
  riskReadOnlyText: "#9b969e",
543
577
  riskReadWriteText: "#9b969e",
544
578
  },
@@ -561,6 +595,7 @@ export const builtinThemes = [
561
595
  editorBorderMedium: "#9c7a93",
562
596
  editorBorderHigh: "#9c7a93",
563
597
  editorBorderXhigh: "#9c7a93",
598
+ editorSubagentBorder: "#e4caff",
564
599
  statusWarn: "#ca8470",
565
600
  statusError: "#ca8089",
566
601
  modeMemory: "#bec4ff",
@@ -577,7 +612,6 @@ export const builtinThemes = [
577
612
  userSurface: "#1c1a1b",
578
613
  userMemorySurface: "#1d1e2b",
579
614
  userMemoryText: "#c0c6fc",
580
- riskRestrictedText: "#7e797c",
581
615
  riskReadOnlyText: "#9d969b",
582
616
  riskReadWriteText: "#9d969b",
583
617
  },
@@ -1 +1 @@
1
- {"version":3,"file":"builtin_themes.js","sourceRoot":"","sources":["../../../src/core/config/builtin_themes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C;QACE,EAAE,EAAE,SAAS;QACb,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,6BAA6B;QACzC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,OAAO;QACX,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,2BAA2B;QACvC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,MAAM;QACV,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,0BAA0B;QACtC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,MAAM;QACV,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,0BAA0B;QACtC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,OAAO;QACX,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,2BAA2B;QACvC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,SAAS;QACb,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,6BAA6B;QACzC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,MAAM;QACV,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,0BAA0B;QACtC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,MAAM;QACV,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,0BAA0B;QACtC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,MAAM;QACV,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,0BAA0B;QACtC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,OAAO;QACX,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,2BAA2B;QACvC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,4BAA4B;QACxC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,4BAA4B;QACxC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,4BAA4B;QACxC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,SAAS;QACb,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,6BAA6B;QACzC,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,MAAM;QACV,MAAM,EAAE;YACN,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,eAAe,EAAE,SAAS;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;YAC5B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,SAAS;SAC7B;QACD,UAAU,EAAE,0BAA0B;QACtC,KAAK,EAAE,SAAS;KACjB;CACF,CAAC"}
1
+ {"version":3,"file":"builtin_themes.js","sourceRoot":"","sources":["../../../src/core/config/builtin_themes.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,11 @@ import { z } from "zod";
5
5
  import { personas as builtinPersonas } from "../personas.js";
6
6
  import { BASH_TOOL } from "../tools/bash.js";
7
7
  import { EDIT_TOOL } from "../tools/edit.js";
8
- import { FORK_TOOL } from "../tools/fork.js";
9
- import { TASK_TOOL } from "../tools/task_schema.js";
8
+ import { SPAWN_AGENT_TOOL } from "../tools/spawn_agent.js";
9
+ import { TERMINATE_AGENT_TOOL } from "../tools/terminate_agent.js";
10
+ import { WAIT_FOR_AGENT_TOOL } from "../tools/wait_for_agent.js";
10
11
  import { WRITE_TOOL } from "../tools/write.js";
11
- import { ReasoningEffortSchema } from "../types.js";
12
+ import { ReasoningEffortSchema, RiskLevelSchema } from "../types.js";
12
13
  import { formatZodError } from "../utils/zod.js";
13
14
  import { createDefaultConfigDeps } from "./deps.js";
14
15
  import { resolveConfigLevels } from "./paths.js";
@@ -62,6 +63,8 @@ const SubagentSpecSchema = z
62
63
  provider: z.string().trim().min(1).optional(),
63
64
  model: z.string().trim().min(1).optional(),
64
65
  reasoning: ReasoningEffortSchema.optional(),
66
+ tools: z.unknown().optional(),
67
+ riskLevel: RiskLevelSchema.optional(),
65
68
  })
66
69
  .passthrough()
67
70
  .superRefine((spec, ctx) => {
@@ -74,6 +77,51 @@ const SubagentSpecSchema = z
74
77
  });
75
78
  }
76
79
  });
80
+ const subagentToolsSchema = z.union([z.string(), z.array(z.string())]).optional();
81
+ const SUBAGENT_TOOL_NAMES = new Set([
82
+ "bash",
83
+ "write",
84
+ "edit",
85
+ "web_search",
86
+ "web_fetch",
87
+ "communicate",
88
+ ]);
89
+ function parseSubagentTools(toolsRaw) {
90
+ if (toolsRaw === undefined) {
91
+ return {};
92
+ }
93
+ const parsed = subagentToolsSchema.safeParse(toolsRaw);
94
+ if (!parsed.success) {
95
+ return { error: "tools must be a string or list of strings" };
96
+ }
97
+ if (parsed.data === undefined) {
98
+ return {};
99
+ }
100
+ const rawList = Array.isArray(parsed.data) ? parsed.data : [parsed.data];
101
+ const cleaned = rawList.map((tool) => tool.trim().toLowerCase()).filter(Boolean);
102
+ if (cleaned.length === 0) {
103
+ return { tools: [] };
104
+ }
105
+ const selected = [];
106
+ const unknown = [];
107
+ const seen = new Set();
108
+ for (const name of cleaned) {
109
+ if (seen.has(name))
110
+ continue;
111
+ seen.add(name);
112
+ if (SUBAGENT_TOOL_NAMES.has(name)) {
113
+ selected.push(name);
114
+ }
115
+ else {
116
+ unknown.push(name);
117
+ }
118
+ }
119
+ if (unknown.length > 0) {
120
+ const allowed = Array.from(SUBAGENT_TOOL_NAMES).join(", ");
121
+ return { error: `unknown subagent tool(s): ${unknown.join(", ")}. allowed: ${allowed}` };
122
+ }
123
+ return { tools: selected };
124
+ }
77
125
  function parseSubagentConfig(subagentsRaw) {
78
126
  if (!subagentsRaw) {
79
127
  return {};
@@ -112,6 +160,19 @@ function parseSubagentConfig(subagentsRaw) {
112
160
  }
113
161
  const provider = spec.data.provider;
114
162
  const model = spec.data.model;
163
+ const toolsResult = parseSubagentTools(spec.data.tools);
164
+ if (toolsResult.error) {
165
+ return { error: `subagent ${validatedName}: ${toolsResult.error}` };
166
+ }
167
+ const tools = toolsResult.tools;
168
+ const riskLevel = spec.data.riskLevel;
169
+ const overrides = {
170
+ ...(spec.data.reasoning !== undefined && spec.data.reasoning !== "none"
171
+ ? { reasoning: spec.data.reasoning }
172
+ : {}),
173
+ ...(tools !== undefined ? { tools } : {}),
174
+ ...(riskLevel ? { riskLevel } : {}),
175
+ };
115
176
  // Resolve model if provided
116
177
  if (provider && model) {
117
178
  const modelObj = resolveModel(provider, model);
@@ -122,17 +183,13 @@ function parseSubagentConfig(subagentsRaw) {
122
183
  }
123
184
  config[validatedName] = {
124
185
  model: modelObj,
125
- ...(spec.data.reasoning !== undefined && spec.data.reasoning !== "none"
126
- ? { reasoning: spec.data.reasoning }
127
- : {}),
186
+ ...overrides,
128
187
  };
129
188
  }
130
189
  else {
131
190
  // No model specified, will use main persona's model
132
191
  config[validatedName] = {
133
- ...(spec.data.reasoning !== undefined && spec.data.reasoning !== "none"
134
- ? { reasoning: spec.data.reasoning }
135
- : {}),
192
+ ...overrides,
136
193
  };
137
194
  }
138
195
  }
@@ -314,10 +371,12 @@ const PERSONA_TOOL_DEFINITIONS = new Map([
314
371
  ["bash", BASH_TOOL],
315
372
  ["write", WRITE_TOOL],
316
373
  ["edit", EDIT_TOOL],
317
- ["task", TASK_TOOL],
318
- ["fork", FORK_TOOL],
374
+ ["spawn_agent", SPAWN_AGENT_TOOL],
375
+ ["wait_for_agent", WAIT_FOR_AGENT_TOOL],
376
+ ["terminate_agent", TERMINATE_AGENT_TOOL],
319
377
  ]);
320
378
  const DEFAULT_PERSONA_TOOLS = [BASH_TOOL, WRITE_TOOL, EDIT_TOOL];
379
+ const DEFAULT_SUBAGENT_TOOLS = [SPAWN_AGENT_TOOL, WAIT_FOR_AGENT_TOOL, TERMINATE_AGENT_TOOL];
321
380
  function parsePersona(file, content, source, basePersonasById) {
322
381
  const { frontMatter, body } = parseMarkdownWithFrontMatter(content);
323
382
  const parsedFrontMatter = personaFrontMatterSchema.safeParse(frontMatter);
@@ -401,6 +460,8 @@ function parsePersona(file, content, source, basePersonasById) {
401
460
  finalSubagents[validatedName] = {
402
461
  model: modelObj,
403
462
  ...(cfg.settings ? { settings: cfg.settings } : { settings: subagentBaseSettings }),
463
+ ...(cfg.tools !== undefined ? { tools: cfg.tools } : {}),
464
+ ...(cfg.riskLevel ? { riskLevel: cfg.riskLevel } : {}),
404
465
  };
405
466
  }
406
467
  if (Object.keys(finalSubagents).length === 0) {
@@ -426,6 +487,8 @@ function parsePersona(file, content, source, basePersonasById) {
426
487
  finalSubagents[validatedName] = {
427
488
  model: subagentModel,
428
489
  ...(subagentSettings && { settings: subagentSettings }),
490
+ ...(cfg.tools !== undefined ? { tools: cfg.tools } : {}),
491
+ ...(cfg.riskLevel ? { riskLevel: cfg.riskLevel } : {}),
429
492
  };
430
493
  }
431
494
  if (Object.keys(finalSubagents).length === 0) {
@@ -433,7 +496,7 @@ function parsePersona(file, content, source, basePersonasById) {
433
496
  }
434
497
  }
435
498
  const defaultTools = finalSubagents
436
- ? [...DEFAULT_PERSONA_TOOLS, TASK_TOOL]
499
+ ? [...DEFAULT_PERSONA_TOOLS, ...DEFAULT_SUBAGENT_TOOLS]
437
500
  : DEFAULT_PERSONA_TOOLS;
438
501
  const inheritedTools = toolsRaw === undefined ? basePersona?.tools : undefined;
439
502
  const tools = toolsResult.tools ?? inheritedTools ?? defaultTools;