@falai/agent 0.9.0 → 1.0.0
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 +304 -72
- package/dist/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/adapters/MemoryAdapter.js.map +1 -0
- package/dist/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/adapters/MongoAdapter.js.map +1 -0
- package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/{src/adapters → adapters}/PrismaAdapter.js +3 -2
- package/dist/adapters/PrismaAdapter.js.map +1 -0
- package/dist/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/{src/adapters → adapters}/RedisAdapter.js +3 -3
- package/dist/adapters/RedisAdapter.js.map +1 -0
- package/dist/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/cjs/adapters/MemoryAdapter.js.map +1 -0
- package/dist/cjs/adapters/MongoAdapter.js.map +1 -0
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/{src → cjs}/adapters/PrismaAdapter.d.ts.map +1 -1
- package/dist/cjs/{src/adapters → adapters}/PrismaAdapter.js +3 -2
- package/dist/cjs/adapters/PrismaAdapter.js.map +1 -0
- package/dist/cjs/{src/adapters → adapters}/RedisAdapter.js +2 -2
- package/dist/cjs/adapters/RedisAdapter.js.map +1 -0
- package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/cjs/adapters/index.js.map +1 -0
- package/dist/cjs/constants/index.js.map +1 -0
- package/dist/{src → cjs}/core/Agent.d.ts +25 -6
- package/dist/cjs/core/Agent.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/Agent.js +121 -37
- package/dist/cjs/core/Agent.js.map +1 -0
- package/dist/cjs/core/BatchExecutor.d.ts +353 -0
- package/dist/cjs/core/BatchExecutor.d.ts.map +1 -0
- package/dist/cjs/core/BatchExecutor.js +842 -0
- package/dist/cjs/core/BatchExecutor.js.map +1 -0
- package/dist/cjs/core/BatchPromptBuilder.d.ts +86 -0
- package/dist/cjs/core/BatchPromptBuilder.d.ts.map +1 -0
- package/dist/cjs/core/BatchPromptBuilder.js +201 -0
- package/dist/cjs/core/BatchPromptBuilder.js.map +1 -0
- package/dist/cjs/core/Events.js.map +1 -0
- package/dist/cjs/core/PersistenceManager.js.map +1 -0
- package/dist/{src → cjs}/core/PromptComposer.d.ts +1 -1
- package/dist/cjs/core/PromptComposer.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/PromptComposer.js +44 -7
- package/dist/cjs/core/PromptComposer.js.map +1 -0
- package/dist/{src → cjs}/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +202 -0
- package/dist/cjs/core/ResponseEngine.js.map +1 -0
- package/dist/{src → cjs}/core/ResponseModal.d.ts +54 -3
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/ResponseModal.js +807 -121
- package/dist/cjs/core/ResponseModal.js.map +1 -0
- package/dist/{src → cjs}/core/ResponsePipeline.d.ts +10 -6
- package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/ResponsePipeline.js +60 -25
- package/dist/cjs/core/ResponsePipeline.js.map +1 -0
- package/dist/{src → cjs}/core/Route.d.ts +46 -10
- package/dist/cjs/core/Route.d.ts.map +1 -0
- package/dist/cjs/core/Route.js +541 -0
- package/dist/cjs/core/Route.js.map +1 -0
- package/dist/cjs/{src/core → core}/RoutingEngine.d.ts +35 -5
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/RoutingEngine.js +360 -98
- package/dist/cjs/core/RoutingEngine.js.map +1 -0
- package/dist/{src → cjs}/core/SessionManager.d.ts +9 -1
- package/dist/cjs/core/SessionManager.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/SessionManager.js +27 -5
- package/dist/cjs/core/SessionManager.js.map +1 -0
- package/dist/cjs/core/Step.d.ts +170 -0
- package/dist/cjs/core/Step.d.ts.map +1 -0
- package/dist/cjs/core/Step.js +448 -0
- package/dist/cjs/core/Step.js.map +1 -0
- package/dist/cjs/core/ToolManager.d.ts +234 -0
- package/dist/cjs/core/ToolManager.d.ts.map +1 -0
- package/dist/cjs/core/ToolManager.js +1117 -0
- package/dist/cjs/core/ToolManager.js.map +1 -0
- package/dist/{src → cjs}/index.d.ts +5 -3
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/{src/index.js → index.js} +16 -3
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/{src/providers → providers}/AnthropicProvider.js +18 -18
- package/dist/cjs/providers/AnthropicProvider.js.map +1 -0
- package/dist/{src → cjs}/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/{src/providers → providers}/GeminiProvider.js +123 -51
- package/dist/cjs/providers/GeminiProvider.js.map +1 -0
- package/dist/cjs/{src/providers → providers}/OpenAIProvider.js +19 -19
- package/dist/cjs/providers/OpenAIProvider.js.map +1 -0
- package/dist/cjs/{src/providers → providers}/OpenRouterProvider.js +19 -19
- package/dist/cjs/providers/OpenRouterProvider.js.map +1 -0
- package/dist/cjs/providers/index.js.map +1 -0
- package/dist/cjs/{src/types → types}/agent.d.ts +12 -4
- package/dist/cjs/types/agent.d.ts.map +1 -0
- package/dist/cjs/types/agent.js.map +1 -0
- package/dist/{src → cjs}/types/ai.js.map +1 -1
- package/dist/cjs/types/history.js.map +1 -0
- package/dist/cjs/{src/types → types}/index.d.ts +5 -3
- package/dist/{src → cjs}/types/index.d.ts.map +1 -1
- package/dist/cjs/{src/types → types}/index.js +8 -1
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/persistence.js.map +1 -0
- package/dist/cjs/{src/types → types}/route.d.ts +116 -15
- package/dist/cjs/types/route.d.ts.map +1 -0
- package/dist/cjs/{src/types → types}/route.js.map +1 -1
- package/dist/cjs/types/session.js.map +1 -0
- package/dist/cjs/types/template.d.ts +88 -0
- package/dist/cjs/types/template.d.ts.map +1 -0
- package/dist/cjs/types/tool.d.ts +130 -0
- package/dist/cjs/types/tool.d.ts.map +1 -0
- package/dist/cjs/types/tool.js +19 -0
- package/dist/cjs/types/tool.js.map +1 -0
- package/dist/cjs/utils/clone.js.map +1 -0
- package/dist/cjs/utils/condition.d.ts +38 -0
- package/dist/cjs/utils/condition.d.ts.map +1 -0
- package/dist/cjs/utils/condition.js +168 -0
- package/dist/cjs/utils/condition.js.map +1 -0
- package/dist/cjs/utils/event.js.map +1 -0
- package/dist/cjs/utils/history.js.map +1 -0
- package/dist/cjs/utils/id.js.map +1 -0
- package/dist/cjs/{src/utils → utils}/index.d.ts +3 -1
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/{src/utils → utils}/index.js +12 -1
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/json.d.ts +16 -0
- package/dist/cjs/utils/json.d.ts.map +1 -0
- package/dist/cjs/utils/json.js +47 -0
- package/dist/cjs/utils/json.js.map +1 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/{src → cjs}/utils/retry.d.ts +0 -3
- package/dist/cjs/utils/retry.d.ts.map +1 -0
- package/dist/cjs/{src/utils → utils}/retry.js +8 -7
- package/dist/cjs/utils/retry.js.map +1 -0
- package/dist/cjs/utils/session.js.map +1 -0
- package/dist/{src → cjs}/utils/template.d.ts +48 -0
- package/dist/cjs/utils/template.d.ts.map +1 -0
- package/dist/cjs/{src/utils → utils}/template.js +100 -0
- package/dist/cjs/utils/template.js.map +1 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/{cjs/src/core → core}/Agent.d.ts +25 -6
- package/dist/core/Agent.d.ts.map +1 -0
- package/dist/{src/core → core}/Agent.js +122 -38
- package/dist/core/Agent.js.map +1 -0
- package/dist/core/BatchExecutor.d.ts +353 -0
- package/dist/core/BatchExecutor.d.ts.map +1 -0
- package/dist/core/BatchExecutor.js +837 -0
- package/dist/core/BatchExecutor.js.map +1 -0
- package/dist/core/BatchPromptBuilder.d.ts +86 -0
- package/dist/core/BatchPromptBuilder.d.ts.map +1 -0
- package/dist/core/BatchPromptBuilder.js +197 -0
- package/dist/core/BatchPromptBuilder.js.map +1 -0
- package/dist/core/Events.d.ts.map +1 -0
- package/dist/core/Events.js.map +1 -0
- package/dist/core/PersistenceManager.d.ts.map +1 -0
- package/dist/core/PersistenceManager.js.map +1 -0
- package/dist/{cjs/src/core → core}/PromptComposer.d.ts +1 -1
- package/dist/core/PromptComposer.d.ts.map +1 -0
- package/dist/{src/core → core}/PromptComposer.js +45 -8
- package/dist/core/PromptComposer.js.map +1 -0
- package/dist/core/ResponseEngine.d.ts.map +1 -0
- package/dist/core/ResponseEngine.js +198 -0
- package/dist/core/ResponseEngine.js.map +1 -0
- package/dist/{cjs/src/core → core}/ResponseModal.d.ts +54 -3
- package/dist/core/ResponseModal.d.ts.map +1 -0
- package/dist/{src/core → core}/ResponseModal.js +807 -121
- package/dist/core/ResponseModal.js.map +1 -0
- package/dist/{cjs/src/core → core}/ResponsePipeline.d.ts +10 -6
- package/dist/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/{src/core → core}/ResponsePipeline.js +60 -25
- package/dist/core/ResponsePipeline.js.map +1 -0
- package/dist/{cjs/src/core → core}/Route.d.ts +46 -10
- package/dist/core/Route.d.ts.map +1 -0
- package/dist/core/Route.js +537 -0
- package/dist/core/Route.js.map +1 -0
- package/dist/{src/core → core}/RoutingEngine.d.ts +35 -5
- package/dist/core/RoutingEngine.d.ts.map +1 -0
- package/dist/{src/core → core}/RoutingEngine.js +343 -81
- package/dist/core/RoutingEngine.js.map +1 -0
- package/dist/{cjs/src/core → core}/SessionManager.d.ts +9 -1
- package/dist/core/SessionManager.d.ts.map +1 -0
- package/dist/{src/core → core}/SessionManager.js +27 -5
- package/dist/core/SessionManager.js.map +1 -0
- package/dist/core/Step.d.ts +170 -0
- package/dist/core/Step.d.ts.map +1 -0
- package/dist/core/Step.js +444 -0
- package/dist/core/Step.js.map +1 -0
- package/dist/core/ToolManager.d.ts +234 -0
- package/dist/core/ToolManager.d.ts.map +1 -0
- package/dist/core/ToolManager.js +1111 -0
- package/dist/core/ToolManager.js.map +1 -0
- package/dist/{cjs/src/index.d.ts → index.d.ts} +5 -3
- package/dist/index.d.ts.map +1 -0
- package/dist/{src/index.js → index.js} +4 -1
- package/dist/index.js.map +1 -0
- package/dist/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/{src/providers → providers}/AnthropicProvider.js +17 -17
- package/dist/providers/AnthropicProvider.js.map +1 -0
- package/dist/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/{src/providers → providers}/GeminiProvider.js +123 -51
- package/dist/providers/GeminiProvider.js.map +1 -0
- package/dist/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/{src/providers → providers}/OpenAIProvider.js +18 -18
- package/dist/providers/OpenAIProvider.js.map +1 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/{src/providers → providers}/OpenRouterProvider.js +18 -18
- package/dist/providers/OpenRouterProvider.js.map +1 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/{src/types → types}/agent.d.ts +12 -4
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/ai.js.map +1 -0
- package/dist/types/history.d.ts.map +1 -0
- package/dist/types/history.js.map +1 -0
- package/dist/{src/types → types}/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{src/types → types}/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/persistence.d.ts.map +1 -0
- package/dist/types/persistence.js.map +1 -0
- package/dist/{src/types → types}/route.d.ts +116 -15
- package/dist/types/route.d.ts.map +1 -0
- package/dist/{src/types → types}/route.js.map +1 -1
- package/dist/types/routing.d.ts.map +1 -0
- package/dist/{cjs/src/types → types}/routing.js.map +1 -1
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/{cjs/src/types → types}/schema.js.map +1 -1
- package/dist/types/session.d.ts.map +1 -0
- package/dist/{src/types → types}/session.js.map +1 -1
- package/dist/types/template.d.ts +88 -0
- package/dist/types/template.d.ts.map +1 -0
- package/dist/{cjs/src/types → types}/template.js.map +1 -1
- package/dist/types/tool.d.ts +130 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +16 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/clone.d.ts.map +1 -0
- package/dist/utils/clone.js.map +1 -0
- package/dist/utils/condition.d.ts +38 -0
- package/dist/utils/condition.d.ts.map +1 -0
- package/dist/utils/condition.js +161 -0
- package/dist/utils/condition.js.map +1 -0
- package/dist/utils/event.d.ts.map +1 -0
- package/dist/utils/event.js.map +1 -0
- package/dist/utils/history.d.ts.map +1 -0
- package/dist/utils/history.js.map +1 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/{src/utils → utils}/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/{src/utils → utils}/index.js +5 -1
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/json.d.ts +16 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +43 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/{cjs/src/utils → utils}/retry.d.ts +0 -3
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/{src/utils → utils}/retry.js +5 -4
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/session.d.ts.map +1 -0
- package/dist/utils/session.js.map +1 -0
- package/dist/{cjs/src/utils → utils}/template.d.ts +48 -0
- package/dist/utils/template.d.ts.map +1 -0
- package/dist/{src/utils → utils}/template.js +98 -0
- package/dist/utils/template.js.map +1 -0
- package/docs/CONTRIBUTING.md +40 -0
- package/docs/README.md +12 -5
- package/docs/api/README.md +295 -56
- package/docs/api/overview.md +272 -31
- package/docs/architecture/data-extraction-flow.md +363 -0
- package/docs/architecture/multi-step-execution.md +243 -0
- package/docs/core/agent/README.md +120 -5
- package/docs/core/agent/session-management.md +153 -6
- package/docs/core/ai-integration/prompt-composition.md +135 -0
- package/docs/core/ai-integration/response-processing.md +261 -4
- package/docs/core/conversation-flows/data-collection.md +143 -0
- package/docs/core/conversation-flows/routes.md +132 -2
- package/docs/core/conversation-flows/step-transitions.md +132 -0
- package/docs/core/conversation-flows/steps.md +112 -0
- package/docs/core/error-handling.md +831 -0
- package/docs/core/routing/intelligent-routing.md +118 -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 +423 -31
- package/docs/guides/migration/README.md +23 -0
- package/docs/guides/migration/flexible-routing-conditions.md +375 -0
- package/docs/guides/migration/multi-step-execution.md +303 -0
- package/examples/advanced-patterns/knowledge-based-agent.ts +107 -30
- package/examples/advanced-patterns/persistent-onboarding.ts +70 -48
- package/examples/advanced-patterns/route-lifecycle-hooks.ts +82 -12
- package/examples/advanced-patterns/streaming-responses.ts +2 -2
- package/examples/ai-providers/anthropic-integration.ts +13 -9
- package/examples/ai-providers/openai-integration.ts +12 -8
- 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 +48 -7
- package/examples/core-concepts/basic-agent.ts +158 -98
- package/examples/core-concepts/schema-driven-extraction.ts +43 -16
- package/examples/core-concepts/session-management.ts +117 -29
- package/examples/integrations/database-integration.ts +6 -6
- package/examples/integrations/healthcare-integration.ts +25 -39
- package/examples/integrations/search-integration.ts +8 -8
- package/examples/integrations/server-session-management.ts +11 -11
- package/examples/persistence/database-persistence.ts +15 -15
- package/examples/persistence/memory-sessions.ts +6 -6
- package/examples/persistence/redis-persistence.ts +7 -9
- package/examples/tools/basic-tools.ts +293 -89
- package/examples/tools/data-enrichment-tools.ts +189 -79
- package/package.json +6 -4
- package/src/adapters/PrismaAdapter.ts +3 -2
- package/src/adapters/RedisAdapter.ts +3 -3
- package/src/core/Agent.ts +152 -46
- package/src/core/BatchExecutor.ts +1156 -0
- package/src/core/BatchPromptBuilder.ts +275 -0
- package/src/core/PromptComposer.ts +53 -16
- package/src/core/ResponseEngine.ts +143 -4
- package/src/core/ResponseModal.ts +1035 -137
- package/src/core/ResponsePipeline.ts +99 -65
- package/src/core/Route.ts +262 -34
- package/src/core/RoutingEngine.ts +467 -120
- package/src/core/SessionManager.ts +39 -7
- package/src/core/Step.ts +338 -32
- package/src/core/ToolManager.ts +1394 -0
- package/src/index.ts +27 -3
- package/src/providers/AnthropicProvider.ts +17 -17
- package/src/providers/GeminiProvider.ts +129 -60
- package/src/providers/OpenAIProvider.ts +18 -18
- package/src/providers/OpenRouterProvider.ts +18 -18
- package/src/types/agent.ts +12 -4
- package/src/types/index.ts +25 -3
- package/src/types/route.ts +136 -15
- package/src/types/template.ts +70 -2
- package/src/types/tool.ts +116 -25
- package/src/utils/condition.ts +190 -0
- package/src/utils/index.ts +12 -0
- package/src/utils/json.ts +46 -0
- package/src/utils/retry.ts +5 -4
- package/src/utils/template.ts +109 -0
- package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +0 -1
- package/dist/cjs/src/adapters/MemoryAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +0 -1
- package/dist/cjs/src/adapters/MongoAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +0 -1
- package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +0 -1
- package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +0 -1
- package/dist/cjs/src/adapters/PrismaAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +0 -1
- package/dist/cjs/src/adapters/RedisAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +0 -1
- package/dist/cjs/src/adapters/SQLiteAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/index.d.ts.map +0 -1
- package/dist/cjs/src/adapters/index.js.map +0 -1
- package/dist/cjs/src/constants/index.d.ts.map +0 -1
- package/dist/cjs/src/constants/index.js.map +0 -1
- package/dist/cjs/src/core/Agent.d.ts.map +0 -1
- package/dist/cjs/src/core/Agent.js.map +0 -1
- package/dist/cjs/src/core/Events.d.ts.map +0 -1
- package/dist/cjs/src/core/Events.js.map +0 -1
- package/dist/cjs/src/core/PersistenceManager.d.ts.map +0 -1
- package/dist/cjs/src/core/PersistenceManager.js.map +0 -1
- package/dist/cjs/src/core/PromptComposer.d.ts.map +0 -1
- package/dist/cjs/src/core/PromptComposer.js.map +0 -1
- package/dist/cjs/src/core/ResponseEngine.d.ts.map +0 -1
- package/dist/cjs/src/core/ResponseEngine.js +0 -84
- package/dist/cjs/src/core/ResponseEngine.js.map +0 -1
- package/dist/cjs/src/core/ResponseModal.d.ts.map +0 -1
- package/dist/cjs/src/core/ResponseModal.js.map +0 -1
- package/dist/cjs/src/core/ResponsePipeline.d.ts.map +0 -1
- package/dist/cjs/src/core/ResponsePipeline.js.map +0 -1
- package/dist/cjs/src/core/Route.d.ts.map +0 -1
- package/dist/cjs/src/core/Route.js +0 -343
- package/dist/cjs/src/core/Route.js.map +0 -1
- package/dist/cjs/src/core/RoutingEngine.d.ts.map +0 -1
- package/dist/cjs/src/core/RoutingEngine.js.map +0 -1
- package/dist/cjs/src/core/SessionManager.d.ts.map +0 -1
- package/dist/cjs/src/core/SessionManager.js.map +0 -1
- package/dist/cjs/src/core/Step.d.ts +0 -96
- package/dist/cjs/src/core/Step.d.ts.map +0 -1
- package/dist/cjs/src/core/Step.js +0 -206
- package/dist/cjs/src/core/Step.js.map +0 -1
- 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/cjs/src/index.d.ts.map +0 -1
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +0 -1
- package/dist/cjs/src/providers/AnthropicProvider.js.map +0 -1
- package/dist/cjs/src/providers/GeminiProvider.d.ts.map +0 -1
- package/dist/cjs/src/providers/GeminiProvider.js.map +0 -1
- package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +0 -1
- package/dist/cjs/src/providers/OpenAIProvider.js.map +0 -1
- package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +0 -1
- package/dist/cjs/src/providers/OpenRouterProvider.js.map +0 -1
- package/dist/cjs/src/providers/index.d.ts.map +0 -1
- package/dist/cjs/src/providers/index.js.map +0 -1
- package/dist/cjs/src/types/agent.d.ts.map +0 -1
- package/dist/cjs/src/types/agent.js.map +0 -1
- package/dist/cjs/src/types/ai.d.ts.map +0 -1
- package/dist/cjs/src/types/ai.js.map +0 -1
- package/dist/cjs/src/types/history.d.ts.map +0 -1
- package/dist/cjs/src/types/history.js.map +0 -1
- package/dist/cjs/src/types/index.d.ts.map +0 -1
- package/dist/cjs/src/types/index.js.map +0 -1
- package/dist/cjs/src/types/persistence.d.ts.map +0 -1
- package/dist/cjs/src/types/persistence.js.map +0 -1
- package/dist/cjs/src/types/route.d.ts.map +0 -1
- package/dist/cjs/src/types/routing.d.ts.map +0 -1
- package/dist/cjs/src/types/schema.d.ts.map +0 -1
- package/dist/cjs/src/types/session.d.ts.map +0 -1
- package/dist/cjs/src/types/session.js.map +0 -1
- package/dist/cjs/src/types/template.d.ts +0 -30
- package/dist/cjs/src/types/template.d.ts.map +0 -1
- package/dist/cjs/src/types/tool.d.ts +0 -60
- package/dist/cjs/src/types/tool.d.ts.map +0 -1
- package/dist/cjs/src/types/tool.js +0 -6
- package/dist/cjs/src/types/tool.js.map +0 -1
- package/dist/cjs/src/utils/clone.d.ts.map +0 -1
- package/dist/cjs/src/utils/clone.js.map +0 -1
- package/dist/cjs/src/utils/event.d.ts.map +0 -1
- package/dist/cjs/src/utils/event.js.map +0 -1
- package/dist/cjs/src/utils/history.d.ts.map +0 -1
- package/dist/cjs/src/utils/history.js.map +0 -1
- package/dist/cjs/src/utils/id.d.ts.map +0 -1
- package/dist/cjs/src/utils/id.js.map +0 -1
- package/dist/cjs/src/utils/index.d.ts.map +0 -1
- package/dist/cjs/src/utils/index.js.map +0 -1
- package/dist/cjs/src/utils/logger.d.ts.map +0 -1
- package/dist/cjs/src/utils/logger.js.map +0 -1
- package/dist/cjs/src/utils/retry.d.ts.map +0 -1
- package/dist/cjs/src/utils/retry.js.map +0 -1
- package/dist/cjs/src/utils/session.d.ts.map +0 -1
- package/dist/cjs/src/utils/session.js.map +0 -1
- package/dist/cjs/src/utils/template.d.ts.map +0 -1
- package/dist/cjs/src/utils/template.js.map +0 -1
- package/dist/src/adapters/MemoryAdapter.js.map +0 -1
- package/dist/src/adapters/MongoAdapter.js.map +0 -1
- package/dist/src/adapters/OpenSearchAdapter.js.map +0 -1
- package/dist/src/adapters/PostgreSQLAdapter.js.map +0 -1
- package/dist/src/adapters/PrismaAdapter.js.map +0 -1
- package/dist/src/adapters/RedisAdapter.js.map +0 -1
- package/dist/src/adapters/SQLiteAdapter.js.map +0 -1
- package/dist/src/adapters/index.js.map +0 -1
- package/dist/src/constants/index.js.map +0 -1
- package/dist/src/core/Agent.d.ts.map +0 -1
- package/dist/src/core/Agent.js.map +0 -1
- package/dist/src/core/Events.js.map +0 -1
- package/dist/src/core/PersistenceManager.js.map +0 -1
- package/dist/src/core/PromptComposer.d.ts.map +0 -1
- package/dist/src/core/PromptComposer.js.map +0 -1
- package/dist/src/core/ResponseEngine.js +0 -80
- package/dist/src/core/ResponseEngine.js.map +0 -1
- package/dist/src/core/ResponseModal.d.ts.map +0 -1
- package/dist/src/core/ResponseModal.js.map +0 -1
- package/dist/src/core/ResponsePipeline.d.ts.map +0 -1
- package/dist/src/core/ResponsePipeline.js.map +0 -1
- package/dist/src/core/Route.d.ts.map +0 -1
- package/dist/src/core/Route.js +0 -339
- package/dist/src/core/Route.js.map +0 -1
- package/dist/src/core/RoutingEngine.d.ts.map +0 -1
- package/dist/src/core/RoutingEngine.js.map +0 -1
- package/dist/src/core/SessionManager.d.ts.map +0 -1
- package/dist/src/core/SessionManager.js.map +0 -1
- package/dist/src/core/Step.d.ts +0 -96
- package/dist/src/core/Step.d.ts.map +0 -1
- package/dist/src/core/Step.js +0 -202
- package/dist/src/core/Step.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/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/providers/AnthropicProvider.js.map +0 -1
- package/dist/src/providers/GeminiProvider.js.map +0 -1
- package/dist/src/providers/OpenAIProvider.js.map +0 -1
- package/dist/src/providers/OpenRouterProvider.js.map +0 -1
- package/dist/src/providers/index.js.map +0 -1
- package/dist/src/types/agent.d.ts.map +0 -1
- package/dist/src/types/agent.js.map +0 -1
- package/dist/src/types/history.js.map +0 -1
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/persistence.js.map +0 -1
- package/dist/src/types/route.d.ts.map +0 -1
- package/dist/src/types/template.d.ts +0 -30
- package/dist/src/types/template.d.ts.map +0 -1
- package/dist/src/types/tool.d.ts +0 -60
- package/dist/src/types/tool.d.ts.map +0 -1
- package/dist/src/types/tool.js +0 -5
- package/dist/src/types/tool.js.map +0 -1
- package/dist/src/utils/clone.js.map +0 -1
- package/dist/src/utils/event.js.map +0 -1
- package/dist/src/utils/history.js.map +0 -1
- package/dist/src/utils/id.js.map +0 -1
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/logger.js.map +0 -1
- package/dist/src/utils/retry.d.ts.map +0 -1
- package/dist/src/utils/retry.js.map +0 -1
- package/dist/src/utils/session.js.map +0 -1
- package/dist/src/utils/template.d.ts.map +0 -1
- package/dist/src/utils/template.js.map +0 -1
- package/docs/core/tools/tool-execution.md +0 -815
- package/src/core/ToolExecutor.ts +0 -126
- /package/dist/{cjs/src/adapters → adapters}/MemoryAdapter.d.ts +0 -0
- /package/dist/{src/adapters → adapters}/MemoryAdapter.js +0 -0
- /package/dist/{cjs/src/adapters → adapters}/MongoAdapter.d.ts +0 -0
- /package/dist/{src/adapters → adapters}/MongoAdapter.js +0 -0
- /package/dist/{cjs/src/adapters → adapters}/OpenSearchAdapter.d.ts +0 -0
- /package/dist/{src/adapters → adapters}/OpenSearchAdapter.js +0 -0
- /package/dist/{cjs/src/adapters → adapters}/PostgreSQLAdapter.d.ts +0 -0
- /package/dist/{src/adapters → adapters}/PostgreSQLAdapter.js +0 -0
- /package/dist/{cjs/src/adapters → adapters}/PrismaAdapter.d.ts +0 -0
- /package/dist/{cjs/src/adapters → adapters}/RedisAdapter.d.ts +0 -0
- /package/dist/{cjs/src/adapters → adapters}/SQLiteAdapter.d.ts +0 -0
- /package/dist/{src/adapters → adapters}/SQLiteAdapter.js +0 -0
- /package/dist/{cjs/src/adapters → adapters}/index.d.ts +0 -0
- /package/dist/{src/adapters → adapters}/index.js +0 -0
- /package/dist/{src → cjs}/adapters/MemoryAdapter.d.ts +0 -0
- /package/dist/{src → cjs}/adapters/MemoryAdapter.d.ts.map +0 -0
- /package/dist/cjs/{src/adapters → adapters}/MemoryAdapter.js +0 -0
- /package/dist/{src → cjs}/adapters/MongoAdapter.d.ts +0 -0
- /package/dist/{src → cjs}/adapters/MongoAdapter.d.ts.map +0 -0
- /package/dist/cjs/{src/adapters → adapters}/MongoAdapter.js +0 -0
- /package/dist/{src → cjs}/adapters/OpenSearchAdapter.d.ts +0 -0
- /package/dist/{src → cjs}/adapters/OpenSearchAdapter.d.ts.map +0 -0
- /package/dist/cjs/{src/adapters → adapters}/OpenSearchAdapter.js +0 -0
- /package/dist/{src → cjs}/adapters/PostgreSQLAdapter.d.ts +0 -0
- /package/dist/{src → cjs}/adapters/PostgreSQLAdapter.d.ts.map +0 -0
- /package/dist/cjs/{src/adapters → adapters}/PostgreSQLAdapter.js +0 -0
- /package/dist/{src → cjs}/adapters/PrismaAdapter.d.ts +0 -0
- /package/dist/{src → cjs}/adapters/RedisAdapter.d.ts +0 -0
- /package/dist/{src → cjs}/adapters/RedisAdapter.d.ts.map +0 -0
- /package/dist/{src → cjs}/adapters/SQLiteAdapter.d.ts +0 -0
- /package/dist/{src → cjs}/adapters/SQLiteAdapter.d.ts.map +0 -0
- /package/dist/cjs/{src/adapters → adapters}/SQLiteAdapter.js +0 -0
- /package/dist/{src → cjs}/adapters/index.d.ts +0 -0
- /package/dist/{src → cjs}/adapters/index.d.ts.map +0 -0
- /package/dist/cjs/{src/adapters → adapters}/index.js +0 -0
- /package/dist/cjs/{src/constants → constants}/index.d.ts +0 -0
- /package/dist/{src → cjs}/constants/index.d.ts.map +0 -0
- /package/dist/cjs/{src/constants → constants}/index.js +0 -0
- /package/dist/cjs/{src/core → core}/Events.d.ts +0 -0
- /package/dist/{src → cjs}/core/Events.d.ts.map +0 -0
- /package/dist/cjs/{src/core → core}/Events.js +0 -0
- /package/dist/cjs/{src/core → core}/PersistenceManager.d.ts +0 -0
- /package/dist/{src → cjs}/core/PersistenceManager.d.ts.map +0 -0
- /package/dist/cjs/{src/core → core}/PersistenceManager.js +0 -0
- /package/dist/cjs/{src/core → core}/ResponseEngine.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/AnthropicProvider.d.ts +0 -0
- /package/dist/{src → cjs}/providers/AnthropicProvider.d.ts.map +0 -0
- /package/dist/cjs/{src/providers → providers}/GeminiProvider.d.ts +0 -0
- /package/dist/cjs/{src/providers → providers}/OpenAIProvider.d.ts +0 -0
- /package/dist/{src → cjs}/providers/OpenAIProvider.d.ts.map +0 -0
- /package/dist/cjs/{src/providers → providers}/OpenRouterProvider.d.ts +0 -0
- /package/dist/{src → cjs}/providers/OpenRouterProvider.d.ts.map +0 -0
- /package/dist/cjs/{src/providers → providers}/index.d.ts +0 -0
- /package/dist/{src → cjs}/providers/index.d.ts.map +0 -0
- /package/dist/cjs/{src/providers → providers}/index.js +0 -0
- /package/dist/cjs/{src/types → types}/agent.js +0 -0
- /package/dist/cjs/{src/types → types}/ai.d.ts +0 -0
- /package/dist/{src → cjs}/types/ai.d.ts.map +0 -0
- /package/dist/cjs/{src/types → types}/ai.js +0 -0
- /package/dist/cjs/{src/types → types}/history.d.ts +0 -0
- /package/dist/{src → cjs}/types/history.d.ts.map +0 -0
- /package/dist/cjs/{src/types → types}/history.js +0 -0
- /package/dist/cjs/{src/types → types}/persistence.d.ts +0 -0
- /package/dist/{src → cjs}/types/persistence.d.ts.map +0 -0
- /package/dist/cjs/{src/types → types}/persistence.js +0 -0
- /package/dist/cjs/{src/types → types}/route.js +0 -0
- /package/dist/cjs/{src/types → types}/routing.d.ts +0 -0
- /package/dist/{src → cjs}/types/routing.d.ts.map +0 -0
- /package/dist/cjs/{src/types → types}/routing.js +0 -0
- /package/dist/{src → cjs}/types/routing.js.map +0 -0
- /package/dist/cjs/{src/types → types}/schema.d.ts +0 -0
- /package/dist/{src → cjs}/types/schema.d.ts.map +0 -0
- /package/dist/cjs/{src/types → types}/schema.js +0 -0
- /package/dist/{src → cjs}/types/schema.js.map +0 -0
- /package/dist/cjs/{src/types → types}/session.d.ts +0 -0
- /package/dist/{src → cjs}/types/session.d.ts.map +0 -0
- /package/dist/cjs/{src/types → types}/session.js +0 -0
- /package/dist/cjs/{src/types → types}/template.js +0 -0
- /package/dist/{src → cjs}/types/template.js.map +0 -0
- /package/dist/cjs/{src/utils → utils}/clone.d.ts +0 -0
- /package/dist/{src → cjs}/utils/clone.d.ts.map +0 -0
- /package/dist/cjs/{src/utils → utils}/clone.js +0 -0
- /package/dist/cjs/{src/utils → utils}/event.d.ts +0 -0
- /package/dist/{src → cjs}/utils/event.d.ts.map +0 -0
- /package/dist/cjs/{src/utils → utils}/event.js +0 -0
- /package/dist/cjs/{src/utils → utils}/history.d.ts +0 -0
- /package/dist/{src → cjs}/utils/history.d.ts.map +0 -0
- /package/dist/cjs/{src/utils → utils}/history.js +0 -0
- /package/dist/cjs/{src/utils → utils}/id.d.ts +0 -0
- /package/dist/{src → cjs}/utils/id.d.ts.map +0 -0
- /package/dist/cjs/{src/utils → utils}/id.js +0 -0
- /package/dist/cjs/{src/utils → utils}/logger.d.ts +0 -0
- /package/dist/{src → cjs}/utils/logger.d.ts.map +0 -0
- /package/dist/cjs/{src/utils → utils}/logger.js +0 -0
- /package/dist/cjs/{src/utils → utils}/session.d.ts +0 -0
- /package/dist/{src → cjs}/utils/session.d.ts.map +0 -0
- /package/dist/cjs/{src/utils → utils}/session.js +0 -0
- /package/dist/{src/constants → constants}/index.d.ts +0 -0
- /package/dist/{src/constants → constants}/index.js +0 -0
- /package/dist/{src/core → core}/Events.d.ts +0 -0
- /package/dist/{src/core → core}/Events.js +0 -0
- /package/dist/{src/core → core}/PersistenceManager.d.ts +0 -0
- /package/dist/{src/core → core}/PersistenceManager.js +0 -0
- /package/dist/{src/core → core}/ResponseEngine.d.ts +0 -0
- /package/dist/{src/providers → providers}/AnthropicProvider.d.ts +0 -0
- /package/dist/{src/providers → providers}/GeminiProvider.d.ts +0 -0
- /package/dist/{src/providers → providers}/OpenAIProvider.d.ts +0 -0
- /package/dist/{src/providers → providers}/OpenRouterProvider.d.ts +0 -0
- /package/dist/{src/providers → providers}/index.d.ts +0 -0
- /package/dist/{src/providers → providers}/index.js +0 -0
- /package/dist/{src/types → types}/agent.js +0 -0
- /package/dist/{src/types → types}/ai.d.ts +0 -0
- /package/dist/{src/types → types}/ai.js +0 -0
- /package/dist/{src/types → types}/history.d.ts +0 -0
- /package/dist/{src/types → types}/history.js +0 -0
- /package/dist/{src/types → types}/persistence.d.ts +0 -0
- /package/dist/{src/types → types}/persistence.js +0 -0
- /package/dist/{src/types → types}/route.js +0 -0
- /package/dist/{src/types → types}/routing.d.ts +0 -0
- /package/dist/{src/types → types}/routing.js +0 -0
- /package/dist/{src/types → types}/schema.d.ts +0 -0
- /package/dist/{src/types → types}/schema.js +0 -0
- /package/dist/{src/types → types}/session.d.ts +0 -0
- /package/dist/{src/types → types}/session.js +0 -0
- /package/dist/{src/types → types}/template.js +0 -0
- /package/dist/{src/utils → utils}/clone.d.ts +0 -0
- /package/dist/{src/utils → utils}/clone.js +0 -0
- /package/dist/{src/utils → utils}/event.d.ts +0 -0
- /package/dist/{src/utils → utils}/event.js +0 -0
- /package/dist/{src/utils → utils}/history.d.ts +0 -0
- /package/dist/{src/utils → utils}/history.js +0 -0
- /package/dist/{src/utils → utils}/id.d.ts +0 -0
- /package/dist/{src/utils → utils}/id.js +0 -0
- /package/dist/{src/utils → utils}/logger.d.ts +0 -0
- /package/dist/{src/utils → utils}/logger.js +0 -0
- /package/dist/{src/utils → utils}/session.d.ts +0 -0
- /package/dist/{src/utils → utils}/session.js +0 -0
package/docs/README.md
CHANGED
|
@@ -8,8 +8,9 @@ Welcome to the `@falai/agent` documentation! This comprehensive framework enable
|
|
|
8
8
|
- 🎯 **Schema-First Data Collection**: Type-safe, structured data extraction from natural conversations
|
|
9
9
|
- 🔀 **Route DSL**: Fluent, composable API for building complex multi-step conversation flows
|
|
10
10
|
- 🏗️ **Type-Safe Context**: Generic context management with lifecycle hooks and dynamic providers
|
|
11
|
-
- 🔄 **Streaming & Tools**: Real-time streaming responses with dynamic tool execution
|
|
11
|
+
- 🔄 **Streaming & Tools**: Real-time streaming responses with dynamic tool execution using unified Tool interface
|
|
12
12
|
- 💾 **Comprehensive Persistence**: Database-agnostic session and message storage across multiple adapters
|
|
13
|
+
- 🛠️ **Unified Tool System**: Simplified tool creation with flexible return types and powerful pattern helpers
|
|
13
14
|
|
|
14
15
|
## 📖 Documentation Structure
|
|
15
16
|
|
|
@@ -54,6 +55,11 @@ Welcome to the `@falai/agent` documentation! This comprehensive framework enable
|
|
|
54
55
|
- **[Session Storage](./core/persistence/session-storage.md)** - Session persistence patterns
|
|
55
56
|
- **[Database Adapters](./core/persistence/adapters.md)** - Built-in adapter configurations
|
|
56
57
|
|
|
58
|
+
#### Error Handling
|
|
59
|
+
|
|
60
|
+
- **[Error Handling](./core/error-handling.md)** - Comprehensive error handling patterns and recovery strategies
|
|
61
|
+
- **[Error Handling Patterns](./guides/error-handling-patterns.md)** - Practical patterns for streaming, routing, and data sync errors
|
|
62
|
+
|
|
57
63
|
### 🚀 Advanced Guides
|
|
58
64
|
|
|
59
65
|
- **[Building Agents](./guides/building-agents/)** - Complete agent construction patterns
|
|
@@ -94,6 +100,7 @@ Welcome to the `@falai/agent` documentation! This comprehensive framework enable
|
|
|
94
100
|
- **AI Integration**: [Providers](./core/ai-integration/providers.md) | [Prompts](./core/ai-integration/prompt-composition.md) | [Responses](./core/ai-integration/response-processing.md)
|
|
95
101
|
- **Tools & Execution**: [Tool Definition](./core/tools/tool-definition.md) | [Tool Execution](./core/tools/tool-execution.md) | [Tool Scoping](./core/tools/tool-scoping.md)
|
|
96
102
|
- **Persistence**: [Session Storage](./core/persistence/session-storage.md) | [Adapters](./core/persistence/adapters.md)
|
|
103
|
+
- **Error Handling**: [Core Error Handling](./core/error-handling.md) | [Error Patterns](./guides/error-handling-patterns.md)
|
|
97
104
|
- **Advanced**: [Building Agents](./guides/building-agents/) | [Patterns](./guides/advanced-patterns/) | [Migration](./guides/migration/) | [API Reference](./api/)
|
|
98
105
|
|
|
99
106
|
## 💡 Examples by Domain
|
|
@@ -129,10 +136,10 @@ Check out the [`examples/`](../examples/) directory for complete, runnable examp
|
|
|
129
136
|
|
|
130
137
|
### 🔧 Tools & Execution
|
|
131
138
|
|
|
132
|
-
- **[Basic Tools](../examples/tools/basic-tools.ts)** -
|
|
133
|
-
- **[Data Enrichment Tools](../examples/tools/data-enrichment-tools.ts)** -
|
|
134
|
-
- **[Context Updating Tools](../examples/tools/context-updating-tools.ts)** -
|
|
135
|
-
- **[Domain Scoped Tools](../examples/tools/domain-scoped-tools.ts)** - Tool
|
|
139
|
+
- **[Basic Tools](../examples/tools/basic-tools.ts)** - Unified Tool interface with simple return values
|
|
140
|
+
- **[Data Enrichment Tools](../examples/tools/data-enrichment-tools.ts)** - Pattern helpers for data modification
|
|
141
|
+
- **[Context Updating Tools](../examples/tools/context-updating-tools.ts)** - Advanced ToolResult patterns with context updates
|
|
142
|
+
- **[Domain Scoped Tools](../examples/tools/domain-scoped-tools.ts)** - Tool registry and scoping with agent.tool.register()
|
|
136
143
|
|
|
137
144
|
### 💾 Persistence
|
|
138
145
|
|
package/docs/api/README.md
CHANGED
|
@@ -15,6 +15,106 @@ Complete API documentation for `@falai/agent`. This framework provides a strongl
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
+
## ConditionTemplate System
|
|
19
|
+
|
|
20
|
+
### `ConditionTemplate<TContext, TData>`
|
|
21
|
+
|
|
22
|
+
**NEW:** Enhanced condition type that supports flexible routing logic with both AI context and programmatic evaluation.
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
type ConditionTemplate<TContext = unknown, TData = unknown> =
|
|
26
|
+
| string // AI context only - provides context to AI for routing decisions
|
|
27
|
+
| ((params: TemplateContext<TContext, TData>) => boolean | Promise<boolean>) // Programmatic evaluation
|
|
28
|
+
| ConditionTemplate<TContext, TData>[]; // Array of either type
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Key Features:**
|
|
32
|
+
|
|
33
|
+
- **String conditions**: Provide AI context for routing decisions (e.g., `"user wants to book a flight"`)
|
|
34
|
+
- **Function conditions**: Execute programmatic logic returning boolean (e.g., `(ctx) => ctx.data?.isLoggedIn === true`)
|
|
35
|
+
- **Array conditions**: Combine multiple conditions with logical operators
|
|
36
|
+
- **Hybrid approach**: Mix strings and functions for optimal flexibility
|
|
37
|
+
|
|
38
|
+
#### Evaluation Logic
|
|
39
|
+
|
|
40
|
+
**For `when` conditions (AND logic):**
|
|
41
|
+
- **Functions**: All must return `true` for condition to pass
|
|
42
|
+
- **Strings**: Ignored in programmatic evaluation, used for AI context
|
|
43
|
+
- **Arrays**: All functions must return `true`
|
|
44
|
+
|
|
45
|
+
**For `skipIf` conditions (OR logic):**
|
|
46
|
+
- **Functions**: Any returning `true` causes skip
|
|
47
|
+
- **Strings**: Ignored in programmatic evaluation, used for AI context
|
|
48
|
+
- **Arrays**: Any function returning `true` causes skip
|
|
49
|
+
|
|
50
|
+
#### Usage Examples
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// String-only condition (AI context)
|
|
54
|
+
when: "User wants to make a reservation"
|
|
55
|
+
|
|
56
|
+
// Function-only condition (programmatic)
|
|
57
|
+
when: (ctx) => ctx.data?.userType === 'premium'
|
|
58
|
+
|
|
59
|
+
// Mixed array condition (hybrid approach)
|
|
60
|
+
when: [
|
|
61
|
+
"User is asking for help", // AI context
|
|
62
|
+
(ctx) => ctx.data?.isLoggedIn === true // Programmatic check
|
|
63
|
+
]
|
|
64
|
+
|
|
65
|
+
// Route skipIf with OR logic
|
|
66
|
+
skipIf: [
|
|
67
|
+
"System is under maintenance", // AI context
|
|
68
|
+
(ctx) => ctx.data?.maintenanceMode === true // Programmatic check
|
|
69
|
+
]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### `ConditionEvaluator<TContext, TData>`
|
|
73
|
+
|
|
74
|
+
**NEW:** Utility class for evaluating ConditionTemplate instances with consistent logic across the framework.
|
|
75
|
+
|
|
76
|
+
#### Constructor
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
new ConditionEvaluator<TContext, TData>(templateContext: TemplateContext<TContext, TData>)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### Methods
|
|
83
|
+
|
|
84
|
+
##### `evaluateCondition(condition, logic?): Promise<ConditionEvaluationResult>`
|
|
85
|
+
|
|
86
|
+
Evaluates a ConditionTemplate and returns detailed results.
|
|
87
|
+
|
|
88
|
+
**Parameters:**
|
|
89
|
+
- `condition`: ConditionTemplate to evaluate
|
|
90
|
+
- `logic`: 'AND' | 'OR' - logical operator for arrays (default: 'AND')
|
|
91
|
+
|
|
92
|
+
**Returns:**
|
|
93
|
+
```typescript
|
|
94
|
+
interface ConditionEvaluationResult {
|
|
95
|
+
programmaticResult: boolean; // Result of function evaluations only
|
|
96
|
+
aiContextStrings: string[]; // String values for AI context
|
|
97
|
+
hasProgrammaticConditions: boolean; // Whether any functions were evaluated
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Example:**
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
const evaluator = new ConditionEvaluator(templateContext);
|
|
105
|
+
|
|
106
|
+
const result = await evaluator.evaluateCondition([
|
|
107
|
+
"User needs premium support", // AI context
|
|
108
|
+
(ctx) => ctx.data?.userType === 'premium' // Programmatic
|
|
109
|
+
]);
|
|
110
|
+
|
|
111
|
+
console.log(result.programmaticResult); // true/false from function
|
|
112
|
+
console.log(result.aiContextStrings); // ["User needs premium support"]
|
|
113
|
+
console.log(result.hasProgrammaticConditions); // true
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
18
118
|
## Core Classes
|
|
19
119
|
|
|
20
120
|
### `Agent<TContext, TData>`
|
|
@@ -74,6 +174,72 @@ Adds a domain glossary term. Returns `this` for chaining.
|
|
|
74
174
|
|
|
75
175
|
Adds a behavioral guideline. Returns `this` for chaining.
|
|
76
176
|
|
|
177
|
+
##### `addTool(definition: Tool<TContext, TData, TResult>): this`
|
|
178
|
+
|
|
179
|
+
Creates and adds a tool to agent scope using the unified Tool interface. Returns `this` for chaining.
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Simple return value approach
|
|
183
|
+
agent.addTool({
|
|
184
|
+
id: "weather_check",
|
|
185
|
+
description: "Get current weather",
|
|
186
|
+
parameters: {
|
|
187
|
+
type: "object",
|
|
188
|
+
properties: {
|
|
189
|
+
location: { type: "string", description: "City name" }
|
|
190
|
+
},
|
|
191
|
+
required: ["location"]
|
|
192
|
+
},
|
|
193
|
+
handler: async ({ context, data }, args) => {
|
|
194
|
+
const weather = await weatherAPI.get(args.location);
|
|
195
|
+
return `Weather in ${args.location}: ${weather.condition}`;
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
// Advanced ToolResult pattern
|
|
200
|
+
agent.addTool({
|
|
201
|
+
id: "user_lookup",
|
|
202
|
+
description: "Look up user information",
|
|
203
|
+
handler: async ({ context, data }, args) => {
|
|
204
|
+
const user = await userAPI.find(args.userId);
|
|
205
|
+
return {
|
|
206
|
+
data: `Found user: ${user.name}`,
|
|
207
|
+
success: true,
|
|
208
|
+
contextUpdate: { currentUser: user },
|
|
209
|
+
dataUpdate: { userName: user.name }
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
##### `tool: ToolManager<TContext, TData>`
|
|
216
|
+
|
|
217
|
+
Access to the ToolManager instance for advanced tool operations.
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
// Register tools for ID-based reference
|
|
221
|
+
agent.tool.register({
|
|
222
|
+
id: "reusable_search",
|
|
223
|
+
description: "Search across data sources",
|
|
224
|
+
handler: async ({ context, data }, args) => "Search results"
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
// Create tools without adding to scope
|
|
228
|
+
const customTool = agent.tool.create({
|
|
229
|
+
id: "standalone_tool",
|
|
230
|
+
handler: async () => "Custom result"
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// Use pattern helpers
|
|
234
|
+
const enrichmentTool = agent.tool.createDataEnrichment({
|
|
235
|
+
id: "enrich_profile",
|
|
236
|
+
fields: ['name', 'email'],
|
|
237
|
+
enricher: async (context, data) => ({
|
|
238
|
+
displayName: `${data.name} <${data.email}>`
|
|
239
|
+
})
|
|
240
|
+
});
|
|
241
|
+
```
|
|
242
|
+
|
|
77
243
|
##### `respond(input: RespondInput<TContext>): Promise<RespondOutput>`
|
|
78
244
|
|
|
79
245
|
Generates an AI response with session step management, tool execution, data extraction, and intelligent routing.
|
|
@@ -757,7 +923,8 @@ interface RouteOptions<TData = unknown> {
|
|
|
757
923
|
description?: string; // Route description
|
|
758
924
|
identity?: string; // Optional identity prompt defining the agent's role and persona for this route
|
|
759
925
|
personality?: Template; // Optional personality prompt defining the agent's communication style for this route
|
|
760
|
-
|
|
926
|
+
when?: ConditionTemplate; // NEW: Conditions that activate this route (replaces conditions)
|
|
927
|
+
skipIf?: ConditionTemplate; // NEW: Conditions that exclude this route from consideration
|
|
761
928
|
guidelines?: Guideline[]; // Initial guidelines for this route
|
|
762
929
|
terms?: Term[]; // Initial terms for the route's domain glossary
|
|
763
930
|
rules?: string[]; // Absolute rules the agent MUST follow in this route
|
|
@@ -869,7 +1036,7 @@ console.log(description);
|
|
|
869
1036
|
// Route: Book Flight
|
|
870
1037
|
// ID: route_book_flight
|
|
871
1038
|
// Description: N/A
|
|
872
|
-
//
|
|
1039
|
+
// When: None
|
|
873
1040
|
//
|
|
874
1041
|
// Steps:
|
|
875
1042
|
// - step_ask_destination: Ask where to fly
|
|
@@ -937,9 +1104,13 @@ Route title (readonly).
|
|
|
937
1104
|
|
|
938
1105
|
Route description (readonly).
|
|
939
1106
|
|
|
940
|
-
##### `
|
|
1107
|
+
##### `when?: ConditionTemplate`
|
|
1108
|
+
|
|
1109
|
+
**NEW:** Conditions that trigger this route (readonly). Can be a string, function, or array of either.
|
|
941
1110
|
|
|
942
|
-
|
|
1111
|
+
##### `skipIf?: ConditionTemplate`
|
|
1112
|
+
|
|
1113
|
+
**NEW:** Conditions that exclude this route from consideration (readonly). Can be a string, function, or array of either.
|
|
943
1114
|
|
|
944
1115
|
##### `initialStep: Step`
|
|
945
1116
|
|
|
@@ -957,7 +1128,7 @@ Represents a step within a conversation route.
|
|
|
957
1128
|
|
|
958
1129
|
#### Methods
|
|
959
1130
|
|
|
960
|
-
##### `nextStep(spec: StepOptions):
|
|
1131
|
+
##### `nextStep(spec: StepOptions): Step`
|
|
961
1132
|
|
|
962
1133
|
Creates a transition from this step and returns a chainable result.
|
|
963
1134
|
|
|
@@ -972,20 +1143,25 @@ interface StepOptions<TData = unknown> {
|
|
|
972
1143
|
// NEW: Data extraction fields for this step
|
|
973
1144
|
collect?: string[];
|
|
974
1145
|
|
|
975
|
-
//
|
|
976
|
-
|
|
1146
|
+
// ENHANCED: Flexible condition to determine when this step should be active
|
|
1147
|
+
when?: ConditionTemplate<TContext, TData>;
|
|
1148
|
+
|
|
1149
|
+
// ENHANCED: Flexible condition to skip this step
|
|
1150
|
+
skipIf?: ConditionTemplate<TContext, TData>;
|
|
977
1151
|
|
|
978
1152
|
// NEW: Prerequisites that must be met to enter this step
|
|
979
1153
|
requires?: string[];
|
|
980
|
-
|
|
981
|
-
// Optional: AI-evaluated text condition for this transition
|
|
982
|
-
condition?: string;
|
|
983
1154
|
}
|
|
984
1155
|
|
|
985
|
-
interface
|
|
1156
|
+
interface Step<TContext = unknown, TData = unknown> {
|
|
986
1157
|
id: string; // Step identifier
|
|
987
1158
|
routeId: string; // Route identifier
|
|
988
|
-
nextStep: (spec: StepOptions<TData>) =>
|
|
1159
|
+
nextStep: (spec: StepOptions<TContext, TData>) => Step<TContext, TData>;
|
|
1160
|
+
description?: string; // Step description
|
|
1161
|
+
collect?: (keyof TData)[]; // Fields to collect in this step
|
|
1162
|
+
when?: ConditionTemplate<TContext, TData>; // ENHANCED: Flexible condition for step activation
|
|
1163
|
+
skipIf?: ConditionTemplate<TContext, TData>; // ENHANCED: Flexible condition to skip step
|
|
1164
|
+
requires?: (keyof TData)[]; // Required data prerequisites
|
|
989
1165
|
}
|
|
990
1166
|
```
|
|
991
1167
|
|
|
@@ -993,7 +1169,7 @@ interface StepResult<TData = unknown> {
|
|
|
993
1169
|
|
|
994
1170
|
- `spec`: The transition specification (see `StepOptions` above). Can include an optional `condition` property for AI-evaluated step selection guidance.
|
|
995
1171
|
|
|
996
|
-
**Returns:** A `
|
|
1172
|
+
**Returns:** A `Step` that includes the target step's reference (`id`, `routeId`) and a `nextStep` method for chaining additional transitions.
|
|
997
1173
|
|
|
998
1174
|
**Example:**
|
|
999
1175
|
|
|
@@ -1110,14 +1286,7 @@ if (step.hasRequires(session.data)) {
|
|
|
1110
1286
|
}
|
|
1111
1287
|
```
|
|
1112
1288
|
|
|
1113
|
-
##### `asStepResult(): StepResult<TContext, TData>`
|
|
1114
|
-
|
|
1115
|
-
Creates a transition result for this step that supports chaining.
|
|
1116
1289
|
|
|
1117
|
-
```typescript
|
|
1118
|
-
const result = step.asStepResult();
|
|
1119
|
-
// Returns StepResult with nextStep method for chaining
|
|
1120
|
-
```
|
|
1121
1290
|
|
|
1122
1291
|
##### `configure(config): this`
|
|
1123
1292
|
|
|
@@ -1167,6 +1336,109 @@ Step description (readonly).
|
|
|
1167
1336
|
|
|
1168
1337
|
---
|
|
1169
1338
|
|
|
1339
|
+
### `StepResult`
|
|
1340
|
+
|
|
1341
|
+
Result interface returned by step transition methods that enables fluent chaining of conversation flows. Combines step reference with the ability to chain transitions and create branches.
|
|
1342
|
+
|
|
1343
|
+
#### Interface
|
|
1344
|
+
|
|
1345
|
+
```typescript
|
|
1346
|
+
interface StepResult<TContext = unknown, TData = unknown> extends StepRef {
|
|
1347
|
+
/** Allow chaining transitions */
|
|
1348
|
+
nextStep: (spec: StepOptions<TContext, TData>) => StepResult<TContext, TData>;
|
|
1349
|
+
/** Create multiple branches from this step */
|
|
1350
|
+
branch: (
|
|
1351
|
+
branches: BranchSpec<TContext, TData>[]
|
|
1352
|
+
) => BranchResult<TContext, TData>;
|
|
1353
|
+
/** Shortcut to end the current route */
|
|
1354
|
+
endRoute: (options?: Omit<StepOptions<TContext, TData>, "step">) => StepResult<TContext, TData>;
|
|
1355
|
+
}
|
|
1356
|
+
```
|
|
1357
|
+
|
|
1358
|
+
#### Methods
|
|
1359
|
+
|
|
1360
|
+
##### `nextStep(spec: StepOptions<TContext, TData>): StepResult<TContext, TData>`
|
|
1361
|
+
|
|
1362
|
+
Creates a transition from this step and returns a chainable result for building linear flows.
|
|
1363
|
+
|
|
1364
|
+
**Example:**
|
|
1365
|
+
|
|
1366
|
+
```typescript
|
|
1367
|
+
// Linear flow chaining
|
|
1368
|
+
const flow = route.initialStep
|
|
1369
|
+
.nextStep({
|
|
1370
|
+
prompt: "Ask for destination",
|
|
1371
|
+
collect: ["destination"]
|
|
1372
|
+
})
|
|
1373
|
+
.nextStep({
|
|
1374
|
+
prompt: "Ask for dates",
|
|
1375
|
+
collect: ["departureDate", "returnDate"]
|
|
1376
|
+
})
|
|
1377
|
+
.nextStep({
|
|
1378
|
+
prompt: "Confirm booking details"
|
|
1379
|
+
});
|
|
1380
|
+
```
|
|
1381
|
+
|
|
1382
|
+
##### `branch(branches: BranchSpec<TContext, TData>[]): BranchResult<TContext, TData>`
|
|
1383
|
+
|
|
1384
|
+
Creates multiple conditional branches from this step for complex conversation flows.
|
|
1385
|
+
|
|
1386
|
+
**Example:**
|
|
1387
|
+
|
|
1388
|
+
```typescript
|
|
1389
|
+
// Branching flow
|
|
1390
|
+
const branches = askIssueType.branch([
|
|
1391
|
+
{
|
|
1392
|
+
name: "technical",
|
|
1393
|
+
step: {
|
|
1394
|
+
prompt: "Let me help with your technical issue",
|
|
1395
|
+
when: "issue type is technical"
|
|
1396
|
+
}
|
|
1397
|
+
},
|
|
1398
|
+
{
|
|
1399
|
+
name: "billing",
|
|
1400
|
+
step: {
|
|
1401
|
+
prompt: "I'll connect you with billing support",
|
|
1402
|
+
when: "issue type is billing"
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
]);
|
|
1406
|
+
|
|
1407
|
+
// Continue each branch independently
|
|
1408
|
+
branches.technical.nextStep({ prompt: "What device are you using?" });
|
|
1409
|
+
branches.billing.nextStep({ prompt: "What's your account number?" });
|
|
1410
|
+
```
|
|
1411
|
+
|
|
1412
|
+
##### `endRoute(options?: Omit<StepOptions<TContext, TData>, "step">): StepResult<TContext, TData>`
|
|
1413
|
+
|
|
1414
|
+
Shortcut method to end the current route with optional completion configuration.
|
|
1415
|
+
|
|
1416
|
+
**Example:**
|
|
1417
|
+
|
|
1418
|
+
```typescript
|
|
1419
|
+
// Simple route completion
|
|
1420
|
+
askConfirmation.endRoute();
|
|
1421
|
+
|
|
1422
|
+
// Route completion with final message
|
|
1423
|
+
askConfirmation.endRoute({
|
|
1424
|
+
prompt: "Thank you! Your booking is confirmed."
|
|
1425
|
+
});
|
|
1426
|
+
```
|
|
1427
|
+
|
|
1428
|
+
#### Properties
|
|
1429
|
+
|
|
1430
|
+
Inherits all properties from `StepRef`:
|
|
1431
|
+
|
|
1432
|
+
##### `id: string`
|
|
1433
|
+
|
|
1434
|
+
Step identifier (readonly).
|
|
1435
|
+
|
|
1436
|
+
##### `routeId: string`
|
|
1437
|
+
|
|
1438
|
+
Route this step belongs to (readonly).
|
|
1439
|
+
|
|
1440
|
+
---
|
|
1441
|
+
|
|
1170
1442
|
---
|
|
1171
1443
|
|
|
1172
1444
|
## Tool Execution
|
|
@@ -1566,39 +1838,6 @@ Builds a fallback prompt when no routes are configured.
|
|
|
1566
1838
|
|
|
1567
1839
|
---
|
|
1568
1840
|
|
|
1569
|
-
### `ToolExecutor<TContext, TData>`
|
|
1570
|
-
|
|
1571
|
-
Executes tools with context and security enforcement.
|
|
1572
|
-
|
|
1573
|
-
#### Constructor
|
|
1574
|
-
|
|
1575
|
-
```typescript
|
|
1576
|
-
new ToolExecutor<TContext, TData>();
|
|
1577
|
-
```
|
|
1578
|
-
|
|
1579
|
-
#### Methods
|
|
1580
|
-
|
|
1581
|
-
##### `executeTool(params): Promise<ToolExecutionResult>`
|
|
1582
|
-
|
|
1583
|
-
Executes a single tool with domain security enforcement.
|
|
1584
|
-
|
|
1585
|
-
**Parameters:**
|
|
1586
|
-
|
|
1587
|
-
- `tool`: Tool reference to execute
|
|
1588
|
-
- `context`: Agent context
|
|
1589
|
-
- `updateContext`: Function to update context
|
|
1590
|
-
- `history`: Conversation history
|
|
1591
|
-
- `data`: Collected session data
|
|
1592
|
-
- `allowedDomains`: Array of allowed domain names
|
|
1593
|
-
|
|
1594
|
-
**Returns:** Tool execution result with success status and data
|
|
1595
|
-
|
|
1596
|
-
##### `executeTools(params): Promise<ToolExecutionResult[]>`
|
|
1597
|
-
|
|
1598
|
-
Executes multiple tools in sequence, stopping on first failure.
|
|
1599
|
-
|
|
1600
|
-
---
|
|
1601
|
-
|
|
1602
1841
|
### `Events`
|
|
1603
1842
|
|
|
1604
1843
|
Utility functions for creating and adapting conversation events.
|
|
@@ -2364,9 +2603,9 @@ interface Term<TContext = unknown> {
|
|
|
2364
2603
|
### `Guideline`
|
|
2365
2604
|
|
|
2366
2605
|
```typescript
|
|
2367
|
-
interface Guideline<TContext = unknown> {
|
|
2606
|
+
interface Guideline<TContext = unknown, TData = unknown> {
|
|
2368
2607
|
id?: string;
|
|
2369
|
-
condition?:
|
|
2608
|
+
condition?: ConditionTemplate<TContext, TData>; // ENHANCED: Flexible condition for guideline activation
|
|
2370
2609
|
action: Template<TContext>;
|
|
2371
2610
|
enabled?: boolean; // Default: true
|
|
2372
2611
|
tags?: string[];
|
|
@@ -3016,4 +3255,4 @@ agent.createGuideline({
|
|
|
3016
3255
|
|
|
3017
3256
|
---
|
|
3018
3257
|
|
|
3019
|
-
**Made with ❤️ for the community**
|
|
3258
|
+
**Made with ❤️ for the community**
|