tianxincode 1.0.2 → 1.0.4

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 (118) hide show
  1. package/README.md +164 -21
  2. package/dist/api/chat.routes.js +14 -8
  3. package/dist/api/chat.routes.js.map +1 -1
  4. package/dist/api/session.routes.js +1 -1
  5. package/dist/api/session.routes.js.map +1 -1
  6. package/dist/cli/commands.js +1 -1
  7. package/dist/cli/commands.js.map +1 -1
  8. package/dist/components/App.d.ts.map +1 -1
  9. package/dist/components/App.js +109 -70
  10. package/dist/components/App.js.map +1 -1
  11. package/dist/modules/ai/ai.service.d.ts.map +1 -1
  12. package/dist/modules/ai/ai.service.js +4 -19
  13. package/dist/modules/ai/ai.service.js.map +1 -1
  14. package/dist/modules/ai/ai.types.d.ts +4 -2
  15. package/dist/modules/ai/ai.types.d.ts.map +1 -1
  16. package/dist/modules/ai/openai.provider.d.ts +2 -124
  17. package/dist/modules/ai/openai.provider.d.ts.map +1 -1
  18. package/dist/modules/ai/openai.provider.js +47 -212
  19. package/dist/modules/ai/openai.provider.js.map +1 -1
  20. package/dist/modules/ai/react/react.parser.d.ts +12 -7
  21. package/dist/modules/ai/react/react.parser.d.ts.map +1 -1
  22. package/dist/modules/ai/react/react.parser.js +170 -83
  23. package/dist/modules/ai/react/react.parser.js.map +1 -1
  24. package/dist/modules/ai/react/react.prompts.d.ts.map +1 -1
  25. package/dist/modules/ai/react/react.prompts.js +23 -33
  26. package/dist/modules/ai/react/react.prompts.js.map +1 -1
  27. package/dist/modules/ai/react/react.types.d.ts +5 -2
  28. package/dist/modules/ai/react/react.types.d.ts.map +1 -1
  29. package/dist/modules/ai/react/react.validator.d.ts +14 -0
  30. package/dist/modules/ai/react/react.validator.d.ts.map +1 -0
  31. package/dist/modules/ai/react/react.validator.js +53 -0
  32. package/dist/modules/ai/react/react.validator.js.map +1 -0
  33. package/dist/modules/ai/react.agent.d.ts +41 -0
  34. package/dist/modules/ai/react.agent.d.ts.map +1 -1
  35. package/dist/modules/ai/react.agent.js +81 -10
  36. package/dist/modules/ai/react.agent.js.map +1 -1
  37. package/dist/modules/ai/summarizer/summarizer.service.d.ts +1 -1
  38. package/dist/modules/ai/summarizer/summarizer.service.d.ts.map +1 -1
  39. package/dist/modules/ai/summarizer/summarizer.service.js +9 -22
  40. package/dist/modules/ai/summarizer/summarizer.service.js.map +1 -1
  41. package/dist/modules/ai/summarizer/summarizer.types.d.ts +1 -1
  42. package/dist/modules/ai/summarizer/summarizer.types.d.ts.map +1 -1
  43. package/dist/modules/db/db.service.js +1 -1
  44. package/dist/modules/db/db.service.js.map +1 -1
  45. package/dist/modules/memory/memory.service.js +1 -1
  46. package/dist/modules/memory/memory.service.js.map +1 -1
  47. package/dist/modules/skill/skill.tool.d.ts.map +1 -1
  48. package/dist/modules/skill/skill.tool.js +1 -0
  49. package/dist/modules/skill/skill.tool.js.map +1 -1
  50. package/dist/modules/skill/skill.txt +20 -2
  51. package/dist/modules/tools/builtin/bash.d.ts.map +1 -1
  52. package/dist/modules/tools/builtin/bash.js +2 -1
  53. package/dist/modules/tools/builtin/bash.js.map +1 -1
  54. package/dist/modules/tools/builtin/bash.txt +30 -42
  55. package/dist/modules/tools/builtin/code_search.d.ts.map +1 -1
  56. package/dist/modules/tools/builtin/code_search.js +1 -0
  57. package/dist/modules/tools/builtin/code_search.js.map +1 -1
  58. package/dist/modules/tools/builtin/code_search.txt +23 -0
  59. package/dist/modules/tools/builtin/edit_file.d.ts.map +1 -1
  60. package/dist/modules/tools/builtin/edit_file.js +44 -8
  61. package/dist/modules/tools/builtin/edit_file.js.map +1 -1
  62. package/dist/modules/tools/builtin/edit_file.txt +56 -5
  63. package/dist/modules/tools/builtin/glob.d.ts.map +1 -1
  64. package/dist/modules/tools/builtin/glob.js +1 -0
  65. package/dist/modules/tools/builtin/glob.js.map +1 -1
  66. package/dist/modules/tools/builtin/glob.txt +23 -0
  67. package/dist/modules/tools/builtin/grep.d.ts.map +1 -1
  68. package/dist/modules/tools/builtin/grep.js +1 -0
  69. package/dist/modules/tools/builtin/grep.js.map +1 -1
  70. package/dist/modules/tools/builtin/grep.txt +25 -0
  71. package/dist/modules/tools/builtin/index.d.ts.map +1 -1
  72. package/dist/modules/tools/builtin/index.js +27 -35
  73. package/dist/modules/tools/builtin/index.js.map +1 -1
  74. package/dist/modules/tools/builtin/lsp.d.ts.map +1 -1
  75. package/dist/modules/tools/builtin/lsp.js +2 -1
  76. package/dist/modules/tools/builtin/lsp.js.map +1 -1
  77. package/dist/modules/tools/builtin/lsp.txt +31 -5
  78. package/dist/modules/tools/builtin/memory.d.ts.map +1 -1
  79. package/dist/modules/tools/builtin/memory.js +1 -0
  80. package/dist/modules/tools/builtin/memory.js.map +1 -1
  81. package/dist/modules/tools/builtin/memory.txt +23 -1
  82. package/dist/modules/tools/builtin/read_file.d.ts.map +1 -1
  83. package/dist/modules/tools/builtin/read_file.js +11 -3
  84. package/dist/modules/tools/builtin/read_file.js.map +1 -1
  85. package/dist/modules/tools/builtin/read_file.txt +25 -2
  86. package/dist/modules/tools/builtin/todo_read.d.ts.map +1 -1
  87. package/dist/modules/tools/builtin/todo_read.js +1 -0
  88. package/dist/modules/tools/builtin/todo_read.js.map +1 -1
  89. package/dist/modules/tools/builtin/todo_read.txt +20 -0
  90. package/dist/modules/tools/builtin/todo_write.d.ts.map +1 -1
  91. package/dist/modules/tools/builtin/todo_write.js +1 -0
  92. package/dist/modules/tools/builtin/todo_write.js.map +1 -1
  93. package/dist/modules/tools/builtin/todo_write.txt +21 -0
  94. package/dist/modules/tools/builtin/web_fetch.d.ts.map +1 -1
  95. package/dist/modules/tools/builtin/web_fetch.js +1 -0
  96. package/dist/modules/tools/builtin/web_fetch.js.map +1 -1
  97. package/dist/modules/tools/builtin/web_fetch.txt +23 -0
  98. package/dist/modules/tools/builtin/web_search.d.ts.map +1 -1
  99. package/dist/modules/tools/builtin/web_search.js +1 -0
  100. package/dist/modules/tools/builtin/web_search.js.map +1 -1
  101. package/dist/modules/tools/builtin/web_search.txt +28 -1
  102. package/dist/modules/tools/builtin/write_file.d.ts.map +1 -1
  103. package/dist/modules/tools/builtin/write_file.js +16 -1
  104. package/dist/modules/tools/builtin/write_file.js.map +1 -1
  105. package/dist/modules/tools/builtin/write_file.txt +50 -1
  106. package/dist/modules/tools/tool.service.d.ts.map +1 -1
  107. package/dist/modules/tools/tool.service.js +3 -0
  108. package/dist/modules/tools/tool.service.js.map +1 -1
  109. package/dist/modules/tools/tool.types.d.ts +1 -0
  110. package/dist/modules/tools/tool.types.d.ts.map +1 -1
  111. package/dist/web/web.service.d.ts.map +1 -1
  112. package/dist/web/web.service.js +8 -5
  113. package/dist/web/web.service.js.map +1 -1
  114. package/package.json +9 -6
  115. package/web/dist/assets/{Layout-Bb76CGAL.js → Layout-Pvn6DBHZ.js} +1 -1
  116. package/web/dist/assets/{index-KTH-myBB.css → index-BnpKQafm.css} +1 -1
  117. package/web/dist/assets/{index-DQRR0ggU.js → index-CEHMSOel.js} +64 -64
  118. package/web/dist/index.html +2 -2
