@falai/agent 0.1.0-alpha2
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 +797 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/src/adapters/MemoryAdapter.d.ts +47 -0
- package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/MemoryAdapter.js +202 -0
- package/dist/cjs/src/adapters/MemoryAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/MongoAdapter.d.ts +97 -0
- package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/MongoAdapter.js +168 -0
- package/dist/cjs/src/adapters/MongoAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts +169 -0
- package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/OpenSearchAdapter.js +458 -0
- package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts +71 -0
- package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/PostgreSQLAdapter.js +260 -0
- package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/PrismaAdapter.d.ts +115 -0
- package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/PrismaAdapter.js +366 -0
- package/dist/cjs/src/adapters/PrismaAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/RedisAdapter.d.ts +71 -0
- package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/RedisAdapter.js +231 -0
- package/dist/cjs/src/adapters/RedisAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/SQLiteAdapter.d.ts +69 -0
- package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/cjs/src/adapters/SQLiteAdapter.js +312 -0
- package/dist/cjs/src/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/index.d.ts +17 -0
- package/dist/cjs/src/adapters/index.d.ts.map +1 -0
- package/dist/cjs/src/adapters/index.js +21 -0
- package/dist/cjs/src/adapters/index.js.map +1 -0
- package/dist/cjs/src/constants/index.d.ts +10 -0
- package/dist/cjs/src/constants/index.d.ts.map +1 -0
- package/dist/cjs/src/constants/index.js +13 -0
- package/dist/cjs/src/constants/index.js.map +1 -0
- package/dist/cjs/src/core/Agent.d.ts +232 -0
- package/dist/cjs/src/core/Agent.d.ts.map +1 -0
- package/dist/cjs/src/core/Agent.js +741 -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/cjs/src/core/PersistenceManager.d.ts +98 -0
- package/dist/cjs/src/core/PersistenceManager.d.ts.map +1 -0
- package/dist/cjs/src/core/PersistenceManager.js +261 -0
- 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 +194 -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 +202 -0
- package/dist/cjs/src/core/ResponseEngine.js.map +1 -0
- package/dist/cjs/src/core/ResponseModal.d.ts +222 -0
- package/dist/cjs/src/core/ResponseModal.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponseModal.js +1588 -0
- package/dist/cjs/src/core/ResponseModal.js.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts +175 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.js +549 -0
- package/dist/cjs/src/core/ResponsePipeline.js.map +1 -0
- package/dist/cjs/src/core/Route.d.ts +181 -0
- package/dist/cjs/src/core/Route.d.ts.map +1 -0
- package/dist/cjs/src/core/Route.js +541 -0
- package/dist/cjs/src/core/Route.js.map +1 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts +159 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -0
- package/dist/cjs/src/core/RoutingEngine.js +961 -0
- package/dist/cjs/src/core/RoutingEngine.js.map +1 -0
- package/dist/cjs/src/core/SessionManager.d.ts +94 -0
- package/dist/cjs/src/core/SessionManager.d.ts.map +1 -0
- package/dist/cjs/src/core/SessionManager.js +239 -0
- package/dist/cjs/src/core/SessionManager.js.map +1 -0
- package/dist/cjs/src/core/Step.d.ts +170 -0
- package/dist/cjs/src/core/Step.d.ts.map +1 -0
- package/dist/cjs/src/core/Step.js +448 -0
- package/dist/cjs/src/core/Step.js.map +1 -0
- package/dist/cjs/src/core/ToolManager.d.ts +234 -0
- package/dist/cjs/src/core/ToolManager.d.ts.map +1 -0
- package/dist/cjs/src/core/ToolManager.js +1117 -0
- package/dist/cjs/src/core/ToolManager.js.map +1 -0
- package/dist/cjs/src/index.d.ts +44 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js +88 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/providers/AnthropicProvider.d.ts +43 -0
- package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/cjs/src/providers/AnthropicProvider.js +377 -0
- package/dist/cjs/src/providers/AnthropicProvider.js.map +1 -0
- package/dist/cjs/src/providers/GeminiProvider.d.ts +58 -0
- package/dist/cjs/src/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/cjs/src/providers/GeminiProvider.js +489 -0
- package/dist/cjs/src/providers/GeminiProvider.js.map +1 -0
- package/dist/cjs/src/providers/OpenAIProvider.d.ts +52 -0
- package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/cjs/src/providers/OpenAIProvider.js +395 -0
- package/dist/cjs/src/providers/OpenAIProvider.js.map +1 -0
- package/dist/cjs/src/providers/OpenRouterProvider.d.ts +56 -0
- package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/cjs/src/providers/OpenRouterProvider.js +409 -0
- package/dist/cjs/src/providers/OpenRouterProvider.js.map +1 -0
- package/dist/cjs/src/providers/index.d.ts +13 -0
- package/dist/cjs/src/providers/index.d.ts.map +1 -0
- package/dist/cjs/src/providers/index.js +16 -0
- package/dist/cjs/src/providers/index.js.map +1 -0
- package/dist/cjs/src/types/agent.d.ts +181 -0
- package/dist/cjs/src/types/agent.d.ts.map +1 -0
- package/dist/cjs/src/types/agent.js +21 -0
- package/dist/cjs/src/types/agent.js.map +1 -0
- package/dist/cjs/src/types/ai.d.ts +143 -0
- package/dist/cjs/src/types/ai.d.ts.map +1 -0
- package/dist/cjs/src/types/ai.js +6 -0
- package/dist/cjs/src/types/ai.js.map +1 -0
- package/dist/cjs/src/types/history.d.ts +178 -0
- 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 +22 -0
- package/dist/cjs/src/types/index.d.ts.map +1 -0
- package/dist/cjs/src/types/index.js +37 -0
- package/dist/cjs/src/types/index.js.map +1 -0
- package/dist/cjs/src/types/persistence.d.ts +209 -0
- package/dist/cjs/src/types/persistence.d.ts.map +1 -0
- package/dist/cjs/src/types/persistence.js +7 -0
- package/dist/cjs/src/types/persistence.js.map +1 -0
- package/dist/cjs/src/types/route.d.ts +238 -0
- package/dist/cjs/src/types/route.d.ts.map +1 -0
- package/dist/cjs/src/types/route.js +6 -0
- package/dist/cjs/src/types/route.js.map +1 -0
- package/dist/cjs/src/types/routing.d.ts +16 -0
- package/dist/cjs/src/types/routing.d.ts.map +1 -0
- package/dist/cjs/src/types/routing.js +3 -0
- package/dist/cjs/src/types/routing.js.map +1 -0
- package/dist/cjs/src/types/schema.d.ts +22 -0
- package/dist/cjs/src/types/schema.d.ts.map +1 -0
- package/dist/cjs/src/types/schema.js +3 -0
- package/dist/cjs/src/types/schema.js.map +1 -0
- 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 +88 -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/cjs/src/types/tool.d.ts +130 -0
- package/dist/cjs/src/types/tool.d.ts.map +1 -0
- package/dist/cjs/src/types/tool.js +19 -0
- package/dist/cjs/src/types/tool.js.map +1 -0
- 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 +32 -0
- package/dist/cjs/src/utils/clone.js.map +1 -0
- package/dist/cjs/src/utils/condition.d.ts +38 -0
- package/dist/cjs/src/utils/condition.d.ts.map +1 -0
- package/dist/cjs/src/utils/condition.js +168 -0
- package/dist/cjs/src/utils/condition.js.map +1 -0
- package/dist/cjs/src/utils/event.d.ts +6 -0
- package/dist/cjs/src/utils/event.d.ts.map +1 -0
- package/dist/cjs/src/utils/event.js +20 -0
- package/dist/cjs/src/utils/event.js.map +1 -0
- package/dist/cjs/src/utils/history.d.ts +60 -0
- package/dist/cjs/src/utils/history.d.ts.map +1 -0
- package/dist/cjs/src/utils/history.js +274 -0
- package/dist/cjs/src/utils/history.js.map +1 -0
- package/dist/cjs/src/utils/id.d.ts +25 -0
- package/dist/cjs/src/utils/id.d.ts.map +1 -0
- package/dist/cjs/src/utils/id.js +70 -0
- package/dist/cjs/src/utils/id.js.map +1 -0
- package/dist/cjs/src/utils/index.d.ts +15 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -0
- package/dist/cjs/src/utils/index.js +64 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/cjs/src/utils/json.d.ts +16 -0
- package/dist/cjs/src/utils/json.d.ts.map +1 -0
- package/dist/cjs/src/utils/json.js +47 -0
- package/dist/cjs/src/utils/json.js.map +1 -0
- package/dist/cjs/src/utils/logger.d.ts +10 -0
- package/dist/cjs/src/utils/logger.d.ts.map +1 -0
- package/dist/cjs/src/utils/logger.js +23 -0
- package/dist/cjs/src/utils/logger.js.map +1 -0
- package/dist/cjs/src/utils/retry.d.ts +10 -0
- package/dist/cjs/src/utils/retry.d.ts.map +1 -0
- package/dist/cjs/src/utils/retry.js +76 -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/src/utils/session.js +170 -0
- package/dist/cjs/src/utils/session.js.map +1 -0
- package/dist/cjs/src/utils/template.d.ts +155 -0
- package/dist/cjs/src/utils/template.d.ts.map +1 -0
- package/dist/cjs/src/utils/template.js +383 -0
- package/dist/cjs/src/utils/template.js.map +1 -0
- package/dist/src/adapters/MemoryAdapter.d.ts +47 -0
- package/dist/src/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/src/adapters/MemoryAdapter.js +198 -0
- package/dist/src/adapters/MemoryAdapter.js.map +1 -0
- package/dist/src/adapters/MongoAdapter.d.ts +97 -0
- package/dist/src/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/src/adapters/MongoAdapter.js +164 -0
- package/dist/src/adapters/MongoAdapter.js.map +1 -0
- package/dist/src/adapters/OpenSearchAdapter.d.ts +169 -0
- package/dist/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/src/adapters/OpenSearchAdapter.js +454 -0
- package/dist/src/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/src/adapters/PostgreSQLAdapter.d.ts +71 -0
- package/dist/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/src/adapters/PostgreSQLAdapter.js +256 -0
- package/dist/src/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/src/adapters/PrismaAdapter.d.ts +115 -0
- package/dist/src/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/src/adapters/PrismaAdapter.js +362 -0
- package/dist/src/adapters/PrismaAdapter.js.map +1 -0
- package/dist/src/adapters/RedisAdapter.d.ts +71 -0
- package/dist/src/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/src/adapters/RedisAdapter.js +227 -0
- package/dist/src/adapters/RedisAdapter.js.map +1 -0
- package/dist/src/adapters/SQLiteAdapter.d.ts +69 -0
- package/dist/src/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/src/adapters/SQLiteAdapter.js +308 -0
- package/dist/src/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/src/adapters/index.d.ts +17 -0
- package/dist/src/adapters/index.d.ts.map +1 -0
- package/dist/src/adapters/index.js +11 -0
- package/dist/src/adapters/index.js.map +1 -0
- package/dist/src/constants/index.d.ts +10 -0
- package/dist/src/constants/index.d.ts.map +1 -0
- package/dist/src/constants/index.js +10 -0
- package/dist/src/constants/index.js.map +1 -0
- package/dist/src/core/Agent.d.ts +232 -0
- package/dist/src/core/Agent.d.ts.map +1 -0
- package/dist/src/core/Agent.js +737 -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/src/core/PersistenceManager.d.ts +98 -0
- package/dist/src/core/PersistenceManager.d.ts.map +1 -0
- package/dist/src/core/PersistenceManager.js +257 -0
- 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 +190 -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 +198 -0
- package/dist/src/core/ResponseEngine.js.map +1 -0
- package/dist/src/core/ResponseModal.d.ts +222 -0
- package/dist/src/core/ResponseModal.d.ts.map +1 -0
- package/dist/src/core/ResponseModal.js +1583 -0
- package/dist/src/core/ResponseModal.js.map +1 -0
- package/dist/src/core/ResponsePipeline.d.ts +175 -0
- package/dist/src/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/src/core/ResponsePipeline.js +545 -0
- package/dist/src/core/ResponsePipeline.js.map +1 -0
- package/dist/src/core/Route.d.ts +181 -0
- package/dist/src/core/Route.d.ts.map +1 -0
- package/dist/src/core/Route.js +537 -0
- package/dist/src/core/Route.js.map +1 -0
- package/dist/src/core/RoutingEngine.d.ts +159 -0
- package/dist/src/core/RoutingEngine.d.ts.map +1 -0
- package/dist/src/core/RoutingEngine.js +957 -0
- package/dist/src/core/RoutingEngine.js.map +1 -0
- package/dist/src/core/SessionManager.d.ts +94 -0
- package/dist/src/core/SessionManager.d.ts.map +1 -0
- package/dist/src/core/SessionManager.js +235 -0
- package/dist/src/core/SessionManager.js.map +1 -0
- package/dist/src/core/Step.d.ts +170 -0
- package/dist/src/core/Step.d.ts.map +1 -0
- package/dist/src/core/Step.js +444 -0
- package/dist/src/core/Step.js.map +1 -0
- package/dist/src/core/ToolManager.d.ts +234 -0
- package/dist/src/core/ToolManager.d.ts.map +1 -0
- package/dist/src/core/ToolManager.js +1111 -0
- package/dist/src/core/ToolManager.js.map +1 -0
- package/dist/src/index.d.ts +44 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +37 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/providers/AnthropicProvider.d.ts +43 -0
- package/dist/src/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/src/providers/AnthropicProvider.js +370 -0
- package/dist/src/providers/AnthropicProvider.js.map +1 -0
- package/dist/src/providers/GeminiProvider.d.ts +58 -0
- package/dist/src/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/src/providers/GeminiProvider.js +485 -0
- package/dist/src/providers/GeminiProvider.js.map +1 -0
- package/dist/src/providers/OpenAIProvider.d.ts +52 -0
- package/dist/src/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/src/providers/OpenAIProvider.js +388 -0
- package/dist/src/providers/OpenAIProvider.js.map +1 -0
- package/dist/src/providers/OpenRouterProvider.d.ts +56 -0
- package/dist/src/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/src/providers/OpenRouterProvider.js +402 -0
- package/dist/src/providers/OpenRouterProvider.js.map +1 -0
- package/dist/src/providers/index.d.ts +13 -0
- package/dist/src/providers/index.d.ts.map +1 -0
- package/dist/src/providers/index.js +9 -0
- package/dist/src/providers/index.js.map +1 -0
- package/dist/src/types/agent.d.ts +181 -0
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js +18 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/src/types/ai.d.ts +143 -0
- package/dist/src/types/ai.d.ts.map +1 -0
- package/dist/src/types/ai.js +5 -0
- package/dist/src/types/ai.js.map +1 -0
- package/dist/src/types/history.d.ts +178 -0
- 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 +22 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +12 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/persistence.d.ts +209 -0
- package/dist/src/types/persistence.d.ts.map +1 -0
- package/dist/src/types/persistence.js +6 -0
- package/dist/src/types/persistence.js.map +1 -0
- package/dist/src/types/route.d.ts +238 -0
- package/dist/src/types/route.d.ts.map +1 -0
- package/dist/src/types/route.js +5 -0
- package/dist/src/types/route.js.map +1 -0
- package/dist/src/types/routing.d.ts +16 -0
- package/dist/src/types/routing.d.ts.map +1 -0
- package/dist/src/types/routing.js +2 -0
- package/dist/src/types/routing.js.map +1 -0
- package/dist/src/types/schema.d.ts +22 -0
- package/dist/src/types/schema.d.ts.map +1 -0
- package/dist/src/types/schema.js +2 -0
- package/dist/src/types/schema.js.map +1 -0
- 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 +88 -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/src/types/tool.d.ts +130 -0
- package/dist/src/types/tool.d.ts.map +1 -0
- package/dist/src/types/tool.js +16 -0
- package/dist/src/types/tool.js.map +1 -0
- 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 +29 -0
- package/dist/src/utils/clone.js.map +1 -0
- package/dist/src/utils/condition.d.ts +38 -0
- package/dist/src/utils/condition.d.ts.map +1 -0
- package/dist/src/utils/condition.js +161 -0
- package/dist/src/utils/condition.js.map +1 -0
- package/dist/src/utils/event.d.ts +6 -0
- package/dist/src/utils/event.d.ts.map +1 -0
- package/dist/src/utils/event.js +17 -0
- package/dist/src/utils/event.js.map +1 -0
- package/dist/src/utils/history.d.ts +60 -0
- package/dist/src/utils/history.d.ts.map +1 -0
- package/dist/src/utils/history.js +263 -0
- package/dist/src/utils/history.js.map +1 -0
- package/dist/src/utils/id.d.ts +25 -0
- package/dist/src/utils/id.d.ts.map +1 -0
- package/dist/src/utils/id.js +64 -0
- package/dist/src/utils/id.js.map +1 -0
- package/dist/src/utils/index.d.ts +15 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +23 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/json.d.ts +16 -0
- package/dist/src/utils/json.d.ts.map +1 -0
- package/dist/src/utils/json.js +43 -0
- package/dist/src/utils/json.js.map +1 -0
- package/dist/src/utils/logger.d.ts +10 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +17 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/retry.d.ts +10 -0
- package/dist/src/utils/retry.d.ts.map +1 -0
- package/dist/src/utils/retry.js +71 -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/src/utils/session.js +160 -0
- package/dist/src/utils/session.js.map +1 -0
- package/dist/src/utils/template.d.ts +155 -0
- package/dist/src/utils/template.d.ts.map +1 -0
- package/dist/src/utils/template.js +374 -0
- package/dist/src/utils/template.js.map +1 -0
- package/docs/CONTRIBUTING.md +521 -0
- package/docs/README.md +228 -0
- package/docs/api/README.md +3258 -0
- package/docs/api/overview.md +1134 -0
- package/docs/architecture/data-extraction-flow.md +363 -0
- package/docs/core/agent/README.md +902 -0
- package/docs/core/agent/context-management.md +796 -0
- package/docs/core/agent/session-management.md +641 -0
- 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 +287 -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 +247 -0
- package/docs/core/conversation-flows/step-transitions.md +595 -0
- package/docs/core/conversation-flows/steps.md +154 -0
- package/docs/core/error-handling.md +638 -0
- package/docs/core/persistence/adapters.md +255 -0
- package/docs/core/persistence/session-storage.md +644 -0
- package/docs/core/routing/intelligent-routing.md +466 -0
- package/docs/core/tools/tool-definition.md +970 -0
- package/docs/core/tools/tool-scoping.md +819 -0
- package/docs/guides/advanced-patterns/publishing.md +186 -0
- package/docs/guides/error-handling-patterns.md +578 -0
- package/docs/guides/getting-started/README.md +696 -0
- package/docs/guides/migration/README.md +72 -0
- package/docs/guides/migration/flexible-routing-conditions.md +375 -0
- package/docs/guides/migration/response-modal-refactor.md +518 -0
- package/examples/advanced-patterns/knowledge-based-agent.ts +735 -0
- package/examples/advanced-patterns/persistent-onboarding.ts +728 -0
- package/examples/advanced-patterns/route-lifecycle-hooks.ts +556 -0
- package/examples/advanced-patterns/streaming-responses.ts +578 -0
- package/examples/ai-providers/anthropic-integration.ts +388 -0
- package/examples/ai-providers/openai-integration.ts +228 -0
- 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 +318 -0
- package/examples/core-concepts/basic-agent.ts +503 -0
- package/examples/core-concepts/modern-streaming-api.ts +309 -0
- package/examples/core-concepts/schema-driven-extraction.ts +332 -0
- package/examples/core-concepts/session-management.ts +494 -0
- package/examples/integrations/database-integration.ts +630 -0
- package/examples/integrations/healthcare-integration.ts +595 -0
- package/examples/integrations/search-integration.ts +530 -0
- package/examples/integrations/server-session-management.ts +307 -0
- package/examples/persistence/custom-adapter.ts +529 -0
- package/examples/persistence/database-persistence.ts +583 -0
- package/examples/persistence/memory-sessions.ts +495 -0
- package/examples/persistence/prisma-schema.example.prisma +74 -0
- package/examples/persistence/redis-persistence.ts +488 -0
- package/examples/tools/basic-tools.ts +765 -0
- package/examples/tools/data-enrichment-tools.ts +593 -0
- package/package.json +125 -0
- package/src/adapters/MemoryAdapter.ts +273 -0
- package/src/adapters/MongoAdapter.ts +304 -0
- package/src/adapters/OpenSearchAdapter.ts +670 -0
- package/src/adapters/PostgreSQLAdapter.ts +428 -0
- package/src/adapters/PrismaAdapter.ts +553 -0
- package/src/adapters/RedisAdapter.ts +377 -0
- package/src/adapters/SQLiteAdapter.ts +459 -0
- package/src/adapters/index.ts +43 -0
- package/src/constants/index.ts +10 -0
- package/src/core/Agent.ts +970 -0
- package/src/core/Events.ts +164 -0
- package/src/core/PersistenceManager.ts +353 -0
- package/src/core/PromptComposer.ts +253 -0
- package/src/core/ResponseEngine.ts +306 -0
- package/src/core/ResponseModal.ts +2050 -0
- package/src/core/ResponsePipeline.ts +864 -0
- package/src/core/Route.ts +677 -0
- package/src/core/RoutingEngine.ts +1396 -0
- package/src/core/SessionManager.ts +297 -0
- package/src/core/Step.ts +593 -0
- package/src/core/ToolManager.ts +1394 -0
- package/src/index.ts +155 -0
- package/src/providers/AnthropicProvider.ts +560 -0
- package/src/providers/GeminiProvider.ts +683 -0
- package/src/providers/OpenAIProvider.ts +602 -0
- package/src/providers/OpenRouterProvider.ts +613 -0
- package/src/providers/index.ts +16 -0
- package/src/types/agent.ts +196 -0
- package/src/types/ai.ts +158 -0
- package/src/types/history.ts +206 -0
- package/src/types/index.ts +119 -0
- package/src/types/persistence.ts +251 -0
- package/src/types/route.ts +272 -0
- package/src/types/routing.ts +18 -0
- package/src/types/schema.ts +23 -0
- package/src/types/session.ts +74 -0
- package/src/types/template.ts +104 -0
- package/src/types/tool.ts +174 -0
- package/src/utils/clone.ts +34 -0
- package/src/utils/condition.ts +190 -0
- package/src/utils/event.ts +16 -0
- package/src/utils/history.ts +306 -0
- package/src/utils/id.ts +73 -0
- package/src/utils/index.ts +69 -0
- package/src/utils/json.ts +46 -0
- package/src/utils/logger.ts +19 -0
- package/src/utils/retry.ts +97 -0
- package/src/utils/session.ts +204 -0
- package/src/utils/template.ts +444 -0
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route/Journey DSL type definitions
|
|
3
|
+
*/
|
|
4
|
+
import type { Tool } from "./tool";
|
|
5
|
+
import type { StructuredSchema } from "./schema";
|
|
6
|
+
import type { Guideline, Term } from "./agent";
|
|
7
|
+
import { Template, ConditionTemplate } from "./template";
|
|
8
|
+
/**
|
|
9
|
+
* Reference to a route
|
|
10
|
+
*/
|
|
11
|
+
export interface RouteRef {
|
|
12
|
+
/** Route identifier */
|
|
13
|
+
id: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Reference to a step within a route
|
|
17
|
+
*/
|
|
18
|
+
export interface StepRef {
|
|
19
|
+
/** Step identifier */
|
|
20
|
+
id: string;
|
|
21
|
+
/** Route this step belongs to */
|
|
22
|
+
routeId: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Route lifecycle hooks for managing route-specific data and behavior
|
|
26
|
+
*/
|
|
27
|
+
export interface RouteLifecycleHooks<TContext = unknown, TData = unknown> {
|
|
28
|
+
/**
|
|
29
|
+
* Called after collected data is updated for this route (from AI response or tool execution)
|
|
30
|
+
* Useful for validation, enrichment, or persistence of route-specific collected data
|
|
31
|
+
* Return modified collected data or the same data to keep it unchanged
|
|
32
|
+
*
|
|
33
|
+
* Unlike Agent-level onDataUpdate, this only triggers for data changes in this specific route.
|
|
34
|
+
*/
|
|
35
|
+
onDataUpdate?: (data: Partial<TData>, previousCollected: Partial<TData>) => Partial<TData> | Promise<Partial<TData>>;
|
|
36
|
+
/**
|
|
37
|
+
* Called after context is updated via updateContext() when this route is active
|
|
38
|
+
* Useful for route-specific context reactions, validation, or side effects
|
|
39
|
+
*
|
|
40
|
+
* Unlike Agent-level onContextUpdate, this only triggers when this specific route is active.
|
|
41
|
+
*/
|
|
42
|
+
onContextUpdate?: (newContext: TContext, previousContext: TContext) => void | Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Route transition configuration when route completes
|
|
46
|
+
*/
|
|
47
|
+
export interface RouteTransitionConfig<TContext = unknown, TData = unknown> {
|
|
48
|
+
/** Target route ID or title to transition to */
|
|
49
|
+
nextStep: string;
|
|
50
|
+
/** Optional AI-evaluated condition for the transition */
|
|
51
|
+
condition?: Template<TContext, TData>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Function type for dynamic route completion transitions
|
|
55
|
+
* @param session - Current session step with collected data
|
|
56
|
+
* @param context - Agent context
|
|
57
|
+
* @returns Route ID/title to transition to, or transition config, or undefined to end
|
|
58
|
+
*/
|
|
59
|
+
export type RouteCompletionHandler<TContext = unknown, TData = unknown> = (session: {
|
|
60
|
+
data?: Partial<TData>;
|
|
61
|
+
}, context?: TContext) => string | RouteTransitionConfig<TContext, TData> | undefined | Promise<string | RouteTransitionConfig<TContext, TData> | undefined>;
|
|
62
|
+
/**
|
|
63
|
+
* Options for creating a route
|
|
64
|
+
* @template TData - Type of data collected throughout the route (inferred from schema)
|
|
65
|
+
*/
|
|
66
|
+
export interface RouteOptions<TContext = unknown, TData = unknown> {
|
|
67
|
+
/** Custom ID for the route (optional - will generate deterministic ID from title if not provided) */
|
|
68
|
+
id?: string;
|
|
69
|
+
/** Title of the route */
|
|
70
|
+
title: string;
|
|
71
|
+
/** Description of what this route accomplishes */
|
|
72
|
+
description?: string;
|
|
73
|
+
/** Optional identity prompt defining the agent's role and persona for this route */
|
|
74
|
+
identity?: Template<TContext, TData>;
|
|
75
|
+
/** Optional personality prompt defining the agent's communication style for this route */
|
|
76
|
+
personality?: Template<TContext, TData>;
|
|
77
|
+
/** Conditions that activate this route */
|
|
78
|
+
when?: ConditionTemplate<TContext, TData>;
|
|
79
|
+
/** Conditions that prevent this route from being considered */
|
|
80
|
+
skipIf?: ConditionTemplate<TContext, TData>;
|
|
81
|
+
/** Initial guidelines for this route */
|
|
82
|
+
guidelines?: Guideline<TContext, TData>[];
|
|
83
|
+
/** Initial terms for the route's domain glossary */
|
|
84
|
+
terms?: Term<TContext>[];
|
|
85
|
+
/** Tools available in this route */
|
|
86
|
+
tools?: (string | Tool<TContext, TData>)[];
|
|
87
|
+
/** Absolute rules the agent must follow in this route */
|
|
88
|
+
rules?: Template<TContext, TData>[];
|
|
89
|
+
/** Absolute prohibitions the agent must never do in this route */
|
|
90
|
+
prohibitions?: Template<TContext, TData>[];
|
|
91
|
+
/** Optional: extractions the router may return (added to routing schema) */
|
|
92
|
+
routingExtrasSchema?: StructuredSchema;
|
|
93
|
+
/** Optional: structured response data for this route's message generation */
|
|
94
|
+
responseOutputSchema?: StructuredSchema;
|
|
95
|
+
/**
|
|
96
|
+
* Required fields for route completion - must be valid keys from agent's TData type
|
|
97
|
+
* Route is considered complete when all required fields are present in agent data
|
|
98
|
+
*/
|
|
99
|
+
requiredFields?: (keyof TData)[];
|
|
100
|
+
/**
|
|
101
|
+
* Optional fields that enhance the route but aren't required for completion
|
|
102
|
+
* Must be valid keys from agent's TData type
|
|
103
|
+
*/
|
|
104
|
+
optionalFields?: (keyof TData)[];
|
|
105
|
+
/**
|
|
106
|
+
* Initial data to pre-populate when entering this route
|
|
107
|
+
* Useful for restoring sessions or pre-filling known information
|
|
108
|
+
* Steps with skipIf conditions will be automatically bypassed if data is present
|
|
109
|
+
* Now refers to agent-level data
|
|
110
|
+
*/
|
|
111
|
+
initialData?: Partial<TData>;
|
|
112
|
+
/**
|
|
113
|
+
* NEW: Sequential steps for simple linear flows
|
|
114
|
+
* If provided, automatically chains the steps from initialStep to END_ROUTE
|
|
115
|
+
* For complex flows with branching, build the step machine manually instead
|
|
116
|
+
*/
|
|
117
|
+
steps?: StepOptions<TContext, TData>[];
|
|
118
|
+
/**
|
|
119
|
+
* Configure the initial step (optional)
|
|
120
|
+
* Accepts full StepOptions configuration (id, prompt, collect, skipIf, etc.)
|
|
121
|
+
* Note: tool and step properties are ignored for initial step
|
|
122
|
+
*/
|
|
123
|
+
initialStep?: Omit<StepOptions<TContext, TData>, "step">;
|
|
124
|
+
/**
|
|
125
|
+
* Configure the end step (optional)
|
|
126
|
+
* Defines what happens when the route completes (reaches END_ROUTE)
|
|
127
|
+
* Can include prompt for completion message, tool for final actions, etc.
|
|
128
|
+
* Note: step, condition, skipIf properties are ignored for end step
|
|
129
|
+
*/
|
|
130
|
+
endStep?: Omit<StepOptions<TContext, TData>, "step" | "condition" | "skipIf">;
|
|
131
|
+
/**
|
|
132
|
+
* Optional transition when route completes (reaches END_ROUTE)
|
|
133
|
+
* Can be:
|
|
134
|
+
* - String: Route ID or title to transition to
|
|
135
|
+
* - Object: Transition config with optional AI-evaluated condition
|
|
136
|
+
* - Function: Dynamic logic that returns route ID, config, or undefined
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* // Simple string
|
|
140
|
+
* onComplete: "feedback-collection"
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* // With condition
|
|
144
|
+
* onComplete: {
|
|
145
|
+
* nextStep: "feedback-collection",
|
|
146
|
+
* condition: "if booking succeeded"
|
|
147
|
+
* }
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* // Dynamic function
|
|
151
|
+
* onComplete: (session) => {
|
|
152
|
+
* if (session.data?.success) return "feedback";
|
|
153
|
+
* return "error-recovery";
|
|
154
|
+
* }
|
|
155
|
+
*/
|
|
156
|
+
onComplete?: string | RouteTransitionConfig<TContext, TData> | RouteCompletionHandler<TContext, TData>;
|
|
157
|
+
/**
|
|
158
|
+
* Route lifecycle hooks
|
|
159
|
+
*/
|
|
160
|
+
hooks?: RouteLifecycleHooks<TContext, TData>;
|
|
161
|
+
/** Knowledge base specific to this route containing any JSON structure the AI should know */
|
|
162
|
+
knowledgeBase?: Record<string, unknown>;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Specification for a step transition
|
|
166
|
+
*/
|
|
167
|
+
export interface StepOptions<TContext = unknown, TData = unknown> {
|
|
168
|
+
/** Custom ID for this step (optional - will generate deterministic ID if not provided) */
|
|
169
|
+
id?: string;
|
|
170
|
+
/** Description of the transition */
|
|
171
|
+
description?: string;
|
|
172
|
+
/** Transition to a chat state with this description */
|
|
173
|
+
prompt?: Template<TContext, TData>;
|
|
174
|
+
/** Tools available for AI to call in this step (by ID reference or inline definition) */
|
|
175
|
+
tools?: (string | Tool<TContext, TData>)[];
|
|
176
|
+
/** Programmatic function or tool to run before AI responds */
|
|
177
|
+
prepare?: string | Tool<TContext, TData> | ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
178
|
+
/** Programmatic function or tool to run after AI responds */
|
|
179
|
+
finalize?: string | Tool<TContext, TData> | ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
180
|
+
/** Transition to a specific step or end marker */
|
|
181
|
+
step?: StepRef | symbol;
|
|
182
|
+
/**
|
|
183
|
+
* Fields to collect from the conversation in this step
|
|
184
|
+
* These should match keys in the agent's TData schema
|
|
185
|
+
*/
|
|
186
|
+
collect?: (keyof TData)[];
|
|
187
|
+
/**
|
|
188
|
+
* Condition to determine if this step should be skipped
|
|
189
|
+
* If evaluates to true, the step will be bypassed
|
|
190
|
+
* Supports strings (AI context), functions (programmatic), and arrays
|
|
191
|
+
*/
|
|
192
|
+
skipIf?: ConditionTemplate<TContext, TData>;
|
|
193
|
+
/**
|
|
194
|
+
* Required data fields that must be present before entering this step
|
|
195
|
+
* If any required field is missing, step cannot be entered
|
|
196
|
+
* Must be valid keys from agent's TData type
|
|
197
|
+
*/
|
|
198
|
+
requires?: (keyof TData)[];
|
|
199
|
+
/**
|
|
200
|
+
* Optional condition for this transition
|
|
201
|
+
* Description of when this transition should be taken
|
|
202
|
+
* Supports strings (AI context), functions (programmatic), and arrays
|
|
203
|
+
*/
|
|
204
|
+
when?: ConditionTemplate<TContext, TData>;
|
|
205
|
+
/** Initial guidelines for this step */
|
|
206
|
+
guidelines?: Guideline<TContext, TData>[];
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Specification for a branch in the conversation flow
|
|
210
|
+
*/
|
|
211
|
+
export interface BranchSpec<TContext = unknown, TData = unknown> {
|
|
212
|
+
/** User-friendly identifier for this branch (used as object key) */
|
|
213
|
+
name: string;
|
|
214
|
+
/** Optional ID for this branch (auto-generated if not provided) */
|
|
215
|
+
id?: string;
|
|
216
|
+
/** Step configuration for this branch */
|
|
217
|
+
step: StepOptions<TContext, TData>;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Result of a branch operation
|
|
221
|
+
* Maps branch names to their respective step results for continued chaining
|
|
222
|
+
*/
|
|
223
|
+
export interface BranchResult<TContext = unknown, TData = unknown> {
|
|
224
|
+
[branchName: string]: StepResult<TContext, TData>;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Result of a transition operation
|
|
228
|
+
* Combines step reference with the ability to chain transitions and create branches
|
|
229
|
+
*/
|
|
230
|
+
export interface StepResult<TContext = unknown, TData = unknown> extends StepRef {
|
|
231
|
+
/** Allow chaining transitions */
|
|
232
|
+
nextStep: (spec: StepOptions<TContext, TData>) => StepResult<TContext, TData>;
|
|
233
|
+
/** Create multiple branches from this step */
|
|
234
|
+
branch: (branches: BranchSpec<TContext, TData>[]) => BranchResult<TContext, TData>;
|
|
235
|
+
/** Shortcut to end the current route */
|
|
236
|
+
endRoute: (options?: Omit<StepOptions<TContext, TData>, "step">) => StepResult<TContext, TData>;
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/types/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/types/route.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { StructuredSchema } from "./schema";
|
|
2
|
+
export interface RoutingDecision {
|
|
3
|
+
context: string;
|
|
4
|
+
routes: Record<string, number>;
|
|
5
|
+
responseDirectives?: string[];
|
|
6
|
+
extractions?: unknown;
|
|
7
|
+
contextUpdate?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface RoutingDecisionWithRoute extends RoutingDecision {
|
|
10
|
+
selectedRouteId: string;
|
|
11
|
+
maxScore: number;
|
|
12
|
+
}
|
|
13
|
+
export interface RoutingSchemaOptions {
|
|
14
|
+
extrasSchema?: StructuredSchema;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=routing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/types/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/types/routing.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StructuredSchema - minimal JSON Schema subset used across providers
|
|
3
|
+
*/
|
|
4
|
+
export interface StructuredSchema {
|
|
5
|
+
type?: string | string[];
|
|
6
|
+
description?: string;
|
|
7
|
+
enum?: Array<string | number | boolean | null>;
|
|
8
|
+
nullable?: boolean;
|
|
9
|
+
properties?: Record<string, StructuredSchema>;
|
|
10
|
+
required?: string[];
|
|
11
|
+
items?: StructuredSchema;
|
|
12
|
+
additionalProperties?: boolean | StructuredSchema;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A small helper describing a named schema (for providers that require a name)
|
|
17
|
+
*/
|
|
18
|
+
export interface NamedSchema {
|
|
19
|
+
name?: string;
|
|
20
|
+
schema: StructuredSchema;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/types/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAElD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/types/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session step types for tracking conversation progress
|
|
3
|
+
*/
|
|
4
|
+
import type { History } from "./history";
|
|
5
|
+
/**
|
|
6
|
+
* Pending route transition information
|
|
7
|
+
*/
|
|
8
|
+
export interface PendingTransition {
|
|
9
|
+
/** Target route ID to transition to */
|
|
10
|
+
targetRouteId: string;
|
|
11
|
+
/** Optional AI-evaluated condition for the transition */
|
|
12
|
+
condition?: string;
|
|
13
|
+
/** Reason for the transition */
|
|
14
|
+
reason: "route_complete" | "manual";
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Session state tracks the current position in the conversation flow
|
|
18
|
+
* and data collected at the agent level across all routes
|
|
19
|
+
*/
|
|
20
|
+
export interface SessionState<TData = unknown> {
|
|
21
|
+
/** Unique session identifier (useful for persistence) */
|
|
22
|
+
id: string;
|
|
23
|
+
/** Current route the conversation is in */
|
|
24
|
+
currentRoute?: {
|
|
25
|
+
id: string;
|
|
26
|
+
title: string;
|
|
27
|
+
enteredAt?: Date;
|
|
28
|
+
};
|
|
29
|
+
/** Current step within the route */
|
|
30
|
+
currentStep?: {
|
|
31
|
+
id: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
enteredAt?: Date;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Agent-level data collected across all routes
|
|
37
|
+
* This is the single source of truth for all collected data
|
|
38
|
+
* Routes can access and contribute to this shared data structure
|
|
39
|
+
*/
|
|
40
|
+
data: Partial<TData>;
|
|
41
|
+
/** History of routes visited in this session */
|
|
42
|
+
routeHistory?: Array<{
|
|
43
|
+
routeId: string;
|
|
44
|
+
enteredAt?: Date;
|
|
45
|
+
exitedAt?: Date;
|
|
46
|
+
completed: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Pending route transition after completion
|
|
50
|
+
* Set when a route completes with onComplete handler
|
|
51
|
+
*/
|
|
52
|
+
pendingTransition?: PendingTransition;
|
|
53
|
+
/**
|
|
54
|
+
* Conversation history managed by the session
|
|
55
|
+
* Contains the full conversation between user and assistant
|
|
56
|
+
*/
|
|
57
|
+
history?: History;
|
|
58
|
+
/** Session metadata */
|
|
59
|
+
metadata?: {
|
|
60
|
+
createdAt?: Date;
|
|
61
|
+
lastUpdatedAt?: Date;
|
|
62
|
+
[key: string]: unknown;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/types/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,MAAM,EAAE,gBAAgB,GAAG,QAAQ,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,KAAK,GAAG,OAAO;IAC3C,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IAEX,2CAA2C;IAC3C,YAAY,CAAC,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,IAAI,CAAC;KAClB,CAAC;IAEF,oCAAoC;IACpC,WAAW,CAAC,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,IAAI,CAAC;KAClB,CAAC;IAEF;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAErB,gDAAgD;IAChD,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IAEH;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uBAAuB;IACvB,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,aAAa,CAAC,EAAE,IAAI,CAAC;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/types/session.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { SessionState } from "./session";
|
|
2
|
+
import type { Event, MessageRole } from "./history";
|
|
3
|
+
/**
|
|
4
|
+
* Context object passed to template functions for dynamic rendering.
|
|
5
|
+
*/
|
|
6
|
+
export interface TemplateContext<TContext = unknown, TData = unknown> {
|
|
7
|
+
/**
|
|
8
|
+
* The agent's static or dynamically-provided context.
|
|
9
|
+
*/
|
|
10
|
+
context?: TContext;
|
|
11
|
+
/**
|
|
12
|
+
* The current session state, including collected data.
|
|
13
|
+
*/
|
|
14
|
+
session?: SessionState<TData>;
|
|
15
|
+
/**
|
|
16
|
+
* The recent interaction history.
|
|
17
|
+
*/
|
|
18
|
+
history?: Event[];
|
|
19
|
+
/**
|
|
20
|
+
* The data collected in the current route.
|
|
21
|
+
* A convenience alias for `session.data`.
|
|
22
|
+
*/
|
|
23
|
+
data: Partial<TData>;
|
|
24
|
+
/**
|
|
25
|
+
* Helper methods for working with history and context.
|
|
26
|
+
*/
|
|
27
|
+
helpers: {
|
|
28
|
+
/**
|
|
29
|
+
* Get the last message from history, optionally filtered by role.
|
|
30
|
+
* @param role - Optional role to filter by (user, assistant, etc.)
|
|
31
|
+
* @returns The message content or undefined if not found
|
|
32
|
+
*/
|
|
33
|
+
getLastMessage(role?: MessageRole): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Get the last user message from history.
|
|
36
|
+
* @returns The user message content or undefined if not found
|
|
37
|
+
*/
|
|
38
|
+
getLastUserMessage(): string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Get the last assistant message from history.
|
|
41
|
+
* @returns The assistant message content or undefined if not found
|
|
42
|
+
*/
|
|
43
|
+
getLastAssistantMessage(): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Get all messages from history, optionally filtered by role.
|
|
46
|
+
* @param role - Optional role to filter by
|
|
47
|
+
* @returns Array of message contents
|
|
48
|
+
*/
|
|
49
|
+
getMessages(role?: MessageRole): string[];
|
|
50
|
+
/**
|
|
51
|
+
* Check if the last message contains any of the given keywords.
|
|
52
|
+
* @param keywords - Keywords to search for
|
|
53
|
+
* @param caseSensitive - Whether to perform case-sensitive search (default: false)
|
|
54
|
+
* @returns True if any keyword is found
|
|
55
|
+
*/
|
|
56
|
+
lastMessageContains(keywords: string | string[], caseSensitive?: boolean): boolean;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Represents a string that can be either a literal or a function
|
|
61
|
+
* that dynamically generates a string from context.
|
|
62
|
+
*/
|
|
63
|
+
export type Template<TContext = unknown, TData = unknown> = string | ((params: TemplateContext<TContext, TData>) => string | Promise<string>);
|
|
64
|
+
/**
|
|
65
|
+
* Represents a condition that can be used for routing decisions.
|
|
66
|
+
* Supports strings (AI context only), boolean functions (programmatic evaluation),
|
|
67
|
+
* and arrays of either for complex condition logic.
|
|
68
|
+
*/
|
|
69
|
+
export type ConditionTemplate<TContext = unknown, TData = unknown> = string | ((params: TemplateContext<TContext, TData>) => boolean | Promise<boolean>) | ConditionTemplate<TContext, TData>[];
|
|
70
|
+
/**
|
|
71
|
+
* Result of condition evaluation containing both programmatic results
|
|
72
|
+
* and AI context strings.
|
|
73
|
+
*/
|
|
74
|
+
export interface ConditionEvaluationResult {
|
|
75
|
+
/** Result of function evaluations only */
|
|
76
|
+
programmaticResult: boolean;
|
|
77
|
+
/** String values for AI context */
|
|
78
|
+
aiContextStrings: string[];
|
|
79
|
+
/** Whether any functions were evaluated */
|
|
80
|
+
hasProgrammaticConditions: boolean;
|
|
81
|
+
/** Detailed evaluation information for debugging */
|
|
82
|
+
evaluationDetails?: {
|
|
83
|
+
condition: string;
|
|
84
|
+
result?: boolean;
|
|
85
|
+
type: 'string' | 'function' | 'array';
|
|
86
|
+
}[];
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/types/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAClE;;OAEG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IAElB;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE;QACP;;;;WAIG;QACH,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;QAEvD;;;WAGG;QACH,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAAC;QAEzC;;;WAGG;QACH,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAAC;QAE9C;;;;WAIG;QACH,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;QAE1C;;;;;WAKG;QACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;KACpF,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,IACpD,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,IAC7D,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAC1E,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,2CAA2C;IAC3C,yBAAyB,EAAE,OAAO,CAAC;IACnC,oDAAoD;IACpD,iBAAiB,CAAC,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;KACvC,EAAE,CAAC;CACL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/types/template.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool system type definitions
|
|
3
|
+
*/
|
|
4
|
+
import type { Event, StepRef, ValidationResult } from "./index";
|
|
5
|
+
/**
|
|
6
|
+
* Context provided to tool handlers
|
|
7
|
+
*/
|
|
8
|
+
export interface ToolContext<TContext = any, TData = any> {
|
|
9
|
+
/** The agent's context data */
|
|
10
|
+
context: TContext;
|
|
11
|
+
/** Complete agent-level data collected so far */
|
|
12
|
+
data: Partial<TData>;
|
|
13
|
+
/** Interaction history */
|
|
14
|
+
history: Event[];
|
|
15
|
+
/** Current step reference (if in a route) */
|
|
16
|
+
step?: StepRef;
|
|
17
|
+
/** Additional metadata */
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
/** Update the agent's context (triggers lifecycle hooks if configured) */
|
|
20
|
+
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
21
|
+
/** Update the agent's collected data (triggers lifecycle hooks if configured) */
|
|
22
|
+
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
23
|
+
/** Get a specific field from collected data */
|
|
24
|
+
getField<K extends keyof TData>(key: K): TData[K] | undefined;
|
|
25
|
+
/** Set a specific field in collected data */
|
|
26
|
+
setField<K extends keyof TData>(key: K, value: TData[K]): Promise<void>;
|
|
27
|
+
/** Check if a field exists in collected data */
|
|
28
|
+
hasField<K extends keyof TData>(key: K): boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Result returned by a tool
|
|
32
|
+
*/
|
|
33
|
+
export interface ToolResult<TResultData = any, TContext = any, TData = any> {
|
|
34
|
+
/** The result data */
|
|
35
|
+
data?: TResultData;
|
|
36
|
+
/** Optional context update to be merged with current context */
|
|
37
|
+
contextUpdate?: Partial<TContext>;
|
|
38
|
+
/** Optional agent-level data update to be merged with collected data */
|
|
39
|
+
dataUpdate?: Partial<TData>;
|
|
40
|
+
/** Success indicator */
|
|
41
|
+
success?: boolean;
|
|
42
|
+
/** Error message if operation failed */
|
|
43
|
+
error?: string;
|
|
44
|
+
/** Optional metadata about the execution */
|
|
45
|
+
meta?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Handler function for a tool
|
|
49
|
+
*/
|
|
50
|
+
export type ToolHandler<TContext = any, TData = any, TResult = any> = (context: ToolContext<TContext, TData>, args?: Record<string, unknown>) => Promise<TResult | ToolResult<TResult, TContext, TData>> | TResult | ToolResult<TResult, TContext, TData>;
|
|
51
|
+
/**
|
|
52
|
+
* Tool definition - plain object interface
|
|
53
|
+
*/
|
|
54
|
+
export interface Tool<TContext = any, TData = any, TResult = any> {
|
|
55
|
+
/** Tool identifier */
|
|
56
|
+
id: string;
|
|
57
|
+
/** Tool display name (shown to AI models) */
|
|
58
|
+
name?: string;
|
|
59
|
+
/** Tool handler function */
|
|
60
|
+
handler: ToolHandler<TContext, TData, TResult>;
|
|
61
|
+
/** Description of what the tool does (for AI discovery) */
|
|
62
|
+
description?: string;
|
|
63
|
+
/** Parameter schema or description */
|
|
64
|
+
parameters?: unknown;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Tool execution result
|
|
68
|
+
*/
|
|
69
|
+
export interface ToolExecutionResult {
|
|
70
|
+
success: boolean;
|
|
71
|
+
data?: unknown;
|
|
72
|
+
error?: string;
|
|
73
|
+
contextUpdate?: Record<string, unknown>;
|
|
74
|
+
dataUpdate?: Record<string, unknown>;
|
|
75
|
+
metadata?: Record<string, unknown>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Tool scope enumeration
|
|
79
|
+
*/
|
|
80
|
+
export declare enum ToolScope {
|
|
81
|
+
AGENT = "agent",
|
|
82
|
+
ROUTE = "route",
|
|
83
|
+
STEP = "step",
|
|
84
|
+
REGISTERED = "registered",
|
|
85
|
+
ALL = "all"
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Configuration for data enrichment tools
|
|
89
|
+
*/
|
|
90
|
+
export interface DataEnrichmentConfig<TContext, TData, TFields extends keyof TData> {
|
|
91
|
+
id: string;
|
|
92
|
+
name?: string;
|
|
93
|
+
description?: string;
|
|
94
|
+
fields: TFields[];
|
|
95
|
+
enricher: (context: TContext, data: Pick<TData, TFields>) => Promise<Partial<TData>> | Partial<TData>;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Configuration for validation tools
|
|
99
|
+
*/
|
|
100
|
+
export interface ValidationConfig<TContext, TData, TFields extends keyof TData> {
|
|
101
|
+
id: string;
|
|
102
|
+
name?: string;
|
|
103
|
+
description?: string;
|
|
104
|
+
fields: TFields[];
|
|
105
|
+
validator: (context: TContext, data: Pick<TData, TFields>) => Promise<ValidationResult> | ValidationResult;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Configuration for API call tools
|
|
109
|
+
*/
|
|
110
|
+
export interface ApiCallConfig<TContext, TData, TResult> {
|
|
111
|
+
id: string;
|
|
112
|
+
name?: string;
|
|
113
|
+
description?: string;
|
|
114
|
+
endpoint: string | ((context: TContext, data: Partial<TData>) => string);
|
|
115
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
116
|
+
headers?: Record<string, string> | ((context: TContext) => Record<string, string>);
|
|
117
|
+
body?: (context: TContext, data: Partial<TData>, args?: Record<string, unknown>) => unknown;
|
|
118
|
+
transform?: (response: unknown) => TResult;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Configuration for computation tools
|
|
122
|
+
*/
|
|
123
|
+
export interface ComputationConfig<TContext, TData, TResult> {
|
|
124
|
+
id: string;
|
|
125
|
+
name?: string;
|
|
126
|
+
description?: string;
|
|
127
|
+
inputs: (keyof TData)[];
|
|
128
|
+
compute: (context: TContext, inputs: Partial<TData>, args?: Record<string, unknown>) => Promise<TResult> | TResult;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/types/tool.ts"],"names":[],"mappings":"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"}
|