@dexto/core 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +125 -0
- package/dist/agent/DextoAgent.cjs +793 -0
- package/dist/agent/DextoAgent.d.cts +473 -0
- package/dist/agent/DextoAgent.d.ts +473 -0
- package/dist/agent/DextoAgent.js +774 -0
- package/dist/agent/agentCard.cjs +44 -0
- package/dist/agent/agentCard.d.cts +20 -0
- package/dist/agent/agentCard.d.ts +20 -0
- package/dist/agent/agentCard.js +20 -0
- package/dist/agent/error-codes.cjs +35 -0
- package/dist/agent/error-codes.d.cts +14 -0
- package/dist/agent/error-codes.d.ts +14 -0
- package/dist/agent/error-codes.js +11 -0
- package/dist/agent/errors.cjs +84 -0
- package/dist/agent/errors.d.cts +40 -0
- package/dist/agent/errors.d.ts +40 -0
- package/dist/agent/errors.js +60 -0
- package/dist/agent/index.cjs +44 -0
- package/dist/agent/index.d.cts +60 -0
- package/dist/agent/index.d.ts +60 -0
- package/dist/agent/index.js +13 -0
- package/dist/agent/registry/error-codes.cjs +42 -0
- package/dist/agent/registry/error-codes.d.cts +20 -0
- package/dist/agent/registry/error-codes.d.ts +20 -0
- package/dist/agent/registry/error-codes.js +18 -0
- package/dist/agent/registry/errors.cjs +158 -0
- package/dist/agent/registry/errors.d.cts +67 -0
- package/dist/agent/registry/errors.d.ts +67 -0
- package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
- package/dist/agent/registry/registry.cjs +291 -0
- package/dist/agent/registry/registry.d.cts +67 -0
- package/dist/agent/registry/registry.d.ts +67 -0
- package/dist/agent/registry/registry.js +256 -0
- package/dist/agent/registry/types.cjs +41 -0
- package/dist/agent/registry/types.d.cts +100 -0
- package/dist/agent/registry/types.d.ts +100 -0
- package/dist/agent/registry/types.js +16 -0
- package/dist/agent/schemas.cjs +113 -0
- package/dist/agent/schemas.d.cts +1502 -0
- package/dist/agent/schemas.d.ts +1502 -0
- package/dist/agent/schemas.js +88 -0
- package/dist/agent/state-manager.cjs +214 -0
- package/dist/agent/state-manager.d.cts +97 -0
- package/dist/agent/state-manager.d.ts +97 -0
- package/dist/agent/state-manager.js +190 -0
- package/dist/config/agent-resolver.cjs +153 -0
- package/dist/config/agent-resolver.d.cts +15 -0
- package/dist/config/agent-resolver.d.ts +15 -0
- package/dist/config/agent-resolver.js +122 -0
- package/dist/config/error-codes.cjs +39 -0
- package/dist/config/error-codes.d.cts +17 -0
- package/dist/config/error-codes.d.ts +17 -0
- package/dist/config/error-codes.js +15 -0
- package/dist/config/errors.cjs +126 -0
- package/dist/config/errors.d.cts +49 -0
- package/dist/config/errors.d.ts +49 -0
- package/dist/config/errors.js +102 -0
- package/dist/config/index.cjs +26 -0
- package/dist/config/index.d.cts +7 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.js +3 -0
- package/dist/config/loader.cjs +119 -0
- package/dist/config/loader.d.cts +19 -0
- package/dist/config/loader.d.ts +19 -0
- package/dist/config/loader.js +85 -0
- package/dist/config/writer.cjs +182 -0
- package/dist/config/writer.d.cts +38 -0
- package/dist/config/writer.d.ts +38 -0
- package/dist/config/writer.js +146 -0
- package/dist/context/compression/middle-removal.cjs +95 -0
- package/dist/context/compression/middle-removal.d.cts +48 -0
- package/dist/context/compression/middle-removal.d.ts +48 -0
- package/dist/context/compression/middle-removal.js +71 -0
- package/dist/context/compression/oldest-removal.cjs +70 -0
- package/dist/context/compression/oldest-removal.d.cts +43 -0
- package/dist/context/compression/oldest-removal.d.ts +43 -0
- package/dist/context/compression/oldest-removal.js +46 -0
- package/dist/context/compression/types.cjs +16 -0
- package/dist/context/compression/types.d.cts +21 -0
- package/dist/context/compression/types.d.ts +21 -0
- package/dist/context/compression/types.js +0 -0
- package/dist/context/error-codes.cjs +41 -0
- package/dist/context/error-codes.d.cts +19 -0
- package/dist/context/error-codes.d.ts +19 -0
- package/dist/context/error-codes.js +17 -0
- package/dist/context/errors.cjs +146 -0
- package/dist/context/errors.d.cts +36 -0
- package/dist/context/errors.d.ts +36 -0
- package/dist/context/errors.js +122 -0
- package/dist/context/index.cjs +24 -0
- package/dist/context/index.d.cts +19 -0
- package/dist/context/index.d.ts +19 -0
- package/dist/context/index.js +2 -0
- package/dist/context/manager.cjs +516 -0
- package/dist/context/manager.d.cts +254 -0
- package/dist/context/manager.d.ts +254 -0
- package/dist/context/manager.js +492 -0
- package/dist/context/types.cjs +16 -0
- package/dist/context/types.d.cts +113 -0
- package/dist/context/types.d.ts +113 -0
- package/dist/context/types.js +0 -0
- package/dist/context/utils.cjs +406 -0
- package/dist/context/utils.d.cts +79 -0
- package/dist/context/utils.d.ts +79 -0
- package/dist/context/utils.js +374 -0
- package/dist/errors/DextoBaseError.cjs +36 -0
- package/dist/errors/DextoBaseError.d.cts +15 -0
- package/dist/errors/DextoBaseError.d.ts +15 -0
- package/dist/errors/DextoBaseError.js +12 -0
- package/dist/errors/DextoRuntimeError.cjs +50 -0
- package/dist/errors/DextoRuntimeError.d.cts +37 -0
- package/dist/errors/DextoRuntimeError.d.ts +37 -0
- package/dist/errors/DextoRuntimeError.js +26 -0
- package/dist/errors/DextoValidationError.cjs +118 -0
- package/dist/errors/DextoValidationError.d.cts +65 -0
- package/dist/errors/DextoValidationError.d.ts +65 -0
- package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
- package/dist/errors/index.cjs +42 -0
- package/dist/errors/index.d.cts +18 -0
- package/dist/errors/index.d.ts +18 -0
- package/dist/errors/index.js +13 -0
- package/dist/errors/result-bridge.cjs +38 -0
- package/dist/errors/result-bridge.d.cts +39 -0
- package/dist/errors/result-bridge.d.ts +39 -0
- package/dist/errors/result-bridge.js +14 -0
- package/dist/errors/types.cjs +54 -0
- package/dist/errors/types.d.cts +62 -0
- package/dist/errors/types.d.ts +62 -0
- package/dist/errors/types.js +29 -0
- package/dist/events/index.cjs +169 -0
- package/dist/events/index.d.cts +272 -0
- package/dist/events/index.d.ts +272 -0
- package/dist/events/index.js +136 -0
- package/dist/index.browser.cjs +9 -220
- package/dist/index.browser.d.cts +53 -379
- package/dist/index.browser.d.ts +53 -379
- package/dist/index.browser.js +4 -210
- package/dist/index.cjs +31 -15266
- package/dist/index.d.cts +89 -6842
- package/dist/index.d.ts +89 -6842
- package/dist/index.js +14 -9914
- package/dist/llm/error-codes.cjs +48 -0
- package/dist/llm/error-codes.d.cts +26 -0
- package/dist/llm/error-codes.d.ts +26 -0
- package/dist/llm/error-codes.js +24 -0
- package/dist/llm/errors.cjs +108 -0
- package/dist/llm/errors.d.cts +58 -0
- package/dist/llm/errors.d.ts +58 -0
- package/dist/llm/errors.js +84 -0
- package/dist/llm/formatters/anthropic.cjs +246 -0
- package/dist/llm/formatters/anthropic.d.cts +45 -0
- package/dist/llm/formatters/anthropic.d.ts +45 -0
- package/dist/llm/formatters/anthropic.js +227 -0
- package/dist/llm/formatters/factory.cjs +51 -0
- package/dist/llm/formatters/factory.d.cts +12 -0
- package/dist/llm/formatters/factory.d.ts +12 -0
- package/dist/llm/formatters/factory.js +27 -0
- package/dist/llm/formatters/openai.cjs +167 -0
- package/dist/llm/formatters/openai.d.cts +38 -0
- package/dist/llm/formatters/openai.d.ts +38 -0
- package/dist/llm/formatters/openai.js +147 -0
- package/dist/llm/formatters/types.cjs +16 -0
- package/dist/llm/formatters/types.d.cts +43 -0
- package/dist/llm/formatters/types.d.ts +43 -0
- package/dist/llm/formatters/types.js +0 -0
- package/dist/llm/formatters/vercel.cjs +411 -0
- package/dist/llm/formatters/vercel.d.cts +48 -0
- package/dist/llm/formatters/vercel.d.ts +48 -0
- package/dist/llm/formatters/vercel.js +387 -0
- package/dist/llm/index.cjs +34 -0
- package/dist/llm/index.d.cts +39 -0
- package/dist/llm/index.d.ts +39 -0
- package/dist/llm/index.js +7 -0
- package/dist/llm/registry.cjs +881 -0
- package/dist/llm/registry.d.cts +176 -0
- package/dist/llm/registry.d.ts +176 -0
- package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
- package/dist/llm/resolver.cjs +154 -0
- package/dist/llm/resolver.d.cts +34 -0
- package/dist/llm/resolver.d.ts +34 -0
- package/dist/llm/resolver.js +136 -0
- package/dist/llm/schemas.cjs +188 -0
- package/dist/llm/schemas.d.cts +111 -0
- package/dist/llm/schemas.d.ts +111 -0
- package/dist/llm/schemas.js +172 -0
- package/dist/llm/services/anthropic.cjs +398 -0
- package/dist/llm/services/anthropic.d.cts +65 -0
- package/dist/llm/services/anthropic.d.ts +65 -0
- package/dist/llm/services/anthropic.js +374 -0
- package/dist/llm/services/factory.cjs +164 -0
- package/dist/llm/services/factory.d.cts +39 -0
- package/dist/llm/services/factory.d.ts +39 -0
- package/dist/llm/services/factory.js +130 -0
- package/dist/llm/services/index.cjs +22 -0
- package/dist/llm/services/index.d.cts +21 -0
- package/dist/llm/services/index.d.ts +21 -0
- package/dist/llm/services/index.js +1 -0
- package/dist/llm/services/openai.cjs +470 -0
- package/dist/llm/services/openai.d.cts +65 -0
- package/dist/llm/services/openai.d.ts +65 -0
- package/dist/llm/services/openai.js +446 -0
- package/dist/llm/services/test-utils.integration.cjs +169 -0
- package/dist/llm/services/test-utils.integration.d.cts +83 -0
- package/dist/llm/services/test-utils.integration.d.ts +83 -0
- package/dist/llm/services/test-utils.integration.js +142 -0
- package/dist/llm/services/types.cjs +16 -0
- package/dist/llm/services/types.d.cts +56 -0
- package/dist/llm/services/types.d.ts +56 -0
- package/dist/llm/services/types.js +0 -0
- package/dist/llm/services/vercel.cjs +525 -0
- package/dist/llm/services/vercel.d.cts +72 -0
- package/dist/llm/services/vercel.d.ts +72 -0
- package/dist/llm/services/vercel.js +506 -0
- package/dist/llm/tokenizer/anthropic.cjs +43 -0
- package/dist/llm/tokenizer/anthropic.d.cts +21 -0
- package/dist/llm/tokenizer/anthropic.d.ts +21 -0
- package/dist/llm/tokenizer/anthropic.js +19 -0
- package/dist/llm/tokenizer/default.cjs +41 -0
- package/dist/llm/tokenizer/default.d.cts +16 -0
- package/dist/llm/tokenizer/default.d.ts +16 -0
- package/dist/llm/tokenizer/default.js +17 -0
- package/dist/llm/tokenizer/factory.cjs +44 -0
- package/dist/llm/tokenizer/factory.d.cts +12 -0
- package/dist/llm/tokenizer/factory.d.ts +12 -0
- package/dist/llm/tokenizer/factory.js +20 -0
- package/dist/llm/tokenizer/google.cjs +52 -0
- package/dist/llm/tokenizer/google.d.cts +31 -0
- package/dist/llm/tokenizer/google.d.ts +31 -0
- package/dist/llm/tokenizer/google.js +28 -0
- package/dist/llm/tokenizer/openai.cjs +108 -0
- package/dist/llm/tokenizer/openai.d.cts +32 -0
- package/dist/llm/tokenizer/openai.d.ts +32 -0
- package/dist/llm/tokenizer/openai.js +83 -0
- package/dist/llm/tokenizer/types.cjs +33 -0
- package/dist/llm/tokenizer/types.d.cts +19 -0
- package/dist/llm/tokenizer/types.d.ts +19 -0
- package/dist/llm/tokenizer/types.js +9 -0
- package/dist/llm/types.cjs +42 -0
- package/dist/llm/types.d.cts +29 -0
- package/dist/llm/types.d.ts +29 -0
- package/dist/llm/types.js +16 -0
- package/dist/llm/validation.cjs +162 -0
- package/dist/llm/validation.d.cts +60 -0
- package/dist/llm/validation.d.ts +60 -0
- package/dist/llm/validation.js +138 -0
- package/dist/logger/browser.cjs +86 -0
- package/dist/logger/browser.d.cts +29 -0
- package/dist/logger/browser.d.ts +29 -0
- package/dist/logger/browser.js +61 -0
- package/dist/logger/index.cjs +22 -0
- package/dist/logger/index.d.cts +1 -0
- package/dist/logger/index.d.ts +1 -0
- package/dist/logger/index.js +1 -0
- package/dist/logger/logger.cjs +362 -0
- package/dist/logger/logger.d.cts +52 -0
- package/dist/logger/logger.d.ts +52 -0
- package/dist/logger/logger.js +327 -0
- package/dist/mcp/error-codes.cjs +38 -0
- package/dist/mcp/error-codes.d.cts +16 -0
- package/dist/mcp/error-codes.d.ts +16 -0
- package/dist/mcp/error-codes.js +14 -0
- package/dist/mcp/errors.cjs +131 -0
- package/dist/mcp/errors.d.cts +72 -0
- package/dist/mcp/errors.d.ts +72 -0
- package/dist/mcp/errors.js +107 -0
- package/dist/mcp/index.cjs +34 -0
- package/dist/mcp/index.d.cts +26 -0
- package/dist/mcp/index.d.ts +26 -0
- package/dist/mcp/index.js +7 -0
- package/dist/mcp/manager.cjs +473 -0
- package/dist/mcp/manager.d.cts +163 -0
- package/dist/mcp/manager.d.ts +163 -0
- package/dist/mcp/manager.js +449 -0
- package/dist/mcp/mcp-client.cjs +420 -0
- package/dist/mcp/mcp-client.d.cts +108 -0
- package/dist/mcp/mcp-client.d.ts +108 -0
- package/dist/mcp/mcp-client.js +396 -0
- package/dist/mcp/resolver.cjs +78 -0
- package/dist/mcp/resolver.d.cts +22 -0
- package/dist/mcp/resolver.d.ts +22 -0
- package/dist/mcp/resolver.js +56 -0
- package/dist/mcp/schemas.cjs +82 -0
- package/dist/mcp/schemas.d.cts +266 -0
- package/dist/mcp/schemas.d.ts +266 -0
- package/dist/mcp/schemas.js +54 -0
- package/dist/mcp/types.cjs +16 -0
- package/dist/mcp/types.d.cts +21 -0
- package/dist/mcp/types.d.ts +21 -0
- package/dist/mcp/types.js +0 -0
- package/dist/preferences/constants.cjs +28 -0
- package/dist/preferences/constants.d.cts +3 -0
- package/dist/preferences/constants.d.ts +3 -0
- package/dist/preferences/constants.js +4 -0
- package/dist/preferences/error-codes.cjs +35 -0
- package/dist/preferences/error-codes.d.cts +9 -0
- package/dist/preferences/error-codes.d.ts +9 -0
- package/dist/preferences/error-codes.js +11 -0
- package/dist/preferences/errors.cjs +75 -0
- package/dist/preferences/errors.d.cts +33 -0
- package/dist/preferences/errors.d.ts +33 -0
- package/dist/preferences/errors.js +50 -0
- package/dist/preferences/index.cjs +55 -0
- package/dist/preferences/index.d.cts +21 -0
- package/dist/preferences/index.d.ts +21 -0
- package/dist/preferences/index.js +31 -0
- package/dist/preferences/loader.cjs +136 -0
- package/dist/preferences/loader.d.cts +45 -0
- package/dist/preferences/loader.d.ts +45 -0
- package/dist/preferences/loader.js +107 -0
- package/dist/preferences/schemas.cjs +74 -0
- package/dist/preferences/schemas.d.cts +104 -0
- package/dist/preferences/schemas.d.ts +104 -0
- package/dist/preferences/schemas.js +47 -0
- package/dist/search/index.cjs +28 -0
- package/dist/search/index.d.cts +5 -0
- package/dist/search/index.d.ts +5 -0
- package/dist/search/index.js +4 -0
- package/dist/search/search-service.cjs +245 -0
- package/dist/search/search-service.d.cts +47 -0
- package/dist/search/search-service.d.ts +47 -0
- package/dist/search/search-service.js +221 -0
- package/dist/search/types.cjs +16 -0
- package/dist/search/types.d.cts +78 -0
- package/dist/search/types.d.ts +78 -0
- package/dist/search/types.js +0 -0
- package/dist/session/chat-session.cjs +354 -0
- package/dist/session/chat-session.d.cts +284 -0
- package/dist/session/chat-session.d.ts +284 -0
- package/dist/session/chat-session.js +333 -0
- package/dist/session/error-codes.cjs +35 -0
- package/dist/session/error-codes.d.cts +13 -0
- package/dist/session/error-codes.d.ts +13 -0
- package/dist/session/error-codes.js +11 -0
- package/dist/session/errors.cjs +93 -0
- package/dist/session/errors.d.cts +58 -0
- package/dist/session/errors.d.ts +58 -0
- package/dist/session/errors.js +69 -0
- package/dist/session/history/database.cjs +95 -0
- package/dist/session/history/database.d.cts +28 -0
- package/dist/session/history/database.d.ts +28 -0
- package/dist/session/history/database.js +71 -0
- package/dist/session/history/factory.cjs +31 -0
- package/dist/session/history/factory.d.cts +11 -0
- package/dist/session/history/factory.d.ts +11 -0
- package/dist/session/history/factory.js +7 -0
- package/dist/session/history/types.cjs +16 -0
- package/dist/session/history/types.d.cts +17 -0
- package/dist/session/history/types.d.ts +17 -0
- package/dist/session/history/types.js +0 -0
- package/dist/session/index.cjs +37 -0
- package/dist/session/index.d.cts +53 -0
- package/dist/session/index.d.ts +53 -0
- package/dist/session/index.js +10 -0
- package/dist/session/schemas.cjs +32 -0
- package/dist/session/schemas.d.cts +16 -0
- package/dist/session/schemas.d.ts +16 -0
- package/dist/session/schemas.js +8 -0
- package/dist/session/session-manager.cjs +481 -0
- package/dist/session/session-manager.d.cts +219 -0
- package/dist/session/session-manager.d.ts +219 -0
- package/dist/session/session-manager.js +457 -0
- package/dist/storage/backend/cache-backend.cjs +16 -0
- package/dist/storage/backend/cache-backend.d.cts +15 -0
- package/dist/storage/backend/cache-backend.d.ts +15 -0
- package/dist/storage/backend/cache-backend.js +0 -0
- package/dist/storage/backend/database-backend.cjs +16 -0
- package/dist/storage/backend/database-backend.d.cts +19 -0
- package/dist/storage/backend/database-backend.d.ts +19 -0
- package/dist/storage/backend/database-backend.js +0 -0
- package/dist/storage/backend/memory-backend.cjs +140 -0
- package/dist/storage/backend/memory-backend.d.cts +34 -0
- package/dist/storage/backend/memory-backend.d.ts +34 -0
- package/dist/storage/backend/memory-backend.js +116 -0
- package/dist/storage/backend/postgres-backend.cjs +231 -0
- package/dist/storage/backend/postgres-backend.d.cts +37 -0
- package/dist/storage/backend/postgres-backend.d.ts +37 -0
- package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
- package/dist/storage/backend/redis-backend.cjs +184 -0
- package/dist/storage/backend/redis-backend.d.cts +36 -0
- package/dist/storage/backend/redis-backend.d.ts +36 -0
- package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
- package/dist/storage/backend/sqlite-backend.cjs +271 -0
- package/dist/storage/backend/sqlite-backend.d.cts +35 -0
- package/dist/storage/backend/sqlite-backend.d.ts +35 -0
- package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
- package/dist/storage/backend/types.cjs +16 -0
- package/dist/storage/backend/types.d.cts +14 -0
- package/dist/storage/backend/types.d.ts +14 -0
- package/dist/storage/backend/types.js +0 -0
- package/dist/storage/error-codes.cjs +36 -0
- package/dist/storage/error-codes.d.cts +14 -0
- package/dist/storage/error-codes.d.ts +14 -0
- package/dist/storage/error-codes.js +12 -0
- package/dist/storage/errors.cjs +104 -0
- package/dist/storage/errors.d.cts +63 -0
- package/dist/storage/errors.d.ts +63 -0
- package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
- package/dist/storage/index.cjs +33 -0
- package/dist/storage/index.d.cts +7 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/schemas.cjs +113 -0
- package/dist/storage/schemas.d.cts +856 -0
- package/dist/storage/schemas.d.ts +856 -0
- package/dist/storage/schemas.js +89 -0
- package/dist/storage/storage-manager.cjs +208 -0
- package/dist/storage/storage-manager.d.cts +52 -0
- package/dist/storage/storage-manager.d.ts +52 -0
- package/dist/storage/storage-manager.js +173 -0
- package/dist/storage/types.cjs +16 -0
- package/dist/storage/types.d.cts +5 -0
- package/dist/storage/types.d.ts +5 -0
- package/dist/storage/types.js +0 -0
- package/dist/systemPrompt/contributors.cjs +146 -0
- package/dist/systemPrompt/contributors.d.cts +44 -0
- package/dist/systemPrompt/contributors.d.ts +44 -0
- package/dist/systemPrompt/contributors.js +120 -0
- package/dist/systemPrompt/error-codes.cjs +35 -0
- package/dist/systemPrompt/error-codes.d.cts +13 -0
- package/dist/systemPrompt/error-codes.d.ts +13 -0
- package/dist/systemPrompt/error-codes.js +11 -0
- package/dist/systemPrompt/errors.cjs +93 -0
- package/dist/systemPrompt/errors.d.cts +55 -0
- package/dist/systemPrompt/errors.d.ts +55 -0
- package/dist/systemPrompt/errors.js +69 -0
- package/dist/systemPrompt/in-built-prompts.cjs +68 -0
- package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
- package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
- package/dist/systemPrompt/in-built-prompts.js +42 -0
- package/dist/systemPrompt/index.cjs +30 -0
- package/dist/systemPrompt/index.d.cts +14 -0
- package/dist/systemPrompt/index.d.ts +14 -0
- package/dist/systemPrompt/index.js +5 -0
- package/dist/systemPrompt/manager.cjs +93 -0
- package/dist/systemPrompt/manager.d.cts +31 -0
- package/dist/systemPrompt/manager.d.ts +31 -0
- package/dist/systemPrompt/manager.js +69 -0
- package/dist/systemPrompt/registry.cjs +51 -0
- package/dist/systemPrompt/registry.d.cts +20 -0
- package/dist/systemPrompt/registry.d.ts +20 -0
- package/dist/systemPrompt/registry.js +15 -0
- package/dist/systemPrompt/schemas.cjs +107 -0
- package/dist/systemPrompt/schemas.d.cts +401 -0
- package/dist/systemPrompt/schemas.d.ts +401 -0
- package/dist/systemPrompt/schemas.js +81 -0
- package/dist/systemPrompt/types.cjs +16 -0
- package/dist/systemPrompt/types.d.cts +19 -0
- package/dist/systemPrompt/types.d.ts +19 -0
- package/dist/systemPrompt/types.js +0 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
- package/dist/tools/confirmation/factory.cjs +52 -0
- package/dist/tools/confirmation/factory.d.cts +37 -0
- package/dist/tools/confirmation/factory.d.ts +37 -0
- package/dist/tools/confirmation/factory.js +28 -0
- package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
- package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
- package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
- package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
- package/dist/tools/confirmation/types.cjs +16 -0
- package/dist/tools/confirmation/types.d.cts +46 -0
- package/dist/tools/confirmation/types.d.ts +46 -0
- package/dist/tools/confirmation/types.js +0 -0
- package/dist/tools/error-codes.cjs +40 -0
- package/dist/tools/error-codes.d.cts +18 -0
- package/dist/tools/error-codes.d.ts +18 -0
- package/dist/tools/error-codes.js +16 -0
- package/dist/tools/errors.cjs +164 -0
- package/dist/tools/errors.d.cts +97 -0
- package/dist/tools/errors.d.ts +97 -0
- package/dist/tools/errors.js +140 -0
- package/dist/tools/index.cjs +37 -0
- package/dist/tools/index.d.cts +19 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
- package/dist/tools/internal-tools/index.cjs +24 -0
- package/dist/tools/internal-tools/index.d.cts +13 -0
- package/dist/tools/internal-tools/index.d.ts +13 -0
- package/dist/tools/internal-tools/index.js +2 -0
- package/dist/tools/internal-tools/provider.cjs +159 -0
- package/dist/tools/internal-tools/provider.d.cts +66 -0
- package/dist/tools/internal-tools/provider.d.ts +66 -0
- package/dist/tools/internal-tools/provider.js +135 -0
- package/dist/tools/internal-tools/registry.cjs +43 -0
- package/dist/tools/internal-tools/registry.d.cts +45 -0
- package/dist/tools/internal-tools/registry.d.ts +45 -0
- package/dist/tools/internal-tools/registry.js +17 -0
- package/dist/tools/schemas.cjs +45 -0
- package/dist/tools/schemas.d.cts +21 -0
- package/dist/tools/schemas.d.ts +21 -0
- package/dist/tools/schemas.js +20 -0
- package/dist/tools/tool-manager.cjs +275 -0
- package/dist/tools/tool-manager.d.cts +106 -0
- package/dist/tools/tool-manager.d.ts +106 -0
- package/dist/tools/tool-manager.js +251 -0
- package/dist/tools/types.cjs +16 -0
- package/dist/tools/types.d.cts +66 -0
- package/dist/tools/types.d.ts +66 -0
- package/dist/tools/types.js +0 -0
- package/dist/utils/api-key-resolver.cjs +62 -0
- package/dist/utils/api-key-resolver.d.cts +23 -0
- package/dist/utils/api-key-resolver.d.ts +23 -0
- package/dist/utils/api-key-resolver.js +36 -0
- package/dist/utils/api-key-store.cjs +56 -0
- package/dist/utils/api-key-store.d.cts +26 -0
- package/dist/utils/api-key-store.d.ts +26 -0
- package/dist/utils/api-key-store.js +30 -0
- package/dist/utils/env.cjs +154 -0
- package/dist/utils/env.d.cts +29 -0
- package/dist/utils/env.d.ts +29 -0
- package/dist/utils/env.js +118 -0
- package/dist/utils/error-conversion.cjs +53 -0
- package/dist/utils/error-conversion.d.cts +13 -0
- package/dist/utils/error-conversion.d.ts +13 -0
- package/dist/utils/error-conversion.js +29 -0
- package/dist/utils/execution-context.cjs +85 -0
- package/dist/utils/execution-context.d.cts +21 -0
- package/dist/utils/execution-context.d.ts +21 -0
- package/dist/utils/execution-context.js +49 -0
- package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
- package/dist/utils/fs-walk.d.cts +9 -0
- package/dist/utils/fs-walk.d.ts +9 -0
- package/dist/utils/fs-walk.js +18 -0
- package/dist/utils/index.cjs +44 -0
- package/dist/utils/index.d.cts +63 -0
- package/dist/utils/index.d.ts +63 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/path.cjs +197 -0
- package/dist/utils/path.d.cts +54 -0
- package/dist/utils/path.d.ts +54 -0
- package/dist/utils/path.js +159 -0
- package/dist/utils/port-utils.cjs +37 -0
- package/dist/utils/port-utils.d.cts +11 -0
- package/dist/utils/port-utils.d.ts +11 -0
- package/dist/utils/port-utils.js +13 -0
- package/dist/utils/port-utils.spec.cjs +26 -0
- package/dist/utils/port-utils.spec.d.cts +2 -0
- package/dist/utils/port-utils.spec.d.ts +2 -0
- package/dist/utils/port-utils.spec.js +25 -0
- package/dist/utils/redactor.cjs +105 -0
- package/dist/utils/redactor.d.cts +18 -0
- package/dist/utils/redactor.d.ts +18 -0
- package/dist/utils/redactor.js +81 -0
- package/dist/utils/result.cjs +115 -0
- package/dist/utils/result.d.cts +180 -0
- package/dist/utils/result.d.ts +180 -0
- package/dist/utils/result.js +82 -0
- package/dist/utils/safe-stringify.cjs +57 -0
- package/dist/utils/safe-stringify.d.cts +7 -0
- package/dist/utils/safe-stringify.d.ts +7 -0
- package/dist/utils/safe-stringify.js +33 -0
- package/dist/utils/schema.cjs +42 -0
- package/dist/utils/schema.d.cts +6 -0
- package/dist/utils/schema.d.ts +6 -0
- package/dist/utils/schema.js +18 -0
- package/dist/utils/service-initializer.cjs +119 -0
- package/dist/utils/service-initializer.d.cts +63 -0
- package/dist/utils/service-initializer.d.ts +63 -0
- package/dist/utils/service-initializer.js +95 -0
- package/dist/utils/user-info.cjs +30 -0
- package/dist/utils/user-info.d.cts +3 -0
- package/dist/utils/user-info.d.ts +3 -0
- package/dist/utils/user-info.js +6 -0
- package/dist/utils/zod-schema-converter.cjs +112 -0
- package/dist/utils/zod-schema-converter.d.cts +13 -0
- package/dist/utils/zod-schema-converter.d.ts +13 -0
- package/dist/utils/zod-schema-converter.js +87 -0
- package/package.json +2 -2
- package/dist/chunk-D62MHQBE.js +0 -2203
- package/dist/chunk-FCJVTIBV.js +0 -535
- package/dist/chunk-TPERKLLN.js +0 -75
- package/dist/errors-ZZ4Z3FKB.js +0 -10
- package/dist/loader-HBNEYPQZ.js +0 -20
- package/dist/path-TP7WBDED.js +0 -21
- package/dist/registry-Z4DFXODW.js +0 -14
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import { existsSync } from "fs";
|
|
3
|
+
import { promises as fs } from "fs";
|
|
4
|
+
import { homedir } from "os";
|
|
5
|
+
import { createRequire } from "module";
|
|
6
|
+
import { fileURLToPath } from "url";
|
|
7
|
+
import { walkUpDirectories } from "./fs-walk.js";
|
|
8
|
+
import {
|
|
9
|
+
getExecutionContext,
|
|
10
|
+
findDextoSourceRoot,
|
|
11
|
+
findDextoProjectRoot
|
|
12
|
+
} from "./execution-context.js";
|
|
13
|
+
import { logger } from "../logger/index.js";
|
|
14
|
+
function getDextoPath(type, filename, startPath) {
|
|
15
|
+
const context = getExecutionContext(startPath);
|
|
16
|
+
let basePath;
|
|
17
|
+
switch (context) {
|
|
18
|
+
case "dexto-source": {
|
|
19
|
+
const sourceRoot = findDextoSourceRoot(startPath);
|
|
20
|
+
if (!sourceRoot) {
|
|
21
|
+
throw new Error("Not in dexto source context");
|
|
22
|
+
}
|
|
23
|
+
basePath = path.join(sourceRoot, ".dexto", type);
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
case "dexto-project": {
|
|
27
|
+
const projectRoot = findDextoProjectRoot(startPath);
|
|
28
|
+
if (!projectRoot) {
|
|
29
|
+
throw new Error("Not in dexto project context");
|
|
30
|
+
}
|
|
31
|
+
basePath = path.join(projectRoot, ".dexto", type);
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
case "global-cli": {
|
|
35
|
+
basePath = path.join(homedir(), ".dexto", type);
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
default: {
|
|
39
|
+
throw new Error(`Unknown execution context: ${context}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return filename ? path.join(basePath, filename) : basePath;
|
|
43
|
+
}
|
|
44
|
+
function getDextoGlobalPath(type, filename) {
|
|
45
|
+
const basePath = path.join(homedir(), ".dexto", type);
|
|
46
|
+
return filename ? path.join(basePath, filename) : basePath;
|
|
47
|
+
}
|
|
48
|
+
async function copyDirectory(src, dest) {
|
|
49
|
+
await fs.mkdir(dest, { recursive: true });
|
|
50
|
+
const entries = await fs.readdir(src, { withFileTypes: true });
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
const srcPath = path.join(src, entry.name);
|
|
53
|
+
const destPath = path.join(dest, entry.name);
|
|
54
|
+
if (entry.isDirectory()) {
|
|
55
|
+
await copyDirectory(srcPath, destPath);
|
|
56
|
+
} else {
|
|
57
|
+
await fs.copyFile(srcPath, destPath);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function isPath(str) {
|
|
62
|
+
if (path.isAbsolute(str)) return true;
|
|
63
|
+
if (/[\\/]/.test(str)) return true;
|
|
64
|
+
if (/\.(ya?ml|json)$/i.test(str)) return true;
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
function findPackageRoot(startPath = process.cwd()) {
|
|
68
|
+
return walkUpDirectories(startPath, (dirPath) => {
|
|
69
|
+
const pkgPath = path.join(dirPath, "package.json");
|
|
70
|
+
return existsSync(pkgPath);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function resolveBundledScript(scriptPath) {
|
|
74
|
+
const candidates = scriptPath.startsWith("dist/") ? [scriptPath, scriptPath.replace(/^dist\//, "")] : [`dist/${scriptPath}`, scriptPath];
|
|
75
|
+
const triedAbs = [];
|
|
76
|
+
const tryRoots = (roots) => {
|
|
77
|
+
for (const root of roots) {
|
|
78
|
+
if (!root) continue;
|
|
79
|
+
for (const rel of candidates) {
|
|
80
|
+
const abs = path.resolve(root, rel);
|
|
81
|
+
if (existsSync(abs)) return abs;
|
|
82
|
+
triedAbs.push(abs);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
};
|
|
87
|
+
const envRoot = process?.env?.DEXTO_PACKAGE_ROOT;
|
|
88
|
+
const fromEnv = tryRoots([envRoot]);
|
|
89
|
+
if (fromEnv) return fromEnv;
|
|
90
|
+
try {
|
|
91
|
+
const require2 = createRequire(import.meta.url);
|
|
92
|
+
const pkgJson = require2.resolve("dexto/package.json");
|
|
93
|
+
const pkgRoot = path.dirname(pkgJson);
|
|
94
|
+
const fromPkg = tryRoots([pkgRoot]);
|
|
95
|
+
if (fromPkg) return fromPkg;
|
|
96
|
+
} catch {
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
const thisModuleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
100
|
+
const sourceRoot = findDextoSourceRoot(thisModuleDir);
|
|
101
|
+
const fromSource = tryRoots([sourceRoot ?? void 0]);
|
|
102
|
+
if (fromSource) return fromSource;
|
|
103
|
+
} catch {
|
|
104
|
+
}
|
|
105
|
+
const repoRoot = findPackageRoot();
|
|
106
|
+
const fromCwd = tryRoots([repoRoot ?? void 0]);
|
|
107
|
+
if (fromCwd) return fromCwd;
|
|
108
|
+
throw new Error(
|
|
109
|
+
`Bundled script not found: ${scriptPath} (tried absolute: ${triedAbs.join(", ")})`
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
async function ensureDextoGlobalDirectory() {
|
|
113
|
+
const dextoDir = path.join(homedir(), ".dexto");
|
|
114
|
+
try {
|
|
115
|
+
await fs.mkdir(dextoDir, { recursive: true });
|
|
116
|
+
} catch (error) {
|
|
117
|
+
if (error.code !== "EEXIST") {
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function getDextoEnvPath(startPath = process.cwd()) {
|
|
123
|
+
const context = getExecutionContext(startPath);
|
|
124
|
+
let envPath = "";
|
|
125
|
+
switch (context) {
|
|
126
|
+
case "dexto-source": {
|
|
127
|
+
const sourceRoot = findDextoSourceRoot(startPath);
|
|
128
|
+
if (!sourceRoot) {
|
|
129
|
+
throw new Error("Not in dexto source context");
|
|
130
|
+
}
|
|
131
|
+
envPath = path.join(sourceRoot, ".env");
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
case "dexto-project": {
|
|
135
|
+
const projectRoot = findDextoProjectRoot(startPath);
|
|
136
|
+
if (!projectRoot) {
|
|
137
|
+
throw new Error("Not in dexto project context");
|
|
138
|
+
}
|
|
139
|
+
envPath = path.join(projectRoot, ".env");
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
case "global-cli": {
|
|
143
|
+
envPath = path.join(homedir(), ".dexto", ".env");
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
logger.debug(`Dexto env path: ${envPath}, context: ${context}`);
|
|
148
|
+
return envPath;
|
|
149
|
+
}
|
|
150
|
+
export {
|
|
151
|
+
copyDirectory,
|
|
152
|
+
ensureDextoGlobalDirectory,
|
|
153
|
+
findPackageRoot,
|
|
154
|
+
getDextoEnvPath,
|
|
155
|
+
getDextoGlobalPath,
|
|
156
|
+
getDextoPath,
|
|
157
|
+
isPath,
|
|
158
|
+
resolveBundledScript
|
|
159
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var port_utils_exports = {};
|
|
20
|
+
__export(port_utils_exports, {
|
|
21
|
+
getPort: () => getPort
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(port_utils_exports);
|
|
24
|
+
function getPort(envVar, defaultPort, varName) {
|
|
25
|
+
if (envVar === void 0) {
|
|
26
|
+
return defaultPort;
|
|
27
|
+
}
|
|
28
|
+
const port = parseInt(envVar, 10);
|
|
29
|
+
if (isNaN(port) || port <= 0 || port > 65535) {
|
|
30
|
+
throw new Error(`Environment variable ${varName} value "${envVar}" is not a valid port`);
|
|
31
|
+
}
|
|
32
|
+
return port;
|
|
33
|
+
}
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
getPort
|
|
37
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse an environment variable as a port number, with validation.
|
|
3
|
+
* @param envVar - the string value from process.env
|
|
4
|
+
* @param defaultPort - fallback port if envVar is undefined
|
|
5
|
+
* @param varName - the name of the environment variable (used in error messages)
|
|
6
|
+
* @returns a valid port number
|
|
7
|
+
* @throws if envVar is set but not a valid port number
|
|
8
|
+
*/
|
|
9
|
+
declare function getPort(envVar: string | undefined, defaultPort: number, varName: string): number;
|
|
10
|
+
|
|
11
|
+
export { getPort };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse an environment variable as a port number, with validation.
|
|
3
|
+
* @param envVar - the string value from process.env
|
|
4
|
+
* @param defaultPort - fallback port if envVar is undefined
|
|
5
|
+
* @param varName - the name of the environment variable (used in error messages)
|
|
6
|
+
* @returns a valid port number
|
|
7
|
+
* @throws if envVar is set but not a valid port number
|
|
8
|
+
*/
|
|
9
|
+
declare function getPort(envVar: string | undefined, defaultPort: number, varName: string): number;
|
|
10
|
+
|
|
11
|
+
export { getPort };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function getPort(envVar, defaultPort, varName) {
|
|
2
|
+
if (envVar === void 0) {
|
|
3
|
+
return defaultPort;
|
|
4
|
+
}
|
|
5
|
+
const port = parseInt(envVar, 10);
|
|
6
|
+
if (isNaN(port) || port <= 0 || port > 65535) {
|
|
7
|
+
throw new Error(`Environment variable ${varName} value "${envVar}" is not a valid port`);
|
|
8
|
+
}
|
|
9
|
+
return port;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
getPort
|
|
13
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_vitest = require("vitest");
|
|
3
|
+
var import_port_utils = require("./port-utils.js");
|
|
4
|
+
(0, import_vitest.describe)("getPort", () => {
|
|
5
|
+
(0, import_vitest.it)("returns default if envVar is undefined", () => {
|
|
6
|
+
(0, import_vitest.expect)((0, import_port_utils.getPort)(void 0, 3e3, "TEST")).toBe(3e3);
|
|
7
|
+
});
|
|
8
|
+
(0, import_vitest.it)("parses valid numeric string", () => {
|
|
9
|
+
(0, import_vitest.expect)((0, import_port_utils.getPort)("8080", 3e3, "TEST")).toBe(8080);
|
|
10
|
+
});
|
|
11
|
+
(0, import_vitest.it)("throws error for non-numeric string", () => {
|
|
12
|
+
(0, import_vitest.expect)(() => (0, import_port_utils.getPort)("not-a-number", 3e3, "TEST")).toThrow(
|
|
13
|
+
'Environment variable TEST value "not-a-number" is not a valid port'
|
|
14
|
+
);
|
|
15
|
+
});
|
|
16
|
+
(0, import_vitest.it)("throws error for negative port", () => {
|
|
17
|
+
(0, import_vitest.expect)(() => (0, import_port_utils.getPort)("-1", 3e3, "TEST")).toThrow(
|
|
18
|
+
'Environment variable TEST value "-1" is not a valid port'
|
|
19
|
+
);
|
|
20
|
+
});
|
|
21
|
+
(0, import_vitest.it)("throws error for port > 65535", () => {
|
|
22
|
+
(0, import_vitest.expect)(() => (0, import_port_utils.getPort)("70000", 3e3, "TEST")).toThrow(
|
|
23
|
+
'Environment variable TEST value "70000" is not a valid port'
|
|
24
|
+
);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { getPort } from "./port-utils.js";
|
|
3
|
+
describe("getPort", () => {
|
|
4
|
+
it("returns default if envVar is undefined", () => {
|
|
5
|
+
expect(getPort(void 0, 3e3, "TEST")).toBe(3e3);
|
|
6
|
+
});
|
|
7
|
+
it("parses valid numeric string", () => {
|
|
8
|
+
expect(getPort("8080", 3e3, "TEST")).toBe(8080);
|
|
9
|
+
});
|
|
10
|
+
it("throws error for non-numeric string", () => {
|
|
11
|
+
expect(() => getPort("not-a-number", 3e3, "TEST")).toThrow(
|
|
12
|
+
'Environment variable TEST value "not-a-number" is not a valid port'
|
|
13
|
+
);
|
|
14
|
+
});
|
|
15
|
+
it("throws error for negative port", () => {
|
|
16
|
+
expect(() => getPort("-1", 3e3, "TEST")).toThrow(
|
|
17
|
+
'Environment variable TEST value "-1" is not a valid port'
|
|
18
|
+
);
|
|
19
|
+
});
|
|
20
|
+
it("throws error for port > 65535", () => {
|
|
21
|
+
expect(() => getPort("70000", 3e3, "TEST")).toThrow(
|
|
22
|
+
'Environment variable TEST value "70000" is not a valid port'
|
|
23
|
+
);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var redactor_exports = {};
|
|
20
|
+
__export(redactor_exports, {
|
|
21
|
+
redactSensitiveData: () => redactSensitiveData
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(redactor_exports);
|
|
24
|
+
const SENSITIVE_FIELDS = [
|
|
25
|
+
"apikey",
|
|
26
|
+
"api_key",
|
|
27
|
+
"token",
|
|
28
|
+
"access_token",
|
|
29
|
+
"refresh_token",
|
|
30
|
+
"password",
|
|
31
|
+
"secret"
|
|
32
|
+
];
|
|
33
|
+
const FILE_DATA_FIELDS = [
|
|
34
|
+
"base64",
|
|
35
|
+
"filedata",
|
|
36
|
+
"file_data",
|
|
37
|
+
"imagedata",
|
|
38
|
+
"image_data",
|
|
39
|
+
"audiodata",
|
|
40
|
+
"audio_data",
|
|
41
|
+
"data"
|
|
42
|
+
];
|
|
43
|
+
const SENSITIVE_PATTERNS = [
|
|
44
|
+
/\bsk-[A-Za-z0-9]{20,}\b/g,
|
|
45
|
+
// OpenAI API keys (at least 20 chars after sk-)
|
|
46
|
+
/\bBearer\s+[A-Za-z0-9\-_.=]+\b/gi,
|
|
47
|
+
// Bearer tokens
|
|
48
|
+
/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g,
|
|
49
|
+
// Emails
|
|
50
|
+
/\beyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*/g
|
|
51
|
+
// JWT tokens
|
|
52
|
+
];
|
|
53
|
+
const REDACTED = "[REDACTED]";
|
|
54
|
+
const REDACTED_CIRCULAR = "[REDACTED_CIRCULAR]";
|
|
55
|
+
const FILE_DATA_TRUNCATED = "[FILE_DATA_TRUNCATED]";
|
|
56
|
+
function isLargeBase64Data(value) {
|
|
57
|
+
return value.length > 1e3 && /^[A-Za-z0-9+/=]{1000,}$/.test(value.substring(0, 1e3));
|
|
58
|
+
}
|
|
59
|
+
function truncateFileData(value, key, parent) {
|
|
60
|
+
if (typeof value !== "string") return value;
|
|
61
|
+
const lowerKey = key.toLowerCase();
|
|
62
|
+
const hasFileContext = !!parent && ("mimeType" in parent || "filename" in parent || "fileName" in parent);
|
|
63
|
+
const looksLikeFileField = FILE_DATA_FIELDS.includes(lowerKey) || lowerKey === "data" && hasFileContext;
|
|
64
|
+
if (looksLikeFileField && isLargeBase64Data(value)) {
|
|
65
|
+
return `${FILE_DATA_TRUNCATED} (${value.length} chars)`;
|
|
66
|
+
}
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
function redactSensitiveData(input, seen = /* @__PURE__ */ new WeakSet()) {
|
|
70
|
+
if (typeof input === "string") {
|
|
71
|
+
let result = input;
|
|
72
|
+
for (const pattern of SENSITIVE_PATTERNS) {
|
|
73
|
+
result = result.replace(pattern, REDACTED);
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
if (Array.isArray(input)) {
|
|
78
|
+
if (seen.has(input)) return REDACTED_CIRCULAR;
|
|
79
|
+
seen.add(input);
|
|
80
|
+
return input.map((item) => redactSensitiveData(item, seen));
|
|
81
|
+
}
|
|
82
|
+
if (input && typeof input === "object") {
|
|
83
|
+
if (seen.has(input)) return REDACTED_CIRCULAR;
|
|
84
|
+
seen.add(input);
|
|
85
|
+
const result = {};
|
|
86
|
+
for (const [key, value] of Object.entries(input)) {
|
|
87
|
+
if (SENSITIVE_FIELDS.includes(key.toLowerCase())) {
|
|
88
|
+
result[key] = REDACTED;
|
|
89
|
+
} else {
|
|
90
|
+
const truncatedValue = truncateFileData(
|
|
91
|
+
value,
|
|
92
|
+
key,
|
|
93
|
+
input
|
|
94
|
+
);
|
|
95
|
+
result[key] = redactSensitiveData(truncatedValue, seen);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
return input;
|
|
101
|
+
}
|
|
102
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
103
|
+
0 && (module.exports = {
|
|
104
|
+
redactSensitiveData
|
|
105
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility to redact sensitive information from objects, arrays, and strings.
|
|
3
|
+
* - Redacts by field name (e.g., apiKey, token, password, etc.)
|
|
4
|
+
* - Redacts by value pattern (e.g., OpenAI keys, Bearer tokens, emails)
|
|
5
|
+
* - Handles deeply nested structures and circular references
|
|
6
|
+
* - Recursive and preserves structure
|
|
7
|
+
* - Easy to extend
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Redacts sensitive data from an object, array, or string.
|
|
11
|
+
* Handles circular references gracefully.
|
|
12
|
+
* @param input - The data to redact
|
|
13
|
+
* @param seen - Internal set to track circular references
|
|
14
|
+
* @returns The redacted data
|
|
15
|
+
*/
|
|
16
|
+
declare function redactSensitiveData(input: unknown, seen?: WeakSet<object>): unknown;
|
|
17
|
+
|
|
18
|
+
export { redactSensitiveData };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility to redact sensitive information from objects, arrays, and strings.
|
|
3
|
+
* - Redacts by field name (e.g., apiKey, token, password, etc.)
|
|
4
|
+
* - Redacts by value pattern (e.g., OpenAI keys, Bearer tokens, emails)
|
|
5
|
+
* - Handles deeply nested structures and circular references
|
|
6
|
+
* - Recursive and preserves structure
|
|
7
|
+
* - Easy to extend
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Redacts sensitive data from an object, array, or string.
|
|
11
|
+
* Handles circular references gracefully.
|
|
12
|
+
* @param input - The data to redact
|
|
13
|
+
* @param seen - Internal set to track circular references
|
|
14
|
+
* @returns The redacted data
|
|
15
|
+
*/
|
|
16
|
+
declare function redactSensitiveData(input: unknown, seen?: WeakSet<object>): unknown;
|
|
17
|
+
|
|
18
|
+
export { redactSensitiveData };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const SENSITIVE_FIELDS = [
|
|
2
|
+
"apikey",
|
|
3
|
+
"api_key",
|
|
4
|
+
"token",
|
|
5
|
+
"access_token",
|
|
6
|
+
"refresh_token",
|
|
7
|
+
"password",
|
|
8
|
+
"secret"
|
|
9
|
+
];
|
|
10
|
+
const FILE_DATA_FIELDS = [
|
|
11
|
+
"base64",
|
|
12
|
+
"filedata",
|
|
13
|
+
"file_data",
|
|
14
|
+
"imagedata",
|
|
15
|
+
"image_data",
|
|
16
|
+
"audiodata",
|
|
17
|
+
"audio_data",
|
|
18
|
+
"data"
|
|
19
|
+
];
|
|
20
|
+
const SENSITIVE_PATTERNS = [
|
|
21
|
+
/\bsk-[A-Za-z0-9]{20,}\b/g,
|
|
22
|
+
// OpenAI API keys (at least 20 chars after sk-)
|
|
23
|
+
/\bBearer\s+[A-Za-z0-9\-_.=]+\b/gi,
|
|
24
|
+
// Bearer tokens
|
|
25
|
+
/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g,
|
|
26
|
+
// Emails
|
|
27
|
+
/\beyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*/g
|
|
28
|
+
// JWT tokens
|
|
29
|
+
];
|
|
30
|
+
const REDACTED = "[REDACTED]";
|
|
31
|
+
const REDACTED_CIRCULAR = "[REDACTED_CIRCULAR]";
|
|
32
|
+
const FILE_DATA_TRUNCATED = "[FILE_DATA_TRUNCATED]";
|
|
33
|
+
function isLargeBase64Data(value) {
|
|
34
|
+
return value.length > 1e3 && /^[A-Za-z0-9+/=]{1000,}$/.test(value.substring(0, 1e3));
|
|
35
|
+
}
|
|
36
|
+
function truncateFileData(value, key, parent) {
|
|
37
|
+
if (typeof value !== "string") return value;
|
|
38
|
+
const lowerKey = key.toLowerCase();
|
|
39
|
+
const hasFileContext = !!parent && ("mimeType" in parent || "filename" in parent || "fileName" in parent);
|
|
40
|
+
const looksLikeFileField = FILE_DATA_FIELDS.includes(lowerKey) || lowerKey === "data" && hasFileContext;
|
|
41
|
+
if (looksLikeFileField && isLargeBase64Data(value)) {
|
|
42
|
+
return `${FILE_DATA_TRUNCATED} (${value.length} chars)`;
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
function redactSensitiveData(input, seen = /* @__PURE__ */ new WeakSet()) {
|
|
47
|
+
if (typeof input === "string") {
|
|
48
|
+
let result = input;
|
|
49
|
+
for (const pattern of SENSITIVE_PATTERNS) {
|
|
50
|
+
result = result.replace(pattern, REDACTED);
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
if (Array.isArray(input)) {
|
|
55
|
+
if (seen.has(input)) return REDACTED_CIRCULAR;
|
|
56
|
+
seen.add(input);
|
|
57
|
+
return input.map((item) => redactSensitiveData(item, seen));
|
|
58
|
+
}
|
|
59
|
+
if (input && typeof input === "object") {
|
|
60
|
+
if (seen.has(input)) return REDACTED_CIRCULAR;
|
|
61
|
+
seen.add(input);
|
|
62
|
+
const result = {};
|
|
63
|
+
for (const [key, value] of Object.entries(input)) {
|
|
64
|
+
if (SENSITIVE_FIELDS.includes(key.toLowerCase())) {
|
|
65
|
+
result[key] = REDACTED;
|
|
66
|
+
} else {
|
|
67
|
+
const truncatedValue = truncateFileData(
|
|
68
|
+
value,
|
|
69
|
+
key,
|
|
70
|
+
input
|
|
71
|
+
);
|
|
72
|
+
result[key] = redactSensitiveData(truncatedValue, seen);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
return input;
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
redactSensitiveData
|
|
81
|
+
};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var result_exports = {};
|
|
20
|
+
__export(result_exports, {
|
|
21
|
+
EnvExpandedString: () => EnvExpandedString,
|
|
22
|
+
NonEmptyEnvExpandedString: () => NonEmptyEnvExpandedString,
|
|
23
|
+
NonEmptyTrimmed: () => NonEmptyTrimmed,
|
|
24
|
+
OptionalURL: () => OptionalURL,
|
|
25
|
+
RequiredEnvURL: () => RequiredEnvURL,
|
|
26
|
+
fail: () => fail,
|
|
27
|
+
hasErrors: () => hasErrors,
|
|
28
|
+
ok: () => ok,
|
|
29
|
+
splitIssues: () => splitIssues,
|
|
30
|
+
zodToIssues: () => zodToIssues
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(result_exports);
|
|
33
|
+
var import_zod = require("zod");
|
|
34
|
+
var import_types = require("../errors/types.cjs");
|
|
35
|
+
const NonEmptyTrimmed = import_zod.z.string().transform((s) => s.trim()).refine((s) => s.length > 0, { message: "Required" });
|
|
36
|
+
function isValidUrl(s) {
|
|
37
|
+
try {
|
|
38
|
+
const u = new URL(s);
|
|
39
|
+
return u.protocol === "http:" || u.protocol === "https:";
|
|
40
|
+
} catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const OptionalURL = import_zod.z.string().transform((s) => s.trim()).refine((s) => s === "" || isValidUrl(s), { message: "Invalid URL" }).transform((s) => s === "" ? void 0 : s).optional();
|
|
45
|
+
const EnvExpandedString = (env) => import_zod.z.string().transform((input) => {
|
|
46
|
+
if (typeof input !== "string") return "";
|
|
47
|
+
const envToUse = env ?? process.env;
|
|
48
|
+
const out = input.replace(
|
|
49
|
+
/\$([A-Z_][A-Z0-9_]*)|\${([A-Z_][A-Z0-9_]*)}/gi,
|
|
50
|
+
(_, a, b) => envToUse[a || b] ?? ""
|
|
51
|
+
);
|
|
52
|
+
return out.trim();
|
|
53
|
+
});
|
|
54
|
+
const NonEmptyEnvExpandedString = (env) => EnvExpandedString(env).refine((s) => s.length > 0, {
|
|
55
|
+
message: "Value is required"
|
|
56
|
+
});
|
|
57
|
+
const RequiredEnvURL = (env) => EnvExpandedString(env).refine(
|
|
58
|
+
(s) => {
|
|
59
|
+
try {
|
|
60
|
+
const u = new URL(s);
|
|
61
|
+
return u.protocol === "http:" || u.protocol === "https:";
|
|
62
|
+
} catch {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{ message: "Invalid URL" }
|
|
67
|
+
);
|
|
68
|
+
const ok = (data, issues = []) => ({
|
|
69
|
+
ok: true,
|
|
70
|
+
data,
|
|
71
|
+
issues
|
|
72
|
+
// warnings live alongside errors here
|
|
73
|
+
});
|
|
74
|
+
const fail = (issues) => ({
|
|
75
|
+
ok: false,
|
|
76
|
+
issues
|
|
77
|
+
});
|
|
78
|
+
function hasErrors(issues) {
|
|
79
|
+
return issues.some((i) => i.severity !== "warning");
|
|
80
|
+
}
|
|
81
|
+
function splitIssues(issues) {
|
|
82
|
+
return {
|
|
83
|
+
errors: issues.filter((i) => i.severity !== "warning"),
|
|
84
|
+
warnings: issues.filter((i) => i.severity === "warning")
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function zodToIssues(err, severity = "error") {
|
|
88
|
+
return err.errors.map((e) => {
|
|
89
|
+
const params = e.params || {};
|
|
90
|
+
return {
|
|
91
|
+
code: params.code ?? "schema_validation",
|
|
92
|
+
message: e.message,
|
|
93
|
+
scope: params.scope ?? import_types.ErrorScope.AGENT,
|
|
94
|
+
// Fallback for non-custom Zod errors
|
|
95
|
+
// Treat plain Zod schema failures as USER errors by default
|
|
96
|
+
type: params.type ?? import_types.ErrorType.USER,
|
|
97
|
+
path: e.path,
|
|
98
|
+
severity,
|
|
99
|
+
context: params
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
104
|
+
0 && (module.exports = {
|
|
105
|
+
EnvExpandedString,
|
|
106
|
+
NonEmptyEnvExpandedString,
|
|
107
|
+
NonEmptyTrimmed,
|
|
108
|
+
OptionalURL,
|
|
109
|
+
RequiredEnvURL,
|
|
110
|
+
fail,
|
|
111
|
+
hasErrors,
|
|
112
|
+
ok,
|
|
113
|
+
splitIssues,
|
|
114
|
+
zodToIssues
|
|
115
|
+
});
|