@@ -20,7 +20,7 @@
20
20
  * <thought>我需要读取文件</thought>
21
21
  * <action>readFile</action>
22
22
  * <action_input>
23
- * <path>/path/to/file</path>
23
+ * <file_path>/path/to/file</file_path>
24
24
  * </action_input>
25
25
  * <keep_context>true</keep_context>
26
26
  * </react>
@@ -29,7 +29,7 @@
29
29
  * <thought>需要创建一个组件</thought>
30
30
  * <action>write_file</action>
31
31
  * <action_input>
32
- * <path>src/Hello.tsx</path>
32
+ * <file_path>src/Hello.tsx</file_path>
33
33
  * <content><![CDATA[import React from 'react';]]></content>
34
34
  * </action_input>
35
35
  * </react>
@@ -40,14 +40,21 @@
40
40
  * ---
41
41
  * ```
42
42
  */
43
+ import { parseStringPromise } from 'xml2js';
44
+ import { contentValidator } from './react.validator.js';
43
45
  /**
44
46
  * ReActParser 类
45
47
  *
46
48
  * 将 AI 返回的文本解析为结构化的 ReActStep 数组
47
49
  */
48
50
  export class ReActParser {
49
- parse(content) {
50
- const blocks = this.splitBlocks(content);
51
+ async parse(content) {
52
+ const validation = contentValidator.validate(content);
53
+ if (!validation.valid) {
54
+ throw new Error(validation.error);
55
+ }
56
+ const cleanedContent = validation.cleanedContent;
57
+ const blocks = await this.splitBlocks(cleanedContent);
51
58
  const steps = [];
52
59
  const contentMap = new Map();
53
60
  let finalAnswer = '';
@@ -57,21 +64,22 @@ export class ReActParser {
57
64
  }
58
65
  else if (block.type === 'step') {
59
66
  const data = block.data;
60
- const replacedInput = this.replacePlaceholders(data.action_input, contentMap);
61
67
  if (data.final_answer) {
62
68
  finalAnswer = data.final_answer;
63
69
  steps.push({
64
70
  thought: data.thought || '',
65
- action: '',
66
- actionInput: {},
71
+ actions: [],
67
72
  final_answer: data.final_answer,
68
73
  });
69
74
  }
70
75
  else {
76
+ const actions = (data.actions || []).map((a) => ({
77
+ actionName: a.actionName || '',
78
+ actionInput: this.replacePlaceholders(a.actionInput || {}, contentMap),
79
+ }));
71
80
  steps.push({
72
81
  thought: data.thought || '',
73
- action: data.action || '',
74
- actionInput: replacedInput,
82
+ actions,
75
83
  keepContext: data.keep_context || false,
76
84
  });
77
85
  }
@@ -85,55 +93,55 @@ export class ReActParser {
85
93
  }
86
94
  return { steps, finalAnswer };
87
95
  }
88
- splitBlocks(content) {
96
+ async splitBlocks(content) {
89
97
  const blocks = [];
90
- const parts = content.split(/\n---\n/);
91
- for (const part of parts) {
92
- const trimmed = part.trim();
93
- if (!trimmed)
94
- continue;
95
- const contentMatch = trimmed.match(/^\$(\S+)\n([\s\S]*)$/);
96
- if (contentMatch) {
97
- blocks.push({
98
- type: 'content',
99
- contentKey: contentMatch[1],
100
- content: contentMatch[2],
101
- });
102
- continue;
103
- }
104
- // 尝试解析 XML 格式
105
- const xmlResult = this.parseXMLBlock(trimmed);
106
- if (xmlResult) {
107
- blocks.push(xmlResult);
108
- continue;
98
+ const contentMatch = content.match(/^\$(\S+)\n([\s\S]*)$/);
99
+ if (contentMatch) {
100
+ blocks.push({
101
+ type: 'content',
102
+ contentKey: contentMatch[1],
103
+ content: contentMatch[2],
104
+ });
105
+ return blocks;
106
+ }
107
+ // 尝试解析 XML 格式
108
+ const xmlResult = await this.parseXMLBlock(content);
109
+ if (xmlResult) {
110
+ blocks.push(xmlResult);
111
+ return blocks;
112
+ }
113
+ // XML 解析失败,尝试用正则表达式提取
114
+ const regexResult = this.parseByRegex(content);
115
+ if (regexResult) {
116
+ blocks.push(regexResult);
117
+ return blocks;
118
+ }
119
+ // 尝试解析 JSON 格式
120
+ try {
121
+ const json = JSON.parse(content);
122
+ if (json.observation !== undefined) {
123
+ blocks.push({ type: 'observation', data: json.observation });
109
124
  }
110
- // 尝试解析 JSON 格式
111
- try {
112
- const json = JSON.parse(trimmed);
113
- if (json.observation !== undefined) {
114
- blocks.push({ type: 'observation', data: json.observation });
115
- }
116
- else {
117
- blocks.push({ type: 'step', data: json });
118
- }
125
+ else {
126
+ blocks.push({ type: 'step', data: json });
119
127
  }
120
- catch {
121
- // 尝试提取 JSON 代码块
122
- const jsonBlockMatch = trimmed.match(/```json\s*([\s\S]*?)```/);
123
- if (jsonBlockMatch) {
124
- try {
125
- const json = JSON.parse(jsonBlockMatch[1].trim());
126
- if (json.observation !== undefined) {
127
- blocks.push({ type: 'observation', data: json.observation });
128
- }
129
- else {
130
- blocks.push({ type: 'step', data: json });
131
- }
128
+ }
129
+ catch {
130
+ // 尝试提取 JSON 代码块
131
+ const jsonBlockMatch = content.match(/```json\s*([\s\S]*?)```/);
132
+ if (jsonBlockMatch) {
133
+ try {
134
+ const json = JSON.parse(jsonBlockMatch[1].trim());
135
+ if (json.observation !== undefined) {
136
+ blocks.push({ type: 'observation', data: json.observation });
132
137
  }
133
- catch {
134
- // 忽略解析失败
138
+ else {
139
+ blocks.push({ type: 'step', data: json });
135
140
  }
136
141
  }
142
+ catch {
143
+ // 忽略解析失败
144
+ }
137
145
  }
138
146
  }
139
147
  return blocks;
@@ -141,53 +149,132 @@ export class ReActParser {
141
149
  /**
142
150
  * 解析 XML 格式的块
143
151
  */
144
- parseXMLBlock(content) {
145
- // 匹配 <react>...</react> 块
146
- const reactMatch = content.match(/<react>([\s\S]*?)<\/react>/i);
147
- if (!reactMatch)
152
+ async parseXMLBlock(content) {
153
+ try {
154
+ const wrappedXml = `<root>${content}</root>`;
155
+ const parsed = await parseStringPromise(wrappedXml, {
156
+ trim: false,
157
+ explicitArray: true,
158
+ mergeAttrs: true,
159
+ });
160
+ if (!parsed?.root?.react?.[0]) {
161
+ return null;
162
+ }
163
+ const react = parsed.root.react[0];
164
+ const data = {};
165
+ if (react.thought) {
166
+ data.thought = this.extractValue(react.thought);
167
+ }
168
+ if (react.final_answer) {
169
+ data.final_answer = this.extractValue(react.final_answer);
170
+ return { type: 'step', data };
171
+ }
172
+ if (react.keep_context) {
173
+ const keepCtx = this.extractValue(react.keep_context);
174
+ data.keep_context = keepCtx?.toLowerCase() === 'true';
175
+ }
176
+ data.actions = [];
177
+ const actionList = Array.isArray(react.action) ? react.action : (react.action ? [react.action] : []);
178
+ for (const actionItem of actionList) {
179
+ if (actionItem && typeof actionItem === 'object') {
180
+ const actionName = this.extractValue(actionItem.action_name || actionItem.actionName);
181
+ const actionInput = actionItem.action_input
182
+ ? await this.parseXMLParams(actionItem.action_input)
183
+ : {};
184
+ if (actionName) {
185
+ data.actions.push({ actionName, actionInput });
186
+ }
187
+ }
188
+ else if (actionItem && typeof actionItem === 'string') {
189
+ const actionName = this.extractValue(actionItem);
190
+ if (actionName) {
191
+ data.actions.push({ actionName, actionInput: {} });
192
+ }
193
+ }
194
+ }
195
+ if (data.actions.length === 0 && !data.final_answer) {
196
+ console.log('data.actions is empty and no final_answer, returning null');
197
+ return null;
198
+ }
199
+ return { type: 'step', data };
200
+ }
201
+ catch (e) {
202
+ console.error('XML parse error:', e);
148
203
  return null;
149
- const inner = reactMatch[1];
204
+ }
205
+ }
206
+ /**
207
+ * 用正则表达式解析 XML 格式的块(后备解析器)
208
+ */
209
+ parseByRegex(content) {
150
210
  const data = {};
151
- // 解析 thought
152
- const thoughtMatch = inner.match(/<thought>([\s\S]*?)<\/thought>/i);
211
+ const actions = [];
212
+ const thoughtMatch = content.match(/<thought>\s*([\s\S]*?)\s*<\/thought>/);
153
213
  if (thoughtMatch) {
154
214
  data.thought = thoughtMatch[1].trim();
155
215
  }
156
- // 解析 final_answer(可能包含 CDATA)
157
- const finalAnswerMatch = inner.match(/<final_answer>([\s\S]*?)<\/final_answer>/i);
216
+ const finalAnswerMatch = content.match(/<final_answer>\s*([\s\S]*?)\s*<\/final_answer>/);
158
217
  if (finalAnswerMatch) {
159
- data.final_answer = this.extractCDATAOrText(finalAnswerMatch[1]);
218
+ data.final_answer = finalAnswerMatch[1].trim();
160
219
  return { type: 'step', data };
161
220
  }
162
- // 解析 action
163
- const actionMatch = inner.match(/<action>([\s\S]*?)<\/action>/i);
164
- if (actionMatch) {
165
- data.action = actionMatch[1].trim();
166
- }
167
- // 解析 keep_context
168
- const keepContextMatch = inner.match(/<keep_context>([\s\S]*?)<\/keep_context>/i);
221
+ const keepContextMatch = content.match(/<keep_context>\s*([\s\S]*?)\s*<\/keep_context>/);
169
222
  if (keepContextMatch) {
170
- data.keep_context = keepContextMatch[1].trim().toLowerCase() === 'true';
223
+ data.keep_context = keepContextMatch[1].toLowerCase() === 'true';
171
224
  }
172
- // 解析 action_input 内的所有参数
173
- const actionInputMatch = inner.match(/<action_input>([\s\S]*?)<\/action_input>/i);
174
- if (actionInputMatch) {
175
- data.action_input = this.parseXMLParams(actionInputMatch[1]);
225
+ const actionRegex = /<action>\s*<action_name>\s*([^<]*?)\s*<\/action_name>\s*<action_input>\s*([^]*?)\s*<\/action_input>\s*<\/action>/gi;
226
+ let actionMatch;
227
+ while ((actionMatch = actionRegex.exec(content)) !== null) {
228
+ const actionName = actionMatch[1].trim();
229
+ const actionInputContent = actionMatch[2];
230
+ const actionInput = {};
231
+ const paramRegex = /<(\w+)>\s*([\s\S]*?)\s*<\/\1>/gi;
232
+ let paramMatch;
233
+ while ((paramMatch = paramRegex.exec(actionInputContent)) !== null) {
234
+ actionInput[paramMatch[1]] = paramMatch[2].trim();
235
+ }
236
+ if (actionName) {
237
+ actions.push({ actionName, actionInput });
238
+ }
176
239
  }
240
+ if (actions.length === 0 && !data.thought && !data.final_answer) {
241
+ return null;
242
+ }
243
+ data.actions = actions;
177
244
  return { type: 'step', data };
178
245
  }
246
+ extractValue(value) {
247
+ if (!value)
248
+ return '';
249
+ if (typeof value === 'string')
250
+ return value.trim();
251
+ if (typeof value === 'object' && '_' in value) {
252
+ return this.extractCDATAOrText(String(value._));
253
+ }
254
+ return String(value);
255
+ }
179
256
  /**
180
- * 解析 XML 参数节点
257
+ * 解析 action_input 参数节点
181
258
  */
182
- parseXMLParams(xml) {
259
+ async parseXMLParams(actionInput) {
183
260
  const params = {};
184
- // 匹配所有 <param_name>...</param_name> <param_name/>
185
- const paramRegex = /<(\w+)>([\s\S]*?)<\/\1>/gi;
186
- let match;
187
- while ((match = paramRegex.exec(xml)) !== null) {
188
- const paramName = match[1];
189
- const paramValue = match[2];
190
- params[paramName] = this.extractCDATAOrText(paramValue);
261
+ if (!actionInput || typeof actionInput !== 'object') {
262
+ return params;
263
+ }
264
+ const isArray = Array.isArray(actionInput) || Object.keys(actionInput).every(k => /^\d+$/.test(k));
265
+ if (isArray) {
266
+ for (const item of actionInput) {
267
+ if (item && typeof item === 'object') {
268
+ for (const [key, value] of Object.entries(item)) {
269
+ params[key] = this.extractValue(value);
270
+ }
271
+ }
272
+ }
273
+ }
274
+ else {
275
+ for (const [key, value] of Object.entries(actionInput)) {
276
+ params[key] = this.extractValue(value);
277
+ }
191
278
  }
192
279
  return params;
193
280
  }
@@ -1 +1 @@
1
- {"version":3,"file":"react.parser.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.parser.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"react.prompts.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA+I7D,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,EAAE,SAAS,EAAE,EACpB,aAAa,GAAE,MAAW,EAC1B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
1
+ {"version":3,"file":"react.prompts.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAwI7D,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,EAAE,SAAS,EAAE,EACpB,aAAa,GAAE,MAAW,EAC1B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
@@ -67,29 +67,22 @@ function getReActPromptTemplate(roleTemplate) {
67
67
  \`\`\`xml
68
68
  <react>
69
69
  <thought>你的思考过程</thought>
70
- <action>工具名称</action>
71
- <action_input>
72
- <参数名>参数值</参数名>
73
- </action_input>
74
- <keep_context>true</keep_context>
75
- </react>
76
- \`\`\`
77
-
78
- **需要写入/编辑文件时,内容使用 CDATA 包裹:**
79
- \`\`\`xml
80
- <react>
81
- <thought>需要创建一个组件</thought>
82
- <action>write_file</action>
83
- <action_input>
84
- <path>src/components/Hello.tsx</path>
85
- <content><![CDATA[import React from 'react';
86
- export const Hello = () => {
87
- return <div>Hello World</div>;
88
- };]]></content>
89
- </action_input>
70
+ <action>
71
+ <action_name>工具名称</action_name>
72
+ <action_input>
73
+ <参数名>参数值</参数名>
74
+ </action_input>
75
+ </action>
76
+ <action>
77
+ <action_name>另一个工具</action_name>
78
+ <action_input>
79
+ <参数名>参数值</参数名>
80
+ </action_input>
81
+ </action>
90
82
  <keep_context>true</keep_context>
91
83
  </react>
92
84
  \`\`\`
85
+ 如果有多个工具一起调用,重复 <action> 块即可
93
86
 
94
87
  **返回最终答案时:**
95
88
  \`\`\`xml
@@ -102,19 +95,17 @@ export const Hello = () => {
102
95
  ## 字段说明
103
96
 
104
97
  | 字段 | 类型 | 说明 |
105
- |------|------|------|
98
+ |------|------|
106
99
  | \`thought\` | string | 你的思考过程 |
107
- | \`action\` | string | 要执行的工具名称 |
100
+ | \`action\` | array | 要执行的工具列表,可包含多个 action |
101
+ | \`action_name\` | string | 工具名称 |
108
102
  | \`action_input\` | object | 工具参数 |
109
103
  | \`keep_context\` | boolean | 是否将此结果永久记忆并传递给下一轮(默认 false) |
110
104
  | \`final_answer\` | string | 最终回答(仅在任务完成时使用),使用 CDATA 包裹 |
111
- | \`content\` | string | write_file/edit_file 的文件内容,使用 CDATA 包裹 |
112
105
 
113
106
  ## 内置工具
114
107
 
115
- <builtin_tools>
116
108
  {builtinTools}
117
- </builtin_tools>
118
109
 
119
110
  ## skill 工具
120
111
 
@@ -123,10 +114,12 @@ export const Hello = () => {
123
114
  \`\`\`xml
124
115
  <react>
125
116
  <thought>用户要求创建发布版本,我需要先查看 git-release Skill</thought>
126
- <action>skill</action>
127
- <action_input>
128
- <name>git-release</name>
129
- </action_input>
117
+ <action>
118
+ <action_name>skill</action_name>
119
+ <action_input>
120
+ <name>git-release</name>
121
+ </action_input>
122
+ </action>
130
123
  </react>
131
124
  \`\`\`
132
125
 
@@ -163,10 +156,7 @@ export async function buildReActPrompt(builtinTools, _skills, maxIterations = 10
163
156
  : platform === 'darwin' ? 'macOS'
164
157
  : platform === 'linux' ? 'Linux'
165
158
  : platform;
166
- const builtinToolsDesc = builtinTools.map(t => {
167
- const params = Object.entries(t.parameters.properties).map(([name, prop]) => ` <${name} type="${prop.type}">${prop.description}</${name}>`).join('\n');
168
- return `<tool>\n <name>${t.name}</name>\n <description>${t.description}</description>\n <parameters>\n${params}\n </parameters>\n</tool>`;
169
- }).join('\n');
159
+ const builtinToolsDesc = builtinTools.map(t => t.description).join('\n\n');
170
160
  const skillsPrompt = await buildAvailableSkillsPrompt();
171
161
  const roleTemplate = await loadRoleTemplate();
172
162
  const template = getReActPromptTemplate(roleTemplate);
@@ -1 +1 @@
1
- {"version":3,"file":"react.prompts.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oCAAoC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAoB;IAClD,OAAO,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHvB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAA8B,EAC9B,OAAoB,EACpB,gBAAwB,EAAE,EAC1B,OAAiD;IAEjD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,MAAM,YAAY,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS;QACnD,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO;YACjC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO;gBAChC,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAC1E,QAAQ,IAAI,UAAU,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,KAAK,IAAI,GAAG,CACjE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,mBAAmB,CAAC,CAAC,IAAI,2BAA2B,CAAC,CAAC,WAAW,mCAAmC,MAAM,4BAA4B,CAAC;IAChJ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,YAAY,GAAG,MAAM,0BAA0B,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAEtD,OAAO,QAAQ;SACZ,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC;SACnC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;SAC7B,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,KAAK,CAAC;SACpD,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC;SACjC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"react.prompts.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oCAAoC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAoB;IAClD,OAAO,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHvB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAA8B,EAC9B,OAAoB,EACpB,gBAAwB,EAAE,EAC1B,OAAiD;IAEjD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,MAAM,YAAY,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS;QACnD,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO;YACjC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO;gBAChC,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE1E,MAAM,YAAY,GAAG,MAAM,0BAA0B,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAEtD,OAAO,QAAQ;SACZ,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC;SACnC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;SAC7B,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,KAAK,CAAC;SACpD,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC;SACjC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACvD,CAAC"}
@@ -12,10 +12,13 @@ export interface ToolDefinition {
12
12
  description: string;
13
13
  parameters: ToolParameters;
14
14
  }
15
+ export interface ActionCall {
16
+ actionName: string;
17
+ actionInput: Record<string, any>;
18
+ }
15
19
  export interface ReActStep {
16
20
  thought: string;
17
- action: string;
18
- actionInput: Record<string, any>;
21
+ actions: ActionCall[];
19
22
  observation?: any;
20
23
  error?: string;
21
24
  keepContext?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"react.types.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACzC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"react.types.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACzC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,14 @@
1
+ export interface ValidationResult {
2
+ valid: boolean;
3
+ error?: string;
4
+ cleanedContent?: string;
5
+ isFaultTolerance?: boolean;
6
+ }
7
+ export declare class ContentValidator {
8
+ validate(content: string): ValidationResult;
9
+ private hasReactStructure;
10
+ private hasAnyReactTag;
11
+ private extractContent;
12
+ }
13
+ export declare const contentValidator: ContentValidator;
14
+ //# sourceMappingURL=react.validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.validator.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.validator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IA6B3C,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;CAqBvB;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,53 @@
1
+ export class ContentValidator {
2
+ validate(content) {
3
+ const trimmed = content.trim();
4
+ if (this.hasReactStructure(trimmed)) {
5
+ return {
6
+ valid: true,
7
+ cleanedContent: this.extractContent(trimmed)
8
+ };
9
+ }
10
+ if (this.hasAnyReactTag(trimmed)) {
11
+ return {
12
+ valid: false,
13
+ error: '结构错误:XML 结构不完整或格式错误。请确保返回完整的 <react><thought>...</thought></react> 结构。'
14
+ };
15
+ }
16
+ const faultToleranceContent = `<react>
17
+ <thought>任务已完成</thought>
18
+ <final_answer><![CDATA[${trimmed}]]></final_answer>
19
+ </react>`;
20
+ return {
21
+ valid: true,
22
+ cleanedContent: faultToleranceContent,
23
+ isFaultTolerance: true
24
+ };
25
+ }
26
+ hasReactStructure(content) {
27
+ const pattern = /<react>\s*<thought>[\s\S]*?<\/thought>[\s\S]*?<\/react>/i;
28
+ return pattern.test(content);
29
+ }
30
+ hasAnyReactTag(content) {
31
+ return /<react>/i.test(content) || /<thought>/i.test(content) || /<action>/i.test(content);
32
+ }
33
+ extractContent(content) {
34
+ const codeBlockMatch = content.match(/```xml\s*([\s\S]*?)```/i);
35
+ if (codeBlockMatch && codeBlockMatch[1]) {
36
+ return codeBlockMatch[1].trim();
37
+ }
38
+ const anyCodeBlockMatch = content.match(/```\s*([\s\S]*?)```/i);
39
+ if (anyCodeBlockMatch && anyCodeBlockMatch[1]) {
40
+ const inner = anyCodeBlockMatch[1].trim();
41
+ if (this.hasReactStructure(inner)) {
42
+ return inner;
43
+ }
44
+ }
45
+ const reactMatch = content.match(/<react>[\s\S]*?<\/react>/i);
46
+ if (reactMatch) {
47
+ return reactMatch[0];
48
+ }
49
+ return content;
50
+ }
51
+ }
52
+ export const contentValidator = new ContentValidator();
53
+ //# sourceMappingURL=react.validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.validator.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.validator.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,gBAAgB;IAC3B,QAAQ,CAAC,OAAe;QACtB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/B,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,wEAAwE;aAChF,CAAC;QACJ,CAAC;QAED,MAAM,qBAAqB,GAAG;;2BAEP,OAAO;SACzB,CAAC;QAEN,OAAO;YACL,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,qBAAqB;YACrC,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,OAAe;QACvC,MAAM,OAAO,GAAG,0DAA0D,CAAC;QAC3E,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAChE,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAChE,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}