@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
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ToolExecutor - Simple utility for executing tools with context
|
|
3
|
-
*
|
|
4
|
-
* Tools execute BEFORE message generation to enrich context with data.
|
|
5
|
-
* The LLM sees the enriched context when generating responses.
|
|
6
|
-
*/
|
|
7
|
-
import type { Event, Tool } from "../types";
|
|
8
|
-
export interface ToolExecutionResult {
|
|
9
|
-
toolName: string;
|
|
10
|
-
success: boolean;
|
|
11
|
-
data?: unknown;
|
|
12
|
-
contextUpdate?: Record<string, unknown>;
|
|
13
|
-
dataUpdate?: Record<string, unknown>;
|
|
14
|
-
error?: string;
|
|
15
|
-
}
|
|
16
|
-
export interface ExecuteToolParams<TContext = unknown, TData = unknown> {
|
|
17
|
-
tool: Tool<TContext, TData, unknown[], unknown>;
|
|
18
|
-
context: TContext;
|
|
19
|
-
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
20
|
-
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
21
|
-
history: Event[];
|
|
22
|
-
data?: Partial<TData>;
|
|
23
|
-
toolArguments?: Record<string, unknown>;
|
|
24
|
-
}
|
|
25
|
-
export interface ExecuteToolsParams<TContext = unknown, TData = unknown> {
|
|
26
|
-
tools: Array<Tool<TContext, TData, unknown[], unknown>>;
|
|
27
|
-
context: TContext;
|
|
28
|
-
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
29
|
-
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
30
|
-
history: Event[];
|
|
31
|
-
data?: Partial<TData>;
|
|
32
|
-
}
|
|
33
|
-
export declare class ToolExecutor<TContext = unknown, TData = unknown> {
|
|
34
|
-
/**
|
|
35
|
-
* Execute a single tool with context and collected data
|
|
36
|
-
* @param params - Execution parameters
|
|
37
|
-
*/
|
|
38
|
-
executeTool(params: ExecuteToolParams<TContext, TData>): Promise<ToolExecutionResult>;
|
|
39
|
-
/**
|
|
40
|
-
* Execute multiple tools in sequence
|
|
41
|
-
* @param params - Execution parameters
|
|
42
|
-
*/
|
|
43
|
-
executeTools(params: ExecuteToolsParams<TContext, TData>): Promise<ToolExecutionResult[]>;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=ToolExecutor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolExecutor.d.ts","sourceRoot":"","sources":["../../../../src/core/ToolExecutor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAe,MAAM,UAAU,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACpE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,EAAE,QAAQ,CAAC;IAClB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACrE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,QAAQ,CAAC;IAClB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACvB;AAED,qBAAa,YAAY,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAC3D;;;OAGG;IACG,WAAW,CACf,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,GACzC,OAAO,CAAC,mBAAmB,CAAC;IAsC/B;;;OAGG;IACG,YAAY,CAChB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAC1C,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAqClC"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* ToolExecutor - Simple utility for executing tools with context
|
|
4
|
-
*
|
|
5
|
-
* Tools execute BEFORE message generation to enrich context with data.
|
|
6
|
-
* The LLM sees the enriched context when generating responses.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ToolExecutor = void 0;
|
|
10
|
-
class ToolExecutor {
|
|
11
|
-
/**
|
|
12
|
-
* Execute a single tool with context and collected data
|
|
13
|
-
* @param params - Execution parameters
|
|
14
|
-
*/
|
|
15
|
-
async executeTool(params) {
|
|
16
|
-
const { tool, context, updateContext, updateData, history, data, toolArguments } = params;
|
|
17
|
-
try {
|
|
18
|
-
// Build tool context with complete agent data
|
|
19
|
-
const toolContext = {
|
|
20
|
-
context,
|
|
21
|
-
updateContext,
|
|
22
|
-
updateData,
|
|
23
|
-
history,
|
|
24
|
-
data,
|
|
25
|
-
};
|
|
26
|
-
// Execute tool
|
|
27
|
-
const result = await tool.handler(toolContext, toolArguments);
|
|
28
|
-
// Apply data updates from tool result
|
|
29
|
-
if (result.dataUpdate) {
|
|
30
|
-
await updateData(result.dataUpdate);
|
|
31
|
-
}
|
|
32
|
-
// Return execution result
|
|
33
|
-
return {
|
|
34
|
-
toolName: tool.id || "unknown",
|
|
35
|
-
success: true,
|
|
36
|
-
data: result.data,
|
|
37
|
-
contextUpdate: result.contextUpdate,
|
|
38
|
-
dataUpdate: result.dataUpdate,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
return {
|
|
43
|
-
toolName: tool.id || "unknown",
|
|
44
|
-
success: false,
|
|
45
|
-
error: error instanceof Error ? error.message : String(error),
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Execute multiple tools in sequence
|
|
51
|
-
* @param params - Execution parameters
|
|
52
|
-
*/
|
|
53
|
-
async executeTools(params) {
|
|
54
|
-
const { tools, context, updateContext, updateData, history, data } = params;
|
|
55
|
-
const results = [];
|
|
56
|
-
for (const tool of tools) {
|
|
57
|
-
const result = await this.executeTool({
|
|
58
|
-
tool,
|
|
59
|
-
context,
|
|
60
|
-
updateContext,
|
|
61
|
-
updateData,
|
|
62
|
-
history,
|
|
63
|
-
data,
|
|
64
|
-
});
|
|
65
|
-
results.push(result);
|
|
66
|
-
// If tool failed, stop execution chain
|
|
67
|
-
if (!result.success) {
|
|
68
|
-
console.error(`[ToolExecutor] Tool ${tool.id || "unknown"} failed:`, result.error);
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
// Apply context updates from tool result
|
|
72
|
-
if (result.contextUpdate) {
|
|
73
|
-
await updateContext(result.contextUpdate);
|
|
74
|
-
}
|
|
75
|
-
// Apply data updates from tool result
|
|
76
|
-
if (result.dataUpdate) {
|
|
77
|
-
await updateData(result.dataUpdate);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return results;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.ToolExecutor = ToolExecutor;
|
|
84
|
-
//# sourceMappingURL=ToolExecutor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolExecutor.js","sourceRoot":"","sources":["../../../../src/core/ToolExecutor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAgCH,MAAa,YAAY;IACvB;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,MAA0C;QAE1C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAC9E,MAAM,CAAC;QACT,IAAI,CAAC;YACH,8CAA8C;YAC9C,MAAM,WAAW,GAAiC;gBAChD,OAAO;gBACP,aAAa;gBACb,UAAU;gBACV,OAAO;gBACP,IAAI;aACL,CAAC;YAEF,eAAe;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAE9D,sCAAsC;YACtC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,CAAC;YAED,0BAA0B;YAC1B,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS;gBAC9B,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAChB,MAA2C;QAE3C,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAC5E,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;gBACpC,IAAI;gBACJ,OAAO;gBACP,aAAa;gBACb,UAAU;gBACV,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,uCAAuC;YACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CACX,uBAAuB,IAAI,CAAC,EAAE,IAAI,SAAS,UAAU,EACrD,MAAM,CAAC,KAAK,CACb,CAAC;gBACF,MAAM;YACR,CAAC;YAED,yCAAyC;YACzC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,aAAa,CAAC,MAAM,CAAC,aAAkC,CAAC,CAAC;YACjE,CAAC;YAED,sCAAsC;YACtC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,UAAU,CAAC,MAAM,CAAC,UAA4B,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAxFD,oCAwFC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ToolExecutor - Simple utility for executing tools with context
|
|
3
|
-
*
|
|
4
|
-
* Tools execute BEFORE message generation to enrich context with data.
|
|
5
|
-
* The LLM sees the enriched context when generating responses.
|
|
6
|
-
*/
|
|
7
|
-
import type { Event, Tool } from "../types";
|
|
8
|
-
export interface ToolExecutionResult {
|
|
9
|
-
toolName: string;
|
|
10
|
-
success: boolean;
|
|
11
|
-
data?: unknown;
|
|
12
|
-
contextUpdate?: Record<string, unknown>;
|
|
13
|
-
dataUpdate?: Record<string, unknown>;
|
|
14
|
-
error?: string;
|
|
15
|
-
}
|
|
16
|
-
export interface ExecuteToolParams<TContext = unknown, TData = unknown> {
|
|
17
|
-
tool: Tool<TContext, TData, unknown[], unknown>;
|
|
18
|
-
context: TContext;
|
|
19
|
-
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
20
|
-
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
21
|
-
history: Event[];
|
|
22
|
-
data?: Partial<TData>;
|
|
23
|
-
toolArguments?: Record<string, unknown>;
|
|
24
|
-
}
|
|
25
|
-
export interface ExecuteToolsParams<TContext = unknown, TData = unknown> {
|
|
26
|
-
tools: Array<Tool<TContext, TData, unknown[], unknown>>;
|
|
27
|
-
context: TContext;
|
|
28
|
-
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
29
|
-
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
30
|
-
history: Event[];
|
|
31
|
-
data?: Partial<TData>;
|
|
32
|
-
}
|
|
33
|
-
export declare class ToolExecutor<TContext = unknown, TData = unknown> {
|
|
34
|
-
/**
|
|
35
|
-
* Execute a single tool with context and collected data
|
|
36
|
-
* @param params - Execution parameters
|
|
37
|
-
*/
|
|
38
|
-
executeTool(params: ExecuteToolParams<TContext, TData>): Promise<ToolExecutionResult>;
|
|
39
|
-
/**
|
|
40
|
-
* Execute multiple tools in sequence
|
|
41
|
-
* @param params - Execution parameters
|
|
42
|
-
*/
|
|
43
|
-
executeTools(params: ExecuteToolsParams<TContext, TData>): Promise<ToolExecutionResult[]>;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=ToolExecutor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/ToolExecutor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAe,MAAM,UAAU,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACpE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,EAAE,QAAQ,CAAC;IAClB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACrE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,QAAQ,CAAC;IAClB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACvB;AAED,qBAAa,YAAY,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAC3D;;;OAGG;IACG,WAAW,CACf,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,GACzC,OAAO,CAAC,mBAAmB,CAAC;IAsC/B;;;OAGG;IACG,YAAY,CAChB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAC1C,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAqClC"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ToolExecutor - Simple utility for executing tools with context
|
|
3
|
-
*
|
|
4
|
-
* Tools execute BEFORE message generation to enrich context with data.
|
|
5
|
-
* The LLM sees the enriched context when generating responses.
|
|
6
|
-
*/
|
|
7
|
-
export class ToolExecutor {
|
|
8
|
-
/**
|
|
9
|
-
* Execute a single tool with context and collected data
|
|
10
|
-
* @param params - Execution parameters
|
|
11
|
-
*/
|
|
12
|
-
async executeTool(params) {
|
|
13
|
-
const { tool, context, updateContext, updateData, history, data, toolArguments } = params;
|
|
14
|
-
try {
|
|
15
|
-
// Build tool context with complete agent data
|
|
16
|
-
const toolContext = {
|
|
17
|
-
context,
|
|
18
|
-
updateContext,
|
|
19
|
-
updateData,
|
|
20
|
-
history,
|
|
21
|
-
data,
|
|
22
|
-
};
|
|
23
|
-
// Execute tool
|
|
24
|
-
const result = await tool.handler(toolContext, toolArguments);
|
|
25
|
-
// Apply data updates from tool result
|
|
26
|
-
if (result.dataUpdate) {
|
|
27
|
-
await updateData(result.dataUpdate);
|
|
28
|
-
}
|
|
29
|
-
// Return execution result
|
|
30
|
-
return {
|
|
31
|
-
toolName: tool.id || "unknown",
|
|
32
|
-
success: true,
|
|
33
|
-
data: result.data,
|
|
34
|
-
contextUpdate: result.contextUpdate,
|
|
35
|
-
dataUpdate: result.dataUpdate,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
return {
|
|
40
|
-
toolName: tool.id || "unknown",
|
|
41
|
-
success: false,
|
|
42
|
-
error: error instanceof Error ? error.message : String(error),
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Execute multiple tools in sequence
|
|
48
|
-
* @param params - Execution parameters
|
|
49
|
-
*/
|
|
50
|
-
async executeTools(params) {
|
|
51
|
-
const { tools, context, updateContext, updateData, history, data } = params;
|
|
52
|
-
const results = [];
|
|
53
|
-
for (const tool of tools) {
|
|
54
|
-
const result = await this.executeTool({
|
|
55
|
-
tool,
|
|
56
|
-
context,
|
|
57
|
-
updateContext,
|
|
58
|
-
updateData,
|
|
59
|
-
history,
|
|
60
|
-
data,
|
|
61
|
-
});
|
|
62
|
-
results.push(result);
|
|
63
|
-
// If tool failed, stop execution chain
|
|
64
|
-
if (!result.success) {
|
|
65
|
-
console.error(`[ToolExecutor] Tool ${tool.id || "unknown"} failed:`, result.error);
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
// Apply context updates from tool result
|
|
69
|
-
if (result.contextUpdate) {
|
|
70
|
-
await updateContext(result.contextUpdate);
|
|
71
|
-
}
|
|
72
|
-
// Apply data updates from tool result
|
|
73
|
-
if (result.dataUpdate) {
|
|
74
|
-
await updateData(result.dataUpdate);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return results;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=ToolExecutor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolExecutor.js","sourceRoot":"","sources":["../../../src/core/ToolExecutor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgCH,MAAM,OAAO,YAAY;IACvB;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,MAA0C;QAE1C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAC9E,MAAM,CAAC;QACT,IAAI,CAAC;YACH,8CAA8C;YAC9C,MAAM,WAAW,GAAiC;gBAChD,OAAO;gBACP,aAAa;gBACb,UAAU;gBACV,OAAO;gBACP,IAAI;aACL,CAAC;YAEF,eAAe;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAE9D,sCAAsC;YACtC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,CAAC;YAED,0BAA0B;YAC1B,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS;gBAC9B,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAChB,MAA2C;QAE3C,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAC5E,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;gBACpC,IAAI;gBACJ,OAAO;gBACP,aAAa;gBACb,UAAU;gBACV,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,uCAAuC;YACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CACX,uBAAuB,IAAI,CAAC,EAAE,IAAI,SAAS,UAAU,EACrD,MAAM,CAAC,KAAK,CACb,CAAC;gBACF,MAAM;YACR,CAAC;YAED,yCAAyC;YACzC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,aAAa,CAAC,MAAM,CAAC,aAAkC,CAAC,CAAC;YACjE,CAAC;YAED,sCAAsC;YACtC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,UAAU,CAAC,MAAM,CAAC,UAA4B,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|