@dexto/core 1.1.11 → 1.2.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 +24 -4
- package/dist/Dexto.cjs +4 -14
- package/dist/Dexto.d.ts +8 -29
- package/dist/Dexto.d.ts.map +1 -1
- package/dist/Dexto.js +4 -12
- package/dist/agent/DextoAgent.cjs +92 -3
- package/dist/agent/DextoAgent.d.ts +12 -4
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +52 -3
- package/dist/agent/agentCard.js +1 -0
- package/dist/agent/error-codes.cjs +1 -0
- package/dist/agent/error-codes.d.ts +1 -0
- package/dist/agent/error-codes.d.ts.map +1 -1
- package/dist/agent/error-codes.js +2 -0
- package/dist/agent/errors.cjs +13 -0
- package/dist/agent/errors.d.ts +4 -0
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/errors.js +14 -0
- package/dist/agent/index.js +1 -0
- package/dist/agent/registry/error-codes.js +1 -0
- package/dist/agent/registry/errors.js +1 -0
- package/dist/agent/registry/registry.js +1 -0
- package/dist/agent/registry/types.js +1 -0
- package/dist/agent/registry/user-registry.js +1 -0
- package/dist/agent/schemas.cjs +6 -1
- package/dist/agent/schemas.d.ts +113 -3
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +7 -1
- package/dist/agent/state-manager.js +1 -0
- package/dist/approval/error-codes.js +1 -0
- package/dist/approval/errors.js +1 -0
- package/dist/approval/index.js +1 -0
- package/dist/approval/manager.cjs +30 -0
- package/dist/approval/manager.d.ts +23 -1
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +31 -0
- package/dist/approval/providers/event-based-approval-provider.js +1 -0
- package/dist/approval/providers/factory.js +1 -0
- package/dist/approval/providers/noop-approval-provider.js +1 -0
- package/dist/approval/schemas.cjs +36 -0
- package/dist/approval/schemas.d.ts +173 -0
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +33 -0
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +27 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +2 -0
- package/dist/chunk-C6A6W6XS.js +53 -0
- package/dist/config/agent-resolver.js +1 -0
- package/dist/config/error-codes.js +1 -0
- package/dist/config/errors.js +1 -0
- package/dist/config/loader.js +1 -0
- package/dist/config/writer.js +1 -0
- package/dist/context/compression/middle-removal.js +1 -0
- package/dist/context/compression/oldest-removal.js +1 -0
- package/dist/context/error-codes.js +1 -0
- package/dist/context/errors.js +1 -0
- package/dist/context/index.js +1 -0
- package/dist/context/manager.cjs +36 -1
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +27 -1
- package/dist/context/media-helpers.js +1 -0
- package/dist/context/utils.cjs +102 -6
- package/dist/context/utils.d.ts +35 -2
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +100 -6
- package/dist/errors/DextoBaseError.js +1 -0
- package/dist/errors/DextoRuntimeError.js +1 -0
- package/dist/errors/DextoValidationError.js +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/result-bridge.js +1 -0
- package/dist/errors/types.cjs +3 -0
- package/dist/errors/types.d.ts +7 -2
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +4 -0
- package/dist/events/index.cjs +1 -0
- package/dist/events/index.d.ts +6 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +2 -0
- package/dist/filesystem/error-codes.cjs +53 -0
- package/dist/filesystem/error-codes.d.ts +31 -0
- package/dist/filesystem/error-codes.d.ts.map +1 -0
- package/dist/filesystem/error-codes.js +30 -0
- package/dist/filesystem/errors.cjs +303 -0
- package/dist/filesystem/errors.d.ts +109 -0
- package/dist/filesystem/errors.d.ts.map +1 -0
- package/dist/filesystem/errors.js +280 -0
- package/dist/filesystem/filesystem-service.cjs +482 -0
- package/dist/filesystem/filesystem-service.d.ts +57 -0
- package/dist/filesystem/filesystem-service.d.ts.map +1 -0
- package/dist/filesystem/filesystem-service.js +449 -0
- package/dist/filesystem/index.cjs +37 -0
- package/dist/filesystem/index.d.ts +11 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/dist/filesystem/index.js +11 -0
- package/dist/filesystem/path-validator.cjs +172 -0
- package/dist/filesystem/path-validator.d.ts +53 -0
- package/dist/filesystem/path-validator.d.ts.map +1 -0
- package/dist/filesystem/path-validator.js +139 -0
- package/dist/filesystem/types.cjs +16 -0
- package/dist/filesystem/types.d.ts +171 -0
- package/dist/filesystem/types.d.ts.map +1 -0
- package/dist/filesystem/types.js +0 -0
- package/dist/index.browser.js +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/llm/error-codes.js +1 -0
- package/dist/llm/errors.js +1 -0
- package/dist/llm/formatters/anthropic.js +1 -0
- package/dist/llm/formatters/factory.js +1 -0
- package/dist/llm/formatters/openai.js +1 -0
- package/dist/llm/formatters/vercel.js +1 -0
- package/dist/llm/registry.cjs +15 -15
- package/dist/llm/registry.d.ts +1 -1
- package/dist/llm/registry.js +16 -15
- package/dist/llm/resolver.js +1 -0
- package/dist/llm/schemas.cjs +6 -2
- package/dist/llm/schemas.d.ts +10 -0
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +7 -2
- package/dist/llm/services/anthropic.cjs +67 -0
- package/dist/llm/services/anthropic.d.ts +6 -0
- package/dist/llm/services/anthropic.d.ts.map +1 -1
- package/dist/llm/services/anthropic.js +27 -0
- package/dist/llm/services/factory.js +1 -0
- package/dist/llm/services/openai.cjs +87 -0
- package/dist/llm/services/openai.d.ts +6 -0
- package/dist/llm/services/openai.d.ts.map +1 -1
- package/dist/llm/services/openai.js +47 -0
- package/dist/llm/services/test-utils.integration.cjs +1 -1
- package/dist/llm/services/test-utils.integration.js +2 -1
- package/dist/llm/services/vercel.cjs +144 -97
- package/dist/llm/services/vercel.d.ts +6 -1
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +105 -98
- package/dist/llm/tokenizer/anthropic.js +1 -0
- package/dist/llm/tokenizer/default.js +1 -0
- package/dist/llm/tokenizer/factory.js +1 -0
- package/dist/llm/tokenizer/google.js +1 -0
- package/dist/llm/tokenizer/openai.cjs +1 -1
- package/dist/llm/tokenizer/openai.d.ts +1 -1
- package/dist/llm/tokenizer/openai.js +2 -1
- package/dist/llm/tokenizer/types.js +1 -0
- package/dist/llm/types.d.ts +2 -2
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +1 -0
- package/dist/llm/validation.js +1 -0
- package/dist/logger/browser.js +1 -0
- package/dist/logger/logger.d.ts +42 -0
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +1 -0
- package/dist/mcp/error-codes.cjs +1 -0
- package/dist/mcp/error-codes.d.ts +1 -0
- package/dist/mcp/error-codes.d.ts.map +1 -1
- package/dist/mcp/error-codes.js +2 -0
- package/dist/mcp/errors.cjs +12 -0
- package/dist/mcp/errors.d.ts +7 -0
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/errors.js +13 -0
- package/dist/mcp/manager.cjs +66 -16
- package/dist/mcp/manager.d.ts +7 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +67 -16
- package/dist/mcp/mcp-client.js +1 -0
- package/dist/mcp/resolver.js +1 -0
- package/dist/mcp/schemas.js +1 -0
- package/dist/mcp/types.d.ts +1 -1
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/memory/error-codes.js +1 -0
- package/dist/memory/errors.js +1 -0
- package/dist/memory/index.js +1 -0
- package/dist/memory/manager.js +1 -0
- package/dist/memory/schemas.js +1 -0
- package/dist/plugins/builtins/content-policy.js +1 -0
- package/dist/plugins/builtins/response-sanitizer.js +1 -0
- package/dist/plugins/error-codes.js +1 -0
- package/dist/plugins/index.js +1 -0
- package/dist/plugins/loader.js +1 -0
- package/dist/plugins/manager.js +1 -0
- package/dist/plugins/registrations/builtins.js +1 -0
- package/dist/plugins/schemas.js +1 -0
- package/dist/preferences/constants.js +1 -0
- package/dist/preferences/error-codes.js +1 -0
- package/dist/preferences/errors.js +1 -0
- package/dist/preferences/index.js +1 -0
- package/dist/preferences/loader.cjs +3 -1
- package/dist/preferences/loader.d.ts +10 -1
- package/dist/preferences/loader.d.ts.map +1 -1
- package/dist/preferences/loader.js +4 -1
- package/dist/preferences/schemas.cjs +2 -1
- package/dist/preferences/schemas.d.ts +8 -0
- package/dist/preferences/schemas.d.ts.map +1 -1
- package/dist/preferences/schemas.js +3 -1
- package/dist/process/command-validator.cjs +544 -0
- package/dist/process/command-validator.d.ts +46 -0
- package/dist/process/command-validator.d.ts.map +1 -0
- package/dist/process/command-validator.js +521 -0
- package/dist/process/error-codes.cjs +47 -0
- package/dist/process/error-codes.d.ts +25 -0
- package/dist/process/error-codes.d.ts.map +1 -0
- package/dist/process/error-codes.js +24 -0
- package/dist/process/errors.cjs +244 -0
- package/dist/process/errors.d.ts +87 -0
- package/dist/process/errors.d.ts.map +1 -0
- package/dist/process/errors.js +221 -0
- package/dist/process/index.cjs +37 -0
- package/dist/process/index.d.ts +11 -0
- package/dist/process/index.d.ts.map +1 -0
- package/dist/process/index.js +11 -0
- package/dist/process/process-service.cjs +443 -0
- package/dist/process/process-service.d.ts +62 -0
- package/dist/process/process-service.d.ts.map +1 -0
- package/dist/process/process-service.js +410 -0
- package/dist/process/types.cjs +16 -0
- package/dist/process/types.d.ts +107 -0
- package/dist/process/types.d.ts.map +1 -0
- package/dist/process/types.js +0 -0
- package/dist/prompts/error-codes.js +1 -0
- package/dist/prompts/errors.js +1 -0
- package/dist/prompts/index.js +1 -0
- package/dist/prompts/name-validation.js +1 -0
- package/dist/prompts/prompt-manager.js +1 -0
- package/dist/prompts/providers/custom-prompt-provider.js +1 -0
- package/dist/prompts/providers/file-prompt-provider.js +1 -0
- package/dist/prompts/providers/mcp-prompt-provider.js +1 -0
- package/dist/prompts/providers/starter-prompt-provider.js +1 -0
- package/dist/prompts/schemas.js +1 -0
- package/dist/prompts/utils.js +1 -0
- package/dist/resources/error-codes.js +1 -0
- package/dist/resources/errors.js +1 -0
- package/dist/resources/handlers/blob-handler.js +1 -0
- package/dist/resources/handlers/factory.js +1 -0
- package/dist/resources/handlers/filesystem-handler.cjs +1 -1
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +2 -1
- package/dist/resources/index.js +1 -0
- package/dist/resources/internal-provider.js +1 -0
- package/dist/resources/manager.js +1 -0
- package/dist/resources/reference-parser.js +1 -0
- package/dist/resources/schemas.js +1 -0
- package/dist/search/index.js +1 -0
- package/dist/search/search-service.js +1 -0
- package/dist/session/chat-session.cjs +2 -2
- package/dist/session/chat-session.d.ts +2 -2
- package/dist/session/chat-session.js +3 -2
- package/dist/session/error-codes.js +1 -0
- package/dist/session/errors.js +1 -0
- package/dist/session/history/database.js +1 -0
- package/dist/session/history/factory.js +1 -0
- package/dist/session/history/memory.js +1 -0
- package/dist/session/index.js +1 -0
- package/dist/session/schemas.js +1 -0
- package/dist/session/session-manager.d.ts +6 -0
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +1 -0
- package/dist/session/title-generator.js +1 -0
- package/dist/storage/blob/factory.cjs +3 -3
- package/dist/storage/blob/factory.d.ts +3 -1
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +4 -3
- package/dist/storage/blob/local-blob-store.cjs +18 -2
- package/dist/storage/blob/local-blob-store.d.ts +2 -1
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
- package/dist/storage/blob/local-blob-store.js +19 -2
- package/dist/storage/blob/schemas.js +1 -0
- package/dist/storage/cache/factory.js +1 -0
- package/dist/storage/cache/memory-cache-store.js +1 -0
- package/dist/storage/cache/redis-store.js +1 -0
- package/dist/storage/cache/schemas.js +1 -0
- package/dist/storage/database/factory.cjs +7 -5
- package/dist/storage/database/factory.d.ts +3 -1
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +8 -5
- package/dist/storage/database/memory-database-store.js +1 -0
- package/dist/storage/database/postgres-store.js +1 -0
- package/dist/storage/database/schemas.cjs +1 -1
- package/dist/storage/database/schemas.js +2 -1
- package/dist/storage/database/sqlite-store.cjs +20 -2
- package/dist/storage/database/sqlite-store.d.ts +2 -1
- package/dist/storage/database/sqlite-store.d.ts.map +1 -1
- package/dist/storage/database/sqlite-store.js +21 -2
- package/dist/storage/error-codes.cjs +1 -0
- package/dist/storage/error-codes.d.ts +1 -0
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +2 -0
- package/dist/storage/errors.cjs +15 -0
- package/dist/storage/errors.d.ts +4 -0
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +16 -0
- package/dist/storage/index.js +1 -0
- package/dist/storage/schemas.js +1 -0
- package/dist/storage/storage-manager.cjs +7 -5
- package/dist/storage/storage-manager.d.ts +5 -2
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +8 -5
- package/dist/systemPrompt/contributors.js +1 -0
- package/dist/systemPrompt/error-codes.js +1 -0
- package/dist/systemPrompt/errors.js +1 -0
- package/dist/systemPrompt/in-built-prompts.js +1 -0
- package/dist/systemPrompt/index.js +1 -0
- package/dist/systemPrompt/manager.js +1 -0
- package/dist/systemPrompt/registry.js +1 -0
- package/dist/systemPrompt/schemas.js +1 -0
- package/dist/telemetry/decorators.cjs +175 -0
- package/dist/telemetry/decorators.d.ts +17 -0
- package/dist/telemetry/decorators.d.ts.map +1 -0
- package/dist/telemetry/decorators.js +157 -0
- package/dist/telemetry/exporters.cjs +108 -0
- package/dist/telemetry/exporters.d.ts +29 -0
- package/dist/telemetry/exporters.d.ts.map +1 -0
- package/dist/telemetry/exporters.js +85 -0
- package/dist/telemetry/index.cjs +28 -0
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +5 -0
- package/dist/telemetry/schemas.cjs +71 -0
- package/dist/telemetry/schemas.d.ts +54 -0
- package/dist/telemetry/schemas.d.ts.map +1 -0
- package/dist/telemetry/schemas.js +48 -0
- package/dist/telemetry/telemetry.cjs +228 -0
- package/dist/telemetry/telemetry.d.ts +74 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +205 -0
- package/dist/telemetry/types.cjs +16 -0
- package/dist/telemetry/types.d.ts +22 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +0 -0
- package/dist/telemetry/utils.cjs +87 -0
- package/dist/telemetry/utils.d.ts +21 -0
- package/dist/telemetry/utils.d.ts.map +1 -0
- package/dist/telemetry/utils.js +62 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -0
- package/dist/tools/error-codes.js +1 -0
- package/dist/tools/errors.js +1 -0
- package/dist/tools/index.js +1 -0
- package/dist/tools/internal-tools/constants.cjs +39 -0
- package/dist/tools/internal-tools/constants.d.ts +12 -0
- package/dist/tools/internal-tools/constants.d.ts.map +1 -0
- package/dist/tools/internal-tools/constants.js +16 -0
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +1 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +106 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +13 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +73 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +49 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +26 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +62 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +39 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +57 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +34 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +71 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +48 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +47 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +24 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +55 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.js +32 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +56 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.js +33 -0
- package/dist/tools/internal-tools/index.cjs +3 -1
- package/dist/tools/internal-tools/index.d.ts +1 -0
- package/dist/tools/internal-tools/index.d.ts.map +1 -1
- package/dist/tools/internal-tools/index.js +1 -0
- package/dist/tools/internal-tools/provider.js +1 -0
- package/dist/tools/internal-tools/registry.cjs +40 -4
- package/dist/tools/internal-tools/registry.d.ts +5 -9
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +41 -3
- package/dist/tools/schemas.cjs +18 -5
- package/dist/tools/schemas.d.ts +30 -1
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +15 -2
- package/dist/tools/tool-manager.cjs +158 -19
- package/dist/tools/tool-manager.d.ts +48 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +118 -19
- package/dist/utils/api-key-resolver.js +1 -0
- package/dist/utils/api-key-store.js +1 -0
- package/dist/utils/async-context.js +1 -0
- package/dist/utils/debug.js +1 -0
- package/dist/utils/env.js +1 -0
- package/dist/utils/error-conversion.js +1 -0
- package/dist/utils/execution-context.js +1 -0
- package/dist/utils/fs-walk.js +1 -0
- package/dist/utils/path.js +1 -0
- package/dist/utils/port-utils.js +1 -0
- package/dist/utils/redactor.js +1 -0
- package/dist/utils/result.js +1 -0
- package/dist/utils/safe-stringify.js +1 -0
- package/dist/utils/schema-metadata.js +1 -0
- package/dist/utils/schema.js +1 -0
- package/dist/utils/service-initializer.cjs +42 -4
- package/dist/utils/service-initializer.d.ts +2 -1
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +33 -4
- package/dist/utils/user-info.js +1 -0
- package/dist/utils/zod-schema-converter.js +1 -0
- package/package.json +11 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path Validator
|
|
3
|
+
*
|
|
4
|
+
* Security-focused path validation for file system operations
|
|
5
|
+
*/
|
|
6
|
+
import { FileSystemConfig, PathValidation } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* PathValidator - Validates file paths for security and policy compliance
|
|
9
|
+
*
|
|
10
|
+
* Security checks:
|
|
11
|
+
* 1. Path traversal detection (../, symbolic links)
|
|
12
|
+
* 2. Allowed paths enforcement (whitelist)
|
|
13
|
+
* 3. Blocked paths detection (blacklist)
|
|
14
|
+
* 4. File extension restrictions
|
|
15
|
+
* 5. Absolute path normalization
|
|
16
|
+
* TODO: Add tests
|
|
17
|
+
*/
|
|
18
|
+
export declare class PathValidator {
|
|
19
|
+
private config;
|
|
20
|
+
private normalizedAllowedPaths;
|
|
21
|
+
private normalizedBlockedPaths;
|
|
22
|
+
private normalizedBlockedExtensions;
|
|
23
|
+
constructor(config: FileSystemConfig);
|
|
24
|
+
/**
|
|
25
|
+
* Validate a file path for security and policy compliance
|
|
26
|
+
*/
|
|
27
|
+
validatePath(filePath: string): PathValidation;
|
|
28
|
+
/**
|
|
29
|
+
* Check if path contains traversal attempts
|
|
30
|
+
*/
|
|
31
|
+
private hasPathTraversal;
|
|
32
|
+
/**
|
|
33
|
+
* Check if path is within allowed paths (whitelist check)
|
|
34
|
+
*/
|
|
35
|
+
private isPathAllowed;
|
|
36
|
+
/**
|
|
37
|
+
* Check if path matches blocked patterns (blacklist check)
|
|
38
|
+
*/
|
|
39
|
+
private isPathBlocked;
|
|
40
|
+
/**
|
|
41
|
+
* Quick check if a path is allowed (for internal use)
|
|
42
|
+
*/
|
|
43
|
+
isPathAllowedQuick(normalizedPath: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get normalized allowed paths
|
|
46
|
+
*/
|
|
47
|
+
getAllowedPaths(): string[];
|
|
48
|
+
/**
|
|
49
|
+
* Get blocked paths
|
|
50
|
+
*/
|
|
51
|
+
getBlockedPaths(): string[];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=path-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-validator.d.ts","sourceRoot":"","sources":["../../src/filesystem/path-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9D;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,sBAAsB,CAAW;IACzC,OAAO,CAAC,sBAAsB,CAAW;IACzC,OAAO,CAAC,2BAA2B,CAAW;gBAElC,MAAM,EAAE,gBAAgB;IAqBpC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IA0E9C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAyBrB;;OAEG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAInD;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;CAG9B"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import "../chunk-C6A6W6XS.js";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { realpathSync } from "node:fs";
|
|
4
|
+
import { logger } from "../logger/index.js";
|
|
5
|
+
class PathValidator {
|
|
6
|
+
config;
|
|
7
|
+
normalizedAllowedPaths;
|
|
8
|
+
normalizedBlockedPaths;
|
|
9
|
+
normalizedBlockedExtensions;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
const workingDir = config.workingDirectory || process.cwd();
|
|
13
|
+
this.normalizedAllowedPaths = config.allowedPaths.map((p) => path.resolve(workingDir, p));
|
|
14
|
+
this.normalizedBlockedPaths = config.blockedPaths.map((p) => path.normalize(p));
|
|
15
|
+
this.normalizedBlockedExtensions = (config.blockedExtensions || []).map((ext) => {
|
|
16
|
+
const e = ext.startsWith(".") ? ext : `.${ext}`;
|
|
17
|
+
return e.toLowerCase();
|
|
18
|
+
});
|
|
19
|
+
logger.debug(
|
|
20
|
+
`PathValidator initialized with ${this.normalizedAllowedPaths.length} allowed paths`
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Validate a file path for security and policy compliance
|
|
25
|
+
*/
|
|
26
|
+
validatePath(filePath) {
|
|
27
|
+
if (!filePath || filePath.trim() === "") {
|
|
28
|
+
return {
|
|
29
|
+
isValid: false,
|
|
30
|
+
error: "Path cannot be empty"
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const workingDir = this.config.workingDirectory || process.cwd();
|
|
34
|
+
let normalizedPath;
|
|
35
|
+
try {
|
|
36
|
+
normalizedPath = path.isAbsolute(filePath) ? path.resolve(filePath) : path.resolve(workingDir, filePath);
|
|
37
|
+
try {
|
|
38
|
+
normalizedPath = realpathSync.native(normalizedPath);
|
|
39
|
+
} catch {
|
|
40
|
+
}
|
|
41
|
+
} catch (error) {
|
|
42
|
+
return {
|
|
43
|
+
isValid: false,
|
|
44
|
+
error: `Failed to normalize path: ${error instanceof Error ? error.message : String(error)}`
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (this.hasPathTraversal(filePath, normalizedPath)) {
|
|
48
|
+
return {
|
|
49
|
+
isValid: false,
|
|
50
|
+
error: "Path traversal detected"
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (!this.isPathAllowed(normalizedPath)) {
|
|
54
|
+
return {
|
|
55
|
+
isValid: false,
|
|
56
|
+
error: `Path is not within allowed paths. Allowed: ${this.normalizedAllowedPaths.join(", ")}`
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const blockedReason = this.isPathBlocked(normalizedPath);
|
|
60
|
+
if (blockedReason) {
|
|
61
|
+
return {
|
|
62
|
+
isValid: false,
|
|
63
|
+
error: `Path is blocked: ${blockedReason}`
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const ext = path.extname(normalizedPath).toLowerCase();
|
|
67
|
+
if (ext && this.normalizedBlockedExtensions.includes(ext)) {
|
|
68
|
+
return {
|
|
69
|
+
isValid: false,
|
|
70
|
+
error: `File extension ${ext} is not allowed`
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
isValid: true,
|
|
75
|
+
normalizedPath
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if path contains traversal attempts
|
|
80
|
+
*/
|
|
81
|
+
hasPathTraversal(originalPath, normalizedPath) {
|
|
82
|
+
if (originalPath.includes("../") || originalPath.includes("..\\")) {
|
|
83
|
+
const workingDir = this.config.workingDirectory || process.cwd();
|
|
84
|
+
const relative = path.relative(workingDir, normalizedPath);
|
|
85
|
+
if (relative.startsWith("..")) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Check if path is within allowed paths (whitelist check)
|
|
93
|
+
*/
|
|
94
|
+
isPathAllowed(normalizedPath) {
|
|
95
|
+
if (this.normalizedAllowedPaths.length === 0) {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
return this.normalizedAllowedPaths.some((allowedPath) => {
|
|
99
|
+
const relative = path.relative(allowedPath, normalizedPath);
|
|
100
|
+
return !relative.startsWith("..") && !path.isAbsolute(relative);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check if path matches blocked patterns (blacklist check)
|
|
105
|
+
*/
|
|
106
|
+
isPathBlocked(normalizedPath) {
|
|
107
|
+
const roots = this.normalizedAllowedPaths.length > 0 ? this.normalizedAllowedPaths : [this.config.workingDirectory || process.cwd()];
|
|
108
|
+
for (const blocked of this.normalizedBlockedPaths) {
|
|
109
|
+
for (const root of roots) {
|
|
110
|
+
const blockedFull = path.isAbsolute(blocked) ? path.normalize(blocked) : path.resolve(root, blocked);
|
|
111
|
+
if (normalizedPath === blockedFull || normalizedPath.startsWith(blockedFull + path.sep)) {
|
|
112
|
+
return `Within blocked directory: ${blocked}`;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Quick check if a path is allowed (for internal use)
|
|
120
|
+
*/
|
|
121
|
+
isPathAllowedQuick(normalizedPath) {
|
|
122
|
+
return this.isPathAllowed(normalizedPath) && !this.isPathBlocked(normalizedPath);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get normalized allowed paths
|
|
126
|
+
*/
|
|
127
|
+
getAllowedPaths() {
|
|
128
|
+
return [...this.normalizedAllowedPaths];
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get blocked paths
|
|
132
|
+
*/
|
|
133
|
+
getBlockedPaths() {
|
|
134
|
+
return [...this.normalizedBlockedPaths];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
export {
|
|
138
|
+
PathValidator
|
|
139
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FileSystem Service Types
|
|
3
|
+
*
|
|
4
|
+
* Types and interfaces for file system operations including reading, writing,
|
|
5
|
+
* searching, and validation.
|
|
6
|
+
*/
|
|
7
|
+
export type BufferEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex';
|
|
8
|
+
/**
|
|
9
|
+
* File content with metadata
|
|
10
|
+
*/
|
|
11
|
+
export interface FileContent {
|
|
12
|
+
content: string;
|
|
13
|
+
lines: number;
|
|
14
|
+
encoding: string;
|
|
15
|
+
mimeType?: string;
|
|
16
|
+
truncated: boolean;
|
|
17
|
+
size: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Options for reading files
|
|
21
|
+
*/
|
|
22
|
+
export interface ReadFileOptions {
|
|
23
|
+
/** Maximum number of lines to read */
|
|
24
|
+
limit?: number | undefined;
|
|
25
|
+
/** Starting line number (1-based) */
|
|
26
|
+
offset?: number | undefined;
|
|
27
|
+
/** File encoding (default: utf-8) */
|
|
28
|
+
encoding?: BufferEncoding | undefined;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* File metadata for glob results
|
|
32
|
+
*/
|
|
33
|
+
export interface FileMetadata {
|
|
34
|
+
path: string;
|
|
35
|
+
size: number;
|
|
36
|
+
modified: Date;
|
|
37
|
+
isDirectory: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Options for glob operations
|
|
41
|
+
*/
|
|
42
|
+
export interface GlobOptions {
|
|
43
|
+
/** Base directory to search from */
|
|
44
|
+
cwd?: string | undefined;
|
|
45
|
+
/** Maximum number of results */
|
|
46
|
+
maxResults?: number | undefined;
|
|
47
|
+
/** Include file metadata */
|
|
48
|
+
includeMetadata?: boolean | undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Glob result
|
|
52
|
+
*/
|
|
53
|
+
export interface GlobResult {
|
|
54
|
+
files: FileMetadata[];
|
|
55
|
+
truncated: boolean;
|
|
56
|
+
totalFound: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Search match with context
|
|
60
|
+
*/
|
|
61
|
+
export interface SearchMatch {
|
|
62
|
+
file: string;
|
|
63
|
+
lineNumber: number;
|
|
64
|
+
line: string;
|
|
65
|
+
context?: {
|
|
66
|
+
before: string[];
|
|
67
|
+
after: string[];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Options for content search (grep)
|
|
72
|
+
*/
|
|
73
|
+
export interface GrepOptions {
|
|
74
|
+
/** Base directory to search */
|
|
75
|
+
path?: string | undefined;
|
|
76
|
+
/** Glob pattern to filter files */
|
|
77
|
+
glob?: string | undefined;
|
|
78
|
+
/** Number of context lines before/after match */
|
|
79
|
+
contextLines?: number | undefined;
|
|
80
|
+
/** Case-insensitive search */
|
|
81
|
+
caseInsensitive?: boolean | undefined;
|
|
82
|
+
/** Maximum number of results */
|
|
83
|
+
maxResults?: number | undefined;
|
|
84
|
+
/** Include line numbers */
|
|
85
|
+
lineNumbers?: boolean | undefined;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Search result
|
|
89
|
+
*/
|
|
90
|
+
export interface SearchResult {
|
|
91
|
+
matches: SearchMatch[];
|
|
92
|
+
totalMatches: number;
|
|
93
|
+
truncated: boolean;
|
|
94
|
+
filesSearched: number;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Options for writing files
|
|
98
|
+
*/
|
|
99
|
+
export interface WriteFileOptions {
|
|
100
|
+
/** Create parent directories if they don't exist */
|
|
101
|
+
createDirs?: boolean | undefined;
|
|
102
|
+
/** File encoding (default: utf-8) */
|
|
103
|
+
encoding?: BufferEncoding | undefined;
|
|
104
|
+
/** Create backup before overwriting */
|
|
105
|
+
backup?: boolean | undefined;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Write result
|
|
109
|
+
*/
|
|
110
|
+
export interface WriteResult {
|
|
111
|
+
success: boolean;
|
|
112
|
+
path: string;
|
|
113
|
+
bytesWritten: number;
|
|
114
|
+
backupPath?: string | undefined;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Edit operation
|
|
118
|
+
*/
|
|
119
|
+
export interface EditOperation {
|
|
120
|
+
oldString: string;
|
|
121
|
+
newString: string;
|
|
122
|
+
replaceAll?: boolean | undefined;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Options for editing files
|
|
126
|
+
*/
|
|
127
|
+
export interface EditFileOptions {
|
|
128
|
+
/** Create backup before editing */
|
|
129
|
+
backup?: boolean;
|
|
130
|
+
/** File encoding */
|
|
131
|
+
encoding?: BufferEncoding;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Edit result
|
|
135
|
+
*/
|
|
136
|
+
export interface EditResult {
|
|
137
|
+
success: boolean;
|
|
138
|
+
path: string;
|
|
139
|
+
changesCount: number;
|
|
140
|
+
backupPath?: string | undefined;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Path validation result
|
|
144
|
+
*/
|
|
145
|
+
export interface PathValidation {
|
|
146
|
+
isValid: boolean;
|
|
147
|
+
error?: string;
|
|
148
|
+
normalizedPath?: string;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* File system configuration
|
|
152
|
+
*/
|
|
153
|
+
export interface FileSystemConfig {
|
|
154
|
+
/** Allowed base paths */
|
|
155
|
+
allowedPaths: string[];
|
|
156
|
+
/** Blocked paths (relative to allowed paths) */
|
|
157
|
+
blockedPaths: string[];
|
|
158
|
+
/** Blocked file extensions */
|
|
159
|
+
blockedExtensions: string[];
|
|
160
|
+
/** Maximum file size in bytes */
|
|
161
|
+
maxFileSize: number;
|
|
162
|
+
/** Enable automatic backups */
|
|
163
|
+
enableBackups: boolean;
|
|
164
|
+
/** Backup directory path */
|
|
165
|
+
backupPath: string;
|
|
166
|
+
/** Backup retention period in days (default: 7) */
|
|
167
|
+
backupRetentionDays: number;
|
|
168
|
+
/** Working directory (defaults to process.cwd()) */
|
|
169
|
+
workingDirectory?: string | undefined;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/filesystem/types.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
package/dist/index.browser.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -20,7 +20,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
var index_exports = {};
|
|
21
21
|
__export(index_exports, {
|
|
22
22
|
Dexto: () => import_Dexto.Dexto,
|
|
23
|
-
getDexto: () => import_Dexto.getDexto,
|
|
24
23
|
getFileMediaKind: () => import_context.getFileMediaKind,
|
|
25
24
|
getResourceKind: () => import_context.getResourceKind
|
|
26
25
|
});
|
|
@@ -47,10 +46,10 @@ __reExport(index_exports, require("./resources/index.js"), module.exports);
|
|
|
47
46
|
__reExport(index_exports, require("./approval/index.js"), module.exports);
|
|
48
47
|
__reExport(index_exports, require("./memory/index.js"), module.exports);
|
|
49
48
|
__reExport(index_exports, require("./plugins/index.js"), module.exports);
|
|
49
|
+
__reExport(index_exports, require("./telemetry/index.js"), module.exports);
|
|
50
50
|
// Annotate the CommonJS export names for ESM import in node:
|
|
51
51
|
0 && (module.exports = {
|
|
52
52
|
Dexto,
|
|
53
|
-
getDexto,
|
|
54
53
|
getFileMediaKind,
|
|
55
54
|
getResourceKind,
|
|
56
55
|
...require("./agent/index.js"),
|
|
@@ -72,5 +71,6 @@ __reExport(index_exports, require("./plugins/index.js"), module.exports);
|
|
|
72
71
|
...require("./resources/index.js"),
|
|
73
72
|
...require("./approval/index.js"),
|
|
74
73
|
...require("./memory/index.js"),
|
|
75
|
-
...require("./plugins/index.js")
|
|
74
|
+
...require("./plugins/index.js"),
|
|
75
|
+
...require("./telemetry/index.js")
|
|
76
76
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Browser: Routes to index.browser.ts (minimal safe exports)
|
|
9
9
|
* - Node: Routes to this file (full exports)
|
|
10
10
|
*/
|
|
11
|
-
export { Dexto
|
|
11
|
+
export { Dexto } from './Dexto.js';
|
|
12
12
|
export * from './agent/index.js';
|
|
13
13
|
export * from './config/index.js';
|
|
14
14
|
export * from './errors/index.js';
|
|
@@ -30,4 +30,5 @@ export * from './resources/index.js';
|
|
|
30
30
|
export * from './approval/index.js';
|
|
31
31
|
export * from './memory/index.js';
|
|
32
32
|
export * from './plugins/index.js';
|
|
33
|
+
export * from './telemetry/index.js';
|
|
33
34
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,wBAAwB,CAAC;AAGvC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGvE,cAAc,oBAAoB,CAAC;AAGnC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./chunk-C6A6W6XS.js";
|
|
2
|
+
import { Dexto } from "./Dexto.js";
|
|
2
3
|
export * from "./agent/index.js";
|
|
3
4
|
export * from "./config/index.js";
|
|
4
5
|
export * from "./errors/index.js";
|
|
@@ -20,9 +21,9 @@ export * from "./resources/index.js";
|
|
|
20
21
|
export * from "./approval/index.js";
|
|
21
22
|
export * from "./memory/index.js";
|
|
22
23
|
export * from "./plugins/index.js";
|
|
24
|
+
export * from "./telemetry/index.js";
|
|
23
25
|
export {
|
|
24
26
|
Dexto,
|
|
25
|
-
getDexto,
|
|
26
27
|
getFileMediaKind,
|
|
27
28
|
getResourceKind
|
|
28
29
|
};
|
package/dist/llm/error-codes.js
CHANGED
package/dist/llm/errors.js
CHANGED
package/dist/llm/registry.cjs
CHANGED
|
@@ -89,6 +89,7 @@ const LLM_REGISTRY = {
|
|
|
89
89
|
name: "gpt-5-mini",
|
|
90
90
|
displayName: "GPT-5 Mini",
|
|
91
91
|
maxInputTokens: 4e5,
|
|
92
|
+
default: true,
|
|
92
93
|
supportedFileTypes: ["pdf", "image"],
|
|
93
94
|
pricing: {
|
|
94
95
|
inputPerM: 0.25,
|
|
@@ -128,7 +129,6 @@ const LLM_REGISTRY = {
|
|
|
128
129
|
name: "gpt-4.1-mini",
|
|
129
130
|
displayName: "GPT-4.1 Mini",
|
|
130
131
|
maxInputTokens: 1048576,
|
|
131
|
-
default: true,
|
|
132
132
|
supportedFileTypes: ["pdf", "image"],
|
|
133
133
|
pricing: {
|
|
134
134
|
inputPerM: 0.4,
|
|
@@ -273,22 +273,22 @@ const LLM_REGISTRY = {
|
|
|
273
273
|
}
|
|
274
274
|
},
|
|
275
275
|
{
|
|
276
|
-
name: "claude-
|
|
277
|
-
displayName: "Claude 4.
|
|
276
|
+
name: "claude-sonnet-4-5-20250929",
|
|
277
|
+
displayName: "Claude 4.5 Sonnet",
|
|
278
278
|
maxInputTokens: 2e5,
|
|
279
279
|
supportedFileTypes: ["pdf", "image"],
|
|
280
280
|
pricing: {
|
|
281
|
-
inputPerM:
|
|
282
|
-
outputPerM:
|
|
283
|
-
cacheWritePerM:
|
|
284
|
-
cacheReadPerM:
|
|
281
|
+
inputPerM: 3,
|
|
282
|
+
outputPerM: 15,
|
|
283
|
+
cacheWritePerM: 3.75,
|
|
284
|
+
cacheReadPerM: 0.3,
|
|
285
285
|
currency: "USD",
|
|
286
286
|
unit: "per_million_tokens"
|
|
287
287
|
}
|
|
288
288
|
},
|
|
289
289
|
{
|
|
290
|
-
name: "claude-4-
|
|
291
|
-
displayName: "Claude 4 Opus",
|
|
290
|
+
name: "claude-opus-4-1-20250805",
|
|
291
|
+
displayName: "Claude 4.1 Opus",
|
|
292
292
|
maxInputTokens: 2e5,
|
|
293
293
|
supportedFileTypes: ["pdf", "image"],
|
|
294
294
|
pricing: {
|
|
@@ -301,15 +301,15 @@ const LLM_REGISTRY = {
|
|
|
301
301
|
}
|
|
302
302
|
},
|
|
303
303
|
{
|
|
304
|
-
name: "claude-
|
|
305
|
-
displayName: "Claude 4
|
|
304
|
+
name: "claude-4-opus-20250514",
|
|
305
|
+
displayName: "Claude 4 Opus",
|
|
306
306
|
maxInputTokens: 2e5,
|
|
307
307
|
supportedFileTypes: ["pdf", "image"],
|
|
308
308
|
pricing: {
|
|
309
|
-
inputPerM:
|
|
310
|
-
outputPerM:
|
|
311
|
-
cacheWritePerM:
|
|
312
|
-
cacheReadPerM:
|
|
309
|
+
inputPerM: 15,
|
|
310
|
+
outputPerM: 75,
|
|
311
|
+
cacheWritePerM: 18.75,
|
|
312
|
+
cacheReadPerM: 1.5,
|
|
313
313
|
currency: "USD",
|
|
314
314
|
unit: "per_million_tokens"
|
|
315
315
|
}
|
package/dist/llm/registry.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ export declare function isValidProviderModel(provider: LLMProvider, model: strin
|
|
|
74
74
|
* Matches the model name (case-insensitive) against all registered models.
|
|
75
75
|
* Returns the provider name if found, or 'unknown' if not found.
|
|
76
76
|
*
|
|
77
|
-
* @param model The model name (e.g., 'gpt-
|
|
77
|
+
* @param model The model name (e.g., 'gpt-5-mini', 'claude-sonnet-4-5-20250929')
|
|
78
78
|
* @returns The inferred provider name ('openai', 'anthropic', etc.), or 'unknown' if no match is found.
|
|
79
79
|
*/
|
|
80
80
|
export declare function getProviderFromModel(model: string): LLMProvider;
|
package/dist/llm/registry.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "../chunk-C6A6W6XS.js";
|
|
1
2
|
import { LLMError } from "./errors.js";
|
|
2
3
|
import { LLMErrorCode } from "./error-codes.js";
|
|
3
4
|
import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
|
|
@@ -47,6 +48,7 @@ const LLM_REGISTRY = {
|
|
|
47
48
|
name: "gpt-5-mini",
|
|
48
49
|
displayName: "GPT-5 Mini",
|
|
49
50
|
maxInputTokens: 4e5,
|
|
51
|
+
default: true,
|
|
50
52
|
supportedFileTypes: ["pdf", "image"],
|
|
51
53
|
pricing: {
|
|
52
54
|
inputPerM: 0.25,
|
|
@@ -86,7 +88,6 @@ const LLM_REGISTRY = {
|
|
|
86
88
|
name: "gpt-4.1-mini",
|
|
87
89
|
displayName: "GPT-4.1 Mini",
|
|
88
90
|
maxInputTokens: 1048576,
|
|
89
|
-
default: true,
|
|
90
91
|
supportedFileTypes: ["pdf", "image"],
|
|
91
92
|
pricing: {
|
|
92
93
|
inputPerM: 0.4,
|
|
@@ -231,22 +232,22 @@ const LLM_REGISTRY = {
|
|
|
231
232
|
}
|
|
232
233
|
},
|
|
233
234
|
{
|
|
234
|
-
name: "claude-
|
|
235
|
-
displayName: "Claude 4.
|
|
235
|
+
name: "claude-sonnet-4-5-20250929",
|
|
236
|
+
displayName: "Claude 4.5 Sonnet",
|
|
236
237
|
maxInputTokens: 2e5,
|
|
237
238
|
supportedFileTypes: ["pdf", "image"],
|
|
238
239
|
pricing: {
|
|
239
|
-
inputPerM:
|
|
240
|
-
outputPerM:
|
|
241
|
-
cacheWritePerM:
|
|
242
|
-
cacheReadPerM:
|
|
240
|
+
inputPerM: 3,
|
|
241
|
+
outputPerM: 15,
|
|
242
|
+
cacheWritePerM: 3.75,
|
|
243
|
+
cacheReadPerM: 0.3,
|
|
243
244
|
currency: "USD",
|
|
244
245
|
unit: "per_million_tokens"
|
|
245
246
|
}
|
|
246
247
|
},
|
|
247
248
|
{
|
|
248
|
-
name: "claude-4-
|
|
249
|
-
displayName: "Claude 4 Opus",
|
|
249
|
+
name: "claude-opus-4-1-20250805",
|
|
250
|
+
displayName: "Claude 4.1 Opus",
|
|
250
251
|
maxInputTokens: 2e5,
|
|
251
252
|
supportedFileTypes: ["pdf", "image"],
|
|
252
253
|
pricing: {
|
|
@@ -259,15 +260,15 @@ const LLM_REGISTRY = {
|
|
|
259
260
|
}
|
|
260
261
|
},
|
|
261
262
|
{
|
|
262
|
-
name: "claude-
|
|
263
|
-
displayName: "Claude 4
|
|
263
|
+
name: "claude-4-opus-20250514",
|
|
264
|
+
displayName: "Claude 4 Opus",
|
|
264
265
|
maxInputTokens: 2e5,
|
|
265
266
|
supportedFileTypes: ["pdf", "image"],
|
|
266
267
|
pricing: {
|
|
267
|
-
inputPerM:
|
|
268
|
-
outputPerM:
|
|
269
|
-
cacheWritePerM:
|
|
270
|
-
cacheReadPerM:
|
|
268
|
+
inputPerM: 15,
|
|
269
|
+
outputPerM: 75,
|
|
270
|
+
cacheWritePerM: 18.75,
|
|
271
|
+
cacheReadPerM: 1.5,
|
|
271
272
|
currency: "USD",
|
|
272
273
|
unit: "per_million_tokens"
|
|
273
274
|
}
|
package/dist/llm/resolver.js
CHANGED