@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
@@ -1,239 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- import { z } from "zod";
3
- import { CoreSession } from "../session/core_session.js";
4
- import { createToolError, createToolResult, extractAssistantText } from "../utils/messages.js";
5
- import { AsyncUiEventQueue, extractAssistantTextForProgress, formatToolUiEventForProgress, getToolResultFirstLine, } from "../utils/subagent_utils.js";
6
- const FORK_DESCRIPTION = [
7
- "Fork the current session and run autonomously until it produces a final assistant response.",
8
- "The fork receives the full main thread history, appends the provided prompt as the next user message,",
9
- "and returns the final assistant text output from the fork.",
10
- "Only use this tool when the user specifically requests that the session be forked.",
11
- ].join(" ");
12
- const FORK_TITLE_DESCRIPTION = [
13
- "A short human-friendly UI title shown while the fork runs.",
14
- "Do not use title case; all lower-case is preferred except for proper nouns.",
15
- ].join(" ");
16
- const FORK_PROMPT_DESCRIPTION = [
17
- "The prompt to append as the next user message in the forked session.",
18
- "The fork will then run autonomously until completion.",
19
- "Format this as a direct instruction to the assistant.",
20
- "Be precise rather than loose in your phrasing.",
21
- "Include any instructions specifying what the assistant should return in its final response.",
22
- ].join(" ");
23
- export const FORK_TOOL = {
24
- name: "fork",
25
- description: FORK_DESCRIPTION,
26
- parameters: Type.Object({
27
- title: Type.String({ description: FORK_TITLE_DESCRIPTION }),
28
- prompt: Type.String({ description: FORK_PROMPT_DESCRIPTION }),
29
- }, { additionalProperties: false }),
30
- };
31
- const forkArgsSchema = z.object({
32
- title: z.string().trim().catch(""),
33
- prompt: z.string().trim().catch(""),
34
- });
35
- function parseForkArgs(raw) {
36
- const parsed = forkArgsSchema.safeParse(raw);
37
- return parsed.success ? parsed.data : { title: "", prompt: "" };
38
- }
39
- function stripToolCallFromHistory(history, toolCallId) {
40
- const copied = [...history];
41
- for (let i = copied.length - 1; i >= 0; i--) {
42
- const msg = copied[i];
43
- if (!msg || msg.role !== "assistant") {
44
- continue;
45
- }
46
- const assistant = msg;
47
- const hasCall = assistant.content.some((b) => b.type === "toolCall" && b.id === toolCallId);
48
- if (!hasCall) {
49
- continue;
50
- }
51
- const nextContent = assistant.content.filter((b) => b.type !== "toolCall");
52
- if (nextContent.length === 0) {
53
- copied.splice(i, 1);
54
- }
55
- else {
56
- copied[i] = { ...assistant, content: nextContent };
57
- }
58
- break;
59
- }
60
- return copied;
61
- }
62
- export function createForkToolDefinition() {
63
- return {
64
- schema: FORK_TOOL,
65
- async dispatch(toolCall, riskLevel, signal, context) {
66
- const { title, prompt } = parseForkArgs(toolCall.arguments);
67
- const blocked = (reason, details) => {
68
- const toolResult = createToolError(toolCall, reason);
69
- const uiEvent = {
70
- type: "task_blocked",
71
- toolCallId: toolCall.id,
72
- kind: "fork",
73
- title: details?.title ?? (title || "(fork)"),
74
- reason,
75
- };
76
- return { kind: "single", toolResult, uiEvent };
77
- };
78
- if (!title || !prompt) {
79
- const missing = [!title ? "title" : undefined, !prompt ? "prompt" : undefined].filter(Boolean);
80
- return blocked(`missing required parameter(s): ${missing.join(", ")}.`, {
81
- title: title || "(fork)",
82
- });
83
- }
84
- if (!context) {
85
- return blocked("missing session context.", { title });
86
- }
87
- const uiQueue = new AsyncUiEventQueue();
88
- let costTotal = 0;
89
- let turns = 0;
90
- let toolCalls = 0;
91
- const pushProgress = (eventText, nextCostTotal, nextTurns, nextToolCalls) => {
92
- costTotal = nextCostTotal;
93
- turns = nextTurns;
94
- toolCalls = nextToolCalls;
95
- uiQueue.push({
96
- type: "task_progress",
97
- toolCallId: toolCall.id,
98
- kind: "fork",
99
- name: "",
100
- title,
101
- event: eventText,
102
- costTotal,
103
- turns,
104
- toolCalls,
105
- });
106
- };
107
- const run = (async () => {
108
- let status = "success";
109
- let finalText = "";
110
- try {
111
- pushProgress("fork started", 0, 0, 0);
112
- const runSignal = signal ?? new AbortController().signal;
113
- const enabledTools = context.persona.tools ?? context.toolRegistry.schemas;
114
- const forkTools = enabledTools.filter((t) => t.name !== "task" && t.name !== "fork");
115
- const forkPersona = { ...context.persona, tools: forkTools };
116
- const forkHistory = stripToolCallFromHistory(context.history, toolCall.id);
117
- const forkEngine = new CoreSession({
118
- persona: forkPersona,
119
- systemPrompt: context.systemPrompt,
120
- riskLevel,
121
- toolRegistry: context.toolRegistry,
122
- config: context.config,
123
- });
124
- for (const msg of forkHistory) {
125
- forkEngine.addMessage(msg);
126
- }
127
- forkEngine.addUserText([
128
- "<system>",
129
- [
130
- "You are running in a forked session with access to the same tools and capabilities as the main session.",
131
- "Execute the following instruction autonomously until you have a complete answer.",
132
- "Your final message will be returned to the user, so ensure it is complete and self-contained,",
133
- "describing what you did and providing any requested information.",
134
- "Do not stop until you have a final answer ready to return.",
135
- ].join(" "),
136
- "</system>",
137
- prompt,
138
- ].join("\n"));
139
- let lastAssistantFinal;
140
- for await (const event of forkEngine.events(runSignal)) {
141
- if (runSignal.aborted) {
142
- break;
143
- }
144
- if (event.type === "assistant_final") {
145
- lastAssistantFinal = event.message;
146
- turns += 1;
147
- costTotal += event.message.usage?.cost?.total ?? 0;
148
- toolCalls += event.message.content.filter((c) => c.type === "toolCall").length;
149
- const agentLine = extractAssistantTextForProgress(event.message);
150
- if (agentLine) {
151
- pushProgress(agentLine, costTotal, turns, toolCalls);
152
- }
153
- }
154
- else if (event.type === "tool_ui") {
155
- const uiEvent = event.uiEvent;
156
- const text = formatToolUiEventForProgress(uiEvent);
157
- if (text) {
158
- pushProgress(text, costTotal, turns, toolCalls);
159
- }
160
- }
161
- else if (event.type === "tool_result") {
162
- if (event.message.isError) {
163
- const firstLine = getToolResultFirstLine(event.message);
164
- const issue = firstLine
165
- ? `${event.message.toolName}: ${firstLine}`
166
- : `${event.message.toolName}: tool returned an error`;
167
- pushProgress(`tool error: ${issue}`, costTotal, turns, toolCalls);
168
- }
169
- }
170
- else if (event.type === "notice") {
171
- if (event.severity === "error") {
172
- pushProgress(`tool error: ${event.text}`, costTotal, turns, toolCalls);
173
- }
174
- }
175
- }
176
- if (runSignal.aborted) {
177
- status = "aborted";
178
- finalText = "fork aborted";
179
- }
180
- else if (!lastAssistantFinal) {
181
- throw new Error("fork did not produce a final response");
182
- }
183
- else if (lastAssistantFinal.stopReason === "toolUse") {
184
- throw new Error("fork stopped without producing a final non-tool response");
185
- }
186
- else {
187
- const text = extractAssistantText(lastAssistantFinal).trim();
188
- if (!text) {
189
- throw new Error(`fork produced an empty response (stopReason: ${lastAssistantFinal.stopReason ?? "unknown"})`);
190
- }
191
- finalText = text;
192
- }
193
- }
194
- catch (err) {
195
- if (signal?.aborted) {
196
- status = "aborted";
197
- finalText = "fork aborted";
198
- }
199
- else {
200
- status = "error";
201
- finalText = `fork failed: ${err instanceof Error ? err.message : String(err)}`;
202
- }
203
- }
204
- finally {
205
- uiQueue.close();
206
- }
207
- const toolResult = status === "success"
208
- ? createToolResult(toolCall, finalText, false)
209
- : createToolResult(toolCall, finalText, true);
210
- const uiEvent = {
211
- type: "task_finished",
212
- toolCallId: toolCall.id,
213
- kind: "fork",
214
- name: "",
215
- title,
216
- costTotal,
217
- turns,
218
- toolCalls,
219
- status,
220
- finalOutput: finalText,
221
- };
222
- return { kind: "single", toolResult, uiEvent };
223
- })();
224
- return {
225
- kind: "phased",
226
- startedUiEvent: {
227
- type: "task_started",
228
- toolCallId: toolCall.id,
229
- kind: "fork",
230
- name: "",
231
- title,
232
- },
233
- uiEvents: uiQueue,
234
- run,
235
- };
236
- },
237
- };
238
- }
239
- //# sourceMappingURL=fork.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/core/tools/fork.ts"],"names":[],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- import { z } from "zod";
2
- import { getSubagentDefinitionFromString } from "../subagents/registry.js";
3
- import { runSubagentToCompletion } from "../subagents/subagent_engine.js";
4
- import { createToolError, createToolResult } from "../utils/messages.js";
5
- import { AsyncUiEventQueue } from "../utils/subagent_utils.js";
6
- import { TASK_TOOL } from "./task_schema.js";
7
- const taskArgsSchema = z.object({
8
- name: z.string().trim().catch(""),
9
- title: z.string().trim().catch(""),
10
- prompt: z.string().trim().catch(""),
11
- });
12
- function parseTaskArgs(raw) {
13
- const parsed = taskArgsSchema.safeParse(raw);
14
- return parsed.success ? parsed.data : { name: "", title: "", prompt: "" };
15
- }
16
- function getEnabledSubagentConfig(context, definition) {
17
- const persona = context?.persona;
18
- const config = persona?.subagents;
19
- return config?.[definition.name];
20
- }
21
- export function createTaskToolDefinition(backend) {
22
- return {
23
- schema: TASK_TOOL,
24
- async dispatch(toolCall, _riskLevel, signal, context) {
25
- const { name, title, prompt } = parseTaskArgs(toolCall.arguments);
26
- const blocked = (reason, details) => {
27
- const toolResult = createToolError(toolCall, reason);
28
- const uiEvent = {
29
- type: "task_blocked",
30
- toolCallId: toolCall.id,
31
- kind: "task",
32
- name: details?.name ?? (name || undefined),
33
- title: details?.title ?? (title || "(task)"),
34
- reason,
35
- };
36
- return { kind: "single", toolResult, uiEvent };
37
- };
38
- if (!name || !title || !prompt) {
39
- const missing = [
40
- !name ? "name" : undefined,
41
- !title ? "title" : undefined,
42
- !prompt ? "prompt" : undefined,
43
- ].filter(Boolean);
44
- return blocked(`missing required parameter(s): ${missing.join(", ")}.`, {
45
- title: title || "(task)",
46
- });
47
- }
48
- if (!context?.persona.subagents || Object.keys(context.persona.subagents).length === 0) {
49
- return blocked("task tool is not enabled for the current persona.", { name, title });
50
- }
51
- const definition = getSubagentDefinitionFromString(name);
52
- if (!definition) {
53
- return blocked(`unknown sub-agent '${name}'.`, { name, title });
54
- }
55
- const personaConfig = getEnabledSubagentConfig(context, definition);
56
- if (!personaConfig) {
57
- return blocked(`sub-agent '${definition.name}' is not enabled for the current persona.`, {
58
- name: definition.name,
59
- title,
60
- });
61
- }
62
- const uiQueue = new AsyncUiEventQueue();
63
- let costTotal = 0;
64
- let turns = 0;
65
- let toolCalls = 0;
66
- const pushProgress = (eventText, nextCostTotal, nextTurns, nextToolCalls) => {
67
- costTotal = nextCostTotal;
68
- turns = nextTurns;
69
- toolCalls = nextToolCalls;
70
- uiQueue.push({
71
- type: "task_progress",
72
- toolCallId: toolCall.id,
73
- kind: "task",
74
- name: definition.name,
75
- title,
76
- event: eventText,
77
- costTotal,
78
- turns,
79
- toolCalls,
80
- });
81
- };
82
- const run = (async () => {
83
- let status = "success";
84
- let finalText = "";
85
- try {
86
- // Emit task started event
87
- pushProgress("task started", 0, 0, 0);
88
- const result = await runSubagentToCompletion({
89
- definition,
90
- personaConfig,
91
- prompt,
92
- config: context.config,
93
- authPath: context.authPath,
94
- backend,
95
- signal: signal ?? new AbortController().signal,
96
- onProgress: (e) => pushProgress(e.text, e.costTotal, e.turns, e.toolCalls),
97
- });
98
- const text = result.finalText.trim();
99
- if (!text) {
100
- throw new Error("sub-agent returned an empty response");
101
- }
102
- finalText = text;
103
- costTotal = result.costTotal;
104
- }
105
- catch (err) {
106
- if (signal?.aborted) {
107
- status = "aborted";
108
- finalText = "task aborted";
109
- }
110
- else {
111
- status = "error";
112
- finalText = `task failed: ${err instanceof Error ? err.message : String(err)}`;
113
- }
114
- }
115
- finally {
116
- uiQueue.close();
117
- }
118
- const toolResult = status === "success"
119
- ? createToolResult(toolCall, finalText, false)
120
- : createToolResult(toolCall, finalText, true);
121
- const uiEvent = {
122
- type: "task_finished",
123
- toolCallId: toolCall.id,
124
- kind: "task",
125
- name: definition.name,
126
- title,
127
- costTotal,
128
- turns,
129
- toolCalls,
130
- status,
131
- finalOutput: finalText,
132
- };
133
- return { kind: "single", toolResult, uiEvent };
134
- })();
135
- return {
136
- kind: "phased",
137
- startedUiEvent: {
138
- type: "task_started",
139
- toolCallId: toolCall.id,
140
- kind: "task",
141
- name: definition.name,
142
- title,
143
- },
144
- uiEvents: uiQueue,
145
- run,
146
- };
147
- },
148
- };
149
- }
150
- export { TASK_TOOL };
151
- //# sourceMappingURL=task.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/core/tools/task.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- const TASK_DESCRIPTION = [
3
- "Run an isolated sub-agent task to completion and return only its final text output.",
4
- "Use this to delegate narrow exploration or focused work to a constrained sub-agent.",
5
- "See your system instructions for available sub-agents, their capabilities, and intended use cases.",
6
- ].join(" ");
7
- const TASK_NAME_DESCRIPTION = [
8
- "Sub-agent name to run.",
9
- "Available sub-agents depend on the current persona configuration.",
10
- ].join(" ");
11
- const TASK_TITLE_DESCRIPTION = [
12
- "A short human-friendly UI title shown while the task runs.",
13
- "Do not use title case; all lower-case is preferred except for proper nouns.",
14
- ].join(" ");
15
- const TASK_PROMPT_DESCRIPTION = [
16
- "The prompt to send to the sub-agent.",
17
- "This is the only input the sub-agent will receive; it must be self-contained and specific.",
18
- "Include all necessary context and instructions in the prompt for the sub-agent to complete the task successfully.",
19
- ].join(" ");
20
- export const TASK_TOOL = {
21
- name: "task",
22
- description: TASK_DESCRIPTION,
23
- parameters: Type.Object({
24
- name: Type.String({ description: TASK_NAME_DESCRIPTION }),
25
- title: Type.String({ description: TASK_TITLE_DESCRIPTION }),
26
- prompt: Type.String({ description: TASK_PROMPT_DESCRIPTION }),
27
- }, { additionalProperties: false }),
28
- };
29
- //# sourceMappingURL=task_schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task_schema.js","sourceRoot":"","sources":["../../../src/core/tools/task_schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,gBAAgB,GAAG;IACvB,qFAAqF;IACrF,qFAAqF;IACrF,oGAAoG;CACrG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,qBAAqB,GAAG;IAC5B,wBAAwB;IACxB,mEAAmE;CACpE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,sBAAsB,GAAG;IAC7B,4DAA4D;IAC5D,6EAA6E;CAC9E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,uBAAuB,GAAG;IAC9B,sCAAsC;IACtC,4FAA4F;IAC5F,mHAAmH;CACpH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CACrB;QACE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;QACzD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC3D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;KAC9D,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/core/utils/fork.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,2BAA2B,CAAC,OAA2B;IACrE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,MAAM,YAAY,GAAG,OAA2B,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,KAAiB,CAAC;oBACnC,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrF,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,uCAAuC;gBACzC,CAAC;YACH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,OAA4B,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,QAAQ,eAAe,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC"}