@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
|
@@ -13,7 +13,7 @@ import type {
|
|
|
13
13
|
AgentStructuredResponse,
|
|
14
14
|
StructuredSchema,
|
|
15
15
|
} from "../types";
|
|
16
|
-
import { withTimeoutAndRetry } from "../utils
|
|
16
|
+
import { withTimeoutAndRetry, logger } from "../utils";
|
|
17
17
|
import { FunctionParameters } from "openai/resources/shared.mjs";
|
|
18
18
|
|
|
19
19
|
const DEFAULT_RETRY_CONFIG = {
|
|
@@ -207,7 +207,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
207
207
|
);
|
|
208
208
|
} catch (primaryError: unknown) {
|
|
209
209
|
const primaryErrMsg = getErrorMessage(primaryError);
|
|
210
|
-
|
|
210
|
+
logger.warn(
|
|
211
211
|
`[OPENAI] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
|
|
212
212
|
);
|
|
213
213
|
|
|
@@ -215,13 +215,13 @@ export class OpenAIProvider implements AiProvider {
|
|
|
215
215
|
throw primaryError;
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
|
|
218
|
+
logger.debug(`[OPENAI] Trying backup models`);
|
|
219
219
|
|
|
220
220
|
let lastBackupError: unknown = primaryError;
|
|
221
221
|
|
|
222
222
|
for (let i = 0; i < this.backupModels.length; i++) {
|
|
223
223
|
const backupModel = this.backupModels[i];
|
|
224
|
-
|
|
224
|
+
logger.debug(
|
|
225
225
|
`[OPENAI] Trying backup model ${i + 1}/${
|
|
226
226
|
this.backupModels.length
|
|
227
227
|
}: ${backupModel}`
|
|
@@ -229,11 +229,11 @@ export class OpenAIProvider implements AiProvider {
|
|
|
229
229
|
|
|
230
230
|
try {
|
|
231
231
|
const result = await this.generateWithModel(backupModel, input);
|
|
232
|
-
|
|
232
|
+
logger.debug(`[OPENAI] Backup model ${backupModel} succeeded`);
|
|
233
233
|
return result as GenerateMessageOutput<TStructured>;
|
|
234
234
|
} catch (backupError: unknown) {
|
|
235
235
|
const backupErrMsg = getErrorMessage(backupError);
|
|
236
|
-
|
|
236
|
+
logger.warn(
|
|
237
237
|
`[OPENAI] Backup model ${backupModel} failed: ${backupErrMsg}`
|
|
238
238
|
);
|
|
239
239
|
lastBackupError = backupError;
|
|
@@ -242,7 +242,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
242
242
|
!shouldUseBackupModel(backupError) &&
|
|
243
243
|
i < this.backupModels.length - 1
|
|
244
244
|
) {
|
|
245
|
-
|
|
245
|
+
logger.debug(
|
|
246
246
|
`[OPENAI] Backup model error doesn't qualify for further attempts`
|
|
247
247
|
);
|
|
248
248
|
break;
|
|
@@ -251,7 +251,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
251
251
|
}
|
|
252
252
|
|
|
253
253
|
const lastBackupErrMsg = getErrorMessage(lastBackupError);
|
|
254
|
-
|
|
254
|
+
logger.error(
|
|
255
255
|
`[OPENAI] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
|
|
256
256
|
);
|
|
257
257
|
throw lastBackupError;
|
|
@@ -355,7 +355,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
355
355
|
toolCall.function.arguments
|
|
356
356
|
) as Record<string, unknown>;
|
|
357
357
|
} catch (error) {
|
|
358
|
-
|
|
358
|
+
logger.warn(
|
|
359
359
|
`[OPENAI] Failed to parse tool call arguments: ${getErrorMessage(
|
|
360
360
|
error
|
|
361
361
|
)}`
|
|
@@ -408,7 +408,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
408
408
|
);
|
|
409
409
|
} catch (primaryError: unknown) {
|
|
410
410
|
const primaryErrMsg = getErrorMessage(primaryError);
|
|
411
|
-
|
|
411
|
+
logger.warn(
|
|
412
412
|
`[OPENAI] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
|
|
413
413
|
);
|
|
414
414
|
|
|
@@ -416,13 +416,13 @@ export class OpenAIProvider implements AiProvider {
|
|
|
416
416
|
throw primaryError;
|
|
417
417
|
}
|
|
418
418
|
|
|
419
|
-
|
|
419
|
+
logger.debug(`[OPENAI] Trying backup models for streaming`);
|
|
420
420
|
|
|
421
421
|
let lastBackupError: unknown = primaryError;
|
|
422
422
|
|
|
423
423
|
for (let i = 0; i < this.backupModels.length; i++) {
|
|
424
424
|
const backupModel = this.backupModels[i];
|
|
425
|
-
|
|
425
|
+
logger.debug(
|
|
426
426
|
`[OPENAI] Trying backup model ${i + 1}/${
|
|
427
427
|
this.backupModels.length
|
|
428
428
|
}: ${backupModel}`
|
|
@@ -433,11 +433,11 @@ export class OpenAIProvider implements AiProvider {
|
|
|
433
433
|
backupModel,
|
|
434
434
|
input
|
|
435
435
|
);
|
|
436
|
-
|
|
436
|
+
logger.debug(`[OPENAI] Backup model ${backupModel} succeeded`);
|
|
437
437
|
return;
|
|
438
438
|
} catch (backupError: unknown) {
|
|
439
439
|
const backupErrMsg = getErrorMessage(backupError);
|
|
440
|
-
|
|
440
|
+
logger.warn(
|
|
441
441
|
`[OPENAI] Backup model ${backupModel} failed: ${backupErrMsg}`
|
|
442
442
|
);
|
|
443
443
|
lastBackupError = backupError;
|
|
@@ -446,7 +446,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
446
446
|
!shouldUseBackupModel(backupError) &&
|
|
447
447
|
i < this.backupModels.length - 1
|
|
448
448
|
) {
|
|
449
|
-
|
|
449
|
+
logger.debug(
|
|
450
450
|
`[OPENAI] Backup model error doesn't qualify for further attempts`
|
|
451
451
|
);
|
|
452
452
|
break;
|
|
@@ -455,7 +455,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
455
455
|
}
|
|
456
456
|
|
|
457
457
|
const lastBackupErrMsg = getErrorMessage(lastBackupError);
|
|
458
|
-
|
|
458
|
+
logger.error(
|
|
459
459
|
`[OPENAI] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
|
|
460
460
|
);
|
|
461
461
|
throw lastBackupError;
|
|
@@ -535,7 +535,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
535
535
|
>)
|
|
536
536
|
: {};
|
|
537
537
|
} catch (error) {
|
|
538
|
-
|
|
538
|
+
logger.warn(
|
|
539
539
|
`[OPENAI] Failed to parse tool call arguments in stream: ${getErrorMessage(
|
|
540
540
|
error
|
|
541
541
|
)}`
|
|
@@ -577,7 +577,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
577
577
|
try {
|
|
578
578
|
structured = JSON.parse(accumulated) as TStructured;
|
|
579
579
|
} catch (error) {
|
|
580
|
-
|
|
580
|
+
logger.warn(
|
|
581
581
|
"[OPENAI] Failed to parse JSON response in stream:",
|
|
582
582
|
error
|
|
583
583
|
);
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
GenerateMessageStreamChunk,
|
|
16
16
|
StructuredSchema,
|
|
17
17
|
} from "../types";
|
|
18
|
-
import { withTimeoutAndRetry } from "../utils
|
|
18
|
+
import { withTimeoutAndRetry, logger } from "../utils";
|
|
19
19
|
|
|
20
20
|
const DEFAULT_RETRY_CONFIG = {
|
|
21
21
|
timeout: 60000,
|
|
@@ -214,7 +214,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
214
214
|
return await this.generateWithModel(this.primaryModel, input);
|
|
215
215
|
} catch (primaryError: unknown) {
|
|
216
216
|
const primaryErrMsg = getErrorMessage(primaryError);
|
|
217
|
-
|
|
217
|
+
logger.warn(
|
|
218
218
|
`[OPENROUTER] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
|
|
219
219
|
);
|
|
220
220
|
|
|
@@ -222,13 +222,13 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
222
222
|
throw primaryError;
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
-
|
|
225
|
+
logger.debug(`[OPENROUTER] Trying backup models`);
|
|
226
226
|
|
|
227
227
|
let lastBackupError: unknown = primaryError;
|
|
228
228
|
|
|
229
229
|
for (let i = 0; i < this.backupModels.length; i++) {
|
|
230
230
|
const backupModel = this.backupModels[i];
|
|
231
|
-
|
|
231
|
+
logger.debug(
|
|
232
232
|
`[OPENROUTER] Trying backup model ${i + 1}/${
|
|
233
233
|
this.backupModels.length
|
|
234
234
|
}: ${backupModel}`
|
|
@@ -236,11 +236,11 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
236
236
|
|
|
237
237
|
try {
|
|
238
238
|
const result = await this.generateWithModel(backupModel, input);
|
|
239
|
-
|
|
239
|
+
logger.debug(`[OPENROUTER] Backup model ${backupModel} succeeded`);
|
|
240
240
|
return result as GenerateMessageOutput<TStructured>;
|
|
241
241
|
} catch (backupError: unknown) {
|
|
242
242
|
const backupErrMsg = getErrorMessage(backupError);
|
|
243
|
-
|
|
243
|
+
logger.warn(
|
|
244
244
|
`[OPENROUTER] Backup model ${backupModel} failed: ${backupErrMsg}`
|
|
245
245
|
);
|
|
246
246
|
lastBackupError = backupError;
|
|
@@ -249,7 +249,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
249
249
|
!shouldUseBackupModel(backupError) &&
|
|
250
250
|
i < this.backupModels.length - 1
|
|
251
251
|
) {
|
|
252
|
-
|
|
252
|
+
logger.debug(
|
|
253
253
|
`[OPENROUTER] Backup model error doesn't qualify for further attempts`
|
|
254
254
|
);
|
|
255
255
|
break;
|
|
@@ -258,7 +258,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
258
258
|
}
|
|
259
259
|
|
|
260
260
|
const lastBackupErrMsg = getErrorMessage(lastBackupError);
|
|
261
|
-
|
|
261
|
+
logger.error(
|
|
262
262
|
`[OPENROUTER] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
|
|
263
263
|
);
|
|
264
264
|
throw lastBackupError;
|
|
@@ -364,7 +364,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
364
364
|
toolCall.function.arguments
|
|
365
365
|
) as Record<string, unknown>;
|
|
366
366
|
} catch (error) {
|
|
367
|
-
|
|
367
|
+
logger.warn(
|
|
368
368
|
`[OPENROUTER] Failed to parse tool call arguments: ${getErrorMessage(
|
|
369
369
|
error
|
|
370
370
|
)}`
|
|
@@ -413,7 +413,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
413
413
|
yield* this.generateStreamWithModel(this.primaryModel, input);
|
|
414
414
|
} catch (primaryError: unknown) {
|
|
415
415
|
const primaryErrMsg = getErrorMessage(primaryError);
|
|
416
|
-
|
|
416
|
+
logger.warn(
|
|
417
417
|
`[OPENROUTER] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
|
|
418
418
|
);
|
|
419
419
|
|
|
@@ -421,13 +421,13 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
421
421
|
throw primaryError;
|
|
422
422
|
}
|
|
423
423
|
|
|
424
|
-
|
|
424
|
+
logger.debug(`[OPENROUTER] Trying backup models for streaming`);
|
|
425
425
|
|
|
426
426
|
let lastBackupError: unknown = primaryError;
|
|
427
427
|
|
|
428
428
|
for (let i = 0; i < this.backupModels.length; i++) {
|
|
429
429
|
const backupModel = this.backupModels[i];
|
|
430
|
-
|
|
430
|
+
logger.debug(
|
|
431
431
|
`[OPENROUTER] Trying backup model ${i + 1}/${
|
|
432
432
|
this.backupModels.length
|
|
433
433
|
}: ${backupModel}`
|
|
@@ -435,11 +435,11 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
435
435
|
|
|
436
436
|
try {
|
|
437
437
|
yield* this.generateStreamWithModel(backupModel, input);
|
|
438
|
-
|
|
438
|
+
logger.debug(`[OPENROUTER] Backup model ${backupModel} succeeded`);
|
|
439
439
|
return;
|
|
440
440
|
} catch (backupError: unknown) {
|
|
441
441
|
const backupErrMsg = getErrorMessage(backupError);
|
|
442
|
-
|
|
442
|
+
logger.warn(
|
|
443
443
|
`[OPENROUTER] Backup model ${backupModel} failed: ${backupErrMsg}`
|
|
444
444
|
);
|
|
445
445
|
lastBackupError = backupError;
|
|
@@ -448,7 +448,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
448
448
|
!shouldUseBackupModel(backupError) &&
|
|
449
449
|
i < this.backupModels.length - 1
|
|
450
450
|
) {
|
|
451
|
-
|
|
451
|
+
logger.debug(
|
|
452
452
|
`[OPENROUTER] Backup model error doesn't qualify for further attempts`
|
|
453
453
|
);
|
|
454
454
|
break;
|
|
@@ -457,7 +457,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
457
457
|
}
|
|
458
458
|
|
|
459
459
|
const lastBackupErrMsg = getErrorMessage(lastBackupError);
|
|
460
|
-
|
|
460
|
+
logger.error(
|
|
461
461
|
`[OPENROUTER] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
|
|
462
462
|
);
|
|
463
463
|
throw lastBackupError;
|
|
@@ -537,7 +537,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
537
537
|
>)
|
|
538
538
|
: {};
|
|
539
539
|
} catch (error) {
|
|
540
|
-
|
|
540
|
+
logger.warn(
|
|
541
541
|
`[OPENROUTER] Failed to parse tool call arguments in stream: ${getErrorMessage(
|
|
542
542
|
error
|
|
543
543
|
)}`
|
|
@@ -579,7 +579,7 @@ export class OpenRouterProvider implements AiProvider {
|
|
|
579
579
|
try {
|
|
580
580
|
structured = JSON.parse(accumulated) as TStructured;
|
|
581
581
|
} catch (error) {
|
|
582
|
-
|
|
582
|
+
logger.warn(
|
|
583
583
|
"[OPENROUTER] Failed to parse JSON response in stream:",
|
|
584
584
|
error
|
|
585
585
|
);
|
package/src/types/agent.ts
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
import type { AgentStructuredResponse, AiProvider } from "./ai";
|
|
6
6
|
import type { Tool } from "./tool";
|
|
7
|
-
import type { RouteOptions } from "./route";
|
|
7
|
+
import type { RouteOptions, StepRef, StoppedReason } from "./route";
|
|
8
8
|
import type { PersistenceConfig } from "./persistence";
|
|
9
9
|
import type { SessionState } from "./session";
|
|
10
10
|
import type { StructuredSchema } from "./schema";
|
|
11
|
-
import { Template } from "./template";
|
|
11
|
+
import { Template, ConditionTemplate } from "./template";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Composition mode determines how the agent processes and structures responses
|
|
@@ -99,7 +99,7 @@ export interface AgentOptions<TContext = unknown, TData = unknown> {
|
|
|
99
99
|
/** Initial guidelines for agent behavior */
|
|
100
100
|
guidelines?: Guideline<TContext, TData>[];
|
|
101
101
|
/** Global tools available to all routes */
|
|
102
|
-
tools?: Tool<TContext, TData, unknown
|
|
102
|
+
tools?: Tool<TContext, TData, unknown>[];
|
|
103
103
|
/** Initial routes (will be instantiated as Route objects) */
|
|
104
104
|
routes?: RouteOptions<TContext, TData>[];
|
|
105
105
|
/** Optional persistence configuration for auto-saving sessions and messages */
|
|
@@ -131,7 +131,7 @@ export interface Guideline<TContext = unknown, TData = unknown> {
|
|
|
131
131
|
/** Unique identifier */
|
|
132
132
|
id?: string;
|
|
133
133
|
/** Condition that triggers this guideline (optional for always-active guidelines) */
|
|
134
|
-
condition?:
|
|
134
|
+
condition?: ConditionTemplate<TContext, TData>;
|
|
135
135
|
/** Action the agent should take when the condition is met */
|
|
136
136
|
action: Template<TContext, TData>;
|
|
137
137
|
/** Whether this guideline is currently enabled */
|
|
@@ -157,6 +157,10 @@ export interface AgentResponse<TData = Record<string, unknown>> {
|
|
|
157
157
|
session?: SessionState<TData>;
|
|
158
158
|
toolCalls?: Array<{ toolName: string; arguments: Record<string, unknown> }>;
|
|
159
159
|
isRouteComplete?: boolean;
|
|
160
|
+
/** Steps executed in this response (for multi-step execution) */
|
|
161
|
+
executedSteps?: StepRef[];
|
|
162
|
+
/** Why execution stopped (for multi-step execution) */
|
|
163
|
+
stoppedReason?: StoppedReason;
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
export interface AgentResponseStreamChunk<TData = Record<string, unknown>> {
|
|
@@ -166,6 +170,10 @@ export interface AgentResponseStreamChunk<TData = Record<string, unknown>> {
|
|
|
166
170
|
session?: SessionState<TData>;
|
|
167
171
|
toolCalls?: Array<{ toolName: string; arguments: Record<string, unknown> }>;
|
|
168
172
|
isRouteComplete?: boolean;
|
|
173
|
+
/** Steps executed in this response (for multi-step execution) */
|
|
174
|
+
executedSteps?: StepRef[];
|
|
175
|
+
/** Why execution stopped (for multi-step execution) */
|
|
176
|
+
stoppedReason?: StoppedReason;
|
|
169
177
|
metadata?: {
|
|
170
178
|
model?: string;
|
|
171
179
|
tokensUsed?: number;
|
package/src/types/index.ts
CHANGED
|
@@ -45,8 +45,8 @@ export type {
|
|
|
45
45
|
RouteRef,
|
|
46
46
|
StepRef,
|
|
47
47
|
StepOptions,
|
|
48
|
-
StepResult,
|
|
49
48
|
BranchSpec,
|
|
49
|
+
StepResult,
|
|
50
50
|
BranchResult,
|
|
51
51
|
RouteCompletionHandler,
|
|
52
52
|
RouteTransitionConfig,
|
|
@@ -58,7 +58,18 @@ export * from "./route";
|
|
|
58
58
|
export type { SessionState, PendingTransition } from "./session";
|
|
59
59
|
|
|
60
60
|
// Tool types
|
|
61
|
-
export type {
|
|
61
|
+
export type {
|
|
62
|
+
Tool,
|
|
63
|
+
ToolContext,
|
|
64
|
+
ToolResult,
|
|
65
|
+
ToolHandler,
|
|
66
|
+
ToolExecutionResult,
|
|
67
|
+
DataEnrichmentConfig,
|
|
68
|
+
ValidationConfig,
|
|
69
|
+
ApiCallConfig,
|
|
70
|
+
ComputationConfig
|
|
71
|
+
} from "./tool";
|
|
72
|
+
export { ToolScope } from "./tool";
|
|
62
73
|
|
|
63
74
|
// AI provider types
|
|
64
75
|
export type {
|
|
@@ -94,4 +105,15 @@ export type {
|
|
|
94
105
|
export * from "./persistence";
|
|
95
106
|
|
|
96
107
|
// Template types
|
|
97
|
-
export type {
|
|
108
|
+
export type {
|
|
109
|
+
Template,
|
|
110
|
+
TemplateContext,
|
|
111
|
+
ConditionTemplate,
|
|
112
|
+
ConditionEvaluationResult
|
|
113
|
+
} from "./template";
|
|
114
|
+
export {
|
|
115
|
+
ConditionEvaluator,
|
|
116
|
+
createConditionEvaluator,
|
|
117
|
+
extractAIContextStrings,
|
|
118
|
+
hasProgrammaticConditions
|
|
119
|
+
} from "../utils/condition";
|
package/src/types/route.ts
CHANGED
|
@@ -4,7 +4,79 @@
|
|
|
4
4
|
|
|
5
5
|
import type { Tool } from "./tool";
|
|
6
6
|
import type { StructuredSchema } from "./schema";
|
|
7
|
-
import {
|
|
7
|
+
import type { Guideline, Term } from "./agent";
|
|
8
|
+
import { Template, ConditionTemplate } from "./template";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Reason why batch execution stopped
|
|
12
|
+
* Used to indicate the stopping condition for multi-step execution
|
|
13
|
+
*/
|
|
14
|
+
export type StoppedReason =
|
|
15
|
+
| 'needs_input' // Step requires uncollected data
|
|
16
|
+
| 'end_route' // Reached END_ROUTE
|
|
17
|
+
| 'route_complete' // All Steps processed
|
|
18
|
+
| 'prepare_error' // Error in prepare hook
|
|
19
|
+
| 'llm_error' // Error during LLM call
|
|
20
|
+
| 'validation_error' // Error validating collected data
|
|
21
|
+
| 'finalize_error'; // Error in finalize hook (non-fatal, logged)
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Event types for batch execution observability
|
|
25
|
+
*/
|
|
26
|
+
export type BatchExecutionEventType =
|
|
27
|
+
| 'batch_start'
|
|
28
|
+
| 'step_included'
|
|
29
|
+
| 'step_skipped'
|
|
30
|
+
| 'batch_stop'
|
|
31
|
+
| 'batch_complete';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Event emitted during batch execution for debugging and observability
|
|
35
|
+
*
|
|
36
|
+
* **Validates: Requirements 11.3**
|
|
37
|
+
*/
|
|
38
|
+
export interface BatchExecutionEvent {
|
|
39
|
+
/** Type of batch execution event */
|
|
40
|
+
type: BatchExecutionEventType;
|
|
41
|
+
/** Timestamp when the event occurred */
|
|
42
|
+
timestamp: Date;
|
|
43
|
+
/** Event-specific details */
|
|
44
|
+
details: {
|
|
45
|
+
/** Step ID related to this event (for step_included, step_skipped) */
|
|
46
|
+
stepId?: string;
|
|
47
|
+
/** Reason for the event (e.g., why step was skipped or batch stopped) */
|
|
48
|
+
reason?: string;
|
|
49
|
+
/** Current batch size (for batch_start, batch_complete) */
|
|
50
|
+
batchSize?: number;
|
|
51
|
+
/** Stopped reason (for batch_stop, batch_complete) */
|
|
52
|
+
stoppedReason?: StoppedReason;
|
|
53
|
+
/** Phase timing information (for batch_complete) */
|
|
54
|
+
timing?: BatchExecutionTiming;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Timing information for batch execution phases
|
|
60
|
+
*/
|
|
61
|
+
export interface BatchExecutionTiming {
|
|
62
|
+
/** Total batch execution time in milliseconds */
|
|
63
|
+
totalMs: number;
|
|
64
|
+
/** Time spent in batch determination phase */
|
|
65
|
+
determinationMs?: number;
|
|
66
|
+
/** Time spent executing prepare hooks */
|
|
67
|
+
prepareHooksMs?: number;
|
|
68
|
+
/** Time spent in LLM call */
|
|
69
|
+
llmCallMs?: number;
|
|
70
|
+
/** Time spent collecting data */
|
|
71
|
+
dataCollectionMs?: number;
|
|
72
|
+
/** Time spent executing finalize hooks */
|
|
73
|
+
finalizeHooksMs?: number;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Callback type for batch execution event listeners
|
|
78
|
+
*/
|
|
79
|
+
export type BatchExecutionEventListener = (event: BatchExecutionEvent) => void;
|
|
8
80
|
|
|
9
81
|
/**
|
|
10
82
|
* Reference to a route
|
|
@@ -25,9 +97,52 @@ export interface StepRef {
|
|
|
25
97
|
}
|
|
26
98
|
|
|
27
99
|
/**
|
|
28
|
-
*
|
|
100
|
+
* Result of batch determination - which steps can execute together
|
|
101
|
+
* @template TContext - Type of context data
|
|
102
|
+
* @template TData - Type of collected data
|
|
29
103
|
*/
|
|
30
|
-
|
|
104
|
+
export interface BatchResult<TContext = unknown, TData = unknown> {
|
|
105
|
+
/** Steps included in this batch */
|
|
106
|
+
steps: StepOptions<TContext, TData>[];
|
|
107
|
+
/** Why the batch stopped */
|
|
108
|
+
stoppedReason: StoppedReason;
|
|
109
|
+
/** The Step that caused the stop (if applicable) */
|
|
110
|
+
stoppedAtStep?: StepOptions<TContext, TData>;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Error details for batch execution failures
|
|
115
|
+
*/
|
|
116
|
+
export interface BatchExecutionError {
|
|
117
|
+
/** Type of error that occurred */
|
|
118
|
+
type: 'pre_extraction' | 'skipif_evaluation' | 'prepare_hook' |
|
|
119
|
+
'llm_call' | 'data_validation' | 'finalize_hook';
|
|
120
|
+
/** Error message */
|
|
121
|
+
message: string;
|
|
122
|
+
/** Step where error occurred (if applicable) */
|
|
123
|
+
stepId?: string;
|
|
124
|
+
/** Additional error details */
|
|
125
|
+
details?: unknown;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Result of executing a batch of steps
|
|
130
|
+
* @template TData - Type of collected data
|
|
131
|
+
*/
|
|
132
|
+
export interface BatchExecutionResult<TData = unknown> {
|
|
133
|
+
/** The generated message */
|
|
134
|
+
message: string;
|
|
135
|
+
/** Updated session state */
|
|
136
|
+
session: import('./session').SessionState<TData>;
|
|
137
|
+
/** Steps that were executed */
|
|
138
|
+
executedSteps: StepRef[];
|
|
139
|
+
/** Why execution stopped */
|
|
140
|
+
stoppedReason: StoppedReason;
|
|
141
|
+
/** Collected data from the batch */
|
|
142
|
+
collectedData?: Partial<TData>;
|
|
143
|
+
/** Any errors that occurred */
|
|
144
|
+
error?: BatchExecutionError;
|
|
145
|
+
}
|
|
31
146
|
|
|
32
147
|
/**
|
|
33
148
|
* Route lifecycle hooks for managing route-specific data and behavior
|
|
@@ -98,13 +213,15 @@ export interface RouteOptions<TContext = unknown, TData = unknown> {
|
|
|
98
213
|
/** Optional personality prompt defining the agent's communication style for this route */
|
|
99
214
|
personality?: Template<TContext, TData>;
|
|
100
215
|
/** Conditions that activate this route */
|
|
101
|
-
|
|
216
|
+
when?: ConditionTemplate<TContext, TData>;
|
|
217
|
+
/** Conditions that prevent this route from being considered */
|
|
218
|
+
skipIf?: ConditionTemplate<TContext, TData>;
|
|
102
219
|
/** Initial guidelines for this route */
|
|
103
|
-
guidelines?: Guideline<TContext>[];
|
|
220
|
+
guidelines?: Guideline<TContext, TData>[];
|
|
104
221
|
/** Initial terms for the route's domain glossary */
|
|
105
222
|
terms?: Term<TContext>[];
|
|
106
223
|
/** Tools available in this route */
|
|
107
|
-
tools?: Tool<TContext, TData
|
|
224
|
+
tools?: (string | Tool<TContext, TData>)[];
|
|
108
225
|
/** Absolute rules the agent must follow in this route */
|
|
109
226
|
rules?: Template<TContext, TData>[];
|
|
110
227
|
/** Absolute prohibitions the agent must never do in this route */
|
|
@@ -197,16 +314,16 @@ export interface StepOptions<TContext = unknown, TData = unknown> {
|
|
|
197
314
|
/** Transition to a chat state with this description */
|
|
198
315
|
prompt?: Template<TContext, TData>;
|
|
199
316
|
/** Tools available for AI to call in this step (by ID reference or inline definition) */
|
|
200
|
-
tools?: (string | Tool<TContext, TData
|
|
317
|
+
tools?: (string | Tool<TContext, TData>)[];
|
|
201
318
|
/** Programmatic function or tool to run before AI responds */
|
|
202
319
|
prepare?:
|
|
203
320
|
| string
|
|
204
|
-
| Tool<TContext, TData
|
|
321
|
+
| Tool<TContext, TData>
|
|
205
322
|
| ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
206
323
|
/** Programmatic function or tool to run after AI responds */
|
|
207
324
|
finalize?:
|
|
208
325
|
| string
|
|
209
|
-
| Tool<TContext, TData
|
|
326
|
+
| Tool<TContext, TData>
|
|
210
327
|
| ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
211
328
|
/** Transition to a specific step or end marker */
|
|
212
329
|
step?: StepRef | symbol;
|
|
@@ -216,12 +333,11 @@ export interface StepOptions<TContext = unknown, TData = unknown> {
|
|
|
216
333
|
*/
|
|
217
334
|
collect?: (keyof TData)[];
|
|
218
335
|
/**
|
|
219
|
-
*
|
|
220
|
-
* If
|
|
221
|
-
*
|
|
222
|
-
* @returns true if step should be skipped, false otherwise
|
|
336
|
+
* Condition to determine if this step should be skipped
|
|
337
|
+
* If evaluates to true, the step will be bypassed
|
|
338
|
+
* Supports strings (AI context), functions (programmatic), and arrays
|
|
223
339
|
*/
|
|
224
|
-
skipIf?:
|
|
340
|
+
skipIf?: ConditionTemplate<TContext, TData>;
|
|
225
341
|
/**
|
|
226
342
|
* Required data fields that must be present before entering this step
|
|
227
343
|
* If any required field is missing, step cannot be entered
|
|
@@ -231,8 +347,11 @@ export interface StepOptions<TContext = unknown, TData = unknown> {
|
|
|
231
347
|
/**
|
|
232
348
|
* Optional condition for this transition
|
|
233
349
|
* Description of when this transition should be taken
|
|
350
|
+
* Supports strings (AI context), functions (programmatic), and arrays
|
|
234
351
|
*/
|
|
235
|
-
when?:
|
|
352
|
+
when?: ConditionTemplate<TContext, TData>;
|
|
353
|
+
/** Initial guidelines for this step */
|
|
354
|
+
guidelines?: Guideline<TContext, TData>[];
|
|
236
355
|
}
|
|
237
356
|
|
|
238
357
|
/**
|
|
@@ -267,4 +386,6 @@ export interface StepResult<TContext = unknown, TData = unknown>
|
|
|
267
386
|
branch: (
|
|
268
387
|
branches: BranchSpec<TContext, TData>[]
|
|
269
388
|
) => BranchResult<TContext, TData>;
|
|
389
|
+
/** Shortcut to end the current route */
|
|
390
|
+
endRoute: (options?: Omit<StepOptions<TContext, TData>, "step">) => StepResult<TContext, TData>;
|
|
270
391
|
}
|