aws-runtime-bridge 1.0.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 +56 -0
- package/dist/adapter/AdapterRegistry.d.ts +53 -0
- package/dist/adapter/AdapterRegistry.d.ts.map +1 -0
- package/dist/adapter/AdapterRegistry.js +100 -0
- package/dist/adapter/AdapterRegistry.test.d.ts +5 -0
- package/dist/adapter/AdapterRegistry.test.d.ts.map +1 -0
- package/dist/adapter/AdapterRegistry.test.js +109 -0
- package/dist/adapter/ClaudeSdkAdapter.d.ts +120 -0
- package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -0
- package/dist/adapter/ClaudeSdkAdapter.js +1140 -0
- package/dist/adapter/ClaudeSdkAdapter.test.d.ts +2 -0
- package/dist/adapter/ClaudeSdkAdapter.test.d.ts.map +1 -0
- package/dist/adapter/ClaudeSdkAdapter.test.js +95 -0
- package/dist/adapter/CodexSdkAdapter.d.ts +48 -0
- package/dist/adapter/CodexSdkAdapter.d.ts.map +1 -0
- package/dist/adapter/CodexSdkAdapter.js +750 -0
- package/dist/adapter/CodexSdkAdapter.test.d.ts +2 -0
- package/dist/adapter/CodexSdkAdapter.test.d.ts.map +1 -0
- package/dist/adapter/CodexSdkAdapter.test.js +245 -0
- package/dist/adapter/OpencodeSdkAdapter.d.ts +45 -0
- package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -0
- package/dist/adapter/OpencodeSdkAdapter.js +622 -0
- package/dist/adapter/OpencodeSdkAdapter.test.d.ts +2 -0
- package/dist/adapter/OpencodeSdkAdapter.test.d.ts.map +1 -0
- package/dist/adapter/OpencodeSdkAdapter.test.js +14 -0
- package/dist/adapter/SdkProviderSpi.d.ts +15 -0
- package/dist/adapter/SdkProviderSpi.d.ts.map +1 -0
- package/dist/adapter/SdkProviderSpi.js +46 -0
- package/dist/adapter/adapter.test.d.ts +5 -0
- package/dist/adapter/adapter.test.d.ts.map +1 -0
- package/dist/adapter/adapter.test.js +180 -0
- package/dist/adapter/index.d.ts +11 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/index.js +10 -0
- package/dist/adapter/types.d.ts +278 -0
- package/dist/adapter/types.d.ts.map +1 -0
- package/dist/adapter/types.js +278 -0
- package/dist/adapter/types.test.d.ts +2 -0
- package/dist/adapter/types.test.d.ts.map +1 -0
- package/dist/adapter/types.test.js +59 -0
- package/dist/adapters/cc-switch/common.d.ts +52 -0
- package/dist/adapters/cc-switch/common.d.ts.map +1 -0
- package/dist/adapters/cc-switch/common.js +61 -0
- package/dist/adapters/cc-switch/index.d.ts +25 -0
- package/dist/adapters/cc-switch/index.d.ts.map +1 -0
- package/dist/adapters/cc-switch/index.js +51 -0
- package/dist/adapters/cc-switch/mcp-claude.d.ts +15 -0
- package/dist/adapters/cc-switch/mcp-claude.d.ts.map +1 -0
- package/dist/adapters/cc-switch/mcp-claude.js +88 -0
- package/dist/adapters/cc-switch/mcp-claudecode.d.ts +15 -0
- package/dist/adapters/cc-switch/mcp-claudecode.d.ts.map +1 -0
- package/dist/adapters/cc-switch/mcp-claudecode.js +77 -0
- package/dist/adapters/cc-switch/mcp-codex.d.ts +17 -0
- package/dist/adapters/cc-switch/mcp-codex.d.ts.map +1 -0
- package/dist/adapters/cc-switch/mcp-codex.js +248 -0
- package/dist/adapters/cc-switch/mcp-codex.test.d.ts +2 -0
- package/dist/adapters/cc-switch/mcp-codex.test.d.ts.map +1 -0
- package/dist/adapters/cc-switch/mcp-codex.test.js +125 -0
- package/dist/adapters/cc-switch/mcp-opencode.d.ts +23 -0
- package/dist/adapters/cc-switch/mcp-opencode.d.ts.map +1 -0
- package/dist/adapters/cc-switch/mcp-opencode.js +100 -0
- package/dist/adapters/cc-switch/mcp-placeholder.d.ts +14 -0
- package/dist/adapters/cc-switch/mcp-placeholder.d.ts.map +1 -0
- package/dist/adapters/cc-switch/mcp-placeholder.js +19 -0
- package/dist/adapters/cc-switch/skill-claude.d.ts +15 -0
- package/dist/adapters/cc-switch/skill-claude.d.ts.map +1 -0
- package/dist/adapters/cc-switch/skill-claude.js +91 -0
- package/dist/adapters/cc-switch/skill-claudecode.d.ts +15 -0
- package/dist/adapters/cc-switch/skill-claudecode.d.ts.map +1 -0
- package/dist/adapters/cc-switch/skill-claudecode.js +91 -0
- package/dist/adapters/cc-switch/skill-opencode.d.ts +15 -0
- package/dist/adapters/cc-switch/skill-opencode.d.ts.map +1 -0
- package/dist/adapters/cc-switch/skill-opencode.js +95 -0
- package/dist/adapters/cc-switch/skill-placeholder.d.ts +14 -0
- package/dist/adapters/cc-switch/skill-placeholder.d.ts.map +1 -0
- package/dist/adapters/cc-switch/skill-placeholder.js +19 -0
- package/dist/config.d.ts +76 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +109 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +503 -0
- package/dist/middleware/auth.d.ts +12 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +18 -0
- package/dist/routes/ai-sources.d.ts +2 -0
- package/dist/routes/ai-sources.d.ts.map +1 -0
- package/dist/routes/ai-sources.js +136 -0
- package/dist/routes/ai-sources.test.d.ts +2 -0
- package/dist/routes/ai-sources.test.d.ts.map +1 -0
- package/dist/routes/ai-sources.test.js +148 -0
- package/dist/routes/aws-mcp.d.ts +10 -0
- package/dist/routes/aws-mcp.d.ts.map +1 -0
- package/dist/routes/aws-mcp.js +74 -0
- package/dist/routes/aws-mcp.test.d.ts +2 -0
- package/dist/routes/aws-mcp.test.d.ts.map +1 -0
- package/dist/routes/aws-mcp.test.js +42 -0
- package/dist/routes/file-browser.d.ts +7 -0
- package/dist/routes/file-browser.d.ts.map +1 -0
- package/dist/routes/file-browser.js +227 -0
- package/dist/routes/file-browser.test.d.ts +5 -0
- package/dist/routes/file-browser.test.d.ts.map +1 -0
- package/dist/routes/file-browser.test.js +88 -0
- package/dist/routes/git.d.ts +7 -0
- package/dist/routes/git.d.ts.map +1 -0
- package/dist/routes/git.js +470 -0
- package/dist/routes/git.test.d.ts +5 -0
- package/dist/routes/git.test.d.ts.map +1 -0
- package/dist/routes/git.test.js +87 -0
- package/dist/routes/instance.d.ts +3 -0
- package/dist/routes/instance.d.ts.map +1 -0
- package/dist/routes/instance.js +170 -0
- package/dist/routes/instance.test.d.ts +5 -0
- package/dist/routes/instance.test.d.ts.map +1 -0
- package/dist/routes/instance.test.js +64 -0
- package/dist/routes/mcp.d.ts +2 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +171 -0
- package/dist/routes/mcp.test.d.ts +5 -0
- package/dist/routes/mcp.test.d.ts.map +1 -0
- package/dist/routes/mcp.test.js +84 -0
- package/dist/routes/memory.d.ts +13 -0
- package/dist/routes/memory.d.ts.map +1 -0
- package/dist/routes/memory.js +429 -0
- package/dist/routes/processes.d.ts +7 -0
- package/dist/routes/processes.d.ts.map +1 -0
- package/dist/routes/processes.js +245 -0
- package/dist/routes/properties.d.ts +7 -0
- package/dist/routes/properties.d.ts.map +1 -0
- package/dist/routes/properties.js +72 -0
- package/dist/routes/properties.test.d.ts +5 -0
- package/dist/routes/properties.test.d.ts.map +1 -0
- package/dist/routes/properties.test.js +72 -0
- package/dist/routes/sessions.d.ts +7 -0
- package/dist/routes/sessions.d.ts.map +1 -0
- package/dist/routes/sessions.js +808 -0
- package/dist/routes/sessions.test.d.ts +5 -0
- package/dist/routes/sessions.test.d.ts.map +1 -0
- package/dist/routes/sessions.test.js +70 -0
- package/dist/routes/skills.d.ts +2 -0
- package/dist/routes/skills.d.ts.map +1 -0
- package/dist/routes/skills.js +162 -0
- package/dist/routes/skills.test.d.ts +5 -0
- package/dist/routes/skills.test.d.ts.map +1 -0
- package/dist/routes/skills.test.js +42 -0
- package/dist/routes/terminal.d.ts +18 -0
- package/dist/routes/terminal.d.ts.map +1 -0
- package/dist/routes/terminal.js +663 -0
- package/dist/routes/terminal.test.d.ts +2 -0
- package/dist/routes/terminal.test.d.ts.map +1 -0
- package/dist/routes/terminal.test.js +91 -0
- package/dist/routes/yml.d.ts +7 -0
- package/dist/routes/yml.d.ts.map +1 -0
- package/dist/routes/yml.js +223 -0
- package/dist/routes/yml.test.d.ts +5 -0
- package/dist/routes/yml.test.d.ts.map +1 -0
- package/dist/routes/yml.test.js +58 -0
- package/dist/services/agent-process-manager.d.ts +241 -0
- package/dist/services/agent-process-manager.d.ts.map +1 -0
- package/dist/services/agent-process-manager.js +762 -0
- package/dist/services/auto-register.d.ts +94 -0
- package/dist/services/auto-register.d.ts.map +1 -0
- package/dist/services/auto-register.js +510 -0
- package/dist/services/aws-client-agent-mcp.d.ts +26 -0
- package/dist/services/aws-client-agent-mcp.d.ts.map +1 -0
- package/dist/services/aws-client-agent-mcp.js +142 -0
- package/dist/services/aws-client-agent-mcp.test.d.ts +2 -0
- package/dist/services/aws-client-agent-mcp.test.d.ts.map +1 -0
- package/dist/services/aws-client-agent-mcp.test.js +89 -0
- package/dist/services/aws-mcp-http.d.ts +11 -0
- package/dist/services/aws-mcp-http.d.ts.map +1 -0
- package/dist/services/aws-mcp-http.js +225 -0
- package/dist/services/aws-mcp-http.test.d.ts +2 -0
- package/dist/services/aws-mcp-http.test.d.ts.map +1 -0
- package/dist/services/aws-mcp-http.test.js +27 -0
- package/dist/services/cc-switch-sdk.d.ts +18 -0
- package/dist/services/cc-switch-sdk.d.ts.map +1 -0
- package/dist/services/cc-switch-sdk.js +117 -0
- package/dist/services/easytier-manager.d.ts +106 -0
- package/dist/services/easytier-manager.d.ts.map +1 -0
- package/dist/services/easytier-manager.js +331 -0
- package/dist/services/easytier-manager.test.d.ts +5 -0
- package/dist/services/easytier-manager.test.d.ts.map +1 -0
- package/dist/services/easytier-manager.test.js +98 -0
- package/dist/services/instance-init-service.d.ts +35 -0
- package/dist/services/instance-init-service.d.ts.map +1 -0
- package/dist/services/instance-init-service.js +190 -0
- package/dist/services/instance-service.d.ts +88 -0
- package/dist/services/instance-service.d.ts.map +1 -0
- package/dist/services/instance-service.js +236 -0
- package/dist/services/instance-state.d.ts +36 -0
- package/dist/services/instance-state.d.ts.map +1 -0
- package/dist/services/instance-state.js +79 -0
- package/dist/services/instance-state.test.d.ts +2 -0
- package/dist/services/instance-state.test.d.ts.map +1 -0
- package/dist/services/instance-state.test.js +213 -0
- package/dist/services/memory-service.d.ts +195 -0
- package/dist/services/memory-service.d.ts.map +1 -0
- package/dist/services/memory-service.js +650 -0
- package/dist/services/orphan-monitor.d.ts +94 -0
- package/dist/services/orphan-monitor.d.ts.map +1 -0
- package/dist/services/orphan-monitor.js +321 -0
- package/dist/services/process-detector.d.ts +175 -0
- package/dist/services/process-detector.d.ts.map +1 -0
- package/dist/services/process-detector.js +992 -0
- package/dist/services/process-registry.d.ts +208 -0
- package/dist/services/process-registry.d.ts.map +1 -0
- package/dist/services/process-registry.js +354 -0
- package/dist/services/session-lookup.d.ts +20 -0
- package/dist/services/session-lookup.d.ts.map +1 -0
- package/dist/services/session-lookup.js +43 -0
- package/dist/services/session-output.d.ts +56 -0
- package/dist/services/session-output.d.ts.map +1 -0
- package/dist/services/session-output.js +122 -0
- package/dist/services/session-output.test.d.ts +5 -0
- package/dist/services/session-output.test.d.ts.map +1 -0
- package/dist/services/session-output.test.js +68 -0
- package/dist/services/terminal-persistence.d.ts +51 -0
- package/dist/services/terminal-persistence.d.ts.map +1 -0
- package/dist/services/terminal-persistence.js +125 -0
- package/dist/services/terminal-persistence.test.d.ts +5 -0
- package/dist/services/terminal-persistence.test.d.ts.map +1 -0
- package/dist/services/terminal-persistence.test.js +88 -0
- package/dist/services/tool-installer.d.ts +15 -0
- package/dist/services/tool-installer.d.ts.map +1 -0
- package/dist/services/tool-installer.js +297 -0
- package/dist/services/tool-installer.test.d.ts +2 -0
- package/dist/services/tool-installer.test.d.ts.map +1 -0
- package/dist/services/tool-installer.test.js +102 -0
- package/dist/services/user-api-key-service.d.ts +28 -0
- package/dist/services/user-api-key-service.d.ts.map +1 -0
- package/dist/services/user-api-key-service.js +75 -0
- package/dist/services/workspace-files.d.ts +85 -0
- package/dist/services/workspace-files.d.ts.map +1 -0
- package/dist/services/workspace-files.js +224 -0
- package/dist/services/workspace-files.test.d.ts +2 -0
- package/dist/services/workspace-files.test.d.ts.map +1 -0
- package/dist/services/workspace-files.test.js +117 -0
- package/dist/types.d.ts +233 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/utils/file-utils.d.ts +13 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.js +140 -0
- package/dist/utils/file-utils.test.d.ts +2 -0
- package/dist/utils/file-utils.test.d.ts.map +1 -0
- package/dist/utils/file-utils.test.js +201 -0
- package/dist/utils/logger.d.ts +39 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +110 -0
- package/dist/utils/logger.test.d.ts +2 -0
- package/dist/utils/logger.test.d.ts.map +1 -0
- package/dist/utils/logger.test.js +93 -0
- package/dist/utils/mcp-utils.d.ts +73 -0
- package/dist/utils/mcp-utils.d.ts.map +1 -0
- package/dist/utils/mcp-utils.js +165 -0
- package/dist/utils/path-utils.d.ts +24 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +44 -0
- package/dist/utils/validation.d.ts +23 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +53 -0
- package/dist/utils/validation.test.d.ts +2 -0
- package/dist/utils/validation.test.d.ts.map +1 -0
- package/dist/utils/validation.test.js +88 -0
- package/dist/utils/yaml-utils.d.ts +73 -0
- package/dist/utils/yaml-utils.d.ts.map +1 -0
- package/dist/utils/yaml-utils.js +309 -0
- package/dist/utils/yaml-utils.test.d.ts +2 -0
- package/dist/utils/yaml-utils.test.d.ts.map +1 -0
- package/dist/utils/yaml-utils.test.js +363 -0
- package/package/aws-client-agent-mcp/README.md +288 -0
- package/package/aws-client-agent-mcp/dist/activity-reporter.d.ts +150 -0
- package/package/aws-client-agent-mcp/dist/activity-reporter.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/activity-reporter.js +353 -0
- package/package/aws-client-agent-mcp/dist/activity-reporter.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/activity-reporter.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/activity-reporter.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/activity-reporter.test.js +75 -0
- package/package/aws-client-agent-mcp/dist/activity-reporter.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/activity-types.d.ts +96 -0
- package/package/aws-client-agent-mcp/dist/activity-types.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/activity-types.js +141 -0
- package/package/aws-client-agent-mcp/dist/activity-types.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts +165 -0
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/agent-client.js +588 -0
- package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.js +534 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/config.d.ts +21 -0
- package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/config.js +67 -0
- package/package/aws-client-agent-mcp/dist/config.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/config.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/config.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/config.test.js +139 -0
- package/package/aws-client-agent-mcp/dist/config.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/constants.d.ts +15 -0
- package/package/aws-client-agent-mcp/dist/constants.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/constants.js +19 -0
- package/package/aws-client-agent-mcp/dist/constants.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/http-client.d.ts +27 -0
- package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/http-client.js +65 -0
- package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/http-client.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/http-client.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/http-client.test.js +228 -0
- package/package/aws-client-agent-mcp/dist/http-client.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/index.d.ts +14 -0
- package/package/aws-client-agent-mcp/dist/index.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/index.js +30 -0
- package/package/aws-client-agent-mcp/dist/index.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/logger.d.ts +7 -0
- package/package/aws-client-agent-mcp/dist/logger.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/logger.js +19 -0
- package/package/aws-client-agent-mcp/dist/logger.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +77 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.js +427 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js +624 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +78 -0
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-tools.js +420 -0
- package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts +61 -0
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/memory-store.js +268 -0
- package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/memory-store.test.js +164 -0
- package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +74 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.js +159 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.test.js +44 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/messageContent.d.ts +53 -0
- package/package/aws-client-agent-mcp/dist/messageContent.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/messageContent.js +125 -0
- package/package/aws-client-agent-mcp/dist/messageContent.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/orchestration-tools.d.ts +19 -0
- package/package/aws-client-agent-mcp/dist/orchestration-tools.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/orchestration-tools.js +317 -0
- package/package/aws-client-agent-mcp/dist/orchestration-tools.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +66 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.js +220 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js +45 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/types.d.ts +286 -0
- package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/types.js +9 -0
- package/package/aws-client-agent-mcp/dist/types.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/user-config-reader.d.ts +63 -0
- package/package/aws-client-agent-mcp/dist/user-config-reader.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/user-config-reader.js +161 -0
- package/package/aws-client-agent-mcp/dist/user-config-reader.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +94 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.js +316 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js +191 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js.map +1 -0
- package/package/aws-client-agent-mcp/package.json +51 -0
- package/package/cc-switch-sdk/README.md +541 -0
- package/package/cc-switch-sdk/dist/adapters/common.d.ts +38 -0
- package/package/cc-switch-sdk/dist/adapters/common.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/common.js +47 -0
- package/package/cc-switch-sdk/dist/adapters/index.d.ts +5 -0
- package/package/cc-switch-sdk/dist/adapters/index.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/index.js +28 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-claude.d.ts +10 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-claude.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-claude.js +39 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-claudecode.d.ts +10 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-claudecode.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-claudecode.js +40 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-opencode.d.ts +18 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-opencode.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-opencode.js +63 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-opencode.test.d.ts +2 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-opencode.test.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-opencode.test.js +86 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-placeholder.d.ts +9 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-placeholder.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/mcp-placeholder.js +14 -0
- package/package/cc-switch-sdk/dist/adapters/skill-claude.d.ts +10 -0
- package/package/cc-switch-sdk/dist/adapters/skill-claude.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/skill-claude.js +51 -0
- package/package/cc-switch-sdk/dist/adapters/skill-claudecode.d.ts +10 -0
- package/package/cc-switch-sdk/dist/adapters/skill-claudecode.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/skill-claudecode.js +51 -0
- package/package/cc-switch-sdk/dist/adapters/skill-opencode.d.ts +10 -0
- package/package/cc-switch-sdk/dist/adapters/skill-opencode.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/skill-opencode.js +51 -0
- package/package/cc-switch-sdk/dist/adapters/skill-placeholder.d.ts +9 -0
- package/package/cc-switch-sdk/dist/adapters/skill-placeholder.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/adapters/skill-placeholder.js +14 -0
- package/package/cc-switch-sdk/dist/constants.d.ts +9 -0
- package/package/cc-switch-sdk/dist/constants.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/constants.js +54 -0
- package/package/cc-switch-sdk/dist/errors.d.ts +6 -0
- package/package/cc-switch-sdk/dist/errors.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/errors.js +8 -0
- package/package/cc-switch-sdk/dist/index.d.ts +11 -0
- package/package/cc-switch-sdk/dist/index.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/index.js +9 -0
- package/package/cc-switch-sdk/dist/schemas.d.ts +8 -0
- package/package/cc-switch-sdk/dist/schemas.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/schemas.js +37 -0
- package/package/cc-switch-sdk/dist/sdk.d.ts +91 -0
- package/package/cc-switch-sdk/dist/sdk.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/sdk.js +427 -0
- package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts +75 -0
- package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/services/ai-config-service.js +280 -0
- package/package/cc-switch-sdk/dist/services/instance-service.d.ts +78 -0
- package/package/cc-switch-sdk/dist/services/instance-service.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/services/instance-service.js +180 -0
- package/package/cc-switch-sdk/dist/services/mcp-model.d.ts +17 -0
- package/package/cc-switch-sdk/dist/services/mcp-model.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/services/mcp-model.js +34 -0
- package/package/cc-switch-sdk/dist/services/mcp-service.d.ts +18 -0
- package/package/cc-switch-sdk/dist/services/mcp-service.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/services/mcp-service.js +9 -0
- package/package/cc-switch-sdk/dist/services/skill-model.d.ts +17 -0
- package/package/cc-switch-sdk/dist/services/skill-model.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/services/skill-model.js +38 -0
- package/package/cc-switch-sdk/dist/services/skill-service.d.ts +17 -0
- package/package/cc-switch-sdk/dist/services/skill-service.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/services/skill-service.js +9 -0
- package/package/cc-switch-sdk/dist/state.d.ts +4 -0
- package/package/cc-switch-sdk/dist/state.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/state.js +19 -0
- package/package/cc-switch-sdk/dist/types.d.ts +75 -0
- package/package/cc-switch-sdk/dist/types.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/types.js +1 -0
- package/package/cc-switch-sdk/dist/utils/fs.d.ts +10 -0
- package/package/cc-switch-sdk/dist/utils/fs.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/utils/fs.js +91 -0
- package/package/cc-switch-sdk/dist/utils/id.d.ts +4 -0
- package/package/cc-switch-sdk/dist/utils/id.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/utils/id.js +12 -0
- package/package/cc-switch-sdk/package.json +31 -0
- package/package.json +73 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP 工具函数
|
|
3
|
+
*
|
|
4
|
+
* 提供 MCP 服务器配置的构建、转换和规范化功能
|
|
5
|
+
*/
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { randomUUID } from 'node:crypto';
|
|
8
|
+
import { parseBoolean } from './validation.js';
|
|
9
|
+
/**
|
|
10
|
+
* 构建 MCP 配置内容
|
|
11
|
+
*
|
|
12
|
+
* @param mcpServers - MCP 服务器列表
|
|
13
|
+
* @returns JSON 格式的配置内容
|
|
14
|
+
*/
|
|
15
|
+
export function buildMcpConfigContent(mcpServers) {
|
|
16
|
+
const servers = Array.isArray(mcpServers) ? mcpServers : [];
|
|
17
|
+
const serverMap = {};
|
|
18
|
+
for (const item of servers) {
|
|
19
|
+
if (!item) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (!parseBoolean(item.enabled, true)) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const name = String(item.name || '').trim();
|
|
26
|
+
if (!name) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const transport = String(item.transport || 'stdio').trim().toLowerCase();
|
|
30
|
+
const serverCfg = { transport };
|
|
31
|
+
if (item.command != null && String(item.command).trim()) {
|
|
32
|
+
serverCfg.command = String(item.command).trim();
|
|
33
|
+
}
|
|
34
|
+
if (item.url != null && String(item.url).trim()) {
|
|
35
|
+
serverCfg.url = String(item.url).trim();
|
|
36
|
+
}
|
|
37
|
+
if (item.args != null) {
|
|
38
|
+
serverCfg.args = Array.isArray(item.args) ? item.args : [];
|
|
39
|
+
}
|
|
40
|
+
if (item.env != null && typeof item.env === 'object') {
|
|
41
|
+
serverCfg.env = item.env;
|
|
42
|
+
}
|
|
43
|
+
serverMap[name] = serverCfg;
|
|
44
|
+
}
|
|
45
|
+
return JSON.stringify({
|
|
46
|
+
mcpServers: serverMap,
|
|
47
|
+
}, null, 2);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 规范化 MCP Payload
|
|
51
|
+
*
|
|
52
|
+
* @param payload - 原始 payload
|
|
53
|
+
* @returns 规范化后的 MCP Payload,无效返回 null
|
|
54
|
+
*/
|
|
55
|
+
export function normalizeMcpPayload(payload) {
|
|
56
|
+
if (!payload || typeof payload !== 'object') {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
const p = payload;
|
|
60
|
+
const name = String(p.name || '').trim();
|
|
61
|
+
if (!name) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
id: String(p.id || randomUUID()),
|
|
66
|
+
name,
|
|
67
|
+
transport: String(p.transport || 'stdio').trim().toLowerCase(),
|
|
68
|
+
command: p.command == null ? '' : String(p.command),
|
|
69
|
+
url: p.url == null ? '' : String(p.url),
|
|
70
|
+
args: Array.isArray(p.args) ? p.args.map((item) => String(item)) : [],
|
|
71
|
+
env: p.env && typeof p.env === 'object' ? p.env : {},
|
|
72
|
+
enabled: parseBoolean(p.enabled, true),
|
|
73
|
+
installedAt: p.installedAt || new Date().toISOString(),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 规范化 SDK App 标志
|
|
78
|
+
*
|
|
79
|
+
* @param rawApps - 原始 apps 配置
|
|
80
|
+
* @returns 规范化后的 SdkApps
|
|
81
|
+
*/
|
|
82
|
+
export function normalizeSdkAppFlags(rawApps) {
|
|
83
|
+
if (!rawApps || typeof rawApps !== 'object') {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
const apps = rawApps;
|
|
87
|
+
return {
|
|
88
|
+
claude: parseBoolean(apps.claude, false),
|
|
89
|
+
codex: parseBoolean(apps.codex, false),
|
|
90
|
+
gemini: parseBoolean(apps.gemini, false),
|
|
91
|
+
opencode: parseBoolean(apps.opencode, false),
|
|
92
|
+
openclaw: parseBoolean(apps.openclaw, false),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 规范化 SDK MCP 服务器规格
|
|
97
|
+
*
|
|
98
|
+
* @param rawMcp - 原始 MCP 配置
|
|
99
|
+
* @returns 规范化后的服务器配置
|
|
100
|
+
*/
|
|
101
|
+
export function normalizeSdkMcpServerSpec(rawMcp) {
|
|
102
|
+
const mcp = rawMcp && typeof rawMcp === 'object' ? rawMcp : {};
|
|
103
|
+
const baseServer = mcp.server && typeof mcp.server === 'object'
|
|
104
|
+
? mcp.server
|
|
105
|
+
: {};
|
|
106
|
+
const type = String(baseServer.type || mcp.transport || 'stdio').trim().toLowerCase();
|
|
107
|
+
const server = {
|
|
108
|
+
...baseServer,
|
|
109
|
+
type,
|
|
110
|
+
};
|
|
111
|
+
if (mcp.command != null && String(mcp.command).trim()) {
|
|
112
|
+
server.command = String(mcp.command).trim();
|
|
113
|
+
}
|
|
114
|
+
if (mcp.url != null && String(mcp.url).trim()) {
|
|
115
|
+
server.url = String(mcp.url).trim();
|
|
116
|
+
}
|
|
117
|
+
if (mcp.args != null) {
|
|
118
|
+
server.args = Array.isArray(mcp.args) ? mcp.args.map((item) => String(item)) : [];
|
|
119
|
+
}
|
|
120
|
+
if (mcp.env != null && typeof mcp.env === 'object') {
|
|
121
|
+
server.env = mcp.env;
|
|
122
|
+
}
|
|
123
|
+
if (mcp.headers != null && typeof mcp.headers === 'object') {
|
|
124
|
+
server.headers = mcp.headers;
|
|
125
|
+
}
|
|
126
|
+
return server;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* 转换为 Legacy MCP State Item
|
|
130
|
+
*
|
|
131
|
+
* @param mcpServer - SDK MCP 服务器对象
|
|
132
|
+
* @returns Legacy MCP State Item
|
|
133
|
+
*/
|
|
134
|
+
export function toLegacyMcpStateItem(mcpServer) {
|
|
135
|
+
const server = mcpServer?.server && typeof mcpServer.server === 'object' ? mcpServer.server : {};
|
|
136
|
+
const apps = mcpServer?.apps && typeof mcpServer.apps === 'object' ? mcpServer.apps : {};
|
|
137
|
+
return {
|
|
138
|
+
id: String(mcpServer?.id || randomUUID()),
|
|
139
|
+
name: String(mcpServer?.name || '').trim(),
|
|
140
|
+
transport: String(server.type || 'stdio').trim().toLowerCase(),
|
|
141
|
+
command: server.command == null ? '' : String(server.command),
|
|
142
|
+
url: server.url == null ? '' : String(server.url),
|
|
143
|
+
args: Array.isArray(server.args) ? server.args.map((item) => String(item)) : [],
|
|
144
|
+
env: server.env && typeof server.env === 'object' ? server.env : {},
|
|
145
|
+
enabled: Boolean(apps.claude || apps.codex || apps.gemini || apps.opencode || apps.openclaw),
|
|
146
|
+
installedAt: new Date().toISOString(),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* 转换为 Legacy Skill State Item
|
|
151
|
+
*
|
|
152
|
+
* @param skill - Skill 对象
|
|
153
|
+
* @returns Legacy Skill State Item
|
|
154
|
+
*/
|
|
155
|
+
export function toLegacySkillStateItem(skill) {
|
|
156
|
+
const directory = String(skill?.directory || skill?.sourceDir || skill?.filePath || '').trim();
|
|
157
|
+
return {
|
|
158
|
+
id: String(skill?.id || randomUUID()),
|
|
159
|
+
name: String(skill?.name || path.basename(directory || 'skill')).trim(),
|
|
160
|
+
fileName: directory ? path.basename(directory) : '',
|
|
161
|
+
filePath: directory,
|
|
162
|
+
bytes: 0,
|
|
163
|
+
installedAt: skill?.installedAt ? new Date(skill.installedAt).toISOString() : new Date().toISOString(),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 路径解析工具函数
|
|
3
|
+
*
|
|
4
|
+
* 提供路径解析和标准化的工具函数
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 解析结果接口
|
|
8
|
+
*/
|
|
9
|
+
export interface PropertiesPathResult {
|
|
10
|
+
normalizedWorkspace: string;
|
|
11
|
+
resolvedTarget: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function resolveWorkspaceRoot(workspacePath: string | unknown): string;
|
|
14
|
+
export declare function ensureInsideWorkspace(workspaceRoot: string, targetPath: string): string;
|
|
15
|
+
export declare function resolveWorkspaceFilePath(workspacePath: string | unknown, relativeOrAbsolutePath: string | unknown, defaultRelativePath: string): PropertiesPathResult;
|
|
16
|
+
/**
|
|
17
|
+
* 解析属性文件的目标路径
|
|
18
|
+
*
|
|
19
|
+
* @param workspacePath - 工作区路径
|
|
20
|
+
* @param relativeOrAbsolutePath - 相对或绝对路径
|
|
21
|
+
* @returns 解析后的路径结果
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolvePropertiesTargetPath(workspacePath: string | unknown, relativeOrAbsolutePath: string | unknown): PropertiesPathResult;
|
|
24
|
+
//# sourceMappingURL=path-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../src/utils/path-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAM5E;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAUvF;AAED,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,GAAG,OAAO,EAC/B,sBAAsB,EAAE,MAAM,GAAG,OAAO,EACxC,mBAAmB,EAAE,MAAM,GAC1B,oBAAoB,CAatB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,GAAG,OAAO,EAC/B,sBAAsB,EAAE,MAAM,GAAG,OAAO,GACvC,oBAAoB,CAEtB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 路径解析工具函数
|
|
3
|
+
*
|
|
4
|
+
* 提供路径解析和标准化的工具函数
|
|
5
|
+
*/
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
export function resolveWorkspaceRoot(workspacePath) {
|
|
8
|
+
if (!workspacePath || !String(workspacePath).trim()) {
|
|
9
|
+
throw new Error('workspacePath is required');
|
|
10
|
+
}
|
|
11
|
+
return path.resolve(String(workspacePath).trim());
|
|
12
|
+
}
|
|
13
|
+
export function ensureInsideWorkspace(workspaceRoot, targetPath) {
|
|
14
|
+
const resolvedTarget = path.resolve(targetPath);
|
|
15
|
+
const relativePath = path.relative(workspaceRoot, resolvedTarget);
|
|
16
|
+
const isOutside = relativePath.startsWith('..') || path.isAbsolute(relativePath);
|
|
17
|
+
if (isOutside) {
|
|
18
|
+
throw new Error(`Target path is outside workspace: ${resolvedTarget}`);
|
|
19
|
+
}
|
|
20
|
+
return resolvedTarget;
|
|
21
|
+
}
|
|
22
|
+
export function resolveWorkspaceFilePath(workspacePath, relativeOrAbsolutePath, defaultRelativePath) {
|
|
23
|
+
const normalizedWorkspace = resolveWorkspaceRoot(workspacePath);
|
|
24
|
+
const providedPathStr = relativeOrAbsolutePath
|
|
25
|
+
? String(relativeOrAbsolutePath).trim() || defaultRelativePath
|
|
26
|
+
: defaultRelativePath;
|
|
27
|
+
const candidatePath = path.isAbsolute(providedPathStr)
|
|
28
|
+
? providedPathStr
|
|
29
|
+
: path.resolve(normalizedWorkspace, providedPathStr);
|
|
30
|
+
return {
|
|
31
|
+
normalizedWorkspace,
|
|
32
|
+
resolvedTarget: ensureInsideWorkspace(normalizedWorkspace, candidatePath),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 解析属性文件的目标路径
|
|
37
|
+
*
|
|
38
|
+
* @param workspacePath - 工作区路径
|
|
39
|
+
* @param relativeOrAbsolutePath - 相对或绝对路径
|
|
40
|
+
* @returns 解析后的路径结果
|
|
41
|
+
*/
|
|
42
|
+
export function resolvePropertiesTargetPath(workspacePath, relativeOrAbsolutePath) {
|
|
43
|
+
return resolveWorkspaceFilePath(workspacePath, relativeOrAbsolutePath, 'vibe-coding/my.properties');
|
|
44
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 验证工具函数
|
|
3
|
+
*
|
|
4
|
+
* 提供通用的验证和转换函数
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 解析布尔值
|
|
8
|
+
* 支持多种格式的布尔值转换
|
|
9
|
+
*
|
|
10
|
+
* @param value - 待解析的值
|
|
11
|
+
* @param defaultValue - 默认值
|
|
12
|
+
* @returns 解析后的布尔值
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseBoolean(value: unknown, defaultValue?: boolean): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* 确保启用的工具列表有效
|
|
17
|
+
* 如果传入的数组无效或为空,返回默认工具列表
|
|
18
|
+
*
|
|
19
|
+
* @param rawTools - 原始工具列表
|
|
20
|
+
* @returns 有效的工具列表
|
|
21
|
+
*/
|
|
22
|
+
export declare function ensureEnabledTools(rawTools: unknown): string[];
|
|
23
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,UAAO,GAAG,OAAO,CAezE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAgB9D"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 验证工具函数
|
|
3
|
+
*
|
|
4
|
+
* 提供通用的验证和转换函数
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 解析布尔值
|
|
8
|
+
* 支持多种格式的布尔值转换
|
|
9
|
+
*
|
|
10
|
+
* @param value - 待解析的值
|
|
11
|
+
* @param defaultValue - 默认值
|
|
12
|
+
* @returns 解析后的布尔值
|
|
13
|
+
*/
|
|
14
|
+
export function parseBoolean(value, defaultValue = true) {
|
|
15
|
+
if (value == null) {
|
|
16
|
+
return defaultValue;
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === 'boolean') {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
const normalized = String(value).trim().toLowerCase();
|
|
22
|
+
if (['true', '1', 'yes', 'y', 'on'].includes(normalized)) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
if (['false', '0', 'no', 'n', 'off'].includes(normalized)) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return defaultValue;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 确保启用的工具列表有效
|
|
32
|
+
* 如果传入的数组无效或为空,返回默认工具列表
|
|
33
|
+
*
|
|
34
|
+
* @param rawTools - 原始工具列表
|
|
35
|
+
* @returns 有效的工具列表
|
|
36
|
+
*/
|
|
37
|
+
export function ensureEnabledTools(rawTools) {
|
|
38
|
+
const defaults = ['claude', 'opencode', 'codex'];
|
|
39
|
+
if (!Array.isArray(rawTools) || rawTools.length === 0) {
|
|
40
|
+
return defaults;
|
|
41
|
+
}
|
|
42
|
+
const result = [];
|
|
43
|
+
for (const item of rawTools) {
|
|
44
|
+
const normalized = String(item || '').trim().toLowerCase();
|
|
45
|
+
if (!normalized) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (!result.includes(normalized)) {
|
|
49
|
+
result.push(normalized);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return result.length > 0 ? result : defaults;
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../../src/utils/validation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { parseBoolean, ensureEnabledTools } from './validation';
|
|
3
|
+
describe('parseBoolean', () => {
|
|
4
|
+
describe('true values', () => {
|
|
5
|
+
it('should return true for "true"', () => {
|
|
6
|
+
expect(parseBoolean('true')).toBe(true);
|
|
7
|
+
});
|
|
8
|
+
it('should return true for "TRUE"', () => {
|
|
9
|
+
expect(parseBoolean('TRUE')).toBe(true);
|
|
10
|
+
});
|
|
11
|
+
it('should return true for "1"', () => {
|
|
12
|
+
expect(parseBoolean('1')).toBe(true);
|
|
13
|
+
});
|
|
14
|
+
it('should return true for "yes"', () => {
|
|
15
|
+
expect(parseBoolean('yes')).toBe(true);
|
|
16
|
+
});
|
|
17
|
+
it('should return true for boolean true', () => {
|
|
18
|
+
expect(parseBoolean(true)).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe('empty/null/undefined values', () => {
|
|
22
|
+
it('should return default value (true) for empty string', () => {
|
|
23
|
+
expect(parseBoolean('')).toBe(true); // 默认值是 true
|
|
24
|
+
});
|
|
25
|
+
it('should return default value (true) for null', () => {
|
|
26
|
+
expect(parseBoolean(null)).toBe(true); // 默认值是 true
|
|
27
|
+
});
|
|
28
|
+
it('should return default value (true) for undefined', () => {
|
|
29
|
+
expect(parseBoolean(undefined)).toBe(true); // 默认值是 true
|
|
30
|
+
});
|
|
31
|
+
it('should return false when defaultValue is false for empty string', () => {
|
|
32
|
+
expect(parseBoolean('', false)).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
it('should return false when defaultValue is false for null', () => {
|
|
35
|
+
expect(parseBoolean(null, false)).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
it('should return false when defaultValue is false for undefined', () => {
|
|
38
|
+
expect(parseBoolean(undefined, false)).toBe(false);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('default value', () => {
|
|
42
|
+
it('should return default when value is null', () => {
|
|
43
|
+
expect(parseBoolean(null, true)).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
it('should return default when value is undefined', () => {
|
|
46
|
+
expect(parseBoolean(undefined, true)).toBe(true);
|
|
47
|
+
});
|
|
48
|
+
it('should ignore default for valid values', () => {
|
|
49
|
+
expect(parseBoolean('false', true)).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe('ensureEnabledTools', () => {
|
|
54
|
+
it('should return default tools for empty array', () => {
|
|
55
|
+
const result = ensureEnabledTools([]);
|
|
56
|
+
expect(result).toContain('claude');
|
|
57
|
+
expect(result).toContain('opencode');
|
|
58
|
+
expect(result).toContain('codex');
|
|
59
|
+
});
|
|
60
|
+
it('should return default tools for null', () => {
|
|
61
|
+
const result = ensureEnabledTools(null);
|
|
62
|
+
expect(result).toContain('claude');
|
|
63
|
+
expect(result).toContain('opencode');
|
|
64
|
+
expect(result).toContain('codex');
|
|
65
|
+
});
|
|
66
|
+
it('should return default tools for undefined', () => {
|
|
67
|
+
const result = ensureEnabledTools(undefined);
|
|
68
|
+
expect(result).toContain('claude');
|
|
69
|
+
expect(result).toContain('opencode');
|
|
70
|
+
expect(result).toContain('codex');
|
|
71
|
+
});
|
|
72
|
+
it('should return input array when not empty', () => {
|
|
73
|
+
const result = ensureEnabledTools(['claude', 'gemini']);
|
|
74
|
+
expect(result).toEqual(['claude', 'gemini']);
|
|
75
|
+
});
|
|
76
|
+
it('should handle single tool', () => {
|
|
77
|
+
const result = ensureEnabledTools(['opencode']);
|
|
78
|
+
expect(result).toEqual(['opencode']);
|
|
79
|
+
});
|
|
80
|
+
it('should deduplicate tools', () => {
|
|
81
|
+
const result = ensureEnabledTools(['claude', 'claude', 'opencode']);
|
|
82
|
+
expect(result).toEqual(['claude', 'opencode']);
|
|
83
|
+
});
|
|
84
|
+
it('should normalize tools to lowercase', () => {
|
|
85
|
+
const result = ensureEnabledTools(['CLAUDE', 'OpenCode']);
|
|
86
|
+
expect(result).toEqual(['claude', 'opencode']);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML 处理工具函数
|
|
3
|
+
*
|
|
4
|
+
* 提供 YAML 配置文件的读取、解析、生成和路径匹配功能
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* YAML 加载结果
|
|
8
|
+
*/
|
|
9
|
+
export interface YmlLoadResult {
|
|
10
|
+
content: string | null;
|
|
11
|
+
resolvedPath: string;
|
|
12
|
+
foundInParent: boolean;
|
|
13
|
+
matchedAgentPath: string | null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Agent 配置提取结果
|
|
17
|
+
*/
|
|
18
|
+
export interface AgentConfigResult {
|
|
19
|
+
content: string;
|
|
20
|
+
isTemplate: boolean;
|
|
21
|
+
projectFromSibling: string | null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 检查 YAML 配置中是否有 agent 的 path 匹配目标路径
|
|
25
|
+
* path 字段格式支持:modules\x 或 modules/x
|
|
26
|
+
*
|
|
27
|
+
* @param yamlContent - YAML 内容
|
|
28
|
+
* @param targetRelativePath - 目标相对路径
|
|
29
|
+
* @returns 匹配的 agent path,无匹配则返回 null
|
|
30
|
+
*/
|
|
31
|
+
export declare function hasMatchingAgentPath(yamlContent: string, targetRelativePath: string): string | null;
|
|
32
|
+
/**
|
|
33
|
+
* 从 YAML 配置中提取匹配的 agent 配置,或生成模板
|
|
34
|
+
*
|
|
35
|
+
* @param yamlContent - YAML 内容
|
|
36
|
+
* @param targetRelativePath - 目标相对路径
|
|
37
|
+
* @returns 提取结果
|
|
38
|
+
*/
|
|
39
|
+
export declare function extractAgentConfigOrTemplate(yamlContent: string, targetRelativePath: string): AgentConfigResult;
|
|
40
|
+
/**
|
|
41
|
+
* 生成空模板
|
|
42
|
+
* 注意:path 字段留空,在写入时根据工作目录自动计算
|
|
43
|
+
*
|
|
44
|
+
* @param _targetRelativePath - 目标相对路径(未使用)
|
|
45
|
+
* @returns 空模板 YAML 内容
|
|
46
|
+
*/
|
|
47
|
+
export declare function generateEmptyTemplate(_targetRelativePath: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* 自动填充 YAML 配置中的 path 字段
|
|
50
|
+
* 如果 path 为空、未填写或只有空白字符,则使用工作目录相对于项目根目录的路径
|
|
51
|
+
*
|
|
52
|
+
* @param ymlContent - YAML 配置内容
|
|
53
|
+
* @param workspaceRelativePath - 工作目录相对于项目根目录的路径
|
|
54
|
+
* @returns 处理后的 YAML 内容
|
|
55
|
+
*/
|
|
56
|
+
export declare function autoFillPathInYml(ymlContent: string, workspaceRelativePath: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* 向上查找并加载 YAML 配置文件
|
|
59
|
+
*
|
|
60
|
+
* 查找逻辑:
|
|
61
|
+
* 1. 先检查工作目录下是否有配置文件,检查 path 是否匹配
|
|
62
|
+
* 2. 如果不匹配,向上查找父目录的配置文件,检查 path 是否匹配
|
|
63
|
+
* 3. 找到匹配的配置 → 使用该配置
|
|
64
|
+
* 4. 所有层级都没有匹配的配置 → 使用最后一个找到的配置(或在工作目录创建)
|
|
65
|
+
*
|
|
66
|
+
* 例如:工作目录 D:\a\b\c\d,相对路径 vibe-coding/my.yml
|
|
67
|
+
* 第1次查找:D:\a\b\c\d\vibe-coding\my.yml,匹配 path="."
|
|
68
|
+
* 第2次查找:D:\a\b\c\vibe-coding\my.yml,匹配 path="d"
|
|
69
|
+
* 第3次查找:D:\a\b\vibe-coding\my.yml,匹配 path="c/d"
|
|
70
|
+
* ...
|
|
71
|
+
*/
|
|
72
|
+
export declare function loadYmlWithUpwardSearch(workspacePath: string, relativePath: string): Promise<YmlLoadResult>;
|
|
73
|
+
//# sourceMappingURL=yaml-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-utils.d.ts","sourceRoot":"","sources":["../../src/utils/yaml-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0CnG;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,GACzB,iBAAiB,CAkFnB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAkBzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,MAAM,CAyC3F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CA8FxB"}
|