@falai/agent 0.9.2 → 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 +262 -38
- 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/cjs/{src/core → core}/Agent.d.ts +6 -1
- package/dist/cjs/core/Agent.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/Agent.js +42 -2
- 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 +45 -0
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/ResponseModal.js +686 -66
- package/dist/cjs/core/ResponseModal.js.map +1 -0
- package/dist/{src → cjs}/core/ResponsePipeline.d.ts +2 -2
- package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/ResponsePipeline.js +13 -6
- package/dist/cjs/core/ResponsePipeline.js.map +1 -0
- package/dist/{src → cjs}/core/Route.d.ts +34 -5
- package/dist/cjs/core/Route.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/Route.js +196 -19
- package/dist/cjs/core/Route.js.map +1 -0
- package/dist/cjs/{src/core → core}/RoutingEngine.d.ts +30 -5
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/RoutingEngine.js +330 -80
- package/dist/cjs/core/RoutingEngine.js.map +1 -0
- package/dist/cjs/core/SessionManager.js.map +1 -0
- package/dist/{src → cjs}/core/Step.d.ts +31 -10
- package/dist/cjs/core/Step.d.ts.map +1 -0
- package/dist/cjs/{src/core → core}/Step.js +105 -10
- package/dist/cjs/core/Step.js.map +1 -0
- package/dist/cjs/core/ToolManager.js.map +1 -0
- package/dist/{src → cjs}/index.d.ts +4 -1
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/{src/index.js → index.js} +12 -1
- 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 +11 -3
- 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 +2 -1
- package/dist/{src → cjs}/types/index.d.ts.map +1 -1
- package/dist/cjs/{src/types → types}/index.js +6 -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 +111 -12
- 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.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/{src/core → core}/Agent.d.ts +6 -1
- package/dist/core/Agent.d.ts.map +1 -0
- package/dist/{src/core → core}/Agent.js +43 -3
- 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 +45 -0
- package/dist/core/ResponseModal.d.ts.map +1 -0
- package/dist/{src/core → core}/ResponseModal.js +686 -66
- package/dist/core/ResponseModal.js.map +1 -0
- package/dist/{cjs/src/core → core}/ResponsePipeline.d.ts +2 -2
- package/dist/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/{src/core → core}/ResponsePipeline.js +13 -6
- package/dist/core/ResponsePipeline.js.map +1 -0
- package/dist/{cjs/src/core → core}/Route.d.ts +34 -5
- package/dist/core/Route.d.ts.map +1 -0
- package/dist/{src/core → core}/Route.js +195 -18
- package/dist/core/Route.js.map +1 -0
- package/dist/{src/core → core}/RoutingEngine.d.ts +30 -5
- package/dist/core/RoutingEngine.d.ts.map +1 -0
- package/dist/{src/core → core}/RoutingEngine.js +310 -60
- package/dist/core/RoutingEngine.js.map +1 -0
- package/dist/core/SessionManager.d.ts.map +1 -0
- package/dist/core/SessionManager.js.map +1 -0
- package/dist/{cjs/src/core → core}/Step.d.ts +31 -10
- package/dist/core/Step.d.ts.map +1 -0
- package/dist/{src/core → core}/Step.js +104 -9
- package/dist/core/Step.js.map +1 -0
- package/dist/core/ToolManager.d.ts.map +1 -0
- package/dist/core/ToolManager.js.map +1 -0
- package/dist/{cjs/src/index.d.ts → index.d.ts} +4 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/{src/index.js → index.js} +3 -0
- 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 +11 -3
- 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 +2 -1
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{src/types → types}/index.js +1 -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 +111 -12
- 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.map +1 -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/api/README.md +221 -12
- package/docs/api/overview.md +202 -3
- 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 +1 -1
- package/docs/core/ai-integration/prompt-composition.md +135 -0
- package/docs/core/ai-integration/response-processing.md +146 -0
- package/docs/core/conversation-flows/data-collection.md +143 -0
- package/docs/core/conversation-flows/routes.md +2 -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 +193 -0
- package/docs/core/routing/intelligent-routing.md +118 -0
- package/docs/guides/getting-started/README.md +284 -3
- 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 +101 -24
- package/examples/advanced-patterns/persistent-onboarding.ts +40 -5
- 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 +4 -4
- package/examples/ai-providers/openai-integration.ts +1 -1
- 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 +54 -33
- package/examples/core-concepts/schema-driven-extraction.ts +33 -9
- package/examples/core-concepts/session-management.ts +51 -16
- package/examples/integrations/database-integration.ts +6 -6
- package/examples/integrations/healthcare-integration.ts +10 -10
- package/examples/integrations/search-integration.ts +8 -8
- package/examples/integrations/server-session-management.ts +8 -8
- package/examples/persistence/database-persistence.ts +15 -15
- package/examples/persistence/memory-sessions.ts +3 -3
- package/examples/persistence/redis-persistence.ts +7 -9
- package/examples/tools/data-enrichment-tools.ts +4 -4
- package/package.json +6 -4
- package/src/adapters/PrismaAdapter.ts +3 -2
- package/src/adapters/RedisAdapter.ts +3 -3
- package/src/core/Agent.ts +54 -2
- 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 +888 -66
- package/src/core/ResponsePipeline.ts +17 -9
- package/src/core/Route.ts +223 -22
- package/src/core/RoutingEngine.ts +426 -83
- package/src/core/Step.ts +144 -16
- package/src/index.ts +19 -0
- 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 +11 -3
- package/src/types/index.ts +12 -1
- package/src/types/route.ts +131 -12
- package/src/types/template.ts +70 -2
- 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.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.map +0 -1
- package/dist/cjs/src/core/Step.js.map +0 -1
- package/dist/cjs/src/core/ToolManager.d.ts.map +0 -1
- package/dist/cjs/src/core/ToolManager.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.map +0 -1
- 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.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.js.map +0 -1
- package/dist/src/core/Step.d.ts.map +0 -1
- package/dist/src/core/Step.js.map +0 -1
- package/dist/src/core/ToolManager.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.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/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/core → core}/SessionManager.d.ts +0 -0
- /package/dist/{src → cjs}/core/SessionManager.d.ts.map +0 -0
- /package/dist/cjs/{src/core → core}/SessionManager.js +0 -0
- /package/dist/cjs/{src/core → core}/ToolManager.d.ts +0 -0
- /package/dist/{src → cjs}/core/ToolManager.d.ts.map +0 -0
- /package/dist/cjs/{src/core → core}/ToolManager.js +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/types → types}/tool.d.ts +0 -0
- /package/dist/{src → cjs}/types/tool.d.ts.map +0 -0
- /package/dist/cjs/{src/types → types}/tool.js +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/core → core}/SessionManager.d.ts +0 -0
- /package/dist/{src/core → core}/SessionManager.js +0 -0
- /package/dist/{src/core → core}/ToolManager.d.ts +0 -0
- /package/dist/{src/core → core}/ToolManager.js +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/types → types}/tool.d.ts +0 -0
- /package/dist/{src/types → types}/tool.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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAoB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAa,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,MAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAC9D,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,SAAS,EAC/C,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,GACvC,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAClE,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,SAAS,EAClD,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,GACvC,OAAO,CAAC,MAAM,EAAE,CAAC,CAKnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,MAAM,CAeR;AAoED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,OAAO,CAsBT;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;IAEnD;;;;OAIG;0BACmB,WAAW,GAAG,MAAM,GAAG,SAAS;IAiBtD;;;OAGG;0BACmB,MAAM,GAAG,SAAS;IAIxC;;;OAGG;+BACwB,MAAM,GAAG,SAAS;IAI7C;;;;OAIG;uBACgB,WAAW,GAAG,MAAM,EAAE;IAezC;;;;;OAKG;kCAC2B,MAAM,GAAG,MAAM,EAAE,kBAAiB,OAAO,GAAW,OAAO;EAe5F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EACvE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GACjE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAMlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,GAAE,MAAU,GACnB,MAAM,CAgBR"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MessageRole, EventKind } from "../types/history";
|
|
1
2
|
/**
|
|
2
3
|
* Renders a template, which can be a string or a function, using the provided context.
|
|
3
4
|
* This function is asynchronous to support template functions that perform async operations.
|
|
@@ -166,6 +167,103 @@ export function renderTemplateObject(obj, context) {
|
|
|
166
167
|
}
|
|
167
168
|
return obj;
|
|
168
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Creates helper functions for working with history and context in templates.
|
|
172
|
+
* These helpers make it easier to access message content and perform common operations.
|
|
173
|
+
*
|
|
174
|
+
* @param history - The event history array
|
|
175
|
+
* @returns Object containing helper functions
|
|
176
|
+
*/
|
|
177
|
+
export function createTemplateHelpers(history) {
|
|
178
|
+
const helpers = {
|
|
179
|
+
/**
|
|
180
|
+
* Get the last message from history, optionally filtered by role.
|
|
181
|
+
* @param role - Optional role to filter by (user, assistant, etc.)
|
|
182
|
+
* @returns The message content or undefined if not found
|
|
183
|
+
*/
|
|
184
|
+
getLastMessage(role) {
|
|
185
|
+
if (!history || history.length === 0)
|
|
186
|
+
return undefined;
|
|
187
|
+
// Search backwards through history for the most recent message
|
|
188
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
189
|
+
const event = history[i];
|
|
190
|
+
if (event.kind === EventKind.MESSAGE) {
|
|
191
|
+
// If no role specified, return the first message found
|
|
192
|
+
if (!role || event.source === role) {
|
|
193
|
+
const messageData = event.data;
|
|
194
|
+
return messageData.message;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return undefined;
|
|
199
|
+
},
|
|
200
|
+
/**
|
|
201
|
+
* Get the last user message from history.
|
|
202
|
+
* @returns The user message content or undefined if not found
|
|
203
|
+
*/
|
|
204
|
+
getLastUserMessage() {
|
|
205
|
+
return helpers.getLastMessage(MessageRole.USER);
|
|
206
|
+
},
|
|
207
|
+
/**
|
|
208
|
+
* Get the last assistant message from history.
|
|
209
|
+
* @returns The assistant message content or undefined if not found
|
|
210
|
+
*/
|
|
211
|
+
getLastAssistantMessage() {
|
|
212
|
+
return helpers.getLastMessage(MessageRole.ASSISTANT);
|
|
213
|
+
},
|
|
214
|
+
/**
|
|
215
|
+
* Get all messages from history, optionally filtered by role.
|
|
216
|
+
* @param role - Optional role to filter by
|
|
217
|
+
* @returns Array of message contents
|
|
218
|
+
*/
|
|
219
|
+
getMessages(role) {
|
|
220
|
+
if (!history || history.length === 0)
|
|
221
|
+
return [];
|
|
222
|
+
const messages = [];
|
|
223
|
+
for (const event of history) {
|
|
224
|
+
if (event.kind === EventKind.MESSAGE) {
|
|
225
|
+
if (!role || event.source === role) {
|
|
226
|
+
const messageData = event.data;
|
|
227
|
+
messages.push(messageData.message);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return messages;
|
|
232
|
+
},
|
|
233
|
+
/**
|
|
234
|
+
* Check if the last message contains any of the given keywords.
|
|
235
|
+
* @param keywords - Keywords to search for
|
|
236
|
+
* @param caseSensitive - Whether to perform case-sensitive search (default: false)
|
|
237
|
+
* @returns True if any keyword is found
|
|
238
|
+
*/
|
|
239
|
+
lastMessageContains(keywords, caseSensitive = false) {
|
|
240
|
+
const lastMessage = helpers.getLastMessage();
|
|
241
|
+
if (!lastMessage)
|
|
242
|
+
return false;
|
|
243
|
+
const searchText = caseSensitive ? lastMessage : lastMessage.toLowerCase();
|
|
244
|
+
const keywordArray = Array.isArray(keywords) ? keywords : [keywords];
|
|
245
|
+
return keywordArray.some(keyword => {
|
|
246
|
+
const searchKeyword = caseSensitive ? keyword : keyword.toLowerCase();
|
|
247
|
+
return searchText.includes(searchKeyword);
|
|
248
|
+
});
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
return helpers;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Creates a complete TemplateContext with helpers included.
|
|
255
|
+
* This is a convenience function for creating template contexts with all the helper methods.
|
|
256
|
+
*
|
|
257
|
+
* @param params - The base template context parameters
|
|
258
|
+
* @returns Complete TemplateContext with helpers
|
|
259
|
+
*/
|
|
260
|
+
export function createTemplateContext(params) {
|
|
261
|
+
return {
|
|
262
|
+
...params,
|
|
263
|
+
data: params.data || {},
|
|
264
|
+
helpers: createTemplateHelpers(params.history),
|
|
265
|
+
};
|
|
266
|
+
}
|
|
169
267
|
/**
|
|
170
268
|
* Formats a JSON structure into readable markdown format.
|
|
171
269
|
* Handles nested objects, arrays, and primitive values.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,QAA+C,EAC/C,MAAwC;IAExC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,8DAA8D;QAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,sEAAsE;QACtE,OAAO,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAkC,CAAC,CAAC;IAC7E,CAAC;IAED,uEAAuE;IACvE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAkD,EAClD,MAAwC;IAExC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,OAA4C;IAE5C,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,CACrB,kBAAkB,EAClB,CAAC,KAAa,EAAE,IAAY,EAAU,EAAE;QACtC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,CAAC,mDAAmD;QACnE,CAAC;QACD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,GAA4B,EAAE,IAAY;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IACE,OAAO,KAAK,IAAI;YAChB,OAAO,KAAK,SAAS;YACrB,OAAO,OAAO,KAAK,QAAQ,EAC3B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,0CAA0C;QAC1C,+EAA+E;QAC/E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,sCAAsC;QACtC,2DAA2D;QAC3D,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAY,EACZ,OAA4C;IAE5C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAiB;IACrD,MAAM,OAAO,GAAG;QACd;;;;WAIG;QACH,cAAc,CAAC,IAAkB;YAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAEvD,+DAA+D;YAC/D,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;oBACrC,uDAAuD;oBACvD,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;wBACnC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAwB,CAAC;wBACnD,OAAO,WAAW,CAAC,OAAO,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED;;;WAGG;QACH,kBAAkB;YAChB,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;QAED;;;WAGG;QACH,uBAAuB;YACrB,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QAED;;;;WAIG;QACH,WAAW,CAAC,IAAkB;YAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEhD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;wBACnC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAwB,CAAC;wBACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED;;;;;WAKG;QACH,mBAAmB,CAAC,QAA2B,EAAE,gBAAyB,KAAK;YAC7E,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YAE/B,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC3E,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAErE,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACjC,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACtE,OAAO,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAkE;IAElE,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;QACvB,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAA6B,EAC7B,KAAc,EACd,WAAmB,CAAC;IAEpB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,GAA4B,EAC5B,KAAe,EACf,KAAa,EACb,QAAgB,EAChB,SAAiB,EAAE;IAEnB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAElD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,GAAG,qBAAqB,CAAC,CAAC;QAC9D,CAAC;aAAM,IACL,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,GAAG,kBAAkB,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,GAAG,KAAK,CAAC,CAAC;gBAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IACE,OAAO,IAAI,KAAK,QAAQ;wBACxB,OAAO,IAAI,KAAK,QAAQ;wBACxB,OAAO,IAAI,KAAK,SAAS,EACzB,CAAC;wBACD,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,IAAI,EAAE,CAAC,CAAC;oBAC5C,CAAC;yBAAM,IACL,KAAK,GAAG,QAAQ;wBAChB,OAAO,IAAI,KAAK,QAAQ;wBACxB,IAAI,KAAK,IAAI,EACb,CAAC;wBACD,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,GAAG,KAAK,CAAC,CAAC;gBAC5C,YAAY,CACV,KAAgC,EAChC,KAAK,EACL,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,aAAa,CACd,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/docs/api/README.md
CHANGED
|
@@ -15,6 +15,106 @@ Complete API documentation for `@falai/agent`. This framework provides a strongl
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
+
## ConditionTemplate System
|
|
19
|
+
|
|
20
|
+
### `ConditionTemplate<TContext, TData>`
|
|
21
|
+
|
|
22
|
+
**NEW:** Enhanced condition type that supports flexible routing logic with both AI context and programmatic evaluation.
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
type ConditionTemplate<TContext = unknown, TData = unknown> =
|
|
26
|
+
| string // AI context only - provides context to AI for routing decisions
|
|
27
|
+
| ((params: TemplateContext<TContext, TData>) => boolean | Promise<boolean>) // Programmatic evaluation
|
|
28
|
+
| ConditionTemplate<TContext, TData>[]; // Array of either type
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Key Features:**
|
|
32
|
+
|
|
33
|
+
- **String conditions**: Provide AI context for routing decisions (e.g., `"user wants to book a flight"`)
|
|
34
|
+
- **Function conditions**: Execute programmatic logic returning boolean (e.g., `(ctx) => ctx.data?.isLoggedIn === true`)
|
|
35
|
+
- **Array conditions**: Combine multiple conditions with logical operators
|
|
36
|
+
- **Hybrid approach**: Mix strings and functions for optimal flexibility
|
|
37
|
+
|
|
38
|
+
#### Evaluation Logic
|
|
39
|
+
|
|
40
|
+
**For `when` conditions (AND logic):**
|
|
41
|
+
- **Functions**: All must return `true` for condition to pass
|
|
42
|
+
- **Strings**: Ignored in programmatic evaluation, used for AI context
|
|
43
|
+
- **Arrays**: All functions must return `true`
|
|
44
|
+
|
|
45
|
+
**For `skipIf` conditions (OR logic):**
|
|
46
|
+
- **Functions**: Any returning `true` causes skip
|
|
47
|
+
- **Strings**: Ignored in programmatic evaluation, used for AI context
|
|
48
|
+
- **Arrays**: Any function returning `true` causes skip
|
|
49
|
+
|
|
50
|
+
#### Usage Examples
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// String-only condition (AI context)
|
|
54
|
+
when: "User wants to make a reservation"
|
|
55
|
+
|
|
56
|
+
// Function-only condition (programmatic)
|
|
57
|
+
when: (ctx) => ctx.data?.userType === 'premium'
|
|
58
|
+
|
|
59
|
+
// Mixed array condition (hybrid approach)
|
|
60
|
+
when: [
|
|
61
|
+
"User is asking for help", // AI context
|
|
62
|
+
(ctx) => ctx.data?.isLoggedIn === true // Programmatic check
|
|
63
|
+
]
|
|
64
|
+
|
|
65
|
+
// Route skipIf with OR logic
|
|
66
|
+
skipIf: [
|
|
67
|
+
"System is under maintenance", // AI context
|
|
68
|
+
(ctx) => ctx.data?.maintenanceMode === true // Programmatic check
|
|
69
|
+
]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### `ConditionEvaluator<TContext, TData>`
|
|
73
|
+
|
|
74
|
+
**NEW:** Utility class for evaluating ConditionTemplate instances with consistent logic across the framework.
|
|
75
|
+
|
|
76
|
+
#### Constructor
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
new ConditionEvaluator<TContext, TData>(templateContext: TemplateContext<TContext, TData>)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### Methods
|
|
83
|
+
|
|
84
|
+
##### `evaluateCondition(condition, logic?): Promise<ConditionEvaluationResult>`
|
|
85
|
+
|
|
86
|
+
Evaluates a ConditionTemplate and returns detailed results.
|
|
87
|
+
|
|
88
|
+
**Parameters:**
|
|
89
|
+
- `condition`: ConditionTemplate to evaluate
|
|
90
|
+
- `logic`: 'AND' | 'OR' - logical operator for arrays (default: 'AND')
|
|
91
|
+
|
|
92
|
+
**Returns:**
|
|
93
|
+
```typescript
|
|
94
|
+
interface ConditionEvaluationResult {
|
|
95
|
+
programmaticResult: boolean; // Result of function evaluations only
|
|
96
|
+
aiContextStrings: string[]; // String values for AI context
|
|
97
|
+
hasProgrammaticConditions: boolean; // Whether any functions were evaluated
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Example:**
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
const evaluator = new ConditionEvaluator(templateContext);
|
|
105
|
+
|
|
106
|
+
const result = await evaluator.evaluateCondition([
|
|
107
|
+
"User needs premium support", // AI context
|
|
108
|
+
(ctx) => ctx.data?.userType === 'premium' // Programmatic
|
|
109
|
+
]);
|
|
110
|
+
|
|
111
|
+
console.log(result.programmaticResult); // true/false from function
|
|
112
|
+
console.log(result.aiContextStrings); // ["User needs premium support"]
|
|
113
|
+
console.log(result.hasProgrammaticConditions); // true
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
18
118
|
## Core Classes
|
|
19
119
|
|
|
20
120
|
### `Agent<TContext, TData>`
|
|
@@ -823,7 +923,8 @@ interface RouteOptions<TData = unknown> {
|
|
|
823
923
|
description?: string; // Route description
|
|
824
924
|
identity?: string; // Optional identity prompt defining the agent's role and persona for this route
|
|
825
925
|
personality?: Template; // Optional personality prompt defining the agent's communication style for this route
|
|
826
|
-
|
|
926
|
+
when?: ConditionTemplate; // NEW: Conditions that activate this route (replaces conditions)
|
|
927
|
+
skipIf?: ConditionTemplate; // NEW: Conditions that exclude this route from consideration
|
|
827
928
|
guidelines?: Guideline[]; // Initial guidelines for this route
|
|
828
929
|
terms?: Term[]; // Initial terms for the route's domain glossary
|
|
829
930
|
rules?: string[]; // Absolute rules the agent MUST follow in this route
|
|
@@ -935,7 +1036,7 @@ console.log(description);
|
|
|
935
1036
|
// Route: Book Flight
|
|
936
1037
|
// ID: route_book_flight
|
|
937
1038
|
// Description: N/A
|
|
938
|
-
//
|
|
1039
|
+
// When: None
|
|
939
1040
|
//
|
|
940
1041
|
// Steps:
|
|
941
1042
|
// - step_ask_destination: Ask where to fly
|
|
@@ -1003,9 +1104,13 @@ Route title (readonly).
|
|
|
1003
1104
|
|
|
1004
1105
|
Route description (readonly).
|
|
1005
1106
|
|
|
1006
|
-
##### `
|
|
1107
|
+
##### `when?: ConditionTemplate`
|
|
1108
|
+
|
|
1109
|
+
**NEW:** Conditions that trigger this route (readonly). Can be a string, function, or array of either.
|
|
1007
1110
|
|
|
1008
|
-
|
|
1111
|
+
##### `skipIf?: ConditionTemplate`
|
|
1112
|
+
|
|
1113
|
+
**NEW:** Conditions that exclude this route from consideration (readonly). Can be a string, function, or array of either.
|
|
1009
1114
|
|
|
1010
1115
|
##### `initialStep: Step`
|
|
1011
1116
|
|
|
@@ -1038,14 +1143,14 @@ interface StepOptions<TData = unknown> {
|
|
|
1038
1143
|
// NEW: Data extraction fields for this step
|
|
1039
1144
|
collect?: string[];
|
|
1040
1145
|
|
|
1041
|
-
//
|
|
1042
|
-
|
|
1146
|
+
// ENHANCED: Flexible condition to determine when this step should be active
|
|
1147
|
+
when?: ConditionTemplate<TContext, TData>;
|
|
1148
|
+
|
|
1149
|
+
// ENHANCED: Flexible condition to skip this step
|
|
1150
|
+
skipIf?: ConditionTemplate<TContext, TData>;
|
|
1043
1151
|
|
|
1044
1152
|
// NEW: Prerequisites that must be met to enter this step
|
|
1045
1153
|
requires?: string[];
|
|
1046
|
-
|
|
1047
|
-
// Optional: AI-evaluated text condition for this transition
|
|
1048
|
-
condition?: string;
|
|
1049
1154
|
}
|
|
1050
1155
|
|
|
1051
1156
|
interface Step<TContext = unknown, TData = unknown> {
|
|
@@ -1054,7 +1159,8 @@ interface Step<TContext = unknown, TData = unknown> {
|
|
|
1054
1159
|
nextStep: (spec: StepOptions<TContext, TData>) => Step<TContext, TData>;
|
|
1055
1160
|
description?: string; // Step description
|
|
1056
1161
|
collect?: (keyof TData)[]; // Fields to collect in this step
|
|
1057
|
-
|
|
1162
|
+
when?: ConditionTemplate<TContext, TData>; // ENHANCED: Flexible condition for step activation
|
|
1163
|
+
skipIf?: ConditionTemplate<TContext, TData>; // ENHANCED: Flexible condition to skip step
|
|
1058
1164
|
requires?: (keyof TData)[]; // Required data prerequisites
|
|
1059
1165
|
}
|
|
1060
1166
|
```
|
|
@@ -1230,6 +1336,109 @@ Step description (readonly).
|
|
|
1230
1336
|
|
|
1231
1337
|
---
|
|
1232
1338
|
|
|
1339
|
+
### `StepResult`
|
|
1340
|
+
|
|
1341
|
+
Result interface returned by step transition methods that enables fluent chaining of conversation flows. Combines step reference with the ability to chain transitions and create branches.
|
|
1342
|
+
|
|
1343
|
+
#### Interface
|
|
1344
|
+
|
|
1345
|
+
```typescript
|
|
1346
|
+
interface StepResult<TContext = unknown, TData = unknown> extends StepRef {
|
|
1347
|
+
/** Allow chaining transitions */
|
|
1348
|
+
nextStep: (spec: StepOptions<TContext, TData>) => StepResult<TContext, TData>;
|
|
1349
|
+
/** Create multiple branches from this step */
|
|
1350
|
+
branch: (
|
|
1351
|
+
branches: BranchSpec<TContext, TData>[]
|
|
1352
|
+
) => BranchResult<TContext, TData>;
|
|
1353
|
+
/** Shortcut to end the current route */
|
|
1354
|
+
endRoute: (options?: Omit<StepOptions<TContext, TData>, "step">) => StepResult<TContext, TData>;
|
|
1355
|
+
}
|
|
1356
|
+
```
|
|
1357
|
+
|
|
1358
|
+
#### Methods
|
|
1359
|
+
|
|
1360
|
+
##### `nextStep(spec: StepOptions<TContext, TData>): StepResult<TContext, TData>`
|
|
1361
|
+
|
|
1362
|
+
Creates a transition from this step and returns a chainable result for building linear flows.
|
|
1363
|
+
|
|
1364
|
+
**Example:**
|
|
1365
|
+
|
|
1366
|
+
```typescript
|
|
1367
|
+
// Linear flow chaining
|
|
1368
|
+
const flow = route.initialStep
|
|
1369
|
+
.nextStep({
|
|
1370
|
+
prompt: "Ask for destination",
|
|
1371
|
+
collect: ["destination"]
|
|
1372
|
+
})
|
|
1373
|
+
.nextStep({
|
|
1374
|
+
prompt: "Ask for dates",
|
|
1375
|
+
collect: ["departureDate", "returnDate"]
|
|
1376
|
+
})
|
|
1377
|
+
.nextStep({
|
|
1378
|
+
prompt: "Confirm booking details"
|
|
1379
|
+
});
|
|
1380
|
+
```
|
|
1381
|
+
|
|
1382
|
+
##### `branch(branches: BranchSpec<TContext, TData>[]): BranchResult<TContext, TData>`
|
|
1383
|
+
|
|
1384
|
+
Creates multiple conditional branches from this step for complex conversation flows.
|
|
1385
|
+
|
|
1386
|
+
**Example:**
|
|
1387
|
+
|
|
1388
|
+
```typescript
|
|
1389
|
+
// Branching flow
|
|
1390
|
+
const branches = askIssueType.branch([
|
|
1391
|
+
{
|
|
1392
|
+
name: "technical",
|
|
1393
|
+
step: {
|
|
1394
|
+
prompt: "Let me help with your technical issue",
|
|
1395
|
+
when: "issue type is technical"
|
|
1396
|
+
}
|
|
1397
|
+
},
|
|
1398
|
+
{
|
|
1399
|
+
name: "billing",
|
|
1400
|
+
step: {
|
|
1401
|
+
prompt: "I'll connect you with billing support",
|
|
1402
|
+
when: "issue type is billing"
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
]);
|
|
1406
|
+
|
|
1407
|
+
// Continue each branch independently
|
|
1408
|
+
branches.technical.nextStep({ prompt: "What device are you using?" });
|
|
1409
|
+
branches.billing.nextStep({ prompt: "What's your account number?" });
|
|
1410
|
+
```
|
|
1411
|
+
|
|
1412
|
+
##### `endRoute(options?: Omit<StepOptions<TContext, TData>, "step">): StepResult<TContext, TData>`
|
|
1413
|
+
|
|
1414
|
+
Shortcut method to end the current route with optional completion configuration.
|
|
1415
|
+
|
|
1416
|
+
**Example:**
|
|
1417
|
+
|
|
1418
|
+
```typescript
|
|
1419
|
+
// Simple route completion
|
|
1420
|
+
askConfirmation.endRoute();
|
|
1421
|
+
|
|
1422
|
+
// Route completion with final message
|
|
1423
|
+
askConfirmation.endRoute({
|
|
1424
|
+
prompt: "Thank you! Your booking is confirmed."
|
|
1425
|
+
});
|
|
1426
|
+
```
|
|
1427
|
+
|
|
1428
|
+
#### Properties
|
|
1429
|
+
|
|
1430
|
+
Inherits all properties from `StepRef`:
|
|
1431
|
+
|
|
1432
|
+
##### `id: string`
|
|
1433
|
+
|
|
1434
|
+
Step identifier (readonly).
|
|
1435
|
+
|
|
1436
|
+
##### `routeId: string`
|
|
1437
|
+
|
|
1438
|
+
Route this step belongs to (readonly).
|
|
1439
|
+
|
|
1440
|
+
---
|
|
1441
|
+
|
|
1233
1442
|
---
|
|
1234
1443
|
|
|
1235
1444
|
## Tool Execution
|
|
@@ -2394,9 +2603,9 @@ interface Term<TContext = unknown> {
|
|
|
2394
2603
|
### `Guideline`
|
|
2395
2604
|
|
|
2396
2605
|
```typescript
|
|
2397
|
-
interface Guideline<TContext = unknown> {
|
|
2606
|
+
interface Guideline<TContext = unknown, TData = unknown> {
|
|
2398
2607
|
id?: string;
|
|
2399
|
-
condition?:
|
|
2608
|
+
condition?: ConditionTemplate<TContext, TData>; // ENHANCED: Flexible condition for guideline activation
|
|
2400
2609
|
action: Template<TContext>;
|
|
2401
2610
|
enabled?: boolean; // Default: true
|
|
2402
2611
|
tags?: string[];
|
package/docs/api/overview.md
CHANGED
|
@@ -394,9 +394,9 @@ configure(config: Partial<StepOptions<TContext, TData>>): this
|
|
|
394
394
|
##### Transitions
|
|
395
395
|
|
|
396
396
|
```typescript
|
|
397
|
-
nextStep(spec: StepOptions<TContext, TData>):
|
|
397
|
+
nextStep(spec: StepOptions<TContext, TData>): StepResult<TContext, TData>
|
|
398
398
|
branch(branches: BranchSpec<TContext, TData>[]): BranchResult<TContext, TData>
|
|
399
|
-
endRoute(options?: Omit<StepOptions<TContext, TData>, 'step'>):
|
|
399
|
+
endRoute(options?: Omit<StepOptions<TContext, TData>, 'step'>): StepResult<TContext, TData>
|
|
400
400
|
```
|
|
401
401
|
|
|
402
402
|
##### Validation
|
|
@@ -422,6 +422,55 @@ getRef(): StepRef
|
|
|
422
422
|
|
|
423
423
|
---
|
|
424
424
|
|
|
425
|
+
### StepResult
|
|
426
|
+
|
|
427
|
+
Result interface returned by step transition methods that enables fluent chaining of conversation flows.
|
|
428
|
+
|
|
429
|
+
#### Interface
|
|
430
|
+
|
|
431
|
+
```typescript
|
|
432
|
+
interface StepResult<TContext = unknown, TData = unknown> extends StepRef {
|
|
433
|
+
nextStep: (spec: StepOptions<TContext, TData>) => StepResult<TContext, TData>;
|
|
434
|
+
branch: (branches: BranchSpec<TContext, TData>[]) => BranchResult<TContext, TData>;
|
|
435
|
+
endRoute: (options?: Omit<StepOptions<TContext, TData>, "step">) => StepResult<TContext, TData>;
|
|
436
|
+
}
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
#### Methods
|
|
440
|
+
|
|
441
|
+
##### Chaining
|
|
442
|
+
|
|
443
|
+
```typescript
|
|
444
|
+
nextStep(spec: StepOptions<TContext, TData>): StepResult<TContext, TData>
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
Creates a transition and returns a chainable result for building linear flows.
|
|
448
|
+
|
|
449
|
+
##### Branching
|
|
450
|
+
|
|
451
|
+
```typescript
|
|
452
|
+
branch(branches: BranchSpec<TContext, TData>[]): BranchResult<TContext, TData>
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
Creates multiple conditional branches for complex conversation flows.
|
|
456
|
+
|
|
457
|
+
##### Route Completion
|
|
458
|
+
|
|
459
|
+
```typescript
|
|
460
|
+
endRoute(options?: Omit<StepOptions<TContext, TData>, "step">): StepResult<TContext, TData>
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
Shortcut method to end the current route with optional completion configuration.
|
|
464
|
+
|
|
465
|
+
#### Properties
|
|
466
|
+
|
|
467
|
+
Inherits from `StepRef`:
|
|
468
|
+
|
|
469
|
+
- `id: string` - Step identifier
|
|
470
|
+
- `routeId: string` - Route this step belongs to
|
|
471
|
+
|
|
472
|
+
---
|
|
473
|
+
|
|
425
474
|
### RoutingEngine
|
|
426
475
|
|
|
427
476
|
AI-powered routing system that intelligently selects routes and steps based on conversation context.
|
|
@@ -725,7 +774,8 @@ interface RouteOptions<TContext = unknown, TData = unknown> {
|
|
|
725
774
|
description?: string;
|
|
726
775
|
identity?: Template<TContext, TData>;
|
|
727
776
|
personality?: Template<TContext, TData>;
|
|
728
|
-
|
|
777
|
+
when?: ConditionTemplate<TContext, TData>;
|
|
778
|
+
skipIf?: ConditionTemplate<TContext, TData>;
|
|
729
779
|
rules?: Template<TContext, TData>[];
|
|
730
780
|
prohibitions?: Template<TContext, TData>[];
|
|
731
781
|
|
|
@@ -767,6 +817,31 @@ interface StepOptions<TContext = unknown, TData = unknown> {
|
|
|
767
817
|
tools?: (string | Tool<TContext, unknown[], unknown, TData>)[];
|
|
768
818
|
}
|
|
769
819
|
|
|
820
|
+
interface StepResult<TContext = unknown, TData = unknown> extends StepRef {
|
|
821
|
+
nextStep: (spec: StepOptions<TContext, TData>) => StepResult<TContext, TData>;
|
|
822
|
+
branch: (branches: BranchSpec<TContext, TData>[]) => BranchResult<TContext, TData>;
|
|
823
|
+
endRoute: (options?: Omit<StepOptions<TContext, TData>, "step">) => StepResult<TContext, TData>;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
interface BranchResult<TContext = unknown, TData = unknown> {
|
|
827
|
+
[branchName: string]: StepResult<TContext, TData>;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
interface BranchSpec<TContext = unknown, TData = unknown> {
|
|
831
|
+
name: string;
|
|
832
|
+
id?: string;
|
|
833
|
+
step: StepOptions<TContext, TData>;
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
interface StepRef {
|
|
837
|
+
id: string;
|
|
838
|
+
routeId: string;
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
interface RouteRef {
|
|
842
|
+
id: string;
|
|
843
|
+
}
|
|
844
|
+
|
|
770
845
|
// ==============================================================================
|
|
771
846
|
// LIFECYCLE HOOKS: prepare & finalize
|
|
772
847
|
// ==============================================================================
|
|
@@ -847,6 +922,130 @@ interface SessionData {
|
|
|
847
922
|
}
|
|
848
923
|
```
|
|
849
924
|
|
|
925
|
+
### Batch Execution Types
|
|
926
|
+
|
|
927
|
+
Types for multi-step batch execution:
|
|
928
|
+
|
|
929
|
+
```typescript
|
|
930
|
+
/**
|
|
931
|
+
* Reason why batch execution stopped
|
|
932
|
+
*/
|
|
933
|
+
type StoppedReason =
|
|
934
|
+
| 'needs_input' // Step requires uncollected data
|
|
935
|
+
| 'end_route' // Reached END_ROUTE
|
|
936
|
+
| 'route_complete' // All Steps processed
|
|
937
|
+
| 'prepare_error' // Error in prepare hook
|
|
938
|
+
| 'llm_error' // Error during LLM call
|
|
939
|
+
| 'validation_error' // Error validating collected data
|
|
940
|
+
| 'finalize_error'; // Error in finalize hook (non-fatal)
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* Result of batch determination - which steps can execute together
|
|
944
|
+
*/
|
|
945
|
+
interface BatchResult<TContext = unknown, TData = unknown> {
|
|
946
|
+
/** Steps included in this batch */
|
|
947
|
+
steps: StepOptions<TContext, TData>[];
|
|
948
|
+
/** Why the batch stopped */
|
|
949
|
+
stoppedReason: StoppedReason;
|
|
950
|
+
/** The Step that caused the stop (if applicable) */
|
|
951
|
+
stoppedAtStep?: StepOptions<TContext, TData>;
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
/**
|
|
955
|
+
* Result of executing a batch of steps
|
|
956
|
+
*/
|
|
957
|
+
interface BatchExecutionResult<TData = unknown> {
|
|
958
|
+
/** The generated message */
|
|
959
|
+
message: string;
|
|
960
|
+
/** Updated session state */
|
|
961
|
+
session: SessionState<TData>;
|
|
962
|
+
/** Steps that were executed */
|
|
963
|
+
executedSteps: StepRef[];
|
|
964
|
+
/** Why execution stopped */
|
|
965
|
+
stoppedReason: StoppedReason;
|
|
966
|
+
/** Collected data from the batch */
|
|
967
|
+
collectedData?: Partial<TData>;
|
|
968
|
+
/** Any errors that occurred */
|
|
969
|
+
error?: BatchExecutionError;
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
/**
|
|
973
|
+
* Error details for batch execution failures
|
|
974
|
+
*/
|
|
975
|
+
interface BatchExecutionError {
|
|
976
|
+
/** Type of error that occurred */
|
|
977
|
+
type: 'pre_extraction' | 'skipif_evaluation' | 'prepare_hook' |
|
|
978
|
+
'llm_call' | 'data_validation' | 'finalize_hook';
|
|
979
|
+
/** Error message */
|
|
980
|
+
message: string;
|
|
981
|
+
/** Step where error occurred (if applicable) */
|
|
982
|
+
stepId?: string;
|
|
983
|
+
/** Additional error details */
|
|
984
|
+
details?: unknown;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
/**
|
|
988
|
+
* Event emitted during batch execution for debugging
|
|
989
|
+
*/
|
|
990
|
+
interface BatchExecutionEvent {
|
|
991
|
+
/** Type of batch execution event */
|
|
992
|
+
type: 'batch_start' | 'step_included' | 'step_skipped' | 'batch_stop' | 'batch_complete';
|
|
993
|
+
/** Timestamp when the event occurred */
|
|
994
|
+
timestamp: Date;
|
|
995
|
+
/** Event-specific details */
|
|
996
|
+
details: {
|
|
997
|
+
stepId?: string;
|
|
998
|
+
reason?: string;
|
|
999
|
+
batchSize?: number;
|
|
1000
|
+
stoppedReason?: StoppedReason;
|
|
1001
|
+
timing?: BatchExecutionTiming;
|
|
1002
|
+
};
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
/**
|
|
1006
|
+
* Timing information for batch execution phases
|
|
1007
|
+
*/
|
|
1008
|
+
interface BatchExecutionTiming {
|
|
1009
|
+
/** Total batch execution time in milliseconds */
|
|
1010
|
+
totalMs: number;
|
|
1011
|
+
/** Time spent in batch determination phase */
|
|
1012
|
+
determinationMs?: number;
|
|
1013
|
+
/** Time spent executing prepare hooks */
|
|
1014
|
+
prepareHooksMs?: number;
|
|
1015
|
+
/** Time spent in LLM call */
|
|
1016
|
+
llmCallMs?: number;
|
|
1017
|
+
/** Time spent collecting data */
|
|
1018
|
+
dataCollectionMs?: number;
|
|
1019
|
+
/** Time spent executing finalize hooks */
|
|
1020
|
+
finalizeHooksMs?: number;
|
|
1021
|
+
}
|
|
1022
|
+
```
|
|
1023
|
+
|
|
1024
|
+
### Enhanced AgentResponse
|
|
1025
|
+
|
|
1026
|
+
The AgentResponse interface includes batch execution fields:
|
|
1027
|
+
|
|
1028
|
+
```typescript
|
|
1029
|
+
interface AgentResponse<TData = unknown> {
|
|
1030
|
+
/** The generated message */
|
|
1031
|
+
message: string;
|
|
1032
|
+
/** Updated session state */
|
|
1033
|
+
session?: SessionState<TData>;
|
|
1034
|
+
/** Tool calls made during response */
|
|
1035
|
+
toolCalls?: Array<{ toolName: string; arguments: Record<string, unknown> }>;
|
|
1036
|
+
/** Whether the route is complete */
|
|
1037
|
+
isRouteComplete?: boolean;
|
|
1038
|
+
|
|
1039
|
+
// Multi-step execution fields
|
|
1040
|
+
/** Steps executed in this response */
|
|
1041
|
+
executedSteps?: StepRef[];
|
|
1042
|
+
/** Why execution stopped */
|
|
1043
|
+
stoppedReason?: StoppedReason;
|
|
1044
|
+
/** Error information if execution failed */
|
|
1045
|
+
error?: BatchExecutionError;
|
|
1046
|
+
}
|
|
1047
|
+
```
|
|
1048
|
+
|
|
850
1049
|
### Tool Types
|
|
851
1050
|
|
|
852
1051
|
```typescript
|