@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
|
@@ -9,8 +9,8 @@ const Route_1 = require("./Route");
|
|
|
9
9
|
const PersistenceManager_1 = require("./PersistenceManager");
|
|
10
10
|
const SessionManager_1 = require("./SessionManager");
|
|
11
11
|
const RoutingEngine_1 = require("./RoutingEngine");
|
|
12
|
-
const ToolExecutor_1 = require("./ToolExecutor");
|
|
13
12
|
const ResponseModal_1 = require("./ResponseModal");
|
|
13
|
+
const ToolManager_1 = require("./ToolManager");
|
|
14
14
|
/**
|
|
15
15
|
* Error thrown when data validation fails
|
|
16
16
|
*/
|
|
@@ -134,12 +134,21 @@ class Agent {
|
|
|
134
134
|
if (options.knowledgeBase) {
|
|
135
135
|
this.knowledgeBase = { ...options.knowledgeBase };
|
|
136
136
|
}
|
|
137
|
-
// Initialize session manager
|
|
138
|
-
this.session = new SessionManager_1.SessionManager(this.persistenceManager);
|
|
137
|
+
// Initialize session manager with reference to this agent for bidirectional sync
|
|
138
|
+
this.session = new SessionManager_1.SessionManager(this.persistenceManager, this);
|
|
139
|
+
// Initialize tool manager with proper type inference
|
|
140
|
+
this.tool = new ToolManager_1.ToolManager(this);
|
|
139
141
|
// Store sessionId for later use in getOrCreate calls
|
|
140
142
|
if (options.sessionId) {
|
|
143
|
+
this.session.setDefaultSessionId(options.sessionId);
|
|
141
144
|
// The session will be loaded on first getOrCreate call
|
|
142
|
-
this.session.getOrCreate(options.sessionId).
|
|
145
|
+
this.session.getOrCreate(options.sessionId).then((session) => {
|
|
146
|
+
// Sync session data to agent collected data
|
|
147
|
+
if (session.data && Object.keys(session.data).length > 0) {
|
|
148
|
+
this.collectedData = { ...session.data };
|
|
149
|
+
utils_1.logger.debug("[Agent] Synced session data to collected data:", this.collectedData);
|
|
150
|
+
}
|
|
151
|
+
}).catch((err) => {
|
|
143
152
|
utils_1.logger.error("Failed to start session", err);
|
|
144
153
|
});
|
|
145
154
|
}
|
|
@@ -221,6 +230,8 @@ class Agent {
|
|
|
221
230
|
* Get the current collected data
|
|
222
231
|
*/
|
|
223
232
|
getCollectedData() {
|
|
233
|
+
// Ensure agent collected data is synced with session
|
|
234
|
+
this.syncSessionDataToCollectedData();
|
|
224
235
|
return { ...this.collectedData };
|
|
225
236
|
}
|
|
226
237
|
/**
|
|
@@ -252,6 +263,12 @@ class Agent {
|
|
|
252
263
|
if (this.currentSession) {
|
|
253
264
|
this.currentSession = (0, utils_1.mergeCollected)(this.currentSession, this.collectedData);
|
|
254
265
|
}
|
|
266
|
+
// Also update the session manager's session data (avoid circular call)
|
|
267
|
+
const sessionManagerSession = this.session.current;
|
|
268
|
+
if (sessionManagerSession) {
|
|
269
|
+
sessionManagerSession.data = { ...this.collectedData };
|
|
270
|
+
sessionManagerSession.metadata.lastUpdatedAt = new Date();
|
|
271
|
+
}
|
|
255
272
|
utils_1.logger.debug("[Agent] Collected data updated:", updates);
|
|
256
273
|
}
|
|
257
274
|
/**
|
|
@@ -298,7 +315,7 @@ class Agent {
|
|
|
298
315
|
`Must be valid keys from agent schema. Available fields: ${Object.keys(this.schema.properties).join(', ')}.`);
|
|
299
316
|
}
|
|
300
317
|
}
|
|
301
|
-
const route = new Route_1.Route(options);
|
|
318
|
+
const route = new Route_1.Route(options, this);
|
|
302
319
|
this.routes.push(route);
|
|
303
320
|
return route;
|
|
304
321
|
}
|
|
@@ -322,17 +339,47 @@ class Agent {
|
|
|
322
339
|
return this;
|
|
323
340
|
}
|
|
324
341
|
/**
|
|
325
|
-
*
|
|
342
|
+
* Add a tool to the agent using the unified Tool interface
|
|
343
|
+
* Creates and adds the tool to agent scope in one operation (BREAKING CHANGE: replaces createTool)
|
|
326
344
|
*/
|
|
345
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
346
|
+
addTool(tool) {
|
|
347
|
+
// Validate tool before adding
|
|
348
|
+
if (!tool || !tool.id || !tool.handler) {
|
|
349
|
+
throw new Error('Invalid tool: must have id and handler properties');
|
|
350
|
+
}
|
|
351
|
+
// Add directly to agent's tools array, preserving the TResult type
|
|
352
|
+
this.tools.push(tool);
|
|
353
|
+
utils_1.logger.debug(`[Agent] Added tool to agent scope: ${tool.id}`);
|
|
354
|
+
return this;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Register a tool at the agent level (legacy method for backward compatibility)
|
|
358
|
+
* @deprecated Use addTool() with Tool interface instead
|
|
359
|
+
*/
|
|
360
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
327
361
|
createTool(tool) {
|
|
362
|
+
// Validate tool before adding
|
|
363
|
+
if (!tool || !tool.id || !tool.handler) {
|
|
364
|
+
throw new Error('Invalid tool: must have id and handler properties');
|
|
365
|
+
}
|
|
328
366
|
this.tools.push(tool);
|
|
367
|
+
utils_1.logger.debug(`[Agent] Created tool (legacy): ${tool.id}`);
|
|
329
368
|
return this;
|
|
330
369
|
}
|
|
331
370
|
/**
|
|
332
371
|
* Register multiple tools at the agent level
|
|
333
372
|
*/
|
|
373
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
334
374
|
registerTools(tools) {
|
|
335
|
-
tools.forEach((tool) =>
|
|
375
|
+
tools.forEach((tool) => {
|
|
376
|
+
// Validate each tool before adding
|
|
377
|
+
if (!tool || !tool.id || !tool.handler) {
|
|
378
|
+
throw new Error(`Invalid tool in batch: must have id and handler properties (tool: ${tool?.id || 'unknown'})`);
|
|
379
|
+
}
|
|
380
|
+
this.tools.push(tool);
|
|
381
|
+
});
|
|
382
|
+
utils_1.logger.debug(`[Agent] Registered ${tools.length} tools`);
|
|
336
383
|
return this;
|
|
337
384
|
}
|
|
338
385
|
/**
|
|
@@ -463,6 +510,46 @@ class Agent {
|
|
|
463
510
|
getGuidelines() {
|
|
464
511
|
return [...this.guidelines];
|
|
465
512
|
}
|
|
513
|
+
/**
|
|
514
|
+
* Evaluate and match active guidelines based on their conditions
|
|
515
|
+
* Returns guidelines that should be active given the current context
|
|
516
|
+
*/
|
|
517
|
+
async evaluateGuidelines(context, session, history) {
|
|
518
|
+
const templateContext = { context, session, history, data: session?.data };
|
|
519
|
+
const evaluator = (0, utils_1.createConditionEvaluator)(templateContext);
|
|
520
|
+
const matches = [];
|
|
521
|
+
for (const guideline of this.guidelines) {
|
|
522
|
+
// Skip disabled guidelines
|
|
523
|
+
if (guideline.enabled === false) {
|
|
524
|
+
continue;
|
|
525
|
+
}
|
|
526
|
+
if (guideline.condition) {
|
|
527
|
+
const evaluation = await evaluator.evaluateCondition(guideline.condition, 'AND');
|
|
528
|
+
// Include guideline if:
|
|
529
|
+
// 1. No programmatic conditions (only strings) - always active
|
|
530
|
+
// 2. Programmatic conditions evaluate to true
|
|
531
|
+
if (!evaluation.hasProgrammaticConditions || evaluation.programmaticResult) {
|
|
532
|
+
const rationale = evaluation.aiContextStrings.length > 0
|
|
533
|
+
? `Condition met: ${evaluation.aiContextStrings.join(" AND ")}`
|
|
534
|
+
: evaluation.hasProgrammaticConditions
|
|
535
|
+
? "Programmatic condition evaluated to true"
|
|
536
|
+
: "Always active (no conditions)";
|
|
537
|
+
matches.push({
|
|
538
|
+
guideline,
|
|
539
|
+
rationale
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
// No condition means always active
|
|
545
|
+
matches.push({
|
|
546
|
+
guideline,
|
|
547
|
+
rationale: "Always active (no conditions)"
|
|
548
|
+
});
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
return matches;
|
|
552
|
+
}
|
|
466
553
|
/**
|
|
467
554
|
* Get the agent's knowledge base
|
|
468
555
|
*/
|
|
@@ -509,38 +596,22 @@ class Agent {
|
|
|
509
596
|
// It's a tool reference - find and execute the tool
|
|
510
597
|
let tool;
|
|
511
598
|
if (typeof prepareOrFinalize === "string") {
|
|
512
|
-
// Tool ID - find it
|
|
513
|
-
|
|
514
|
-
// Add agent-level tools
|
|
515
|
-
this.tools.forEach((t) => {
|
|
516
|
-
availableTools.set(t.id, t);
|
|
517
|
-
});
|
|
518
|
-
// Add route-level tools
|
|
519
|
-
if (route) {
|
|
520
|
-
route.getTools().forEach((t) => {
|
|
521
|
-
availableTools.set(t.id, t);
|
|
522
|
-
});
|
|
523
|
-
}
|
|
524
|
-
// Add step-level tools
|
|
525
|
-
if (step?.tools) {
|
|
526
|
-
for (const toolRef of step.tools) {
|
|
527
|
-
if (typeof toolRef === "string") {
|
|
528
|
-
// Keep as is
|
|
529
|
-
}
|
|
530
|
-
else if (toolRef.id) {
|
|
531
|
-
availableTools.set(toolRef.id, toolRef);
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
tool = availableTools.get(prepareOrFinalize);
|
|
599
|
+
// Tool ID - use ToolManager to find it across all scopes
|
|
600
|
+
tool = this.tool.find(prepareOrFinalize, undefined, step, route);
|
|
536
601
|
}
|
|
537
602
|
else {
|
|
538
|
-
// Tool object -
|
|
539
|
-
|
|
603
|
+
// Tool object - validate it has required properties
|
|
604
|
+
if (prepareOrFinalize.id && typeof prepareOrFinalize.handler === 'function') {
|
|
605
|
+
tool = prepareOrFinalize;
|
|
606
|
+
}
|
|
607
|
+
else {
|
|
608
|
+
utils_1.logger.error(`[Agent] Invalid tool object for prepare/finalize: missing id or invalid handler`);
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
540
611
|
}
|
|
541
612
|
if (tool) {
|
|
542
|
-
|
|
543
|
-
const result = await
|
|
613
|
+
// Use ToolManager for execution
|
|
614
|
+
const result = await this.tool.executeTool({
|
|
544
615
|
tool,
|
|
545
616
|
context,
|
|
546
617
|
updateContext: this.updateContext.bind(this),
|
|
@@ -566,12 +637,25 @@ class Agent {
|
|
|
566
637
|
clearCurrentSession() {
|
|
567
638
|
this.currentSession = undefined;
|
|
568
639
|
}
|
|
640
|
+
/**
|
|
641
|
+
* Sync session data to agent collected data
|
|
642
|
+
* @internal Used to keep agent and session data in sync
|
|
643
|
+
*/
|
|
644
|
+
syncSessionDataToCollectedData() {
|
|
645
|
+
const sessionData = this.session.getData();
|
|
646
|
+
if (sessionData && Object.keys(sessionData).length > 0) {
|
|
647
|
+
this.collectedData = { ...sessionData };
|
|
648
|
+
utils_1.logger.debug("[Agent] Synced session data to collected data:", this.collectedData);
|
|
649
|
+
}
|
|
650
|
+
}
|
|
569
651
|
/**
|
|
570
652
|
* Get collected data from current session or agent-level collected data
|
|
571
653
|
* @param routeId - Optional route ID to get data for (uses current route if not provided)
|
|
572
654
|
* @returns The collected data from the current session or agent-level data
|
|
573
655
|
*/
|
|
574
656
|
getData() {
|
|
657
|
+
// Ensure agent collected data is synced with session
|
|
658
|
+
this.syncSessionDataToCollectedData();
|
|
575
659
|
// If we have a current session, use session data
|
|
576
660
|
if (this.currentSession) {
|
|
577
661
|
// With agent-level data, all routes share the same data structure
|
|
@@ -610,12 +694,12 @@ class Agent {
|
|
|
610
694
|
.map((r) => r.title)
|
|
611
695
|
.join(", ")}`);
|
|
612
696
|
}
|
|
613
|
-
const templateContext = {
|
|
697
|
+
const templateContext = (0, utils_1.createTemplateContext)({
|
|
614
698
|
context: this.context,
|
|
615
699
|
session,
|
|
616
700
|
history,
|
|
617
701
|
data: this.currentSession?.data,
|
|
618
|
-
};
|
|
702
|
+
});
|
|
619
703
|
const renderedCondition = await (0, utils_1.render)(condition, templateContext);
|
|
620
704
|
const updatedSession = {
|
|
621
705
|
...targetSession,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BatchExecutor - Core component for multi-step execution
|
|
3
|
+
*
|
|
4
|
+
* Responsible for determining which Steps can execute together in a single batch
|
|
5
|
+
* and orchestrating their execution with a single LLM call.
|
|
6
|
+
*/
|
|
7
|
+
import type { BatchResult, StepOptions, BatchExecutionError, BatchExecutionResult, BatchExecutionEventListener } from '../types/route';
|
|
8
|
+
import type { SessionState } from '../types/session';
|
|
9
|
+
import type { Tool } from '../types/tool';
|
|
10
|
+
import type { StructuredSchema } from '../types/schema';
|
|
11
|
+
import { Step } from './Step';
|
|
12
|
+
import { Route } from './Route';
|
|
13
|
+
/**
|
|
14
|
+
* Step configuration relevant for needs-input detection
|
|
15
|
+
*/
|
|
16
|
+
export interface NeedsInputStep {
|
|
17
|
+
/** Required data fields that must be present before entering this step */
|
|
18
|
+
requires?: readonly (string | number | symbol)[];
|
|
19
|
+
/** Fields to collect from the conversation in this step */
|
|
20
|
+
collect?: readonly (string | number | symbol)[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Determine if a Step needs user input to proceed
|
|
24
|
+
*
|
|
25
|
+
* IMPORTANT: sessionData MUST already include pre-extracted fields.
|
|
26
|
+
* This function is called AFTER pre-extraction has been merged into session data.
|
|
27
|
+
*
|
|
28
|
+
* A Step needs input when:
|
|
29
|
+
* 1. It has `requires` fields and at least one is missing from session data (after pre-extraction)
|
|
30
|
+
* 2. It has non-empty `collect` fields and none of those fields have data (after pre-extraction)
|
|
31
|
+
*
|
|
32
|
+
* @param step - The Step to evaluate (can be Step instance or StepOptions)
|
|
33
|
+
* @param sessionDataAfterPreExtraction - Session data with pre-extracted fields already merged
|
|
34
|
+
* @returns true if the step needs user input, false otherwise
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // Step with requires - needs input if any required field is missing
|
|
39
|
+
* const step = { requires: ['name', 'email'], collect: [] };
|
|
40
|
+
* needsInput(step, { name: 'John' }); // true - email is missing
|
|
41
|
+
* needsInput(step, { name: 'John', email: 'john@example.com' }); // false - all present
|
|
42
|
+
*
|
|
43
|
+
* // Step with collect - needs input if no collect fields have data
|
|
44
|
+
* const step2 = { collect: ['preference', 'feedback'] };
|
|
45
|
+
* needsInput(step2, {}); // true - no collect fields have data
|
|
46
|
+
* needsInput(step2, { preference: 'A' }); // false - at least one has data
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* **Validates: Requirements 1.2, 1.3**
|
|
50
|
+
*/
|
|
51
|
+
export declare function needsInput<TData extends Record<string, unknown> = Record<string, unknown>>(step: NeedsInputStep, sessionDataAfterPreExtraction: Partial<TData>): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Parameters for batch determination
|
|
54
|
+
*/
|
|
55
|
+
export interface DetermineBatchParams<TContext, TData> {
|
|
56
|
+
/** The route containing the steps */
|
|
57
|
+
route: Route<TContext, TData>;
|
|
58
|
+
/** The current step to start from (undefined means start from initial step) */
|
|
59
|
+
currentStep: Step<TContext, TData> | undefined;
|
|
60
|
+
/** Session data with pre-extracted fields already merged */
|
|
61
|
+
sessionData: Partial<TData>;
|
|
62
|
+
/** Agent context for condition evaluation */
|
|
63
|
+
context: TContext;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* BatchExecutor class - orchestrates multi-step execution
|
|
67
|
+
*
|
|
68
|
+
* Determines which Steps can execute together in a single batch based on:
|
|
69
|
+
* - skipIf conditions (skip steps that evaluate to true)
|
|
70
|
+
* - needsInput detection (stop when a step needs user input)
|
|
71
|
+
* - END_ROUTE detection (stop when reaching end of route)
|
|
72
|
+
*
|
|
73
|
+
* Supports event emission for debugging and observability:
|
|
74
|
+
* - batch_start: Emitted when batch determination begins
|
|
75
|
+
* - step_included: Emitted when a step is included in the batch
|
|
76
|
+
* - step_skipped: Emitted when a step is skipped (due to skipIf)
|
|
77
|
+
* - batch_stop: Emitted when batch determination stops
|
|
78
|
+
* - batch_complete: Emitted when batch execution completes
|
|
79
|
+
*
|
|
80
|
+
* **Validates: Requirements 1.1, 1.4, 1.5, 7.1, 7.2, 7.3, 11.1, 11.2, 11.3**
|
|
81
|
+
*/
|
|
82
|
+
export declare class BatchExecutor<TContext = unknown, TData = unknown> {
|
|
83
|
+
/** Event listeners for batch execution events */
|
|
84
|
+
private eventListeners;
|
|
85
|
+
/**
|
|
86
|
+
* Add an event listener for batch execution events
|
|
87
|
+
*
|
|
88
|
+
* @param listener - Callback function to receive events
|
|
89
|
+
* @returns Function to remove the listener
|
|
90
|
+
*
|
|
91
|
+
* **Validates: Requirements 11.3**
|
|
92
|
+
*/
|
|
93
|
+
addEventListener(listener: BatchExecutionEventListener): () => void;
|
|
94
|
+
/**
|
|
95
|
+
* Remove an event listener
|
|
96
|
+
*
|
|
97
|
+
* @param listener - The listener to remove
|
|
98
|
+
*/
|
|
99
|
+
removeEventListener(listener: BatchExecutionEventListener): void;
|
|
100
|
+
/**
|
|
101
|
+
* Emit a batch execution event to all listeners
|
|
102
|
+
*
|
|
103
|
+
* @param event - The event to emit
|
|
104
|
+
* @private
|
|
105
|
+
*/
|
|
106
|
+
private emitEvent;
|
|
107
|
+
/**
|
|
108
|
+
* Create and emit a batch execution event
|
|
109
|
+
*
|
|
110
|
+
* @param type - Event type
|
|
111
|
+
* @param details - Event details
|
|
112
|
+
* @private
|
|
113
|
+
*/
|
|
114
|
+
private emitBatchEvent;
|
|
115
|
+
/**
|
|
116
|
+
* Determine which Steps can execute in the current batch
|
|
117
|
+
* starting from the given Step position.
|
|
118
|
+
*
|
|
119
|
+
* Algorithm:
|
|
120
|
+
* 1. Start from currentStep (or initialStep if undefined)
|
|
121
|
+
* 2. For each step:
|
|
122
|
+
* a. Check if it's END_ROUTE - stop with 'end_route'
|
|
123
|
+
* b. Evaluate skipIf condition
|
|
124
|
+
* c. If skipIf is true - skip step, continue to next
|
|
125
|
+
* d. If skipIf throws error - treat as non-skippable (Requirement 7.3)
|
|
126
|
+
* e. Evaluate needsInput
|
|
127
|
+
* f. If needsInput is false - include in batch, continue to next
|
|
128
|
+
* g. If needsInput is true - stop with 'needs_input'
|
|
129
|
+
* 3. If all steps processed - stop with 'route_complete'
|
|
130
|
+
*
|
|
131
|
+
* @param params - Parameters for batch determination
|
|
132
|
+
* @returns BatchResult with steps to execute and stopping reason
|
|
133
|
+
*
|
|
134
|
+
* **Validates: Requirements 1.1, 1.4, 1.5, 7.1, 7.2, 7.3**
|
|
135
|
+
*/
|
|
136
|
+
determineBatch(params: DetermineBatchParams<TContext, TData>): Promise<BatchResult<TContext, TData>>;
|
|
137
|
+
/**
|
|
138
|
+
* Execute prepare hooks for all steps in the batch
|
|
139
|
+
*
|
|
140
|
+
* Executes all prepare hooks in Step order before the LLM call.
|
|
141
|
+
* If any prepare hook fails, execution stops immediately and returns an error.
|
|
142
|
+
*
|
|
143
|
+
* @param params - Parameters for hook execution
|
|
144
|
+
* @returns Result indicating success or failure with error details
|
|
145
|
+
*
|
|
146
|
+
* **Validates: Requirements 5.1, 5.3, 5.4**
|
|
147
|
+
*/
|
|
148
|
+
executePrepareHooks(params: ExecuteHooksParams<TContext, TData>): Promise<HookExecutionResult>;
|
|
149
|
+
/**
|
|
150
|
+
* Execute finalize hooks for all steps in the batch
|
|
151
|
+
*
|
|
152
|
+
* Executes all finalize hooks in Step order after the LLM response.
|
|
153
|
+
* If a finalize hook fails, the error is logged but execution continues
|
|
154
|
+
* with remaining hooks.
|
|
155
|
+
*
|
|
156
|
+
* @param params - Parameters for hook execution
|
|
157
|
+
* @returns Result with any errors that occurred (always succeeds)
|
|
158
|
+
*
|
|
159
|
+
* **Validates: Requirements 5.2, 5.3, 5.5**
|
|
160
|
+
*/
|
|
161
|
+
executeFinalizeHooks(params: ExecuteHooksParams<TContext, TData>): Promise<HookExecutionResult>;
|
|
162
|
+
/**
|
|
163
|
+
* Execute all hooks for a batch of steps
|
|
164
|
+
*
|
|
165
|
+
* This is a convenience method that executes prepare hooks, then allows
|
|
166
|
+
* the caller to perform the LLM call, and finally executes finalize hooks.
|
|
167
|
+
*
|
|
168
|
+
* @param params - Parameters for hook execution
|
|
169
|
+
* @returns Object with methods to execute prepare and finalize phases
|
|
170
|
+
*
|
|
171
|
+
* **Validates: Requirements 5.1, 5.2, 5.3, 5.4, 5.5**
|
|
172
|
+
*/
|
|
173
|
+
createHookExecutor(params: ExecuteHooksParams<TContext, TData>): HookExecutor<TContext, TData>;
|
|
174
|
+
/**
|
|
175
|
+
* Execute a batch of steps with comprehensive error handling
|
|
176
|
+
*
|
|
177
|
+
* This method orchestrates the complete batch execution flow:
|
|
178
|
+
* 1. Execute prepare hooks (stop on failure)
|
|
179
|
+
* 2. Make LLM call (preserve session state on failure)
|
|
180
|
+
* 3. Collect and validate data (include errors in response)
|
|
181
|
+
* 4. Execute finalize hooks (continue on failure, log errors)
|
|
182
|
+
*
|
|
183
|
+
* Error handling behavior:
|
|
184
|
+
* - LLM call failures: Return error response with last successful session state
|
|
185
|
+
* - Validation failures: Include validation errors in response, preserve partial data
|
|
186
|
+
* - Prepare hook failures: Stop execution, return error with appropriate stoppedReason
|
|
187
|
+
* - Finalize hook failures: Log errors, continue execution (non-fatal)
|
|
188
|
+
*
|
|
189
|
+
* @param params - Parameters for batch execution
|
|
190
|
+
* @returns BatchExecutionResult with message, session, executed steps, and any errors
|
|
191
|
+
*
|
|
192
|
+
* **Validates: Requirements 9.1, 9.2, 9.3, 2.4**
|
|
193
|
+
*/
|
|
194
|
+
executeBatch(params: ExecuteBatchParams<TContext, TData>): Promise<BatchExecutionResult<TData>>;
|
|
195
|
+
/**
|
|
196
|
+
* Collect data from LLM response for all steps in the batch
|
|
197
|
+
*
|
|
198
|
+
* This method:
|
|
199
|
+
* 1. Gathers all collect fields from all steps in the batch
|
|
200
|
+
* 2. Extracts those fields from the LLM response
|
|
201
|
+
* 3. Validates extracted data against the agent schema (if provided)
|
|
202
|
+
* 4. Updates session data with all collected values
|
|
203
|
+
*
|
|
204
|
+
* @param params - Parameters for data collection
|
|
205
|
+
* @returns Result with collected data, updated session, and any validation errors
|
|
206
|
+
*
|
|
207
|
+
* **Validates: Requirements 6.1, 6.2, 6.3**
|
|
208
|
+
*/
|
|
209
|
+
collectBatchData(params: CollectBatchDataParams<TData>): CollectBatchDataResult<TData>;
|
|
210
|
+
/**
|
|
211
|
+
* Validate data against a JSON schema
|
|
212
|
+
*
|
|
213
|
+
* Performs basic validation of collected data against the agent schema.
|
|
214
|
+
* Checks:
|
|
215
|
+
* - Fields exist in schema properties
|
|
216
|
+
* - Required fields are present (as warnings)
|
|
217
|
+
* - Basic type validation
|
|
218
|
+
*
|
|
219
|
+
* @param data - Data to validate
|
|
220
|
+
* @param schema - JSON schema to validate against
|
|
221
|
+
* @returns Validation result with errors
|
|
222
|
+
* @private
|
|
223
|
+
*/
|
|
224
|
+
private validateAgainstSchema;
|
|
225
|
+
/**
|
|
226
|
+
* Validate a single field's type against its schema
|
|
227
|
+
* @private
|
|
228
|
+
*/
|
|
229
|
+
private validateFieldType;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Parameters for executing hooks on batched steps
|
|
233
|
+
*/
|
|
234
|
+
export interface ExecuteHooksParams<TContext, TData> {
|
|
235
|
+
/** Steps in the batch to execute hooks for */
|
|
236
|
+
steps: StepOptions<TContext, TData>[];
|
|
237
|
+
/** Agent context */
|
|
238
|
+
context: TContext;
|
|
239
|
+
/** Current session data */
|
|
240
|
+
data?: Partial<TData>;
|
|
241
|
+
/**
|
|
242
|
+
* Function to execute a single hook (prepare or finalize)
|
|
243
|
+
* This allows the caller to provide their own hook execution logic
|
|
244
|
+
* (e.g., using ToolManager for tool-based hooks)
|
|
245
|
+
*/
|
|
246
|
+
executeHook: (hook: HookFunction<TContext, TData>, context: TContext, data?: Partial<TData>, step?: StepOptions<TContext, TData>) => Promise<void>;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Type for the hook execution function
|
|
250
|
+
*/
|
|
251
|
+
export type HookFunction<TContext, TData> = string | Tool<TContext, TData> | ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
252
|
+
/**
|
|
253
|
+
* Result of hook execution
|
|
254
|
+
*/
|
|
255
|
+
export interface HookExecutionResult {
|
|
256
|
+
/** Whether all hooks executed successfully */
|
|
257
|
+
success: boolean;
|
|
258
|
+
/** IDs of steps whose hooks were executed */
|
|
259
|
+
executedSteps: string[];
|
|
260
|
+
/** Error details if a hook failed (for prepare hooks) */
|
|
261
|
+
error?: BatchExecutionError;
|
|
262
|
+
/** Array of errors for finalize hooks (which continue on failure) */
|
|
263
|
+
errors?: Array<{
|
|
264
|
+
stepId: string;
|
|
265
|
+
error: BatchExecutionError;
|
|
266
|
+
}>;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Hook executor interface for managing prepare/finalize phases
|
|
270
|
+
*/
|
|
271
|
+
export interface HookExecutor<TContext, TData> {
|
|
272
|
+
/** Execute all prepare hooks */
|
|
273
|
+
executePrepare: () => Promise<HookExecutionResult>;
|
|
274
|
+
/** Execute all finalize hooks */
|
|
275
|
+
executeFinalize: () => Promise<HookExecutionResult>;
|
|
276
|
+
/** Execute a single hook (used internally) */
|
|
277
|
+
executeHook?: (hook: HookFunction<TContext, TData>, context: TContext, data?: Partial<TData>, step?: StepOptions<TContext, TData>) => Promise<void>;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Parameters for collecting batch data from LLM response
|
|
281
|
+
*/
|
|
282
|
+
export interface CollectBatchDataParams<TData> {
|
|
283
|
+
/** Steps in the batch that may have collect fields */
|
|
284
|
+
steps: Array<{
|
|
285
|
+
collect?: readonly (keyof TData)[];
|
|
286
|
+
}>;
|
|
287
|
+
/** The LLM response containing collected data */
|
|
288
|
+
llmResponse: Record<string, unknown>;
|
|
289
|
+
/** Current session state to update */
|
|
290
|
+
session: SessionState<TData>;
|
|
291
|
+
/** Optional agent schema for validation */
|
|
292
|
+
schema?: StructuredSchema;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Result of batch data collection
|
|
296
|
+
*/
|
|
297
|
+
export interface CollectBatchDataResult<TData> {
|
|
298
|
+
/** Whether data collection and validation succeeded */
|
|
299
|
+
success: boolean;
|
|
300
|
+
/** Data collected from the LLM response */
|
|
301
|
+
collectedData: Partial<TData>;
|
|
302
|
+
/** Updated session with collected data merged */
|
|
303
|
+
session: SessionState<TData>;
|
|
304
|
+
/** Fields that were successfully collected */
|
|
305
|
+
fieldsCollected: string[];
|
|
306
|
+
/** Fields that were expected but not found in response */
|
|
307
|
+
fieldsMissing?: string[];
|
|
308
|
+
/** Validation errors if schema validation failed */
|
|
309
|
+
validationErrors?: ValidationError[];
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Validation error for schema validation
|
|
313
|
+
*/
|
|
314
|
+
export interface ValidationError {
|
|
315
|
+
/** Field that failed validation */
|
|
316
|
+
field: string;
|
|
317
|
+
/** Value that failed validation */
|
|
318
|
+
value: unknown;
|
|
319
|
+
/** Error message */
|
|
320
|
+
message: string;
|
|
321
|
+
/** Path in schema where validation failed */
|
|
322
|
+
schemaPath: string;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Parameters for executing a batch of steps
|
|
326
|
+
*/
|
|
327
|
+
export interface ExecuteBatchParams<TContext, TData> {
|
|
328
|
+
/** The batch result from determineBatch */
|
|
329
|
+
batch: BatchResult<TContext, TData>;
|
|
330
|
+
/** Current session state */
|
|
331
|
+
session: SessionState<TData>;
|
|
332
|
+
/** Agent context */
|
|
333
|
+
context: TContext;
|
|
334
|
+
/**
|
|
335
|
+
* Function to execute a single hook (prepare or finalize)
|
|
336
|
+
* This allows the caller to provide their own hook execution logic
|
|
337
|
+
*/
|
|
338
|
+
executeHook: (hook: HookFunction<TContext, TData>, context: TContext, data?: Partial<TData>, step?: StepOptions<TContext, TData>) => Promise<void>;
|
|
339
|
+
/**
|
|
340
|
+
* Function to generate the LLM message
|
|
341
|
+
* This allows the caller to provide their own LLM call logic
|
|
342
|
+
* (e.g., using BatchPromptBuilder and AI provider)
|
|
343
|
+
*/
|
|
344
|
+
generateMessage: () => Promise<{
|
|
345
|
+
message: string;
|
|
346
|
+
structured?: Record<string, unknown>;
|
|
347
|
+
}>;
|
|
348
|
+
/** Optional agent schema for validation */
|
|
349
|
+
schema?: StructuredSchema;
|
|
350
|
+
/** Route ID for step references */
|
|
351
|
+
routeId?: string;
|
|
352
|
+
}
|
|
353
|
+
//# sourceMappingURL=BatchExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BatchExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/BatchExecutor.ts"],"names":[],"mappings":"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"}
|