@falai/agent 0.9.0-alpha-2 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -34
- package/dist/cjs/src/core/Agent.d.ts +48 -44
- package/dist/cjs/src/core/Agent.d.ts.map +1 -1
- package/dist/cjs/src/core/Agent.js +151 -1110
- package/dist/cjs/src/core/Agent.js.map +1 -1
- package/dist/cjs/src/core/ResponseModal.d.ts +211 -0
- package/dist/cjs/src/core/ResponseModal.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponseModal.js +1394 -0
- package/dist/cjs/src/core/ResponseModal.js.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts +8 -4
- package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/cjs/src/core/ResponsePipeline.js +48 -20
- package/dist/cjs/src/core/ResponsePipeline.js.map +1 -1
- package/dist/cjs/src/core/Route.d.ts +12 -5
- package/dist/cjs/src/core/Route.d.ts.map +1 -1
- package/dist/cjs/src/core/Route.js +26 -5
- package/dist/cjs/src/core/Route.js.map +1 -1
- package/dist/cjs/src/core/RoutingEngine.d.ts +5 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/src/core/RoutingEngine.js +37 -25
- package/dist/cjs/src/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/src/core/SessionManager.d.ts +9 -1
- package/dist/cjs/src/core/SessionManager.d.ts.map +1 -1
- package/dist/cjs/src/core/SessionManager.js +27 -5
- package/dist/cjs/src/core/SessionManager.js.map +1 -1
- package/dist/cjs/src/core/Step.d.ts +60 -7
- package/dist/cjs/src/core/Step.d.ts.map +1 -1
- package/dist/cjs/src/core/Step.js +151 -4
- package/dist/cjs/src/core/Step.js.map +1 -1
- package/dist/cjs/src/core/ToolManager.d.ts +234 -0
- package/dist/cjs/src/core/ToolManager.d.ts.map +1 -0
- package/dist/cjs/src/core/ToolManager.js +1117 -0
- package/dist/cjs/src/core/ToolManager.js.map +1 -0
- package/dist/cjs/src/index.d.ts +5 -4
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +11 -3
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/types/agent.d.ts +2 -1
- package/dist/cjs/src/types/agent.d.ts.map +1 -1
- package/dist/cjs/src/types/ai.d.ts +1 -1
- package/dist/cjs/src/types/ai.d.ts.map +1 -1
- package/dist/cjs/src/types/index.d.ts +3 -2
- package/dist/cjs/src/types/index.d.ts.map +1 -1
- package/dist/cjs/src/types/index.js +3 -1
- package/dist/cjs/src/types/index.js.map +1 -1
- package/dist/cjs/src/types/route.d.ts +6 -4
- package/dist/cjs/src/types/route.d.ts.map +1 -1
- package/dist/cjs/src/types/tool.d.ts +84 -14
- package/dist/cjs/src/types/tool.d.ts.map +1 -1
- package/dist/cjs/src/types/tool.js +13 -0
- package/dist/cjs/src/types/tool.js.map +1 -1
- package/dist/cjs/src/utils/clone.d.ts.map +1 -1
- package/dist/cjs/src/utils/clone.js +0 -4
- package/dist/cjs/src/utils/clone.js.map +1 -1
- package/dist/cjs/src/utils/history.d.ts +30 -1
- package/dist/cjs/src/utils/history.d.ts.map +1 -1
- package/dist/cjs/src/utils/history.js +169 -23
- package/dist/cjs/src/utils/history.js.map +1 -1
- package/dist/cjs/src/utils/index.d.ts +1 -1
- package/dist/cjs/src/utils/index.d.ts.map +1 -1
- package/dist/cjs/src/utils/index.js +5 -1
- package/dist/cjs/src/utils/index.js.map +1 -1
- package/dist/src/core/Agent.d.ts +48 -44
- package/dist/src/core/Agent.d.ts.map +1 -1
- package/dist/src/core/Agent.js +152 -1111
- package/dist/src/core/Agent.js.map +1 -1
- package/dist/src/core/ResponseModal.d.ts +211 -0
- package/dist/src/core/ResponseModal.d.ts.map +1 -0
- package/dist/src/core/ResponseModal.js +1389 -0
- package/dist/src/core/ResponseModal.js.map +1 -0
- package/dist/src/core/ResponsePipeline.d.ts +8 -4
- package/dist/src/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/src/core/ResponsePipeline.js +48 -20
- package/dist/src/core/ResponsePipeline.js.map +1 -1
- package/dist/src/core/Route.d.ts +12 -5
- package/dist/src/core/Route.d.ts.map +1 -1
- package/dist/src/core/Route.js +26 -5
- package/dist/src/core/Route.js.map +1 -1
- package/dist/src/core/RoutingEngine.d.ts +5 -0
- package/dist/src/core/RoutingEngine.d.ts.map +1 -1
- package/dist/src/core/RoutingEngine.js +37 -25
- package/dist/src/core/RoutingEngine.js.map +1 -1
- package/dist/src/core/SessionManager.d.ts +9 -1
- package/dist/src/core/SessionManager.d.ts.map +1 -1
- package/dist/src/core/SessionManager.js +27 -5
- package/dist/src/core/SessionManager.js.map +1 -1
- package/dist/src/core/Step.d.ts +60 -7
- package/dist/src/core/Step.d.ts.map +1 -1
- package/dist/src/core/Step.js +151 -4
- package/dist/src/core/Step.js.map +1 -1
- package/dist/src/core/ToolManager.d.ts +234 -0
- package/dist/src/core/ToolManager.d.ts.map +1 -0
- package/dist/src/core/ToolManager.js +1111 -0
- package/dist/src/core/ToolManager.js.map +1 -0
- package/dist/src/index.d.ts +5 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/types/agent.d.ts +2 -1
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/ai.d.ts +1 -1
- package/dist/src/types/ai.d.ts.map +1 -1
- package/dist/src/types/index.d.ts +3 -2
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +1 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/route.d.ts +6 -4
- package/dist/src/types/route.d.ts.map +1 -1
- package/dist/src/types/tool.d.ts +84 -14
- package/dist/src/types/tool.d.ts.map +1 -1
- package/dist/src/types/tool.js +12 -1
- package/dist/src/types/tool.js.map +1 -1
- package/dist/src/utils/clone.d.ts.map +1 -1
- package/dist/src/utils/clone.js +0 -4
- package/dist/src/utils/clone.js.map +1 -1
- package/dist/src/utils/history.d.ts +30 -1
- package/dist/src/utils/history.d.ts.map +1 -1
- package/dist/src/utils/history.js +165 -23
- package/dist/src/utils/history.js.map +1 -1
- package/dist/src/utils/index.d.ts +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +1 -1
- package/dist/src/utils/index.js.map +1 -1
- package/docs/CONTRIBUTING.md +40 -0
- package/docs/README.md +14 -6
- package/docs/api/README.md +235 -45
- package/docs/api/overview.md +140 -33
- package/docs/core/agent/session-management.md +152 -5
- package/docs/core/ai-integration/response-processing.md +115 -4
- package/docs/core/conversation-flows/routes.md +130 -0
- package/docs/core/error-handling.md +638 -0
- package/docs/core/tools/tool-definition.md +684 -60
- package/docs/core/tools/tool-scoping.md +244 -53
- package/docs/guides/error-handling-patterns.md +578 -0
- package/docs/guides/getting-started/README.md +139 -28
- package/docs/guides/migration/README.md +72 -0
- package/docs/guides/migration/response-modal-refactor.md +518 -0
- package/examples/advanced-patterns/knowledge-based-agent.ts +6 -6
- package/examples/advanced-patterns/persistent-onboarding.ts +30 -43
- package/examples/advanced-patterns/streaming-responses.ts +169 -96
- package/examples/ai-providers/anthropic-integration.ts +9 -5
- package/examples/ai-providers/openai-integration.ts +11 -7
- package/examples/core-concepts/basic-agent.ts +106 -67
- package/examples/core-concepts/modern-streaming-api.ts +309 -0
- package/examples/core-concepts/schema-driven-extraction.ts +10 -7
- package/examples/core-concepts/session-management.ts +71 -18
- package/examples/integrations/healthcare-integration.ts +15 -29
- package/examples/integrations/server-session-management.ts +3 -3
- package/examples/persistence/memory-sessions.ts +3 -3
- package/examples/tools/basic-tools.ts +293 -89
- package/examples/tools/data-enrichment-tools.ts +185 -75
- package/package.json +1 -1
- package/src/core/Agent.ts +190 -1529
- package/src/core/ResponseModal.ts +1798 -0
- package/src/core/ResponsePipeline.ts +83 -57
- package/src/core/Route.ts +39 -12
- package/src/core/RoutingEngine.ts +46 -42
- package/src/core/SessionManager.ts +39 -7
- package/src/core/Step.ts +198 -20
- package/src/core/ToolManager.ts +1394 -0
- package/src/index.ts +19 -3
- package/src/types/agent.ts +2 -1
- package/src/types/ai.ts +1 -1
- package/src/types/index.ts +13 -2
- package/src/types/route.ts +6 -4
- package/src/types/tool.ts +116 -25
- package/src/utils/clone.ts +6 -8
- package/src/utils/history.ts +190 -27
- package/src/utils/index.ts +4 -0
- package/dist/cjs/src/core/ToolExecutor.d.ts +0 -45
- package/dist/cjs/src/core/ToolExecutor.d.ts.map +0 -1
- package/dist/cjs/src/core/ToolExecutor.js +0 -84
- package/dist/cjs/src/core/ToolExecutor.js.map +0 -1
- package/dist/src/core/ToolExecutor.d.ts +0 -45
- package/dist/src/core/ToolExecutor.d.ts.map +0 -1
- package/dist/src/core/ToolExecutor.js +0 -80
- package/dist/src/core/ToolExecutor.js.map +0 -1
- package/docs/core/tools/tool-execution.md +0 -815
- package/src/core/ToolExecutor.ts +0 -126
package/dist/src/core/Step.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Step in the route DSL
|
|
3
3
|
*/
|
|
4
|
+
import { ToolScope } from "../types";
|
|
4
5
|
import { END_ROUTE, END_ROUTE_ID } from "../constants";
|
|
5
6
|
import { generateStepId } from "../utils/id";
|
|
6
7
|
/**
|
|
7
8
|
* Represents a step within a route
|
|
8
9
|
*/
|
|
9
10
|
export class Step {
|
|
10
|
-
constructor(routeId, options = {}) {
|
|
11
|
+
constructor(routeId, options = {}, parentAgent) {
|
|
11
12
|
this.nextSteps = [];
|
|
12
13
|
this.guidelines = [];
|
|
13
14
|
// Use provided ID or generate a deterministic one
|
|
@@ -22,6 +23,8 @@ export class Step {
|
|
|
22
23
|
this.prepare = options.prepare;
|
|
23
24
|
this.finalize = options.finalize;
|
|
24
25
|
this.tools = options.tools;
|
|
26
|
+
// Store reference to parent agent for ToolManager access
|
|
27
|
+
this.parentAgent = parentAgent;
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
30
|
* Configure the step properties after creation
|
|
@@ -78,7 +81,7 @@ export class Step {
|
|
|
78
81
|
const endStep = new Step(this.routeId, {
|
|
79
82
|
...spec,
|
|
80
83
|
id: END_ROUTE_ID,
|
|
81
|
-
});
|
|
84
|
+
}, this.parentAgent);
|
|
82
85
|
this.nextSteps.push(endStep);
|
|
83
86
|
return this.createTerminalRef();
|
|
84
87
|
}
|
|
@@ -89,7 +92,7 @@ export class Step {
|
|
|
89
92
|
// This part might need to be revisited.
|
|
90
93
|
}
|
|
91
94
|
// Create new target step for prompt or tool
|
|
92
|
-
const targetStep = new Step(this.routeId, spec);
|
|
95
|
+
const targetStep = new Step(this.routeId, spec, this.parentAgent);
|
|
93
96
|
this.nextSteps.push(targetStep);
|
|
94
97
|
return this.createStepRefWithTransition(targetStep.getRef(), targetStep);
|
|
95
98
|
}
|
|
@@ -107,7 +110,7 @@ export class Step {
|
|
|
107
110
|
? { ...branchSpec.step, id: branchSpec.id }
|
|
108
111
|
: branchSpec.step;
|
|
109
112
|
// Create a new step for this branch
|
|
110
|
-
const branchStep = new Step(this.routeId, stepOptions);
|
|
113
|
+
const branchStep = new Step(this.routeId, stepOptions, this.parentAgent);
|
|
111
114
|
// Add it to our transitions
|
|
112
115
|
this.nextSteps.push(branchStep);
|
|
113
116
|
// Create a step result for chaining
|
|
@@ -128,6 +131,147 @@ export class Step {
|
|
|
128
131
|
getGuidelines() {
|
|
129
132
|
return [...this.guidelines];
|
|
130
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Add a tool to this step using the unified Tool interface
|
|
136
|
+
* Creates and adds the tool to step scope in one operation
|
|
137
|
+
*/
|
|
138
|
+
addTool(tool) {
|
|
139
|
+
// Validate tool before adding
|
|
140
|
+
if (!tool || !tool.id || !tool.handler) {
|
|
141
|
+
throw new Error('Invalid tool: must have id and handler properties');
|
|
142
|
+
}
|
|
143
|
+
// Add to step's tools array
|
|
144
|
+
if (!this.tools) {
|
|
145
|
+
this.tools = [];
|
|
146
|
+
}
|
|
147
|
+
this.tools.push(tool);
|
|
148
|
+
return this;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Resolve tool references in the tools array
|
|
152
|
+
* Supports both string IDs (resolved from registry) and inline tool objects
|
|
153
|
+
*/
|
|
154
|
+
resolveTools() {
|
|
155
|
+
if (!this.tools) {
|
|
156
|
+
return [];
|
|
157
|
+
}
|
|
158
|
+
const resolvedTools = [];
|
|
159
|
+
for (const toolRef of this.tools) {
|
|
160
|
+
if (typeof toolRef === 'string') {
|
|
161
|
+
// Tool ID - try to resolve from ToolManager using proper scope resolution
|
|
162
|
+
if (this.parentAgent?.tool) {
|
|
163
|
+
const registeredTool = this.parentAgent.tool.find(toolRef);
|
|
164
|
+
if (registeredTool) {
|
|
165
|
+
resolvedTools.push(registeredTool);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
// Tool not found - log warning but don't fail
|
|
169
|
+
console.warn(`[Step] Tool ID '${toolRef}' not found in any scope for step ${this.id}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
console.warn(`[Step] No parent agent available to resolve tool ID '${toolRef}' for step ${this.id}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// Inline tool object - validate and use directly
|
|
178
|
+
if (toolRef && toolRef.id && typeof toolRef.handler === 'function') {
|
|
179
|
+
resolvedTools.push(toolRef);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
console.warn(`[Step] Invalid inline tool object in step ${this.id}:`, toolRef);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return resolvedTools;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get all tools available to this step (both inline and resolved from registry)
|
|
190
|
+
*/
|
|
191
|
+
getAvailableTools() {
|
|
192
|
+
return this.tools ? [...this.tools] : [];
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get all resolved tools available to this step using ToolManager
|
|
196
|
+
* This method provides the complete set of tools accessible from this step
|
|
197
|
+
*/
|
|
198
|
+
getAllAvailableTools() {
|
|
199
|
+
if (!this.parentAgent?.tool) {
|
|
200
|
+
// Fallback to local resolution if no ToolManager available
|
|
201
|
+
return this.resolveTools();
|
|
202
|
+
}
|
|
203
|
+
// Use ToolManager to get all available tools for this step context
|
|
204
|
+
return this.parentAgent.tool.getAvailable(ToolScope.ALL, this, undefined);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Find a specific tool by ID using ToolManager resolution
|
|
208
|
+
* This method respects the tool resolution hierarchy: step → route → agent → registry
|
|
209
|
+
*/
|
|
210
|
+
findTool(toolId, scope) {
|
|
211
|
+
if (!this.parentAgent?.tool) {
|
|
212
|
+
// Fallback to local resolution if no ToolManager available
|
|
213
|
+
const resolved = this.resolveTools();
|
|
214
|
+
return resolved.find(tool => tool.id === toolId || tool.name === toolId);
|
|
215
|
+
}
|
|
216
|
+
// Use ToolManager to find the tool with proper scope resolution
|
|
217
|
+
return this.parentAgent.tool.find(toolId, scope || ToolScope.ALL, this, undefined);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Get tools from a specific scope
|
|
221
|
+
*/
|
|
222
|
+
getToolsFromScope(scope) {
|
|
223
|
+
if (!this.parentAgent?.tool) {
|
|
224
|
+
// Fallback to local resolution if no ToolManager available
|
|
225
|
+
return scope === ToolScope.STEP ? this.resolveTools() : [];
|
|
226
|
+
}
|
|
227
|
+
return this.parentAgent.tool.getAvailable(scope, this, undefined);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get only step-level tools (inline tools in this step)
|
|
231
|
+
*/
|
|
232
|
+
getStepTools() {
|
|
233
|
+
return this.getToolsFromScope(ToolScope.STEP);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Get only registered tools accessible from this step
|
|
237
|
+
*/
|
|
238
|
+
getRegisteredTools() {
|
|
239
|
+
return this.getToolsFromScope(ToolScope.REGISTERED);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Validate that all tool references in this step can be resolved
|
|
243
|
+
* Returns validation result with details about missing tools
|
|
244
|
+
*/
|
|
245
|
+
validateToolReferences() {
|
|
246
|
+
if (!this.tools || this.tools.length === 0) {
|
|
247
|
+
return { valid: true, missing: [], found: [], details: [] };
|
|
248
|
+
}
|
|
249
|
+
// Extract tool IDs from the tools array
|
|
250
|
+
const toolIds = [];
|
|
251
|
+
for (const toolRef of this.tools) {
|
|
252
|
+
if (typeof toolRef === 'string') {
|
|
253
|
+
toolIds.push(toolRef);
|
|
254
|
+
}
|
|
255
|
+
else if (toolRef && toolRef.id) {
|
|
256
|
+
toolIds.push(toolRef.id);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
if (!this.parentAgent?.tool) {
|
|
260
|
+
// Fallback validation without ToolManager
|
|
261
|
+
const resolved = this.resolveTools();
|
|
262
|
+
const resolvedIds = resolved.map(tool => tool.id);
|
|
263
|
+
const missing = toolIds.filter(id => !resolvedIds.includes(id));
|
|
264
|
+
const found = toolIds.filter(id => resolvedIds.includes(id));
|
|
265
|
+
return {
|
|
266
|
+
valid: missing.length === 0,
|
|
267
|
+
missing,
|
|
268
|
+
found,
|
|
269
|
+
details: toolIds.map(id => ({ id, found: resolvedIds.includes(id) }))
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
// Use ToolManager validation
|
|
273
|
+
return this.parentAgent.tool.validateToolReferences(toolIds, this);
|
|
274
|
+
}
|
|
131
275
|
/**
|
|
132
276
|
* Get all transitions from this step
|
|
133
277
|
*/
|
|
@@ -168,6 +312,7 @@ export class Step {
|
|
|
168
312
|
...ref,
|
|
169
313
|
nextStep: (spec) => stepInstance.nextStep(spec),
|
|
170
314
|
branch: (branches) => stepInstance.branch(branches),
|
|
315
|
+
endRoute: (options) => stepInstance.endRoute(options),
|
|
171
316
|
};
|
|
172
317
|
}
|
|
173
318
|
/**
|
|
@@ -186,6 +331,7 @@ export class Step {
|
|
|
186
331
|
branch: () => {
|
|
187
332
|
throw new Error("Cannot branch from END_ROUTE step");
|
|
188
333
|
},
|
|
334
|
+
endRoute: (options) => this.endRoute(options),
|
|
189
335
|
};
|
|
190
336
|
}
|
|
191
337
|
/**
|
|
@@ -196,6 +342,7 @@ export class Step {
|
|
|
196
342
|
...this.getRef(),
|
|
197
343
|
nextStep: (spec) => this.nextStep(spec),
|
|
198
344
|
branch: (branches) => this.branch(branches),
|
|
345
|
+
endRoute: (options) => this.endRoute(options),
|
|
199
346
|
};
|
|
200
347
|
}
|
|
201
348
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Step.js","sourceRoot":"","sources":["../../../src/core/Step.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"Step.js","sourceRoot":"","sources":["../../../src/core/Step.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAO,IAAI;IAwBf,YACE,OAAe,EACf,UAAwC,EAAE,EAC1C,WAAoC;QAzB9B,cAAS,GAA4B,EAAE,CAAC;QACxC,eAAU,GAA0B,EAAE,CAAC;QA0B7C,kDAAkD;QAClD,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAEvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE3B,yDAAyD;QACzD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,MAeT;QACC,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACxC,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAChC,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClC,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CACN,UAAsD,EAAE;QAExD,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnB,GAAG,OAAO;YACV,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAAkC;QACzC,mBAAmB;QACnB,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1E,MAAM,OAAO,GAAG,IAAI,IAAI,CAAkB,IAAI,CAAC,OAAO,EAAE;gBACtD,GAAG,IAAI;gBACP,EAAE,EAAE,YAAY;aACjB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/C,kEAAkE;YAClE,wEAAwE;YACxE,wCAAwC;QAC1C,CAAC;QAED,4CAA4C;QAC5C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAkB,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACnF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACJ,QAAuC;QAEvC,MAAM,MAAM,GAAG,EAAmC,CAAC;QAEnD,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;YAClC,uCAAuC;YACvC,MAAM,WAAW,GAAiC,UAAU,CAAC,EAAE;gBAC7D,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE;gBAC3C,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAEpB,oCAAoC;YACpC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAkB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1F,4BAA4B;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,oCAAoC;YACpC,MAAM,UAAU,GAAW,UAAU,CAAC,IAAI,CAAC;YAC3C,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,2BAA2B,CACnD,UAAU,CAAC,MAAM,EAAE,EACnB,UAAU,CACX,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAA8B;QACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,OAAO,CACL,IAA2B;QAE3B,8BAA8B;QAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,aAAa,GAA4B,EAAE,CAAC;QAElD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,0EAA0E;gBAC1E,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;oBAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3D,IAAI,cAAc,EAAE,CAAC;wBACnB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACN,8CAA8C;wBAC9C,OAAO,CAAC,IAAI,CAAC,mBAAmB,OAAO,qCAAqC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzF,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,wDAAwD,OAAO,cAAc,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,iDAAiD;gBACjD,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACnE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,6CAA6C,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAC5B,2DAA2D;YAC3D,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7B,CAAC;QAED,mEAAmE;QACnE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,MAAc,EAAE,KAAiB;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAC5B,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC3E,CAAC;QAED,gEAAgE;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAgB;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAC5B,2DAA2D;YAC3D,OAAO,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,sBAAsB;QAMpB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC9D,CAAC;QAED,wCAAwC;QACxC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;iBAAM,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAC5B,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7D,OAAO;gBACL,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;gBAC3B,OAAO;gBACP,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACtE,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAoB;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAoB;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9D,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,2BAA2B,CACjC,GAAY,EACZ,IAA4B;QAE5B,MAAM,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC;QAElC,OAAO;YACL,GAAG,GAAG;YACN,QAAQ,EAAE,CAAC,IAAkC,EAAE,EAAE,CAC/C,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC7B,MAAM,EAAE,CAAC,QAAuC,EAAE,EAAE,CAClD,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC/B,QAAQ,EAAE,CAAC,OAAoD,EAAE,EAAE,CACjE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;SACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,WAAW,GAAY;YAC3B,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,OAAO;YACL,GAAG,WAAW;YACd,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YACD,QAAQ,EAAE,CAAC,OAAoD,EAAE,EAAE,CACjE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE;YAChB,QAAQ,EAAE,CAAC,IAAkC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrE,MAAM,EAAE,CAAC,QAAuC,EAAE,EAAE,CAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvB,QAAQ,EAAE,CAAC,OAAoD,EAAE,EAAE,CACjE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SACzB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ToolManager - Centralized tool management with simplified creation APIs
|
|
3
|
+
*/
|
|
4
|
+
import type { Tool, ToolExecutionResult, DataEnrichmentConfig, ValidationConfig, ValidationResult, ApiCallConfig, ComputationConfig, Event } from "../types";
|
|
5
|
+
import { ToolScope } from "../types";
|
|
6
|
+
import { Agent } from "./Agent";
|
|
7
|
+
import { Route } from "./Route";
|
|
8
|
+
import { Step } from "./Step";
|
|
9
|
+
/**
|
|
10
|
+
* Error thrown when tool creation fails
|
|
11
|
+
*/
|
|
12
|
+
export declare class ToolCreationError extends Error {
|
|
13
|
+
readonly toolId: string;
|
|
14
|
+
readonly cause?: Error | undefined;
|
|
15
|
+
constructor(message: string, toolId: string, cause?: Error | undefined);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Error thrown when tool execution fails
|
|
19
|
+
*/
|
|
20
|
+
export declare class ToolExecutionError extends Error {
|
|
21
|
+
readonly toolId: string;
|
|
22
|
+
readonly executionContext?: Record<string, unknown> | undefined;
|
|
23
|
+
readonly cause?: Error | undefined;
|
|
24
|
+
constructor(message: string, toolId: string, executionContext?: Record<string, unknown> | undefined, cause?: Error | undefined);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* ToolManager - Centralized tool management with simplified APIs
|
|
28
|
+
*/
|
|
29
|
+
export declare class ToolManager<TContext = unknown, TData = unknown> {
|
|
30
|
+
private agent;
|
|
31
|
+
private toolRegistry;
|
|
32
|
+
constructor(agent: Agent<TContext, TData>);
|
|
33
|
+
/**
|
|
34
|
+
* Validate a tool definition for completeness and correctness
|
|
35
|
+
*/
|
|
36
|
+
private validateToolDefinition;
|
|
37
|
+
/**
|
|
38
|
+
* Validate data enrichment configuration
|
|
39
|
+
*/
|
|
40
|
+
private validateDataEnrichmentConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Validate validation configuration
|
|
43
|
+
*/
|
|
44
|
+
private validateValidationConfig;
|
|
45
|
+
/**
|
|
46
|
+
* Validate API call configuration
|
|
47
|
+
*/
|
|
48
|
+
private validateApiCallConfig;
|
|
49
|
+
/**
|
|
50
|
+
* Validate computation configuration
|
|
51
|
+
*/
|
|
52
|
+
private validateComputationConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Create a tool instance with type inference from parent Agent
|
|
55
|
+
* Does not register the tool anywhere - just creates it
|
|
56
|
+
*/
|
|
57
|
+
create(definition: Tool<TContext, TData>): Tool<TContext, TData>;
|
|
58
|
+
/**
|
|
59
|
+
* Register a tool in the registry for later reference by ID
|
|
60
|
+
* Can accept a tool instance
|
|
61
|
+
*/
|
|
62
|
+
register(tool: Tool<TContext, TData>): Tool<TContext, TData>;
|
|
63
|
+
/**
|
|
64
|
+
* Register multiple tools at once
|
|
65
|
+
*/
|
|
66
|
+
registerMany(tools: Array<Tool<TContext, TData>>): Tool<TContext, TData>[];
|
|
67
|
+
/**
|
|
68
|
+
* Get a registered tool by ID
|
|
69
|
+
*/
|
|
70
|
+
getRegisteredTool(toolId: string): Tool<TContext, TData> | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Get all registered tools
|
|
73
|
+
*/
|
|
74
|
+
getAllRegistered(): Map<string, Tool<TContext, TData>>;
|
|
75
|
+
/**
|
|
76
|
+
* Check if a tool is registered
|
|
77
|
+
*/
|
|
78
|
+
isRegistered(toolId: string): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Get all registered tool IDs
|
|
81
|
+
*/
|
|
82
|
+
getRegisteredIds(): string[];
|
|
83
|
+
/**
|
|
84
|
+
* Get tool by ID from a specific scope
|
|
85
|
+
*/
|
|
86
|
+
getFromScope(toolId: string, scope: ToolScope, step?: Step<TContext, TData>, route?: Route<TContext, TData>): Tool<TContext, TData> | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* Check if a tool exists in any scope
|
|
89
|
+
*/
|
|
90
|
+
exists(toolId: string, step?: Step<TContext, TData>, route?: Route<TContext, TData>): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Get tool count by scope
|
|
93
|
+
*/
|
|
94
|
+
getToolCount(scope?: ToolScope, step?: Step<TContext, TData>, route?: Route<TContext, TData>): number;
|
|
95
|
+
/**
|
|
96
|
+
* Clear all registered tools
|
|
97
|
+
*/
|
|
98
|
+
clearRegistry(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Remove a tool from registry
|
|
101
|
+
*/
|
|
102
|
+
unregister(toolId: string): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Add a tool to the agent scope (creates and adds in one operation)
|
|
105
|
+
*/
|
|
106
|
+
addToAgent(tool: Tool<TContext, TData>): Tool<TContext, TData>;
|
|
107
|
+
/**
|
|
108
|
+
* Add a tool to a specific route scope (creates and adds in one operation)
|
|
109
|
+
*/
|
|
110
|
+
addToRoute(route: Route<TContext, TData>, tool: Tool<TContext, TData>): Tool<TContext, TData>;
|
|
111
|
+
/**
|
|
112
|
+
* Find a tool by ID across different scopes with enhanced resolution logic
|
|
113
|
+
* Priority: step → route → agent → registry
|
|
114
|
+
* Supports both ID and name matching for better compatibility
|
|
115
|
+
*/
|
|
116
|
+
find(toolId: string, scope?: ToolScope, step?: Step<TContext, TData>, route?: Route<TContext, TData>): Tool<TContext, TData> | undefined;
|
|
117
|
+
/**
|
|
118
|
+
* Get available tools for current context with enhanced resolution and deduplication
|
|
119
|
+
* Returns tools in priority order with higher-priority scopes taking precedence
|
|
120
|
+
*/
|
|
121
|
+
getAvailable(scope?: ToolScope, step?: Step<TContext, TData>, route?: Route<TContext, TData>): Tool<TContext, TData>[];
|
|
122
|
+
/**
|
|
123
|
+
* Execute a tool by ID with proper error handling and fallback strategies
|
|
124
|
+
* Consolidates tool execution logic from ToolExecutor and ResponseModal
|
|
125
|
+
*/
|
|
126
|
+
execute(toolId: string, args?: Record<string, unknown>, context?: {
|
|
127
|
+
step?: Step<TContext, TData>;
|
|
128
|
+
route?: Route<TContext, TData>;
|
|
129
|
+
context?: TContext;
|
|
130
|
+
data?: Partial<TData>;
|
|
131
|
+
history?: Event[];
|
|
132
|
+
updateContext?: (updates: Partial<TContext>) => Promise<void>;
|
|
133
|
+
updateData?: (updates: Partial<TData>) => Promise<void>;
|
|
134
|
+
fallbackTools?: string[];
|
|
135
|
+
retryCount?: number;
|
|
136
|
+
}): Promise<ToolExecutionResult>;
|
|
137
|
+
/**
|
|
138
|
+
* Determine if an error is transient and should be retried
|
|
139
|
+
*/
|
|
140
|
+
private isTransientError;
|
|
141
|
+
/**
|
|
142
|
+
* Execute a single tool with context and collected data
|
|
143
|
+
* Consolidates logic from ToolExecutor class with enhanced error handling
|
|
144
|
+
*/
|
|
145
|
+
executeTool(params: {
|
|
146
|
+
tool: Tool<TContext, TData>;
|
|
147
|
+
context: TContext;
|
|
148
|
+
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
149
|
+
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
150
|
+
history: Event[];
|
|
151
|
+
data?: Partial<TData>;
|
|
152
|
+
toolArguments?: Record<string, unknown>;
|
|
153
|
+
}): Promise<ToolExecutionResult>;
|
|
154
|
+
/**
|
|
155
|
+
* Execute multiple tools in sequence
|
|
156
|
+
* Consolidates logic from ToolExecutor class
|
|
157
|
+
*/
|
|
158
|
+
executeTools(params: {
|
|
159
|
+
tools: Array<Tool<TContext, TData>>;
|
|
160
|
+
context: TContext;
|
|
161
|
+
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
162
|
+
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
163
|
+
history: Event[];
|
|
164
|
+
data?: Partial<TData>;
|
|
165
|
+
}): Promise<ToolExecutionResult[]>;
|
|
166
|
+
/**
|
|
167
|
+
* Create a data enrichment tool that modifies collected data
|
|
168
|
+
* Returns a tool instance that can be registered or added to scope
|
|
169
|
+
*/
|
|
170
|
+
createDataEnrichment<TFields extends keyof TData>(config: DataEnrichmentConfig<TContext, TData, TFields>): Tool<TContext, TData, void>;
|
|
171
|
+
/**
|
|
172
|
+
* Create a validation tool that validates data fields
|
|
173
|
+
* Returns a tool instance that can be registered or added to scope
|
|
174
|
+
*/
|
|
175
|
+
createValidation<TFields extends keyof TData>(config: ValidationConfig<TContext, TData, TFields>): Tool<TContext, TData, ValidationResult>;
|
|
176
|
+
/**
|
|
177
|
+
* Create an API call tool that makes external HTTP requests
|
|
178
|
+
* Returns a tool instance that can be registered or added to scope
|
|
179
|
+
*/
|
|
180
|
+
createApiCall<TResult = unknown>(config: ApiCallConfig<TContext, TData, TResult>): Tool<TContext, TData, TResult>;
|
|
181
|
+
/**
|
|
182
|
+
* Create a computation tool that performs calculations on input data
|
|
183
|
+
* Returns a tool instance that can be registered or added to scope
|
|
184
|
+
*/
|
|
185
|
+
createComputation<TResult = unknown>(config: ComputationConfig<TContext, TData, TResult>): Tool<TContext, TData, TResult>;
|
|
186
|
+
/**
|
|
187
|
+
* Get detailed information about a tool for debugging
|
|
188
|
+
*/
|
|
189
|
+
getToolInfo(toolId: string, scope?: ToolScope, step?: Step<TContext, TData>, route?: Route<TContext, TData>): {
|
|
190
|
+
found: boolean;
|
|
191
|
+
tool?: Tool<TContext, TData>;
|
|
192
|
+
scope?: string;
|
|
193
|
+
metadata?: Record<string, unknown>;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Validate that all tools in a list exist and are accessible
|
|
197
|
+
*/
|
|
198
|
+
validateToolReferences(toolIds: string[], step?: Step<TContext, TData>, route?: Route<TContext, TData>): {
|
|
199
|
+
valid: boolean;
|
|
200
|
+
missing: string[];
|
|
201
|
+
found: string[];
|
|
202
|
+
details: Array<{
|
|
203
|
+
id: string;
|
|
204
|
+
found: boolean;
|
|
205
|
+
scope?: string;
|
|
206
|
+
}>;
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Get comprehensive statistics about the tool system
|
|
210
|
+
*/
|
|
211
|
+
getStatistics(): {
|
|
212
|
+
registeredTools: number;
|
|
213
|
+
agentTools: number;
|
|
214
|
+
totalAvailable: number;
|
|
215
|
+
registeredToolIds: string[];
|
|
216
|
+
duplicateIds: string[];
|
|
217
|
+
};
|
|
218
|
+
/**
|
|
219
|
+
* Perform health check on the tool system
|
|
220
|
+
*/
|
|
221
|
+
healthCheck(): {
|
|
222
|
+
healthy: boolean;
|
|
223
|
+
issues: string[];
|
|
224
|
+
warnings: string[];
|
|
225
|
+
statistics: {
|
|
226
|
+
registeredTools: number;
|
|
227
|
+
agentTools: number;
|
|
228
|
+
totalAvailable: number;
|
|
229
|
+
registeredToolIds: string[];
|
|
230
|
+
duplicateIds: string[];
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=ToolManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolManager.d.ts","sourceRoot":"","sources":["../../../src/core/ToolManager.ts"],"names":[],"mappings":"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"}
|