@falai/agent 0.9.0 → 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 +19 -5
- package/dist/cjs/src/core/Agent.d.ts.map +1 -1
- package/dist/cjs/src/core/Agent.js +79 -35
- package/dist/cjs/src/core/Agent.js.map +1 -1
- package/dist/cjs/src/core/ResponseModal.d.ts +9 -3
- package/dist/cjs/src/core/ResponseModal.d.ts.map +1 -1
- package/dist/cjs/src/core/ResponseModal.js +121 -55
- package/dist/cjs/src/core/ResponseModal.js.map +1 -1
- 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 +47 -19
- 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 +2 -3
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +5 -3
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/types/agent.d.ts +1 -1
- package/dist/cjs/src/types/agent.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/src/core/Agent.d.ts +19 -5
- package/dist/src/core/Agent.d.ts.map +1 -1
- package/dist/src/core/Agent.js +79 -35
- package/dist/src/core/Agent.js.map +1 -1
- package/dist/src/core/ResponseModal.d.ts +9 -3
- package/dist/src/core/ResponseModal.d.ts.map +1 -1
- package/dist/src/core/ResponseModal.js +121 -55
- package/dist/src/core/ResponseModal.js.map +1 -1
- 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 +47 -19
- 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 +2 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/types/agent.d.ts +1 -1
- package/dist/src/types/agent.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/docs/CONTRIBUTING.md +40 -0
- package/docs/README.md +12 -5
- package/docs/api/README.md +75 -45
- package/docs/api/overview.md +74 -32
- 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/examples/advanced-patterns/knowledge-based-agent.ts +6 -6
- package/examples/advanced-patterns/persistent-onboarding.ts +30 -43
- 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/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 +98 -44
- package/src/core/ResponseModal.ts +148 -72
- package/src/core/ResponsePipeline.ts +82 -56
- 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 +8 -3
- package/src/types/agent.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/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/src/core/ToolExecutor.ts
DELETED
|
@@ -1,126 +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
|
-
|
|
8
|
-
import type { Event, Tool, ToolContext } from "../types";
|
|
9
|
-
|
|
10
|
-
export interface ToolExecutionResult {
|
|
11
|
-
toolName: string;
|
|
12
|
-
success: boolean;
|
|
13
|
-
data?: unknown;
|
|
14
|
-
contextUpdate?: Record<string, unknown>;
|
|
15
|
-
dataUpdate?: Record<string, unknown>;
|
|
16
|
-
error?: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface ExecuteToolParams<TContext = unknown, TData = unknown> {
|
|
20
|
-
tool: Tool<TContext, TData, unknown[], unknown>;
|
|
21
|
-
context: TContext;
|
|
22
|
-
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
23
|
-
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
24
|
-
history: Event[];
|
|
25
|
-
data?: Partial<TData>;
|
|
26
|
-
toolArguments?: Record<string, unknown>;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface ExecuteToolsParams<TContext = unknown, TData = unknown> {
|
|
30
|
-
tools: Array<Tool<TContext, TData, unknown[], unknown>>;
|
|
31
|
-
context: TContext;
|
|
32
|
-
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
33
|
-
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
34
|
-
history: Event[];
|
|
35
|
-
data?: Partial<TData>;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export class ToolExecutor<TContext = unknown, TData = unknown> {
|
|
39
|
-
/**
|
|
40
|
-
* Execute a single tool with context and collected data
|
|
41
|
-
* @param params - Execution parameters
|
|
42
|
-
*/
|
|
43
|
-
async executeTool(
|
|
44
|
-
params: ExecuteToolParams<TContext, TData>
|
|
45
|
-
): Promise<ToolExecutionResult> {
|
|
46
|
-
const { tool, context, updateContext, updateData, history, data, toolArguments } =
|
|
47
|
-
params;
|
|
48
|
-
try {
|
|
49
|
-
// Build tool context with complete agent data
|
|
50
|
-
const toolContext: ToolContext<TContext, TData> = {
|
|
51
|
-
context,
|
|
52
|
-
updateContext,
|
|
53
|
-
updateData,
|
|
54
|
-
history,
|
|
55
|
-
data,
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
// Execute tool
|
|
59
|
-
const result = await tool.handler(toolContext, toolArguments);
|
|
60
|
-
|
|
61
|
-
// Apply data updates from tool result
|
|
62
|
-
if (result.dataUpdate) {
|
|
63
|
-
await updateData(result.dataUpdate);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Return execution result
|
|
67
|
-
return {
|
|
68
|
-
toolName: tool.id || "unknown",
|
|
69
|
-
success: true,
|
|
70
|
-
data: result.data,
|
|
71
|
-
contextUpdate: result.contextUpdate,
|
|
72
|
-
dataUpdate: result.dataUpdate,
|
|
73
|
-
};
|
|
74
|
-
} catch (error) {
|
|
75
|
-
return {
|
|
76
|
-
toolName: tool.id || "unknown",
|
|
77
|
-
success: false,
|
|
78
|
-
error: error instanceof Error ? error.message : String(error),
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Execute multiple tools in sequence
|
|
85
|
-
* @param params - Execution parameters
|
|
86
|
-
*/
|
|
87
|
-
async executeTools(
|
|
88
|
-
params: ExecuteToolsParams<TContext, TData>
|
|
89
|
-
): Promise<ToolExecutionResult[]> {
|
|
90
|
-
const { tools, context, updateContext, updateData, history, data } = params;
|
|
91
|
-
const results: ToolExecutionResult[] = [];
|
|
92
|
-
|
|
93
|
-
for (const tool of tools) {
|
|
94
|
-
const result = await this.executeTool({
|
|
95
|
-
tool,
|
|
96
|
-
context,
|
|
97
|
-
updateContext,
|
|
98
|
-
updateData,
|
|
99
|
-
history,
|
|
100
|
-
data,
|
|
101
|
-
});
|
|
102
|
-
results.push(result);
|
|
103
|
-
|
|
104
|
-
// If tool failed, stop execution chain
|
|
105
|
-
if (!result.success) {
|
|
106
|
-
console.error(
|
|
107
|
-
`[ToolExecutor] Tool ${tool.id || "unknown"} failed:`,
|
|
108
|
-
result.error
|
|
109
|
-
);
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Apply context updates from tool result
|
|
114
|
-
if (result.contextUpdate) {
|
|
115
|
-
await updateContext(result.contextUpdate as Partial<TContext>);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Apply data updates from tool result
|
|
119
|
-
if (result.dataUpdate) {
|
|
120
|
-
await updateData(result.dataUpdate as Partial<TData>);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return results;
|
|
125
|
-
}
|
|
126
|
-
}
|