@agenticc/core 1.0.0

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 (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/README.zh-CN.md +372 -0
  4. package/dist/audit/index.d.ts +9 -0
  5. package/dist/audit/index.d.ts.map +1 -0
  6. package/dist/audit/index.js +9 -0
  7. package/dist/audit/index.js.map +1 -0
  8. package/dist/audit/logger.d.ts +211 -0
  9. package/dist/audit/logger.d.ts.map +1 -0
  10. package/dist/audit/logger.js +268 -0
  11. package/dist/audit/logger.js.map +1 -0
  12. package/dist/audit/query.d.ts +164 -0
  13. package/dist/audit/query.d.ts.map +1 -0
  14. package/dist/audit/query.js +250 -0
  15. package/dist/audit/query.js.map +1 -0
  16. package/dist/conversation/context-builder.d.ts +119 -0
  17. package/dist/conversation/context-builder.d.ts.map +1 -0
  18. package/dist/conversation/context-builder.js +252 -0
  19. package/dist/conversation/context-builder.js.map +1 -0
  20. package/dist/conversation/index.d.ts +10 -0
  21. package/dist/conversation/index.d.ts.map +1 -0
  22. package/dist/conversation/index.js +10 -0
  23. package/dist/conversation/index.js.map +1 -0
  24. package/dist/conversation/message-store.d.ts +231 -0
  25. package/dist/conversation/message-store.d.ts.map +1 -0
  26. package/dist/conversation/message-store.js +404 -0
  27. package/dist/conversation/message-store.js.map +1 -0
  28. package/dist/conversation/session.d.ts +201 -0
  29. package/dist/conversation/session.d.ts.map +1 -0
  30. package/dist/conversation/session.js +285 -0
  31. package/dist/conversation/session.js.map +1 -0
  32. package/dist/core/agent.d.ts +277 -0
  33. package/dist/core/agent.d.ts.map +1 -0
  34. package/dist/core/agent.js +674 -0
  35. package/dist/core/agent.js.map +1 -0
  36. package/dist/core/agentic-loop.d.ts +98 -0
  37. package/dist/core/agentic-loop.d.ts.map +1 -0
  38. package/dist/core/agentic-loop.js +496 -0
  39. package/dist/core/agentic-loop.js.map +1 -0
  40. package/dist/core/index.d.ts +14 -0
  41. package/dist/core/index.d.ts.map +1 -0
  42. package/dist/core/index.js +14 -0
  43. package/dist/core/index.js.map +1 -0
  44. package/dist/core/intent-parser.d.ts +101 -0
  45. package/dist/core/intent-parser.d.ts.map +1 -0
  46. package/dist/core/intent-parser.js +221 -0
  47. package/dist/core/intent-parser.js.map +1 -0
  48. package/dist/core/plan-generator.d.ts +133 -0
  49. package/dist/core/plan-generator.d.ts.map +1 -0
  50. package/dist/core/plan-generator.js +294 -0
  51. package/dist/core/plan-generator.js.map +1 -0
  52. package/dist/core/plugin-manager.d.ts +120 -0
  53. package/dist/core/plugin-manager.d.ts.map +1 -0
  54. package/dist/core/plugin-manager.js +369 -0
  55. package/dist/core/plugin-manager.js.map +1 -0
  56. package/dist/core/response-handler.d.ts +141 -0
  57. package/dist/core/response-handler.d.ts.map +1 -0
  58. package/dist/core/response-handler.js +384 -0
  59. package/dist/core/response-handler.js.map +1 -0
  60. package/dist/core/tool-executor.d.ts +143 -0
  61. package/dist/core/tool-executor.d.ts.map +1 -0
  62. package/dist/core/tool-executor.js +354 -0
  63. package/dist/core/tool-executor.js.map +1 -0
  64. package/dist/core/tool-registry.d.ts +133 -0
  65. package/dist/core/tool-registry.d.ts.map +1 -0
  66. package/dist/core/tool-registry.js +252 -0
  67. package/dist/core/tool-registry.js.map +1 -0
  68. package/dist/index.d.ts +44 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +47 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/knowledge/chunker.d.ts +78 -0
  73. package/dist/knowledge/chunker.d.ts.map +1 -0
  74. package/dist/knowledge/chunker.js +233 -0
  75. package/dist/knowledge/chunker.js.map +1 -0
  76. package/dist/knowledge/embedder.d.ts +93 -0
  77. package/dist/knowledge/embedder.d.ts.map +1 -0
  78. package/dist/knowledge/embedder.js +205 -0
  79. package/dist/knowledge/embedder.js.map +1 -0
  80. package/dist/knowledge/index.d.ts +10 -0
  81. package/dist/knowledge/index.d.ts.map +1 -0
  82. package/dist/knowledge/index.js +11 -0
  83. package/dist/knowledge/index.js.map +1 -0
  84. package/dist/knowledge/loaders/index.d.ts +10 -0
  85. package/dist/knowledge/loaders/index.d.ts.map +1 -0
  86. package/dist/knowledge/loaders/index.js +10 -0
  87. package/dist/knowledge/loaders/index.js.map +1 -0
  88. package/dist/knowledge/loaders/markdown.d.ts +88 -0
  89. package/dist/knowledge/loaders/markdown.d.ts.map +1 -0
  90. package/dist/knowledge/loaders/markdown.js +205 -0
  91. package/dist/knowledge/loaders/markdown.js.map +1 -0
  92. package/dist/knowledge/loaders/yaml.d.ts +112 -0
  93. package/dist/knowledge/loaders/yaml.d.ts.map +1 -0
  94. package/dist/knowledge/loaders/yaml.js +368 -0
  95. package/dist/knowledge/loaders/yaml.js.map +1 -0
  96. package/dist/knowledge/retriever.d.ts +144 -0
  97. package/dist/knowledge/retriever.d.ts.map +1 -0
  98. package/dist/knowledge/retriever.js +399 -0
  99. package/dist/knowledge/retriever.js.map +1 -0
  100. package/dist/knowledge/store.d.ts +146 -0
  101. package/dist/knowledge/store.d.ts.map +1 -0
  102. package/dist/knowledge/store.js +420 -0
  103. package/dist/knowledge/store.js.map +1 -0
  104. package/dist/llm/adapter.d.ts +194 -0
  105. package/dist/llm/adapter.d.ts.map +1 -0
  106. package/dist/llm/adapter.js +42 -0
  107. package/dist/llm/adapter.js.map +1 -0
  108. package/dist/llm/adapters/anyrouter.d.ts +84 -0
  109. package/dist/llm/adapters/anyrouter.d.ts.map +1 -0
  110. package/dist/llm/adapters/anyrouter.js +372 -0
  111. package/dist/llm/adapters/anyrouter.js.map +1 -0
  112. package/dist/llm/adapters/claude.d.ts +66 -0
  113. package/dist/llm/adapters/claude.d.ts.map +1 -0
  114. package/dist/llm/adapters/claude.js +323 -0
  115. package/dist/llm/adapters/claude.js.map +1 -0
  116. package/dist/llm/adapters/index.d.ts +12 -0
  117. package/dist/llm/adapters/index.d.ts.map +1 -0
  118. package/dist/llm/adapters/index.js +12 -0
  119. package/dist/llm/adapters/index.js.map +1 -0
  120. package/dist/llm/adapters/mimo.d.ts +85 -0
  121. package/dist/llm/adapters/mimo.d.ts.map +1 -0
  122. package/dist/llm/adapters/mimo.js +316 -0
  123. package/dist/llm/adapters/mimo.js.map +1 -0
  124. package/dist/llm/adapters/openai.d.ts +53 -0
  125. package/dist/llm/adapters/openai.d.ts.map +1 -0
  126. package/dist/llm/adapters/openai.js +293 -0
  127. package/dist/llm/adapters/openai.js.map +1 -0
  128. package/dist/llm/adapters/qwen.d.ts +53 -0
  129. package/dist/llm/adapters/qwen.d.ts.map +1 -0
  130. package/dist/llm/adapters/qwen.js +299 -0
  131. package/dist/llm/adapters/qwen.js.map +1 -0
  132. package/dist/llm/adapters/siliconflow.d.ts +69 -0
  133. package/dist/llm/adapters/siliconflow.d.ts.map +1 -0
  134. package/dist/llm/adapters/siliconflow.js +331 -0
  135. package/dist/llm/adapters/siliconflow.js.map +1 -0
  136. package/dist/llm/index.d.ts +9 -0
  137. package/dist/llm/index.d.ts.map +1 -0
  138. package/dist/llm/index.js +12 -0
  139. package/dist/llm/index.js.map +1 -0
  140. package/dist/llm/manager.d.ts +97 -0
  141. package/dist/llm/manager.d.ts.map +1 -0
  142. package/dist/llm/manager.js +337 -0
  143. package/dist/llm/manager.js.map +1 -0
  144. package/dist/test-utils/arbitraries.d.ts +230 -0
  145. package/dist/test-utils/arbitraries.d.ts.map +1 -0
  146. package/dist/test-utils/arbitraries.js +280 -0
  147. package/dist/test-utils/arbitraries.js.map +1 -0
  148. package/dist/test-utils/cleanup.d.ts +184 -0
  149. package/dist/test-utils/cleanup.d.ts.map +1 -0
  150. package/dist/test-utils/cleanup.js +282 -0
  151. package/dist/test-utils/cleanup.js.map +1 -0
  152. package/dist/test-utils/config.d.ts +80 -0
  153. package/dist/test-utils/config.d.ts.map +1 -0
  154. package/dist/test-utils/config.js +94 -0
  155. package/dist/test-utils/config.js.map +1 -0
  156. package/dist/test-utils/index.d.ts +10 -0
  157. package/dist/test-utils/index.d.ts.map +1 -0
  158. package/dist/test-utils/index.js +36 -0
  159. package/dist/test-utils/index.js.map +1 -0
  160. package/dist/test-utils/mocks.d.ts +170 -0
  161. package/dist/test-utils/mocks.d.ts.map +1 -0
  162. package/dist/test-utils/mocks.js +281 -0
  163. package/dist/test-utils/mocks.js.map +1 -0
  164. package/dist/types/config.d.ts +170 -0
  165. package/dist/types/config.d.ts.map +1 -0
  166. package/dist/types/config.js +120 -0
  167. package/dist/types/config.js.map +1 -0
  168. package/dist/types/knowledge.d.ts +95 -0
  169. package/dist/types/knowledge.d.ts.map +1 -0
  170. package/dist/types/knowledge.js +7 -0
  171. package/dist/types/knowledge.js.map +1 -0
  172. package/dist/types/loop.d.ts +148 -0
  173. package/dist/types/loop.d.ts.map +1 -0
  174. package/dist/types/loop.js +16 -0
  175. package/dist/types/loop.js.map +1 -0
  176. package/dist/types/plugin.d.ts +137 -0
  177. package/dist/types/plugin.d.ts.map +1 -0
  178. package/dist/types/plugin.js +15 -0
  179. package/dist/types/plugin.js.map +1 -0
  180. package/dist/types/response.d.ts +186 -0
  181. package/dist/types/response.d.ts.map +1 -0
  182. package/dist/types/response.js +99 -0
  183. package/dist/types/response.js.map +1 -0
  184. package/dist/types/streaming.d.ts +478 -0
  185. package/dist/types/streaming.d.ts.map +1 -0
  186. package/dist/types/streaming.js +483 -0
  187. package/dist/types/streaming.js.map +1 -0
  188. package/dist/types/tool.d.ts +118 -0
  189. package/dist/types/tool.d.ts.map +1 -0
  190. package/dist/types/tool.js +42 -0
  191. package/dist/types/tool.js.map +1 -0
  192. package/dist/utils/error.d.ts +22 -0
  193. package/dist/utils/error.d.ts.map +1 -0
  194. package/dist/utils/error.js +36 -0
  195. package/dist/utils/error.js.map +1 -0
  196. package/package.json +102 -0
@@ -0,0 +1,384 @@
1
+ /**
2
+ * Response Handler
3
+ *
4
+ * Generates appropriate responses based on execution results,
5
+ * knowledge assessment, and user interaction needs.
6
+ *
7
+ * _Requirements: 1.4, 5.1-5.5_
8
+ */
9
+ const DEFAULT_SYSTEM_PROMPT = `You are a helpful assistant for a game server management system.
10
+ Generate clear, concise responses based on the execution results provided.
11
+ Use the user's language (Chinese or English) based on their input.
12
+ Be specific about what was done and any relevant details.`;
13
+ /**
14
+ * Response Handler
15
+ *
16
+ * Determines the appropriate response type and generates responses
17
+ * based on the current state of agent processing.
18
+ */
19
+ export class ResponseHandler {
20
+ llmManager;
21
+ config;
22
+ constructor(llmManager, config) {
23
+ this.llmManager = llmManager;
24
+ this.config = {
25
+ systemPrompt: config?.systemPrompt ?? DEFAULT_SYSTEM_PROMPT,
26
+ includeToolDetails: config?.includeToolDetails ?? true,
27
+ maxResponseLength: config?.maxResponseLength ?? 2000,
28
+ };
29
+ }
30
+ /**
31
+ * Generate an appropriate response based on context
32
+ */
33
+ async generateResponse(context) {
34
+ // If we have successful execution results, prioritize returning them
35
+ if (context.executionResults && context.executionResults.length > 0) {
36
+ const hasSuccess = context.executionResults.some((r) => r.success);
37
+ if (hasSuccess) {
38
+ return this.createExecuteResponse(context);
39
+ }
40
+ }
41
+ // Check if we need to request knowledge
42
+ if (this.shouldRequestKnowledge(context)) {
43
+ return this.createKnowledgeRequestResponse(context);
44
+ }
45
+ // Check if we need clarification
46
+ if (this.shouldRequestClarification(context)) {
47
+ return this.createClarifyResponse(context);
48
+ }
49
+ // Check if we need confirmation
50
+ if (this.shouldRequestConfirmation(context)) {
51
+ return this.createConfirmResponse(context);
52
+ }
53
+ // Check if we should present options
54
+ if (this.shouldPresentOptions(context)) {
55
+ return this.createOptionsResponse(context);
56
+ }
57
+ // Generate execute response
58
+ return this.createExecuteResponse(context);
59
+ }
60
+ /**
61
+ * Check if knowledge request is needed
62
+ */
63
+ shouldRequestKnowledge(context) {
64
+ const assessment = context.knowledgeAssessment;
65
+ return assessment?.status === 'insufficient' && context.intent.confidence > 0.5; // Only if we understand the intent
66
+ }
67
+ /**
68
+ * Check if clarification is needed
69
+ */
70
+ shouldRequestClarification(context) {
71
+ // Low confidence intent
72
+ if (context.intent.confidence < 0.4) {
73
+ return true;
74
+ }
75
+ // Ambiguous knowledge
76
+ if (context.knowledgeAssessment?.status === 'ambiguous') {
77
+ return true;
78
+ }
79
+ // Unknown operation type with no clear target
80
+ if (context.intent.operationType === 'unknown' && !context.intent.target) {
81
+ return true;
82
+ }
83
+ return false;
84
+ }
85
+ /**
86
+ * Check if confirmation is needed
87
+ */
88
+ shouldRequestConfirmation(context) {
89
+ return context.plan?.requiresConfirmation === true;
90
+ }
91
+ /**
92
+ * Check if options should be presented
93
+ */
94
+ shouldPresentOptions(context) {
95
+ const assessment = context.knowledgeAssessment;
96
+ return (assessment?.status === 'ambiguous' &&
97
+ assessment.alternatives !== undefined &&
98
+ assessment.alternatives.length > 1);
99
+ }
100
+ /**
101
+ * Create a knowledge request response
102
+ */
103
+ createKnowledgeRequestResponse(context) {
104
+ const assessment = context.knowledgeAssessment;
105
+ const topic = assessment.missingTopic || context.intent.action;
106
+ const options = [
107
+ {
108
+ id: 'provide_text',
109
+ type: 'provide_text',
110
+ label: '提供文本信息',
111
+ description: '直接输入相关信息',
112
+ },
113
+ {
114
+ id: 'upload_file',
115
+ type: 'upload_file',
116
+ label: '上传文件',
117
+ description: '上传包含相关信息的文件',
118
+ },
119
+ {
120
+ id: 'skip',
121
+ type: 'skip',
122
+ label: '跳过',
123
+ description: '跳过此步骤,继续其他操作',
124
+ },
125
+ {
126
+ id: 'try_anyway',
127
+ type: 'try_anyway',
128
+ label: '尝试继续',
129
+ description: '使用现有知识尝试执行',
130
+ },
131
+ ];
132
+ return {
133
+ type: 'knowledge_request',
134
+ message: `我需要更多关于 "${topic}" 的信息来完成您的请求。`,
135
+ missing: {
136
+ topic,
137
+ description: `缺少关于 ${topic} 的详细信息,无法准确执行操作。`,
138
+ },
139
+ options,
140
+ };
141
+ }
142
+ /**
143
+ * Create a clarify response
144
+ */
145
+ async createClarifyResponse(context) {
146
+ const questions = await this.generateClarifyingQuestions(context);
147
+ return {
148
+ type: 'clarify',
149
+ message: '我需要一些额外信息来更好地理解您的请求。',
150
+ questions,
151
+ };
152
+ }
153
+ /**
154
+ * Generate clarifying questions using LLM
155
+ */
156
+ async generateClarifyingQuestions(context) {
157
+ try {
158
+ const prompt = `Based on this user message: "${context.userMessage}"
159
+
160
+ The intent was parsed as:
161
+ - Action: ${context.intent.action}
162
+ - Operation: ${context.intent.operationType}
163
+ - Confidence: ${context.intent.confidence}
164
+
165
+ Generate 2-3 clarifying questions to better understand what the user wants.
166
+ Respond with a JSON array of questions in the user's language.`;
167
+ const response = await this.llmManager.generate('response_generation', [
168
+ { role: 'system', content: 'Generate clarifying questions. Respond with a JSON array.' },
169
+ { role: 'user', content: prompt },
170
+ ], { temperature: 0.3 });
171
+ const match = response.match(/\[[\s\S]*\]/);
172
+ if (match) {
173
+ const questions = JSON.parse(match[0]);
174
+ if (Array.isArray(questions)) {
175
+ return questions.map((q) => String(q)).slice(0, 3);
176
+ }
177
+ }
178
+ }
179
+ catch (error) {
180
+ console.warn('Failed to generate clarifying questions:', error);
181
+ }
182
+ // Fallback questions
183
+ return ['您能更详细地描述您想要做什么吗?', '您要操作的具体对象是什么?'];
184
+ }
185
+ /**
186
+ * Create a confirm response
187
+ */
188
+ createConfirmResponse(context) {
189
+ const plan = context.plan;
190
+ const firstStep = plan.steps[0];
191
+ // Generate preview of changes
192
+ const preview = this.generatePlanPreview(plan);
193
+ return {
194
+ type: 'confirm',
195
+ message: `即将执行以下操作,请确认:`,
196
+ action: {
197
+ type: context.intent.operationType,
198
+ target: context.intent.target || firstStep?.toolName || 'unknown',
199
+ params: firstStep?.arguments || {},
200
+ },
201
+ risk: plan.riskLevel,
202
+ preview,
203
+ };
204
+ }
205
+ /**
206
+ * Generate a preview of the execution plan
207
+ */
208
+ generatePlanPreview(plan) {
209
+ const lines = [];
210
+ lines.push(`计划: ${plan.description}`);
211
+ lines.push(`风险等级: ${plan.riskLevel}`);
212
+ lines.push('');
213
+ lines.push('执行步骤:');
214
+ for (const step of plan.steps) {
215
+ lines.push(`${step.stepNumber}. ${step.description}`);
216
+ if (Object.keys(step.arguments).length > 0) {
217
+ lines.push(` 参数: ${JSON.stringify(step.arguments)}`);
218
+ }
219
+ }
220
+ return lines.join('\n');
221
+ }
222
+ /**
223
+ * Create an options response
224
+ */
225
+ createOptionsResponse(context) {
226
+ const alternatives = context.knowledgeAssessment?.alternatives || [];
227
+ const options = alternatives.map((alt, index) => ({
228
+ id: `option_${index}`,
229
+ label: alt.interpretation,
230
+ description: `置信度: ${(alt.confidence * 100).toFixed(0)}%`,
231
+ metadata: { confidence: alt.confidence },
232
+ }));
233
+ return {
234
+ type: 'options',
235
+ message: '发现多个可能的选项,请选择您想要的:',
236
+ options,
237
+ };
238
+ }
239
+ /**
240
+ * Create an execute response
241
+ */
242
+ async createExecuteResponse(context) {
243
+ const results = context.executionResults || [];
244
+ const toolCalls = this.buildToolCallRecords(results);
245
+ // Generate response message using LLM
246
+ const message = await this.generateExecuteMessage(context, results);
247
+ // Collect data from successful executions
248
+ const data = this.collectExecutionData(results);
249
+ return {
250
+ type: 'execute',
251
+ message,
252
+ data: Object.keys(data).length > 0 ? data : undefined,
253
+ toolCalls: this.config.includeToolDetails ? toolCalls : undefined,
254
+ };
255
+ }
256
+ /**
257
+ * Build tool call records from execution results
258
+ */
259
+ buildToolCallRecords(results) {
260
+ return results.map((result) => ({
261
+ toolName: result.toolName,
262
+ arguments: result.arguments,
263
+ result: {
264
+ success: result.success,
265
+ content: result.result.content,
266
+ data: result.result.data,
267
+ },
268
+ }));
269
+ }
270
+ /**
271
+ * Generate execute response message using LLM
272
+ */
273
+ async generateExecuteMessage(context, results) {
274
+ // If no results, generate a simple response
275
+ if (results.length === 0) {
276
+ return this.generateNoActionMessage(context);
277
+ }
278
+ try {
279
+ const prompt = this.buildExecuteMessagePrompt(context, results);
280
+ const response = await this.llmManager.generate('response_generation', [
281
+ { role: 'system', content: this.config.systemPrompt },
282
+ { role: 'user', content: prompt },
283
+ ], { temperature: 0.5 });
284
+ // Truncate if too long
285
+ if (response.length > this.config.maxResponseLength) {
286
+ return response.slice(0, this.config.maxResponseLength) + '...';
287
+ }
288
+ return response;
289
+ }
290
+ catch (error) {
291
+ console.warn('Failed to generate execute message:', error);
292
+ return this.generateFallbackMessage(results);
293
+ }
294
+ }
295
+ /**
296
+ * Build prompt for execute message generation
297
+ */
298
+ buildExecuteMessagePrompt(context, results) {
299
+ const parts = [];
300
+ parts.push(`User request: ${context.userMessage}`);
301
+ parts.push('');
302
+ parts.push('Execution results:');
303
+ for (const result of results) {
304
+ parts.push(`- Tool: ${result.toolName}`);
305
+ parts.push(` Success: ${result.success}`);
306
+ parts.push(` Result: ${result.result.content}`);
307
+ if (result.result.data) {
308
+ parts.push(` Data: ${JSON.stringify(result.result.data).slice(0, 200)}`);
309
+ }
310
+ }
311
+ parts.push('');
312
+ parts.push('Generate a helpful response summarizing what was done.');
313
+ parts.push('Use the same language as the user (Chinese or English).');
314
+ return parts.join('\n');
315
+ }
316
+ /**
317
+ * Generate message when no action was taken
318
+ */
319
+ generateNoActionMessage(context) {
320
+ if (context.searchResults && context.searchResults.length > 0) {
321
+ return '根据您的请求,我找到了以下相关信息。';
322
+ }
323
+ return '我理解了您的请求,但目前没有需要执行的操作。';
324
+ }
325
+ /**
326
+ * Generate fallback message when LLM fails
327
+ */
328
+ generateFallbackMessage(results) {
329
+ const successful = results.filter((r) => r.success);
330
+ const failed = results.filter((r) => !r.success);
331
+ const parts = [];
332
+ if (successful.length > 0) {
333
+ parts.push(`成功执行了 ${successful.length} 个操作。`);
334
+ }
335
+ if (failed.length > 0) {
336
+ parts.push(`${failed.length} 个操作失败。`);
337
+ for (const f of failed) {
338
+ parts.push(`- ${f.toolName}: ${f.result.content}`);
339
+ }
340
+ }
341
+ return parts.join('\n');
342
+ }
343
+ /**
344
+ * Collect data from execution results
345
+ */
346
+ collectExecutionData(results) {
347
+ const data = {};
348
+ for (const result of results) {
349
+ if (result.success && result.result.data !== undefined) {
350
+ data[result.toolName] = result.result.data;
351
+ }
352
+ }
353
+ return data;
354
+ }
355
+ /**
356
+ * Create a simple execute response without LLM
357
+ */
358
+ createSimpleExecuteResponse(message, data, toolCalls) {
359
+ return {
360
+ type: 'execute',
361
+ message,
362
+ data,
363
+ toolCalls,
364
+ };
365
+ }
366
+ /**
367
+ * Create an error response
368
+ */
369
+ createErrorResponse(error) {
370
+ const message = error instanceof Error ? error.message : error;
371
+ return {
372
+ type: 'execute',
373
+ message: `操作失败: ${message}`,
374
+ data: { error: true },
375
+ };
376
+ }
377
+ /**
378
+ * Get current configuration
379
+ */
380
+ getConfig() {
381
+ return { ...this.config };
382
+ }
383
+ }
384
+ //# sourceMappingURL=response-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-handler.js","sourceRoot":"","sources":["../../src/core/response-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Tool Executor
3
+ *
4
+ * Handles the execution of tools with parameter validation,
5
+ * context injection, and error handling.
6
+ *
7
+ * @module core/tool-executor
8
+ */
9
+ import type { ToolResult, ToolLogger } from '../types/tool.js';
10
+ import type { KnowledgeBase } from '../types/knowledge.js';
11
+ import { ToolRegistry } from './tool-registry.js';
12
+ /**
13
+ * Error thrown when tool parameter validation fails
14
+ */
15
+ export declare class ToolValidationError extends Error {
16
+ readonly toolName: string;
17
+ readonly parameterName: string;
18
+ readonly reason: string;
19
+ constructor(message: string, toolName: string, parameterName: string, reason: string);
20
+ }
21
+ /**
22
+ * Error thrown when tool execution fails
23
+ */
24
+ export declare class ToolExecutionError extends Error {
25
+ readonly toolName: string;
26
+ readonly cause?: Error;
27
+ constructor(message: string, toolName: string, cause?: Error);
28
+ }
29
+ /**
30
+ * Error thrown when tool execution times out
31
+ */
32
+ export declare class ToolTimeoutError extends Error {
33
+ readonly toolName: string;
34
+ readonly timeoutMs: number;
35
+ constructor(toolName: string, timeoutMs: number);
36
+ }
37
+ /**
38
+ * Options for tool execution
39
+ */
40
+ export interface ToolExecutorOptions {
41
+ /** Default timeout for tool execution in milliseconds (default: 30000) */
42
+ defaultTimeout?: number;
43
+ /** Whether to validate parameters strictly (default: true) */
44
+ strictValidation?: boolean;
45
+ }
46
+ /**
47
+ * Context provider for tool execution
48
+ */
49
+ export interface ToolContextProvider {
50
+ /** Get the knowledge base instance */
51
+ getKnowledgeBase(): KnowledgeBase;
52
+ /** Get the current session ID */
53
+ getSessionId(): string;
54
+ /** Get the logger instance */
55
+ getLogger(): ToolLogger;
56
+ }
57
+ /**
58
+ * Result of a tool execution including metadata
59
+ */
60
+ export interface ToolExecutionResult {
61
+ /** The tool result */
62
+ result: ToolResult;
63
+ /** Tool name that was executed */
64
+ toolName: string;
65
+ /** Arguments passed to the tool */
66
+ arguments: Record<string, unknown>;
67
+ /** Execution duration in milliseconds */
68
+ durationMs: number;
69
+ /** Whether the execution was successful */
70
+ success: boolean;
71
+ /** Error if execution failed */
72
+ error?: Error;
73
+ }
74
+ /**
75
+ * Tool Executor
76
+ *
77
+ * Executes tools with parameter validation, context injection,
78
+ * timeout handling, and error management.
79
+ */
80
+ export declare class ToolExecutor {
81
+ private registry;
82
+ private options;
83
+ private contextProvider?;
84
+ constructor(registry: ToolRegistry, options?: ToolExecutorOptions);
85
+ /**
86
+ * Set the context provider for tool execution
87
+ */
88
+ setContextProvider(provider: ToolContextProvider): void;
89
+ /**
90
+ * Create a tool context from the provider or defaults
91
+ */
92
+ private createContext;
93
+ /**
94
+ * Execute a tool by name with the given arguments
95
+ *
96
+ * @param toolName - Name of the tool to execute
97
+ * @param args - Arguments to pass to the tool
98
+ * @param options - Execution options
99
+ * @returns The execution result
100
+ */
101
+ execute(toolName: string, args: Record<string, unknown>, options?: {
102
+ sessionId?: string;
103
+ timeout?: number;
104
+ }): Promise<ToolExecutionResult>;
105
+ /**
106
+ * Execute multiple tools in sequence
107
+ *
108
+ * @param calls - Array of tool calls to execute
109
+ * @param options - Execution options
110
+ * @returns Array of execution results
111
+ */
112
+ executeSequence(calls: Array<{
113
+ toolName: string;
114
+ args: Record<string, unknown>;
115
+ }>, options?: {
116
+ sessionId?: string;
117
+ timeout?: number;
118
+ stopOnError?: boolean;
119
+ }): Promise<ToolExecutionResult[]>;
120
+ /**
121
+ * Execute multiple tools in parallel
122
+ *
123
+ * @param calls - Array of tool calls to execute
124
+ * @param options - Execution options
125
+ * @returns Array of execution results
126
+ */
127
+ executeParallel(calls: Array<{
128
+ toolName: string;
129
+ args: Record<string, unknown>;
130
+ }>, options?: {
131
+ sessionId?: string;
132
+ timeout?: number;
133
+ }): Promise<ToolExecutionResult[]>;
134
+ /**
135
+ * Check if a tool requires confirmation before execution
136
+ */
137
+ requiresConfirmation(toolName: string): boolean;
138
+ /**
139
+ * Get the risk level of a tool
140
+ */
141
+ getRiskLevel(toolName: string): 'low' | 'medium' | 'high' | undefined;
142
+ }
143
+ //# sourceMappingURL=tool-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/core/tool-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAqB,UAAU,EAAiB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAErE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,QAAQ,EAAE,MAAM;aAChB,aAAa,EAAE,MAAM;aACrB,MAAM,EAAE,MAAM;gBAH9B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM;CAKjC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,QAAQ,EAAE,MAAM;aAChB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK;CAKhC;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;aAEvB,QAAQ,EAAE,MAAM;aAChB,SAAS,EAAE,MAAM;gBADjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM;CAKpC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,gBAAgB,IAAI,aAAa,CAAC;IAClC,iCAAiC;IACjC,YAAY,IAAI,MAAM,CAAC;IACvB,8BAA8B;IAC9B,SAAS,IAAI,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAkHD;;;;;GAKG;AACH,qBAAa,YAAY;IAKrB,OAAO,CAAC,QAAQ;IAJlB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAsB;gBAGpC,QAAQ,EAAE,YAAY,EAC9B,OAAO,GAAE,mBAAwB;IAQnC;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIvD;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;;;;;;OAOG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,mBAAmB,CAAC;IAqH/B;;;;;;OAMG;IACG,eAAe,CACnB,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,EACjE,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GACA,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAoBjC;;;;;;OAMG;IACG,eAAe,CACnB,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,EACjE,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAWjC;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAK/C;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS;CAItE"}