@falai/agent 0.1.0-alpha2
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 +797 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/src/adapters/MemoryAdapter.d.ts +47 -0
- package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/MemoryAdapter.js +202 -0
- package/dist/cjs/src/adapters/MemoryAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/MongoAdapter.d.ts +97 -0
- package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/MongoAdapter.js +168 -0
- package/dist/cjs/src/adapters/MongoAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts +169 -0
- package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/OpenSearchAdapter.js +458 -0
- package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts +71 -0
- package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/PostgreSQLAdapter.js +260 -0
- package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/PrismaAdapter.d.ts +115 -0
- package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/PrismaAdapter.js +366 -0
- package/dist/cjs/src/adapters/PrismaAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/RedisAdapter.d.ts +71 -0
- package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/RedisAdapter.js +231 -0
- package/dist/cjs/src/adapters/RedisAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/SQLiteAdapter.d.ts +69 -0
- package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/SQLiteAdapter.js +312 -0
- package/dist/cjs/src/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/index.d.ts +17 -0
- package/dist/cjs/src/adapters/index.d.ts.map +1 -0
- package/dist/cjs/src/adapters/index.js +21 -0
- package/dist/cjs/src/adapters/index.js.map +1 -0
- package/dist/cjs/src/constants/index.d.ts +10 -0
- package/dist/cjs/src/constants/index.d.ts.map +1 -0
- package/dist/cjs/src/constants/index.js +13 -0
- package/dist/cjs/src/constants/index.js.map +1 -0
- package/dist/cjs/src/core/Agent.d.ts +232 -0
- package/dist/cjs/src/core/Agent.d.ts.map +1 -0
- package/dist/cjs/src/core/Agent.js +741 -0
- package/dist/cjs/src/core/Agent.js.map +1 -0
- package/dist/cjs/src/core/Events.d.ts +26 -0
- package/dist/cjs/src/core/Events.d.ts.map +1 -0
- package/dist/cjs/src/core/Events.js +144 -0
- package/dist/cjs/src/core/Events.js.map +1 -0
- package/dist/cjs/src/core/PersistenceManager.d.ts +98 -0
- package/dist/cjs/src/core/PersistenceManager.d.ts.map +1 -0
- package/dist/cjs/src/core/PersistenceManager.js +261 -0
- package/dist/cjs/src/core/PersistenceManager.js.map +1 -0
- package/dist/cjs/src/core/PromptComposer.d.ts +27 -0
- package/dist/cjs/src/core/PromptComposer.d.ts.map +1 -0
- package/dist/cjs/src/core/PromptComposer.js +194 -0
- package/dist/cjs/src/core/PromptComposer.js.map +1 -0
- package/dist/cjs/src/core/ResponseEngine.d.ts +32 -0
- package/dist/cjs/src/core/ResponseEngine.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponseEngine.js +202 -0
- package/dist/cjs/src/core/ResponseEngine.js.map +1 -0
- package/dist/cjs/src/core/ResponseModal.d.ts +222 -0
- package/dist/cjs/src/core/ResponseModal.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponseModal.js +1588 -0
- package/dist/cjs/src/core/ResponseModal.js.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts +175 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.js +549 -0
- package/dist/cjs/src/core/ResponsePipeline.js.map +1 -0
- package/dist/cjs/src/core/Route.d.ts +181 -0
- package/dist/cjs/src/core/Route.d.ts.map +1 -0
- package/dist/cjs/src/core/Route.js +541 -0
- package/dist/cjs/src/core/Route.js.map +1 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts +159 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -0
- package/dist/cjs/src/core/RoutingEngine.js +961 -0
- package/dist/cjs/src/core/RoutingEngine.js.map +1 -0
- package/dist/cjs/src/core/SessionManager.d.ts +94 -0
- package/dist/cjs/src/core/SessionManager.d.ts.map +1 -0
- package/dist/cjs/src/core/SessionManager.js +239 -0
- package/dist/cjs/src/core/SessionManager.js.map +1 -0
- package/dist/cjs/src/core/Step.d.ts +170 -0
- package/dist/cjs/src/core/Step.d.ts.map +1 -0
- package/dist/cjs/src/core/Step.js +448 -0
- package/dist/cjs/src/core/Step.js.map +1 -0
- 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 +44 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js +88 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/providers/AnthropicProvider.d.ts +43 -0
- package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/cjs/src/providers/AnthropicProvider.js +377 -0
- package/dist/cjs/src/providers/AnthropicProvider.js.map +1 -0
- package/dist/cjs/src/providers/GeminiProvider.d.ts +58 -0
- package/dist/cjs/src/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/cjs/src/providers/GeminiProvider.js +489 -0
- package/dist/cjs/src/providers/GeminiProvider.js.map +1 -0
- package/dist/cjs/src/providers/OpenAIProvider.d.ts +52 -0
- package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/cjs/src/providers/OpenAIProvider.js +395 -0
- package/dist/cjs/src/providers/OpenAIProvider.js.map +1 -0
- package/dist/cjs/src/providers/OpenRouterProvider.d.ts +56 -0
- package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/cjs/src/providers/OpenRouterProvider.js +409 -0
- package/dist/cjs/src/providers/OpenRouterProvider.js.map +1 -0
- package/dist/cjs/src/providers/index.d.ts +13 -0
- package/dist/cjs/src/providers/index.d.ts.map +1 -0
- package/dist/cjs/src/providers/index.js +16 -0
- package/dist/cjs/src/providers/index.js.map +1 -0
- package/dist/cjs/src/types/agent.d.ts +181 -0
- package/dist/cjs/src/types/agent.d.ts.map +1 -0
- package/dist/cjs/src/types/agent.js +21 -0
- package/dist/cjs/src/types/agent.js.map +1 -0
- package/dist/cjs/src/types/ai.d.ts +143 -0
- package/dist/cjs/src/types/ai.d.ts.map +1 -0
- package/dist/cjs/src/types/ai.js +6 -0
- package/dist/cjs/src/types/ai.js.map +1 -0
- package/dist/cjs/src/types/history.d.ts +178 -0
- package/dist/cjs/src/types/history.d.ts.map +1 -0
- package/dist/cjs/src/types/history.js +33 -0
- package/dist/cjs/src/types/history.js.map +1 -0
- package/dist/cjs/src/types/index.d.ts +22 -0
- package/dist/cjs/src/types/index.d.ts.map +1 -0
- package/dist/cjs/src/types/index.js +37 -0
- package/dist/cjs/src/types/index.js.map +1 -0
- package/dist/cjs/src/types/persistence.d.ts +209 -0
- package/dist/cjs/src/types/persistence.d.ts.map +1 -0
- package/dist/cjs/src/types/persistence.js +7 -0
- package/dist/cjs/src/types/persistence.js.map +1 -0
- package/dist/cjs/src/types/route.d.ts +238 -0
- package/dist/cjs/src/types/route.d.ts.map +1 -0
- package/dist/cjs/src/types/route.js +6 -0
- package/dist/cjs/src/types/route.js.map +1 -0
- package/dist/cjs/src/types/routing.d.ts +16 -0
- package/dist/cjs/src/types/routing.d.ts.map +1 -0
- package/dist/cjs/src/types/routing.js +3 -0
- package/dist/cjs/src/types/routing.js.map +1 -0
- package/dist/cjs/src/types/schema.d.ts +22 -0
- package/dist/cjs/src/types/schema.d.ts.map +1 -0
- package/dist/cjs/src/types/schema.js +3 -0
- package/dist/cjs/src/types/schema.js.map +1 -0
- package/dist/cjs/src/types/session.d.ts +65 -0
- package/dist/cjs/src/types/session.d.ts.map +1 -0
- package/dist/cjs/src/types/session.js +6 -0
- package/dist/cjs/src/types/session.js.map +1 -0
- package/dist/cjs/src/types/template.d.ts +88 -0
- package/dist/cjs/src/types/template.d.ts.map +1 -0
- package/dist/cjs/src/types/template.js +3 -0
- package/dist/cjs/src/types/template.js.map +1 -0
- package/dist/cjs/src/types/tool.d.ts +130 -0
- package/dist/cjs/src/types/tool.d.ts.map +1 -0
- package/dist/cjs/src/types/tool.js +19 -0
- package/dist/cjs/src/types/tool.js.map +1 -0
- package/dist/cjs/src/utils/clone.d.ts +8 -0
- package/dist/cjs/src/utils/clone.d.ts.map +1 -0
- package/dist/cjs/src/utils/clone.js +32 -0
- package/dist/cjs/src/utils/clone.js.map +1 -0
- package/dist/cjs/src/utils/condition.d.ts +38 -0
- package/dist/cjs/src/utils/condition.d.ts.map +1 -0
- package/dist/cjs/src/utils/condition.js +168 -0
- package/dist/cjs/src/utils/condition.js.map +1 -0
- package/dist/cjs/src/utils/event.d.ts +6 -0
- package/dist/cjs/src/utils/event.d.ts.map +1 -0
- package/dist/cjs/src/utils/event.js +20 -0
- package/dist/cjs/src/utils/event.js.map +1 -0
- package/dist/cjs/src/utils/history.d.ts +60 -0
- package/dist/cjs/src/utils/history.d.ts.map +1 -0
- package/dist/cjs/src/utils/history.js +274 -0
- package/dist/cjs/src/utils/history.js.map +1 -0
- package/dist/cjs/src/utils/id.d.ts +25 -0
- package/dist/cjs/src/utils/id.d.ts.map +1 -0
- package/dist/cjs/src/utils/id.js +70 -0
- package/dist/cjs/src/utils/id.js.map +1 -0
- package/dist/cjs/src/utils/index.d.ts +15 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -0
- package/dist/cjs/src/utils/index.js +64 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/cjs/src/utils/json.d.ts +16 -0
- package/dist/cjs/src/utils/json.d.ts.map +1 -0
- package/dist/cjs/src/utils/json.js +47 -0
- package/dist/cjs/src/utils/json.js.map +1 -0
- package/dist/cjs/src/utils/logger.d.ts +10 -0
- package/dist/cjs/src/utils/logger.d.ts.map +1 -0
- package/dist/cjs/src/utils/logger.js +23 -0
- package/dist/cjs/src/utils/logger.js.map +1 -0
- package/dist/cjs/src/utils/retry.d.ts +10 -0
- package/dist/cjs/src/utils/retry.d.ts.map +1 -0
- package/dist/cjs/src/utils/retry.js +76 -0
- package/dist/cjs/src/utils/retry.js.map +1 -0
- package/dist/cjs/src/utils/session.d.ts +51 -0
- package/dist/cjs/src/utils/session.d.ts.map +1 -0
- package/dist/cjs/src/utils/session.js +170 -0
- package/dist/cjs/src/utils/session.js.map +1 -0
- package/dist/cjs/src/utils/template.d.ts +155 -0
- package/dist/cjs/src/utils/template.d.ts.map +1 -0
- package/dist/cjs/src/utils/template.js +383 -0
- package/dist/cjs/src/utils/template.js.map +1 -0
- package/dist/src/adapters/MemoryAdapter.d.ts +47 -0
- package/dist/src/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/src/adapters/MemoryAdapter.js +198 -0
- package/dist/src/adapters/MemoryAdapter.js.map +1 -0
- package/dist/src/adapters/MongoAdapter.d.ts +97 -0
- package/dist/src/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/src/adapters/MongoAdapter.js +164 -0
- package/dist/src/adapters/MongoAdapter.js.map +1 -0
- package/dist/src/adapters/OpenSearchAdapter.d.ts +169 -0
- package/dist/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/src/adapters/OpenSearchAdapter.js +454 -0
- package/dist/src/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/src/adapters/PostgreSQLAdapter.d.ts +71 -0
- package/dist/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/src/adapters/PostgreSQLAdapter.js +256 -0
- package/dist/src/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/src/adapters/PrismaAdapter.d.ts +115 -0
- package/dist/src/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/src/adapters/PrismaAdapter.js +362 -0
- package/dist/src/adapters/PrismaAdapter.js.map +1 -0
- package/dist/src/adapters/RedisAdapter.d.ts +71 -0
- package/dist/src/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/src/adapters/RedisAdapter.js +227 -0
- package/dist/src/adapters/RedisAdapter.js.map +1 -0
- package/dist/src/adapters/SQLiteAdapter.d.ts +69 -0
- package/dist/src/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/src/adapters/SQLiteAdapter.js +308 -0
- package/dist/src/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/src/adapters/index.d.ts +17 -0
- package/dist/src/adapters/index.d.ts.map +1 -0
- package/dist/src/adapters/index.js +11 -0
- package/dist/src/adapters/index.js.map +1 -0
- package/dist/src/constants/index.d.ts +10 -0
- package/dist/src/constants/index.d.ts.map +1 -0
- package/dist/src/constants/index.js +10 -0
- package/dist/src/constants/index.js.map +1 -0
- package/dist/src/core/Agent.d.ts +232 -0
- package/dist/src/core/Agent.d.ts.map +1 -0
- package/dist/src/core/Agent.js +737 -0
- package/dist/src/core/Agent.js.map +1 -0
- package/dist/src/core/Events.d.ts +26 -0
- package/dist/src/core/Events.d.ts.map +1 -0
- package/dist/src/core/Events.js +137 -0
- package/dist/src/core/Events.js.map +1 -0
- package/dist/src/core/PersistenceManager.d.ts +98 -0
- package/dist/src/core/PersistenceManager.d.ts.map +1 -0
- package/dist/src/core/PersistenceManager.js +257 -0
- package/dist/src/core/PersistenceManager.js.map +1 -0
- package/dist/src/core/PromptComposer.d.ts +27 -0
- package/dist/src/core/PromptComposer.d.ts.map +1 -0
- package/dist/src/core/PromptComposer.js +190 -0
- package/dist/src/core/PromptComposer.js.map +1 -0
- package/dist/src/core/ResponseEngine.d.ts +32 -0
- package/dist/src/core/ResponseEngine.d.ts.map +1 -0
- package/dist/src/core/ResponseEngine.js +198 -0
- package/dist/src/core/ResponseEngine.js.map +1 -0
- package/dist/src/core/ResponseModal.d.ts +222 -0
- package/dist/src/core/ResponseModal.d.ts.map +1 -0
- package/dist/src/core/ResponseModal.js +1583 -0
- package/dist/src/core/ResponseModal.js.map +1 -0
- package/dist/src/core/ResponsePipeline.d.ts +175 -0
- package/dist/src/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/src/core/ResponsePipeline.js +545 -0
- package/dist/src/core/ResponsePipeline.js.map +1 -0
- package/dist/src/core/Route.d.ts +181 -0
- package/dist/src/core/Route.d.ts.map +1 -0
- package/dist/src/core/Route.js +537 -0
- package/dist/src/core/Route.js.map +1 -0
- package/dist/src/core/RoutingEngine.d.ts +159 -0
- package/dist/src/core/RoutingEngine.d.ts.map +1 -0
- package/dist/src/core/RoutingEngine.js +957 -0
- package/dist/src/core/RoutingEngine.js.map +1 -0
- package/dist/src/core/SessionManager.d.ts +94 -0
- package/dist/src/core/SessionManager.d.ts.map +1 -0
- package/dist/src/core/SessionManager.js +235 -0
- package/dist/src/core/SessionManager.js.map +1 -0
- package/dist/src/core/Step.d.ts +170 -0
- package/dist/src/core/Step.d.ts.map +1 -0
- package/dist/src/core/Step.js +444 -0
- package/dist/src/core/Step.js.map +1 -0
- 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 +44 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +37 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/providers/AnthropicProvider.d.ts +43 -0
- package/dist/src/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/src/providers/AnthropicProvider.js +370 -0
- package/dist/src/providers/AnthropicProvider.js.map +1 -0
- package/dist/src/providers/GeminiProvider.d.ts +58 -0
- package/dist/src/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/src/providers/GeminiProvider.js +485 -0
- package/dist/src/providers/GeminiProvider.js.map +1 -0
- package/dist/src/providers/OpenAIProvider.d.ts +52 -0
- package/dist/src/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/src/providers/OpenAIProvider.js +388 -0
- package/dist/src/providers/OpenAIProvider.js.map +1 -0
- package/dist/src/providers/OpenRouterProvider.d.ts +56 -0
- package/dist/src/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/src/providers/OpenRouterProvider.js +402 -0
- package/dist/src/providers/OpenRouterProvider.js.map +1 -0
- package/dist/src/providers/index.d.ts +13 -0
- package/dist/src/providers/index.d.ts.map +1 -0
- package/dist/src/providers/index.js +9 -0
- package/dist/src/providers/index.js.map +1 -0
- package/dist/src/types/agent.d.ts +181 -0
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js +18 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/src/types/ai.d.ts +143 -0
- package/dist/src/types/ai.d.ts.map +1 -0
- package/dist/src/types/ai.js +5 -0
- package/dist/src/types/ai.js.map +1 -0
- package/dist/src/types/history.d.ts +178 -0
- package/dist/src/types/history.d.ts.map +1 -0
- package/dist/src/types/history.js +30 -0
- package/dist/src/types/history.js.map +1 -0
- package/dist/src/types/index.d.ts +22 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +12 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/persistence.d.ts +209 -0
- package/dist/src/types/persistence.d.ts.map +1 -0
- package/dist/src/types/persistence.js +6 -0
- package/dist/src/types/persistence.js.map +1 -0
- package/dist/src/types/route.d.ts +238 -0
- package/dist/src/types/route.d.ts.map +1 -0
- package/dist/src/types/route.js +5 -0
- package/dist/src/types/route.js.map +1 -0
- package/dist/src/types/routing.d.ts +16 -0
- package/dist/src/types/routing.d.ts.map +1 -0
- package/dist/src/types/routing.js +2 -0
- package/dist/src/types/routing.js.map +1 -0
- package/dist/src/types/schema.d.ts +22 -0
- package/dist/src/types/schema.d.ts.map +1 -0
- package/dist/src/types/schema.js +2 -0
- package/dist/src/types/schema.js.map +1 -0
- package/dist/src/types/session.d.ts +65 -0
- package/dist/src/types/session.d.ts.map +1 -0
- package/dist/src/types/session.js +5 -0
- package/dist/src/types/session.js.map +1 -0
- package/dist/src/types/template.d.ts +88 -0
- package/dist/src/types/template.d.ts.map +1 -0
- package/dist/src/types/template.js +2 -0
- package/dist/src/types/template.js.map +1 -0
- package/dist/src/types/tool.d.ts +130 -0
- package/dist/src/types/tool.d.ts.map +1 -0
- package/dist/src/types/tool.js +16 -0
- package/dist/src/types/tool.js.map +1 -0
- package/dist/src/utils/clone.d.ts +8 -0
- package/dist/src/utils/clone.d.ts.map +1 -0
- package/dist/src/utils/clone.js +29 -0
- package/dist/src/utils/clone.js.map +1 -0
- package/dist/src/utils/condition.d.ts +38 -0
- package/dist/src/utils/condition.d.ts.map +1 -0
- package/dist/src/utils/condition.js +161 -0
- package/dist/src/utils/condition.js.map +1 -0
- package/dist/src/utils/event.d.ts +6 -0
- package/dist/src/utils/event.d.ts.map +1 -0
- package/dist/src/utils/event.js +17 -0
- package/dist/src/utils/event.js.map +1 -0
- package/dist/src/utils/history.d.ts +60 -0
- package/dist/src/utils/history.d.ts.map +1 -0
- package/dist/src/utils/history.js +263 -0
- package/dist/src/utils/history.js.map +1 -0
- package/dist/src/utils/id.d.ts +25 -0
- package/dist/src/utils/id.d.ts.map +1 -0
- package/dist/src/utils/id.js +64 -0
- package/dist/src/utils/id.js.map +1 -0
- package/dist/src/utils/index.d.ts +15 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +23 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/json.d.ts +16 -0
- package/dist/src/utils/json.d.ts.map +1 -0
- package/dist/src/utils/json.js +43 -0
- package/dist/src/utils/json.js.map +1 -0
- package/dist/src/utils/logger.d.ts +10 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +17 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/retry.d.ts +10 -0
- package/dist/src/utils/retry.d.ts.map +1 -0
- package/dist/src/utils/retry.js +71 -0
- package/dist/src/utils/retry.js.map +1 -0
- package/dist/src/utils/session.d.ts +51 -0
- package/dist/src/utils/session.d.ts.map +1 -0
- package/dist/src/utils/session.js +160 -0
- package/dist/src/utils/session.js.map +1 -0
- package/dist/src/utils/template.d.ts +155 -0
- package/dist/src/utils/template.d.ts.map +1 -0
- package/dist/src/utils/template.js +374 -0
- package/dist/src/utils/template.js.map +1 -0
- package/docs/CONTRIBUTING.md +521 -0
- package/docs/README.md +228 -0
- package/docs/api/README.md +3258 -0
- package/docs/api/overview.md +1134 -0
- package/docs/architecture/data-extraction-flow.md +363 -0
- package/docs/core/agent/README.md +902 -0
- package/docs/core/agent/context-management.md +796 -0
- package/docs/core/agent/session-management.md +641 -0
- package/docs/core/ai-integration/prompt-composition.md +220 -0
- package/docs/core/ai-integration/providers.md +515 -0
- package/docs/core/ai-integration/response-processing.md +287 -0
- package/docs/core/conversation-flows/data-collection.md +623 -0
- package/docs/core/conversation-flows/route-dsl.md +502 -0
- package/docs/core/conversation-flows/routes.md +247 -0
- package/docs/core/conversation-flows/step-transitions.md +595 -0
- package/docs/core/conversation-flows/steps.md +154 -0
- package/docs/core/error-handling.md +638 -0
- package/docs/core/persistence/adapters.md +255 -0
- package/docs/core/persistence/session-storage.md +644 -0
- package/docs/core/routing/intelligent-routing.md +466 -0
- package/docs/core/tools/tool-definition.md +970 -0
- package/docs/core/tools/tool-scoping.md +819 -0
- package/docs/guides/advanced-patterns/publishing.md +186 -0
- package/docs/guides/error-handling-patterns.md +578 -0
- package/docs/guides/getting-started/README.md +696 -0
- package/docs/guides/migration/README.md +72 -0
- package/docs/guides/migration/flexible-routing-conditions.md +375 -0
- package/docs/guides/migration/response-modal-refactor.md +518 -0
- package/examples/advanced-patterns/knowledge-based-agent.ts +735 -0
- package/examples/advanced-patterns/persistent-onboarding.ts +728 -0
- package/examples/advanced-patterns/route-lifecycle-hooks.ts +556 -0
- package/examples/advanced-patterns/streaming-responses.ts +578 -0
- package/examples/ai-providers/anthropic-integration.ts +388 -0
- package/examples/ai-providers/openai-integration.ts +228 -0
- package/examples/condition-patterns/function-only-conditions.ts +365 -0
- package/examples/condition-patterns/mixed-array-conditions.ts +477 -0
- package/examples/condition-patterns/route-skipif-patterns.ts +468 -0
- package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
- package/examples/condition-patterns/string-only-conditions.ts +296 -0
- package/examples/conversation-flows/completion-transitions.ts +318 -0
- package/examples/core-concepts/basic-agent.ts +503 -0
- package/examples/core-concepts/modern-streaming-api.ts +309 -0
- package/examples/core-concepts/schema-driven-extraction.ts +332 -0
- package/examples/core-concepts/session-management.ts +494 -0
- package/examples/integrations/database-integration.ts +630 -0
- package/examples/integrations/healthcare-integration.ts +595 -0
- package/examples/integrations/search-integration.ts +530 -0
- package/examples/integrations/server-session-management.ts +307 -0
- package/examples/persistence/custom-adapter.ts +529 -0
- package/examples/persistence/database-persistence.ts +583 -0
- package/examples/persistence/memory-sessions.ts +495 -0
- package/examples/persistence/prisma-schema.example.prisma +74 -0
- package/examples/persistence/redis-persistence.ts +488 -0
- package/examples/tools/basic-tools.ts +765 -0
- package/examples/tools/data-enrichment-tools.ts +593 -0
- package/package.json +125 -0
- package/src/adapters/MemoryAdapter.ts +273 -0
- package/src/adapters/MongoAdapter.ts +304 -0
- package/src/adapters/OpenSearchAdapter.ts +670 -0
- package/src/adapters/PostgreSQLAdapter.ts +428 -0
- package/src/adapters/PrismaAdapter.ts +553 -0
- package/src/adapters/RedisAdapter.ts +377 -0
- package/src/adapters/SQLiteAdapter.ts +459 -0
- package/src/adapters/index.ts +43 -0
- package/src/constants/index.ts +10 -0
- package/src/core/Agent.ts +970 -0
- package/src/core/Events.ts +164 -0
- package/src/core/PersistenceManager.ts +353 -0
- package/src/core/PromptComposer.ts +253 -0
- package/src/core/ResponseEngine.ts +306 -0
- package/src/core/ResponseModal.ts +2050 -0
- package/src/core/ResponsePipeline.ts +864 -0
- package/src/core/Route.ts +677 -0
- package/src/core/RoutingEngine.ts +1396 -0
- package/src/core/SessionManager.ts +297 -0
- package/src/core/Step.ts +593 -0
- package/src/core/ToolManager.ts +1394 -0
- package/src/index.ts +155 -0
- package/src/providers/AnthropicProvider.ts +560 -0
- package/src/providers/GeminiProvider.ts +683 -0
- package/src/providers/OpenAIProvider.ts +602 -0
- package/src/providers/OpenRouterProvider.ts +613 -0
- package/src/providers/index.ts +16 -0
- package/src/types/agent.ts +196 -0
- package/src/types/ai.ts +158 -0
- package/src/types/history.ts +206 -0
- package/src/types/index.ts +119 -0
- package/src/types/persistence.ts +251 -0
- package/src/types/route.ts +272 -0
- package/src/types/routing.ts +18 -0
- package/src/types/schema.ts +23 -0
- package/src/types/session.ts +74 -0
- package/src/types/template.ts +104 -0
- package/src/types/tool.ts +174 -0
- package/src/utils/clone.ts +34 -0
- package/src/utils/condition.ts +190 -0
- package/src/utils/event.ts +16 -0
- package/src/utils/history.ts +306 -0
- package/src/utils/id.ts +73 -0
- package/src/utils/index.ts +69 -0
- package/src/utils/json.ts +46 -0
- package/src/utils/logger.ts +19 -0
- package/src/utils/retry.ts +97 -0
- package/src/utils/session.ts +204 -0
- package/src/utils/template.ts +444 -0
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
# Data Extraction Flow Architecture
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
@falai/agent uses an **intelligent pre-extraction system** that captures data from user messages BEFORE entering conversation steps. This eliminates repetitive questions and creates efficient, natural conversations.
|
|
6
|
+
|
|
7
|
+
## The Problem with Traditional Approaches
|
|
8
|
+
|
|
9
|
+
Traditional conversational AI follows a rigid step-by-step approach:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
User: "I want to book the Grand Hotel for 2 people next Friday"
|
|
13
|
+
|
|
14
|
+
Traditional Flow:
|
|
15
|
+
Step 1: "Which hotel?" → User already said this!
|
|
16
|
+
Step 2: "How many guests?" → User already said this!
|
|
17
|
+
Step 3: "What date?" → User already said this!
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This wastes user time and creates frustration.
|
|
21
|
+
|
|
22
|
+
## Our Solution: Pre-Extraction + Smart Step Selection
|
|
23
|
+
|
|
24
|
+
### Phase 1: Route Selection & Pre-Extraction
|
|
25
|
+
|
|
26
|
+
When a user message arrives:
|
|
27
|
+
|
|
28
|
+
1. **Route Evaluation** - AI scores all routes based on user intent
|
|
29
|
+
2. **Route Selection** - Best matching route is selected
|
|
30
|
+
3. **Pre-Extraction** - If entering a NEW route that collects data:
|
|
31
|
+
- AI extracts ALL relevant data from the message
|
|
32
|
+
- Data is validated against the agent schema
|
|
33
|
+
- Collected data is merged into session
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
// User: "I want to book the Grand Hotel for 2 people next Friday"
|
|
37
|
+
|
|
38
|
+
// Pre-extraction automatically captures:
|
|
39
|
+
{
|
|
40
|
+
hotelName: "Grand Hotel",
|
|
41
|
+
guests: 2,
|
|
42
|
+
date: "next Friday"
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Phase 2: Route Completion Check
|
|
47
|
+
|
|
48
|
+
After pre-extraction, the system checks if the route is complete:
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// Route defines required fields
|
|
52
|
+
agent.createRoute({
|
|
53
|
+
title: "Book Hotel",
|
|
54
|
+
requiredFields: ["hotelName", "guests", "date"],
|
|
55
|
+
// ...
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// After pre-extraction, all required fields are present
|
|
59
|
+
// Route is marked as COMPLETE immediately
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Key Insight:** Routes complete when `requiredFields` are collected, NOT when reaching END_ROUTE step.
|
|
63
|
+
|
|
64
|
+
### Phase 3: Smart Step Selection
|
|
65
|
+
|
|
66
|
+
If route is NOT complete, determine which step to start at:
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
// Steps with skipIf conditions
|
|
70
|
+
steps: [
|
|
71
|
+
{
|
|
72
|
+
id: "ask_hotel",
|
|
73
|
+
collect: ["hotelName"],
|
|
74
|
+
skipIf: (data) => !!data.hotelName // ✅ SKIP - already have it
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: "ask_guests",
|
|
78
|
+
collect: ["guests"],
|
|
79
|
+
skipIf: (data) => data.guests !== undefined // ✅ SKIP - already have it
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "ask_date",
|
|
83
|
+
collect: ["date"],
|
|
84
|
+
skipIf: (data) => !!data.date // ✅ SKIP - already have it
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
// Result: All steps skipped → Route complete
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Phase 4: Response Generation
|
|
92
|
+
|
|
93
|
+
**If route is complete:**
|
|
94
|
+
- Generate completion message
|
|
95
|
+
- Mark step as END_ROUTE
|
|
96
|
+
- Exclude route from future selection
|
|
97
|
+
|
|
98
|
+
**If route is NOT complete:**
|
|
99
|
+
- Enter the first non-skipped step
|
|
100
|
+
- Generate response asking for missing data
|
|
101
|
+
- Continue conversation
|
|
102
|
+
|
|
103
|
+
## Complete Flow Example
|
|
104
|
+
|
|
105
|
+
### Scenario: User provides all data at once
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
// Turn 1
|
|
109
|
+
User: "I want to book the Grand Hotel for 2 people next Friday"
|
|
110
|
+
|
|
111
|
+
System:
|
|
112
|
+
1. Routes to "Book Hotel" (AI scoring)
|
|
113
|
+
2. Pre-extracts: { hotelName: "Grand Hotel", guests: 2, date: "next Friday" }
|
|
114
|
+
3. Checks completion: All required fields present ✓
|
|
115
|
+
4. Generates completion message
|
|
116
|
+
5. Marks route as complete
|
|
117
|
+
|
|
118
|
+
AI: "Perfect! Booking confirmed for 2 guests at Grand Hotel on Friday!"
|
|
119
|
+
|
|
120
|
+
// Turn 2
|
|
121
|
+
User: "I'm feeling anxious about my visit"
|
|
122
|
+
|
|
123
|
+
System:
|
|
124
|
+
1. Evaluates routes
|
|
125
|
+
2. Excludes "Book Hotel" (already complete)
|
|
126
|
+
3. Routes to "General Healthcare Questions"
|
|
127
|
+
4. Generates response
|
|
128
|
+
|
|
129
|
+
AI: "I understand you're feeling anxious. How can I help?"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Scenario: User provides partial data
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
// Turn 1
|
|
136
|
+
User: "I want to book the Grand Hotel"
|
|
137
|
+
|
|
138
|
+
System:
|
|
139
|
+
1. Routes to "Book Hotel"
|
|
140
|
+
2. Pre-extracts: { hotelName: "Grand Hotel" }
|
|
141
|
+
3. Checks completion: Missing guests and date ✗
|
|
142
|
+
4. Evaluates steps:
|
|
143
|
+
- ask_hotel: SKIP (have hotelName)
|
|
144
|
+
- ask_guests: ENTER (need guests)
|
|
145
|
+
5. Enters ask_guests step
|
|
146
|
+
|
|
147
|
+
AI: "How many guests will be staying?"
|
|
148
|
+
|
|
149
|
+
// Turn 2
|
|
150
|
+
User: "2 people next Friday"
|
|
151
|
+
|
|
152
|
+
System:
|
|
153
|
+
1. Already in "Book Hotel" route
|
|
154
|
+
2. Pre-extracts: { guests: 2, date: "next Friday" }
|
|
155
|
+
3. Checks completion: All required fields present ✓
|
|
156
|
+
4. Generates completion message
|
|
157
|
+
|
|
158
|
+
AI: "Booking confirmed for 2 guests at Grand Hotel on Friday!"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Key Design Decisions
|
|
162
|
+
|
|
163
|
+
### 1. Pre-Extraction Triggers
|
|
164
|
+
|
|
165
|
+
Pre-extraction only happens when:
|
|
166
|
+
- Entering a NEW route (not already in it)
|
|
167
|
+
- Route has `requiredFields`, `optionalFields`, OR steps with `collect` arrays
|
|
168
|
+
|
|
169
|
+
This minimizes unnecessary AI calls for purely conversational routes.
|
|
170
|
+
|
|
171
|
+
### 2. Route Completion Logic
|
|
172
|
+
|
|
173
|
+
A route is complete when:
|
|
174
|
+
- **All `requiredFields` are collected**, OR
|
|
175
|
+
- **Reached END_ROUTE marker in step flow**
|
|
176
|
+
|
|
177
|
+
Whichever comes first.
|
|
178
|
+
|
|
179
|
+
### 3. Completed Route Exclusion
|
|
180
|
+
|
|
181
|
+
Once a route is 100% complete:
|
|
182
|
+
- It's excluded from future route selection
|
|
183
|
+
- Users won't be forced back into finished tasks
|
|
184
|
+
- System falls back to other routes or general conversation
|
|
185
|
+
|
|
186
|
+
### 4. Step Skipping Logic
|
|
187
|
+
|
|
188
|
+
Steps are skipped when:
|
|
189
|
+
- `skipIf` condition evaluates to true
|
|
190
|
+
- `requires` fields are not yet collected
|
|
191
|
+
- Data for `collect` fields is already present
|
|
192
|
+
|
|
193
|
+
## Configuration
|
|
194
|
+
|
|
195
|
+
### Enable Pre-Extraction
|
|
196
|
+
|
|
197
|
+
Pre-extraction is automatic when you define:
|
|
198
|
+
|
|
199
|
+
```typescript
|
|
200
|
+
// Option 1: Route-level required fields
|
|
201
|
+
agent.createRoute({
|
|
202
|
+
title: "Booking",
|
|
203
|
+
requiredFields: ["hotel", "date", "guests"],
|
|
204
|
+
// Pre-extraction enabled automatically
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// Option 2: Route-level optional fields
|
|
208
|
+
agent.createRoute({
|
|
209
|
+
title: "Booking",
|
|
210
|
+
optionalFields: ["specialRequests"],
|
|
211
|
+
// Pre-extraction enabled automatically
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
// Option 3: Steps with collect arrays
|
|
215
|
+
agent.createRoute({
|
|
216
|
+
title: "Booking",
|
|
217
|
+
steps: [
|
|
218
|
+
{
|
|
219
|
+
id: "ask_hotel",
|
|
220
|
+
collect: ["hotel"], // Pre-extraction enabled automatically
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
});
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Disable Pre-Extraction
|
|
227
|
+
|
|
228
|
+
For purely conversational routes (no data collection):
|
|
229
|
+
|
|
230
|
+
```typescript
|
|
231
|
+
agent.createRoute({
|
|
232
|
+
title: "General Chat",
|
|
233
|
+
// No requiredFields, optionalFields, or collect arrays
|
|
234
|
+
// Pre-extraction skipped automatically
|
|
235
|
+
steps: [
|
|
236
|
+
{
|
|
237
|
+
id: "chat",
|
|
238
|
+
prompt: "Have a friendly conversation"
|
|
239
|
+
// No collect array
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
});
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Performance Considerations
|
|
246
|
+
|
|
247
|
+
### AI Call Optimization
|
|
248
|
+
|
|
249
|
+
Pre-extraction adds ONE additional AI call when entering a new data-collecting route:
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
Traditional: N calls (one per step)
|
|
253
|
+
With Pre-Extraction: 1 + M calls (pre-extract + remaining steps)
|
|
254
|
+
|
|
255
|
+
Where M ≤ N (often M = 0 if all data extracted)
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Net Result:** Usually FEWER total AI calls due to step skipping.
|
|
259
|
+
|
|
260
|
+
### When to Use Pre-Extraction
|
|
261
|
+
|
|
262
|
+
✅ **Use for:** Data collection flows (booking, forms, surveys)
|
|
263
|
+
✅ **Use for:** Multi-field information gathering
|
|
264
|
+
❌ **Skip for:** Pure Q&A or conversational routes
|
|
265
|
+
❌ **Skip for:** Single-field collection
|
|
266
|
+
|
|
267
|
+
## Advanced Patterns
|
|
268
|
+
|
|
269
|
+
### Optional Fields
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
agent.createRoute({
|
|
273
|
+
title: "Booking",
|
|
274
|
+
requiredFields: ["hotel", "date"],
|
|
275
|
+
optionalFields: ["specialRequests", "dietaryRestrictions"],
|
|
276
|
+
|
|
277
|
+
// Route completes when required fields are collected
|
|
278
|
+
// Optional fields can be collected if user provides them
|
|
279
|
+
// But won't block completion
|
|
280
|
+
});
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Conditional Completion
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
agent.createRoute({
|
|
287
|
+
title: "Order",
|
|
288
|
+
requiredFields: ["items", "address"],
|
|
289
|
+
|
|
290
|
+
steps: [
|
|
291
|
+
// ... collection steps ...
|
|
292
|
+
{
|
|
293
|
+
id: "payment",
|
|
294
|
+
when: "Ready to process payment",
|
|
295
|
+
skipIf: (data) => data.paymentComplete,
|
|
296
|
+
// This step runs AFTER required fields are collected
|
|
297
|
+
// Allows post-completion actions
|
|
298
|
+
}
|
|
299
|
+
]
|
|
300
|
+
});
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Progressive Disclosure
|
|
304
|
+
|
|
305
|
+
```typescript
|
|
306
|
+
agent.createRoute({
|
|
307
|
+
title: "Support",
|
|
308
|
+
requiredFields: ["issueType"],
|
|
309
|
+
optionalFields: ["accountNumber", "orderNumber"],
|
|
310
|
+
|
|
311
|
+
steps: [
|
|
312
|
+
{
|
|
313
|
+
id: "ask_issue",
|
|
314
|
+
collect: ["issueType"],
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
id: "ask_account",
|
|
318
|
+
collect: ["accountNumber"],
|
|
319
|
+
when: (data) => data.issueType === "account",
|
|
320
|
+
// Only ask for account if issue is account-related
|
|
321
|
+
}
|
|
322
|
+
]
|
|
323
|
+
});
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
## Debugging
|
|
327
|
+
|
|
328
|
+
Enable debug logging to see the extraction flow:
|
|
329
|
+
|
|
330
|
+
```typescript
|
|
331
|
+
const agent = new Agent({
|
|
332
|
+
name: "Assistant",
|
|
333
|
+
provider: new GeminiProvider({ apiKey: "..." }),
|
|
334
|
+
debug: true // Enable detailed logging
|
|
335
|
+
});
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
Look for these log messages:
|
|
339
|
+
|
|
340
|
+
```
|
|
341
|
+
[ResponseModal] Pre-extracting data for route: Book Hotel
|
|
342
|
+
[ResponseModal] Pre-extracted data: { hotelName: "Grand Hotel", ... }
|
|
343
|
+
[ResponseModal] Route Book Hotel completed after pre-extraction
|
|
344
|
+
[RoutingEngine] Excluding completed route: Book Hotel (100% complete)
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
## Summary
|
|
348
|
+
|
|
349
|
+
The pre-extraction system creates efficient conversations by:
|
|
350
|
+
|
|
351
|
+
1. **Extracting data early** - Before entering steps
|
|
352
|
+
2. **Skipping unnecessary steps** - When data is already present
|
|
353
|
+
3. **Completing automatically** - When required fields are collected
|
|
354
|
+
4. **Protecting completed routes** - Preventing re-entry
|
|
355
|
+
|
|
356
|
+
This results in natural, efficient conversations that respect user time.
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
**Next Steps:**
|
|
361
|
+
- [Route Configuration](../core/conversation-flows/routes.md)
|
|
362
|
+
- [Step Configuration](../core/conversation-flows/steps.md)
|
|
363
|
+
- [Schema Design](../guides/building-agents/schema-design.md)
|