@dexto/core 1.5.7 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -8
- package/dist/agent/DextoAgent.cjs +383 -153
- package/dist/agent/DextoAgent.d.ts +112 -60
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +380 -150
- package/dist/{context/compaction/provider.cjs → agent/agent-options.cjs} +2 -2
- package/dist/agent/agent-options.d.ts +53 -0
- package/dist/agent/agent-options.d.ts.map +1 -0
- package/dist/agent/agentCard.cjs +1 -1
- package/dist/agent/errors.cjs +2 -2
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/index.cjs +1 -6
- package/dist/agent/index.d.ts +3 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +1 -7
- package/dist/{storage/blob/provider.cjs → agent/runtime-config.cjs} +2 -2
- package/dist/agent/runtime-config.d.ts +53 -0
- package/dist/agent/runtime-config.d.ts.map +1 -0
- package/dist/agent/schemas.cjs +2 -99
- package/dist/agent/schemas.d.ts +10 -9160
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +1 -104
- package/dist/agent/state-manager.d.ts +5 -5
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/approval/error-codes.cjs +1 -1
- package/dist/approval/error-codes.d.ts +1 -1
- package/dist/approval/error-codes.d.ts.map +1 -1
- package/dist/approval/error-codes.js +1 -1
- package/dist/approval/errors.cjs +5 -5
- package/dist/approval/errors.d.ts +2 -2
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +5 -5
- package/dist/approval/index.cjs +8 -8
- package/dist/approval/index.d.ts +2 -2
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +8 -8
- package/dist/approval/manager.cjs +77 -57
- package/dist/approval/manager.d.ts +41 -43
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +75 -55
- package/dist/approval/schemas.cjs +26 -25
- package/dist/approval/schemas.d.ts +35 -15
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +22 -21
- package/dist/approval/types.cjs +1 -1
- package/dist/approval/types.d.ts +14 -14
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -1
- package/dist/context/compaction/index.cjs +2 -23
- package/dist/context/compaction/index.d.ts +1 -7
- package/dist/context/compaction/index.d.ts.map +1 -1
- package/dist/context/compaction/index.js +1 -16
- package/dist/context/compaction/strategies/noop.cjs +19 -1
- package/dist/context/compaction/strategies/noop.d.ts +13 -3
- package/dist/context/compaction/strategies/noop.d.ts.map +1 -1
- package/dist/context/compaction/strategies/noop.js +19 -1
- package/dist/context/compaction/strategies/{reactive-overflow.cjs → reactive-overflow-compaction.cjs} +67 -64
- package/dist/context/compaction/strategies/{reactive-overflow.d.ts → reactive-overflow-compaction.d.ts} +19 -36
- package/dist/context/compaction/strategies/reactive-overflow-compaction.d.ts.map +1 -0
- package/dist/context/compaction/strategies/{reactive-overflow.js → reactive-overflow-compaction.js} +63 -60
- package/dist/context/compaction/types.d.ts +40 -8
- package/dist/context/compaction/types.d.ts.map +1 -1
- package/dist/context/manager.cjs +5 -3
- package/dist/context/manager.d.ts +4 -3
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +5 -3
- package/dist/context/types.d.ts +2 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/utils.cjs +70 -43
- package/dist/context/utils.d.ts +14 -14
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +69 -42
- package/dist/errors/result-bridge.d.ts +2 -2
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/types.cjs +1 -1
- package/dist/errors/types.d.ts +3 -3
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +1 -1
- package/dist/events/index.cjs +15 -2
- package/dist/events/index.d.ts +78 -7
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +15 -2
- package/dist/{plugins → hooks}/builtins/content-policy.cjs +7 -6
- package/dist/hooks/builtins/content-policy.d.ts +24 -0
- package/dist/hooks/builtins/content-policy.d.ts.map +1 -0
- package/dist/{plugins → hooks}/builtins/content-policy.js +6 -5
- package/dist/{plugins → hooks}/builtins/response-sanitizer.cjs +3 -3
- package/dist/hooks/builtins/response-sanitizer.d.ts +22 -0
- package/dist/hooks/builtins/response-sanitizer.d.ts.map +1 -0
- package/dist/{plugins → hooks}/builtins/response-sanitizer.js +2 -2
- package/dist/hooks/error-codes.cjs +43 -0
- package/dist/hooks/error-codes.d.ts +34 -0
- package/dist/hooks/error-codes.d.ts.map +1 -0
- package/dist/hooks/error-codes.js +20 -0
- package/dist/{storage/cache/providers/memory.cjs → hooks/index.cjs} +15 -18
- package/dist/hooks/index.d.ts +14 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +11 -0
- package/dist/hooks/manager.cjs +354 -0
- package/dist/hooks/manager.d.ts +103 -0
- package/dist/hooks/manager.d.ts.map +1 -0
- package/dist/hooks/manager.js +331 -0
- package/dist/{plugins → hooks}/types.d.ts +36 -34
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/index.browser.cjs +13 -12
- package/dist/index.browser.d.ts +6 -6
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +8 -7
- package/dist/index.cjs +5 -7
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/llm/curation-config.cjs +82 -0
- package/dist/llm/curation-config.d.ts +13 -0
- package/dist/llm/curation-config.d.ts.map +1 -0
- package/dist/llm/curation-config.js +59 -0
- package/dist/llm/curation.cjs +57 -0
- package/dist/llm/curation.d.ts +16 -0
- package/dist/llm/curation.d.ts.map +1 -0
- package/dist/llm/curation.js +34 -0
- package/dist/llm/errors.cjs +2 -2
- package/dist/llm/errors.d.ts +8 -8
- package/dist/llm/errors.js +1 -1
- package/dist/llm/executor/provider-options.cjs +1 -1
- package/dist/llm/executor/provider-options.js +1 -1
- package/dist/llm/executor/stream-processor.cjs +131 -11
- package/dist/llm/executor/stream-processor.d.ts +7 -5
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +131 -11
- package/dist/llm/executor/turn-executor.cjs +57 -56
- package/dist/llm/executor/turn-executor.d.ts +7 -8
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +57 -56
- package/dist/llm/formatters/vercel.cjs +2 -2
- package/dist/llm/formatters/vercel.d.ts +2 -2
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/index.cjs +14 -3
- package/dist/llm/index.d.ts +3 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +13 -2
- package/dist/llm/providers/local/schemas.d.ts +10 -10
- package/dist/llm/registry/auto-update.cjs +263 -0
- package/dist/llm/registry/auto-update.d.ts +27 -0
- package/dist/llm/registry/auto-update.d.ts.map +1 -0
- package/dist/llm/registry/auto-update.js +227 -0
- package/dist/llm/registry/index.cjs +806 -0
- package/dist/llm/{registry.d.ts → registry/index.d.ts} +21 -43
- package/dist/llm/registry/index.d.ts.map +1 -0
- package/dist/llm/registry/index.js +756 -0
- package/dist/llm/registry/models.generated.cjs +4861 -0
- package/dist/llm/registry/models.generated.d.ts +431 -0
- package/dist/llm/registry/models.generated.d.ts.map +1 -0
- package/dist/llm/registry/models.generated.js +4838 -0
- package/dist/{storage/database/providers/index.cjs → llm/registry/models.manual.cjs} +22 -12
- package/dist/llm/registry/models.manual.d.ts +22 -0
- package/dist/llm/registry/models.manual.d.ts.map +1 -0
- package/dist/llm/registry/models.manual.js +21 -0
- package/dist/llm/registry/sync.cjs +354 -0
- package/dist/llm/registry/sync.d.ts +41 -0
- package/dist/llm/registry/sync.d.ts.map +1 -0
- package/dist/llm/registry/sync.js +328 -0
- package/dist/llm/resolver.cjs +29 -20
- package/dist/llm/resolver.d.ts +4 -4
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +28 -20
- package/dist/llm/schemas.cjs +69 -94
- package/dist/llm/schemas.d.ts +19 -158
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +67 -91
- package/dist/llm/services/factory.cjs +6 -7
- package/dist/llm/services/factory.d.ts +3 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +6 -7
- package/dist/llm/services/vercel.cjs +11 -15
- package/dist/llm/services/vercel.d.ts +7 -7
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +11 -15
- package/dist/llm/types.cjs +1 -1
- package/dist/llm/types.d.ts +1 -1
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +1 -1
- package/dist/llm/validation.cjs +2 -2
- package/dist/llm/validation.d.ts +2 -2
- package/dist/llm/validation.d.ts.map +1 -1
- package/dist/llm/validation.js +1 -1
- package/dist/logger/browser.cjs +4 -4
- package/dist/logger/browser.d.ts +4 -4
- package/dist/logger/browser.d.ts.map +1 -1
- package/dist/logger/browser.js +3 -3
- package/dist/{context/compaction/providers/noop-provider.cjs → logger/default-logger-factory.cjs} +16 -22
- package/dist/logger/default-logger-factory.d.ts +301 -0
- package/dist/logger/default-logger-factory.d.ts.map +1 -0
- package/dist/logger/default-logger-factory.js +18 -0
- package/dist/logger/factory.d.ts +2 -2
- package/dist/logger/factory.d.ts.map +1 -1
- package/dist/logger/index.cjs +7 -2
- package/dist/logger/index.d.ts +5 -3
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +8 -2
- package/dist/logger/logger.cjs +4 -4
- package/dist/logger/logger.d.ts +4 -4
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +3 -3
- package/dist/logger/v2/dexto-logger.d.ts +3 -3
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/schemas.d.ts +12 -12
- package/dist/logger/v2/test-utils.d.ts +5 -5
- package/dist/logger/v2/test-utils.d.ts.map +1 -1
- package/dist/logger/v2/transport-factory.d.ts +3 -3
- package/dist/logger/v2/transport-factory.d.ts.map +1 -1
- package/dist/logger/v2/transports/console-transport.d.ts +2 -2
- package/dist/logger/v2/transports/console-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/file-transport.d.ts +2 -2
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/silent-transport.d.ts +2 -2
- package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -1
- package/dist/logger/v2/types.cjs +1 -1
- package/dist/logger/v2/types.d.ts +8 -8
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/logger/v2/types.js +1 -1
- package/dist/mcp/errors.cjs +2 -2
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/manager.cjs +16 -11
- package/dist/mcp/manager.d.ts +16 -13
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +17 -12
- package/dist/mcp/mcp-client.cjs +25 -20
- package/dist/mcp/mcp-client.d.ts +5 -5
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +20 -15
- package/dist/mcp/resolver.cjs +1 -1
- package/dist/mcp/schemas.cjs +5 -5
- package/dist/mcp/schemas.d.ts +4 -4
- package/dist/mcp/schemas.js +2 -2
- package/dist/mcp/types.d.ts +7 -7
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/memory/manager.d.ts +2 -2
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/schemas.d.ts +2 -2
- package/dist/prompts/errors.cjs +3 -3
- package/dist/prompts/errors.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.d.ts +3 -3
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.cjs +15 -29
- package/dist/prompts/providers/config-prompt-provider.d.ts +3 -3
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +15 -29
- package/dist/prompts/providers/custom-prompt-provider.d.ts +2 -2
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +2 -2
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/schemas.d.ts +4 -4
- package/dist/resources/{internal-provider.cjs → agent-resources-provider.cjs} +16 -16
- package/dist/resources/{internal-provider.d.ts → agent-resources-provider.d.ts} +6 -6
- package/dist/resources/agent-resources-provider.d.ts.map +1 -0
- package/dist/resources/{internal-provider.js → agent-resources-provider.js} +13 -13
- package/dist/resources/errors.cjs +2 -2
- package/dist/resources/errors.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.d.ts +2 -2
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/factory.d.ts +3 -3
- package/dist/resources/handlers/factory.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.cjs +25 -0
- package/dist/resources/handlers/filesystem-handler.d.ts +3 -2
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +25 -0
- package/dist/resources/index.cjs +7 -9
- package/dist/resources/index.d.ts +3 -3
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +5 -10
- package/dist/resources/manager.cjs +77 -74
- package/dist/resources/manager.d.ts +16 -7
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +77 -74
- package/dist/resources/schemas.cjs +6 -26
- package/dist/resources/schemas.d.ts +8 -100
- package/dist/resources/schemas.d.ts.map +1 -1
- package/dist/resources/schemas.js +4 -23
- package/dist/search/search-service.d.ts +2 -2
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/session/chat-session.cjs +16 -26
- package/dist/session/chat-session.d.ts +7 -5
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +17 -27
- package/dist/session/errors.cjs +2 -2
- package/dist/session/errors.d.ts.map +1 -1
- package/dist/session/history/database.cjs +1 -1
- package/dist/session/history/database.d.ts +4 -4
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/factory.d.ts +3 -3
- package/dist/session/history/factory.d.ts.map +1 -1
- package/dist/session/history/memory.d.ts +4 -4
- package/dist/session/history/memory.d.ts.map +1 -1
- package/dist/session/history/types.d.ts +2 -2
- package/dist/session/history/types.d.ts.map +1 -1
- package/dist/session/index.cjs +3 -0
- package/dist/session/index.d.ts +2 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +2 -0
- package/dist/session/message-queue.cjs +29 -5
- package/dist/session/message-queue.d.ts +5 -3
- package/dist/session/message-queue.d.ts.map +1 -1
- package/dist/session/message-queue.js +29 -5
- package/dist/session/session-manager.cjs +107 -12
- package/dist/session/session-manager.d.ts +49 -8
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +97 -12
- package/dist/session/title-generator.cjs +2 -2
- package/dist/session/title-generator.d.ts +2 -2
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/types.d.ts +1 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/storage/blob/index.cjs +0 -40
- package/dist/storage/blob/index.d.ts +2 -44
- package/dist/storage/blob/index.d.ts.map +1 -1
- package/dist/storage/blob/index.js +0 -30
- package/dist/storage/cache/index.cjs +0 -37
- package/dist/storage/cache/index.d.ts +0 -42
- package/dist/storage/cache/index.d.ts.map +1 -1
- package/dist/storage/cache/index.js +0 -28
- package/dist/storage/database/index.cjs +0 -42
- package/dist/storage/database/index.d.ts +0 -43
- package/dist/storage/database/index.d.ts.map +1 -1
- package/dist/storage/database/index.js +0 -37
- package/dist/storage/error-codes.cjs +1 -6
- package/dist/storage/error-codes.d.ts +2 -7
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +1 -6
- package/dist/storage/errors.cjs +18 -82
- package/dist/storage/errors.d.ts +4 -24
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +16 -80
- package/dist/storage/index.cjs +8 -69
- package/dist/storage/index.d.ts +11 -66
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +6 -50
- package/dist/storage/storage-manager.cjs +9 -25
- package/dist/storage/storage-manager.d.ts +11 -15
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +8 -23
- package/dist/storage/types.d.ts +0 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.d.ts +4 -4
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/errors.cjs +2 -2
- package/dist/systemPrompt/errors.d.ts.map +1 -1
- package/dist/systemPrompt/manager.cjs +1 -5
- package/dist/systemPrompt/manager.d.ts +2 -3
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +1 -5
- package/dist/telemetry/index.cjs +3 -0
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +2 -0
- package/dist/telemetry/utils.d.ts +4 -4
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/test-utils/in-memory-storage.cjs +288 -0
- package/dist/test-utils/in-memory-storage.js +252 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +3 -3
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +4 -4
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -1
- package/dist/tools/{internal-tools/constants.cjs → define-tool.cjs} +8 -13
- package/dist/tools/define-tool.d.ts +11 -0
- package/dist/tools/define-tool.d.ts.map +1 -0
- package/dist/tools/define-tool.js +7 -0
- package/dist/tools/error-codes.cjs +2 -2
- package/dist/tools/error-codes.d.ts +2 -2
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +2 -2
- package/dist/tools/errors.cjs +11 -23
- package/dist/tools/errors.d.ts +4 -10
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +9 -21
- package/dist/tools/index.cjs +3 -8
- package/dist/tools/index.d.ts +2 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -7
- package/dist/{storage/blob/providers/index.cjs → tools/pattern-utils.cjs} +11 -9
- package/dist/tools/pattern-utils.d.ts +20 -0
- package/dist/tools/pattern-utils.d.ts.map +1 -0
- package/dist/tools/pattern-utils.js +10 -0
- package/dist/tools/schemas.cjs +14 -40
- package/dist/tools/schemas.d.ts +6 -50
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +11 -32
- package/dist/tools/tool-call-metadata.cjs +75 -0
- package/dist/tools/tool-call-metadata.d.ts +16 -0
- package/dist/tools/tool-call-metadata.d.ts.map +1 -0
- package/dist/tools/tool-call-metadata.js +51 -0
- package/dist/tools/tool-manager.cjs +578 -302
- package/dist/tools/tool-manager.d.ts +105 -81
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +578 -306
- package/dist/tools/types.d.ts +112 -13
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.cjs +1 -1
- package/dist/utils/api-key-resolver.js +1 -1
- package/dist/utils/env.cjs +49 -0
- package/dist/utils/env.d.ts +4 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +24 -0
- package/dist/utils/error-conversion.d.ts +2 -2
- package/dist/utils/error-conversion.d.ts.map +1 -1
- package/dist/utils/index.cjs +3 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/path.d.ts +2 -2
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/result.cjs +1 -1
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/schema.cjs +9 -5
- package/dist/utils/schema.d.ts +4 -2
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +9 -5
- package/dist/utils/service-initializer.cjs +58 -51
- package/dist/utils/service-initializer.d.ts +31 -9
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +58 -51
- package/dist/{storage/cache/providers/index.cjs → workspace/error-codes.cjs} +8 -9
- package/dist/workspace/error-codes.d.ts +5 -0
- package/dist/workspace/error-codes.d.ts.map +1 -0
- package/dist/workspace/error-codes.js +7 -0
- package/dist/{storage/blob/factory.cjs → workspace/errors.cjs} +20 -14
- package/dist/workspace/errors.d.ts +5 -0
- package/dist/workspace/errors.d.ts.map +1 -0
- package/dist/workspace/errors.js +21 -0
- package/dist/{image → workspace}/index.cjs +12 -10
- package/dist/workspace/index.d.ts +5 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +9 -0
- package/dist/workspace/manager.cjs +113 -0
- package/dist/workspace/manager.d.ts +18 -0
- package/dist/workspace/manager.d.ts.map +1 -0
- package/dist/workspace/manager.js +90 -0
- package/dist/workspace/types.d.ts +14 -0
- package/dist/workspace/types.d.ts.map +1 -0
- package/package.json +7 -3
- package/dist/context/compaction/factory.cjs +0 -57
- package/dist/context/compaction/factory.d.ts +0 -17
- package/dist/context/compaction/factory.d.ts.map +0 -1
- package/dist/context/compaction/factory.js +0 -34
- package/dist/context/compaction/provider.d.ts +0 -48
- package/dist/context/compaction/provider.d.ts.map +0 -1
- package/dist/context/compaction/providers/noop-provider.d.ts +0 -24
- package/dist/context/compaction/providers/noop-provider.d.ts.map +0 -1
- package/dist/context/compaction/providers/noop-provider.js +0 -24
- package/dist/context/compaction/providers/reactive-overflow-provider.cjs +0 -76
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +0 -51
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +0 -1
- package/dist/context/compaction/providers/reactive-overflow-provider.js +0 -52
- package/dist/context/compaction/registry.cjs +0 -39
- package/dist/context/compaction/registry.d.ts +0 -19
- package/dist/context/compaction/registry.d.ts.map +0 -1
- package/dist/context/compaction/registry.js +0 -16
- package/dist/context/compaction/schemas.cjs +0 -58
- package/dist/context/compaction/schemas.d.ts +0 -69
- package/dist/context/compaction/schemas.d.ts.map +0 -1
- package/dist/context/compaction/schemas.js +0 -34
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +0 -1
- package/dist/image/define-image.cjs +0 -146
- package/dist/image/define-image.d.ts +0 -71
- package/dist/image/define-image.d.ts.map +0 -1
- package/dist/image/define-image.js +0 -121
- package/dist/image/index.d.ts +0 -53
- package/dist/image/index.d.ts.map +0 -1
- package/dist/image/index.js +0 -7
- package/dist/image/types.d.ts +0 -246
- package/dist/image/types.d.ts.map +0 -1
- package/dist/llm/registry.cjs +0 -2075
- package/dist/llm/registry.d.ts.map +0 -1
- package/dist/llm/registry.js +0 -2025
- package/dist/llm/services/test-utils.integration.cjs +0 -237
- package/dist/llm/services/test-utils.integration.d.ts +0 -48
- package/dist/llm/services/test-utils.integration.d.ts.map +0 -1
- package/dist/llm/services/test-utils.integration.js +0 -214
- package/dist/plugins/builtins/content-policy.d.ts +0 -26
- package/dist/plugins/builtins/content-policy.d.ts.map +0 -1
- package/dist/plugins/builtins/response-sanitizer.d.ts +0 -25
- package/dist/plugins/builtins/response-sanitizer.d.ts.map +0 -1
- package/dist/plugins/error-codes.cjs +0 -43
- package/dist/plugins/error-codes.d.ts +0 -34
- package/dist/plugins/error-codes.d.ts.map +0 -1
- package/dist/plugins/error-codes.js +0 -20
- package/dist/plugins/index.cjs +0 -61
- package/dist/plugins/index.d.ts +0 -21
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js +0 -30
- package/dist/plugins/loader.cjs +0 -171
- package/dist/plugins/loader.d.ts +0 -30
- package/dist/plugins/loader.d.ts.map +0 -1
- package/dist/plugins/loader.js +0 -145
- package/dist/plugins/manager.cjs +0 -473
- package/dist/plugins/manager.d.ts +0 -106
- package/dist/plugins/manager.d.ts.map +0 -1
- package/dist/plugins/manager.js +0 -450
- package/dist/plugins/registrations/builtins.cjs +0 -51
- package/dist/plugins/registrations/builtins.d.ts +0 -17
- package/dist/plugins/registrations/builtins.d.ts.map +0 -1
- package/dist/plugins/registrations/builtins.js +0 -28
- package/dist/plugins/registry.cjs +0 -63
- package/dist/plugins/registry.d.ts +0 -101
- package/dist/plugins/registry.d.ts.map +0 -1
- package/dist/plugins/registry.js +0 -39
- package/dist/plugins/schemas.cjs +0 -73
- package/dist/plugins/schemas.d.ts +0 -195
- package/dist/plugins/schemas.d.ts.map +0 -1
- package/dist/plugins/schemas.js +0 -47
- package/dist/plugins/types.d.ts.map +0 -1
- package/dist/providers/base-registry.cjs +0 -147
- package/dist/providers/base-registry.d.ts +0 -147
- package/dist/providers/base-registry.d.ts.map +0 -1
- package/dist/providers/base-registry.js +0 -123
- package/dist/providers/discovery.cjs +0 -109
- package/dist/providers/discovery.d.ts +0 -96
- package/dist/providers/discovery.d.ts.map +0 -1
- package/dist/providers/discovery.js +0 -84
- package/dist/providers/index.cjs +0 -24
- package/dist/providers/index.d.ts +0 -32
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -2
- package/dist/resources/internal-provider.d.ts.map +0 -1
- package/dist/storage/blob/factory.d.ts +0 -37
- package/dist/storage/blob/factory.d.ts.map +0 -1
- package/dist/storage/blob/factory.js +0 -15
- package/dist/storage/blob/local-blob-store.cjs +0 -496
- package/dist/storage/blob/local-blob-store.d.ts +0 -58
- package/dist/storage/blob/local-blob-store.d.ts.map +0 -1
- package/dist/storage/blob/local-blob-store.js +0 -463
- package/dist/storage/blob/memory-blob-store.cjs +0 -326
- package/dist/storage/blob/memory-blob-store.d.ts +0 -66
- package/dist/storage/blob/memory-blob-store.d.ts.map +0 -1
- package/dist/storage/blob/memory-blob-store.js +0 -303
- package/dist/storage/blob/provider.d.ts +0 -50
- package/dist/storage/blob/provider.d.ts.map +0 -1
- package/dist/storage/blob/providers/index.d.ts +0 -8
- package/dist/storage/blob/providers/index.d.ts.map +0 -1
- package/dist/storage/blob/providers/index.js +0 -7
- package/dist/storage/blob/providers/local.cjs +0 -39
- package/dist/storage/blob/providers/local.d.ts +0 -17
- package/dist/storage/blob/providers/local.d.ts.map +0 -1
- package/dist/storage/blob/providers/local.js +0 -16
- package/dist/storage/blob/providers/memory.cjs +0 -39
- package/dist/storage/blob/providers/memory.d.ts +0 -17
- package/dist/storage/blob/providers/memory.d.ts.map +0 -1
- package/dist/storage/blob/providers/memory.js +0 -16
- package/dist/storage/blob/registry.cjs +0 -50
- package/dist/storage/blob/registry.d.ts +0 -42
- package/dist/storage/blob/registry.d.ts.map +0 -1
- package/dist/storage/blob/registry.js +0 -26
- package/dist/storage/blob/schemas.cjs +0 -52
- package/dist/storage/blob/schemas.d.ts +0 -85
- package/dist/storage/blob/schemas.d.ts.map +0 -1
- package/dist/storage/blob/schemas.js +0 -26
- package/dist/storage/cache/factory.cjs +0 -38
- package/dist/storage/cache/factory.d.ts +0 -37
- package/dist/storage/cache/factory.d.ts.map +0 -1
- package/dist/storage/cache/factory.js +0 -15
- package/dist/storage/cache/memory-cache-store.cjs +0 -107
- package/dist/storage/cache/memory-cache-store.d.ts +0 -26
- package/dist/storage/cache/memory-cache-store.d.ts.map +0 -1
- package/dist/storage/cache/memory-cache-store.js +0 -84
- package/dist/storage/cache/provider.cjs +0 -16
- package/dist/storage/cache/provider.d.ts +0 -56
- package/dist/storage/cache/provider.d.ts.map +0 -1
- package/dist/storage/cache/provider.js +0 -0
- package/dist/storage/cache/providers/index.d.ts +0 -8
- package/dist/storage/cache/providers/index.d.ts.map +0 -1
- package/dist/storage/cache/providers/index.js +0 -7
- package/dist/storage/cache/providers/memory.d.ts +0 -17
- package/dist/storage/cache/providers/memory.d.ts.map +0 -1
- package/dist/storage/cache/providers/memory.js +0 -17
- package/dist/storage/cache/providers/redis.cjs +0 -66
- package/dist/storage/cache/providers/redis.d.ts +0 -20
- package/dist/storage/cache/providers/redis.d.ts.map +0 -1
- package/dist/storage/cache/providers/redis.js +0 -33
- package/dist/storage/cache/redis-store.cjs +0 -173
- package/dist/storage/cache/redis-store.d.ts +0 -32
- package/dist/storage/cache/redis-store.d.ts.map +0 -1
- package/dist/storage/cache/redis-store.js +0 -150
- package/dist/storage/cache/registry.cjs +0 -50
- package/dist/storage/cache/registry.d.ts +0 -42
- package/dist/storage/cache/registry.d.ts.map +0 -1
- package/dist/storage/cache/registry.js +0 -26
- package/dist/storage/cache/schemas.cjs +0 -81
- package/dist/storage/cache/schemas.d.ts +0 -150
- package/dist/storage/cache/schemas.d.ts.map +0 -1
- package/dist/storage/cache/schemas.js +0 -55
- package/dist/storage/database/factory.cjs +0 -38
- package/dist/storage/database/factory.d.ts +0 -39
- package/dist/storage/database/factory.d.ts.map +0 -1
- package/dist/storage/database/factory.js +0 -15
- package/dist/storage/database/memory-database-store.cjs +0 -122
- package/dist/storage/database/memory-database-store.d.ts +0 -29
- package/dist/storage/database/memory-database-store.d.ts.map +0 -1
- package/dist/storage/database/memory-database-store.js +0 -99
- package/dist/storage/database/postgres-store.cjs +0 -342
- package/dist/storage/database/postgres-store.d.ts +0 -55
- package/dist/storage/database/postgres-store.d.ts.map +0 -1
- package/dist/storage/database/postgres-store.js +0 -319
- package/dist/storage/database/provider.cjs +0 -16
- package/dist/storage/database/provider.d.ts +0 -56
- package/dist/storage/database/provider.d.ts.map +0 -1
- package/dist/storage/database/provider.js +0 -0
- package/dist/storage/database/providers/index.d.ts +0 -9
- package/dist/storage/database/providers/index.d.ts.map +0 -1
- package/dist/storage/database/providers/index.js +0 -9
- package/dist/storage/database/providers/memory.cjs +0 -40
- package/dist/storage/database/providers/memory.d.ts +0 -16
- package/dist/storage/database/providers/memory.d.ts.map +0 -1
- package/dist/storage/database/providers/memory.js +0 -17
- package/dist/storage/database/providers/postgres.cjs +0 -62
- package/dist/storage/database/providers/postgres.d.ts +0 -19
- package/dist/storage/database/providers/postgres.d.ts.map +0 -1
- package/dist/storage/database/providers/postgres.js +0 -29
- package/dist/storage/database/providers/sqlite.cjs +0 -66
- package/dist/storage/database/providers/sqlite.d.ts +0 -20
- package/dist/storage/database/providers/sqlite.d.ts.map +0 -1
- package/dist/storage/database/providers/sqlite.js +0 -33
- package/dist/storage/database/registry.cjs +0 -50
- package/dist/storage/database/registry.d.ts +0 -42
- package/dist/storage/database/registry.d.ts.map +0 -1
- package/dist/storage/database/registry.js +0 -26
- package/dist/storage/database/schemas.cjs +0 -97
- package/dist/storage/database/schemas.d.ts +0 -226
- package/dist/storage/database/schemas.d.ts.map +0 -1
- package/dist/storage/database/schemas.js +0 -70
- package/dist/storage/database/sqlite-store.cjs +0 -270
- package/dist/storage/database/sqlite-store.d.ts +0 -33
- package/dist/storage/database/sqlite-store.d.ts.map +0 -1
- package/dist/storage/database/sqlite-store.js +0 -237
- package/dist/storage/schemas.cjs +0 -57
- package/dist/storage/schemas.d.ts +0 -347
- package/dist/storage/schemas.d.ts.map +0 -1
- package/dist/storage/schemas.js +0 -37
- package/dist/tools/bash-pattern-utils.cjs +0 -91
- package/dist/tools/bash-pattern-utils.d.ts +0 -58
- package/dist/tools/bash-pattern-utils.d.ts.map +0 -1
- package/dist/tools/bash-pattern-utils.js +0 -64
- package/dist/tools/custom-tool-registry.cjs +0 -64
- package/dist/tools/custom-tool-registry.d.ts +0 -126
- package/dist/tools/custom-tool-registry.d.ts.map +0 -1
- package/dist/tools/custom-tool-registry.js +0 -40
- package/dist/tools/custom-tool-schema-registry.cjs +0 -164
- package/dist/tools/custom-tool-schema-registry.d.ts +0 -86
- package/dist/tools/custom-tool-schema-registry.d.ts.map +0 -1
- package/dist/tools/custom-tool-schema-registry.js +0 -140
- package/dist/tools/internal-tools/constants.d.ts +0 -12
- package/dist/tools/internal-tools/constants.d.ts.map +0 -1
- package/dist/tools/internal-tools/constants.js +0 -12
- package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +0 -57
- package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +0 -18
- package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +0 -34
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +0 -192
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +0 -33
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +0 -169
- package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +0 -113
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +0 -30
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/get-resource-tool.js +0 -90
- package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +0 -140
- package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +0 -24
- package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +0 -117
- package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +0 -91
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +0 -24
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/list-resources-tool.js +0 -68
- package/dist/tools/internal-tools/implementations/search-history-tool.cjs +0 -61
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +0 -7
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/search-history-tool.js +0 -38
- package/dist/tools/internal-tools/index.cjs +0 -26
- package/dist/tools/internal-tools/index.d.ts +0 -4
- package/dist/tools/internal-tools/index.d.ts.map +0 -1
- package/dist/tools/internal-tools/index.js +0 -3
- package/dist/tools/internal-tools/provider.cjs +0 -324
- package/dist/tools/internal-tools/provider.d.ts +0 -114
- package/dist/tools/internal-tools/provider.d.ts.map +0 -1
- package/dist/tools/internal-tools/provider.js +0 -301
- package/dist/tools/internal-tools/registry.cjs +0 -71
- package/dist/tools/internal-tools/registry.d.ts +0 -91
- package/dist/tools/internal-tools/registry.d.ts.map +0 -1
- package/dist/tools/internal-tools/registry.js +0 -47
- /package/dist/{context/compaction/provider.js → agent/agent-options.js} +0 -0
- /package/dist/{image/types.js → agent/runtime-config.js} +0 -0
- /package/dist/{image → hooks}/types.cjs +0 -0
- /package/dist/{plugins → hooks}/types.js +0 -0
- /package/dist/{plugins → workspace}/types.cjs +0 -0
- /package/dist/{storage/blob/provider.js → workspace/types.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/storage/database/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5C,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,QAAQ,CAAC,CAgBnB"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import "../../chunk-PTJYTZNU.js";
|
|
2
|
-
import { databaseRegistry } from "./registry.js";
|
|
3
|
-
async function createDatabase(config, logger) {
|
|
4
|
-
const validatedConfig = databaseRegistry.validateConfig(config);
|
|
5
|
-
const provider = databaseRegistry.get(validatedConfig.type);
|
|
6
|
-
if (!provider) {
|
|
7
|
-
throw new Error(`Provider '${validatedConfig.type}' not found in registry`);
|
|
8
|
-
}
|
|
9
|
-
const providerName = provider.metadata?.displayName || validatedConfig.type;
|
|
10
|
-
logger.info(`Using ${providerName} database`);
|
|
11
|
-
return provider.create(validatedConfig, logger);
|
|
12
|
-
}
|
|
13
|
-
export {
|
|
14
|
-
createDatabase
|
|
15
|
-
};
|
|
@@ -1,122 +0,0 @@
|
|
|
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 __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var memory_database_store_exports = {};
|
|
20
|
-
__export(memory_database_store_exports, {
|
|
21
|
-
MemoryDatabaseStore: () => MemoryDatabaseStore
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(memory_database_store_exports);
|
|
24
|
-
var import_errors = require("../errors.js");
|
|
25
|
-
class MemoryDatabaseStore {
|
|
26
|
-
data = /* @__PURE__ */ new Map();
|
|
27
|
-
lists = /* @__PURE__ */ new Map();
|
|
28
|
-
connected = false;
|
|
29
|
-
constructor() {
|
|
30
|
-
}
|
|
31
|
-
async connect() {
|
|
32
|
-
this.connected = true;
|
|
33
|
-
}
|
|
34
|
-
async disconnect() {
|
|
35
|
-
this.connected = false;
|
|
36
|
-
this.data.clear();
|
|
37
|
-
this.lists.clear();
|
|
38
|
-
}
|
|
39
|
-
isConnected() {
|
|
40
|
-
return this.connected;
|
|
41
|
-
}
|
|
42
|
-
getStoreType() {
|
|
43
|
-
return "memory";
|
|
44
|
-
}
|
|
45
|
-
async get(key) {
|
|
46
|
-
this.checkConnection();
|
|
47
|
-
try {
|
|
48
|
-
return this.data.get(key);
|
|
49
|
-
} catch (error) {
|
|
50
|
-
throw import_errors.StorageError.readFailed(
|
|
51
|
-
"get",
|
|
52
|
-
error instanceof Error ? error.message : String(error),
|
|
53
|
-
{ key }
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
async set(key, value) {
|
|
58
|
-
this.checkConnection();
|
|
59
|
-
try {
|
|
60
|
-
this.data.set(key, value);
|
|
61
|
-
} catch (error) {
|
|
62
|
-
throw import_errors.StorageError.writeFailed(
|
|
63
|
-
"set",
|
|
64
|
-
error instanceof Error ? error.message : String(error),
|
|
65
|
-
{ key }
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
async delete(key) {
|
|
70
|
-
this.checkConnection();
|
|
71
|
-
this.data.delete(key);
|
|
72
|
-
this.lists.delete(key);
|
|
73
|
-
}
|
|
74
|
-
async list(prefix) {
|
|
75
|
-
this.checkConnection();
|
|
76
|
-
const keys = [];
|
|
77
|
-
for (const key of Array.from(this.data.keys())) {
|
|
78
|
-
if (key.startsWith(prefix)) {
|
|
79
|
-
keys.push(key);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
for (const key of Array.from(this.lists.keys())) {
|
|
83
|
-
if (key.startsWith(prefix)) {
|
|
84
|
-
keys.push(key);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return Array.from(new Set(keys)).sort();
|
|
88
|
-
}
|
|
89
|
-
async append(key, item) {
|
|
90
|
-
this.checkConnection();
|
|
91
|
-
if (!this.lists.has(key)) {
|
|
92
|
-
this.lists.set(key, []);
|
|
93
|
-
}
|
|
94
|
-
this.lists.get(key).push(item);
|
|
95
|
-
}
|
|
96
|
-
async getRange(key, start, count) {
|
|
97
|
-
this.checkConnection();
|
|
98
|
-
const list = this.lists.get(key) || [];
|
|
99
|
-
return list.slice(start, start + count);
|
|
100
|
-
}
|
|
101
|
-
// Helper methods
|
|
102
|
-
checkConnection() {
|
|
103
|
-
if (!this.connected) {
|
|
104
|
-
throw import_errors.StorageError.notConnected("MemoryDatabaseStore");
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Development helpers
|
|
108
|
-
async clear() {
|
|
109
|
-
this.data.clear();
|
|
110
|
-
this.lists.clear();
|
|
111
|
-
}
|
|
112
|
-
async dump() {
|
|
113
|
-
return {
|
|
114
|
-
data: Object.fromEntries(this.data.entries()),
|
|
115
|
-
lists: Object.fromEntries(this.lists.entries())
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
120
|
-
0 && (module.exports = {
|
|
121
|
-
MemoryDatabaseStore
|
|
122
|
-
});
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { Database } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* In-memory database store for development and testing.
|
|
4
|
-
* Supports list operations for message history and enumeration for settings.
|
|
5
|
-
* Data is lost when the process restarts.
|
|
6
|
-
*/
|
|
7
|
-
export declare class MemoryDatabaseStore implements Database {
|
|
8
|
-
private data;
|
|
9
|
-
private lists;
|
|
10
|
-
private connected;
|
|
11
|
-
constructor();
|
|
12
|
-
connect(): Promise<void>;
|
|
13
|
-
disconnect(): Promise<void>;
|
|
14
|
-
isConnected(): boolean;
|
|
15
|
-
getStoreType(): string;
|
|
16
|
-
get<T>(key: string): Promise<T | undefined>;
|
|
17
|
-
set<T>(key: string, value: T): Promise<void>;
|
|
18
|
-
delete(key: string): Promise<void>;
|
|
19
|
-
list(prefix: string): Promise<string[]>;
|
|
20
|
-
append<T>(key: string, item: T): Promise<void>;
|
|
21
|
-
getRange<T>(key: string, start: number, count: number): Promise<T[]>;
|
|
22
|
-
private checkConnection;
|
|
23
|
-
clear(): Promise<void>;
|
|
24
|
-
dump(): Promise<{
|
|
25
|
-
data: Record<string, any>;
|
|
26
|
-
lists: Record<string, any[]>;
|
|
27
|
-
}>;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=memory-database-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-database-store.d.ts","sourceRoot":"","sources":["../../../src/storage/database/memory-database-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,QAAQ;IAChD,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,SAAS,CAAS;;IAIpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,WAAW,IAAI,OAAO;IAItB,YAAY,IAAI,MAAM;IAIhB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAa3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAsBvC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAO1E,OAAO,CAAC,eAAe;IAOjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;KAAE,CAAC;CAMrF"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import "../../chunk-PTJYTZNU.js";
|
|
2
|
-
import { StorageError } from "../errors.js";
|
|
3
|
-
class MemoryDatabaseStore {
|
|
4
|
-
data = /* @__PURE__ */ new Map();
|
|
5
|
-
lists = /* @__PURE__ */ new Map();
|
|
6
|
-
connected = false;
|
|
7
|
-
constructor() {
|
|
8
|
-
}
|
|
9
|
-
async connect() {
|
|
10
|
-
this.connected = true;
|
|
11
|
-
}
|
|
12
|
-
async disconnect() {
|
|
13
|
-
this.connected = false;
|
|
14
|
-
this.data.clear();
|
|
15
|
-
this.lists.clear();
|
|
16
|
-
}
|
|
17
|
-
isConnected() {
|
|
18
|
-
return this.connected;
|
|
19
|
-
}
|
|
20
|
-
getStoreType() {
|
|
21
|
-
return "memory";
|
|
22
|
-
}
|
|
23
|
-
async get(key) {
|
|
24
|
-
this.checkConnection();
|
|
25
|
-
try {
|
|
26
|
-
return this.data.get(key);
|
|
27
|
-
} catch (error) {
|
|
28
|
-
throw StorageError.readFailed(
|
|
29
|
-
"get",
|
|
30
|
-
error instanceof Error ? error.message : String(error),
|
|
31
|
-
{ key }
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async set(key, value) {
|
|
36
|
-
this.checkConnection();
|
|
37
|
-
try {
|
|
38
|
-
this.data.set(key, value);
|
|
39
|
-
} catch (error) {
|
|
40
|
-
throw StorageError.writeFailed(
|
|
41
|
-
"set",
|
|
42
|
-
error instanceof Error ? error.message : String(error),
|
|
43
|
-
{ key }
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
async delete(key) {
|
|
48
|
-
this.checkConnection();
|
|
49
|
-
this.data.delete(key);
|
|
50
|
-
this.lists.delete(key);
|
|
51
|
-
}
|
|
52
|
-
async list(prefix) {
|
|
53
|
-
this.checkConnection();
|
|
54
|
-
const keys = [];
|
|
55
|
-
for (const key of Array.from(this.data.keys())) {
|
|
56
|
-
if (key.startsWith(prefix)) {
|
|
57
|
-
keys.push(key);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
for (const key of Array.from(this.lists.keys())) {
|
|
61
|
-
if (key.startsWith(prefix)) {
|
|
62
|
-
keys.push(key);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return Array.from(new Set(keys)).sort();
|
|
66
|
-
}
|
|
67
|
-
async append(key, item) {
|
|
68
|
-
this.checkConnection();
|
|
69
|
-
if (!this.lists.has(key)) {
|
|
70
|
-
this.lists.set(key, []);
|
|
71
|
-
}
|
|
72
|
-
this.lists.get(key).push(item);
|
|
73
|
-
}
|
|
74
|
-
async getRange(key, start, count) {
|
|
75
|
-
this.checkConnection();
|
|
76
|
-
const list = this.lists.get(key) || [];
|
|
77
|
-
return list.slice(start, start + count);
|
|
78
|
-
}
|
|
79
|
-
// Helper methods
|
|
80
|
-
checkConnection() {
|
|
81
|
-
if (!this.connected) {
|
|
82
|
-
throw StorageError.notConnected("MemoryDatabaseStore");
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
// Development helpers
|
|
86
|
-
async clear() {
|
|
87
|
-
this.data.clear();
|
|
88
|
-
this.lists.clear();
|
|
89
|
-
}
|
|
90
|
-
async dump() {
|
|
91
|
-
return {
|
|
92
|
-
data: Object.fromEntries(this.data.entries()),
|
|
93
|
-
lists: Object.fromEntries(this.lists.entries())
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
export {
|
|
98
|
-
MemoryDatabaseStore
|
|
99
|
-
};
|
|
@@ -1,342 +0,0 @@
|
|
|
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 __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var postgres_store_exports = {};
|
|
20
|
-
__export(postgres_store_exports, {
|
|
21
|
-
PostgresStore: () => PostgresStore
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(postgres_store_exports);
|
|
24
|
-
var import_pg = require("pg");
|
|
25
|
-
var import_types = require("../../logger/v2/types.js");
|
|
26
|
-
var import_errors = require("../errors.js");
|
|
27
|
-
class PostgresStore {
|
|
28
|
-
constructor(config, logger) {
|
|
29
|
-
this.config = config;
|
|
30
|
-
this.logger = logger.createChild(import_types.DextoLogComponent.STORAGE);
|
|
31
|
-
}
|
|
32
|
-
pool = null;
|
|
33
|
-
connected = false;
|
|
34
|
-
logger;
|
|
35
|
-
async connect() {
|
|
36
|
-
if (this.connected) return;
|
|
37
|
-
const connectionString = this.config.connectionString || this.config.url;
|
|
38
|
-
if (connectionString?.startsWith("$")) {
|
|
39
|
-
throw import_errors.StorageError.connectionFailed(
|
|
40
|
-
`PostgreSQL: Connection string contains unexpanded environment variable: ${connectionString}. Ensure the environment variable is set in your .env file.`
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
if (!connectionString) {
|
|
44
|
-
throw import_errors.StorageError.connectionFailed(
|
|
45
|
-
"PostgreSQL: No connection string provided. Set url or connectionString in database config."
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
const { schema, ...pgOptions } = this.config.options || {};
|
|
49
|
-
this.logger.info("Connecting to PostgreSQL database...");
|
|
50
|
-
this.pool = new import_pg.Pool({
|
|
51
|
-
connectionString,
|
|
52
|
-
max: this.config.maxConnections || 20,
|
|
53
|
-
// Shorter idle timeout for serverless DBs (Neon) - connections go stale quickly
|
|
54
|
-
idleTimeoutMillis: this.config.idleTimeoutMillis || 1e4,
|
|
55
|
-
connectionTimeoutMillis: this.config.connectionTimeoutMillis || 1e4,
|
|
56
|
-
// Enable TCP keepalive to detect dead connections
|
|
57
|
-
keepAlive: true,
|
|
58
|
-
keepAliveInitialDelayMillis: 1e4,
|
|
59
|
-
...pgOptions
|
|
60
|
-
});
|
|
61
|
-
this.pool.on("error", (err) => {
|
|
62
|
-
this.logger.warn(`PostgreSQL pool error (will retry on next query): ${err.message}`);
|
|
63
|
-
});
|
|
64
|
-
if (schema) {
|
|
65
|
-
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(schema)) {
|
|
66
|
-
throw import_errors.StorageError.connectionFailed(
|
|
67
|
-
`PostgreSQL: Invalid schema name "${schema}". Schema names must start with a letter or underscore and contain only alphanumeric characters and underscores.`
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
this.pool.on("connect", async (client2) => {
|
|
71
|
-
try {
|
|
72
|
-
await client2.query(`SET search_path TO "${schema}", public`);
|
|
73
|
-
} catch (err) {
|
|
74
|
-
this.logger.error(`Failed to set search_path to "${schema}": ${err}`);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
this.logger.info(`Using custom schema: "${schema}"`);
|
|
78
|
-
}
|
|
79
|
-
let client;
|
|
80
|
-
try {
|
|
81
|
-
client = await this.pool.connect();
|
|
82
|
-
await client.query("SELECT NOW()");
|
|
83
|
-
if (schema) {
|
|
84
|
-
await this.createSchema(client, schema);
|
|
85
|
-
}
|
|
86
|
-
await this.createTables(client);
|
|
87
|
-
this.connected = true;
|
|
88
|
-
this.logger.info("PostgreSQL database connected successfully");
|
|
89
|
-
} catch (error) {
|
|
90
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
91
|
-
this.logger.error(`PostgreSQL connection failed: ${errorMessage}`);
|
|
92
|
-
if (this.pool) {
|
|
93
|
-
await this.pool.end().catch(() => {
|
|
94
|
-
});
|
|
95
|
-
this.pool = null;
|
|
96
|
-
}
|
|
97
|
-
throw import_errors.StorageError.connectionFailed(`PostgreSQL: ${errorMessage}`);
|
|
98
|
-
} finally {
|
|
99
|
-
if (client) {
|
|
100
|
-
client.release();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Creates a PostgreSQL schema if it doesn't exist.
|
|
106
|
-
*/
|
|
107
|
-
async createSchema(client, schemaName) {
|
|
108
|
-
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(schemaName)) {
|
|
109
|
-
throw import_errors.StorageError.connectionFailed(
|
|
110
|
-
`PostgreSQL: Invalid schema name "${schemaName}". Schema names must start with a letter or underscore and contain only alphanumeric characters and underscores.`
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
try {
|
|
114
|
-
await client.query(`CREATE SCHEMA IF NOT EXISTS "${schemaName}"`);
|
|
115
|
-
this.logger.debug(`Schema "${schemaName}" ready`);
|
|
116
|
-
} catch (error) {
|
|
117
|
-
this.logger.warn(
|
|
118
|
-
`Could not create schema "${schemaName}": ${error}. Assuming it exists.`
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
async disconnect() {
|
|
123
|
-
if (this.pool) {
|
|
124
|
-
await this.pool.end();
|
|
125
|
-
this.pool = null;
|
|
126
|
-
}
|
|
127
|
-
this.connected = false;
|
|
128
|
-
}
|
|
129
|
-
isConnected() {
|
|
130
|
-
return this.connected && this.pool !== null;
|
|
131
|
-
}
|
|
132
|
-
getStoreType() {
|
|
133
|
-
return "postgres";
|
|
134
|
-
}
|
|
135
|
-
// Core operations - all use withRetry for serverless DB resilience
|
|
136
|
-
async get(key) {
|
|
137
|
-
try {
|
|
138
|
-
return await this.withRetry("get", async (client) => {
|
|
139
|
-
const result = await client.query("SELECT value FROM kv WHERE key = $1", [key]);
|
|
140
|
-
return result.rows[0] ? result.rows[0].value : void 0;
|
|
141
|
-
});
|
|
142
|
-
} catch (error) {
|
|
143
|
-
throw import_errors.StorageError.readFailed(
|
|
144
|
-
"get",
|
|
145
|
-
error instanceof Error ? error.message : String(error),
|
|
146
|
-
{ key }
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
async set(key, value) {
|
|
151
|
-
try {
|
|
152
|
-
await this.withRetry("set", async (client) => {
|
|
153
|
-
const jsonValue = JSON.stringify(value);
|
|
154
|
-
await client.query(
|
|
155
|
-
"INSERT INTO kv (key, value, updated_at) VALUES ($1, $2::jsonb, $3) ON CONFLICT (key) DO UPDATE SET value = $2::jsonb, updated_at = $3",
|
|
156
|
-
[key, jsonValue, /* @__PURE__ */ new Date()]
|
|
157
|
-
);
|
|
158
|
-
});
|
|
159
|
-
} catch (error) {
|
|
160
|
-
throw import_errors.StorageError.writeFailed(
|
|
161
|
-
"set",
|
|
162
|
-
error instanceof Error ? error.message : String(error),
|
|
163
|
-
{ key }
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
async delete(key) {
|
|
168
|
-
await this.withRetry("delete", async (client) => {
|
|
169
|
-
await client.query("BEGIN");
|
|
170
|
-
try {
|
|
171
|
-
await client.query("DELETE FROM kv WHERE key = $1", [key]);
|
|
172
|
-
await client.query("DELETE FROM lists WHERE key = $1", [key]);
|
|
173
|
-
await client.query("COMMIT");
|
|
174
|
-
} catch (error) {
|
|
175
|
-
await client.query("ROLLBACK");
|
|
176
|
-
throw error;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
// List operations
|
|
181
|
-
async list(prefix) {
|
|
182
|
-
return await this.withRetry("list", async (client) => {
|
|
183
|
-
const kvResult = await client.query("SELECT key FROM kv WHERE key LIKE $1", [
|
|
184
|
-
`${prefix}%`
|
|
185
|
-
]);
|
|
186
|
-
const listResult = await client.query(
|
|
187
|
-
"SELECT DISTINCT key FROM lists WHERE key LIKE $1",
|
|
188
|
-
[`${prefix}%`]
|
|
189
|
-
);
|
|
190
|
-
const allKeys = /* @__PURE__ */ new Set([
|
|
191
|
-
...kvResult.rows.map((row) => row.key),
|
|
192
|
-
...listResult.rows.map((row) => row.key)
|
|
193
|
-
]);
|
|
194
|
-
return Array.from(allKeys).sort();
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
async append(key, item) {
|
|
198
|
-
try {
|
|
199
|
-
await this.withRetry("append", async (client) => {
|
|
200
|
-
const jsonItem = JSON.stringify(item);
|
|
201
|
-
await client.query(
|
|
202
|
-
"INSERT INTO lists (key, item, created_at) VALUES ($1, $2::jsonb, $3)",
|
|
203
|
-
[key, jsonItem, /* @__PURE__ */ new Date()]
|
|
204
|
-
);
|
|
205
|
-
});
|
|
206
|
-
} catch (error) {
|
|
207
|
-
throw import_errors.StorageError.writeFailed(
|
|
208
|
-
"append",
|
|
209
|
-
error instanceof Error ? error.message : String(error),
|
|
210
|
-
{ key }
|
|
211
|
-
);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
async getRange(key, start, count) {
|
|
215
|
-
return await this.withRetry("getRange", async (client) => {
|
|
216
|
-
const result = await client.query(
|
|
217
|
-
"SELECT item FROM lists WHERE key = $1 ORDER BY created_at ASC LIMIT $2 OFFSET $3",
|
|
218
|
-
[key, count, start]
|
|
219
|
-
);
|
|
220
|
-
return result.rows.map((row) => row.item);
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
// Schema management
|
|
224
|
-
async createTables(client) {
|
|
225
|
-
await client.query(`
|
|
226
|
-
CREATE TABLE IF NOT EXISTS kv (
|
|
227
|
-
key VARCHAR(255) PRIMARY KEY,
|
|
228
|
-
value JSONB NOT NULL,
|
|
229
|
-
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
|
230
|
-
)
|
|
231
|
-
`);
|
|
232
|
-
await client.query(`
|
|
233
|
-
CREATE TABLE IF NOT EXISTS lists (
|
|
234
|
-
id BIGSERIAL PRIMARY KEY,
|
|
235
|
-
key VARCHAR(255) NOT NULL,
|
|
236
|
-
item JSONB NOT NULL,
|
|
237
|
-
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
|
238
|
-
)
|
|
239
|
-
`);
|
|
240
|
-
await client.query("CREATE INDEX IF NOT EXISTS idx_kv_key ON kv(key)");
|
|
241
|
-
await client.query("CREATE INDEX IF NOT EXISTS idx_lists_key ON lists(key)");
|
|
242
|
-
await client.query(
|
|
243
|
-
"CREATE INDEX IF NOT EXISTS idx_lists_created_at ON lists(key, created_at DESC)"
|
|
244
|
-
);
|
|
245
|
-
}
|
|
246
|
-
checkConnection() {
|
|
247
|
-
if (!this.connected || !this.pool) {
|
|
248
|
-
throw import_errors.StorageError.notConnected("PostgresStore");
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Check if an error is a connection error that should trigger a retry.
|
|
253
|
-
* Common with serverless databases (Neon) where connections go stale.
|
|
254
|
-
*/
|
|
255
|
-
isConnectionError(error) {
|
|
256
|
-
if (!(error instanceof Error)) return false;
|
|
257
|
-
const code = error.code;
|
|
258
|
-
return code === "ETIMEDOUT" || code === "ECONNRESET" || code === "ECONNREFUSED" || code === "EPIPE" || code === "57P01" || // admin_shutdown
|
|
259
|
-
code === "57P02" || // crash_shutdown
|
|
260
|
-
code === "57P03" || // cannot_connect_now
|
|
261
|
-
error.message.includes("Connection terminated") || error.message.includes("connection lost");
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Execute a database operation with automatic retry on connection errors.
|
|
265
|
-
* Handles serverless DB connection issues (Neon cold starts, stale connections).
|
|
266
|
-
*/
|
|
267
|
-
async withRetry(operation, fn, maxRetries = 2) {
|
|
268
|
-
this.checkConnection();
|
|
269
|
-
let lastError;
|
|
270
|
-
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
271
|
-
let client;
|
|
272
|
-
try {
|
|
273
|
-
client = await this.pool.connect();
|
|
274
|
-
const result = await fn(client);
|
|
275
|
-
return result;
|
|
276
|
-
} catch (error) {
|
|
277
|
-
lastError = error instanceof Error ? error : new Error(String(error));
|
|
278
|
-
if (client) {
|
|
279
|
-
client.release(true);
|
|
280
|
-
client = void 0;
|
|
281
|
-
}
|
|
282
|
-
if (this.isConnectionError(error) && attempt < maxRetries) {
|
|
283
|
-
this.logger.warn(
|
|
284
|
-
`PostgreSQL ${operation} failed with connection error (attempt ${attempt + 1}/${maxRetries + 1}): ${lastError.message}. Retrying...`
|
|
285
|
-
);
|
|
286
|
-
await new Promise((resolve) => setTimeout(resolve, 100 * (attempt + 1)));
|
|
287
|
-
continue;
|
|
288
|
-
}
|
|
289
|
-
throw error;
|
|
290
|
-
} finally {
|
|
291
|
-
if (client) {
|
|
292
|
-
client.release();
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
throw lastError;
|
|
297
|
-
}
|
|
298
|
-
// Advanced operations
|
|
299
|
-
/**
|
|
300
|
-
* Execute a callback within a database transaction.
|
|
301
|
-
* Note: On connection failure, the entire callback will be retried on a new connection.
|
|
302
|
-
* Ensure callback operations are idempotent or use this only for read operations.
|
|
303
|
-
*/
|
|
304
|
-
async transaction(callback) {
|
|
305
|
-
return await this.withRetry("transaction", async (client) => {
|
|
306
|
-
await client.query("BEGIN");
|
|
307
|
-
try {
|
|
308
|
-
const result = await callback(client);
|
|
309
|
-
await client.query("COMMIT");
|
|
310
|
-
return result;
|
|
311
|
-
} catch (error) {
|
|
312
|
-
await client.query("ROLLBACK");
|
|
313
|
-
throw error;
|
|
314
|
-
}
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
async getStats() {
|
|
318
|
-
return await this.withRetry("getStats", async (client) => {
|
|
319
|
-
const kvResult = await client.query("SELECT COUNT(*) as count FROM kv");
|
|
320
|
-
const listResult = await client.query("SELECT COUNT(*) as count FROM lists");
|
|
321
|
-
const sizeResult = await client.query(
|
|
322
|
-
"SELECT pg_size_pretty(pg_total_relation_size($1)) as size",
|
|
323
|
-
["kv"]
|
|
324
|
-
);
|
|
325
|
-
return {
|
|
326
|
-
kvCount: parseInt(kvResult.rows[0].count),
|
|
327
|
-
listCount: parseInt(listResult.rows[0].count),
|
|
328
|
-
totalSize: sizeResult.rows[0].size
|
|
329
|
-
};
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
// Maintenance operations
|
|
333
|
-
async vacuum() {
|
|
334
|
-
await this.withRetry("vacuum", async (client) => {
|
|
335
|
-
await client.query("VACUUM ANALYZE kv, lists");
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
340
|
-
0 && (module.exports = {
|
|
341
|
-
PostgresStore
|
|
342
|
-
});
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { PoolClient } from 'pg';
|
|
2
|
-
import type { Database } from './types.js';
|
|
3
|
-
import type { PostgresDatabaseConfig } from './schemas.js';
|
|
4
|
-
import type { IDextoLogger } from '../../logger/v2/types.js';
|
|
5
|
-
/**
|
|
6
|
-
* PostgreSQL database store for production database operations.
|
|
7
|
-
* Implements the Database interface with connection pooling and JSONB support.
|
|
8
|
-
* EXPERIMENTAL - NOT FULLY TESTED YET
|
|
9
|
-
*/
|
|
10
|
-
export declare class PostgresStore implements Database {
|
|
11
|
-
private config;
|
|
12
|
-
private pool;
|
|
13
|
-
private connected;
|
|
14
|
-
private logger;
|
|
15
|
-
constructor(config: PostgresDatabaseConfig, logger: IDextoLogger);
|
|
16
|
-
connect(): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Creates a PostgreSQL schema if it doesn't exist.
|
|
19
|
-
*/
|
|
20
|
-
private createSchema;
|
|
21
|
-
disconnect(): Promise<void>;
|
|
22
|
-
isConnected(): boolean;
|
|
23
|
-
getStoreType(): string;
|
|
24
|
-
get<T>(key: string): Promise<T | undefined>;
|
|
25
|
-
set<T>(key: string, value: T): Promise<void>;
|
|
26
|
-
delete(key: string): Promise<void>;
|
|
27
|
-
list(prefix: string): Promise<string[]>;
|
|
28
|
-
append<T>(key: string, item: T): Promise<void>;
|
|
29
|
-
getRange<T>(key: string, start: number, count: number): Promise<T[]>;
|
|
30
|
-
private createTables;
|
|
31
|
-
private checkConnection;
|
|
32
|
-
/**
|
|
33
|
-
* Check if an error is a connection error that should trigger a retry.
|
|
34
|
-
* Common with serverless databases (Neon) where connections go stale.
|
|
35
|
-
*/
|
|
36
|
-
private isConnectionError;
|
|
37
|
-
/**
|
|
38
|
-
* Execute a database operation with automatic retry on connection errors.
|
|
39
|
-
* Handles serverless DB connection issues (Neon cold starts, stale connections).
|
|
40
|
-
*/
|
|
41
|
-
private withRetry;
|
|
42
|
-
/**
|
|
43
|
-
* Execute a callback within a database transaction.
|
|
44
|
-
* Note: On connection failure, the entire callback will be retried on a new connection.
|
|
45
|
-
* Ensure callback operations are idempotent or use this only for read operations.
|
|
46
|
-
*/
|
|
47
|
-
transaction<T>(callback: (client: PoolClient) => Promise<T>): Promise<T>;
|
|
48
|
-
getStats(): Promise<{
|
|
49
|
-
kvCount: number;
|
|
50
|
-
listCount: number;
|
|
51
|
-
totalSize: string;
|
|
52
|
-
}>;
|
|
53
|
-
vacuum(): Promise<void>;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=postgres-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-store.d.ts","sourceRoot":"","sources":["../../../src/storage/database/postgres-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D;;;;GAIG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAMtC,OAAO,CAAC,MAAM;IALlB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAe;gBAGjB,MAAM,EAAE,sBAAsB,EACtC,MAAM,EAAE,YAAY;IAKlB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+F9B;;OAEG;YACW,YAAY;IAmBpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,WAAW,IAAI,OAAO;IAItB,YAAY,IAAI,MAAM;IAKhB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAe3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAelC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBvC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;YAW5D,YAAY;IA4B1B,OAAO,CAAC,eAAe;IAMvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;YACW,SAAS;IA8CvB;;;;OAIG;IACG,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAcxE,QAAQ,IAAI,OAAO,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IAkBI,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
|