@dexto/core 1.4.0 → 1.5.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 +36 -0
- package/dist/agent/DextoAgent.cjs +22 -3
- package/dist/agent/DextoAgent.d.ts +19 -2
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +23 -4
- package/dist/agent/index.cjs +4 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +5 -1
- package/dist/agent/schemas.cjs +90 -71
- package/dist/agent/schemas.d.ts +5911 -96
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +87 -66
- package/dist/approval/manager.cjs +165 -1
- package/dist/approval/manager.d.ts +91 -2
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +155 -1
- package/dist/approval/schemas.cjs +39 -3
- package/dist/approval/schemas.d.ts +238 -1
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +35 -3
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +26 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -0
- package/dist/context/compaction/factory.cjs +57 -0
- package/dist/context/compaction/factory.d.ts +17 -0
- package/dist/context/compaction/factory.d.ts.map +1 -0
- package/dist/context/compaction/factory.js +34 -0
- package/dist/context/compaction/index.cjs +49 -0
- package/dist/context/compaction/index.d.ts +11 -0
- package/dist/context/compaction/index.d.ts.map +1 -0
- package/dist/context/compaction/index.js +19 -0
- package/dist/context/{compression → compaction}/overflow.cjs +3 -3
- package/dist/context/{compression → compaction}/overflow.d.ts +4 -4
- package/dist/context/compaction/overflow.d.ts.map +1 -0
- package/dist/context/{compression → compaction}/overflow.js +2 -2
- package/dist/context/compaction/provider.cjs +16 -0
- package/dist/context/compaction/provider.d.ts +48 -0
- package/dist/context/compaction/provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.cjs +48 -0
- package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
- package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.js +24 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
- package/dist/context/compaction/registry.cjs +39 -0
- package/dist/context/compaction/registry.d.ts +19 -0
- package/dist/context/compaction/registry.d.ts.map +1 -0
- package/dist/context/compaction/registry.js +16 -0
- package/dist/context/compaction/schemas.cjs +38 -0
- package/dist/context/compaction/schemas.d.ts +24 -0
- package/dist/context/compaction/schemas.d.ts.map +1 -0
- package/dist/context/compaction/schemas.js +14 -0
- package/dist/context/compaction/strategies/noop.cjs +36 -0
- package/dist/context/compaction/strategies/noop.d.ts +18 -0
- package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
- package/dist/context/compaction/strategies/noop.js +13 -0
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.cjs +3 -3
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.d.ts +6 -6
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.js +4 -4
- package/dist/context/{compression → compaction}/types.d.ts +4 -4
- package/dist/context/compaction/types.d.ts.map +1 -0
- package/dist/context/compaction/types.js +0 -0
- package/dist/context/error-codes.cjs +4 -0
- package/dist/context/error-codes.d.ts +4 -0
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +4 -0
- package/dist/context/errors.cjs +40 -0
- package/dist/context/errors.d.ts +14 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +40 -0
- package/dist/context/index.cjs +3 -1
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +1 -0
- package/dist/context/types.d.ts +6 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/utils.cjs +27 -7
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +27 -7
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +2 -3
- package/dist/events/index.cjs +2 -2
- package/dist/events/index.d.ts +16 -16
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +2 -2
- package/dist/filesystem/filesystem-service.cjs +39 -0
- package/dist/filesystem/filesystem-service.d.ts +32 -0
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +39 -0
- package/dist/filesystem/index.d.ts +1 -1
- package/dist/filesystem/index.d.ts.map +1 -1
- package/dist/filesystem/path-validator.cjs +69 -1
- package/dist/filesystem/path-validator.d.ts +43 -2
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +69 -1
- package/dist/image/define-image.cjs +146 -0
- package/dist/image/define-image.d.ts +71 -0
- package/dist/image/define-image.d.ts.map +1 -0
- package/dist/image/define-image.js +121 -0
- package/dist/image/index.cjs +32 -0
- package/dist/image/index.d.ts +53 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/index.js +7 -0
- package/dist/image/types.cjs +16 -0
- package/dist/image/types.d.ts +231 -0
- package/dist/image/types.d.ts.map +1 -0
- package/dist/image/types.js +0 -0
- package/dist/index.cjs +5 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/llm/error-codes.cjs +1 -0
- package/dist/llm/error-codes.d.ts +1 -0
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +1 -0
- package/dist/llm/errors.cjs +24 -0
- package/dist/llm/errors.d.ts +19 -6
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +24 -0
- package/dist/llm/executor/stream-processor.cjs +11 -3
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +11 -3
- package/dist/llm/executor/turn-executor.cjs +50 -23
- package/dist/llm/executor/turn-executor.d.ts +6 -5
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +50 -23
- package/dist/llm/formatters/vercel.cjs +6 -2
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +6 -2
- package/dist/llm/index.cjs +18 -1
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +14 -0
- package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
- package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
- package/dist/llm/providers/local/downloader.cjs +291 -0
- package/dist/llm/providers/local/downloader.d.ts +82 -0
- package/dist/llm/providers/local/downloader.d.ts.map +1 -0
- package/dist/llm/providers/local/downloader.js +251 -0
- package/dist/llm/providers/local/error-codes.cjs +57 -0
- package/dist/llm/providers/local/error-codes.d.ts +66 -0
- package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
- package/dist/llm/providers/local/error-codes.js +34 -0
- package/dist/llm/providers/local/errors.cjs +240 -0
- package/dist/llm/providers/local/errors.d.ts +31 -0
- package/dist/llm/providers/local/errors.d.ts.map +1 -0
- package/dist/llm/providers/local/errors.js +217 -0
- package/dist/llm/providers/local/gpu-detector.cjs +214 -0
- package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
- package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
- package/dist/llm/providers/local/gpu-detector.js +178 -0
- package/dist/llm/providers/local/index.cjs +147 -0
- package/dist/llm/providers/local/index.d.ts +21 -0
- package/dist/llm/providers/local/index.d.ts.map +1 -0
- package/dist/llm/providers/local/index.js +126 -0
- package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/node-llama-provider.js +176 -0
- package/dist/llm/providers/local/ollama-provider.cjs +230 -0
- package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
- package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/ollama-provider.js +198 -0
- package/dist/llm/providers/local/registry.cjs +343 -0
- package/dist/llm/providers/local/registry.d.ts +51 -0
- package/dist/llm/providers/local/registry.d.ts.map +1 -0
- package/dist/llm/providers/local/registry.js +312 -0
- package/dist/llm/providers/local/schemas.cjs +169 -0
- package/dist/llm/providers/local/schemas.d.ts +395 -0
- package/dist/llm/providers/local/schemas.d.ts.map +1 -0
- package/dist/llm/providers/local/schemas.js +133 -0
- package/dist/llm/providers/local/types.cjs +16 -0
- package/dist/llm/providers/local/types.d.ts +219 -0
- package/dist/llm/providers/local/types.d.ts.map +1 -0
- package/dist/llm/providers/local/types.js +0 -0
- package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
- package/dist/llm/providers/openrouter-model-registry.js +309 -0
- package/dist/llm/registry.cjs +535 -9
- package/dist/llm/registry.d.ts +26 -0
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +532 -9
- package/dist/llm/resolver.cjs +63 -5
- package/dist/llm/resolver.d.ts +3 -3
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +69 -6
- package/dist/llm/schemas.cjs +90 -80
- package/dist/llm/schemas.d.ts +158 -22
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +90 -80
- package/dist/llm/services/factory.cjs +87 -13
- package/dist/llm/services/factory.d.ts +4 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +85 -12
- package/dist/llm/services/test-utils.integration.cjs +22 -2
- package/dist/llm/services/test-utils.integration.d.ts +7 -1
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +26 -3
- package/dist/llm/services/vercel.cjs +5 -2
- package/dist/llm/services/vercel.d.ts +3 -2
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +5 -2
- package/dist/llm/types.cjs +11 -1
- package/dist/llm/types.d.ts +1 -1
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +11 -1
- package/dist/mcp/manager.cjs +8 -0
- package/dist/mcp/manager.d.ts +17 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +8 -0
- package/dist/mcp/mcp-client.cjs +0 -3
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +0 -3
- package/dist/memory/schemas.d.ts +1 -1
- package/dist/plugins/error-codes.cjs +3 -0
- package/dist/plugins/error-codes.d.ts +7 -1
- package/dist/plugins/error-codes.d.ts.map +1 -1
- package/dist/plugins/error-codes.js +3 -0
- package/dist/plugins/index.cjs +7 -0
- package/dist/plugins/index.d.ts +4 -2
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +6 -1
- package/dist/plugins/manager.cjs +92 -7
- package/dist/plugins/manager.d.ts +10 -3
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +92 -7
- package/dist/plugins/registry.cjs +63 -0
- package/dist/plugins/registry.d.ts +101 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +39 -0
- package/dist/plugins/schemas.cjs +17 -5
- package/dist/plugins/schemas.d.ts +62 -5
- package/dist/plugins/schemas.d.ts.map +1 -1
- package/dist/plugins/schemas.js +15 -4
- package/dist/providers/base-registry.cjs +147 -0
- package/dist/providers/base-registry.d.ts +147 -0
- package/dist/providers/base-registry.d.ts.map +1 -0
- package/dist/providers/base-registry.js +123 -0
- package/dist/providers/discovery.cjs +95 -0
- package/dist/providers/discovery.d.ts +94 -0
- package/dist/providers/discovery.d.ts.map +1 -0
- package/dist/providers/discovery.js +70 -0
- package/dist/providers/index.cjs +24 -0
- package/dist/providers/index.d.ts +32 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +2 -0
- package/dist/resources/reference-parser.cjs +3 -3
- package/dist/resources/reference-parser.d.ts.map +1 -1
- package/dist/resources/reference-parser.js +3 -3
- package/dist/session/chat-session.cjs +20 -3
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +21 -4
- package/dist/storage/blob/factory.cjs +8 -11
- package/dist/storage/blob/factory.d.ts +32 -6
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -11
- package/dist/storage/blob/index.cjs +56 -0
- package/dist/storage/blob/index.d.ts +45 -0
- package/dist/storage/blob/index.d.ts.map +1 -0
- package/dist/storage/blob/index.js +30 -0
- package/dist/storage/blob/provider.cjs +16 -0
- package/dist/storage/blob/provider.d.ts +50 -0
- package/dist/storage/blob/provider.d.ts.map +1 -0
- package/dist/storage/blob/provider.js +0 -0
- package/dist/storage/blob/providers/index.cjs +31 -0
- package/dist/storage/blob/providers/index.d.ts +8 -0
- package/dist/storage/blob/providers/index.d.ts.map +1 -0
- package/dist/storage/blob/providers/index.js +7 -0
- package/dist/storage/blob/providers/local.cjs +39 -0
- package/dist/storage/blob/providers/local.d.ts +17 -0
- package/dist/storage/blob/providers/local.d.ts.map +1 -0
- package/dist/storage/blob/providers/local.js +16 -0
- package/dist/storage/blob/providers/memory.cjs +39 -0
- package/dist/storage/blob/providers/memory.d.ts +17 -0
- package/dist/storage/blob/providers/memory.d.ts.map +1 -0
- package/dist/storage/blob/providers/memory.js +16 -0
- package/dist/storage/blob/registry.cjs +50 -0
- package/dist/storage/blob/registry.d.ts +42 -0
- package/dist/storage/blob/registry.d.ts.map +1 -0
- package/dist/storage/blob/registry.js +26 -0
- package/dist/storage/blob/schemas.cjs +9 -12
- package/dist/storage/blob/schemas.d.ts +39 -34
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +6 -11
- package/dist/storage/cache/factory.cjs +8 -36
- package/dist/storage/cache/factory.d.ts +32 -7
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +8 -26
- package/dist/storage/cache/index.cjs +53 -0
- package/dist/storage/cache/index.d.ts +44 -0
- package/dist/storage/cache/index.d.ts.map +1 -0
- package/dist/storage/cache/index.js +28 -0
- package/dist/storage/cache/provider.cjs +16 -0
- package/dist/storage/cache/provider.d.ts +56 -0
- package/dist/storage/cache/provider.d.ts.map +1 -0
- package/dist/storage/cache/provider.js +0 -0
- package/dist/storage/cache/providers/index.cjs +31 -0
- package/dist/storage/cache/providers/index.d.ts +8 -0
- package/dist/storage/cache/providers/index.d.ts.map +1 -0
- package/dist/storage/cache/providers/index.js +7 -0
- package/dist/storage/cache/providers/memory.cjs +40 -0
- package/dist/storage/cache/providers/memory.d.ts +17 -0
- package/dist/storage/cache/providers/memory.d.ts.map +1 -0
- package/dist/storage/cache/providers/memory.js +17 -0
- package/dist/storage/cache/providers/redis.cjs +66 -0
- package/dist/storage/cache/providers/redis.d.ts +20 -0
- package/dist/storage/cache/providers/redis.d.ts.map +1 -0
- package/dist/storage/cache/providers/redis.js +33 -0
- package/dist/storage/cache/registry.cjs +50 -0
- package/dist/storage/cache/registry.d.ts +42 -0
- package/dist/storage/cache/registry.d.ts.map +1 -0
- package/dist/storage/cache/registry.js +26 -0
- package/dist/storage/cache/schemas.cjs +6 -2
- package/dist/storage/cache/schemas.d.ts +2 -3
- package/dist/storage/cache/schemas.d.ts.map +1 -1
- package/dist/storage/cache/schemas.js +3 -1
- package/dist/storage/database/factory.cjs +8 -47
- package/dist/storage/database/factory.d.ts +34 -8
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +8 -37
- package/dist/storage/database/index.cjs +58 -0
- package/dist/storage/database/index.d.ts +45 -0
- package/dist/storage/database/index.d.ts.map +1 -0
- package/dist/storage/database/index.js +37 -0
- package/dist/storage/database/provider.cjs +16 -0
- package/dist/storage/database/provider.d.ts +56 -0
- package/dist/storage/database/provider.d.ts.map +1 -0
- package/dist/storage/database/provider.js +0 -0
- package/dist/storage/database/providers/index.cjs +34 -0
- package/dist/storage/database/providers/index.d.ts +9 -0
- package/dist/storage/database/providers/index.d.ts.map +1 -0
- package/dist/storage/database/providers/index.js +9 -0
- package/dist/storage/database/providers/memory.cjs +40 -0
- package/dist/storage/database/providers/memory.d.ts +16 -0
- package/dist/storage/database/providers/memory.d.ts.map +1 -0
- package/dist/storage/database/providers/memory.js +17 -0
- package/dist/storage/database/providers/postgres.cjs +62 -0
- package/dist/storage/database/providers/postgres.d.ts +19 -0
- package/dist/storage/database/providers/postgres.d.ts.map +1 -0
- package/dist/storage/database/providers/postgres.js +29 -0
- package/dist/storage/database/providers/sqlite.cjs +66 -0
- package/dist/storage/database/providers/sqlite.d.ts +20 -0
- package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
- package/dist/storage/database/providers/sqlite.js +33 -0
- package/dist/storage/database/registry.cjs +50 -0
- package/dist/storage/database/registry.d.ts +42 -0
- package/dist/storage/database/registry.d.ts.map +1 -0
- package/dist/storage/database/registry.js +26 -0
- package/dist/storage/database/schemas.cjs +8 -2
- package/dist/storage/database/schemas.d.ts +3 -4
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +4 -1
- package/dist/storage/error-codes.cjs +6 -0
- package/dist/storage/error-codes.d.ts +7 -1
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +6 -0
- package/dist/storage/errors.cjs +80 -0
- package/dist/storage/errors.d.ts +24 -0
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +80 -0
- package/dist/storage/index.cjs +47 -4
- package/dist/storage/index.d.ts +34 -8
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +32 -3
- package/dist/storage/schemas.cjs +4 -0
- package/dist/storage/schemas.d.ts +17 -50
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +5 -1
- package/dist/storage/storage-manager.cjs +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +3 -3
- package/dist/systemPrompt/in-built-prompts.cjs +7 -6
- package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +6 -5
- package/dist/systemPrompt/registry.cjs +2 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +2 -2
- package/dist/systemPrompt/schemas.cjs +2 -2
- package/dist/systemPrompt/schemas.d.ts +13 -13
- package/dist/systemPrompt/schemas.js +2 -2
- package/dist/tools/custom-tool-registry.cjs +64 -0
- package/dist/tools/custom-tool-registry.d.ts +120 -0
- package/dist/tools/custom-tool-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-registry.js +40 -0
- package/dist/tools/custom-tool-schema-registry.cjs +164 -0
- package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
- package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-schema-registry.js +140 -0
- package/dist/tools/error-codes.cjs +3 -0
- package/dist/tools/error-codes.d.ts +4 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +3 -0
- package/dist/tools/errors.cjs +41 -0
- package/dist/tools/errors.d.ts +17 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +41 -0
- package/dist/tools/index.cjs +13 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -1
- package/dist/tools/internal-tools/constants.cjs +3 -9
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +3 -9
- package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
- package/dist/tools/internal-tools/provider.cjs +150 -23
- package/dist/tools/internal-tools/provider.d.ts +55 -10
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +150 -23
- package/dist/tools/internal-tools/registry.cjs +18 -43
- package/dist/tools/internal-tools/registry.d.ts +4 -4
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +18 -43
- package/dist/tools/schemas.cjs +20 -0
- package/dist/tools/schemas.d.ts +43 -1
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +16 -0
- package/dist/tools/tool-manager.cjs +140 -13
- package/dist/tools/tool-manager.d.ts +22 -3
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +140 -13
- package/dist/tools/types.d.ts +43 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.cjs +19 -1
- package/dist/utils/api-key-resolver.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +19 -1
- package/dist/utils/index.cjs +0 -2
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/redactor.cjs +18 -3
- package/dist/utils/redactor.d.ts +0 -7
- package/dist/utils/redactor.d.ts.map +1 -1
- package/dist/utils/redactor.js +18 -3
- package/dist/utils/service-initializer.cjs +9 -35
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +9 -35
- package/package.json +5 -2
- package/dist/context/compression/overflow.d.ts.map +0 -1
- package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
- package/dist/context/compression/types.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
- package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
- package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
- package/dist/utils/env-file.cjs +0 -118
- package/dist/utils/env-file.d.ts +0 -5
- package/dist/utils/env-file.d.ts.map +0 -1
- package/dist/utils/env-file.js +0 -85
- /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
- /package/dist/context/{compression → compaction}/types.cjs +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for native local model support via node-llama-cpp and Ollama.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* GPU acceleration backends supported by node-llama-cpp.
|
|
6
|
+
* - metal: Apple Silicon (M1/M2/M3) via Metal API
|
|
7
|
+
* - cuda: NVIDIA GPUs via CUDA
|
|
8
|
+
* - vulkan: Cross-platform GPU acceleration
|
|
9
|
+
* - cpu: CPU-only execution (fallback)
|
|
10
|
+
*/
|
|
11
|
+
export type GPUBackend = 'metal' | 'cuda' | 'vulkan' | 'cpu';
|
|
12
|
+
/**
|
|
13
|
+
* Common GGUF quantization types.
|
|
14
|
+
* Lower quantization = smaller file size, slightly lower quality.
|
|
15
|
+
* Q4_K_M is a good balance for most use cases.
|
|
16
|
+
*/
|
|
17
|
+
export type QuantizationType = 'Q2_K' | 'Q3_K_S' | 'Q3_K_M' | 'Q3_K_L' | 'Q4_0' | 'Q4_K_S' | 'Q4_K_M' | 'Q5_0' | 'Q5_K_S' | 'Q5_K_M' | 'Q6_K' | 'Q8_0' | 'F16' | 'F32';
|
|
18
|
+
/**
|
|
19
|
+
* Categories for organizing local models in the UI.
|
|
20
|
+
*/
|
|
21
|
+
export type LocalModelCategory = 'general' | 'coding' | 'reasoning' | 'small' | 'vision';
|
|
22
|
+
/**
|
|
23
|
+
* Model source - where the model can be downloaded from.
|
|
24
|
+
*/
|
|
25
|
+
export type ModelSource = 'huggingface' | 'ollama';
|
|
26
|
+
/**
|
|
27
|
+
* Curated local model entry from the registry.
|
|
28
|
+
* These are pre-vetted models with known configurations.
|
|
29
|
+
*/
|
|
30
|
+
export interface LocalModelInfo {
|
|
31
|
+
/** Unique identifier (e.g., 'llama-3.3-8b-q4') */
|
|
32
|
+
id: string;
|
|
33
|
+
/** Human-readable display name */
|
|
34
|
+
name: string;
|
|
35
|
+
/** Short description of the model's capabilities */
|
|
36
|
+
description: string;
|
|
37
|
+
/** HuggingFace repository ID (e.g., 'bartowski/Llama-3.3-8B-Instruct-GGUF') */
|
|
38
|
+
huggingfaceId: string;
|
|
39
|
+
/** Filename of the GGUF file to download */
|
|
40
|
+
filename: string;
|
|
41
|
+
/** Quantization level */
|
|
42
|
+
quantization: QuantizationType;
|
|
43
|
+
/** Expected file size in bytes (for progress estimation) */
|
|
44
|
+
sizeBytes: number;
|
|
45
|
+
/** Maximum context window size in tokens */
|
|
46
|
+
contextLength: number;
|
|
47
|
+
/** Model categories for filtering */
|
|
48
|
+
categories: LocalModelCategory[];
|
|
49
|
+
/** Minimum VRAM required in GB (for GPU inference) */
|
|
50
|
+
minVRAM?: number;
|
|
51
|
+
/** Minimum RAM required in GB (for CPU inference) */
|
|
52
|
+
minRAM?: number;
|
|
53
|
+
/** Whether this model is recommended (featured in UI) */
|
|
54
|
+
recommended?: boolean;
|
|
55
|
+
/** Model author/organization */
|
|
56
|
+
author?: string;
|
|
57
|
+
/** License type (e.g., 'llama3.3', 'apache-2.0', 'mit') */
|
|
58
|
+
license?: string;
|
|
59
|
+
/** Whether model supports vision/images */
|
|
60
|
+
supportsVision?: boolean;
|
|
61
|
+
/** Whether model supports tool/function calling */
|
|
62
|
+
supportsTools?: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* State of a model download.
|
|
66
|
+
*/
|
|
67
|
+
export type ModelDownloadStatus = 'pending' | 'downloading' | 'verifying' | 'complete' | 'error';
|
|
68
|
+
/**
|
|
69
|
+
* Progress information for a model download.
|
|
70
|
+
* Emitted via events during download.
|
|
71
|
+
*/
|
|
72
|
+
export interface ModelDownloadProgress {
|
|
73
|
+
/** Model ID being downloaded */
|
|
74
|
+
modelId: string;
|
|
75
|
+
/** Current download status */
|
|
76
|
+
status: ModelDownloadStatus;
|
|
77
|
+
/** Bytes downloaded so far */
|
|
78
|
+
bytesDownloaded: number;
|
|
79
|
+
/** Total file size in bytes */
|
|
80
|
+
totalBytes: number;
|
|
81
|
+
/** Download progress as percentage (0-100) */
|
|
82
|
+
percentage: number;
|
|
83
|
+
/** Download speed in bytes per second */
|
|
84
|
+
speed?: number;
|
|
85
|
+
/** Estimated time remaining in seconds */
|
|
86
|
+
eta?: number;
|
|
87
|
+
/** Error message if status is 'error' */
|
|
88
|
+
error?: string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* GPU detection result.
|
|
92
|
+
*/
|
|
93
|
+
export interface GPUInfo {
|
|
94
|
+
/** Detected GPU backend */
|
|
95
|
+
backend: GPUBackend;
|
|
96
|
+
/** Whether GPU acceleration is available */
|
|
97
|
+
available: boolean;
|
|
98
|
+
/** GPU device name (e.g., 'Apple M2 Pro', 'NVIDIA RTX 4090') */
|
|
99
|
+
deviceName?: string;
|
|
100
|
+
/** Available VRAM in megabytes */
|
|
101
|
+
vramMB?: number;
|
|
102
|
+
/** GPU driver version */
|
|
103
|
+
driverVersion?: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Extended LLM configuration for local models.
|
|
107
|
+
* Extends the base config with local-specific options.
|
|
108
|
+
*/
|
|
109
|
+
export interface LocalLLMConfig {
|
|
110
|
+
/** Provider type */
|
|
111
|
+
provider: 'local' | 'ollama';
|
|
112
|
+
/** Model ID from local registry or custom GGUF path */
|
|
113
|
+
model: string;
|
|
114
|
+
/** Number of layers to offload to GPU (-1 = auto, 0 = CPU only) */
|
|
115
|
+
gpuLayers?: number;
|
|
116
|
+
/** Override context size (tokens) */
|
|
117
|
+
contextSize?: number;
|
|
118
|
+
/** Number of CPU threads to use */
|
|
119
|
+
threads?: number;
|
|
120
|
+
/** Inference batch size */
|
|
121
|
+
batchSize?: number;
|
|
122
|
+
/** Path to model file (resolved from model ID) */
|
|
123
|
+
modelPath?: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Installed model metadata (persisted to state file).
|
|
127
|
+
*/
|
|
128
|
+
export interface InstalledModel {
|
|
129
|
+
/** Model ID from registry */
|
|
130
|
+
id: string;
|
|
131
|
+
/** Absolute path to the .gguf file */
|
|
132
|
+
filePath: string;
|
|
133
|
+
/** File size in bytes */
|
|
134
|
+
sizeBytes: number;
|
|
135
|
+
/** When the model was downloaded (ISO timestamp) */
|
|
136
|
+
downloadedAt: string;
|
|
137
|
+
/** When the model was last used (ISO timestamp) */
|
|
138
|
+
lastUsedAt?: string;
|
|
139
|
+
/** SHA-256 hash of the file for integrity verification */
|
|
140
|
+
sha256?: string;
|
|
141
|
+
/** Source of the download */
|
|
142
|
+
source: ModelSource;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Model state manager state (persisted to ~/.dexto/models/state.json).
|
|
146
|
+
*/
|
|
147
|
+
export interface ModelState {
|
|
148
|
+
/** Schema version for migrations */
|
|
149
|
+
version: string;
|
|
150
|
+
/** Map of model ID to installed model info */
|
|
151
|
+
installed: Record<string, InstalledModel>;
|
|
152
|
+
/** Currently active/selected model ID */
|
|
153
|
+
activeModelId?: string;
|
|
154
|
+
/** Queue of model IDs pending download */
|
|
155
|
+
downloadQueue: string[];
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Options for downloading a model.
|
|
159
|
+
*/
|
|
160
|
+
export interface ModelDownloadOptions {
|
|
161
|
+
/** Model ID to download */
|
|
162
|
+
modelId: string;
|
|
163
|
+
/** Directory to save the model (default: ~/.dexto/models/) */
|
|
164
|
+
outputDir?: string;
|
|
165
|
+
/** Whether to show CLI progress (default: true) */
|
|
166
|
+
showProgress?: boolean;
|
|
167
|
+
/** Callback for progress updates */
|
|
168
|
+
onProgress?: (progress: ModelDownloadProgress) => void;
|
|
169
|
+
/** HuggingFace token for gated models */
|
|
170
|
+
hfToken?: string;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Result of a model download operation.
|
|
174
|
+
*/
|
|
175
|
+
export interface ModelDownloadResult {
|
|
176
|
+
/** Whether download was successful */
|
|
177
|
+
success: boolean;
|
|
178
|
+
/** Path to the downloaded model file */
|
|
179
|
+
filePath?: string;
|
|
180
|
+
/** SHA-256 hash of the downloaded file */
|
|
181
|
+
sha256?: string;
|
|
182
|
+
/** Error message if download failed */
|
|
183
|
+
error?: string;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Ollama model info (from Ollama API /api/tags).
|
|
187
|
+
*/
|
|
188
|
+
export interface OllamaModelInfo {
|
|
189
|
+
/** Model name (e.g., 'llama3.3:8b') */
|
|
190
|
+
name: string;
|
|
191
|
+
/** Model size in bytes */
|
|
192
|
+
size: number;
|
|
193
|
+
/** Model digest/hash */
|
|
194
|
+
digest: string;
|
|
195
|
+
/** When the model was last modified */
|
|
196
|
+
modifiedAt: string;
|
|
197
|
+
/** Model details (parameters, family, etc.) */
|
|
198
|
+
details?: {
|
|
199
|
+
family?: string;
|
|
200
|
+
parameterSize?: string;
|
|
201
|
+
quantizationLevel?: string;
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Ollama server status.
|
|
206
|
+
*/
|
|
207
|
+
export interface OllamaStatus {
|
|
208
|
+
/** Whether Ollama server is running */
|
|
209
|
+
running: boolean;
|
|
210
|
+
/** Ollama server URL */
|
|
211
|
+
url: string;
|
|
212
|
+
/** Ollama version */
|
|
213
|
+
version?: string;
|
|
214
|
+
/** Available models on the server */
|
|
215
|
+
models?: OllamaModelInfo[];
|
|
216
|
+
/** Error message if not running */
|
|
217
|
+
error?: string;
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/llm/providers/local/types.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1,350 @@
|
|
|
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 openrouter_model_registry_exports = {};
|
|
30
|
+
__export(openrouter_model_registry_exports, {
|
|
31
|
+
__TEST_ONLY__: () => __TEST_ONLY__,
|
|
32
|
+
getCachedOpenRouterModels: () => getCachedOpenRouterModels,
|
|
33
|
+
getOpenRouterModelCacheInfo: () => getOpenRouterModelCacheInfo,
|
|
34
|
+
getOpenRouterModelContextLength: () => getOpenRouterModelContextLength,
|
|
35
|
+
getOpenRouterModelInfo: () => getOpenRouterModelInfo,
|
|
36
|
+
lookupOpenRouterModel: () => lookupOpenRouterModel,
|
|
37
|
+
openRouterModelRegistry: () => openRouterModelRegistry,
|
|
38
|
+
refreshOpenRouterModelCache: () => refreshOpenRouterModelCache,
|
|
39
|
+
scheduleOpenRouterModelRefresh: () => scheduleOpenRouterModelRefresh
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(openrouter_model_registry_exports);
|
|
42
|
+
var import_node_fs = require("node:fs");
|
|
43
|
+
var import_node_fs2 = require("node:fs");
|
|
44
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
45
|
+
var import_path = require("../../utils/path.js");
|
|
46
|
+
var import_logger = require("../../logger/logger.js");
|
|
47
|
+
const OPENROUTER_MODELS_ENDPOINT = "https://openrouter.ai/api/v1/models";
|
|
48
|
+
const CACHE_FILENAME = "openrouter-models.json";
|
|
49
|
+
const CACHE_SUBDIR = "cache";
|
|
50
|
+
const CACHE_TTL_MS = 1e3 * 60 * 60 * 24;
|
|
51
|
+
const MIN_REFRESH_INTERVAL_MS = 1e3 * 60 * 5;
|
|
52
|
+
const DEFAULT_CONTEXT_LENGTH = 128e3;
|
|
53
|
+
class OpenRouterModelRegistry {
|
|
54
|
+
constructor(cachePath2) {
|
|
55
|
+
this.cachePath = cachePath2;
|
|
56
|
+
this.loadCacheFromDisk();
|
|
57
|
+
}
|
|
58
|
+
/** Map from normalized model ID to model info */
|
|
59
|
+
models = null;
|
|
60
|
+
lastFetchedAt = null;
|
|
61
|
+
refreshPromise = null;
|
|
62
|
+
lastRefreshAttemptAt = null;
|
|
63
|
+
lastUsedApiKey;
|
|
64
|
+
/**
|
|
65
|
+
* Look up a model ID against the OpenRouter catalog.
|
|
66
|
+
* @returns 'valid' if model exists, 'invalid' if not found, 'unknown' if cache is stale/empty
|
|
67
|
+
*/
|
|
68
|
+
lookup(modelId) {
|
|
69
|
+
const normalized = this.normalizeModelId(modelId);
|
|
70
|
+
if (!normalized) {
|
|
71
|
+
return "unknown";
|
|
72
|
+
}
|
|
73
|
+
if (!this.models || this.models.size === 0) {
|
|
74
|
+
this.scheduleRefresh({ force: true });
|
|
75
|
+
return "unknown";
|
|
76
|
+
}
|
|
77
|
+
if (!this.isCacheFresh()) {
|
|
78
|
+
this.scheduleRefresh();
|
|
79
|
+
return "unknown";
|
|
80
|
+
}
|
|
81
|
+
return this.models.has(normalized) ? "valid" : "invalid";
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get context length for a model ID.
|
|
85
|
+
* @returns context length if model is in cache, null if not found or cache is stale
|
|
86
|
+
*/
|
|
87
|
+
getContextLength(modelId) {
|
|
88
|
+
const normalized = this.normalizeModelId(modelId);
|
|
89
|
+
if (!normalized) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
if (!this.models || this.models.size === 0 || !this.isCacheFresh()) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
const info = this.models.get(normalized);
|
|
96
|
+
return info?.contextLength ?? null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get model info for a model ID.
|
|
100
|
+
* @returns model info if found in cache, null otherwise
|
|
101
|
+
*/
|
|
102
|
+
getModelInfo(modelId) {
|
|
103
|
+
const normalized = this.normalizeModelId(modelId);
|
|
104
|
+
if (!normalized) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
if (!this.models || this.models.size === 0 || !this.isCacheFresh()) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
return this.models.get(normalized) ?? null;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Schedule a non-blocking background refresh of the model cache.
|
|
114
|
+
*/
|
|
115
|
+
scheduleRefresh(options) {
|
|
116
|
+
const apiKey = options?.apiKey ?? this.lastUsedApiKey;
|
|
117
|
+
if (apiKey) {
|
|
118
|
+
this.lastUsedApiKey = apiKey;
|
|
119
|
+
}
|
|
120
|
+
if (this.refreshPromise) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const now = Date.now();
|
|
124
|
+
if (!options?.force && this.lastRefreshAttemptAt && now - this.lastRefreshAttemptAt < MIN_REFRESH_INTERVAL_MS) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
this.lastRefreshAttemptAt = now;
|
|
128
|
+
this.refreshPromise = this.refreshInternal(apiKey).catch((error) => {
|
|
129
|
+
import_logger.logger.warn(
|
|
130
|
+
`Failed to refresh OpenRouter model registry: ${error instanceof Error ? error.message : String(error)}`
|
|
131
|
+
);
|
|
132
|
+
}).finally(() => {
|
|
133
|
+
this.refreshPromise = null;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Blocking refresh of the model cache.
|
|
138
|
+
*/
|
|
139
|
+
async refresh(options) {
|
|
140
|
+
const apiKey = options?.apiKey ?? this.lastUsedApiKey;
|
|
141
|
+
if (apiKey) {
|
|
142
|
+
this.lastUsedApiKey = apiKey;
|
|
143
|
+
}
|
|
144
|
+
if (!options?.force && this.refreshPromise) {
|
|
145
|
+
await this.refreshPromise;
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (!options?.force) {
|
|
149
|
+
const now = Date.now();
|
|
150
|
+
if (this.lastRefreshAttemptAt && now - this.lastRefreshAttemptAt < MIN_REFRESH_INTERVAL_MS) {
|
|
151
|
+
if (this.refreshPromise) {
|
|
152
|
+
await this.refreshPromise;
|
|
153
|
+
}
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
this.lastRefreshAttemptAt = now;
|
|
157
|
+
} else {
|
|
158
|
+
this.lastRefreshAttemptAt = Date.now();
|
|
159
|
+
}
|
|
160
|
+
const promise = this.refreshInternal(apiKey).finally(() => {
|
|
161
|
+
this.refreshPromise = null;
|
|
162
|
+
});
|
|
163
|
+
this.refreshPromise = promise;
|
|
164
|
+
await promise;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get all cached model IDs (or null if cache is empty).
|
|
168
|
+
*/
|
|
169
|
+
getCachedModels() {
|
|
170
|
+
if (!this.models || this.models.size === 0) {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
return Array.from(this.models.keys());
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Get all cached model info (or null if cache is empty).
|
|
177
|
+
*/
|
|
178
|
+
getCachedModelsWithInfo() {
|
|
179
|
+
if (!this.models || this.models.size === 0) {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
return Array.from(this.models.values());
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get cache metadata for debugging/monitoring.
|
|
186
|
+
*/
|
|
187
|
+
getCacheMetadata() {
|
|
188
|
+
return {
|
|
189
|
+
lastFetchedAt: this.lastFetchedAt ? new Date(this.lastFetchedAt) : null,
|
|
190
|
+
modelCount: this.models ? this.models.size : 0,
|
|
191
|
+
isFresh: this.isCacheFresh()
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
async refreshInternal(apiKey) {
|
|
195
|
+
try {
|
|
196
|
+
const headers = {
|
|
197
|
+
Accept: "application/json"
|
|
198
|
+
};
|
|
199
|
+
if (apiKey) {
|
|
200
|
+
headers.Authorization = `Bearer ${apiKey}`;
|
|
201
|
+
}
|
|
202
|
+
import_logger.logger.debug("Refreshing OpenRouter model registry from remote source");
|
|
203
|
+
const response = await fetch(OPENROUTER_MODELS_ENDPOINT, { headers });
|
|
204
|
+
if (!response.ok) {
|
|
205
|
+
const body = await response.text();
|
|
206
|
+
throw new Error(`HTTP ${response.status}: ${body}`);
|
|
207
|
+
}
|
|
208
|
+
const payload = await response.json();
|
|
209
|
+
const models = this.extractModels(payload);
|
|
210
|
+
if (models.length === 0) {
|
|
211
|
+
throw new Error("No model identifiers returned by OpenRouter");
|
|
212
|
+
}
|
|
213
|
+
await this.writeCache(models);
|
|
214
|
+
import_logger.logger.info(`OpenRouter model registry refreshed with ${models.length} models`);
|
|
215
|
+
} catch (error) {
|
|
216
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
loadCacheFromDisk() {
|
|
220
|
+
if (!(0, import_node_fs2.existsSync)(this.cachePath)) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
try {
|
|
224
|
+
const raw = (0, import_node_fs2.readFileSync)(this.cachePath, "utf-8");
|
|
225
|
+
const parsed = JSON.parse(raw);
|
|
226
|
+
if (!Array.isArray(parsed.models) || typeof parsed.fetchedAt !== "string") {
|
|
227
|
+
import_logger.logger.warn(`Invalid OpenRouter model cache structure at ${this.cachePath}`);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
this.models = /* @__PURE__ */ new Map();
|
|
231
|
+
for (const model of parsed.models) {
|
|
232
|
+
if (typeof model === "object" && model.id && typeof model.contextLength === "number") {
|
|
233
|
+
this.models.set(model.id.toLowerCase(), model);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
const timestamp = Date.parse(parsed.fetchedAt);
|
|
237
|
+
this.lastFetchedAt = Number.isNaN(timestamp) ? null : timestamp;
|
|
238
|
+
import_logger.logger.debug(
|
|
239
|
+
`Loaded ${this.models.size} OpenRouter models from cache (fetched at ${parsed.fetchedAt})`
|
|
240
|
+
);
|
|
241
|
+
} catch (error) {
|
|
242
|
+
import_logger.logger.warn(
|
|
243
|
+
`Failed to load OpenRouter model cache: ${error instanceof Error ? error.message : String(error)}`
|
|
244
|
+
);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
normalizeModelId(modelId) {
|
|
248
|
+
if (!modelId) {
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
return modelId.trim().toLowerCase();
|
|
252
|
+
}
|
|
253
|
+
isCacheFresh() {
|
|
254
|
+
if (!this.lastFetchedAt) {
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
return Date.now() - this.lastFetchedAt < CACHE_TTL_MS;
|
|
258
|
+
}
|
|
259
|
+
async writeCache(models) {
|
|
260
|
+
const modelMap = /* @__PURE__ */ new Map();
|
|
261
|
+
for (const model of models) {
|
|
262
|
+
if (model.id.trim()) {
|
|
263
|
+
modelMap.set(model.id.toLowerCase(), model);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
const uniqueModels = Array.from(modelMap.values()).sort((a, b) => a.id.localeCompare(b.id));
|
|
267
|
+
await import_node_fs.promises.mkdir(import_node_path.default.dirname(this.cachePath), { recursive: true });
|
|
268
|
+
const now = /* @__PURE__ */ new Date();
|
|
269
|
+
const cachePayload = {
|
|
270
|
+
fetchedAt: now.toISOString(),
|
|
271
|
+
models: uniqueModels
|
|
272
|
+
};
|
|
273
|
+
await import_node_fs.promises.writeFile(this.cachePath, JSON.stringify(cachePayload, null, 2), "utf-8");
|
|
274
|
+
this.models = new Map(uniqueModels.map((m) => [m.id.toLowerCase(), m]));
|
|
275
|
+
this.lastFetchedAt = now.getTime();
|
|
276
|
+
}
|
|
277
|
+
extractModels(payload) {
|
|
278
|
+
if (!payload) {
|
|
279
|
+
return [];
|
|
280
|
+
}
|
|
281
|
+
const raw = payload.data ?? payload.models ?? payload;
|
|
282
|
+
if (!Array.isArray(raw)) {
|
|
283
|
+
return [];
|
|
284
|
+
}
|
|
285
|
+
const models = [];
|
|
286
|
+
for (const item of raw) {
|
|
287
|
+
if (item && typeof item === "object") {
|
|
288
|
+
const record = item;
|
|
289
|
+
const id = this.firstString([record.id, record.model, record.name]);
|
|
290
|
+
if (id) {
|
|
291
|
+
let contextLength = DEFAULT_CONTEXT_LENGTH;
|
|
292
|
+
if (typeof record.context_length === "number") {
|
|
293
|
+
contextLength = record.context_length;
|
|
294
|
+
} else if (record.top_provider && typeof record.top_provider === "object" && typeof record.top_provider.context_length === "number") {
|
|
295
|
+
contextLength = record.top_provider.context_length;
|
|
296
|
+
}
|
|
297
|
+
models.push({ id, contextLength });
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return models;
|
|
302
|
+
}
|
|
303
|
+
firstString(values) {
|
|
304
|
+
for (const value of values) {
|
|
305
|
+
if (typeof value === "string" && value.trim().length > 0) {
|
|
306
|
+
return value;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
const cachePath = (0, import_path.getDextoGlobalPath)(CACHE_SUBDIR, CACHE_FILENAME);
|
|
313
|
+
const openRouterModelRegistry = new OpenRouterModelRegistry(cachePath);
|
|
314
|
+
function lookupOpenRouterModel(modelId) {
|
|
315
|
+
return openRouterModelRegistry.lookup(modelId);
|
|
316
|
+
}
|
|
317
|
+
function scheduleOpenRouterModelRefresh(options) {
|
|
318
|
+
openRouterModelRegistry.scheduleRefresh(options);
|
|
319
|
+
}
|
|
320
|
+
async function refreshOpenRouterModelCache(options) {
|
|
321
|
+
await openRouterModelRegistry.refresh(options);
|
|
322
|
+
}
|
|
323
|
+
function getCachedOpenRouterModels() {
|
|
324
|
+
return openRouterModelRegistry.getCachedModels();
|
|
325
|
+
}
|
|
326
|
+
function getOpenRouterModelContextLength(modelId) {
|
|
327
|
+
return openRouterModelRegistry.getContextLength(modelId);
|
|
328
|
+
}
|
|
329
|
+
function getOpenRouterModelInfo(modelId) {
|
|
330
|
+
return openRouterModelRegistry.getModelInfo(modelId);
|
|
331
|
+
}
|
|
332
|
+
function getOpenRouterModelCacheInfo() {
|
|
333
|
+
return openRouterModelRegistry.getCacheMetadata();
|
|
334
|
+
}
|
|
335
|
+
const __TEST_ONLY__ = {
|
|
336
|
+
cachePath,
|
|
337
|
+
CACHE_TTL_MS
|
|
338
|
+
};
|
|
339
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
340
|
+
0 && (module.exports = {
|
|
341
|
+
__TEST_ONLY__,
|
|
342
|
+
getCachedOpenRouterModels,
|
|
343
|
+
getOpenRouterModelCacheInfo,
|
|
344
|
+
getOpenRouterModelContextLength,
|
|
345
|
+
getOpenRouterModelInfo,
|
|
346
|
+
lookupOpenRouterModel,
|
|
347
|
+
openRouterModelRegistry,
|
|
348
|
+
refreshOpenRouterModelCache,
|
|
349
|
+
scheduleOpenRouterModelRefresh
|
|
350
|
+
});
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenRouter Model Registry
|
|
3
|
+
*
|
|
4
|
+
* Provides dynamic model validation against OpenRouter's catalog of 100+ models.
|
|
5
|
+
* Fetches and caches the model list from OpenRouter's API with a 24-hour TTL.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Lazy loading: Cache is populated on first lookup
|
|
9
|
+
* - Background refresh: Non-blocking cache updates
|
|
10
|
+
* - Graceful degradation: Returns 'unknown' when cache is stale, allowing config
|
|
11
|
+
* - Throttled requests: Max 1 refresh per 5 minutes to avoid rate limits
|
|
12
|
+
*/
|
|
13
|
+
export type LookupStatus = 'valid' | 'invalid' | 'unknown';
|
|
14
|
+
/** Model info stored in cache */
|
|
15
|
+
export interface OpenRouterModelInfo {
|
|
16
|
+
id: string;
|
|
17
|
+
contextLength: number;
|
|
18
|
+
}
|
|
19
|
+
interface RefreshOptions {
|
|
20
|
+
apiKey?: string;
|
|
21
|
+
force?: boolean;
|
|
22
|
+
}
|
|
23
|
+
declare class OpenRouterModelRegistry {
|
|
24
|
+
private readonly cachePath;
|
|
25
|
+
/** Map from normalized model ID to model info */
|
|
26
|
+
private models;
|
|
27
|
+
private lastFetchedAt;
|
|
28
|
+
private refreshPromise;
|
|
29
|
+
private lastRefreshAttemptAt;
|
|
30
|
+
private lastUsedApiKey?;
|
|
31
|
+
constructor(cachePath: string);
|
|
32
|
+
/**
|
|
33
|
+
* Look up a model ID against the OpenRouter catalog.
|
|
34
|
+
* @returns 'valid' if model exists, 'invalid' if not found, 'unknown' if cache is stale/empty
|
|
35
|
+
*/
|
|
36
|
+
lookup(modelId: string): LookupStatus;
|
|
37
|
+
/**
|
|
38
|
+
* Get context length for a model ID.
|
|
39
|
+
* @returns context length if model is in cache, null if not found or cache is stale
|
|
40
|
+
*/
|
|
41
|
+
getContextLength(modelId: string): number | null;
|
|
42
|
+
/**
|
|
43
|
+
* Get model info for a model ID.
|
|
44
|
+
* @returns model info if found in cache, null otherwise
|
|
45
|
+
*/
|
|
46
|
+
getModelInfo(modelId: string): OpenRouterModelInfo | null;
|
|
47
|
+
/**
|
|
48
|
+
* Schedule a non-blocking background refresh of the model cache.
|
|
49
|
+
*/
|
|
50
|
+
scheduleRefresh(options?: RefreshOptions): void;
|
|
51
|
+
/**
|
|
52
|
+
* Blocking refresh of the model cache.
|
|
53
|
+
*/
|
|
54
|
+
refresh(options?: RefreshOptions): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Get all cached model IDs (or null if cache is empty).
|
|
57
|
+
*/
|
|
58
|
+
getCachedModels(): string[] | null;
|
|
59
|
+
/**
|
|
60
|
+
* Get all cached model info (or null if cache is empty).
|
|
61
|
+
*/
|
|
62
|
+
getCachedModelsWithInfo(): OpenRouterModelInfo[] | null;
|
|
63
|
+
/**
|
|
64
|
+
* Get cache metadata for debugging/monitoring.
|
|
65
|
+
*/
|
|
66
|
+
getCacheMetadata(): {
|
|
67
|
+
lastFetchedAt: Date | null;
|
|
68
|
+
modelCount: number;
|
|
69
|
+
isFresh: boolean;
|
|
70
|
+
};
|
|
71
|
+
private refreshInternal;
|
|
72
|
+
private loadCacheFromDisk;
|
|
73
|
+
private normalizeModelId;
|
|
74
|
+
private isCacheFresh;
|
|
75
|
+
private writeCache;
|
|
76
|
+
private extractModels;
|
|
77
|
+
private firstString;
|
|
78
|
+
}
|
|
79
|
+
export declare const openRouterModelRegistry: OpenRouterModelRegistry;
|
|
80
|
+
/**
|
|
81
|
+
* Look up a model ID against the OpenRouter catalog.
|
|
82
|
+
* @returns 'valid' if model exists, 'invalid' if not found, 'unknown' if cache is stale/empty
|
|
83
|
+
*/
|
|
84
|
+
export declare function lookupOpenRouterModel(modelId: string): LookupStatus;
|
|
85
|
+
/**
|
|
86
|
+
* Schedule a non-blocking background refresh of the OpenRouter model cache.
|
|
87
|
+
*/
|
|
88
|
+
export declare function scheduleOpenRouterModelRefresh(options?: RefreshOptions): void;
|
|
89
|
+
/**
|
|
90
|
+
* Perform a blocking refresh of the OpenRouter model cache.
|
|
91
|
+
*/
|
|
92
|
+
export declare function refreshOpenRouterModelCache(options?: RefreshOptions): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Get all cached OpenRouter model IDs (or null if cache is empty).
|
|
95
|
+
*/
|
|
96
|
+
export declare function getCachedOpenRouterModels(): string[] | null;
|
|
97
|
+
/**
|
|
98
|
+
* Get context length for an OpenRouter model.
|
|
99
|
+
* @returns context length if model is in cache, null if not found or cache is stale
|
|
100
|
+
*/
|
|
101
|
+
export declare function getOpenRouterModelContextLength(modelId: string): number | null;
|
|
102
|
+
/**
|
|
103
|
+
* Get model info for an OpenRouter model.
|
|
104
|
+
* @returns model info if found in cache, null otherwise
|
|
105
|
+
*/
|
|
106
|
+
export declare function getOpenRouterModelInfo(modelId: string): OpenRouterModelInfo | null;
|
|
107
|
+
/**
|
|
108
|
+
* Get cache metadata for debugging/monitoring.
|
|
109
|
+
*/
|
|
110
|
+
export declare function getOpenRouterModelCacheInfo(): {
|
|
111
|
+
lastFetchedAt: Date | null;
|
|
112
|
+
modelCount: number;
|
|
113
|
+
isFresh: boolean;
|
|
114
|
+
};
|
|
115
|
+
export declare const __TEST_ONLY__: {
|
|
116
|
+
cachePath: string;
|
|
117
|
+
CACHE_TTL_MS: number;
|
|
118
|
+
};
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=openrouter-model-registry.d.ts.map
|