codecane 1.0.156 → 1.0.171
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.
- package/dist/browser-runner.d.ts +2 -0
- package/dist/browser-runner.js +210 -135
- package/dist/browser-runner.js.map +1 -1
- package/dist/chat-storage.d.ts +1 -1
- package/dist/chat-storage.js +35 -31
- package/dist/chat-storage.js.map +1 -1
- package/dist/checkpoints.d.ts +64 -0
- package/dist/checkpoints.js +147 -0
- package/dist/checkpoints.js.map +1 -0
- package/dist/cli.d.ts +22 -16
- package/dist/cli.js +472 -367
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +178 -25
- package/dist/client.js +252 -198
- package/dist/client.js.map +1 -1
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/actions.d.ts +2083 -443
- package/dist/common/actions.js +31 -78
- package/dist/common/actions.js.map +1 -1
- package/dist/common/browser-actions.d.ts +221 -141
- package/dist/common/browser-actions.js +25 -12
- package/dist/common/browser-actions.js.map +1 -1
- package/dist/common/constants/tools.d.ts +3 -0
- package/dist/common/constants/tools.js +24 -0
- package/dist/common/constants/tools.js.map +1 -0
- package/dist/common/constants.d.ts +14 -8
- package/dist/common/constants.js +7 -6
- package/dist/common/constants.js.map +1 -1
- package/dist/common/message-image-handling.d.ts +41 -0
- package/dist/common/message-image-handling.js +57 -0
- package/dist/common/message-image-handling.js.map +1 -0
- package/dist/common/project-file-tree.js +7 -7
- package/dist/common/project-file-tree.js.map +1 -1
- package/dist/common/types/agent-state.d.ts +461 -0
- package/dist/common/types/agent-state.js +30 -0
- package/dist/common/types/agent-state.js.map +1 -0
- package/dist/common/types/message.d.ts +311 -0
- package/dist/common/types/message.js +54 -0
- package/dist/common/types/message.js.map +1 -0
- package/dist/common/types/tools.d.ts +5 -0
- package/dist/common/types/tools.js +3 -0
- package/dist/common/types/tools.js.map +1 -0
- package/dist/common/util/__tests__/messages.test.js +70 -0
- package/dist/common/util/__tests__/messages.test.js.map +1 -0
- package/dist/common/util/changes.js +3 -3
- package/dist/common/util/changes.js.map +1 -1
- package/dist/common/util/credentials.d.ts +4 -4
- package/dist/common/util/file.d.ts +6 -2
- package/dist/common/util/file.js +30 -27
- package/dist/common/util/file.js.map +1 -1
- package/dist/common/util/git.js +1 -1
- package/dist/common/util/git.js.map +1 -1
- package/dist/common/util/lru-cache.d.ts +9 -0
- package/dist/common/util/lru-cache.js +42 -0
- package/dist/common/util/lru-cache.js.map +1 -0
- package/dist/common/util/messages.d.ts +6 -0
- package/dist/common/util/messages.js +22 -0
- package/dist/common/util/messages.js.map +1 -0
- package/dist/common/util/min-heap.d.ts +15 -0
- package/dist/common/util/min-heap.js +73 -0
- package/dist/common/util/min-heap.js.map +1 -0
- package/dist/common/util/process-stream.d.ts +8 -0
- package/dist/common/util/process-stream.js +102 -0
- package/dist/common/util/process-stream.js.map +1 -0
- package/dist/common/util/promise.d.ts +8 -0
- package/dist/common/util/promise.js +25 -2
- package/dist/common/util/promise.js.map +1 -1
- package/dist/common/util/string.d.ts +31 -0
- package/dist/common/util/string.js +71 -1
- package/dist/common/util/string.js.map +1 -1
- package/dist/common/websockets/websocket-schema.d.ts +3920 -938
- package/dist/config.d.ts +1 -0
- package/dist/config.js +3 -2
- package/dist/config.js.map +1 -1
- package/dist/credentials.d.ts +1 -0
- package/dist/credentials.js +7 -3
- package/dist/credentials.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/menu.js +16 -12
- package/dist/menu.js.map +1 -1
- package/dist/project-files.d.ts +40 -2
- package/dist/project-files.js +95 -17
- package/dist/project-files.js.map +1 -1
- package/dist/tool-handlers.d.ts +22 -7
- package/dist/tool-handlers.js +110 -43
- package/dist/tool-handlers.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.js +46 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/process-xml-chunks.d.ts +37 -0
- package/dist/utils/process-xml-chunks.js +247 -0
- package/dist/utils/process-xml-chunks.js.map +1 -0
- package/dist/utils/spinner.d.ts +11 -0
- package/dist/utils/spinner.js +87 -0
- package/dist/utils/spinner.js.map +1 -0
- package/dist/utils/terminal.d.ts +3 -3
- package/dist/utils/terminal.js +23 -24
- package/dist/utils/terminal.js.map +1 -1
- package/dist/web-scraper.d.ts +1 -1
- package/dist/web-scraper.js +11 -7
- package/dist/web-scraper.js.map +1 -1
- package/package.json +3 -4
- package/dist/__tests__/browser-runner.test.js +0 -15
- package/dist/__tests__/browser-runner.test.js.map +0 -1
- /package/dist/{__tests__/browser-runner.test.d.ts → common/util/__tests__/messages.test.d.ts} +0 -0
package/dist/tool-handlers.js
CHANGED
|
@@ -23,19 +23,36 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.handleToolCall = exports.toolHandlers = exports.handleCodeSearch = exports.handleRunTerminalCommand = exports.handleScrapeWebPage = exports.handleWriteFile = void 0;
|
|
27
27
|
const ripgrep_1 = require("@vscode/ripgrep");
|
|
28
28
|
const picocolors_1 = require("picocolors");
|
|
29
29
|
const child_process_1 = require("child_process");
|
|
30
30
|
const browser_actions_1 = require("./common/browser-actions");
|
|
31
31
|
const browser_runner_1 = require("./browser-runner");
|
|
32
32
|
const web_scraper_1 = require("./web-scraper");
|
|
33
|
-
const project_files_1 = require("./project-files");
|
|
34
33
|
const terminal_1 = require("./utils/terminal");
|
|
35
34
|
const string_1 = require("./common/util/string");
|
|
36
35
|
const path = __importStar(require("path"));
|
|
37
|
-
const
|
|
38
|
-
|
|
36
|
+
const spinner_1 = require("./utils/spinner");
|
|
37
|
+
const changes_1 = require("./common/util/changes");
|
|
38
|
+
const actions_1 = require("./common/actions");
|
|
39
|
+
const handleWriteFile = async (parameters, _id, projectPath) => {
|
|
40
|
+
const fileChange = actions_1.FileChangeSchema.parse(parameters);
|
|
41
|
+
const { created, modified } = (0, changes_1.applyChanges)(projectPath, [fileChange]);
|
|
42
|
+
let result = '';
|
|
43
|
+
for (const file of created) {
|
|
44
|
+
result += `Wrote to ${file} successfully.\n`;
|
|
45
|
+
console.log((0, picocolors_1.green)(`- Created ${file}`));
|
|
46
|
+
}
|
|
47
|
+
for (const file of modified) {
|
|
48
|
+
result += `Wrote to ${file} successfully.\n`;
|
|
49
|
+
console.log((0, picocolors_1.green)(`- Updated ${file}`));
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
};
|
|
53
|
+
exports.handleWriteFile = handleWriteFile;
|
|
54
|
+
const handleScrapeWebPage = async (parameters) => {
|
|
55
|
+
const { url } = parameters;
|
|
39
56
|
const content = await (0, web_scraper_1.scrapeWebPage)(url);
|
|
40
57
|
if (!content) {
|
|
41
58
|
return `<web_scraping_error url="${url}">Failed to scrape the web page.</web_scraping_error>`;
|
|
@@ -43,23 +60,22 @@ const handleScrapeWebPage = async (input, id) => {
|
|
|
43
60
|
return `<web_scraped_content url="${url}">${content}</web_scraped_content>`;
|
|
44
61
|
};
|
|
45
62
|
exports.handleScrapeWebPage = handleScrapeWebPage;
|
|
46
|
-
const handleRunTerminalCommand = async (
|
|
47
|
-
const { command } =
|
|
48
|
-
return (0, terminal_1.runTerminalCommand)(command, mode);
|
|
63
|
+
const handleRunTerminalCommand = async (parameters, id, mode, projectPath) => {
|
|
64
|
+
const { command } = parameters;
|
|
65
|
+
return (0, terminal_1.runTerminalCommand)(command, mode, projectPath);
|
|
49
66
|
};
|
|
50
67
|
exports.handleRunTerminalCommand = handleRunTerminalCommand;
|
|
51
|
-
const handleCodeSearch = async (
|
|
68
|
+
const handleCodeSearch = async (parameters, _id, projectPath) => {
|
|
52
69
|
return new Promise((resolve) => {
|
|
53
70
|
let stdout = '';
|
|
54
71
|
let stderr = '';
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const pattern = input.pattern.replace(/"/g, '');
|
|
72
|
+
const basename = path.basename(projectPath);
|
|
73
|
+
const pattern = parameters.pattern.replace(/"/g, '');
|
|
58
74
|
const command = `${path.resolve(ripgrep_1.rgPath)} "${pattern}" .`;
|
|
59
75
|
console.log();
|
|
60
76
|
console.log((0, picocolors_1.green)(`Searching ${basename} for "${pattern}":`));
|
|
61
77
|
const childProcess = (0, child_process_1.spawn)(command, {
|
|
62
|
-
cwd:
|
|
78
|
+
cwd: projectPath,
|
|
63
79
|
shell: true,
|
|
64
80
|
});
|
|
65
81
|
childProcess.stdout.on('data', (data) => {
|
|
@@ -78,7 +94,7 @@ const handleCodeSearch = async (input, id) => {
|
|
|
78
94
|
console.log('...');
|
|
79
95
|
}
|
|
80
96
|
}
|
|
81
|
-
console.log((0, picocolors_1.green)(`Found ${lines.length} results
|
|
97
|
+
console.log((0, picocolors_1.green)(`Found ${lines.length} results`));
|
|
82
98
|
const truncatedStdout = (0, string_1.truncateStringWithMessage)(stdout, 10000);
|
|
83
99
|
const truncatedStderr = (0, string_1.truncateStringWithMessage)(stderr, 1000);
|
|
84
100
|
resolve(formatResult(truncatedStdout, truncatedStderr, 'Code search completed', code));
|
|
@@ -89,15 +105,53 @@ const handleCodeSearch = async (input, id) => {
|
|
|
89
105
|
});
|
|
90
106
|
};
|
|
91
107
|
exports.handleCodeSearch = handleCodeSearch;
|
|
108
|
+
function formatResult(stdout, stderr, status, exitCode) {
|
|
109
|
+
let result = '<terminal_command_result>\n';
|
|
110
|
+
result += `<stdout>${stdout}</stdout>\n`;
|
|
111
|
+
if (stderr !== undefined) {
|
|
112
|
+
result += `<stderr>${stderr}</stderr>\n`;
|
|
113
|
+
}
|
|
114
|
+
result += `<status>${status}</status>\n`;
|
|
115
|
+
if (exitCode !== null) {
|
|
116
|
+
result += `<exit_code>${exitCode}</exit_code>\n`;
|
|
117
|
+
}
|
|
118
|
+
result += '</terminal_command_result>';
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
92
121
|
exports.toolHandlers = {
|
|
122
|
+
write_file: exports.handleWriteFile,
|
|
93
123
|
scrape_web_page: exports.handleScrapeWebPage,
|
|
94
|
-
run_terminal_command: ((
|
|
95
|
-
continue: async (input, id) => input.response ?? 'Please continue',
|
|
124
|
+
run_terminal_command: ((parameters, id, projectPath) => (0, exports.handleRunTerminalCommand)(parameters, id, 'assistant', projectPath).then((result) => result.result)),
|
|
96
125
|
code_search: exports.handleCodeSearch,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
126
|
+
end_turn: async () => {
|
|
127
|
+
return '';
|
|
128
|
+
},
|
|
129
|
+
browser_action: async (params, _id) => {
|
|
130
|
+
spinner_1.Spinner.get().start();
|
|
131
|
+
let response;
|
|
132
|
+
try {
|
|
133
|
+
const action = browser_actions_1.BrowserActionSchema.parse(params);
|
|
134
|
+
response = await (0, browser_runner_1.handleBrowserInstruction)(action);
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
138
|
+
console.log('Small hiccup, one sec...');
|
|
139
|
+
return {
|
|
140
|
+
success: false,
|
|
141
|
+
error: `Browser action validation failed: ${errorMessage}`,
|
|
142
|
+
logs: [
|
|
143
|
+
{
|
|
144
|
+
type: 'error',
|
|
145
|
+
message: `Browser action validation failed: ${errorMessage}`,
|
|
146
|
+
timestamp: Date.now(),
|
|
147
|
+
source: 'tool',
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
spinner_1.Spinner.get().stop();
|
|
154
|
+
}
|
|
101
155
|
// Log any browser errors
|
|
102
156
|
if (!response.success && response.error) {
|
|
103
157
|
console.error((0, picocolors_1.red)(`Browser action failed: ${response.error}`));
|
|
@@ -113,38 +167,51 @@ exports.toolHandlers = {
|
|
|
113
167
|
console.warn((0, picocolors_1.yellow)(log.message));
|
|
114
168
|
break;
|
|
115
169
|
case 'info':
|
|
116
|
-
console.info(log.message);
|
|
170
|
+
console.info((0, picocolors_1.cyan)(log.message));
|
|
117
171
|
break;
|
|
118
172
|
default:
|
|
119
|
-
console.log(log.message);
|
|
173
|
+
console.log((0, picocolors_1.cyan)(log.message));
|
|
120
174
|
}
|
|
121
175
|
}
|
|
122
176
|
});
|
|
123
177
|
}
|
|
124
|
-
|
|
125
|
-
if (response.chunks && response.chunks.length > 0) {
|
|
126
|
-
const sortedChunks = response.chunks.sort((a, b) => a.index - b.index);
|
|
127
|
-
const combinedBase64 = sortedChunks.map((ch) => ch.data).join('');
|
|
128
|
-
response.screenshot = combinedBase64;
|
|
129
|
-
delete response.chunks; // Remove chunks after combining
|
|
130
|
-
}
|
|
131
|
-
// Send the full response including screenshot
|
|
132
|
-
return JSON.stringify(response);
|
|
178
|
+
return response;
|
|
133
179
|
},
|
|
134
180
|
};
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if (
|
|
139
|
-
|
|
181
|
+
const handleToolCall = async (toolCall, projectPath) => {
|
|
182
|
+
const { name, parameters } = toolCall;
|
|
183
|
+
const handler = exports.toolHandlers[name];
|
|
184
|
+
if (!handler) {
|
|
185
|
+
throw new Error(`No handler found for tool: ${name}`);
|
|
140
186
|
}
|
|
141
|
-
|
|
142
|
-
if (
|
|
143
|
-
|
|
187
|
+
const content = await handler(parameters, toolCall.id, projectPath);
|
|
188
|
+
if (typeof content !== 'string') {
|
|
189
|
+
throw new Error(`Tool call ${name} not supported. It returned non-string content.`);
|
|
144
190
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
191
|
+
// TODO: Add support for screenshots.
|
|
192
|
+
// const toolResultMessage: Message = {
|
|
193
|
+
// role: 'user',
|
|
194
|
+
// content: match(content)
|
|
195
|
+
// .with({ screenshots: P.not(P.nullish) }, (response) => [
|
|
196
|
+
// ...(response.screenshots.pre ? [response.screenshots.pre] : []),
|
|
197
|
+
// {
|
|
198
|
+
// type: 'text' as const,
|
|
199
|
+
// text:
|
|
200
|
+
// JSON.stringify({
|
|
201
|
+
// ...response,
|
|
202
|
+
// screenshots: undefined,
|
|
203
|
+
// }),
|
|
204
|
+
// },
|
|
205
|
+
// response.screenshots.post,
|
|
206
|
+
// ])
|
|
207
|
+
// .with(P.string, (str) => str)
|
|
208
|
+
// .otherwise((val) => JSON.stringify(val)),
|
|
209
|
+
// }
|
|
210
|
+
return {
|
|
211
|
+
name,
|
|
212
|
+
result: content,
|
|
213
|
+
id: toolCall.id,
|
|
214
|
+
};
|
|
215
|
+
};
|
|
216
|
+
exports.handleToolCall = handleToolCall;
|
|
150
217
|
//# sourceMappingURL=tool-handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,2CAAqD;AACrD,iDAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const logger: import("pino").Logger<never, boolean>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.logger = void 0;
|
|
30
|
+
const pino_1 = __importDefault(require("pino"));
|
|
31
|
+
const fs = __importStar(require("fs"));
|
|
32
|
+
const path = __importStar(require("path"));
|
|
33
|
+
const config_1 = require("../config");
|
|
34
|
+
// Create logs directory if it doesn't exist
|
|
35
|
+
const logsDir = process.cwd();
|
|
36
|
+
if (!fs.existsSync(logsDir)) {
|
|
37
|
+
fs.mkdirSync(logsDir, { recursive: true });
|
|
38
|
+
}
|
|
39
|
+
// Create a writable stream to the log file
|
|
40
|
+
const logStream = fs.createWriteStream(path.join(logsDir, 'debug.log'), {
|
|
41
|
+
flags: 'a',
|
|
42
|
+
});
|
|
43
|
+
exports.logger = (0, pino_1.default)({
|
|
44
|
+
level: process.env.LOG_LEVEL || 'debug',
|
|
45
|
+
}, config_1.isProduction ? undefined : logStream);
|
|
46
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuB;AACvB,uCAAwB;AACxB,2CAA4B;AAC5B,sCAAwC;AAExC,4CAA4C;AAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;AAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,2CAA2C;AAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;IACtE,KAAK,EAAE,GAAG;CACX,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,IAAA,cAAI,EACxB;IACE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO;CACxC,EACD,qBAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACrC,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler interface for XML tags
|
|
3
|
+
* Allows controlling both tag display and content handling
|
|
4
|
+
*/
|
|
5
|
+
export interface TagHandler {
|
|
6
|
+
onTagStart?: (tagName: string) => string | null;
|
|
7
|
+
onTagEnd: (tagName: string, content: string) => string | null;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* XmlStreamProcessor handles XML tags that may be split across multiple chunks.
|
|
11
|
+
* It processes tool-related XML tags and executes callbacks when nested tags are completed.
|
|
12
|
+
* The processor maintains a complete response buffer and processes character by character
|
|
13
|
+
* to ensure tags are fully completed before outputting content.
|
|
14
|
+
*/
|
|
15
|
+
export declare class XmlStreamProcessor {
|
|
16
|
+
private tagStack;
|
|
17
|
+
private currentContent;
|
|
18
|
+
private tagHandlers;
|
|
19
|
+
private responseBuffer;
|
|
20
|
+
private lastOutput;
|
|
21
|
+
constructor(tagHandlers: Record<string, TagHandler>);
|
|
22
|
+
/**
|
|
23
|
+
* Process a chunk of text that may contain XML tags
|
|
24
|
+
* @param chunk The new chunk to process
|
|
25
|
+
* @returns Processed text with XML tags handled according to the tag handlers
|
|
26
|
+
*/
|
|
27
|
+
process(chunk: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Reset the processor state after a stream is complete
|
|
30
|
+
* This clears all internal state variables to prepare for a new stream
|
|
31
|
+
*/
|
|
32
|
+
reset(): void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Default tag handlers for common XML tags
|
|
36
|
+
*/
|
|
37
|
+
export declare const defaultTagHandlers: Record<string, TagHandler>;
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultTagHandlers = exports.XmlStreamProcessor = void 0;
|
|
4
|
+
const tools_1 = require("../common/constants/tools");
|
|
5
|
+
const string_1 = require("../common/util/string");
|
|
6
|
+
const picocolors_1 = require("picocolors");
|
|
7
|
+
/**
|
|
8
|
+
* Formats a tag name for display in the terminal
|
|
9
|
+
* @param tagName The name of the tag to format
|
|
10
|
+
* @returns Formatted tag name with proper styling
|
|
11
|
+
*/
|
|
12
|
+
const formatTagName = (tagName) => {
|
|
13
|
+
return `\n[${(0, picocolors_1.bold)((0, string_1.snakeToTitleCase)(tagName))}] `;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* XmlStreamProcessor handles XML tags that may be split across multiple chunks.
|
|
17
|
+
* It processes tool-related XML tags and executes callbacks when nested tags are completed.
|
|
18
|
+
* The processor maintains a complete response buffer and processes character by character
|
|
19
|
+
* to ensure tags are fully completed before outputting content.
|
|
20
|
+
*/
|
|
21
|
+
class XmlStreamProcessor {
|
|
22
|
+
tagStack = [];
|
|
23
|
+
currentContent = '';
|
|
24
|
+
tagHandlers;
|
|
25
|
+
responseBuffer = '';
|
|
26
|
+
lastOutput = '';
|
|
27
|
+
constructor(tagHandlers) {
|
|
28
|
+
this.tagHandlers = tagHandlers;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Process a chunk of text that may contain XML tags
|
|
32
|
+
* @param chunk The new chunk to process
|
|
33
|
+
* @returns Processed text with XML tags handled according to the tag handlers
|
|
34
|
+
*/
|
|
35
|
+
process(chunk) {
|
|
36
|
+
// Append new chunk to the response buffer
|
|
37
|
+
this.responseBuffer += chunk;
|
|
38
|
+
// Process the buffer character by character
|
|
39
|
+
let output = '';
|
|
40
|
+
let position = 0;
|
|
41
|
+
let inTag = false;
|
|
42
|
+
let tagName = '';
|
|
43
|
+
let isClosingTag = false;
|
|
44
|
+
// Process each character in the buffer
|
|
45
|
+
while (position < this.responseBuffer.length) {
|
|
46
|
+
const currentChar = this.responseBuffer[position];
|
|
47
|
+
// Check for start of a tag
|
|
48
|
+
if (currentChar === '<') {
|
|
49
|
+
inTag = true;
|
|
50
|
+
tagName = '';
|
|
51
|
+
isClosingTag = false;
|
|
52
|
+
position++;
|
|
53
|
+
// Check if it's a closing tag
|
|
54
|
+
if (position < this.responseBuffer.length &&
|
|
55
|
+
this.responseBuffer[position] === '/') {
|
|
56
|
+
isClosingTag = true;
|
|
57
|
+
position++;
|
|
58
|
+
}
|
|
59
|
+
// Extract the tag name
|
|
60
|
+
while (position < this.responseBuffer.length &&
|
|
61
|
+
this.responseBuffer[position] !== '>' &&
|
|
62
|
+
this.responseBuffer[position] !== ' ') {
|
|
63
|
+
tagName += this.responseBuffer[position];
|
|
64
|
+
position++;
|
|
65
|
+
}
|
|
66
|
+
// Skip any attributes (not fully supported, just skipping them)
|
|
67
|
+
while (position < this.responseBuffer.length &&
|
|
68
|
+
this.responseBuffer[position] !== '>') {
|
|
69
|
+
position++;
|
|
70
|
+
}
|
|
71
|
+
// Move past the closing '>'
|
|
72
|
+
if (position < this.responseBuffer.length &&
|
|
73
|
+
this.responseBuffer[position] === '>') {
|
|
74
|
+
position++;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// We've reached the end of the buffer without finding the closing '>'
|
|
78
|
+
// Reset position to before the tag and wait for more data
|
|
79
|
+
position = this.responseBuffer.indexOf('<');
|
|
80
|
+
inTag = false;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
// Handle the tag
|
|
84
|
+
if (isClosingTag) {
|
|
85
|
+
// Handle closing tag
|
|
86
|
+
if (this.tagStack.length > 0) {
|
|
87
|
+
const openTag = this.tagStack.pop();
|
|
88
|
+
// If tag names match, process the content
|
|
89
|
+
if (openTag === tagName) {
|
|
90
|
+
// If we're closing a nested tag
|
|
91
|
+
if (this.tagStack.length === 1) {
|
|
92
|
+
const parentTag = this.tagStack[0];
|
|
93
|
+
const handler = this.tagHandlers[parentTag];
|
|
94
|
+
if (handler) {
|
|
95
|
+
const result = handler.onTagEnd(tagName, this.currentContent);
|
|
96
|
+
if (result !== null) {
|
|
97
|
+
output += result;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// If we're closing the main tag, reset content
|
|
102
|
+
if (this.tagStack.length === 0) {
|
|
103
|
+
this.currentContent = '';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Tag mismatch, push the popped tag back
|
|
108
|
+
if (openTag) {
|
|
109
|
+
this.tagStack.push(openTag);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// Handle opening tag - call onTagStart immediately if it exists
|
|
116
|
+
const handler = this.tagHandlers[tagName];
|
|
117
|
+
if (handler && handler.onTagStart && this.tagStack.length === 0) {
|
|
118
|
+
const tagDisplay = handler.onTagStart(tagName);
|
|
119
|
+
if (tagDisplay !== null) {
|
|
120
|
+
output += tagDisplay;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Push tag to stack
|
|
124
|
+
this.tagStack.push(tagName);
|
|
125
|
+
// Reset current content if this is a new top-level tag
|
|
126
|
+
if (this.tagStack.length === 1) {
|
|
127
|
+
this.currentContent = '';
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
inTag = false;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Regular content
|
|
134
|
+
if (this.tagStack.length > 0) {
|
|
135
|
+
// Inside a tag, add to current content
|
|
136
|
+
this.currentContent += currentChar;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
// Outside any tag, add directly to output
|
|
140
|
+
output += currentChar;
|
|
141
|
+
}
|
|
142
|
+
position++;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// If we've processed the entire buffer, update it to only include unprocessed content
|
|
146
|
+
if (position >= this.responseBuffer.length) {
|
|
147
|
+
this.responseBuffer = '';
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.responseBuffer = this.responseBuffer.substring(position);
|
|
151
|
+
}
|
|
152
|
+
// Calculate new output since last call
|
|
153
|
+
const newOutput = output.slice(this.lastOutput.length);
|
|
154
|
+
this.lastOutput = output;
|
|
155
|
+
return newOutput;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Reset the processor state after a stream is complete
|
|
159
|
+
* This clears all internal state variables to prepare for a new stream
|
|
160
|
+
*/
|
|
161
|
+
reset() {
|
|
162
|
+
this.tagStack = [];
|
|
163
|
+
this.currentContent = '';
|
|
164
|
+
this.responseBuffer = '';
|
|
165
|
+
this.lastOutput = '';
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.XmlStreamProcessor = XmlStreamProcessor;
|
|
169
|
+
/**
|
|
170
|
+
* Default tag handlers for common XML tags
|
|
171
|
+
*/
|
|
172
|
+
exports.defaultTagHandlers = {
|
|
173
|
+
// Create handlers for each tool in TOOL_LIST
|
|
174
|
+
...Object.fromEntries(tools_1.TOOL_LIST.map((tool) => [
|
|
175
|
+
tool,
|
|
176
|
+
{
|
|
177
|
+
onTagStart: (tagName) => formatTagName(tagName),
|
|
178
|
+
onTagEnd: (_tagName, _content) => null, // Hide all nested tags by default
|
|
179
|
+
},
|
|
180
|
+
])),
|
|
181
|
+
add_subgoal: {
|
|
182
|
+
onTagStart: (tagName) => formatTagName(tagName),
|
|
183
|
+
onTagEnd: (tagName, content) => {
|
|
184
|
+
if (tagName === 'objective') {
|
|
185
|
+
return content;
|
|
186
|
+
}
|
|
187
|
+
return null;
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
update_subgoal: {
|
|
191
|
+
onTagStart: (tagName) => formatTagName(tagName),
|
|
192
|
+
onTagEnd: (tagName, content) => {
|
|
193
|
+
if (tagName === 'objective') {
|
|
194
|
+
return content;
|
|
195
|
+
}
|
|
196
|
+
return null;
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
end_turn: {
|
|
200
|
+
onTagStart: () => null,
|
|
201
|
+
onTagEnd: () => null,
|
|
202
|
+
},
|
|
203
|
+
// Override with specific handlers for tools that need special handling
|
|
204
|
+
write_file: {
|
|
205
|
+
onTagStart: (tagName) => formatTagName(tagName),
|
|
206
|
+
onTagEnd: (tagName, content) => {
|
|
207
|
+
// hide content tags
|
|
208
|
+
if (tagName === 'path') {
|
|
209
|
+
return content;
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
run_terminal_command: {
|
|
215
|
+
onTagStart: (tagName) => formatTagName(tagName),
|
|
216
|
+
onTagEnd: (tagName, content) => {
|
|
217
|
+
return content;
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
read_files: {
|
|
221
|
+
onTagStart: (tagName) => formatTagName(tagName),
|
|
222
|
+
onTagEnd: (tagName, content) => {
|
|
223
|
+
// Hide paths tag
|
|
224
|
+
if (tagName === 'paths') {
|
|
225
|
+
return content.split('\n').join(',');
|
|
226
|
+
}
|
|
227
|
+
return content;
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
find_files: {
|
|
231
|
+
onTagStart: (tagName) => formatTagName(tagName),
|
|
232
|
+
onTagEnd: (tagName, content) => {
|
|
233
|
+
return content;
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
code_search: {
|
|
237
|
+
onTagStart: (tagName) => formatTagName(tagName),
|
|
238
|
+
onTagEnd: (tagName, content) => {
|
|
239
|
+
// Hide pattern tag
|
|
240
|
+
if (tagName === 'pattern') {
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
return content;
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
};
|
|
247
|
+
//# sourceMappingURL=process-xml-chunks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-xml-chunks.js","sourceRoot":"","sources":["../../src/utils/process-xml-chunks.ts"],"names":[],"mappings":";;;AAAA,kDAAiE;AACjE,+CAAqD;AACrD,2CAAiC;AAEjC;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IAChD,OAAO,MAAM,IAAA,iBAAI,EAAC,IAAA,yBAAgB,EAAC,OAAO,CAAC,CAAC,IAAI,CAAA;AAClD,CAAC,CAAA;AAgBD;;;;;GAKG;AACH,MAAa,kBAAkB;IACrB,QAAQ,GAAa,EAAE,CAAA;IACvB,cAAc,GAAW,EAAE,CAAA;IAC3B,WAAW,CAA4B;IACvC,cAAc,GAAW,EAAE,CAAA;IAC3B,UAAU,GAAW,EAAE,CAAA;IAE/B,YAAY,WAAuC;QACjD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAa;QACnB,0CAA0C;QAC1C,IAAI,CAAC,cAAc,IAAI,KAAK,CAAA;QAE5B,4CAA4C;QAC5C,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,KAAK,GAAG,KAAK,CAAA;QACjB,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,YAAY,GAAG,KAAK,CAAA;QAExB,uCAAuC;QACvC,OAAO,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YAEjD,2BAA2B;YAC3B,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBACxB,KAAK,GAAG,IAAI,CAAA;gBACZ,OAAO,GAAG,EAAE,CAAA;gBACZ,YAAY,GAAG,KAAK,CAAA;gBACpB,QAAQ,EAAE,CAAA;gBAEV,8BAA8B;gBAC9B,IACE,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM;oBACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,EACrC,CAAC;oBACD,YAAY,GAAG,IAAI,CAAA;oBACnB,QAAQ,EAAE,CAAA;gBACZ,CAAC;gBAED,uBAAuB;gBACvB,OACE,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM;oBACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG;oBACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,EACrC,CAAC;oBACD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;oBACxC,QAAQ,EAAE,CAAA;gBACZ,CAAC;gBAED,gEAAgE;gBAChE,OACE,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM;oBACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,EACrC,CAAC;oBACD,QAAQ,EAAE,CAAA;gBACZ,CAAC;gBAED,4BAA4B;gBAC5B,IACE,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM;oBACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,EACrC,CAAC;oBACD,QAAQ,EAAE,CAAA;gBACZ,CAAC;qBAAM,CAAC;oBACN,sEAAsE;oBACtE,0DAA0D;oBAC1D,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBAC3C,KAAK,GAAG,KAAK,CAAA;oBACb,MAAK;gBACP,CAAC;gBAED,iBAAiB;gBACjB,IAAI,YAAY,EAAE,CAAC;oBACjB,qBAAqB;oBACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;wBAEnC,0CAA0C;wBAC1C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;4BACxB,gCAAgC;4BAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gCAClC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;gCAE3C,IAAI,OAAO,EAAE,CAAC;oCACZ,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;oCAC7D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wCACpB,MAAM,IAAI,MAAM,CAAA;oCAClB,CAAC;gCACH,CAAC;4BACH,CAAC;4BAED,+CAA+C;4BAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCAC/B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;4BAC1B,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,yCAAyC;4BACzC,IAAI,OAAO,EAAE,CAAC;gCACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;4BAC7B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;oBAEzC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAChE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;wBAC9C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,MAAM,IAAI,UAAU,CAAA;wBACtB,CAAC;oBACH,CAAC;oBAED,oBAAoB;oBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAE3B,uDAAuD;oBACvD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC/B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;oBAC1B,CAAC;gBACH,CAAC;gBAED,KAAK,GAAG,KAAK,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,kBAAkB;gBAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,uCAAuC;oBACvC,IAAI,CAAC,cAAc,IAAI,WAAW,CAAA;gBACpC,CAAC;qBAAM,CAAC;oBACN,0CAA0C;oBAC1C,MAAM,IAAI,WAAW,CAAA;gBACvB,CAAC;gBACD,QAAQ,EAAE,CAAA;YACZ,CAAC;QACH,CAAC;QAED,sFAAsF;QACtF,IAAI,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC/D,CAAC;QAED,uCAAuC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACtD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;QAExB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACtB,CAAC;CACF;AAzKD,gDAyKC;AAED;;GAEG;AACU,QAAA,kBAAkB,GAA+B;IAC5D,6CAA6C;IAC7C,GAAG,MAAM,CAAC,WAAW,CACnB,iBAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACtB,IAAI;QACJ;YACE,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;YAC/C,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,kCAAkC;SAC3E;KACF,CAAC,CACH;IAED,WAAW,EAAE;QACX,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC7B,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAED,cAAc,EAAE;QACd,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC7B,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAED,QAAQ,EAAE;QACR,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;KACrB;IAED,uEAAuE;IACvE,UAAU,EAAE;QACV,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC7B,oBAAoB;YACpB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACvB,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAED,oBAAoB,EAAE;QACpB,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAA;QAChB,CAAC;KACF;IAED,UAAU,EAAE;QACV,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC7B,iBAAiB;YACjB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACtC,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;KACF;IAED,UAAU,EAAE;QACV,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAA;QAChB,CAAC;KACF;IAED,WAAW,EAAE;QACX,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC7B,mBAAmB;YACnB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;KACF;CACF,CAAA"}
|