tianxincode 1.0.2 → 1.0.3

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 (36) hide show
  1. package/README.md +164 -21
  2. package/dist/api/chat.routes.js +2 -2
  3. package/dist/api/chat.routes.js.map +1 -1
  4. package/dist/modules/ai/ai.service.d.ts.map +1 -1
  5. package/dist/modules/ai/ai.service.js +0 -1
  6. package/dist/modules/ai/ai.service.js.map +1 -1
  7. package/dist/modules/ai/openai.provider.d.ts +2 -124
  8. package/dist/modules/ai/openai.provider.d.ts.map +1 -1
  9. package/dist/modules/ai/openai.provider.js +42 -212
  10. package/dist/modules/ai/openai.provider.js.map +1 -1
  11. package/dist/modules/ai/react/react.parser.d.ts +6 -5
  12. package/dist/modules/ai/react/react.parser.d.ts.map +1 -1
  13. package/dist/modules/ai/react/react.parser.js +56 -45
  14. package/dist/modules/ai/react/react.parser.js.map +1 -1
  15. package/dist/modules/ai/react/react.prompts.d.ts.map +1 -1
  16. package/dist/modules/ai/react/react.prompts.js +0 -16
  17. package/dist/modules/ai/react/react.prompts.js.map +1 -1
  18. package/dist/modules/ai/react.agent.d.ts +41 -0
  19. package/dist/modules/ai/react.agent.d.ts.map +1 -1
  20. package/dist/modules/ai/react.agent.js +51 -1
  21. package/dist/modules/ai/react.agent.js.map +1 -1
  22. package/dist/modules/tools/builtin/edit_file.d.ts.map +1 -1
  23. package/dist/modules/tools/builtin/edit_file.js +43 -8
  24. package/dist/modules/tools/builtin/edit_file.js.map +1 -1
  25. package/dist/modules/tools/builtin/edit_file.txt +1 -0
  26. package/dist/modules/tools/builtin/read_file.d.ts.map +1 -1
  27. package/dist/modules/tools/builtin/read_file.js +10 -3
  28. package/dist/modules/tools/builtin/read_file.js.map +1 -1
  29. package/dist/modules/tools/builtin/write_file.d.ts.map +1 -1
  30. package/dist/modules/tools/builtin/write_file.js +15 -1
  31. package/dist/modules/tools/builtin/write_file.js.map +1 -1
  32. package/dist/modules/tools/builtin/write_file.txt +1 -0
  33. package/dist/modules/tools/tool.service.d.ts.map +1 -1
  34. package/dist/modules/tools/tool.service.js +3 -0
  35. package/dist/modules/tools/tool.service.js.map +1 -1
  36. package/package.json +9 -6
@@ -1,236 +1,78 @@
1
- /**
2
- * OpenAI Provider 模块
3
- *
4
- * 本模块负责与 OpenAI API (及兼容 API) 进行交互
5
- *
6
- * 核心功能:
7
- * 1. chat() - 发送聊天请求,获取完整响应
8
- * 2. chatStream() - 流式聊天,逐块获取响应
9
- * 3. Tool Calls - 支持 AI 调用工具 (Function Calling)
10
- *
11
- * 支持的 AI 提供商:
12
- * - OpenAI (GPT-4, GPT-3.5)
13
- * - 兼容 OpenAI API 的其他提供商 (如 Anthropic Claude 通过适配器)
14
- * - 自定义 API 端点 (通过 baseUrl 配置)
15
- *
16
- * 使用方式:
17
- * const provider = new OpenAIProvider({
18
- * apiKey: 'your-api-key',
19
- * baseUrl: 'https://api.openai.com/v1',
20
- * defaultModel: 'gpt-4'
21
- * });
22
- *
23
- * const response = await provider.chat([
24
- * { role: 'user', content: '你好' }
25
- * ]);
26
- */
1
+ import OpenAI from 'openai';
27
2
  import { logger } from '../logger/index.js';
