@dexto/core 1.1.4 → 1.1.6
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 +125 -0
- package/dist/agent/DextoAgent.cjs +793 -0
- package/dist/agent/DextoAgent.d.cts +473 -0
- package/dist/agent/DextoAgent.d.ts +473 -0
- package/dist/agent/DextoAgent.js +774 -0
- package/dist/agent/agentCard.cjs +44 -0
- package/dist/agent/agentCard.d.cts +20 -0
- package/dist/agent/agentCard.d.ts +20 -0
- package/dist/agent/agentCard.js +20 -0
- package/dist/agent/error-codes.cjs +35 -0
- package/dist/agent/error-codes.d.cts +14 -0
- package/dist/agent/error-codes.d.ts +14 -0
- package/dist/agent/error-codes.js +11 -0
- package/dist/agent/errors.cjs +84 -0
- package/dist/agent/errors.d.cts +40 -0
- package/dist/agent/errors.d.ts +40 -0
- package/dist/agent/errors.js +60 -0
- package/dist/agent/index.cjs +44 -0
- package/dist/agent/index.d.cts +60 -0
- package/dist/agent/index.d.ts +60 -0
- package/dist/agent/index.js +13 -0
- package/dist/agent/registry/error-codes.cjs +42 -0
- package/dist/agent/registry/error-codes.d.cts +20 -0
- package/dist/agent/registry/error-codes.d.ts +20 -0
- package/dist/agent/registry/error-codes.js +18 -0
- package/dist/agent/registry/errors.cjs +158 -0
- package/dist/agent/registry/errors.d.cts +67 -0
- package/dist/agent/registry/errors.d.ts +67 -0
- package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
- package/dist/agent/registry/registry.cjs +291 -0
- package/dist/agent/registry/registry.d.cts +67 -0
- package/dist/agent/registry/registry.d.ts +67 -0
- package/dist/agent/registry/registry.js +256 -0
- package/dist/agent/registry/types.cjs +41 -0
- package/dist/agent/registry/types.d.cts +100 -0
- package/dist/agent/registry/types.d.ts +100 -0
- package/dist/agent/registry/types.js +16 -0
- package/dist/agent/schemas.cjs +113 -0
- package/dist/agent/schemas.d.cts +1502 -0
- package/dist/agent/schemas.d.ts +1502 -0
- package/dist/agent/schemas.js +88 -0
- package/dist/agent/state-manager.cjs +214 -0
- package/dist/agent/state-manager.d.cts +97 -0
- package/dist/agent/state-manager.d.ts +97 -0
- package/dist/agent/state-manager.js +190 -0
- package/dist/config/agent-resolver.cjs +153 -0
- package/dist/config/agent-resolver.d.cts +15 -0
- package/dist/config/agent-resolver.d.ts +15 -0
- package/dist/config/agent-resolver.js +122 -0
- package/dist/config/error-codes.cjs +39 -0
- package/dist/config/error-codes.d.cts +17 -0
- package/dist/config/error-codes.d.ts +17 -0
- package/dist/config/error-codes.js +15 -0
- package/dist/config/errors.cjs +126 -0
- package/dist/config/errors.d.cts +49 -0
- package/dist/config/errors.d.ts +49 -0
- package/dist/config/errors.js +102 -0
- package/dist/config/index.cjs +26 -0
- package/dist/config/index.d.cts +7 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.js +3 -0
- package/dist/config/loader.cjs +119 -0
- package/dist/config/loader.d.cts +19 -0
- package/dist/config/loader.d.ts +19 -0
- package/dist/config/loader.js +85 -0
- package/dist/config/writer.cjs +182 -0
- package/dist/config/writer.d.cts +38 -0
- package/dist/config/writer.d.ts +38 -0
- package/dist/config/writer.js +146 -0
- package/dist/context/compression/middle-removal.cjs +95 -0
- package/dist/context/compression/middle-removal.d.cts +48 -0
- package/dist/context/compression/middle-removal.d.ts +48 -0
- package/dist/context/compression/middle-removal.js +71 -0
- package/dist/context/compression/oldest-removal.cjs +70 -0
- package/dist/context/compression/oldest-removal.d.cts +43 -0
- package/dist/context/compression/oldest-removal.d.ts +43 -0
- package/dist/context/compression/oldest-removal.js +46 -0
- package/dist/context/compression/types.cjs +16 -0
- package/dist/context/compression/types.d.cts +21 -0
- package/dist/context/compression/types.d.ts +21 -0
- package/dist/context/compression/types.js +0 -0
- package/dist/context/error-codes.cjs +41 -0
- package/dist/context/error-codes.d.cts +19 -0
- package/dist/context/error-codes.d.ts +19 -0
- package/dist/context/error-codes.js +17 -0
- package/dist/context/errors.cjs +146 -0
- package/dist/context/errors.d.cts +36 -0
- package/dist/context/errors.d.ts +36 -0
- package/dist/context/errors.js +122 -0
- package/dist/context/index.cjs +24 -0
- package/dist/context/index.d.cts +19 -0
- package/dist/context/index.d.ts +19 -0
- package/dist/context/index.js +2 -0
- package/dist/context/manager.cjs +516 -0
- package/dist/context/manager.d.cts +254 -0
- package/dist/context/manager.d.ts +254 -0
- package/dist/context/manager.js +492 -0
- package/dist/context/types.cjs +16 -0
- package/dist/context/types.d.cts +113 -0
- package/dist/context/types.d.ts +113 -0
- package/dist/context/types.js +0 -0
- package/dist/context/utils.cjs +406 -0
- package/dist/context/utils.d.cts +79 -0
- package/dist/context/utils.d.ts +79 -0
- package/dist/context/utils.js +374 -0
- package/dist/errors/DextoBaseError.cjs +36 -0
- package/dist/errors/DextoBaseError.d.cts +15 -0
- package/dist/errors/DextoBaseError.d.ts +15 -0
- package/dist/errors/DextoBaseError.js +12 -0
- package/dist/errors/DextoRuntimeError.cjs +50 -0
- package/dist/errors/DextoRuntimeError.d.cts +37 -0
- package/dist/errors/DextoRuntimeError.d.ts +37 -0
- package/dist/errors/DextoRuntimeError.js +26 -0
- package/dist/errors/DextoValidationError.cjs +118 -0
- package/dist/errors/DextoValidationError.d.cts +65 -0
- package/dist/errors/DextoValidationError.d.ts +65 -0
- package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
- package/dist/errors/index.cjs +42 -0
- package/dist/errors/index.d.cts +18 -0
- package/dist/errors/index.d.ts +18 -0
- package/dist/errors/index.js +13 -0
- package/dist/errors/result-bridge.cjs +38 -0
- package/dist/errors/result-bridge.d.cts +39 -0
- package/dist/errors/result-bridge.d.ts +39 -0
- package/dist/errors/result-bridge.js +14 -0
- package/dist/errors/types.cjs +54 -0
- package/dist/errors/types.d.cts +62 -0
- package/dist/errors/types.d.ts +62 -0
- package/dist/errors/types.js +29 -0
- package/dist/events/index.cjs +169 -0
- package/dist/events/index.d.cts +272 -0
- package/dist/events/index.d.ts +272 -0
- package/dist/events/index.js +136 -0
- package/dist/index.browser.cjs +9 -220
- package/dist/index.browser.d.cts +53 -379
- package/dist/index.browser.d.ts +53 -379
- package/dist/index.browser.js +4 -210
- package/dist/index.cjs +31 -15266
- package/dist/index.d.cts +89 -6842
- package/dist/index.d.ts +89 -6842
- package/dist/index.js +14 -9914
- package/dist/llm/error-codes.cjs +48 -0
- package/dist/llm/error-codes.d.cts +26 -0
- package/dist/llm/error-codes.d.ts +26 -0
- package/dist/llm/error-codes.js +24 -0
- package/dist/llm/errors.cjs +108 -0
- package/dist/llm/errors.d.cts +58 -0
- package/dist/llm/errors.d.ts +58 -0
- package/dist/llm/errors.js +84 -0
- package/dist/llm/formatters/anthropic.cjs +246 -0
- package/dist/llm/formatters/anthropic.d.cts +45 -0
- package/dist/llm/formatters/anthropic.d.ts +45 -0
- package/dist/llm/formatters/anthropic.js +227 -0
- package/dist/llm/formatters/factory.cjs +51 -0
- package/dist/llm/formatters/factory.d.cts +12 -0
- package/dist/llm/formatters/factory.d.ts +12 -0
- package/dist/llm/formatters/factory.js +27 -0
- package/dist/llm/formatters/openai.cjs +167 -0
- package/dist/llm/formatters/openai.d.cts +38 -0
- package/dist/llm/formatters/openai.d.ts +38 -0
- package/dist/llm/formatters/openai.js +147 -0
- package/dist/llm/formatters/types.cjs +16 -0
- package/dist/llm/formatters/types.d.cts +43 -0
- package/dist/llm/formatters/types.d.ts +43 -0
- package/dist/llm/formatters/types.js +0 -0
- package/dist/llm/formatters/vercel.cjs +411 -0
- package/dist/llm/formatters/vercel.d.cts +48 -0
- package/dist/llm/formatters/vercel.d.ts +48 -0
- package/dist/llm/formatters/vercel.js +387 -0
- package/dist/llm/index.cjs +34 -0
- package/dist/llm/index.d.cts +39 -0
- package/dist/llm/index.d.ts +39 -0
- package/dist/llm/index.js +7 -0
- package/dist/llm/registry.cjs +881 -0
- package/dist/llm/registry.d.cts +176 -0
- package/dist/llm/registry.d.ts +176 -0
- package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
- package/dist/llm/resolver.cjs +154 -0
- package/dist/llm/resolver.d.cts +34 -0
- package/dist/llm/resolver.d.ts +34 -0
- package/dist/llm/resolver.js +136 -0
- package/dist/llm/schemas.cjs +188 -0
- package/dist/llm/schemas.d.cts +111 -0
- package/dist/llm/schemas.d.ts +111 -0
- package/dist/llm/schemas.js +172 -0
- package/dist/llm/services/anthropic.cjs +398 -0
- package/dist/llm/services/anthropic.d.cts +65 -0
- package/dist/llm/services/anthropic.d.ts +65 -0
- package/dist/llm/services/anthropic.js +374 -0
- package/dist/llm/services/factory.cjs +164 -0
- package/dist/llm/services/factory.d.cts +39 -0
- package/dist/llm/services/factory.d.ts +39 -0
- package/dist/llm/services/factory.js +130 -0
- package/dist/llm/services/index.cjs +22 -0
- package/dist/llm/services/index.d.cts +21 -0
- package/dist/llm/services/index.d.ts +21 -0
- package/dist/llm/services/index.js +1 -0
- package/dist/llm/services/openai.cjs +470 -0
- package/dist/llm/services/openai.d.cts +65 -0
- package/dist/llm/services/openai.d.ts +65 -0
- package/dist/llm/services/openai.js +446 -0
- package/dist/llm/services/test-utils.integration.cjs +169 -0
- package/dist/llm/services/test-utils.integration.d.cts +83 -0
- package/dist/llm/services/test-utils.integration.d.ts +83 -0
- package/dist/llm/services/test-utils.integration.js +142 -0
- package/dist/llm/services/types.cjs +16 -0
- package/dist/llm/services/types.d.cts +56 -0
- package/dist/llm/services/types.d.ts +56 -0
- package/dist/llm/services/types.js +0 -0
- package/dist/llm/services/vercel.cjs +525 -0
- package/dist/llm/services/vercel.d.cts +72 -0
- package/dist/llm/services/vercel.d.ts +72 -0
- package/dist/llm/services/vercel.js +506 -0
- package/dist/llm/tokenizer/anthropic.cjs +43 -0
- package/dist/llm/tokenizer/anthropic.d.cts +21 -0
- package/dist/llm/tokenizer/anthropic.d.ts +21 -0
- package/dist/llm/tokenizer/anthropic.js +19 -0
- package/dist/llm/tokenizer/default.cjs +41 -0
- package/dist/llm/tokenizer/default.d.cts +16 -0
- package/dist/llm/tokenizer/default.d.ts +16 -0
- package/dist/llm/tokenizer/default.js +17 -0
- package/dist/llm/tokenizer/factory.cjs +44 -0
- package/dist/llm/tokenizer/factory.d.cts +12 -0
- package/dist/llm/tokenizer/factory.d.ts +12 -0
- package/dist/llm/tokenizer/factory.js +20 -0
- package/dist/llm/tokenizer/google.cjs +52 -0
- package/dist/llm/tokenizer/google.d.cts +31 -0
- package/dist/llm/tokenizer/google.d.ts +31 -0
- package/dist/llm/tokenizer/google.js +28 -0
- package/dist/llm/tokenizer/openai.cjs +108 -0
- package/dist/llm/tokenizer/openai.d.cts +32 -0
- package/dist/llm/tokenizer/openai.d.ts +32 -0
- package/dist/llm/tokenizer/openai.js +83 -0
- package/dist/llm/tokenizer/types.cjs +33 -0
- package/dist/llm/tokenizer/types.d.cts +19 -0
- package/dist/llm/tokenizer/types.d.ts +19 -0
- package/dist/llm/tokenizer/types.js +9 -0
- package/dist/llm/types.cjs +42 -0
- package/dist/llm/types.d.cts +29 -0
- package/dist/llm/types.d.ts +29 -0
- package/dist/llm/types.js +16 -0
- package/dist/llm/validation.cjs +162 -0
- package/dist/llm/validation.d.cts +60 -0
- package/dist/llm/validation.d.ts +60 -0
- package/dist/llm/validation.js +138 -0
- package/dist/logger/browser.cjs +86 -0
- package/dist/logger/browser.d.cts +29 -0
- package/dist/logger/browser.d.ts +29 -0
- package/dist/logger/browser.js +61 -0
- package/dist/logger/index.cjs +22 -0
- package/dist/logger/index.d.cts +1 -0
- package/dist/logger/index.d.ts +1 -0
- package/dist/logger/index.js +1 -0
- package/dist/logger/logger.cjs +362 -0
- package/dist/logger/logger.d.cts +52 -0
- package/dist/logger/logger.d.ts +52 -0
- package/dist/logger/logger.js +327 -0
- package/dist/mcp/error-codes.cjs +38 -0
- package/dist/mcp/error-codes.d.cts +16 -0
- package/dist/mcp/error-codes.d.ts +16 -0
- package/dist/mcp/error-codes.js +14 -0
- package/dist/mcp/errors.cjs +131 -0
- package/dist/mcp/errors.d.cts +72 -0
- package/dist/mcp/errors.d.ts +72 -0
- package/dist/mcp/errors.js +107 -0
- package/dist/mcp/index.cjs +34 -0
- package/dist/mcp/index.d.cts +26 -0
- package/dist/mcp/index.d.ts +26 -0
- package/dist/mcp/index.js +7 -0
- package/dist/mcp/manager.cjs +473 -0
- package/dist/mcp/manager.d.cts +163 -0
- package/dist/mcp/manager.d.ts +163 -0
- package/dist/mcp/manager.js +449 -0
- package/dist/mcp/mcp-client.cjs +420 -0
- package/dist/mcp/mcp-client.d.cts +108 -0
- package/dist/mcp/mcp-client.d.ts +108 -0
- package/dist/mcp/mcp-client.js +396 -0
- package/dist/mcp/resolver.cjs +78 -0
- package/dist/mcp/resolver.d.cts +22 -0
- package/dist/mcp/resolver.d.ts +22 -0
- package/dist/mcp/resolver.js +56 -0
- package/dist/mcp/schemas.cjs +82 -0
- package/dist/mcp/schemas.d.cts +266 -0
- package/dist/mcp/schemas.d.ts +266 -0
- package/dist/mcp/schemas.js +54 -0
- package/dist/mcp/types.cjs +16 -0
- package/dist/mcp/types.d.cts +21 -0
- package/dist/mcp/types.d.ts +21 -0
- package/dist/mcp/types.js +0 -0
- package/dist/preferences/constants.cjs +28 -0
- package/dist/preferences/constants.d.cts +3 -0
- package/dist/preferences/constants.d.ts +3 -0
- package/dist/preferences/constants.js +4 -0
- package/dist/preferences/error-codes.cjs +35 -0
- package/dist/preferences/error-codes.d.cts +9 -0
- package/dist/preferences/error-codes.d.ts +9 -0
- package/dist/preferences/error-codes.js +11 -0
- package/dist/preferences/errors.cjs +75 -0
- package/dist/preferences/errors.d.cts +33 -0
- package/dist/preferences/errors.d.ts +33 -0
- package/dist/preferences/errors.js +50 -0
- package/dist/preferences/index.cjs +55 -0
- package/dist/preferences/index.d.cts +21 -0
- package/dist/preferences/index.d.ts +21 -0
- package/dist/preferences/index.js +31 -0
- package/dist/preferences/loader.cjs +136 -0
- package/dist/preferences/loader.d.cts +45 -0
- package/dist/preferences/loader.d.ts +45 -0
- package/dist/preferences/loader.js +107 -0
- package/dist/preferences/schemas.cjs +74 -0
- package/dist/preferences/schemas.d.cts +104 -0
- package/dist/preferences/schemas.d.ts +104 -0
- package/dist/preferences/schemas.js +47 -0
- package/dist/search/index.cjs +28 -0
- package/dist/search/index.d.cts +5 -0
- package/dist/search/index.d.ts +5 -0
- package/dist/search/index.js +4 -0
- package/dist/search/search-service.cjs +245 -0
- package/dist/search/search-service.d.cts +47 -0
- package/dist/search/search-service.d.ts +47 -0
- package/dist/search/search-service.js +221 -0
- package/dist/search/types.cjs +16 -0
- package/dist/search/types.d.cts +78 -0
- package/dist/search/types.d.ts +78 -0
- package/dist/search/types.js +0 -0
- package/dist/session/chat-session.cjs +354 -0
- package/dist/session/chat-session.d.cts +284 -0
- package/dist/session/chat-session.d.ts +284 -0
- package/dist/session/chat-session.js +333 -0
- package/dist/session/error-codes.cjs +35 -0
- package/dist/session/error-codes.d.cts +13 -0
- package/dist/session/error-codes.d.ts +13 -0
- package/dist/session/error-codes.js +11 -0
- package/dist/session/errors.cjs +93 -0
- package/dist/session/errors.d.cts +58 -0
- package/dist/session/errors.d.ts +58 -0
- package/dist/session/errors.js +69 -0
- package/dist/session/history/database.cjs +95 -0
- package/dist/session/history/database.d.cts +28 -0
- package/dist/session/history/database.d.ts +28 -0
- package/dist/session/history/database.js +71 -0
- package/dist/session/history/factory.cjs +31 -0
- package/dist/session/history/factory.d.cts +11 -0
- package/dist/session/history/factory.d.ts +11 -0
- package/dist/session/history/factory.js +7 -0
- package/dist/session/history/types.cjs +16 -0
- package/dist/session/history/types.d.cts +17 -0
- package/dist/session/history/types.d.ts +17 -0
- package/dist/session/history/types.js +0 -0
- package/dist/session/index.cjs +37 -0
- package/dist/session/index.d.cts +53 -0
- package/dist/session/index.d.ts +53 -0
- package/dist/session/index.js +10 -0
- package/dist/session/schemas.cjs +32 -0
- package/dist/session/schemas.d.cts +16 -0
- package/dist/session/schemas.d.ts +16 -0
- package/dist/session/schemas.js +8 -0
- package/dist/session/session-manager.cjs +481 -0
- package/dist/session/session-manager.d.cts +219 -0
- package/dist/session/session-manager.d.ts +219 -0
- package/dist/session/session-manager.js +457 -0
- package/dist/storage/backend/cache-backend.cjs +16 -0
- package/dist/storage/backend/cache-backend.d.cts +15 -0
- package/dist/storage/backend/cache-backend.d.ts +15 -0
- package/dist/storage/backend/cache-backend.js +0 -0
- package/dist/storage/backend/database-backend.cjs +16 -0
- package/dist/storage/backend/database-backend.d.cts +19 -0
- package/dist/storage/backend/database-backend.d.ts +19 -0
- package/dist/storage/backend/database-backend.js +0 -0
- package/dist/storage/backend/memory-backend.cjs +140 -0
- package/dist/storage/backend/memory-backend.d.cts +34 -0
- package/dist/storage/backend/memory-backend.d.ts +34 -0
- package/dist/storage/backend/memory-backend.js +116 -0
- package/dist/storage/backend/postgres-backend.cjs +231 -0
- package/dist/storage/backend/postgres-backend.d.cts +37 -0
- package/dist/storage/backend/postgres-backend.d.ts +37 -0
- package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
- package/dist/storage/backend/redis-backend.cjs +184 -0
- package/dist/storage/backend/redis-backend.d.cts +36 -0
- package/dist/storage/backend/redis-backend.d.ts +36 -0
- package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
- package/dist/storage/backend/sqlite-backend.cjs +271 -0
- package/dist/storage/backend/sqlite-backend.d.cts +35 -0
- package/dist/storage/backend/sqlite-backend.d.ts +35 -0
- package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
- package/dist/storage/backend/types.cjs +16 -0
- package/dist/storage/backend/types.d.cts +14 -0
- package/dist/storage/backend/types.d.ts +14 -0
- package/dist/storage/backend/types.js +0 -0
- package/dist/storage/error-codes.cjs +36 -0
- package/dist/storage/error-codes.d.cts +14 -0
- package/dist/storage/error-codes.d.ts +14 -0
- package/dist/storage/error-codes.js +12 -0
- package/dist/storage/errors.cjs +104 -0
- package/dist/storage/errors.d.cts +63 -0
- package/dist/storage/errors.d.ts +63 -0
- package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
- package/dist/storage/index.cjs +33 -0
- package/dist/storage/index.d.cts +7 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/schemas.cjs +113 -0
- package/dist/storage/schemas.d.cts +856 -0
- package/dist/storage/schemas.d.ts +856 -0
- package/dist/storage/schemas.js +89 -0
- package/dist/storage/storage-manager.cjs +208 -0
- package/dist/storage/storage-manager.d.cts +52 -0
- package/dist/storage/storage-manager.d.ts +52 -0
- package/dist/storage/storage-manager.js +173 -0
- package/dist/storage/types.cjs +16 -0
- package/dist/storage/types.d.cts +5 -0
- package/dist/storage/types.d.ts +5 -0
- package/dist/storage/types.js +0 -0
- package/dist/systemPrompt/contributors.cjs +146 -0
- package/dist/systemPrompt/contributors.d.cts +44 -0
- package/dist/systemPrompt/contributors.d.ts +44 -0
- package/dist/systemPrompt/contributors.js +120 -0
- package/dist/systemPrompt/error-codes.cjs +35 -0
- package/dist/systemPrompt/error-codes.d.cts +13 -0
- package/dist/systemPrompt/error-codes.d.ts +13 -0
- package/dist/systemPrompt/error-codes.js +11 -0
- package/dist/systemPrompt/errors.cjs +93 -0
- package/dist/systemPrompt/errors.d.cts +55 -0
- package/dist/systemPrompt/errors.d.ts +55 -0
- package/dist/systemPrompt/errors.js +69 -0
- package/dist/systemPrompt/in-built-prompts.cjs +68 -0
- package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
- package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
- package/dist/systemPrompt/in-built-prompts.js +42 -0
- package/dist/systemPrompt/index.cjs +30 -0
- package/dist/systemPrompt/index.d.cts +14 -0
- package/dist/systemPrompt/index.d.ts +14 -0
- package/dist/systemPrompt/index.js +5 -0
- package/dist/systemPrompt/manager.cjs +93 -0
- package/dist/systemPrompt/manager.d.cts +31 -0
- package/dist/systemPrompt/manager.d.ts +31 -0
- package/dist/systemPrompt/manager.js +69 -0
- package/dist/systemPrompt/registry.cjs +51 -0
- package/dist/systemPrompt/registry.d.cts +20 -0
- package/dist/systemPrompt/registry.d.ts +20 -0
- package/dist/systemPrompt/registry.js +15 -0
- package/dist/systemPrompt/schemas.cjs +107 -0
- package/dist/systemPrompt/schemas.d.cts +401 -0
- package/dist/systemPrompt/schemas.d.ts +401 -0
- package/dist/systemPrompt/schemas.js +81 -0
- package/dist/systemPrompt/types.cjs +16 -0
- package/dist/systemPrompt/types.d.cts +19 -0
- package/dist/systemPrompt/types.d.ts +19 -0
- package/dist/systemPrompt/types.js +0 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
- package/dist/tools/confirmation/factory.cjs +52 -0
- package/dist/tools/confirmation/factory.d.cts +37 -0
- package/dist/tools/confirmation/factory.d.ts +37 -0
- package/dist/tools/confirmation/factory.js +28 -0
- package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
- package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
- package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
- package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
- package/dist/tools/confirmation/types.cjs +16 -0
- package/dist/tools/confirmation/types.d.cts +46 -0
- package/dist/tools/confirmation/types.d.ts +46 -0
- package/dist/tools/confirmation/types.js +0 -0
- package/dist/tools/error-codes.cjs +40 -0
- package/dist/tools/error-codes.d.cts +18 -0
- package/dist/tools/error-codes.d.ts +18 -0
- package/dist/tools/error-codes.js +16 -0
- package/dist/tools/errors.cjs +164 -0
- package/dist/tools/errors.d.cts +97 -0
- package/dist/tools/errors.d.ts +97 -0
- package/dist/tools/errors.js +140 -0
- package/dist/tools/index.cjs +37 -0
- package/dist/tools/index.d.cts +19 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
- package/dist/tools/internal-tools/index.cjs +24 -0
- package/dist/tools/internal-tools/index.d.cts +13 -0
- package/dist/tools/internal-tools/index.d.ts +13 -0
- package/dist/tools/internal-tools/index.js +2 -0
- package/dist/tools/internal-tools/provider.cjs +159 -0
- package/dist/tools/internal-tools/provider.d.cts +66 -0
- package/dist/tools/internal-tools/provider.d.ts +66 -0
- package/dist/tools/internal-tools/provider.js +135 -0
- package/dist/tools/internal-tools/registry.cjs +43 -0
- package/dist/tools/internal-tools/registry.d.cts +45 -0
- package/dist/tools/internal-tools/registry.d.ts +45 -0
- package/dist/tools/internal-tools/registry.js +17 -0
- package/dist/tools/schemas.cjs +45 -0
- package/dist/tools/schemas.d.cts +21 -0
- package/dist/tools/schemas.d.ts +21 -0
- package/dist/tools/schemas.js +20 -0
- package/dist/tools/tool-manager.cjs +275 -0
- package/dist/tools/tool-manager.d.cts +106 -0
- package/dist/tools/tool-manager.d.ts +106 -0
- package/dist/tools/tool-manager.js +251 -0
- package/dist/tools/types.cjs +16 -0
- package/dist/tools/types.d.cts +66 -0
- package/dist/tools/types.d.ts +66 -0
- package/dist/tools/types.js +0 -0
- package/dist/utils/api-key-resolver.cjs +62 -0
- package/dist/utils/api-key-resolver.d.cts +23 -0
- package/dist/utils/api-key-resolver.d.ts +23 -0
- package/dist/utils/api-key-resolver.js +36 -0
- package/dist/utils/api-key-store.cjs +56 -0
- package/dist/utils/api-key-store.d.cts +26 -0
- package/dist/utils/api-key-store.d.ts +26 -0
- package/dist/utils/api-key-store.js +30 -0
- package/dist/utils/env.cjs +154 -0
- package/dist/utils/env.d.cts +29 -0
- package/dist/utils/env.d.ts +29 -0
- package/dist/utils/env.js +118 -0
- package/dist/utils/error-conversion.cjs +53 -0
- package/dist/utils/error-conversion.d.cts +13 -0
- package/dist/utils/error-conversion.d.ts +13 -0
- package/dist/utils/error-conversion.js +29 -0
- package/dist/utils/execution-context.cjs +85 -0
- package/dist/utils/execution-context.d.cts +21 -0
- package/dist/utils/execution-context.d.ts +21 -0
- package/dist/utils/execution-context.js +49 -0
- package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
- package/dist/utils/fs-walk.d.cts +9 -0
- package/dist/utils/fs-walk.d.ts +9 -0
- package/dist/utils/fs-walk.js +18 -0
- package/dist/utils/index.cjs +44 -0
- package/dist/utils/index.d.cts +63 -0
- package/dist/utils/index.d.ts +63 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/path.cjs +197 -0
- package/dist/utils/path.d.cts +54 -0
- package/dist/utils/path.d.ts +54 -0
- package/dist/utils/path.js +159 -0
- package/dist/utils/port-utils.cjs +37 -0
- package/dist/utils/port-utils.d.cts +11 -0
- package/dist/utils/port-utils.d.ts +11 -0
- package/dist/utils/port-utils.js +13 -0
- package/dist/utils/port-utils.spec.cjs +26 -0
- package/dist/utils/port-utils.spec.d.cts +2 -0
- package/dist/utils/port-utils.spec.d.ts +2 -0
- package/dist/utils/port-utils.spec.js +25 -0
- package/dist/utils/redactor.cjs +105 -0
- package/dist/utils/redactor.d.cts +18 -0
- package/dist/utils/redactor.d.ts +18 -0
- package/dist/utils/redactor.js +81 -0
- package/dist/utils/result.cjs +115 -0
- package/dist/utils/result.d.cts +180 -0
- package/dist/utils/result.d.ts +180 -0
- package/dist/utils/result.js +82 -0
- package/dist/utils/safe-stringify.cjs +57 -0
- package/dist/utils/safe-stringify.d.cts +7 -0
- package/dist/utils/safe-stringify.d.ts +7 -0
- package/dist/utils/safe-stringify.js +33 -0
- package/dist/utils/schema.cjs +42 -0
- package/dist/utils/schema.d.cts +6 -0
- package/dist/utils/schema.d.ts +6 -0
- package/dist/utils/schema.js +18 -0
- package/dist/utils/service-initializer.cjs +119 -0
- package/dist/utils/service-initializer.d.cts +63 -0
- package/dist/utils/service-initializer.d.ts +63 -0
- package/dist/utils/service-initializer.js +95 -0
- package/dist/utils/user-info.cjs +30 -0
- package/dist/utils/user-info.d.cts +3 -0
- package/dist/utils/user-info.d.ts +3 -0
- package/dist/utils/user-info.js +6 -0
- package/dist/utils/zod-schema-converter.cjs +112 -0
- package/dist/utils/zod-schema-converter.d.cts +13 -0
- package/dist/utils/zod-schema-converter.d.ts +13 -0
- package/dist/utils/zod-schema-converter.js +87 -0
- package/package.json +2 -2
- package/dist/chunk-D62MHQBE.js +0 -2203
- package/dist/chunk-FCJVTIBV.js +0 -535
- package/dist/chunk-TPERKLLN.js +0 -75
- package/dist/errors-ZZ4Z3FKB.js +0 -10
- package/dist/loader-HBNEYPQZ.js +0 -20
- package/dist/path-TP7WBDED.js +0 -21
- package/dist/registry-Z4DFXODW.js +0 -14
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { StorageErrorCode } from "./error-codes.js";
|
|
3
|
+
import { ErrorScope, ErrorType } from "../errors/types.js";
|
|
4
|
+
const BaseBackendSchema = z.object({
|
|
5
|
+
maxConnections: z.number().int().positive().optional().describe("Maximum connections"),
|
|
6
|
+
idleTimeoutMillis: z.number().int().positive().optional().describe("Idle timeout in milliseconds"),
|
|
7
|
+
connectionTimeoutMillis: z.number().int().positive().optional().describe("Connection timeout in milliseconds"),
|
|
8
|
+
options: z.record(z.any()).optional().describe("Backend-specific options")
|
|
9
|
+
});
|
|
10
|
+
const InMemoryBackendSchema = BaseBackendSchema.extend({
|
|
11
|
+
type: z.literal("in-memory")
|
|
12
|
+
// In-memory backend doesn't need connection options, but inherits pool options for consistency
|
|
13
|
+
}).strict();
|
|
14
|
+
const RedisBackendSchema = BaseBackendSchema.extend({
|
|
15
|
+
type: z.literal("redis"),
|
|
16
|
+
url: z.string().optional().describe("Redis connection URL (redis://...)"),
|
|
17
|
+
host: z.string().optional().describe("Redis host"),
|
|
18
|
+
port: z.number().int().positive().optional().describe("Redis port"),
|
|
19
|
+
password: z.string().optional().describe("Redis password"),
|
|
20
|
+
database: z.number().int().nonnegative().optional().describe("Redis database number")
|
|
21
|
+
}).strict();
|
|
22
|
+
const SqliteBackendSchema = BaseBackendSchema.extend({
|
|
23
|
+
type: z.literal("sqlite"),
|
|
24
|
+
path: z.string().optional().describe(
|
|
25
|
+
"SQLite database file path (optional, will auto-detect using path resolver if not provided)"
|
|
26
|
+
),
|
|
27
|
+
database: z.string().optional().describe("Database filename (default: dexto.db)")
|
|
28
|
+
}).strict();
|
|
29
|
+
const PostgresBackendSchema = BaseBackendSchema.extend({
|
|
30
|
+
type: z.literal("postgres"),
|
|
31
|
+
url: z.string().optional().describe("PostgreSQL connection URL (postgresql://...)"),
|
|
32
|
+
connectionString: z.string().optional().describe("PostgreSQL connection string"),
|
|
33
|
+
host: z.string().optional().describe("PostgreSQL host"),
|
|
34
|
+
port: z.number().int().positive().optional().describe("PostgreSQL port"),
|
|
35
|
+
database: z.string().optional().describe("PostgreSQL database name"),
|
|
36
|
+
password: z.string().optional().describe("PostgreSQL password")
|
|
37
|
+
}).strict();
|
|
38
|
+
const BackendConfigSchema = z.discriminatedUnion(
|
|
39
|
+
"type",
|
|
40
|
+
[InMemoryBackendSchema, RedisBackendSchema, SqliteBackendSchema, PostgresBackendSchema],
|
|
41
|
+
{
|
|
42
|
+
errorMap: (issue, ctx) => {
|
|
43
|
+
if (issue.code === z.ZodIssueCode.invalid_union_discriminator) {
|
|
44
|
+
return {
|
|
45
|
+
message: `Invalid backend type. Expected 'in-memory', 'redis', 'sqlite', or 'postgres'.`
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return { message: ctx.defaultError };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
).describe("Backend configuration for storage system").superRefine((data, ctx) => {
|
|
52
|
+
if (data.type === "redis") {
|
|
53
|
+
if (!data.url && !data.host) {
|
|
54
|
+
ctx.addIssue({
|
|
55
|
+
code: z.ZodIssueCode.custom,
|
|
56
|
+
message: "Redis backend requires either 'url' or 'host' to be specified",
|
|
57
|
+
path: ["url"],
|
|
58
|
+
params: {
|
|
59
|
+
code: StorageErrorCode.CONNECTION_CONFIG_MISSING,
|
|
60
|
+
scope: ErrorScope.STORAGE,
|
|
61
|
+
type: ErrorType.USER
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (data.type === "postgres") {
|
|
67
|
+
if (!data.url && !data.connectionString && !data.host) {
|
|
68
|
+
ctx.addIssue({
|
|
69
|
+
code: z.ZodIssueCode.custom,
|
|
70
|
+
message: "PostgreSQL backend requires one of 'url', 'connectionString', or 'host' to be specified",
|
|
71
|
+
path: ["url"],
|
|
72
|
+
params: {
|
|
73
|
+
code: StorageErrorCode.CONNECTION_CONFIG_MISSING,
|
|
74
|
+
scope: ErrorScope.STORAGE,
|
|
75
|
+
type: ErrorType.USER
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
const StorageSchema = z.object({
|
|
82
|
+
cache: BackendConfigSchema.describe("Cache backend configuration (fast, ephemeral)"),
|
|
83
|
+
database: BackendConfigSchema.describe(
|
|
84
|
+
"Database backend configuration (persistent, reliable)"
|
|
85
|
+
)
|
|
86
|
+
}).strict().describe("Storage configuration with cache and database backends").brand();
|
|
87
|
+
export {
|
|
88
|
+
StorageSchema
|
|
89
|
+
};
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var storage_manager_exports = {};
|
|
30
|
+
__export(storage_manager_exports, {
|
|
31
|
+
StorageManager: () => StorageManager,
|
|
32
|
+
createStorageBackends: () => createStorageBackends
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(storage_manager_exports);
|
|
35
|
+
var import_memory_backend = require("./backend/memory-backend.js");
|
|
36
|
+
var import_logger = require("../logger/index.js");
|
|
37
|
+
let SQLiteBackend;
|
|
38
|
+
let RedisBackend;
|
|
39
|
+
let PostgresBackend;
|
|
40
|
+
const HEALTH_CHECK_KEY = "storage_manager_health_check";
|
|
41
|
+
class StorageManager {
|
|
42
|
+
config;
|
|
43
|
+
cache;
|
|
44
|
+
database;
|
|
45
|
+
connected = false;
|
|
46
|
+
constructor(config) {
|
|
47
|
+
this.config = config;
|
|
48
|
+
}
|
|
49
|
+
async connect() {
|
|
50
|
+
if (this.connected) {
|
|
51
|
+
return {
|
|
52
|
+
cache: this.cache,
|
|
53
|
+
database: this.database
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
this.cache = await this.createCacheBackend();
|
|
57
|
+
await this.cache.connect();
|
|
58
|
+
this.database = await this.createDatabaseBackend();
|
|
59
|
+
await this.database.connect();
|
|
60
|
+
this.connected = true;
|
|
61
|
+
return {
|
|
62
|
+
cache: this.cache,
|
|
63
|
+
database: this.database
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async disconnect() {
|
|
67
|
+
if (this.cache) {
|
|
68
|
+
await this.cache.disconnect();
|
|
69
|
+
delete this.cache;
|
|
70
|
+
}
|
|
71
|
+
if (this.database) {
|
|
72
|
+
await this.database.disconnect();
|
|
73
|
+
delete this.database;
|
|
74
|
+
}
|
|
75
|
+
this.connected = false;
|
|
76
|
+
}
|
|
77
|
+
isConnected() {
|
|
78
|
+
return this.connected && this.cache?.isConnected() === true && this.database?.isConnected() === true;
|
|
79
|
+
}
|
|
80
|
+
getBackends() {
|
|
81
|
+
if (!this.connected) return null;
|
|
82
|
+
return {
|
|
83
|
+
cache: this.cache,
|
|
84
|
+
database: this.database
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
async createCacheBackend() {
|
|
88
|
+
const cacheConfig = this.config.cache;
|
|
89
|
+
switch (cacheConfig.type) {
|
|
90
|
+
case "redis":
|
|
91
|
+
return this.createRedisBackend(cacheConfig);
|
|
92
|
+
case "in-memory":
|
|
93
|
+
default:
|
|
94
|
+
import_logger.logger.info("Using in-memory cache backend");
|
|
95
|
+
return new import_memory_backend.MemoryBackend();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async createDatabaseBackend() {
|
|
99
|
+
const dbConfig = this.config.database;
|
|
100
|
+
switch (dbConfig.type) {
|
|
101
|
+
case "postgres":
|
|
102
|
+
return this.createPostgresBackend(dbConfig);
|
|
103
|
+
case "sqlite":
|
|
104
|
+
return this.createSQLiteBackend(dbConfig);
|
|
105
|
+
case "in-memory":
|
|
106
|
+
default:
|
|
107
|
+
import_logger.logger.info("Using in-memory database backend");
|
|
108
|
+
return new import_memory_backend.MemoryBackend();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async createRedisBackend(config) {
|
|
112
|
+
try {
|
|
113
|
+
if (!RedisBackend) {
|
|
114
|
+
const module2 = await import("./backend/redis-backend.js");
|
|
115
|
+
RedisBackend = module2.RedisBackend;
|
|
116
|
+
}
|
|
117
|
+
import_logger.logger.info(`Connecting to Redis at ${config.host}:${config.port}`);
|
|
118
|
+
return new RedisBackend(config);
|
|
119
|
+
} catch (error) {
|
|
120
|
+
import_logger.logger.warn(`Redis not available, falling back to in-memory cache: ${error}`);
|
|
121
|
+
return new import_memory_backend.MemoryBackend();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async createPostgresBackend(config) {
|
|
125
|
+
try {
|
|
126
|
+
if (!PostgresBackend) {
|
|
127
|
+
const module2 = await import("./backend/postgres-backend.js");
|
|
128
|
+
PostgresBackend = module2.PostgresBackend;
|
|
129
|
+
}
|
|
130
|
+
import_logger.logger.info("Connecting to PostgreSQL database");
|
|
131
|
+
return new PostgresBackend(config);
|
|
132
|
+
} catch (error) {
|
|
133
|
+
import_logger.logger.warn(`PostgreSQL not available, falling back to in-memory database: ${error}`);
|
|
134
|
+
return new import_memory_backend.MemoryBackend();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async createSQLiteBackend(config) {
|
|
138
|
+
try {
|
|
139
|
+
if (!SQLiteBackend) {
|
|
140
|
+
const module2 = await import("./backend/sqlite-backend.js");
|
|
141
|
+
SQLiteBackend = module2.SQLiteBackend;
|
|
142
|
+
}
|
|
143
|
+
import_logger.logger.info(`Using SQLite database at ${config.path}`);
|
|
144
|
+
return new SQLiteBackend(config);
|
|
145
|
+
} catch (error) {
|
|
146
|
+
import_logger.logger.error(
|
|
147
|
+
`SQLite backend failed to load: ${error instanceof Error ? error.message : String(error)}`
|
|
148
|
+
);
|
|
149
|
+
import_logger.logger.error(`Full error details: ${JSON.stringify(error)}`);
|
|
150
|
+
import_logger.logger.warn("Falling back to in-memory database backend");
|
|
151
|
+
return new import_memory_backend.MemoryBackend();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Utility methods
|
|
155
|
+
async getInfo() {
|
|
156
|
+
return {
|
|
157
|
+
cache: {
|
|
158
|
+
type: this.cache?.getBackendType() || "none",
|
|
159
|
+
connected: this.cache?.isConnected() || false
|
|
160
|
+
},
|
|
161
|
+
database: {
|
|
162
|
+
type: this.database?.getBackendType() || "none",
|
|
163
|
+
connected: this.database?.isConnected() || false
|
|
164
|
+
},
|
|
165
|
+
connected: this.connected
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// Health check
|
|
169
|
+
async healthCheck() {
|
|
170
|
+
let cacheHealthy = false;
|
|
171
|
+
let databaseHealthy = false;
|
|
172
|
+
try {
|
|
173
|
+
if (this.cache?.isConnected()) {
|
|
174
|
+
await this.cache.set(HEALTH_CHECK_KEY, "ok", 10);
|
|
175
|
+
const result = await this.cache.get(HEALTH_CHECK_KEY);
|
|
176
|
+
cacheHealthy = result === "ok";
|
|
177
|
+
await this.cache.delete(HEALTH_CHECK_KEY);
|
|
178
|
+
}
|
|
179
|
+
} catch (error) {
|
|
180
|
+
import_logger.logger.warn(`Cache health check failed: ${error}`);
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
if (this.database?.isConnected()) {
|
|
184
|
+
await this.database.set(HEALTH_CHECK_KEY, "ok");
|
|
185
|
+
const result = await this.database.get(HEALTH_CHECK_KEY);
|
|
186
|
+
databaseHealthy = result === "ok";
|
|
187
|
+
await this.database.delete(HEALTH_CHECK_KEY);
|
|
188
|
+
}
|
|
189
|
+
} catch (error) {
|
|
190
|
+
import_logger.logger.warn(`Database health check failed: ${error}`);
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
cache: cacheHealthy,
|
|
194
|
+
database: databaseHealthy,
|
|
195
|
+
overall: cacheHealthy && databaseHealthy
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
async function createStorageBackends(config) {
|
|
200
|
+
const manager = new StorageManager(config);
|
|
201
|
+
const backends = await manager.connect();
|
|
202
|
+
return { manager, backends };
|
|
203
|
+
}
|
|
204
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
205
|
+
0 && (module.exports = {
|
|
206
|
+
StorageManager,
|
|
207
|
+
createStorageBackends
|
|
208
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { StorageBackends } from './backend/types.cjs';
|
|
2
|
+
import { ValidatedStorageConfig } from './schemas.cjs';
|
|
3
|
+
import './backend/cache-backend.cjs';
|
|
4
|
+
import './backend/database-backend.cjs';
|
|
5
|
+
import 'zod';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Storage manager that initializes and manages storage backends.
|
|
9
|
+
* Handles both cache and database backends with automatic fallbacks.
|
|
10
|
+
*/
|
|
11
|
+
declare class StorageManager {
|
|
12
|
+
private config;
|
|
13
|
+
private cache?;
|
|
14
|
+
private database?;
|
|
15
|
+
private connected;
|
|
16
|
+
constructor(config: ValidatedStorageConfig);
|
|
17
|
+
connect(): Promise<StorageBackends>;
|
|
18
|
+
disconnect(): Promise<void>;
|
|
19
|
+
isConnected(): boolean;
|
|
20
|
+
getBackends(): StorageBackends | null;
|
|
21
|
+
private createCacheBackend;
|
|
22
|
+
private createDatabaseBackend;
|
|
23
|
+
private createRedisBackend;
|
|
24
|
+
private createPostgresBackend;
|
|
25
|
+
private createSQLiteBackend;
|
|
26
|
+
getInfo(): Promise<{
|
|
27
|
+
cache: {
|
|
28
|
+
type: string;
|
|
29
|
+
connected: boolean;
|
|
30
|
+
};
|
|
31
|
+
database: {
|
|
32
|
+
type: string;
|
|
33
|
+
connected: boolean;
|
|
34
|
+
};
|
|
35
|
+
connected: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
healthCheck(): Promise<{
|
|
38
|
+
cache: boolean;
|
|
39
|
+
database: boolean;
|
|
40
|
+
overall: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create storage backends without using singleton pattern
|
|
45
|
+
* This allows multiple agent instances to have independent storage
|
|
46
|
+
*/
|
|
47
|
+
declare function createStorageBackends(config: ValidatedStorageConfig): Promise<{
|
|
48
|
+
manager: StorageManager;
|
|
49
|
+
backends: StorageBackends;
|
|
50
|
+
}>;
|
|
51
|
+
|
|
52
|
+
export { StorageManager, createStorageBackends };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { StorageBackends } from './backend/types.js';
|
|
2
|
+
import { ValidatedStorageConfig } from './schemas.js';
|
|
3
|
+
import './backend/cache-backend.js';
|
|
4
|
+
import './backend/database-backend.js';
|
|
5
|
+
import 'zod';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Storage manager that initializes and manages storage backends.
|
|
9
|
+
* Handles both cache and database backends with automatic fallbacks.
|
|
10
|
+
*/
|
|
11
|
+
declare class StorageManager {
|
|
12
|
+
private config;
|
|
13
|
+
private cache?;
|
|
14
|
+
private database?;
|
|
15
|
+
private connected;
|
|
16
|
+
constructor(config: ValidatedStorageConfig);
|
|
17
|
+
connect(): Promise<StorageBackends>;
|
|
18
|
+
disconnect(): Promise<void>;
|
|
19
|
+
isConnected(): boolean;
|
|
20
|
+
getBackends(): StorageBackends | null;
|
|
21
|
+
private createCacheBackend;
|
|
22
|
+
private createDatabaseBackend;
|
|
23
|
+
private createRedisBackend;
|
|
24
|
+
private createPostgresBackend;
|
|
25
|
+
private createSQLiteBackend;
|
|
26
|
+
getInfo(): Promise<{
|
|
27
|
+
cache: {
|
|
28
|
+
type: string;
|
|
29
|
+
connected: boolean;
|
|
30
|
+
};
|
|
31
|
+
database: {
|
|
32
|
+
type: string;
|
|
33
|
+
connected: boolean;
|
|
34
|
+
};
|
|
35
|
+
connected: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
healthCheck(): Promise<{
|
|
38
|
+
cache: boolean;
|
|
39
|
+
database: boolean;
|
|
40
|
+
overall: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create storage backends without using singleton pattern
|
|
45
|
+
* This allows multiple agent instances to have independent storage
|
|
46
|
+
*/
|
|
47
|
+
declare function createStorageBackends(config: ValidatedStorageConfig): Promise<{
|
|
48
|
+
manager: StorageManager;
|
|
49
|
+
backends: StorageBackends;
|
|
50
|
+
}>;
|
|
51
|
+
|
|
52
|
+
export { StorageManager, createStorageBackends };
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { MemoryBackend } from "./backend/memory-backend.js";
|
|
2
|
+
import { logger } from "../logger/index.js";
|
|
3
|
+
let SQLiteBackend;
|
|
4
|
+
let RedisBackend;
|
|
5
|
+
let PostgresBackend;
|
|
6
|
+
const HEALTH_CHECK_KEY = "storage_manager_health_check";
|
|
7
|
+
class StorageManager {
|
|
8
|
+
config;
|
|
9
|
+
cache;
|
|
10
|
+
database;
|
|
11
|
+
connected = false;
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
}
|
|
15
|
+
async connect() {
|
|
16
|
+
if (this.connected) {
|
|
17
|
+
return {
|
|
18
|
+
cache: this.cache,
|
|
19
|
+
database: this.database
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
this.cache = await this.createCacheBackend();
|
|
23
|
+
await this.cache.connect();
|
|
24
|
+
this.database = await this.createDatabaseBackend();
|
|
25
|
+
await this.database.connect();
|
|
26
|
+
this.connected = true;
|
|
27
|
+
return {
|
|
28
|
+
cache: this.cache,
|
|
29
|
+
database: this.database
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async disconnect() {
|
|
33
|
+
if (this.cache) {
|
|
34
|
+
await this.cache.disconnect();
|
|
35
|
+
delete this.cache;
|
|
36
|
+
}
|
|
37
|
+
if (this.database) {
|
|
38
|
+
await this.database.disconnect();
|
|
39
|
+
delete this.database;
|
|
40
|
+
}
|
|
41
|
+
this.connected = false;
|
|
42
|
+
}
|
|
43
|
+
isConnected() {
|
|
44
|
+
return this.connected && this.cache?.isConnected() === true && this.database?.isConnected() === true;
|
|
45
|
+
}
|
|
46
|
+
getBackends() {
|
|
47
|
+
if (!this.connected) return null;
|
|
48
|
+
return {
|
|
49
|
+
cache: this.cache,
|
|
50
|
+
database: this.database
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
async createCacheBackend() {
|
|
54
|
+
const cacheConfig = this.config.cache;
|
|
55
|
+
switch (cacheConfig.type) {
|
|
56
|
+
case "redis":
|
|
57
|
+
return this.createRedisBackend(cacheConfig);
|
|
58
|
+
case "in-memory":
|
|
59
|
+
default:
|
|
60
|
+
logger.info("Using in-memory cache backend");
|
|
61
|
+
return new MemoryBackend();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async createDatabaseBackend() {
|
|
65
|
+
const dbConfig = this.config.database;
|
|
66
|
+
switch (dbConfig.type) {
|
|
67
|
+
case "postgres":
|
|
68
|
+
return this.createPostgresBackend(dbConfig);
|
|
69
|
+
case "sqlite":
|
|
70
|
+
return this.createSQLiteBackend(dbConfig);
|
|
71
|
+
case "in-memory":
|
|
72
|
+
default:
|
|
73
|
+
logger.info("Using in-memory database backend");
|
|
74
|
+
return new MemoryBackend();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async createRedisBackend(config) {
|
|
78
|
+
try {
|
|
79
|
+
if (!RedisBackend) {
|
|
80
|
+
const module = await import("./backend/redis-backend.js");
|
|
81
|
+
RedisBackend = module.RedisBackend;
|
|
82
|
+
}
|
|
83
|
+
logger.info(`Connecting to Redis at ${config.host}:${config.port}`);
|
|
84
|
+
return new RedisBackend(config);
|
|
85
|
+
} catch (error) {
|
|
86
|
+
logger.warn(`Redis not available, falling back to in-memory cache: ${error}`);
|
|
87
|
+
return new MemoryBackend();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async createPostgresBackend(config) {
|
|
91
|
+
try {
|
|
92
|
+
if (!PostgresBackend) {
|
|
93
|
+
const module = await import("./backend/postgres-backend.js");
|
|
94
|
+
PostgresBackend = module.PostgresBackend;
|
|
95
|
+
}
|
|
96
|
+
logger.info("Connecting to PostgreSQL database");
|
|
97
|
+
return new PostgresBackend(config);
|
|
98
|
+
} catch (error) {
|
|
99
|
+
logger.warn(`PostgreSQL not available, falling back to in-memory database: ${error}`);
|
|
100
|
+
return new MemoryBackend();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async createSQLiteBackend(config) {
|
|
104
|
+
try {
|
|
105
|
+
if (!SQLiteBackend) {
|
|
106
|
+
const module = await import("./backend/sqlite-backend.js");
|
|
107
|
+
SQLiteBackend = module.SQLiteBackend;
|
|
108
|
+
}
|
|
109
|
+
logger.info(`Using SQLite database at ${config.path}`);
|
|
110
|
+
return new SQLiteBackend(config);
|
|
111
|
+
} catch (error) {
|
|
112
|
+
logger.error(
|
|
113
|
+
`SQLite backend failed to load: ${error instanceof Error ? error.message : String(error)}`
|
|
114
|
+
);
|
|
115
|
+
logger.error(`Full error details: ${JSON.stringify(error)}`);
|
|
116
|
+
logger.warn("Falling back to in-memory database backend");
|
|
117
|
+
return new MemoryBackend();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Utility methods
|
|
121
|
+
async getInfo() {
|
|
122
|
+
return {
|
|
123
|
+
cache: {
|
|
124
|
+
type: this.cache?.getBackendType() || "none",
|
|
125
|
+
connected: this.cache?.isConnected() || false
|
|
126
|
+
},
|
|
127
|
+
database: {
|
|
128
|
+
type: this.database?.getBackendType() || "none",
|
|
129
|
+
connected: this.database?.isConnected() || false
|
|
130
|
+
},
|
|
131
|
+
connected: this.connected
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Health check
|
|
135
|
+
async healthCheck() {
|
|
136
|
+
let cacheHealthy = false;
|
|
137
|
+
let databaseHealthy = false;
|
|
138
|
+
try {
|
|
139
|
+
if (this.cache?.isConnected()) {
|
|
140
|
+
await this.cache.set(HEALTH_CHECK_KEY, "ok", 10);
|
|
141
|
+
const result = await this.cache.get(HEALTH_CHECK_KEY);
|
|
142
|
+
cacheHealthy = result === "ok";
|
|
143
|
+
await this.cache.delete(HEALTH_CHECK_KEY);
|
|
144
|
+
}
|
|
145
|
+
} catch (error) {
|
|
146
|
+
logger.warn(`Cache health check failed: ${error}`);
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
if (this.database?.isConnected()) {
|
|
150
|
+
await this.database.set(HEALTH_CHECK_KEY, "ok");
|
|
151
|
+
const result = await this.database.get(HEALTH_CHECK_KEY);
|
|
152
|
+
databaseHealthy = result === "ok";
|
|
153
|
+
await this.database.delete(HEALTH_CHECK_KEY);
|
|
154
|
+
}
|
|
155
|
+
} catch (error) {
|
|
156
|
+
logger.warn(`Database health check failed: ${error}`);
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
cache: cacheHealthy,
|
|
160
|
+
database: databaseHealthy,
|
|
161
|
+
overall: cacheHealthy && databaseHealthy
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
async function createStorageBackends(config) {
|
|
166
|
+
const manager = new StorageManager(config);
|
|
167
|
+
const backends = await manager.connect();
|
|
168
|
+
return { manager, backends };
|
|
169
|
+
}
|
|
170
|
+
export {
|
|
171
|
+
StorageManager,
|
|
172
|
+
createStorageBackends
|
|
173
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
File without changes
|