@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/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
|
-
}
|