28
- /**
29
- * OpenAIProvider 类
30
- *
31
- * 封装与 OpenAI API 的所有交互逻辑
32
- * 使用原生 fetch API 发送请求
33
- *
34
- * API 端点:
35
- * - POST /chat/completions - 聊天完成
36
- *
37
- * 请求格式:
38
- * - model: 模型名称
39
- * - messages: 消息数组
40
- * - temperature: 温度参数 (0-2)
41
- * - max_tokens: 最大 Token 数
42
- * - tools: 工具定义数组 (可选)
43
- * - tool_choice: 工具选择策略 (可选)
44
- * - stream: 是否流式响应 (可选)
45
- */
46
3
  export class OpenAIProvider {
47
- /**
48
- * 构造函数
49
- *
50
- * @param config - 配置对象
51
- *
52
- * baseUrl 默认值说明:
53
- * - OpenAI: https://api.openai.com/v1
54
- * - 本地部署: http://localhost:11434/v1 (Ollama)
55
- * - 自定义: 用户配置的任意兼容 API 地址
56
- */
57
4
  constructor(config) {
58
- this.apiKey = config.apiKey;
59
- this.baseUrl = config.baseUrl || 'https://api.openai.com/v1';
5
+ this.client = new OpenAI({
6
+ apiKey: config.apiKey,
7
+ baseURL: config.baseUrl || 'https://api.openai.com/v1',
8
+ });
60
9
  this.defaultModel = config.defaultModel || 'gpt-4';
61
10
  }
62
- /**
63
- * 发送聊天请求 (非流式)
64
- *
65
- * 将消息数组发送给 AI,获取完整的响应
66
- * 支持 Tool Calls 功能
67
- *
68
- * 执行流程:
69
- * 1. 构建请求体 (model, messages, temperature 等)
70
- * 2. 如果有工具定义,添加到请求体
71
- * 3. 发送 POST 请求到 /chat/completions
72
- * 4. 解析响应,返回 ChatResponse
73
- *
74
- * @param messages - 消息数组,包含角色和内容
75
- * @param options - 可选配置 (temperature, maxTokens, model, tools)
76
- * @returns {Promise<ChatResponse>} AI 响应对象
77
- *
78
- * @example
79
- * const response = await provider.chat([
80
- * { role: 'system', content: '你是一个助手' },
81
- * { role: 'user', content: '你好' }
82
- * ]);
83
- *
84
- * console.log(response.content); // AI 的回复
85
- * console.log(response.usage); // Token 使用量
86
- */
87
11
  async chat(messages, options = {}) {
88
- // ========== 提取配置参数 ==========
89
- // 使用提供的值或默认值
90
- const { temperature = 0.7, // 温度:控制生成随机性,0-2 之间
91
- maxTokens = 2000, // 最大 Token 数
92
- model = this.defaultModel, // 模型名称
93
- tools, // 工具定义数组 (可选)
94
- } = options;
95
- // ========== 构建请求体 ==========
12
+ const { temperature = 0.7, maxTokens = 8192, model = this.defaultModel, tools, } = options;
96
13
  const requestBody = {
97
14
  model,
98
- messages: messages.map(m => this.formatMessage(m)), // 格式化每条消息
15
+ messages: messages.map(m => this.formatMessage(m)),
99
16
  temperature,
100
17
  max_tokens: maxTokens,
101
18
  };
102
- // ========== 添加工具定义 ==========
103
- // 如果提供了工具,AI 可以选择调用工具
104
19
  if (tools && tools.length > 0) {
105
20
  requestBody.tools = tools;
106
- requestBody.tool_choice = 'auto'; // 让 AI 自动决定是否调用工具
21
+ requestBody.tool_choice = 'auto';
107
22
  }
108
- // ========== 发送请求 ==========
109
- // 完整的 API 端点: {baseUrl}/chat/completions
110
- const url = `${this.baseUrl}/chat/completions`;
111
- // 记录请求日志 (调试用)
23
+ const url = `${this.client.baseURL}/chat/completions`;
112
24
  logger.logRequest(url, requestBody);
113
- // 使用 fetch 发送 POST 请求
114
- const response = await fetch(url, {
115
- method: 'POST',
116
- headers: {
117
- 'Content-Type': 'application/json',
118
- Authorization: `Bearer ${this.apiKey}`, // Bearer Token 认证
119
- },
120
- body: JSON.stringify(requestBody),
121
- });
122
- // ========== 错误处理 ==========
123
- if (!response.ok) {
124
- const error = await response.text();
125
- throw new Error(`OpenAI API error: ${response.status} - ${error}`);
126
- }
127
- // ========== 解析响应 ==========
128
- const data = (await response.json());
129
- // 记录响应日志
130
- logger.logResponse(url, data);
131
- // 转换为内部格式并返回
132
- return this.parseResponse(data);
25
+ const response = await this.client.chat.completions.create(requestBody);
26
+ logger.logResponse(url, response);
27
+ return this.parseResponse(response);
133
28
  }
134
- /**
135
- * 流式聊天
136
- *
137
- * 使用 Server-Sent Events (SSE) 流式获取 AI 响应
138
- * 适用于需要实时展示 AI 回复的场景
139
- *
140
- * 实现原理:
141
- * 1. 发送请求时设置 stream: true
142
- * 2. 逐块读取响应体
143
- * 3. 解析每个 SSE 消息块
144
- * 4. yield 每个内容块给调用者
145
- * 5. 直到收到 [DONE] 标记结束
146
- *
147
- * @param messages - 消息数组
148
- * @param options - 可选配置
149
- * @returns {AsyncGenerator<string>} 异步生成器,逐块返回内容
150
- */
151
29
  async *chatStream(messages, options = {}) {
152
30
  const { temperature = 0.7, maxTokens = 2000, model = this.defaultModel, } = options;
153
- // 构建请求体,设置 stream: true
154
- const url = `${this.baseUrl}/chat/completions`;
31
+ const url = `${this.client.baseURL}/chat/completions`;
155
32
  const requestBody = {
156
33
  model,
157
34
  messages: messages.map(m => this.formatMessage(m)),
158
35
  temperature,
159
36
  max_tokens: maxTokens,
160
- stream: true, // 关键:启用流式响应
37
+ stream: true,
161
38
  };
162
39
  logger.logRequest(url, requestBody);
163
- const response = await fetch(url, {
164
- method: 'POST',
165
- headers: {
166
- 'Content-Type': 'application/json',
167
- Authorization: `Bearer ${this.apiKey}`,
168
- },
169
- body: JSON.stringify(requestBody),
170
- });
171
- if (!response.ok) {
172
- throw new Error(`OpenAI API error: ${response.status}`);
173
- }
174
- // ========== 获取响应流 ==========
175
- // response.body 是一个 ReadableStream
176
- const reader = response.body?.getReader();
177
- if (!reader)
40
+ const response = await this.client.chat.completions.create(requestBody);
41
+ if (!response.body) {
178
42
  throw new Error('No response body');
179
- const decoder = new TextDecoder(); // 解码二进制数据
180
- let buffer = ''; // 缓冲区,存储未处理的数据
181
- const streamData = []; // 存储所有响应数据 (日志用)
182
- // ========== 循环读取流数据 ==========
43
+ }
44
+ const reader = response.body.getReader();
45
+ const decoder = new TextDecoder();
46
+ let buffer = '';
183
47
  while (true) {
184
- // 读取一块数据
185
48
  const { done, value } = await reader.read();
186
49
  if (done)
187
- break; // 流已结束
188
- // 解码并追加到缓冲区
50
+ break;
189
51
  buffer += decoder.decode(value, { stream: true });
190
- // 按行分割
191
52
  const lines = buffer.split('\n');
192
- buffer = lines.pop() || ''; // 保留最后一行 (可能不完整)
193
- // ========== 处理每一行 ==========
53
+ buffer = lines.pop() || '';
194
54
  for (const line of lines) {
195
55
  const trimmed = line.trim();
196
- // SSE 格式: data: {...}
197
56
  if (trimmed.startsWith('data: ')) {
198
- const data = trimmed.slice(6); // 去掉 'data: ' 前缀
199
- streamData.push(data);
200
- // ========== 检查结束标记 ==========
201
- if (data === '[DONE]') {
202
- logger.logResponse(url, streamData);
203
- return; // 流式响应结束
204
- }
205
- // ========== 解析并 yield 内容 ==========
57
+ const data = trimmed.slice(6);
58
+ if (data === '[DONE]')
59
+ return;
206
60
  try {
207
61
  const parsed = JSON.parse(data);
208
- // OpenAI 流式响应的格式: choices[0].delta.content
209
62
  const content = parsed.choices?.[0]?.delta?.content;
210
- if (content) {
211
- yield content; // 返回内容块
212
- }
63
+ if (content)
64
+ yield content;
213
65
  }
214
66
  catch { }
215
67
  }
216
68
  }
217
69
  }
218
- logger.logResponse(url, streamData);
219
70
  }
220
- /**
221
- * 格式化消息
222
- *
223
- * 将内部 ChatMessage 格式转换为 OpenAI API 格式
224
- *
225
- * @param message - 内部消息格式
226
- * @returns {Record<string, any>} OpenAPI API 消息格式
227
- */
228
71
  formatMessage(message) {
229
72
  const formatted = {
230
73
  role: message.role,
231
74
  content: message.content,
232
75
  };
233
- // 添加可选字段
234
76
  if (message.name)
235
77
  formatted.name = message.name;
236
78
  if (message.toolCallId)
@@ -239,41 +81,29 @@ export class OpenAIProvider {
239
81
  formatted.tool_calls = message.toolCalls;
240
82
  return formatted;
241
83
  }
242
- /**
243
- * 解析 API 响应
244
- *
245
- * 将 OpenAI API 响应转换为内部 ChatResponse 格式
246
- *
247
- * @param data - OpenAI API 响应数据
248
- * @returns {ChatResponse} 内部响应格式
249
- */
250
- parseResponse(data) {
251
- // 获取第一个 choice (通常只有一个)
252
- const choice = data.choices[0];
84
+ parseResponse(response) {
85
+ const choice = response.choices[0];
253
86
  const message = choice.message;
254
- // 构建响应对象
255
- const response = {
256
- content: message.content || '', // AI 回复内容
257
- finishReason: choice.finish_reason, // 结束原因
258
- usage: data.usage ? {
259
- promptTokens: data.usage.prompt_tokens,
260
- completionTokens: data.usage.completion_tokens,
261
- totalTokens: data.usage.total_tokens,
87
+ const responseData = {
88
+ content: message.content || '',
89
+ finishReason: choice.finish_reason,
90
+ usage: response.usage ? {
91
+ promptTokens: response.usage.prompt_tokens,
92
+ completionTokens: response.usage.completion_tokens,
93
+ totalTokens: response.usage.total_tokens,
262
94
  } : undefined,
263
95
  };
264
- // ========== 处理工具调用 ==========
265
- // 如果 AI 调用了工具,解析工具调用信息
266
96
  if (message.tool_calls && message.tool_calls.length > 0) {
267
- response.toolCalls = message.tool_calls.map((tc) => ({
268
- id: tc.id, // 工具调用 ID
269
- type: 'function', // 调用类型
97
+ responseData.toolCalls = message.tool_calls.map((tc) => ({
98
+ id: tc.id,
99
+ type: 'function',
270
100
  function: {
271
- name: tc.function.name, // 工具名称
272
- arguments: tc.function.arguments, // 工具参数 (JSON 字符串)
101
+ name: tc.function.name,
102
+ arguments: tc.function.arguments,
273
103
  },
274
104
  }));
275
105
  }
276
- return response;
106
+ return responseData;
277
107
  }
278
108
  }
279
109
  //# sourceMappingURL=openai.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.provider.js","sourceRoot":"","sources":["../../../src/modules/ai/openai.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.provider.js","sourceRoot":"","sources":["../../../src/modules/ai/openai.provider.ts"],"names":[],"mappings":"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"}
@@ -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>
@@ -47,17 +47,18 @@ import { ReActStep } from './react.types.js';
47
47
  * 将 AI 返回的文本解析为结构化的 ReActStep 数组
48
48
  */
49
49
  export declare class ReActParser {
50
- parse(content: string): {
50
+ parse(content: string): Promise<{
51
51
  steps: ReActStep[];
52
52
  finalAnswer: string;
53
- };
53
+ }>;
54
54
  private splitBlocks;
55
55
  /**
56
56
  * 解析 XML 格式的块
57
57
  */
58
58
  private parseXMLBlock;
59
+ private extractValue;
59
60
  /**
60
- * 解析 XML 参数节点
61
+ * 解析 action_input 参数节点
61
62
  */
62
63
  private parseXMLParams;
63
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"react.parser.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAwCnE,OAAO,CAAC,WAAW;IAsDnB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0CrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAUrB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO;IAI3C,iBAAiB,CAAC,WAAW,EAAE,GAAG,GAAG,MAAM;IAO3C,wBAAwB,CAAC,WAAW,EAAE,GAAG,GAAG,MAAM;CAUnD;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
1
+ {"version":3,"file":"react.parser.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAG1D;;;;GAIG;AACH,qBAAa,WAAW;IAChB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;YAwCpE,WAAW;IAsDzB;;OAEG;YACW,aAAa;IA6C3B,OAAO,CAAC,YAAY;IASpB;;OAEG;YACW,cAAc;IAc5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAUrB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO;IAI3C,iBAAiB,CAAC,WAAW,EAAE,GAAG,GAAG,MAAM;IAO3C,wBAAwB,CAAC,WAAW,EAAE,GAAG,GAAG,MAAM;CAUnD;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -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,15 @@
40
40
  * ---
41
41
  * ```
42
42
  */
43
+ import { parseStringPromise } from 'xml2js';
43
44
  /**
44
45
  * ReActParser 类
45
46
  *
46
47
  * 将 AI 返回的文本解析为结构化的 ReActStep 数组
47
48
  */
48
49
  export class ReActParser {
49
- parse(content) {
50
- const blocks = this.splitBlocks(content);
50
+ async parse(content) {
51
+ const blocks = await this.splitBlocks(content);
51
52
  const steps = [];
52
53
  const contentMap = new Map();
53
54
  let finalAnswer = '';
@@ -85,7 +86,7 @@ export class ReActParser {
85
86
  }
86
87
  return { steps, finalAnswer };
87
88
  }
88
- splitBlocks(content) {
89
+ async splitBlocks(content) {
89
90
  const blocks = [];
90
91
  const parts = content.split(/\n---\n/);
91
92
  for (const part of parts) {
@@ -102,7 +103,7 @@ export class ReActParser {
102
103
  continue;
103
104
  }
104
105
  // 尝试解析 XML 格式
105
- const xmlResult = this.parseXMLBlock(trimmed);
106
+ const xmlResult = await this.parseXMLBlock(trimmed);
106
107
  if (xmlResult) {
107
108
  blocks.push(xmlResult);
108
109
  continue;
@@ -141,53 +142,63 @@ export class ReActParser {
141
142
  /**
142
143
  * 解析 XML 格式的块
143
144
  */
144
- parseXMLBlock(content) {
145
- // 匹配 <react>...</react> 块
146
- const reactMatch = content.match(/<react>([\s\S]*?)<\/react>/i);
147
- if (!reactMatch)
148
- return null;
149
- const inner = reactMatch[1];
150
- const data = {};
151
- // 解析 thought
152
- const thoughtMatch = inner.match(/<thought>([\s\S]*?)<\/thought>/i);
153
- if (thoughtMatch) {
154
- data.thought = thoughtMatch[1].trim();
155
- }
156
- // 解析 final_answer(可能包含 CDATA)
157
- const finalAnswerMatch = inner.match(/<final_answer>([\s\S]*?)<\/final_answer>/i);
158
- if (finalAnswerMatch) {
159
- data.final_answer = this.extractCDATAOrText(finalAnswerMatch[1]);
145
+ async parseXMLBlock(content) {
146
+ try {
147
+ const wrappedXml = `<root>${content}</root>`;
148
+ const parsed = await parseStringPromise(wrappedXml, {
149
+ trim: false,
150
+ explicitArray: false,
151
+ mergeAttrs: true,
152
+ });
153
+ if (!parsed?.root?.react) {
154
+ return null;
155
+ }
156
+ const react = parsed.root.react;
157
+ const data = {};
158
+ if (react.thought) {
159
+ data.thought = this.extractValue(react.thought);
160
+ }
161
+ if (react.final_answer) {
162
+ data.final_answer = this.extractValue(react.final_answer);
163
+ return { type: 'step', data };
164
+ }
165
+ if (react.action) {
166
+ data.action = this.extractValue(react.action);
167
+ }
168
+ if (react.keep_context) {
169
+ const keepCtx = this.extractValue(react.keep_context);
170
+ data.keep_context = keepCtx?.toLowerCase() === 'true';
171
+ }
172
+ if (react.action_input) {
173
+ data.action_input = await this.parseXMLParams(react.action_input);
174
+ }
160
175
  return { type: 'step', data };
161
176
  }
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);
169
- if (keepContextMatch) {
170
- data.keep_context = keepContextMatch[1].trim().toLowerCase() === 'true';
177
+ catch (e) {
178
+ console.error('XML parse error:', e);
179
+ return null;
171
180
  }
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]);
181
+ }
182
+ extractValue(value) {
183
+ if (!value)
184
+ return '';
185
+ if (typeof value === 'string')
186
+ return value.trim();
187
+ if (typeof value === 'object' && '_' in value) {
188
+ return this.extractCDATAOrText(String(value._));
176
189
  }
177
- return { type: 'step', data };
190
+ return String(value);
178
191
  }
179
192
  /**
180
- * 解析 XML 参数节点
193
+ * 解析 action_input 参数节点
181
194
  */
182
- parseXMLParams(xml) {
195
+ async parseXMLParams(actionInput) {
183
196
  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);
197
+ if (!actionInput || typeof actionInput !== 'object') {
198
+ return params;
199
+ }
200
+ for (const [key, value] of Object.entries(actionInput)) {
201
+ params[key] = this.extractValue(value);
191
202
  }
192
203
  return params;
193
204
  }
@@ -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;AA+H7D,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"}
@@ -75,22 +75,6 @@ function getReActPromptTemplate(roleTemplate) {
75
75
  </react>
76
76
  \`\`\`
77
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>
90
- <keep_context>true</keep_context>
91
- </react>
92
- \`\`\`
93
-
94
78
  **返回最终答案时:**
95
79
  \`\`\`xml
96
80
  <react>
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGvB,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"}