@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,16 @@
|
|
|
1
|
+
/* eslint @typescript-eslint/no-explicit-any: "off"*/
|
|
2
|
+
/**
|
|
3
|
+
* Tool system type definitions
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Tool scope enumeration
|
|
7
|
+
*/
|
|
8
|
+
export var ToolScope;
|
|
9
|
+
(function (ToolScope) {
|
|
10
|
+
ToolScope["AGENT"] = "agent";
|
|
11
|
+
ToolScope["ROUTE"] = "route";
|
|
12
|
+
ToolScope["STEP"] = "step";
|
|
13
|
+
ToolScope["REGISTERED"] = "registered";
|
|
14
|
+
ToolScope["ALL"] = "all";
|
|
15
|
+
})(ToolScope || (ToolScope = {}));
|
|
16
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/types/tool.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;GAEG;AAsGH;;GAEG;AACH,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,sCAAyB,CAAA;IACzB,wBAAW,CAAA;AACb,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep clone utility to avoid adding large dependencies like lodash.
|
|
3
|
+
* Handles objects, arrays, dates, and primitives.
|
|
4
|
+
* @param obj - The object to clone
|
|
5
|
+
* @returns A deep copy of the object
|
|
6
|
+
*/
|
|
7
|
+
export declare function cloneDeep<T>(obj: T): T;
|
|
8
|
+
//# sourceMappingURL=clone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../../src/utils/clone.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CA0BtC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep clone utility to avoid adding large dependencies like lodash.
|
|
3
|
+
* Handles objects, arrays, dates, and primitives.
|
|
4
|
+
* @param obj - The object to clone
|
|
5
|
+
* @returns A deep copy of the object
|
|
6
|
+
*/
|
|
7
|
+
export function cloneDeep(obj) {
|
|
8
|
+
if (obj === null || typeof obj !== "object") {
|
|
9
|
+
return obj;
|
|
10
|
+
}
|
|
11
|
+
if (obj instanceof Date) {
|
|
12
|
+
return new Date(obj.getTime());
|
|
13
|
+
}
|
|
14
|
+
if (Array.isArray(obj)) {
|
|
15
|
+
const arrCopy = [];
|
|
16
|
+
for (let i = 0; i < obj.length; i++) {
|
|
17
|
+
arrCopy[i] = cloneDeep(obj[i]);
|
|
18
|
+
}
|
|
19
|
+
return arrCopy;
|
|
20
|
+
}
|
|
21
|
+
const objCopy = {};
|
|
22
|
+
for (const key in obj) {
|
|
23
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
24
|
+
objCopy[key] = cloneDeep(obj[key]);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return objCopy;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=clone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../src/utils/clone.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAI,GAAM;IACjC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAM,CAAC;IACtC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAEpC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,OAAY,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,OAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { TemplateContext, ConditionTemplate, ConditionEvaluationResult } from "../types/template";
|
|
2
|
+
/**
|
|
3
|
+
* Utility class for evaluating ConditionTemplate instances.
|
|
4
|
+
* Handles mixed string/function conditions and separates programmatic
|
|
5
|
+
* evaluation from AI context collection.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ConditionEvaluator<TContext = unknown, TData = unknown> {
|
|
8
|
+
private templateContext;
|
|
9
|
+
constructor(templateContext: TemplateContext<TContext, TData>);
|
|
10
|
+
/**
|
|
11
|
+
* Evaluates a condition template and returns both programmatic results
|
|
12
|
+
* and AI context strings.
|
|
13
|
+
*
|
|
14
|
+
* @param condition The condition to evaluate
|
|
15
|
+
* @param logic Logic to apply for arrays ('AND' for when conditions, 'OR' for skipIf)
|
|
16
|
+
* @returns Evaluation result with programmatic result and AI context
|
|
17
|
+
*/
|
|
18
|
+
evaluateCondition(condition: ConditionTemplate<TContext, TData>, logic?: 'AND' | 'OR'): Promise<ConditionEvaluationResult>;
|
|
19
|
+
/**
|
|
20
|
+
* Evaluates an array of conditions with the specified logic.
|
|
21
|
+
*/
|
|
22
|
+
private evaluateArrayCondition;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Utility function to create a ConditionEvaluator instance.
|
|
26
|
+
* Ensures the template context has helpers included.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createConditionEvaluator<TContext = unknown, TData = unknown>(templateContext: Omit<Partial<TemplateContext<TContext, TData>>, 'helpers'>): ConditionEvaluator<TContext, TData>;
|
|
29
|
+
/**
|
|
30
|
+
* Utility function to extract AI context strings from a condition without evaluation.
|
|
31
|
+
* Useful for collecting context strings for prompt generation.
|
|
32
|
+
*/
|
|
33
|
+
export declare function extractAIContextStrings<TContext = unknown, TData = unknown>(condition: ConditionTemplate<TContext, TData>): string[];
|
|
34
|
+
/**
|
|
35
|
+
* Utility function to check if a condition has any programmatic components.
|
|
36
|
+
*/
|
|
37
|
+
export declare function hasProgrammaticConditions<TContext = unknown, TData = unknown>(condition: ConditionTemplate<TContext, TData>): boolean;
|
|
38
|
+
//# sourceMappingURL=condition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/utils/condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAIvG;;;;GAIG;AACH,qBAAa,kBAAkB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACrD,OAAO,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC;IAErE;;;;;;;OAOG;IACG,iBAAiB,CACrB,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC7C,KAAK,GAAE,KAAK,GAAG,IAAY,GAC1B,OAAO,CAAC,yBAAyB,CAAC;IA4DrC;;OAEG;YACW,sBAAsB;CAkDrC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAC1E,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAC1E,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAGrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EACzE,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAC5C,MAAM,EAAE,CAiBV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAC3E,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAC5C,OAAO,CAUT"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { createTemplateContext } from "./template";
|
|
2
|
+
import { logger } from './logger';
|
|
3
|
+
/**
|
|
4
|
+
* Utility class for evaluating ConditionTemplate instances.
|
|
5
|
+
* Handles mixed string/function conditions and separates programmatic
|
|
6
|
+
* evaluation from AI context collection.
|
|
7
|
+
*/
|
|
8
|
+
export class ConditionEvaluator {
|
|
9
|
+
constructor(templateContext) {
|
|
10
|
+
this.templateContext = templateContext;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Evaluates a condition template and returns both programmatic results
|
|
14
|
+
* and AI context strings.
|
|
15
|
+
*
|
|
16
|
+
* @param condition The condition to evaluate
|
|
17
|
+
* @param logic Logic to apply for arrays ('AND' for when conditions, 'OR' for skipIf)
|
|
18
|
+
* @returns Evaluation result with programmatic result and AI context
|
|
19
|
+
*/
|
|
20
|
+
async evaluateCondition(condition, logic = 'AND') {
|
|
21
|
+
const result = {
|
|
22
|
+
programmaticResult: logic === 'AND' ? true : false,
|
|
23
|
+
aiContextStrings: [],
|
|
24
|
+
hasProgrammaticConditions: false,
|
|
25
|
+
evaluationDetails: []
|
|
26
|
+
};
|
|
27
|
+
if (!condition) {
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
// Handle array conditions
|
|
31
|
+
if (Array.isArray(condition)) {
|
|
32
|
+
return this.evaluateArrayCondition(condition, logic);
|
|
33
|
+
}
|
|
34
|
+
// Handle string conditions (AI context only)
|
|
35
|
+
if (typeof condition === 'string') {
|
|
36
|
+
result.aiContextStrings.push(condition);
|
|
37
|
+
result.evaluationDetails?.push({
|
|
38
|
+
condition: condition,
|
|
39
|
+
type: 'string'
|
|
40
|
+
});
|
|
41
|
+
// For string conditions, programmatic result depends on logic:
|
|
42
|
+
// AND logic: true (doesn't affect result)
|
|
43
|
+
// OR logic: false (doesn't trigger skip)
|
|
44
|
+
result.programmaticResult = logic === 'AND' ? true : false;
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
// Handle function conditions (programmatic evaluation)
|
|
48
|
+
if (typeof condition === 'function') {
|
|
49
|
+
result.hasProgrammaticConditions = true;
|
|
50
|
+
try {
|
|
51
|
+
const functionResult = await condition(this.templateContext);
|
|
52
|
+
result.programmaticResult = Boolean(functionResult);
|
|
53
|
+
result.evaluationDetails?.push({
|
|
54
|
+
condition: condition.toString(),
|
|
55
|
+
result: result.programmaticResult,
|
|
56
|
+
type: 'function'
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
// Log error and default to false for safety
|
|
61
|
+
logger.warn('Condition function evaluation failed:', error);
|
|
62
|
+
result.programmaticResult = false;
|
|
63
|
+
result.evaluationDetails?.push({
|
|
64
|
+
condition: condition.toString(),
|
|
65
|
+
result: false,
|
|
66
|
+
type: 'function'
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
// Fallback for unexpected types
|
|
72
|
+
logger.warn('Unexpected condition type:', typeof condition);
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Evaluates an array of conditions with the specified logic.
|
|
77
|
+
*/
|
|
78
|
+
async evaluateArrayCondition(conditions, logic) {
|
|
79
|
+
const result = {
|
|
80
|
+
programmaticResult: logic === 'AND' ? true : false,
|
|
81
|
+
aiContextStrings: [],
|
|
82
|
+
hasProgrammaticConditions: false,
|
|
83
|
+
evaluationDetails: [{
|
|
84
|
+
condition: `Array[${conditions.length}]`,
|
|
85
|
+
type: 'array'
|
|
86
|
+
}]
|
|
87
|
+
};
|
|
88
|
+
const functionResults = [];
|
|
89
|
+
for (const condition of conditions) {
|
|
90
|
+
const conditionResult = await this.evaluateCondition(condition, logic);
|
|
91
|
+
// Collect AI context strings
|
|
92
|
+
result.aiContextStrings.push(...conditionResult.aiContextStrings);
|
|
93
|
+
// Track if we have programmatic conditions
|
|
94
|
+
if (conditionResult.hasProgrammaticConditions) {
|
|
95
|
+
result.hasProgrammaticConditions = true;
|
|
96
|
+
functionResults.push(conditionResult.programmaticResult);
|
|
97
|
+
}
|
|
98
|
+
// Merge evaluation details
|
|
99
|
+
if (conditionResult.evaluationDetails) {
|
|
100
|
+
result.evaluationDetails?.push(...conditionResult.evaluationDetails);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Apply logic to function results only
|
|
104
|
+
if (functionResults.length > 0) {
|
|
105
|
+
if (logic === 'AND') {
|
|
106
|
+
result.programmaticResult = functionResults.every(r => r);
|
|
107
|
+
}
|
|
108
|
+
else { // OR
|
|
109
|
+
result.programmaticResult = functionResults.some(r => r);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// No programmatic conditions, result depends on logic:
|
|
114
|
+
// AND: true (no functions to fail)
|
|
115
|
+
// OR: false (no functions to succeed)
|
|
116
|
+
result.programmaticResult = logic === 'AND' ? true : false;
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Utility function to create a ConditionEvaluator instance.
|
|
123
|
+
* Ensures the template context has helpers included.
|
|
124
|
+
*/
|
|
125
|
+
export function createConditionEvaluator(templateContext) {
|
|
126
|
+
const contextWithHelpers = createTemplateContext(templateContext);
|
|
127
|
+
return new ConditionEvaluator(contextWithHelpers);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Utility function to extract AI context strings from a condition without evaluation.
|
|
131
|
+
* Useful for collecting context strings for prompt generation.
|
|
132
|
+
*/
|
|
133
|
+
export function extractAIContextStrings(condition) {
|
|
134
|
+
const contextStrings = [];
|
|
135
|
+
if (!condition) {
|
|
136
|
+
return contextStrings;
|
|
137
|
+
}
|
|
138
|
+
if (Array.isArray(condition)) {
|
|
139
|
+
for (const subCondition of condition) {
|
|
140
|
+
contextStrings.push(...extractAIContextStrings(subCondition));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else if (typeof condition === 'string') {
|
|
144
|
+
contextStrings.push(condition);
|
|
145
|
+
}
|
|
146
|
+
// Functions don't contribute to AI context
|
|
147
|
+
return contextStrings;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Utility function to check if a condition has any programmatic components.
|
|
151
|
+
*/
|
|
152
|
+
export function hasProgrammaticConditions(condition) {
|
|
153
|
+
if (!condition) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
if (Array.isArray(condition)) {
|
|
157
|
+
return condition.some(subCondition => hasProgrammaticConditions(subCondition));
|
|
158
|
+
}
|
|
159
|
+
return typeof condition === 'function';
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=condition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/utils/condition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/utils/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,UAAU,CAAC;AACjD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAWlE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventKind } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Helper to extract last message from history
|
|
4
|
+
*/
|
|
5
|
+
export function getLastMessageFromHistory(history) {
|
|
6
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
7
|
+
const event = history[i];
|
|
8
|
+
if (event.kind === EventKind.MESSAGE) {
|
|
9
|
+
if (!event.data || !("message" in event.data)) {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
return event.data.message;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return "";
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/utils/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,SAAS;YACX,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* History normalization utilities
|
|
3
|
+
* Convert simplified history format to internal Event format
|
|
4
|
+
*/
|
|
5
|
+
import type { Event, MessageEventData, ToolEventData, StatusEventData } from "../types";
|
|
6
|
+
import type { History, HistoryItem } from "../types/history";
|
|
7
|
+
/**
|
|
8
|
+
* Convert a simplified history item to an internal Event
|
|
9
|
+
* @param item - The HistoryItem to convert
|
|
10
|
+
* @returns Event with proper type-safe structure
|
|
11
|
+
* @throws Error if the history item is malformed or has invalid data
|
|
12
|
+
*/
|
|
13
|
+
export declare function historyItemToEvent(item: HistoryItem): Event<MessageEventData | ToolEventData | StatusEventData>;
|
|
14
|
+
/**
|
|
15
|
+
* Convert an array of HistoryItems to Events
|
|
16
|
+
* @param history - Array of HistoryItems to convert
|
|
17
|
+
* @returns Array of Events with proper type-safe structure
|
|
18
|
+
* @throws Error if any history item is malformed
|
|
19
|
+
*/
|
|
20
|
+
export declare function historyToEvents(history: History): Event<MessageEventData | ToolEventData | StatusEventData>[];
|
|
21
|
+
/**
|
|
22
|
+
* Convert an Event back to a HistoryItem
|
|
23
|
+
* @param event - The Event to convert
|
|
24
|
+
* @returns HistoryItem with simplified structure
|
|
25
|
+
* @throws Error if the event is malformed or has invalid data
|
|
26
|
+
*/
|
|
27
|
+
export declare function eventToHistoryItem(event: Event): HistoryItem;
|
|
28
|
+
/**
|
|
29
|
+
* Convert an array of Events back to HistoryItems
|
|
30
|
+
* @param events - Array of Events to convert
|
|
31
|
+
* @returns Array of HistoryItems with simplified structure
|
|
32
|
+
* @throws Error if any event is malformed
|
|
33
|
+
*/
|
|
34
|
+
export declare function eventsToHistory(events: Event[]): History;
|
|
35
|
+
/**
|
|
36
|
+
* Normalize a simplified history array to internal Event array
|
|
37
|
+
* @deprecated Use historyToEvents instead
|
|
38
|
+
*/
|
|
39
|
+
export declare function normalizeHistory(history: History): Event[];
|
|
40
|
+
/**
|
|
41
|
+
* Helper function to create a user message
|
|
42
|
+
*/
|
|
43
|
+
export declare function userMessage(content: string, name?: string): HistoryItem;
|
|
44
|
+
/**
|
|
45
|
+
* Helper function to create an assistant message
|
|
46
|
+
*/
|
|
47
|
+
export declare function assistantMessage(content: string | null, toolCalls?: Array<{
|
|
48
|
+
id: string;
|
|
49
|
+
name: string;
|
|
50
|
+
arguments: Record<string, unknown>;
|
|
51
|
+
}>): HistoryItem;
|
|
52
|
+
/**
|
|
53
|
+
* Helper function to create a tool message
|
|
54
|
+
*/
|
|
55
|
+
export declare function toolMessage(toolCallId: string, name: string, content: unknown): HistoryItem;
|
|
56
|
+
/**
|
|
57
|
+
* Helper function to create a system message
|
|
58
|
+
*/
|
|
59
|
+
export declare function systemMessage(content: string): HistoryItem;
|
|
60
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/utils/history.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAExF,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAA0D,MAAM,kBAAkB,CAAC;AAErH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK,CAAC,gBAAgB,GAAG,aAAa,GAAG,eAAe,CAAC,CAgH/G;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,gBAAgB,GAAG,aAAa,GAAG,eAAe,CAAC,EAAE,CAY7G;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAmF5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAYxD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAEvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,CAAC,EAAE,KAAK,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC,GACD,WAAW,CAEb;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,WAAW,CAEb;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAE1D"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* History normalization utilities
|
|
3
|
+
* Convert simplified history format to internal Event format
|
|
4
|
+
*/
|
|
5
|
+
import { EventKind, MessageRole } from "../types";
|
|
6
|
+
/**
|
|
7
|
+
* Convert a simplified history item to an internal Event
|
|
8
|
+
* @param item - The HistoryItem to convert
|
|
9
|
+
* @returns Event with proper type-safe structure
|
|
10
|
+
* @throws Error if the history item is malformed or has invalid data
|
|
11
|
+
*/
|
|
12
|
+
export function historyItemToEvent(item) {
|
|
13
|
+
if (!item || typeof item !== 'object') {
|
|
14
|
+
throw new Error('Invalid history item: must be a non-null object');
|
|
15
|
+
}
|
|
16
|
+
if (!item.role || typeof item.role !== 'string') {
|
|
17
|
+
throw new Error('Invalid history item: role is required and must be a string');
|
|
18
|
+
}
|
|
19
|
+
const timestamp = new Date().toISOString();
|
|
20
|
+
switch (item.role) {
|
|
21
|
+
case "user": {
|
|
22
|
+
const userItem = item;
|
|
23
|
+
if (typeof userItem.content !== 'string') {
|
|
24
|
+
throw new Error('Invalid user history item: content must be a string');
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
kind: EventKind.MESSAGE,
|
|
28
|
+
source: MessageRole.USER,
|
|
29
|
+
timestamp,
|
|
30
|
+
data: {
|
|
31
|
+
participant: {
|
|
32
|
+
display_name: userItem.name || "User",
|
|
33
|
+
},
|
|
34
|
+
message: userItem.content,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
case "assistant": {
|
|
39
|
+
const assistantItem = item;
|
|
40
|
+
if (assistantItem.content !== null && typeof assistantItem.content !== 'string') {
|
|
41
|
+
throw new Error('Invalid assistant history item: content must be a string or null');
|
|
42
|
+
}
|
|
43
|
+
const event = {
|
|
44
|
+
kind: EventKind.MESSAGE,
|
|
45
|
+
source: MessageRole.ASSISTANT,
|
|
46
|
+
timestamp,
|
|
47
|
+
data: {
|
|
48
|
+
participant: {
|
|
49
|
+
display_name: "Assistant",
|
|
50
|
+
},
|
|
51
|
+
message: assistantItem.content || "",
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
// If there are tool calls, validate and add them
|
|
55
|
+
if (assistantItem.tool_calls && assistantItem.tool_calls.length > 0) {
|
|
56
|
+
if (!Array.isArray(assistantItem.tool_calls)) {
|
|
57
|
+
throw new Error('Invalid assistant history item: tool_calls must be an array');
|
|
58
|
+
}
|
|
59
|
+
for (const toolCall of assistantItem.tool_calls) {
|
|
60
|
+
if (!toolCall.id || !toolCall.name || typeof toolCall.arguments !== 'object') {
|
|
61
|
+
throw new Error('Invalid tool call: id, name, and arguments are required');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
event.data.toolCalls = assistantItem.tool_calls;
|
|
65
|
+
}
|
|
66
|
+
return event;
|
|
67
|
+
}
|
|
68
|
+
case "tool": {
|
|
69
|
+
const toolItem = item;
|
|
70
|
+
if (!toolItem.tool_call_id || typeof toolItem.tool_call_id !== 'string') {
|
|
71
|
+
throw new Error('Invalid tool history item: tool_call_id is required and must be a string');
|
|
72
|
+
}
|
|
73
|
+
if (!toolItem.name || typeof toolItem.name !== 'string') {
|
|
74
|
+
throw new Error('Invalid tool history item: name is required and must be a string');
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
kind: EventKind.TOOL,
|
|
78
|
+
source: MessageRole.AGENT,
|
|
79
|
+
timestamp,
|
|
80
|
+
data: {
|
|
81
|
+
tool_calls: [
|
|
82
|
+
{
|
|
83
|
+
tool_id: toolItem.tool_call_id,
|
|
84
|
+
arguments: {}, // Tool results don't have arguments
|
|
85
|
+
result: {
|
|
86
|
+
data: toolItem.content,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
case "system": {
|
|
94
|
+
const systemItem = item;
|
|
95
|
+
if (typeof systemItem.content !== 'string') {
|
|
96
|
+
throw new Error('Invalid system history item: content must be a string');
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
kind: EventKind.MESSAGE,
|
|
100
|
+
source: MessageRole.SYSTEM,
|
|
101
|
+
timestamp,
|
|
102
|
+
data: {
|
|
103
|
+
participant: {
|
|
104
|
+
display_name: "System",
|
|
105
|
+
},
|
|
106
|
+
message: systemItem.content,
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
default:
|
|
111
|
+
throw new Error(`Invalid history item role: ${String(item.role)}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Convert an array of HistoryItems to Events
|
|
116
|
+
* @param history - Array of HistoryItems to convert
|
|
117
|
+
* @returns Array of Events with proper type-safe structure
|
|
118
|
+
* @throws Error if any history item is malformed
|
|
119
|
+
*/
|
|
120
|
+
export function historyToEvents(history) {
|
|
121
|
+
if (!Array.isArray(history)) {
|
|
122
|
+
throw new Error('Invalid history: must be an array');
|
|
123
|
+
}
|
|
124
|
+
return history.map((item, index) => {
|
|
125
|
+
try {
|
|
126
|
+
return historyItemToEvent(item);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
throw new Error(`Error converting history item at index ${index}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Convert an Event back to a HistoryItem
|
|
135
|
+
* @param event - The Event to convert
|
|
136
|
+
* @returns HistoryItem with simplified structure
|
|
137
|
+
* @throws Error if the event is malformed or has invalid data
|
|
138
|
+
*/
|
|
139
|
+
export function eventToHistoryItem(event) {
|
|
140
|
+
if (!event || typeof event !== 'object') {
|
|
141
|
+
throw new Error('Invalid event: must be a non-null object');
|
|
142
|
+
}
|
|
143
|
+
if (!event.kind || !event.source || !event.data) {
|
|
144
|
+
throw new Error('Invalid event: kind, source, and data are required');
|
|
145
|
+
}
|
|
146
|
+
switch (event.kind) {
|
|
147
|
+
case EventKind.MESSAGE: {
|
|
148
|
+
const messageData = event.data;
|
|
149
|
+
if (!messageData.message && messageData.message !== '') {
|
|
150
|
+
throw new Error('Invalid message event: message is required');
|
|
151
|
+
}
|
|
152
|
+
switch (event.source) {
|
|
153
|
+
case MessageRole.USER: {
|
|
154
|
+
const userItem = {
|
|
155
|
+
role: "user",
|
|
156
|
+
content: messageData.message,
|
|
157
|
+
};
|
|
158
|
+
if (messageData.participant?.display_name && messageData.participant.display_name !== "User") {
|
|
159
|
+
userItem.name = messageData.participant.display_name;
|
|
160
|
+
}
|
|
161
|
+
return userItem;
|
|
162
|
+
}
|
|
163
|
+
case MessageRole.ASSISTANT: {
|
|
164
|
+
const assistantItem = {
|
|
165
|
+
role: "assistant",
|
|
166
|
+
content: messageData.message || null,
|
|
167
|
+
};
|
|
168
|
+
if (messageData.toolCalls && messageData.toolCalls.length > 0) {
|
|
169
|
+
assistantItem.tool_calls = messageData.toolCalls;
|
|
170
|
+
}
|
|
171
|
+
return assistantItem;
|
|
172
|
+
}
|
|
173
|
+
case MessageRole.SYSTEM: {
|
|
174
|
+
return {
|
|
175
|
+
role: "system",
|
|
176
|
+
content: messageData.message,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
default:
|
|
180
|
+
throw new Error(`Unsupported message source for conversion: ${event.source}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
case EventKind.TOOL: {
|
|
184
|
+
const toolData = event.data;
|
|
185
|
+
if (!toolData.tool_calls || !Array.isArray(toolData.tool_calls) || toolData.tool_calls.length === 0) {
|
|
186
|
+
throw new Error('Invalid tool event: tool_calls array is required and must not be empty');
|
|
187
|
+
}
|
|
188
|
+
const firstToolCall = toolData.tool_calls[0];
|
|
189
|
+
if (!firstToolCall.tool_id) {
|
|
190
|
+
throw new Error('Invalid tool call: tool_id is required');
|
|
191
|
+
}
|
|
192
|
+
const toolItem = {
|
|
193
|
+
role: "tool",
|
|
194
|
+
tool_call_id: firstToolCall.tool_id,
|
|
195
|
+
name: firstToolCall.tool_id, // Use tool_id as name for simplicity
|
|
196
|
+
content: firstToolCall.result?.data,
|
|
197
|
+
};
|
|
198
|
+
return toolItem;
|
|
199
|
+
}
|
|
200
|
+
case EventKind.STATUS: {
|
|
201
|
+
// Status events don't have a direct HistoryItem equivalent
|
|
202
|
+
// Convert to system message for compatibility
|
|
203
|
+
const statusData = event.data;
|
|
204
|
+
return {
|
|
205
|
+
role: "system",
|
|
206
|
+
content: statusData.status || "Status update",
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
default:
|
|
210
|
+
throw new Error(`Unsupported event kind for conversion: ${String(event.kind)}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Convert an array of Events back to HistoryItems
|
|
215
|
+
* @param events - Array of Events to convert
|
|
216
|
+
* @returns Array of HistoryItems with simplified structure
|
|
217
|
+
* @throws Error if any event is malformed
|
|
218
|
+
*/
|
|
219
|
+
export function eventsToHistory(events) {
|
|
220
|
+
if (!Array.isArray(events)) {
|
|
221
|
+
throw new Error('Invalid events: must be an array');
|
|
222
|
+
}
|
|
223
|
+
return events.map((event, index) => {
|
|
224
|
+
try {
|
|
225
|
+
return eventToHistoryItem(event);
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
throw new Error(`Error converting event at index ${index}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Normalize a simplified history array to internal Event array
|
|
234
|
+
* @deprecated Use historyToEvents instead
|
|
235
|
+
*/
|
|
236
|
+
export function normalizeHistory(history) {
|
|
237
|
+
return historyToEvents(history);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Helper function to create a user message
|
|
241
|
+
*/
|
|
242
|
+
export function userMessage(content, name) {
|
|
243
|
+
return { role: "user", content, name };
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Helper function to create an assistant message
|
|
247
|
+
*/
|
|
248
|
+
export function assistantMessage(content, toolCalls) {
|
|
249
|
+
return { role: "assistant", content, tool_calls: toolCalls };
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Helper function to create a tool message
|
|
253
|
+
*/
|
|
254
|
+
export function toolMessage(toolCallId, name, content) {
|
|
255
|
+
return { role: "tool", tool_call_id: toolCallId, name, content };
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Helper function to create a system message
|
|
259
|
+
*/
|
|
260
|
+
export function systemMessage(content) {
|
|
261
|
+
return { role: "system", content };
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/utils/history.ts"],"names":[],"mappings":"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"}
|