@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
|
@@ -19,10 +19,11 @@ import {
|
|
|
19
19
|
logger,
|
|
20
20
|
render,
|
|
21
21
|
} from "../utils";
|
|
22
|
+
import { createTemplateContext } from "../utils/template";
|
|
22
23
|
import { Route } from "../core/Route";
|
|
23
24
|
import { Step } from "../core/Step";
|
|
24
25
|
import { RoutingEngine } from "../core/RoutingEngine";
|
|
25
|
-
import {
|
|
26
|
+
import type { ToolManager } from "../core/ToolManager";
|
|
26
27
|
import { END_ROUTE_ID } from "../constants";
|
|
27
28
|
|
|
28
29
|
export interface ResponsePreparationResult<TContext, TData = unknown> {
|
|
@@ -42,8 +43,8 @@ export interface RoutingResult<TContext, TData = unknown> {
|
|
|
42
43
|
export interface ToolExecutionResult<TData = unknown> {
|
|
43
44
|
session: SessionState<TData>;
|
|
44
45
|
toolCalls:
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
| Array<{ toolName: string; arguments: Record<string, unknown> }>
|
|
47
|
+
| undefined;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
export interface DataCollectionResult<TData = unknown> {
|
|
@@ -57,8 +58,8 @@ export interface DataCollectionResult<TData = unknown> {
|
|
|
57
58
|
export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
58
59
|
constructor(
|
|
59
60
|
private readonly options: AgentOptions<TContext, TData>,
|
|
60
|
-
private readonly
|
|
61
|
-
private readonly tools: Tool<TContext, TData
|
|
61
|
+
private readonly getRoutes: () => Route<TContext, TData>[],
|
|
62
|
+
private readonly tools: Tool<TContext, TData>[],
|
|
62
63
|
private readonly routingEngine: RoutingEngine<TContext, TData>,
|
|
63
64
|
private readonly updateContext: (
|
|
64
65
|
updates: Partial<TContext>
|
|
@@ -69,8 +70,9 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
69
70
|
) => Promise<SessionState<TData>>,
|
|
70
71
|
private readonly updateCollectedData?: (
|
|
71
72
|
updates: Partial<TData>
|
|
72
|
-
) => Promise<void
|
|
73
|
-
|
|
73
|
+
) => Promise<void>,
|
|
74
|
+
private readonly toolManager?: ToolManager<TContext, TData>
|
|
75
|
+
) { }
|
|
74
76
|
|
|
75
77
|
/**
|
|
76
78
|
* Prepare context and session for response generation
|
|
@@ -125,9 +127,12 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
125
127
|
let completedRoutes: Route<TContext, TData>[] = [];
|
|
126
128
|
let targetSession = session;
|
|
127
129
|
|
|
130
|
+
// Get routes early since we need them for pending transitions
|
|
131
|
+
const routes = this.getRoutes();
|
|
132
|
+
|
|
128
133
|
// Check for pending transition from previous route completion
|
|
129
134
|
if (targetSession.pendingTransition) {
|
|
130
|
-
const targetRoute =
|
|
135
|
+
const targetRoute = routes.find(
|
|
131
136
|
(r) => r.id === targetSession.pendingTransition?.targetRouteId
|
|
132
137
|
);
|
|
133
138
|
|
|
@@ -166,11 +171,11 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
166
171
|
};
|
|
167
172
|
}
|
|
168
173
|
}
|
|
169
|
-
|
|
174
|
+
|
|
170
175
|
// If no pending transition or transition handled, do normal routing
|
|
171
|
-
if (
|
|
176
|
+
if (routes.length > 0 && !selectedRoute) {
|
|
172
177
|
const orchestration = await this.routingEngine.decideRouteAndStep({
|
|
173
|
-
routes:
|
|
178
|
+
routes: routes,
|
|
174
179
|
session: targetSession,
|
|
175
180
|
history,
|
|
176
181
|
agentOptions: this.options,
|
|
@@ -207,12 +212,12 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
207
212
|
/**
|
|
208
213
|
* Determine next step and update session
|
|
209
214
|
*/
|
|
210
|
-
determineNextStep(params: {
|
|
215
|
+
async determineNextStep(params: {
|
|
211
216
|
selectedRoute: Route<TContext, TData> | undefined;
|
|
212
217
|
selectedStep: Step<TContext, TData> | undefined;
|
|
213
218
|
session: SessionState<TData>;
|
|
214
219
|
isRouteComplete: boolean;
|
|
215
|
-
}): { nextStep: Step<TContext, TData> | undefined; session: SessionState<TData> } {
|
|
220
|
+
}): Promise<{ nextStep: Step<TContext, TData> | undefined; session: SessionState<TData> }> {
|
|
216
221
|
const { selectedRoute, selectedStep, session, isRouteComplete } = params;
|
|
217
222
|
|
|
218
223
|
if (!selectedRoute || isRouteComplete) {
|
|
@@ -225,16 +230,23 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
225
230
|
if (selectedStep) {
|
|
226
231
|
nextStep = selectedStep;
|
|
227
232
|
} else {
|
|
228
|
-
//
|
|
229
|
-
const
|
|
233
|
+
// Determine current step from session if we're already in this route
|
|
234
|
+
const currentStep = session.currentRoute?.id === selectedRoute.id && session.currentStep
|
|
235
|
+
? selectedRoute.getStep(session.currentStep.id)
|
|
236
|
+
: undefined;
|
|
237
|
+
|
|
238
|
+
const contextToUse = this.getStoredContext();
|
|
239
|
+
// Get candidate steps based on current position in the route
|
|
240
|
+
const candidates = await this.routingEngine.getCandidateStepsWithConditions(
|
|
230
241
|
selectedRoute,
|
|
231
|
-
undefined
|
|
232
|
-
session.data
|
|
242
|
+
currentStep, // Pass current step instead of undefined to maintain progression
|
|
243
|
+
createTemplateContext({ data: session.data, session, context: contextToUse })
|
|
233
244
|
);
|
|
245
|
+
|
|
234
246
|
if (candidates.length > 0) {
|
|
235
247
|
nextStep = candidates[0].step;
|
|
236
248
|
logger.debug(
|
|
237
|
-
`[ResponseHandler] Using first valid step: ${nextStep.id} for new route`
|
|
249
|
+
`[ResponseHandler] Using first valid step: ${nextStep.id}${currentStep ? ' (progressing from ' + currentStep.id + ')' : ' for new route'}`
|
|
238
250
|
);
|
|
239
251
|
} else {
|
|
240
252
|
// Fallback to initial step even if it should be skipped
|
|
@@ -281,8 +293,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
281
293
|
}
|
|
282
294
|
|
|
283
295
|
logger.debug(
|
|
284
|
-
`[ResponseHandler] Executing ${toolCalls.length} ${
|
|
285
|
-
isStreaming ? "streaming " : ""
|
|
296
|
+
`[ResponseHandler] Executing ${toolCalls.length} ${isStreaming ? "streaming " : ""
|
|
286
297
|
}tool calls`
|
|
287
298
|
);
|
|
288
299
|
|
|
@@ -299,15 +310,21 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
299
310
|
continue;
|
|
300
311
|
}
|
|
301
312
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
313
|
+
// Use ToolManager for unified tool execution
|
|
314
|
+
let result;
|
|
315
|
+
if (this.toolManager) {
|
|
316
|
+
result = await this.toolManager.executeTool({
|
|
317
|
+
tool,
|
|
318
|
+
context,
|
|
319
|
+
updateContext: this.updateContext,
|
|
320
|
+
updateData: this.updateCollectedData || (async () => { }),
|
|
321
|
+
history,
|
|
322
|
+
data: updatedSession.data,
|
|
323
|
+
});
|
|
324
|
+
} else {
|
|
325
|
+
// Fallback: execute tool directly if ToolManager not available
|
|
326
|
+
throw new Error(`ToolManager not available for tool execution: ${toolCall.toolName}`);
|
|
327
|
+
}
|
|
311
328
|
|
|
312
329
|
executedToolCalls.push(toolCall);
|
|
313
330
|
|
|
@@ -323,16 +340,14 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
323
340
|
result.dataUpdate as Partial<TData>
|
|
324
341
|
);
|
|
325
342
|
logger.debug(
|
|
326
|
-
`[ResponseHandler] ${
|
|
327
|
-
isStreaming ? "Streaming " : ""
|
|
343
|
+
`[ResponseHandler] ${isStreaming ? "Streaming " : ""
|
|
328
344
|
}Tool updated collected data:`,
|
|
329
345
|
result.dataUpdate
|
|
330
346
|
);
|
|
331
347
|
}
|
|
332
348
|
|
|
333
349
|
logger.debug(
|
|
334
|
-
`[ResponseHandler] Executed ${isStreaming ? "streaming " : ""}tool: ${
|
|
335
|
-
result.toolName
|
|
350
|
+
`[ResponseHandler] Executed ${isStreaming ? "streaming " : ""}tool: ${String(tool.id || tool.name || 'unknown')
|
|
336
351
|
} (success: ${result.success})`
|
|
337
352
|
);
|
|
338
353
|
}
|
|
@@ -348,8 +363,8 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
348
363
|
*/
|
|
349
364
|
async executeToolLoop(params: {
|
|
350
365
|
initialToolCalls:
|
|
351
|
-
|
|
352
|
-
|
|
366
|
+
| Array<{ toolName: string; arguments: Record<string, unknown> }>
|
|
367
|
+
| undefined;
|
|
353
368
|
selectedRoute?: Route<TContext, TData>;
|
|
354
369
|
nextStep: Step<TContext, TData>;
|
|
355
370
|
responsePrompt: string;
|
|
@@ -380,8 +395,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
380
395
|
while (hasToolCalls && toolLoopCount < MAX_TOOL_LOOPS) {
|
|
381
396
|
toolLoopCount++;
|
|
382
397
|
logger.debug(
|
|
383
|
-
`[ResponseHandler] Starting ${
|
|
384
|
-
isStreaming ? "streaming " : ""
|
|
398
|
+
`[ResponseHandler] Starting ${isStreaming ? "streaming " : ""
|
|
385
399
|
}tool loop ${toolLoopCount}/${MAX_TOOL_LOOPS}`
|
|
386
400
|
);
|
|
387
401
|
|
|
@@ -430,8 +444,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
430
444
|
|
|
431
445
|
if (hasToolCalls) {
|
|
432
446
|
logger.debug(
|
|
433
|
-
`[ResponseHandler] Follow-up call produced ${
|
|
434
|
-
followUpToolCalls!.length
|
|
447
|
+
`[ResponseHandler] Follow-up call produced ${followUpToolCalls!.length
|
|
435
448
|
} additional tool calls`
|
|
436
449
|
);
|
|
437
450
|
|
|
@@ -449,8 +462,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
449
462
|
currentToolCalls = followUpToolCalls;
|
|
450
463
|
} else {
|
|
451
464
|
logger.debug(
|
|
452
|
-
`[ResponseHandler] ${
|
|
453
|
-
isStreaming ? "Streaming " : ""
|
|
465
|
+
`[ResponseHandler] ${isStreaming ? "Streaming " : ""
|
|
454
466
|
}Tool loop completed after ${toolLoopCount} iterations`
|
|
455
467
|
);
|
|
456
468
|
// Update final toolCalls from follow-up result if no more tools
|
|
@@ -461,8 +473,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
461
473
|
|
|
462
474
|
if (toolLoopCount >= MAX_TOOL_LOOPS) {
|
|
463
475
|
logger.warn(
|
|
464
|
-
`[ResponseHandler] ${
|
|
465
|
-
isStreaming ? "Streaming " : ""
|
|
476
|
+
`[ResponseHandler] ${isStreaming ? "Streaming " : ""
|
|
466
477
|
}Tool loop limit reached (${MAX_TOOL_LOOPS}), stopping`
|
|
467
478
|
);
|
|
468
479
|
}
|
|
@@ -505,7 +516,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
505
516
|
if (this.updateCollectedData) {
|
|
506
517
|
await this.updateCollectedData(collectedData);
|
|
507
518
|
}
|
|
508
|
-
|
|
519
|
+
|
|
509
520
|
// Update session with validated data
|
|
510
521
|
updatedSession = await this.updateData(session, collectedData);
|
|
511
522
|
logger.debug(`[ResponseHandler] Collected data:`, collectedData);
|
|
@@ -554,18 +565,18 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
554
565
|
|
|
555
566
|
if (transitionConfig) {
|
|
556
567
|
// Find target route by ID or title
|
|
557
|
-
const targetRoute = this.
|
|
568
|
+
const targetRoute = this.getRoutes().find(
|
|
558
569
|
(r) =>
|
|
559
570
|
r.id === transitionConfig.nextStep ||
|
|
560
571
|
r.title === transitionConfig.nextStep
|
|
561
572
|
);
|
|
562
573
|
|
|
563
574
|
if (targetRoute) {
|
|
564
|
-
const templateContext = {
|
|
575
|
+
const templateContext = createTemplateContext({
|
|
565
576
|
context,
|
|
566
577
|
session,
|
|
567
578
|
history,
|
|
568
|
-
};
|
|
579
|
+
});
|
|
569
580
|
const renderedCondition: string =
|
|
570
581
|
(await render(transitionConfig.condition, templateContext)) ||
|
|
571
582
|
(typeof transitionConfig.condition === "string"
|
|
@@ -602,12 +613,21 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
602
613
|
}
|
|
603
614
|
|
|
604
615
|
/**
|
|
605
|
-
* Find an available tool by name for the given route
|
|
616
|
+
* Find an available tool by name for the given route using ToolManager
|
|
617
|
+
* Delegates to ToolManager for unified tool resolution
|
|
606
618
|
*/
|
|
607
619
|
private findAvailableTool(
|
|
608
620
|
toolName: string,
|
|
609
621
|
route?: Route<TContext, TData>
|
|
610
|
-
): Tool<TContext, TData
|
|
622
|
+
): Tool<TContext, TData> | undefined {
|
|
623
|
+
// Use ToolManager for unified tool resolution if available
|
|
624
|
+
if (this.toolManager) {
|
|
625
|
+
return this.toolManager.find(toolName, undefined, undefined, route);
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
// Fallback to legacy resolution if ToolManager not available
|
|
629
|
+
logger.warn(`[ResponsePipeline] ToolManager not available, using legacy tool resolution for: ${toolName}`);
|
|
630
|
+
|
|
611
631
|
// Check route-level tools first (if route provided)
|
|
612
632
|
if (route) {
|
|
613
633
|
const routeTool = route
|
|
@@ -623,15 +643,29 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
623
643
|
}
|
|
624
644
|
|
|
625
645
|
/**
|
|
626
|
-
* Collect all available tools for the given route and step context
|
|
646
|
+
* Collect all available tools for the given route and step context using ToolManager
|
|
647
|
+
* Delegates to ToolManager for unified tool resolution and deduplication
|
|
627
648
|
*/
|
|
628
649
|
private collectAvailableTools(
|
|
629
650
|
route?: Route<TContext, TData>,
|
|
630
651
|
step?: Step<TContext, TData>
|
|
631
652
|
): Array<{ id: string; description?: string; parameters?: unknown }> {
|
|
653
|
+
// Use ToolManager for unified tool collection if available
|
|
654
|
+
if (this.toolManager) {
|
|
655
|
+
const availableTools = this.toolManager.getAvailable(undefined, step, route);
|
|
656
|
+
return availableTools.map((tool) => ({
|
|
657
|
+
id: tool.id,
|
|
658
|
+
description: tool.description,
|
|
659
|
+
parameters: tool.parameters,
|
|
660
|
+
}));
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
// Fallback to legacy collection logic if ToolManager not available
|
|
664
|
+
logger.warn(`[ResponsePipeline] ToolManager not available, using legacy tool collection`);
|
|
665
|
+
|
|
632
666
|
const availableTools = new Map<
|
|
633
667
|
string,
|
|
634
|
-
Tool<TContext, TData
|
|
668
|
+
Tool<TContext, TData>
|
|
635
669
|
>();
|
|
636
670
|
|
|
637
671
|
// Add agent-level tools
|
|
@@ -649,7 +683,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
649
683
|
// Filter by step-level allowed tools if specified
|
|
650
684
|
if (step?.tools) {
|
|
651
685
|
const allowedToolIds = new Set<string>();
|
|
652
|
-
const stepTools: Tool<TContext, TData
|
|
686
|
+
const stepTools: Tool<TContext, TData>[] = [];
|
|
653
687
|
|
|
654
688
|
for (const toolRef of step.tools) {
|
|
655
689
|
if (typeof toolRef === "string") {
|
|
@@ -668,7 +702,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
668
702
|
if (allowedToolIds.size > 0) {
|
|
669
703
|
const filteredTools = new Map<
|
|
670
704
|
string,
|
|
671
|
-
Tool<TContext, TData
|
|
705
|
+
Tool<TContext, TData>
|
|
672
706
|
>();
|
|
673
707
|
for (const toolId of Array.from(allowedToolIds)) {
|
|
674
708
|
const tool = availableTools.get(toolId);
|
|
@@ -747,35 +781,35 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
747
781
|
}>;
|
|
748
782
|
}> {
|
|
749
783
|
const { routes, session, context } = params;
|
|
750
|
-
|
|
784
|
+
|
|
751
785
|
// Evaluate all routes for completion
|
|
752
786
|
const completedRoutes: Route<TContext, TData>[] = [];
|
|
753
787
|
const pendingTransitions: Array<{
|
|
754
788
|
route: Route<TContext, TData>;
|
|
755
789
|
transitionConfig: RouteTransitionConfig<TContext, TData>;
|
|
756
790
|
}> = [];
|
|
757
|
-
|
|
791
|
+
|
|
758
792
|
for (const route of routes) {
|
|
759
793
|
if (route.isComplete(session.data || {})) {
|
|
760
794
|
completedRoutes.push(route);
|
|
761
|
-
|
|
795
|
+
|
|
762
796
|
// Check for onComplete transitions
|
|
763
797
|
const transitionConfig = await route.evaluateOnComplete(
|
|
764
798
|
{ data: session.data },
|
|
765
799
|
context
|
|
766
800
|
);
|
|
767
|
-
|
|
801
|
+
|
|
768
802
|
if (transitionConfig) {
|
|
769
803
|
pendingTransitions.push({ route, transitionConfig });
|
|
770
804
|
}
|
|
771
|
-
|
|
805
|
+
|
|
772
806
|
logger.debug(
|
|
773
807
|
`[ResponsePipeline] Route completed: ${route.title} ` +
|
|
774
808
|
`(${Math.round(route.getCompletionProgress(session.data || {}) * 100)}%)`
|
|
775
809
|
);
|
|
776
810
|
}
|
|
777
811
|
}
|
|
778
|
-
|
|
812
|
+
|
|
779
813
|
// Log completion status for all routes
|
|
780
814
|
if (completedRoutes.length > 0) {
|
|
781
815
|
logger.debug(
|
|
@@ -783,7 +817,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
783
817
|
`${completedRoutes.length}/${routes.length} routes complete`
|
|
784
818
|
);
|
|
785
819
|
}
|
|
786
|
-
|
|
820
|
+
|
|
787
821
|
return {
|
|
788
822
|
session,
|
|
789
823
|
completedRoutes,
|
|
@@ -801,15 +835,15 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
801
835
|
routes: Route<TContext, TData>[];
|
|
802
836
|
}): Promise<SessionState<TData>> {
|
|
803
837
|
const { session, dataUpdate, routes } = params;
|
|
804
|
-
|
|
838
|
+
|
|
805
839
|
// Update session data
|
|
806
840
|
const updatedSession = await this.updateData(session, dataUpdate);
|
|
807
|
-
|
|
841
|
+
|
|
808
842
|
// Update agent-level data if handler is available
|
|
809
843
|
if (this.updateCollectedData) {
|
|
810
844
|
await this.updateCollectedData(dataUpdate);
|
|
811
845
|
}
|
|
812
|
-
|
|
846
|
+
|
|
813
847
|
// Evaluate route completions after data update
|
|
814
848
|
const completionResults = await this.handleCrossRouteCompletion({
|
|
815
849
|
routes,
|
|
@@ -817,14 +851,14 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
|
|
|
817
851
|
context: this.context!,
|
|
818
852
|
history: [],
|
|
819
853
|
});
|
|
820
|
-
|
|
854
|
+
|
|
821
855
|
// Log any newly completed routes
|
|
822
856
|
if (completionResults.completedRoutes.length > 0) {
|
|
823
857
|
logger.debug(
|
|
824
858
|
`[ResponsePipeline] Data update resulted in ${completionResults.completedRoutes.length} completed routes`
|
|
825
859
|
);
|
|
826
860
|
}
|
|
827
|
-
|
|
861
|
+
|
|
828
862
|
return completionResults.session;
|
|
829
863
|
}
|
|
830
864
|
}
|