@falai/agent 0.8.1 → 0.9.0-alpha-2
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 +332 -147
- package/dist/{adapters → cjs/src/adapters}/MemoryAdapter.d.ts +4 -4
- package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/MemoryAdapter.js +41 -21
- package/dist/cjs/src/adapters/MemoryAdapter.js.map +1 -0
- package/dist/{adapters → cjs/src/adapters}/MongoAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/MongoAdapter.js +2 -1
- package/dist/cjs/src/adapters/MongoAdapter.js.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/OpenSearchAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/OpenSearchAdapter.js +10 -13
- package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/PostgreSQLAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/PostgreSQLAdapter.js +1 -1
- package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/PrismaAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/PrismaAdapter.js +35 -5
- package/dist/cjs/src/adapters/PrismaAdapter.js.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/RedisAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/RedisAdapter.js +3 -2
- package/dist/cjs/src/adapters/RedisAdapter.js.map +1 -0
- package/dist/{adapters → cjs/src/adapters}/SQLiteAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/SQLiteAdapter.js +2 -1
- package/dist/cjs/src/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/index.d.ts.map +1 -0
- package/dist/cjs/src/adapters/index.js.map +1 -0
- package/dist/cjs/src/constants/index.d.ts.map +1 -0
- package/dist/cjs/src/constants/index.js.map +1 -0
- package/dist/cjs/src/core/Agent.d.ts +223 -0
- package/dist/cjs/src/core/Agent.d.ts.map +1 -0
- package/dist/cjs/src/core/Agent.js +1660 -0
- package/dist/cjs/src/core/Agent.js.map +1 -0
- package/dist/cjs/src/core/Events.d.ts +26 -0
- package/dist/cjs/src/core/Events.d.ts.map +1 -0
- package/dist/cjs/src/core/Events.js +144 -0
- package/dist/cjs/src/core/Events.js.map +1 -0
- package/dist/{core → cjs/src/core}/PersistenceManager.d.ts +21 -19
- package/dist/cjs/src/core/PersistenceManager.d.ts.map +1 -0
- package/dist/cjs/{core → src/core}/PersistenceManager.js +73 -20
- package/dist/cjs/src/core/PersistenceManager.js.map +1 -0
- package/dist/cjs/src/core/PromptComposer.d.ts +27 -0
- package/dist/cjs/src/core/PromptComposer.d.ts.map +1 -0
- package/dist/cjs/src/core/PromptComposer.js +157 -0
- package/dist/cjs/src/core/PromptComposer.js.map +1 -0
- package/dist/cjs/src/core/ResponseEngine.d.ts +32 -0
- package/dist/cjs/src/core/ResponseEngine.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponseEngine.js +84 -0
- package/dist/cjs/src/core/ResponseEngine.js.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts +171 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.js +514 -0
- package/dist/cjs/src/core/ResponsePipeline.js.map +1 -0
- package/dist/cjs/src/core/Route.d.ts +145 -0
- package/dist/cjs/src/core/Route.d.ts.map +1 -0
- package/dist/cjs/src/core/Route.js +343 -0
- package/dist/cjs/src/core/Route.js.map +1 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts +129 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -0
- package/dist/cjs/{core → src/core}/RoutingEngine.js +215 -117
- package/dist/cjs/src/core/RoutingEngine.js.map +1 -0
- package/dist/cjs/src/core/SessionManager.d.ts +86 -0
- package/dist/cjs/src/core/SessionManager.d.ts.map +1 -0
- package/dist/cjs/src/core/SessionManager.js +217 -0
- package/dist/cjs/src/core/SessionManager.js.map +1 -0
- package/dist/cjs/src/core/Step.d.ts +96 -0
- package/dist/cjs/src/core/Step.d.ts.map +1 -0
- package/dist/cjs/src/core/Step.js +206 -0
- package/dist/cjs/src/core/Step.js.map +1 -0
- package/dist/cjs/src/core/ToolExecutor.d.ts +45 -0
- package/dist/cjs/src/core/ToolExecutor.d.ts.map +1 -0
- package/dist/cjs/{core → src/core}/ToolExecutor.js +30 -19
- package/dist/cjs/src/core/ToolExecutor.js.map +1 -0
- package/dist/{index.d.ts → cjs/src/index.d.ts} +7 -15
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/{index.js → src/index.js} +21 -19
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/{providers → src/providers}/AnthropicProvider.d.ts +1 -1
- package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/cjs/{providers → src/providers}/AnthropicProvider.js +54 -2
- package/dist/cjs/src/providers/AnthropicProvider.js.map +1 -0
- package/dist/{providers → cjs/src/providers}/GeminiProvider.d.ts +1 -1
- package/dist/cjs/src/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/cjs/{providers → src/providers}/GeminiProvider.js +65 -0
- package/dist/cjs/src/providers/GeminiProvider.js.map +1 -0
- package/dist/cjs/{providers → src/providers}/OpenAIProvider.d.ts +1 -1
- package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/cjs/{providers → src/providers}/OpenAIProvider.js +70 -1
- package/dist/cjs/src/providers/OpenAIProvider.js.map +1 -0
- package/dist/{providers → cjs/src/providers}/OpenRouterProvider.d.ts +1 -1
- package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/cjs/{providers → src/providers}/OpenRouterProvider.js +76 -0
- package/dist/cjs/src/providers/OpenRouterProvider.js.map +1 -0
- package/dist/cjs/src/providers/index.d.ts.map +1 -0
- package/dist/cjs/src/providers/index.js.map +1 -0
- package/dist/cjs/{types → src/types}/agent.d.ts +80 -41
- package/dist/cjs/src/types/agent.d.ts.map +1 -0
- package/dist/cjs/src/types/agent.js.map +1 -0
- package/dist/cjs/{types → src/types}/ai.d.ts +7 -0
- package/dist/cjs/src/types/ai.d.ts.map +1 -0
- package/dist/cjs/src/types/ai.js.map +1 -0
- package/dist/{types → cjs/src/types}/history.d.ts +76 -18
- package/dist/cjs/src/types/history.d.ts.map +1 -0
- package/dist/cjs/src/types/history.js +33 -0
- package/dist/cjs/src/types/history.js.map +1 -0
- package/dist/cjs/src/types/index.d.ts +20 -0
- package/dist/cjs/src/types/index.d.ts.map +1 -0
- package/dist/cjs/src/types/index.js +30 -0
- package/dist/cjs/src/types/index.js.map +1 -0
- package/dist/{types → cjs/src/types}/persistence.d.ts +38 -23
- package/dist/cjs/src/types/persistence.d.ts.map +1 -0
- package/dist/cjs/src/types/persistence.js.map +1 -0
- package/dist/cjs/src/types/route.d.ts +235 -0
- package/dist/cjs/src/types/route.d.ts.map +1 -0
- package/dist/cjs/{types → src/types}/route.js.map +1 -1
- package/dist/cjs/src/types/routing.d.ts.map +1 -0
- package/dist/{types → cjs/src/types}/routing.js.map +1 -1
- package/dist/cjs/src/types/schema.d.ts.map +1 -0
- package/dist/{types → cjs/src/types}/schema.js.map +1 -1
- package/dist/cjs/src/types/session.d.ts +65 -0
- package/dist/cjs/src/types/session.d.ts.map +1 -0
- package/dist/cjs/src/types/session.js +6 -0
- package/dist/cjs/src/types/session.js.map +1 -0
- package/dist/cjs/src/types/template.d.ts +30 -0
- package/dist/cjs/src/types/template.d.ts.map +1 -0
- package/dist/cjs/src/types/template.js +3 -0
- package/dist/cjs/src/types/template.js.map +1 -0
- package/dist/{types → cjs/src/types}/tool.d.ts +17 -13
- package/dist/cjs/src/types/tool.d.ts.map +1 -0
- package/dist/cjs/{types → src/types}/tool.js.map +1 -1
- package/dist/cjs/src/utils/clone.d.ts +8 -0
- package/dist/cjs/src/utils/clone.d.ts.map +1 -0
- package/dist/cjs/src/utils/clone.js +36 -0
- package/dist/cjs/src/utils/clone.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/event.d.ts +1 -1
- package/dist/cjs/src/utils/event.d.ts.map +1 -0
- package/dist/cjs/{utils → src/utils}/event.js +2 -2
- package/dist/cjs/src/utils/event.js.map +1 -0
- package/dist/cjs/src/utils/history.d.ts +31 -0
- package/dist/cjs/src/utils/history.d.ts.map +1 -0
- package/dist/cjs/src/utils/history.js +128 -0
- package/dist/cjs/src/utils/history.js.map +1 -0
- package/dist/cjs/src/utils/id.d.ts.map +1 -0
- package/dist/cjs/src/utils/id.js.map +1 -0
- package/dist/cjs/src/utils/index.d.ts +13 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -0
- package/dist/cjs/src/utils/index.js +49 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/cjs/src/utils/logger.d.ts.map +1 -0
- package/dist/cjs/src/utils/logger.js.map +1 -0
- package/dist/cjs/src/utils/retry.d.ts.map +1 -0
- package/dist/cjs/src/utils/retry.js.map +1 -0
- package/dist/cjs/src/utils/session.d.ts +51 -0
- package/dist/cjs/src/utils/session.d.ts.map +1 -0
- package/dist/cjs/{types → src/utils}/session.js +35 -32
- package/dist/cjs/src/utils/session.js.map +1 -0
- package/dist/cjs/src/utils/template.d.ts +107 -0
- package/dist/cjs/src/utils/template.d.ts.map +1 -0
- package/dist/cjs/src/utils/template.js +283 -0
- package/dist/cjs/src/utils/template.js.map +1 -0
- package/dist/{cjs → src}/adapters/MemoryAdapter.d.ts +4 -4
- package/dist/src/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/MemoryAdapter.js +41 -21
- package/dist/src/adapters/MemoryAdapter.js.map +1 -0
- package/dist/{cjs → src}/adapters/MongoAdapter.d.ts +3 -3
- package/dist/src/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/MongoAdapter.js +2 -1
- package/dist/src/adapters/MongoAdapter.js.map +1 -0
- package/dist/{adapters → src/adapters}/OpenSearchAdapter.d.ts +3 -3
- package/dist/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/OpenSearchAdapter.js +10 -13
- package/dist/src/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/{adapters → src/adapters}/PostgreSQLAdapter.d.ts +3 -3
- package/dist/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/PostgreSQLAdapter.js +1 -1
- package/dist/src/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/{adapters → src/adapters}/PrismaAdapter.d.ts +3 -3
- package/dist/src/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/PrismaAdapter.js +35 -5
- package/dist/src/adapters/PrismaAdapter.js.map +1 -0
- package/dist/{adapters → src/adapters}/RedisAdapter.d.ts +3 -3
- package/dist/src/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/RedisAdapter.js +3 -2
- package/dist/src/adapters/RedisAdapter.js.map +1 -0
- package/dist/{cjs → src}/adapters/SQLiteAdapter.d.ts +3 -3
- package/dist/src/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/SQLiteAdapter.js +2 -1
- package/dist/src/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/src/adapters/index.js.map +1 -0
- package/dist/src/constants/index.js.map +1 -0
- package/dist/src/core/Agent.d.ts +223 -0
- package/dist/src/core/Agent.d.ts.map +1 -0
- package/dist/src/core/Agent.js +1656 -0
- package/dist/src/core/Agent.js.map +1 -0
- package/dist/src/core/Events.d.ts +26 -0
- package/dist/src/core/Events.d.ts.map +1 -0
- package/dist/src/core/Events.js +137 -0
- package/dist/src/core/Events.js.map +1 -0
- package/dist/{cjs → src}/core/PersistenceManager.d.ts +21 -19
- package/dist/src/core/PersistenceManager.d.ts.map +1 -0
- package/dist/{core → src/core}/PersistenceManager.js +71 -18
- package/dist/src/core/PersistenceManager.js.map +1 -0
- package/dist/src/core/PromptComposer.d.ts +27 -0
- package/dist/src/core/PromptComposer.d.ts.map +1 -0
- package/dist/src/core/PromptComposer.js +153 -0
- package/dist/src/core/PromptComposer.js.map +1 -0
- package/dist/src/core/ResponseEngine.d.ts +32 -0
- package/dist/src/core/ResponseEngine.d.ts.map +1 -0
- package/dist/src/core/ResponseEngine.js +80 -0
- package/dist/src/core/ResponseEngine.js.map +1 -0
- package/dist/src/core/ResponsePipeline.d.ts +171 -0
- package/dist/src/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/src/core/ResponsePipeline.js +510 -0
- package/dist/src/core/ResponsePipeline.js.map +1 -0
- package/dist/src/core/Route.d.ts +145 -0
- package/dist/src/core/Route.d.ts.map +1 -0
- package/dist/src/core/Route.js +339 -0
- package/dist/src/core/Route.js.map +1 -0
- package/dist/src/core/RoutingEngine.d.ts +129 -0
- package/dist/src/core/RoutingEngine.d.ts.map +1 -0
- package/dist/{core → src/core}/RoutingEngine.js +211 -113
- package/dist/src/core/RoutingEngine.js.map +1 -0
- package/dist/src/core/SessionManager.d.ts +86 -0
- package/dist/src/core/SessionManager.d.ts.map +1 -0
- package/dist/src/core/SessionManager.js +213 -0
- package/dist/src/core/SessionManager.js.map +1 -0
- package/dist/src/core/Step.d.ts +96 -0
- package/dist/src/core/Step.d.ts.map +1 -0
- package/dist/src/core/Step.js +202 -0
- package/dist/src/core/Step.js.map +1 -0
- package/dist/src/core/ToolExecutor.d.ts +45 -0
- package/dist/src/core/ToolExecutor.d.ts.map +1 -0
- package/dist/src/core/ToolExecutor.js +80 -0
- package/dist/src/core/ToolExecutor.js.map +1 -0
- package/dist/{cjs → src}/index.d.ts +7 -15
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +6 -7
- package/dist/src/index.js.map +1 -0
- package/dist/{providers → src/providers}/AnthropicProvider.d.ts +1 -1
- package/dist/src/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/{providers → src/providers}/AnthropicProvider.js +54 -2
- package/dist/src/providers/AnthropicProvider.js.map +1 -0
- package/dist/{cjs → src}/providers/GeminiProvider.d.ts +1 -1
- package/dist/{cjs → src}/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/{providers → src/providers}/GeminiProvider.js +65 -0
- package/dist/src/providers/GeminiProvider.js.map +1 -0
- package/dist/{providers → src/providers}/OpenAIProvider.d.ts +1 -1
- package/dist/{cjs → src}/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/{providers → src/providers}/OpenAIProvider.js +70 -1
- package/dist/src/providers/OpenAIProvider.js.map +1 -0
- package/dist/{cjs → src}/providers/OpenRouterProvider.d.ts +1 -1
- package/dist/{cjs → src}/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/{providers → src/providers}/OpenRouterProvider.js +76 -0
- package/dist/src/providers/OpenRouterProvider.js.map +1 -0
- package/dist/src/providers/index.js.map +1 -0
- package/dist/{types → src/types}/agent.d.ts +80 -41
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/{types → src/types}/ai.d.ts +7 -0
- package/dist/src/types/ai.d.ts.map +1 -0
- package/dist/{cjs → src}/types/ai.js.map +1 -1
- package/dist/{cjs → src}/types/history.d.ts +76 -18
- package/dist/src/types/history.d.ts.map +1 -0
- package/dist/src/types/history.js +30 -0
- package/dist/src/types/history.js.map +1 -0
- package/dist/src/types/index.d.ts +20 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +10 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/{cjs → src}/types/persistence.d.ts +38 -23
- package/dist/src/types/persistence.d.ts.map +1 -0
- package/dist/src/types/persistence.js.map +1 -0
- package/dist/src/types/route.d.ts +235 -0
- package/dist/src/types/route.d.ts.map +1 -0
- package/dist/{types → src/types}/route.js.map +1 -1
- package/dist/src/types/session.d.ts +65 -0
- package/dist/src/types/session.d.ts.map +1 -0
- package/dist/src/types/session.js +5 -0
- package/dist/src/types/session.js.map +1 -0
- package/dist/src/types/template.d.ts +30 -0
- package/dist/src/types/template.d.ts.map +1 -0
- package/dist/src/types/template.js +2 -0
- package/dist/src/types/template.js.map +1 -0
- package/dist/{cjs → src}/types/tool.d.ts +17 -13
- package/dist/src/types/tool.d.ts.map +1 -0
- package/dist/{types → src/types}/tool.js.map +1 -1
- package/dist/src/utils/clone.d.ts +8 -0
- package/dist/src/utils/clone.d.ts.map +1 -0
- package/dist/src/utils/clone.js +33 -0
- package/dist/src/utils/clone.js.map +1 -0
- package/dist/{cjs → src}/utils/event.d.ts +1 -1
- package/dist/{cjs → src}/utils/event.d.ts.map +1 -1
- package/dist/{utils → src/utils}/event.js +1 -1
- package/dist/src/utils/event.js.map +1 -0
- package/dist/src/utils/history.d.ts +31 -0
- package/dist/src/utils/history.d.ts.map +1 -0
- package/dist/src/utils/history.js +121 -0
- package/dist/src/utils/history.js.map +1 -0
- package/dist/src/utils/id.js.map +1 -0
- package/dist/src/utils/index.d.ts +13 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +19 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/retry.js.map +1 -0
- package/dist/src/utils/session.d.ts +51 -0
- package/dist/src/utils/session.d.ts.map +1 -0
- package/dist/{types → src/utils}/session.js +33 -32
- package/dist/src/utils/session.js.map +1 -0
- package/dist/src/utils/template.d.ts +107 -0
- package/dist/src/utils/template.d.ts.map +1 -0
- package/dist/src/utils/template.js +276 -0
- package/dist/src/utils/template.js.map +1 -0
- package/docs/README.md +174 -68
- package/docs/{API_REFERENCE.md → api/README.md} +925 -255
- package/docs/api/overview.md +952 -0
- package/docs/core/agent/README.md +787 -0
- package/docs/{CONTEXT_MANAGEMENT.md → core/agent/context-management.md} +175 -102
- package/docs/{ARCHITECTURE.md → core/agent/session-management.md} +117 -69
- package/docs/core/ai-integration/prompt-composition.md +220 -0
- package/docs/core/ai-integration/providers.md +515 -0
- package/docs/core/ai-integration/response-processing.md +176 -0
- package/docs/core/conversation-flows/data-collection.md +623 -0
- package/docs/core/conversation-flows/route-dsl.md +502 -0
- package/docs/core/conversation-flows/routes.md +117 -0
- package/docs/core/conversation-flows/step-transitions.md +595 -0
- package/docs/core/conversation-flows/steps.md +154 -0
- package/docs/{ADAPTERS.md → core/persistence/adapters.md} +1 -1
- package/docs/core/persistence/session-storage.md +644 -0
- package/docs/core/routing/intelligent-routing.md +348 -0
- package/docs/core/tools/tool-definition.md +346 -0
- package/docs/core/tools/tool-execution.md +815 -0
- package/docs/core/tools/tool-scoping.md +628 -0
- package/docs/guides/getting-started/README.md +406 -0
- package/examples/{company-qna-agent.ts → advanced-patterns/knowledge-based-agent.ts} +139 -95
- package/examples/{persistent-onboarding.ts → advanced-patterns/persistent-onboarding.ts} +244 -137
- package/examples/{rules-prohibitions.ts → advanced-patterns/route-lifecycle-hooks.ts} +130 -84
- package/examples/{streaming-agent.ts → advanced-patterns/streaming-responses.ts} +116 -90
- package/examples/ai-providers/anthropic-integration.ts +384 -0
- package/examples/{openai-agent.ts → ai-providers/openai-integration.ts} +57 -63
- package/examples/conversation-flows/completion-transitions.ts +277 -0
- package/examples/core-concepts/basic-agent.ts +443 -0
- package/examples/core-concepts/schema-driven-extraction.ts +305 -0
- package/examples/core-concepts/session-management.ts +406 -0
- package/examples/integrations/database-integration.ts +630 -0
- package/examples/integrations/healthcare-integration.ts +609 -0
- package/examples/{opensearch-persistence.ts → integrations/search-integration.ts} +199 -171
- package/examples/integrations/server-session-management.ts +307 -0
- package/examples/persistence/custom-adapter.ts +529 -0
- package/examples/{prisma-persistence.ts → persistence/database-persistence.ts} +215 -272
- package/examples/persistence/memory-sessions.ts +495 -0
- package/examples/{prisma-schema.example.prisma → persistence/prisma-schema.example.prisma} +1 -1
- package/examples/persistence/redis-persistence.ts +490 -0
- package/examples/tools/basic-tools.ts +561 -0
- package/examples/{extracted-data-modification.ts → tools/data-enrichment-tools.ts} +128 -117
- package/package.json +14 -10
- package/src/adapters/MemoryAdapter.ts +74 -46
- package/src/adapters/MongoAdapter.ts +33 -24
- package/src/adapters/OpenSearchAdapter.ts +41 -37
- package/src/adapters/PostgreSQLAdapter.ts +35 -24
- package/src/adapters/PrismaAdapter.ts +69 -27
- package/src/adapters/RedisAdapter.ts +38 -26
- package/src/adapters/SQLiteAdapter.ts +32 -22
- package/src/core/Agent.ts +1431 -526
- package/src/core/Events.ts +100 -112
- package/src/core/PersistenceManager.ts +103 -49
- package/src/core/PromptComposer.ts +158 -85
- package/src/core/ResponseEngine.ts +128 -46
- package/src/core/ResponsePipeline.ts +830 -0
- package/src/core/Route.ts +222 -53
- package/src/core/RoutingEngine.ts +345 -229
- package/src/core/SessionManager.ts +265 -0
- package/src/core/Step.ts +157 -67
- package/src/core/ToolExecutor.ts +52 -43
- package/src/index.ts +31 -37
- package/src/providers/AnthropicProvider.ts +71 -5
- package/src/providers/GeminiProvider.ts +83 -2
- package/src/providers/OpenAIProvider.ts +95 -3
- package/src/providers/OpenRouterProvider.ts +102 -2
- package/src/types/agent.ts +81 -46
- package/src/types/ai.ts +7 -0
- package/src/types/history.ts +91 -18
- package/src/types/index.ts +45 -7
- package/src/types/persistence.ts +45 -28
- package/src/types/route.ts +122 -57
- package/src/types/session.ts +20 -220
- package/src/types/template.ts +36 -0
- package/src/types/tool.ts +23 -19
- package/src/utils/clone.ts +36 -0
- package/src/utils/event.ts +1 -1
- package/src/utils/history.ts +143 -0
- package/src/utils/index.ts +53 -0
- package/src/utils/session.ts +204 -0
- package/src/utils/template.ts +335 -0
- package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
- package/dist/adapters/MemoryAdapter.js.map +0 -1
- package/dist/adapters/MongoAdapter.d.ts.map +0 -1
- package/dist/adapters/MongoAdapter.js.map +0 -1
- package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
- package/dist/adapters/OpenSearchAdapter.js.map +0 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
- package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
- package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
- package/dist/adapters/PrismaAdapter.js.map +0 -1
- package/dist/adapters/RedisAdapter.d.ts.map +0 -1
- package/dist/adapters/RedisAdapter.js.map +0 -1
- package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
- package/dist/adapters/SQLiteAdapter.js.map +0 -1
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js.map +0 -1
- package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
- package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
- package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
- package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
- package/dist/cjs/adapters/index.js.map +0 -1
- package/dist/cjs/constants/index.js.map +0 -1
- package/dist/cjs/core/Agent.d.ts +0 -197
- package/dist/cjs/core/Agent.d.ts.map +0 -1
- package/dist/cjs/core/Agent.js +0 -966
- package/dist/cjs/core/Agent.js.map +0 -1
- package/dist/cjs/core/DomainRegistry.d.ts +0 -36
- package/dist/cjs/core/DomainRegistry.d.ts.map +0 -1
- package/dist/cjs/core/DomainRegistry.js +0 -72
- package/dist/cjs/core/DomainRegistry.js.map +0 -1
- package/dist/cjs/core/Events.d.ts +0 -41
- package/dist/cjs/core/Events.d.ts.map +0 -1
- package/dist/cjs/core/Events.js +0 -99
- package/dist/cjs/core/Events.js.map +0 -1
- package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
- package/dist/cjs/core/PersistenceManager.js.map +0 -1
- package/dist/cjs/core/PromptComposer.d.ts +0 -24
- package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
- package/dist/cjs/core/PromptComposer.js +0 -127
- package/dist/cjs/core/PromptComposer.js.map +0 -1
- package/dist/cjs/core/ResponseEngine.d.ts +0 -14
- package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
- package/dist/cjs/core/ResponseEngine.js +0 -56
- package/dist/cjs/core/ResponseEngine.js.map +0 -1
- package/dist/cjs/core/Route.d.ts +0 -90
- package/dist/cjs/core/Route.d.ts.map +0 -1
- package/dist/cjs/core/Route.js +0 -203
- package/dist/cjs/core/Route.js.map +0 -1
- package/dist/cjs/core/RoutingEngine.d.ts +0 -109
- package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
- package/dist/cjs/core/RoutingEngine.js.map +0 -1
- package/dist/cjs/core/Step.d.ts +0 -72
- package/dist/cjs/core/Step.d.ts.map +0 -1
- package/dist/cjs/core/Step.js +0 -150
- package/dist/cjs/core/Step.js.map +0 -1
- package/dist/cjs/core/Tool.d.ts +0 -39
- package/dist/cjs/core/Tool.d.ts.map +0 -1
- package/dist/cjs/core/Tool.js +0 -34
- package/dist/cjs/core/Tool.js.map +0 -1
- package/dist/cjs/core/ToolExecutor.d.ts +0 -29
- package/dist/cjs/core/ToolExecutor.d.ts.map +0 -1
- package/dist/cjs/core/ToolExecutor.js.map +0 -1
- package/dist/cjs/core/Transition.d.ts +0 -32
- package/dist/cjs/core/Transition.d.ts.map +0 -1
- package/dist/cjs/core/Transition.js +0 -89
- package/dist/cjs/core/Transition.js.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/providers/AnthropicProvider.d.ts.map +0 -1
- package/dist/cjs/providers/AnthropicProvider.js.map +0 -1
- package/dist/cjs/providers/GeminiProvider.js.map +0 -1
- package/dist/cjs/providers/OpenAIProvider.js.map +0 -1
- package/dist/cjs/providers/OpenRouterProvider.js.map +0 -1
- package/dist/cjs/providers/index.js.map +0 -1
- package/dist/cjs/types/agent.d.ts.map +0 -1
- package/dist/cjs/types/agent.js.map +0 -1
- package/dist/cjs/types/ai.d.ts.map +0 -1
- package/dist/cjs/types/history.d.ts.map +0 -1
- package/dist/cjs/types/history.js +0 -37
- package/dist/cjs/types/history.js.map +0 -1
- package/dist/cjs/types/index.d.ts +0 -12
- package/dist/cjs/types/index.d.ts.map +0 -1
- package/dist/cjs/types/index.js +0 -12
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/persistence.d.ts.map +0 -1
- package/dist/cjs/types/persistence.js.map +0 -1
- package/dist/cjs/types/route.d.ts +0 -175
- package/dist/cjs/types/route.d.ts.map +0 -1
- package/dist/cjs/types/session.d.ts +0 -104
- package/dist/cjs/types/session.d.ts.map +0 -1
- package/dist/cjs/types/session.js.map +0 -1
- package/dist/cjs/types/tool.d.ts.map +0 -1
- package/dist/cjs/utils/event.js.map +0 -1
- package/dist/cjs/utils/id.js.map +0 -1
- package/dist/cjs/utils/logger.js.map +0 -1
- package/dist/cjs/utils/retry.js.map +0 -1
- package/dist/constants/index.d.ts.map +0 -1
- package/dist/constants/index.js.map +0 -1
- package/dist/core/Agent.d.ts +0 -197
- package/dist/core/Agent.d.ts.map +0 -1
- package/dist/core/Agent.js +0 -962
- package/dist/core/Agent.js.map +0 -1
- package/dist/core/DomainRegistry.d.ts +0 -36
- package/dist/core/DomainRegistry.d.ts.map +0 -1
- package/dist/core/DomainRegistry.js +0 -68
- package/dist/core/DomainRegistry.js.map +0 -1
- package/dist/core/Events.d.ts +0 -41
- package/dist/core/Events.d.ts.map +0 -1
- package/dist/core/Events.js +0 -94
- package/dist/core/Events.js.map +0 -1
- package/dist/core/PersistenceManager.d.ts.map +0 -1
- package/dist/core/PersistenceManager.js.map +0 -1
- package/dist/core/PromptComposer.d.ts +0 -24
- package/dist/core/PromptComposer.d.ts.map +0 -1
- package/dist/core/PromptComposer.js +0 -123
- package/dist/core/PromptComposer.js.map +0 -1
- package/dist/core/ResponseEngine.d.ts +0 -14
- package/dist/core/ResponseEngine.d.ts.map +0 -1
- package/dist/core/ResponseEngine.js +0 -52
- package/dist/core/ResponseEngine.js.map +0 -1
- package/dist/core/Route.d.ts +0 -90
- package/dist/core/Route.d.ts.map +0 -1
- package/dist/core/Route.js +0 -199
- package/dist/core/Route.js.map +0 -1
- package/dist/core/RoutingEngine.d.ts +0 -109
- package/dist/core/RoutingEngine.d.ts.map +0 -1
- package/dist/core/RoutingEngine.js.map +0 -1
- package/dist/core/Step.d.ts +0 -72
- package/dist/core/Step.d.ts.map +0 -1
- package/dist/core/Step.js +0 -146
- package/dist/core/Step.js.map +0 -1
- package/dist/core/Tool.d.ts +0 -39
- package/dist/core/Tool.d.ts.map +0 -1
- package/dist/core/Tool.js +0 -31
- package/dist/core/Tool.js.map +0 -1
- package/dist/core/ToolExecutor.d.ts +0 -29
- package/dist/core/ToolExecutor.d.ts.map +0 -1
- package/dist/core/ToolExecutor.js +0 -69
- package/dist/core/ToolExecutor.js.map +0 -1
- package/dist/core/Transition.d.ts +0 -32
- package/dist/core/Transition.d.ts.map +0 -1
- package/dist/core/Transition.js +0 -85
- package/dist/core/Transition.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/providers/AnthropicProvider.d.ts.map +0 -1
- package/dist/providers/AnthropicProvider.js.map +0 -1
- package/dist/providers/GeminiProvider.d.ts.map +0 -1
- package/dist/providers/GeminiProvider.js.map +0 -1
- package/dist/providers/OpenAIProvider.d.ts.map +0 -1
- package/dist/providers/OpenAIProvider.js.map +0 -1
- package/dist/providers/OpenRouterProvider.d.ts.map +0 -1
- package/dist/providers/OpenRouterProvider.js.map +0 -1
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js.map +0 -1
- package/dist/types/agent.d.ts.map +0 -1
- package/dist/types/agent.js.map +0 -1
- package/dist/types/ai.d.ts.map +0 -1
- package/dist/types/ai.js.map +0 -1
- package/dist/types/history.d.ts.map +0 -1
- package/dist/types/history.js +0 -34
- package/dist/types/history.js.map +0 -1
- package/dist/types/index.d.ts +0 -12
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +0 -1
- package/dist/types/persistence.d.ts.map +0 -1
- package/dist/types/persistence.js.map +0 -1
- package/dist/types/route.d.ts +0 -175
- package/dist/types/route.d.ts.map +0 -1
- package/dist/types/routing.d.ts.map +0 -1
- package/dist/types/schema.d.ts.map +0 -1
- package/dist/types/session.d.ts +0 -104
- package/dist/types/session.d.ts.map +0 -1
- package/dist/types/session.js.map +0 -1
- package/dist/types/tool.d.ts.map +0 -1
- package/dist/utils/event.d.ts.map +0 -1
- package/dist/utils/event.js.map +0 -1
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js.map +0 -1
- package/docs/AGENT.md +0 -535
- package/docs/DOCS.md +0 -263
- package/docs/DOMAINS.md +0 -735
- package/docs/EXAMPLES.md +0 -467
- package/docs/GETTING_STARTED.md +0 -424
- package/docs/PERSISTENCE.md +0 -815
- package/docs/PROVIDERS.md +0 -612
- package/docs/ROUTES.md +0 -1085
- package/docs/STEPS.md +0 -883
- package/examples/business-onboarding.ts +0 -791
- package/examples/custom-database-persistence.ts +0 -574
- package/examples/declarative-agent.ts +0 -401
- package/examples/domain-scoping.ts +0 -366
- package/examples/healthcare-agent.ts +0 -511
- package/examples/redis-persistence.ts +0 -525
- package/examples/route-transitions.ts +0 -266
- package/examples/travel-agent.ts +0 -584
- package/src/core/DomainRegistry.ts +0 -80
- package/src/core/Tool.ts +0 -112
- package/src/core/Transition.ts +0 -115
- /package/dist/{adapters → cjs/src/adapters}/index.d.ts +0 -0
- /package/dist/cjs/{adapters → src/adapters}/index.js +0 -0
- /package/dist/cjs/{constants → src/constants}/index.d.ts +0 -0
- /package/dist/cjs/{constants → src/constants}/index.js +0 -0
- /package/dist/cjs/{providers → src/providers}/index.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/index.js +0 -0
- /package/dist/cjs/{types → src/types}/agent.js +0 -0
- /package/dist/cjs/{types → src/types}/ai.js +0 -0
- /package/dist/cjs/{types → src/types}/persistence.js +0 -0
- /package/dist/cjs/{types → src/types}/route.js +0 -0
- /package/dist/cjs/{types → src/types}/routing.d.ts +0 -0
- /package/dist/cjs/{types → src/types}/routing.js +0 -0
- /package/dist/cjs/{types → src/types}/schema.d.ts +0 -0
- /package/dist/cjs/{types → src/types}/schema.js +0 -0
- /package/dist/cjs/{types → src/types}/tool.js +0 -0
- /package/dist/cjs/{utils → src/utils}/id.d.ts +0 -0
- /package/dist/cjs/{utils → src/utils}/id.js +0 -0
- /package/dist/cjs/{utils → src/utils}/logger.d.ts +0 -0
- /package/dist/cjs/{utils → src/utils}/logger.js +0 -0
- /package/dist/cjs/{utils → src/utils}/retry.d.ts +0 -0
- /package/dist/cjs/{utils → src/utils}/retry.js +0 -0
- /package/dist/{cjs → src}/adapters/index.d.ts +0 -0
- /package/dist/{cjs → src}/adapters/index.d.ts.map +0 -0
- /package/dist/{adapters → src/adapters}/index.js +0 -0
- /package/dist/{constants → src/constants}/index.d.ts +0 -0
- /package/dist/{cjs → src}/constants/index.d.ts.map +0 -0
- /package/dist/{constants → src/constants}/index.js +0 -0
- /package/dist/{providers → src/providers}/index.d.ts +0 -0
- /package/dist/{cjs → src}/providers/index.d.ts.map +0 -0
- /package/dist/{providers → src/providers}/index.js +0 -0
- /package/dist/{types → src/types}/agent.js +0 -0
- /package/dist/{types → src/types}/ai.js +0 -0
- /package/dist/{types → src/types}/persistence.js +0 -0
- /package/dist/{types → src/types}/route.js +0 -0
- /package/dist/{types → src/types}/routing.d.ts +0 -0
- /package/dist/{cjs → src}/types/routing.d.ts.map +0 -0
- /package/dist/{types → src/types}/routing.js +0 -0
- /package/dist/{cjs → src}/types/routing.js.map +0 -0
- /package/dist/{types → src/types}/schema.d.ts +0 -0
- /package/dist/{cjs → src}/types/schema.d.ts.map +0 -0
- /package/dist/{types → src/types}/schema.js +0 -0
- /package/dist/{cjs → src}/types/schema.js.map +0 -0
- /package/dist/{types → src/types}/tool.js +0 -0
- /package/dist/{utils → src/utils}/id.d.ts +0 -0
- /package/dist/{cjs → src}/utils/id.d.ts.map +0 -0
- /package/dist/{utils → src/utils}/id.js +0 -0
- /package/dist/{utils → src/utils}/logger.d.ts +0 -0
- /package/dist/{cjs → src}/utils/logger.d.ts.map +0 -0
- /package/dist/{utils → src/utils}/logger.js +0 -0
- /package/dist/{utils → src/utils}/retry.d.ts +0 -0
- /package/dist/{cjs → src}/utils/retry.d.ts.map +0 -0
- /package/dist/{utils → src/utils}/retry.js +0 -0
- /package/docs/{PUBLISHING.md → guides/advanced-patterns/publishing.md} +0 -0
package/src/types/index.ts
CHANGED
|
@@ -7,8 +7,13 @@ export type {
|
|
|
7
7
|
AgentOptions,
|
|
8
8
|
Term,
|
|
9
9
|
Guideline,
|
|
10
|
-
Capability,
|
|
11
10
|
GuidelineMatch,
|
|
11
|
+
AgentResponseStreamChunk,
|
|
12
|
+
AgentResponse,
|
|
13
|
+
ContextLifecycleHooks,
|
|
14
|
+
ContextProvider,
|
|
15
|
+
ValidationError,
|
|
16
|
+
ValidationResult,
|
|
12
17
|
} from "./agent";
|
|
13
18
|
export { CompositionMode } from "./agent";
|
|
14
19
|
|
|
@@ -22,38 +27,71 @@ export type {
|
|
|
22
27
|
Participant,
|
|
23
28
|
ToolResult as EventToolResult,
|
|
24
29
|
ToolCall,
|
|
30
|
+
HistoryMessage,
|
|
31
|
+
Role,
|
|
32
|
+
HistoryItem,
|
|
33
|
+
History,
|
|
34
|
+
UserHistoryItem,
|
|
35
|
+
AssistantHistoryItem,
|
|
36
|
+
SystemHistoryItem,
|
|
37
|
+
ToolHistoryItem,
|
|
25
38
|
} from "./history";
|
|
26
|
-
export { EventKind,
|
|
39
|
+
export { EventKind, MessageRole } from "./history";
|
|
40
|
+
export * from "./history";
|
|
27
41
|
|
|
28
42
|
// Route types
|
|
29
43
|
export type {
|
|
44
|
+
RouteOptions,
|
|
30
45
|
RouteRef,
|
|
31
46
|
StepRef,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
47
|
+
StepOptions,
|
|
48
|
+
StepResult,
|
|
49
|
+
BranchSpec,
|
|
50
|
+
BranchResult,
|
|
51
|
+
RouteCompletionHandler,
|
|
52
|
+
RouteTransitionConfig,
|
|
53
|
+
RouteLifecycleHooks,
|
|
35
54
|
} from "./route";
|
|
55
|
+
export * from "./route";
|
|
56
|
+
|
|
57
|
+
// Session types
|
|
58
|
+
export type { SessionState, PendingTransition } from "./session";
|
|
36
59
|
|
|
37
60
|
// Tool types
|
|
38
|
-
export type { ToolContext, ToolResult, ToolHandler
|
|
61
|
+
export type { Tool, ToolContext, ToolResult, ToolHandler } from "./tool";
|
|
39
62
|
|
|
40
63
|
// AI provider types
|
|
41
64
|
export type {
|
|
42
65
|
AiProvider,
|
|
43
66
|
GenerateMessageInput,
|
|
44
67
|
GenerateMessageOutput,
|
|
68
|
+
AgentStructuredResponse,
|
|
69
|
+
ReasoningConfig,
|
|
70
|
+
GenerateMessageStreamChunk,
|
|
45
71
|
} from "./ai";
|
|
46
72
|
|
|
73
|
+
// Schema types
|
|
74
|
+
export type { StructuredSchema } from "./schema";
|
|
75
|
+
|
|
76
|
+
// Routing types
|
|
77
|
+
export type { RoutingDecision } from "./routing";
|
|
78
|
+
export * from "./routing";
|
|
79
|
+
|
|
47
80
|
// Persistence types
|
|
48
81
|
export type {
|
|
49
82
|
SessionData,
|
|
50
83
|
MessageData,
|
|
51
84
|
SessionStatus,
|
|
52
|
-
MessageRole,
|
|
53
85
|
SessionRepository,
|
|
54
86
|
MessageRepository,
|
|
55
87
|
PersistenceAdapter,
|
|
56
88
|
PersistenceConfig,
|
|
57
89
|
CreateSessionOptions,
|
|
90
|
+
CreateSessionData,
|
|
58
91
|
SaveMessageOptions,
|
|
92
|
+
CollectedStateData,
|
|
59
93
|
} from "./persistence";
|
|
94
|
+
export * from "./persistence";
|
|
95
|
+
|
|
96
|
+
// Template types
|
|
97
|
+
export type { Template, TemplateContext } from "./template";
|
package/src/types/persistence.ts
CHANGED
|
@@ -3,29 +3,25 @@
|
|
|
3
3
|
* Support for optional database persistence (Prisma, etc.)
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { Event } from "./history";
|
|
6
|
+
import type { Event, MessageRole } from "./history";
|
|
7
|
+
import type { SessionState } from "./session";
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Session status enum
|
|
10
11
|
*/
|
|
11
12
|
export type SessionStatus = "active" | "completed" | "abandoned";
|
|
12
13
|
|
|
13
|
-
/**
|
|
14
|
-
* Message role enum
|
|
15
|
-
*/
|
|
16
|
-
export type MessageRole = "user" | "agent" | "system";
|
|
17
|
-
|
|
18
14
|
/**
|
|
19
15
|
* Base session data structure
|
|
20
16
|
*/
|
|
21
|
-
export interface SessionData {
|
|
17
|
+
export interface SessionData<TData = Record<string, unknown>> {
|
|
22
18
|
id: string;
|
|
23
19
|
userId?: string;
|
|
24
20
|
agentName?: string;
|
|
25
21
|
status: SessionStatus;
|
|
26
22
|
currentRoute?: string;
|
|
27
23
|
currentStep?: string;
|
|
28
|
-
collectedData?:
|
|
24
|
+
collectedData?: CollectedStateData<TData>;
|
|
29
25
|
messageCount?: number;
|
|
30
26
|
lastMessageAt?: Date;
|
|
31
27
|
completedAt?: Date;
|
|
@@ -33,6 +29,29 @@ export interface SessionData {
|
|
|
33
29
|
updatedAt: Date;
|
|
34
30
|
}
|
|
35
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Data for creating a new session (subset of SessionData)
|
|
34
|
+
*/
|
|
35
|
+
export type CreateSessionData<TData = Record<string, unknown>> = Omit<
|
|
36
|
+
SessionData<TData>,
|
|
37
|
+
"id" | "createdAt" | "updatedAt"
|
|
38
|
+
> & {
|
|
39
|
+
id?: string;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Structure for data collected during a session that needs to be persisted.
|
|
44
|
+
* This is a subset of SessionState, stored within SessionData.
|
|
45
|
+
*/
|
|
46
|
+
export interface CollectedStateData<TData = Record<string, unknown>> {
|
|
47
|
+
data: Partial<TData>;
|
|
48
|
+
routeHistory: SessionState<TData>["routeHistory"];
|
|
49
|
+
history?: SessionState<TData>["history"];
|
|
50
|
+
currentRouteTitle?: string;
|
|
51
|
+
currentStepDescription?: string;
|
|
52
|
+
metadata: SessionState<TData>["metadata"];
|
|
53
|
+
}
|
|
54
|
+
|
|
36
55
|
/**
|
|
37
56
|
* Base message data structure
|
|
38
57
|
*/
|
|
@@ -53,36 +72,34 @@ export interface MessageData {
|
|
|
53
72
|
* Repository interface for sessions
|
|
54
73
|
* Implement this interface with your database of choice
|
|
55
74
|
*/
|
|
56
|
-
export interface SessionRepository {
|
|
75
|
+
export interface SessionRepository<TData = Record<string, unknown>> {
|
|
57
76
|
/**
|
|
58
77
|
* Create a new session
|
|
59
78
|
*/
|
|
60
|
-
create(
|
|
61
|
-
data: Omit<SessionData, "id" | "createdAt" | "updatedAt">
|
|
62
|
-
): Promise<SessionData>;
|
|
79
|
+
create(data: CreateSessionData<TData>): Promise<SessionData<TData>>;
|
|
63
80
|
|
|
64
81
|
/**
|
|
65
82
|
* Find session by ID
|
|
66
83
|
*/
|
|
67
|
-
findById(id: string): Promise<SessionData | null>;
|
|
84
|
+
findById(id: string): Promise<SessionData<TData> | null>;
|
|
68
85
|
|
|
69
86
|
/**
|
|
70
87
|
* Find active session by user ID
|
|
71
88
|
*/
|
|
72
|
-
findActiveByUserId(userId: string): Promise<SessionData | null>;
|
|
89
|
+
findActiveByUserId(userId: string): Promise<SessionData<TData> | null>;
|
|
73
90
|
|
|
74
91
|
/**
|
|
75
92
|
* Find all sessions for a user
|
|
76
93
|
*/
|
|
77
|
-
findByUserId(userId: string, limit?: number): Promise<SessionData[]>;
|
|
94
|
+
findByUserId(userId: string, limit?: number): Promise<SessionData<TData>[]>;
|
|
78
95
|
|
|
79
96
|
/**
|
|
80
97
|
* Update session
|
|
81
98
|
*/
|
|
82
99
|
update(
|
|
83
100
|
id: string,
|
|
84
|
-
data: Partial<Omit<SessionData
|
|
85
|
-
): Promise<SessionData | null>;
|
|
101
|
+
data: Partial<Omit<SessionData<TData>, "id" | "createdAt">>
|
|
102
|
+
): Promise<SessionData<TData> | null>;
|
|
86
103
|
|
|
87
104
|
/**
|
|
88
105
|
* Update session status
|
|
@@ -91,15 +108,15 @@ export interface SessionRepository {
|
|
|
91
108
|
id: string,
|
|
92
109
|
status: SessionStatus,
|
|
93
110
|
completedAt?: Date
|
|
94
|
-
): Promise<SessionData | null>;
|
|
111
|
+
): Promise<SessionData<TData> | null>;
|
|
95
112
|
|
|
96
113
|
/**
|
|
97
114
|
* Update collected data
|
|
98
115
|
*/
|
|
99
116
|
updateCollectedData(
|
|
100
117
|
id: string,
|
|
101
|
-
collectedData:
|
|
102
|
-
): Promise<SessionData | null>;
|
|
118
|
+
collectedData: CollectedStateData<TData>
|
|
119
|
+
): Promise<SessionData<TData> | null>;
|
|
103
120
|
|
|
104
121
|
/**
|
|
105
122
|
* Update current route and step
|
|
@@ -108,12 +125,12 @@ export interface SessionRepository {
|
|
|
108
125
|
id: string,
|
|
109
126
|
route?: string,
|
|
110
127
|
step?: string
|
|
111
|
-
): Promise<SessionData | null>;
|
|
128
|
+
): Promise<SessionData<TData> | null>;
|
|
112
129
|
|
|
113
130
|
/**
|
|
114
131
|
* Increment message count
|
|
115
132
|
*/
|
|
116
|
-
incrementMessageCount(id: string): Promise<SessionData | null>;
|
|
133
|
+
incrementMessageCount(id: string): Promise<SessionData<TData> | null>;
|
|
117
134
|
|
|
118
135
|
/**
|
|
119
136
|
* Delete session
|
|
@@ -166,11 +183,11 @@ export interface MessageRepository {
|
|
|
166
183
|
* Persistence adapter interface
|
|
167
184
|
* Implement this to create adapters for different databases
|
|
168
185
|
*/
|
|
169
|
-
export interface PersistenceAdapter {
|
|
186
|
+
export interface PersistenceAdapter<TData = Record<string, unknown>> {
|
|
170
187
|
/**
|
|
171
188
|
* Session repository
|
|
172
189
|
*/
|
|
173
|
-
readonly sessionRepository: SessionRepository
|
|
190
|
+
readonly sessionRepository: SessionRepository<TData>;
|
|
174
191
|
|
|
175
192
|
/**
|
|
176
193
|
* Message repository
|
|
@@ -192,11 +209,11 @@ export interface PersistenceAdapter {
|
|
|
192
209
|
/**
|
|
193
210
|
* Configuration for persistence
|
|
194
211
|
*/
|
|
195
|
-
export interface PersistenceConfig {
|
|
212
|
+
export interface PersistenceConfig<TData = Record<string, unknown>> {
|
|
196
213
|
/**
|
|
197
214
|
* Persistence adapter instance (e.g., PrismaAdapter)
|
|
198
215
|
*/
|
|
199
|
-
adapter: PersistenceAdapter
|
|
216
|
+
adapter: PersistenceAdapter<TData>;
|
|
200
217
|
|
|
201
218
|
/**
|
|
202
219
|
* Whether to auto-save messages (default: true)
|
|
@@ -213,10 +230,10 @@ export interface PersistenceConfig {
|
|
|
213
230
|
/**
|
|
214
231
|
* Options for creating a session
|
|
215
232
|
*/
|
|
216
|
-
export interface CreateSessionOptions {
|
|
233
|
+
export interface CreateSessionOptions<TData = Record<string, unknown>> {
|
|
217
234
|
userId?: string;
|
|
218
235
|
agentName?: string;
|
|
219
|
-
initialData?:
|
|
236
|
+
initialData?: Partial<TData>;
|
|
220
237
|
}
|
|
221
238
|
|
|
222
239
|
/**
|
package/src/types/route.ts
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Route/Journey DSL type definitions
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type {
|
|
5
|
+
import type { Tool } from "./tool";
|
|
6
6
|
import type { StructuredSchema } from "./schema";
|
|
7
|
+
import { Template } from "./template";
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Reference to a route
|
|
@@ -24,18 +25,46 @@ export interface StepRef {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
|
-
* Forward declare Guideline for circular dependency
|
|
28
|
+
* Forward declare Guideline and Term for circular dependency
|
|
28
29
|
*/
|
|
29
|
-
import type { Guideline } from "./agent";
|
|
30
|
+
import type { Guideline, Term } from "./agent";
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Route lifecycle hooks for managing route-specific data and behavior
|
|
34
|
+
*/
|
|
35
|
+
export interface RouteLifecycleHooks<TContext = unknown, TData = unknown> {
|
|
36
|
+
/**
|
|
37
|
+
* Called after collected data is updated for this route (from AI response or tool execution)
|
|
38
|
+
* Useful for validation, enrichment, or persistence of route-specific collected data
|
|
39
|
+
* Return modified collected data or the same data to keep it unchanged
|
|
40
|
+
*
|
|
41
|
+
* Unlike Agent-level onDataUpdate, this only triggers for data changes in this specific route.
|
|
42
|
+
*/
|
|
43
|
+
onDataUpdate?: (
|
|
44
|
+
data: Partial<TData>,
|
|
45
|
+
previousCollected: Partial<TData>
|
|
46
|
+
) => Partial<TData> | Promise<Partial<TData>>;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Called after context is updated via updateContext() when this route is active
|
|
50
|
+
* Useful for route-specific context reactions, validation, or side effects
|
|
51
|
+
*
|
|
52
|
+
* Unlike Agent-level onContextUpdate, this only triggers when this specific route is active.
|
|
53
|
+
*/
|
|
54
|
+
onContextUpdate?: (
|
|
55
|
+
newContext: TContext,
|
|
56
|
+
previousContext: TContext
|
|
57
|
+
) => void | Promise<void>;
|
|
58
|
+
}
|
|
30
59
|
|
|
31
60
|
/**
|
|
32
61
|
* Route transition configuration when route completes
|
|
33
62
|
*/
|
|
34
|
-
export interface RouteTransitionConfig {
|
|
63
|
+
export interface RouteTransitionConfig<TContext = unknown, TData = unknown> {
|
|
35
64
|
/** Target route ID or title to transition to */
|
|
36
65
|
nextStep: string;
|
|
37
66
|
/** Optional AI-evaluated condition for the transition */
|
|
38
|
-
condition?:
|
|
67
|
+
condition?: Template<TContext, TData>;
|
|
39
68
|
}
|
|
40
69
|
|
|
41
70
|
/**
|
|
@@ -49,9 +78,9 @@ export type RouteCompletionHandler<TContext = unknown, TData = unknown> = (
|
|
|
49
78
|
context?: TContext
|
|
50
79
|
) =>
|
|
51
80
|
| string
|
|
52
|
-
| RouteTransitionConfig
|
|
81
|
+
| RouteTransitionConfig<TContext, TData>
|
|
53
82
|
| undefined
|
|
54
|
-
| Promise<string | RouteTransitionConfig | undefined>;
|
|
83
|
+
| Promise<string | RouteTransitionConfig<TContext, TData> | undefined>;
|
|
55
84
|
|
|
56
85
|
/**
|
|
57
86
|
* Options for creating a route
|
|
@@ -64,29 +93,41 @@ export interface RouteOptions<TContext = unknown, TData = unknown> {
|
|
|
64
93
|
title: string;
|
|
65
94
|
/** Description of what this route accomplishes */
|
|
66
95
|
description?: string;
|
|
96
|
+
/** Optional identity prompt defining the agent's role and persona for this route */
|
|
97
|
+
identity?: Template<TContext, TData>;
|
|
98
|
+
/** Optional personality prompt defining the agent's communication style for this route */
|
|
99
|
+
personality?: Template<TContext, TData>;
|
|
67
100
|
/** Conditions that activate this route */
|
|
68
|
-
conditions?:
|
|
101
|
+
conditions?: Template<TContext, TData>[];
|
|
69
102
|
/** Initial guidelines for this route */
|
|
70
|
-
guidelines?: Guideline[];
|
|
71
|
-
/**
|
|
72
|
-
|
|
103
|
+
guidelines?: Guideline<TContext>[];
|
|
104
|
+
/** Initial terms for the route's domain glossary */
|
|
105
|
+
terms?: Term<TContext>[];
|
|
106
|
+
/** Tools available in this route */
|
|
107
|
+
tools?: Tool<TContext, TData, unknown[], unknown>[];
|
|
73
108
|
/** Absolute rules the agent must follow in this route */
|
|
74
|
-
rules?:
|
|
109
|
+
rules?: Template<TContext, TData>[];
|
|
75
110
|
/** Absolute prohibitions the agent must never do in this route */
|
|
76
|
-
prohibitions?:
|
|
111
|
+
prohibitions?: Template<TContext, TData>[];
|
|
77
112
|
/** Optional: extractions the router may return (added to routing schema) */
|
|
78
113
|
routingExtrasSchema?: StructuredSchema;
|
|
79
114
|
/** Optional: structured response data for this route's message generation */
|
|
80
115
|
responseOutputSchema?: StructuredSchema;
|
|
81
116
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
117
|
+
* Required fields for route completion - must be valid keys from agent's TData type
|
|
118
|
+
* Route is considered complete when all required fields are present in agent data
|
|
119
|
+
*/
|
|
120
|
+
requiredFields?: (keyof TData)[];
|
|
121
|
+
/**
|
|
122
|
+
* Optional fields that enhance the route but aren't required for completion
|
|
123
|
+
* Must be valid keys from agent's TData type
|
|
84
124
|
*/
|
|
85
|
-
|
|
125
|
+
optionalFields?: (keyof TData)[];
|
|
86
126
|
/**
|
|
87
|
-
*
|
|
127
|
+
* Initial data to pre-populate when entering this route
|
|
88
128
|
* Useful for restoring sessions or pre-filling known information
|
|
89
129
|
* Steps with skipIf conditions will be automatically bypassed if data is present
|
|
130
|
+
* Now refers to agent-level data
|
|
90
131
|
*/
|
|
91
132
|
initialData?: Partial<TData>;
|
|
92
133
|
/**
|
|
@@ -94,26 +135,20 @@ export interface RouteOptions<TContext = unknown, TData = unknown> {
|
|
|
94
135
|
* If provided, automatically chains the steps from initialStep to END_ROUTE
|
|
95
136
|
* For complex flows with branching, build the step machine manually instead
|
|
96
137
|
*/
|
|
97
|
-
steps?:
|
|
138
|
+
steps?: StepOptions<TContext, TData>[];
|
|
98
139
|
/**
|
|
99
140
|
* Configure the initial step (optional)
|
|
100
|
-
* Accepts full
|
|
141
|
+
* Accepts full StepOptions configuration (id, prompt, collect, skipIf, etc.)
|
|
101
142
|
* Note: tool and step properties are ignored for initial step
|
|
102
143
|
*/
|
|
103
|
-
initialStep?: Omit<
|
|
104
|
-
TransitionSpec<TContext, TData>,
|
|
105
|
-
"tool" | "step" | "condition"
|
|
106
|
-
>;
|
|
144
|
+
initialStep?: Omit<StepOptions<TContext, TData>, "step">;
|
|
107
145
|
/**
|
|
108
146
|
* Configure the end step (optional)
|
|
109
147
|
* Defines what happens when the route completes (reaches END_ROUTE)
|
|
110
|
-
* Can include
|
|
148
|
+
* Can include prompt for completion message, tool for final actions, etc.
|
|
111
149
|
* Note: step, condition, skipIf properties are ignored for end step
|
|
112
150
|
*/
|
|
113
|
-
endStep?: Omit<
|
|
114
|
-
TransitionSpec<TContext, TData>,
|
|
115
|
-
"step" | "condition" | "skipIf"
|
|
116
|
-
>;
|
|
151
|
+
endStep?: Omit<StepOptions<TContext, TData>, "step" | "condition" | "skipIf">;
|
|
117
152
|
/**
|
|
118
153
|
* Optional transition when route completes (reaches END_ROUTE)
|
|
119
154
|
* Can be:
|
|
@@ -141,65 +176,95 @@ export interface RouteOptions<TContext = unknown, TData = unknown> {
|
|
|
141
176
|
*/
|
|
142
177
|
onComplete?:
|
|
143
178
|
| string
|
|
144
|
-
| RouteTransitionConfig
|
|
179
|
+
| RouteTransitionConfig<TContext, TData>
|
|
145
180
|
| RouteCompletionHandler<TContext, TData>;
|
|
181
|
+
/**
|
|
182
|
+
* Route lifecycle hooks
|
|
183
|
+
*/
|
|
184
|
+
hooks?: RouteLifecycleHooks<TContext, TData>;
|
|
185
|
+
/** Knowledge base specific to this route containing any JSON structure the AI should know */
|
|
186
|
+
knowledgeBase?: Record<string, unknown>;
|
|
146
187
|
}
|
|
147
188
|
|
|
148
|
-
/**
|
|
149
|
-
* Inline tool handler for dynamic tool generation
|
|
150
|
-
*/
|
|
151
|
-
export type InlineToolHandler<TContext = unknown, TData = unknown> = (
|
|
152
|
-
context: import("./tool").ToolContext<TContext, TData>
|
|
153
|
-
) =>
|
|
154
|
-
| ToolResult<unknown, TContext, TData>
|
|
155
|
-
| Promise<ToolResult<unknown, TContext, TData>>;
|
|
156
|
-
|
|
157
189
|
/**
|
|
158
190
|
* Specification for a step transition
|
|
159
191
|
*/
|
|
160
|
-
export interface
|
|
192
|
+
export interface StepOptions<TContext = unknown, TData = unknown> {
|
|
161
193
|
/** Custom ID for this step (optional - will generate deterministic ID if not provided) */
|
|
162
194
|
id?: string;
|
|
195
|
+
/** Description of the transition */
|
|
196
|
+
description?: string;
|
|
163
197
|
/** Transition to a chat state with this description */
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
|
|
167
|
-
|
|
198
|
+
prompt?: Template<TContext, TData>;
|
|
199
|
+
/** Tools available for AI to call in this step (by ID reference or inline definition) */
|
|
200
|
+
tools?: (string | Tool<TContext, TData, unknown[], unknown>)[];
|
|
201
|
+
/** Programmatic function or tool to run before AI responds */
|
|
202
|
+
prepare?:
|
|
203
|
+
| string
|
|
204
|
+
| Tool<TContext, TData, unknown[], unknown>
|
|
205
|
+
| ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
206
|
+
/** Programmatic function or tool to run after AI responds */
|
|
207
|
+
finalize?:
|
|
208
|
+
| string
|
|
209
|
+
| Tool<TContext, TData, unknown[], unknown>
|
|
210
|
+
| ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
168
211
|
/** Transition to a specific step or end marker */
|
|
169
212
|
step?: StepRef | symbol;
|
|
170
213
|
/**
|
|
171
|
-
*
|
|
172
|
-
* These should match keys in the
|
|
214
|
+
* Fields to collect from the conversation in this step
|
|
215
|
+
* These should match keys in the agent's TData schema
|
|
173
216
|
*/
|
|
174
|
-
collect?:
|
|
217
|
+
collect?: (keyof TData)[];
|
|
175
218
|
/**
|
|
176
|
-
*
|
|
219
|
+
* Function to determine if this step should be skipped
|
|
177
220
|
* If returns true, the step will be bypassed
|
|
178
|
-
* @param data - Currently collected data
|
|
221
|
+
* @param data - Currently collected agent-level data
|
|
179
222
|
* @returns true if step should be skipped, false otherwise
|
|
180
223
|
*/
|
|
181
224
|
skipIf?: (data: Partial<TData>) => boolean;
|
|
182
225
|
/**
|
|
183
|
-
*
|
|
226
|
+
* Required data fields that must be present before entering this step
|
|
184
227
|
* If any required field is missing, step cannot be entered
|
|
185
|
-
*
|
|
228
|
+
* Must be valid keys from agent's TData type
|
|
186
229
|
*/
|
|
187
|
-
requires?:
|
|
230
|
+
requires?: (keyof TData)[];
|
|
188
231
|
/**
|
|
189
232
|
* Optional condition for this transition
|
|
190
233
|
* Description of when this transition should be taken
|
|
191
234
|
*/
|
|
192
|
-
|
|
235
|
+
when?: Template<TContext, TData>;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Specification for a branch in the conversation flow
|
|
240
|
+
*/
|
|
241
|
+
export interface BranchSpec<TContext = unknown, TData = unknown> {
|
|
242
|
+
/** User-friendly identifier for this branch (used as object key) */
|
|
243
|
+
name: string;
|
|
244
|
+
/** Optional ID for this branch (auto-generated if not provided) */
|
|
245
|
+
id?: string;
|
|
246
|
+
/** Step configuration for this branch */
|
|
247
|
+
step: StepOptions<TContext, TData>;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Result of a branch operation
|
|
252
|
+
* Maps branch names to their respective step results for continued chaining
|
|
253
|
+
*/
|
|
254
|
+
export interface BranchResult<TContext = unknown, TData = unknown> {
|
|
255
|
+
[branchName: string]: StepResult<TContext, TData>;
|
|
193
256
|
}
|
|
194
257
|
|
|
195
258
|
/**
|
|
196
259
|
* Result of a transition operation
|
|
197
|
-
* Combines step reference with the ability to chain transitions
|
|
260
|
+
* Combines step reference with the ability to chain transitions and create branches
|
|
198
261
|
*/
|
|
199
|
-
export interface
|
|
262
|
+
export interface StepResult<TContext = unknown, TData = unknown>
|
|
200
263
|
extends StepRef {
|
|
201
264
|
/** Allow chaining transitions */
|
|
202
|
-
nextStep: (
|
|
203
|
-
|
|
204
|
-
|
|
265
|
+
nextStep: (spec: StepOptions<TContext, TData>) => StepResult<TContext, TData>;
|
|
266
|
+
/** Create multiple branches from this step */
|
|
267
|
+
branch: (
|
|
268
|
+
branches: BranchSpec<TContext, TData>[]
|
|
269
|
+
) => BranchResult<TContext, TData>;
|
|
205
270
|
}
|