@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,354 @@
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 { ToolNotFoundError } from './tool-registry.js';
10
+ /**
11
+ * Error thrown when tool parameter validation fails
12
+ */
13
+ export class ToolValidationError extends Error {
14
+ toolName;
15
+ parameterName;
16
+ reason;
17
+ constructor(message, toolName, parameterName, reason) {
18
+ super(message);
19
+ this.toolName = toolName;
20
+ this.parameterName = parameterName;
21
+ this.reason = reason;
22
+ this.name = 'ToolValidationError';
23
+ }
24
+ }
25
+ /**
26
+ * Error thrown when tool execution fails
27
+ */
28
+ export class ToolExecutionError extends Error {
29
+ toolName;
30
+ cause;
31
+ constructor(message, toolName, cause) {
32
+ super(message);
33
+ this.toolName = toolName;
34
+ this.cause = cause;
35
+ this.name = 'ToolExecutionError';
36
+ }
37
+ }
38
+ /**
39
+ * Error thrown when tool execution times out
40
+ */
41
+ export class ToolTimeoutError extends Error {
42
+ toolName;
43
+ timeoutMs;
44
+ constructor(toolName, timeoutMs) {
45
+ super(`Tool execution timed out after ${timeoutMs}ms: ${toolName}`);
46
+ this.toolName = toolName;
47
+ this.timeoutMs = timeoutMs;
48
+ this.name = 'ToolTimeoutError';
49
+ }
50
+ }
51
+ /**
52
+ * Default logger implementation
53
+ */
54
+ const defaultLogger = {
55
+ info: (message, data) => {
56
+ console.log(`[INFO] ${message}`, data ?? '');
57
+ },
58
+ warn: (message, data) => {
59
+ console.warn(`[WARN] ${message}`, data ?? '');
60
+ },
61
+ error: (message, data) => {
62
+ console.error(`[ERROR] ${message}`, data ?? '');
63
+ },
64
+ debug: (message, data) => {
65
+ console.debug(`[DEBUG] ${message}`, data ?? '');
66
+ },
67
+ };
68
+ /**
69
+ * Validates a single parameter value against its definition
70
+ */
71
+ function validateParameterValue(param, value, toolName) {
72
+ // Check required parameters
73
+ if (param.required && (value === undefined || value === null)) {
74
+ throw new ToolValidationError(`Missing required parameter: ${param.name}`, toolName, param.name, 'Parameter is required but was not provided');
75
+ }
76
+ // Skip validation for optional parameters that are not provided
77
+ if (value === undefined || value === null) {
78
+ return;
79
+ }
80
+ // Type validation
81
+ const actualType = Array.isArray(value) ? 'array' : typeof value;
82
+ // Handle type mapping
83
+ const expectedType = param.type;
84
+ if (expectedType === 'object' && actualType === 'object' && !Array.isArray(value)) {
85
+ // Valid object
86
+ }
87
+ else if (expectedType === 'array' && Array.isArray(value)) {
88
+ // Valid array
89
+ }
90
+ else if (expectedType === actualType) {
91
+ // Direct type match
92
+ }
93
+ else {
94
+ throw new ToolValidationError(`Invalid type for parameter ${param.name}: expected ${param.type}, got ${actualType}`, toolName, param.name, `Expected type ${param.type} but received ${actualType}`);
95
+ }
96
+ // Enum validation
97
+ if (param.enum && param.enum.length > 0) {
98
+ if (!param.enum.includes(String(value))) {
99
+ throw new ToolValidationError(`Invalid value for parameter ${param.name}: must be one of [${param.enum.join(', ')}]`, toolName, param.name, `Value must be one of: ${param.enum.join(', ')}`);
100
+ }
101
+ }
102
+ }
103
+ /**
104
+ * Validates all parameters for a tool
105
+ */
106
+ function validateParameters(tool, args) {
107
+ const validatedArgs = {};
108
+ // Validate each defined parameter
109
+ for (const param of tool.parameters) {
110
+ const value = args[param.name];
111
+ validateParameterValue(param, value, tool.name);
112
+ // Use provided value or default
113
+ if (value !== undefined && value !== null) {
114
+ validatedArgs[param.name] = value;
115
+ }
116
+ else if (param.default !== undefined) {
117
+ validatedArgs[param.name] = param.default;
118
+ }
119
+ }
120
+ // Check for unknown parameters
121
+ const knownParams = new Set(tool.parameters.map((p) => p.name));
122
+ for (const key of Object.keys(args)) {
123
+ if (!knownParams.has(key)) {
124
+ // Include unknown parameters but log a warning
125
+ validatedArgs[key] = args[key];
126
+ }
127
+ }
128
+ return validatedArgs;
129
+ }
130
+ /**
131
+ * Creates a promise that rejects after a timeout
132
+ */
133
+ function createTimeout(ms, toolName) {
134
+ return new Promise((_, reject) => {
135
+ setTimeout(() => {
136
+ reject(new ToolTimeoutError(toolName, ms));
137
+ }, ms);
138
+ });
139
+ }
140
+ /**
141
+ * Tool Executor
142
+ *
143
+ * Executes tools with parameter validation, context injection,
144
+ * timeout handling, and error management.
145
+ */
146
+ export class ToolExecutor {
147
+ registry;
148
+ options;
149
+ contextProvider;
150
+ constructor(registry, options = {}) {
151
+ this.registry = registry;
152
+ this.options = {
153
+ defaultTimeout: options.defaultTimeout ?? 30000,
154
+ strictValidation: options.strictValidation ?? true,
155
+ };
156
+ }
157
+ /**
158
+ * Set the context provider for tool execution
159
+ */
160
+ setContextProvider(provider) {
161
+ this.contextProvider = provider;
162
+ }
163
+ /**
164
+ * Create a tool context from the provider or defaults
165
+ */
166
+ createContext(sessionId) {
167
+ if (this.contextProvider) {
168
+ return {
169
+ knowledgeBase: this.contextProvider.getKnowledgeBase(),
170
+ sessionId: sessionId ?? this.contextProvider.getSessionId(),
171
+ logger: this.contextProvider.getLogger(),
172
+ };
173
+ }
174
+ // Return a minimal context if no provider is set
175
+ return {
176
+ knowledgeBase: {
177
+ addDocument: async () => '',
178
+ getDocument: async () => null,
179
+ deleteDocument: async () => false,
180
+ search: async () => [],
181
+ listCategories: async () => [],
182
+ getDocumentsByCategory: async () => [],
183
+ },
184
+ sessionId: sessionId ?? 'default',
185
+ logger: defaultLogger,
186
+ };
187
+ }
188
+ /**
189
+ * Execute a tool by name with the given arguments
190
+ *
191
+ * @param toolName - Name of the tool to execute
192
+ * @param args - Arguments to pass to the tool
193
+ * @param options - Execution options
194
+ * @returns The execution result
195
+ */
196
+ async execute(toolName, args, options) {
197
+ const startTime = Date.now();
198
+ const timeout = options?.timeout ?? this.options.defaultTimeout;
199
+ // Get the tool
200
+ const tool = this.registry.get(toolName);
201
+ if (!tool) {
202
+ const error = new ToolNotFoundError(toolName);
203
+ return {
204
+ result: {
205
+ success: false,
206
+ content: `Tool not found: ${toolName}`,
207
+ error: {
208
+ code: 'TOOL_NOT_FOUND',
209
+ message: error.message,
210
+ },
211
+ },
212
+ toolName,
213
+ arguments: args,
214
+ durationMs: Date.now() - startTime,
215
+ success: false,
216
+ error,
217
+ };
218
+ }
219
+ // Validate parameters
220
+ let validatedArgs;
221
+ try {
222
+ validatedArgs = this.options.strictValidation ? validateParameters(tool, args) : args;
223
+ }
224
+ catch (error) {
225
+ if (error instanceof ToolValidationError) {
226
+ return {
227
+ result: {
228
+ success: false,
229
+ content: error.message,
230
+ error: {
231
+ code: 'VALIDATION_ERROR',
232
+ message: error.message,
233
+ details: {
234
+ parameter: error.parameterName,
235
+ reason: error.reason,
236
+ },
237
+ },
238
+ },
239
+ toolName,
240
+ arguments: args,
241
+ durationMs: Date.now() - startTime,
242
+ success: false,
243
+ error,
244
+ };
245
+ }
246
+ throw error;
247
+ }
248
+ // Create context
249
+ const context = this.createContext(options?.sessionId);
250
+ // Execute with timeout
251
+ try {
252
+ const result = await Promise.race([
253
+ tool.execute(validatedArgs, context),
254
+ createTimeout(timeout, toolName),
255
+ ]);
256
+ return {
257
+ result,
258
+ toolName,
259
+ arguments: validatedArgs,
260
+ durationMs: Date.now() - startTime,
261
+ success: result.success,
262
+ };
263
+ }
264
+ catch (error) {
265
+ const execError = error instanceof Error ? error : new Error(String(error));
266
+ // Handle timeout
267
+ if (error instanceof ToolTimeoutError) {
268
+ return {
269
+ result: {
270
+ success: false,
271
+ content: `Tool execution timed out after ${timeout}ms`,
272
+ error: {
273
+ code: 'TIMEOUT',
274
+ message: execError.message,
275
+ },
276
+ },
277
+ toolName,
278
+ arguments: validatedArgs,
279
+ durationMs: Date.now() - startTime,
280
+ success: false,
281
+ error: execError,
282
+ };
283
+ }
284
+ // Handle other errors
285
+ return {
286
+ result: {
287
+ success: false,
288
+ content: `Tool execution failed: ${execError.message}`,
289
+ error: {
290
+ code: 'EXECUTION_ERROR',
291
+ message: execError.message,
292
+ details: execError.stack,
293
+ },
294
+ },
295
+ toolName,
296
+ arguments: validatedArgs,
297
+ durationMs: Date.now() - startTime,
298
+ success: false,
299
+ error: new ToolExecutionError(`Tool execution failed: ${execError.message}`, toolName, execError),
300
+ };
301
+ }
302
+ }
303
+ /**
304
+ * Execute multiple tools in sequence
305
+ *
306
+ * @param calls - Array of tool calls to execute
307
+ * @param options - Execution options
308
+ * @returns Array of execution results
309
+ */
310
+ async executeSequence(calls, options) {
311
+ const results = [];
312
+ const stopOnError = options?.stopOnError ?? false;
313
+ for (const call of calls) {
314
+ const result = await this.execute(call.toolName, call.args, {
315
+ sessionId: options?.sessionId,
316
+ timeout: options?.timeout,
317
+ });
318
+ results.push(result);
319
+ if (stopOnError && !result.success) {
320
+ break;
321
+ }
322
+ }
323
+ return results;
324
+ }
325
+ /**
326
+ * Execute multiple tools in parallel
327
+ *
328
+ * @param calls - Array of tool calls to execute
329
+ * @param options - Execution options
330
+ * @returns Array of execution results
331
+ */
332
+ async executeParallel(calls, options) {
333
+ const promises = calls.map((call) => this.execute(call.toolName, call.args, {
334
+ sessionId: options?.sessionId,
335
+ timeout: options?.timeout,
336
+ }));
337
+ return Promise.all(promises);
338
+ }
339
+ /**
340
+ * Check if a tool requires confirmation before execution
341
+ */
342
+ requiresConfirmation(toolName) {
343
+ const tool = this.registry.get(toolName);
344
+ return tool?.requiresConfirmation ?? false;
345
+ }
346
+ /**
347
+ * Get the risk level of a tool
348
+ */
349
+ getRiskLevel(toolName) {
350
+ const tool = this.registry.get(toolName);
351
+ return tool?.riskLevel;
352
+ }
353
+ }
354
+ //# sourceMappingURL=tool-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/core/tool-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Tool Registry
3
+ *
4
+ * Manages registration and retrieval of tools for the Agent.
5
+ * Validates tool definitions and provides Function Calling format conversion.
6
+ *
7
+ * @module core/tool-registry
8
+ */
9
+ import type { Tool, ToolDefinition } from '../types/tool.js';
10
+ /**
11
+ * Error thrown when tool registration fails
12
+ */
13
+ export declare class ToolRegistrationError extends Error {
14
+ readonly toolName: string;
15
+ readonly reason: string;
16
+ constructor(message: string, toolName: string, reason: string);
17
+ }
18
+ /**
19
+ * Error thrown when a tool is not found
20
+ */
21
+ export declare class ToolNotFoundError extends Error {
22
+ constructor(toolName: string);
23
+ }
24
+ /**
25
+ * Options for tool registration behavior
26
+ */
27
+ export interface ToolRegistryOptions {
28
+ /** Whether to allow replacing existing tools (default: false) */
29
+ allowReplace?: boolean;
30
+ /** Whether to validate tool definitions strictly (default: true) */
31
+ strictValidation?: boolean;
32
+ }
33
+ /**
34
+ * Registry for managing Agent tools
35
+ *
36
+ * Provides methods to register, retrieve, and list tools.
37
+ * Ensures tool uniqueness and validates definitions.
38
+ */
39
+ export declare class ToolRegistry {
40
+ private tools;
41
+ private options;
42
+ constructor(options?: ToolRegistryOptions);
43
+ /**
44
+ * Register a tool with the registry
45
+ *
46
+ * @param tool - The tool to register
47
+ * @throws ToolRegistrationError if validation fails or tool already exists
48
+ */
49
+ register(tool: Tool): void;
50
+ /**
51
+ * Register multiple tools at once
52
+ *
53
+ * @param tools - Array of tools to register
54
+ * @throws ToolRegistrationError if any tool fails validation
55
+ */
56
+ registerAll(tools: Tool[]): void;
57
+ /**
58
+ * Get a tool by name
59
+ *
60
+ * @param name - The tool name
61
+ * @returns The tool if found, undefined otherwise
62
+ */
63
+ get(name: string): Tool | undefined;
64
+ /**
65
+ * Get a tool by name, throwing if not found
66
+ *
67
+ * @param name - The tool name
68
+ * @returns The tool
69
+ * @throws ToolNotFoundError if tool doesn't exist
70
+ */
71
+ getOrThrow(name: string): Tool;
72
+ /**
73
+ * Check if a tool is registered
74
+ *
75
+ * @param name - The tool name
76
+ * @returns true if the tool exists
77
+ */
78
+ has(name: string): boolean;
79
+ /**
80
+ * Remove a tool from the registry
81
+ *
82
+ * @param name - The tool name
83
+ * @returns true if the tool was removed, false if it didn't exist
84
+ */
85
+ unregister(name: string): boolean;
86
+ /**
87
+ * List all registered tools
88
+ *
89
+ * @returns Array of all registered tools
90
+ */
91
+ list(): Tool[];
92
+ /**
93
+ * List tool names
94
+ *
95
+ * @returns Array of registered tool names
96
+ */
97
+ listNames(): string[];
98
+ /**
99
+ * List tools by category
100
+ *
101
+ * @param category - The category to filter by
102
+ * @returns Array of tools in the specified category
103
+ */
104
+ listByCategory(category: string): Tool[];
105
+ /**
106
+ * Get all unique categories
107
+ *
108
+ * @returns Array of unique category names
109
+ */
110
+ getCategories(): string[];
111
+ /**
112
+ * Get tool definitions in Function Calling format
113
+ *
114
+ * @returns Array of tool definitions for LLM APIs
115
+ */
116
+ getDefinitions(): ToolDefinition[];
117
+ /**
118
+ * Get tool definitions for specific tools
119
+ *
120
+ * @param names - Array of tool names to get definitions for
121
+ * @returns Array of tool definitions
122
+ */
123
+ getDefinitionsFor(names: string[]): ToolDefinition[];
124
+ /**
125
+ * Get the number of registered tools
126
+ */
127
+ get size(): number;
128
+ /**
129
+ * Clear all registered tools
130
+ */
131
+ clear(): void;
132
+ }
133
+ //# sourceMappingURL=tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/core/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AAG5E;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,MAAM;gBAF9B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAKjC;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,QAAQ,EAAE,MAAM;CAI7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA4HD;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,OAAO,CAAgC;gBAEnC,OAAO,GAAE,mBAAwB;IAO7C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAoB1B;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAMhC;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;;;OAIG;IACH,IAAI,IAAI,IAAI,EAAE;IAId;;;;OAIG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;;;;OAKG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE;IAIxC;;;;OAIG;IACH,aAAa,IAAI,MAAM,EAAE;IAUzB;;;;OAIG;IACH,cAAc,IAAI,cAAc,EAAE;IAIlC;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE;IAOpD;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}