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
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# aws-runtime-bridge
|
|
2
|
+
|
|
3
|
+
AgentsWorkStudio 机器实例运行时桥接服务,用于在实例上管理 Agent 运行时、终端、配置与回调通信。
|
|
4
|
+
|
|
5
|
+
## 全局安装
|
|
6
|
+
|
|
7
|
+
从 npm 包安装时:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g aws-runtime-bridge
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
从当前仓库安装时:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
cd aws-runtime-bridge
|
|
17
|
+
npm install
|
|
18
|
+
npm run build
|
|
19
|
+
npm install -g .
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 启动
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
AWS_RUNTIME_BRIDGE_PORT=18081 \
|
|
26
|
+
AWS_RUNTIME_SCHEDULER_BASE_URL=http://your-server-host:7380 \
|
|
27
|
+
AWS_RUNTIME_CALLBACK_TOKEN=replace-with-a-long-random-runtime-callback-token \
|
|
28
|
+
AWS_RUNTIME_HOME_DIR=/opt/agentswork/runtime-home \
|
|
29
|
+
aws-bridge
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`aws-runtime-bridge` 命令仍作为兼容别名保留。安装 `aws-runtime-bridge` 后,包内会随附
|
|
33
|
+
`aws-client-agent-mcp` 的编译产物;bridge 启动时会自动准备该 MCP,并在 **Claude Code SDK 模式**
|
|
34
|
+
启动 Agent 时默认注入名为 `aws-mcp` 的 MCP Server。
|
|
35
|
+
|
|
36
|
+
> 当前 `Codex` SDK 不支持和 Claude Code 相同的动态 `extraMcpServers` 注入;如果使用 Codex,需走其原生 MCP 配置持久化链路。
|
|
37
|
+
|
|
38
|
+
如需使用自定义 MCP 可执行文件,可设置:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
AWS_CLIENT_AGENT_MCP_COMMAND=/absolute/path/to/aws-client-agent-mcp \
|
|
42
|
+
AWS_CLIENT_AGENT_MCP_ARGS='[]' \
|
|
43
|
+
aws-bridge
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 关键环境变量
|
|
47
|
+
|
|
48
|
+
| 变量名 | 说明 | 默认值 |
|
|
49
|
+
| --- | --- | --- |
|
|
50
|
+
| `AWS_RUNTIME_BRIDGE_PORT` | Bridge HTTP 端口 | `18081` |
|
|
51
|
+
| `AWS_RUNTIME_SCHEDULER_BASE_URL` | aws-mcp-server 地址 | `http://localhost:8080` |
|
|
52
|
+
| `AWS_RUNTIME_CALLBACK_TOKEN` | 后端调用 bridge 的回调 Token | 无,生产必须显式设置 |
|
|
53
|
+
| `AWS_RUNTIME_HOME_DIR` | Bridge 管理配置与状态的主目录 | 当前用户 Home |
|
|
54
|
+
| `AWS_RUNTIME_CORS_ORIGINS` | 允许访问 bridge 的来源,逗号分隔 | 本地开发地址 |
|
|
55
|
+
|
|
56
|
+
生产环境中,`AWS_RUNTIME_SCHEDULER_BASE_URL` 必须填写机器实例可访问的 `aws-mcp-server` 地址,不能使用容器内的 `localhost`。
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter 注册表 —— 管理 Provider ID → Adapter 实例的映射
|
|
3
|
+
*/
|
|
4
|
+
import type { BaseProviderAdapter } from './types.js';
|
|
5
|
+
export type AdapterType = 'claude-sdk' | 'codex-sdk' | 'opencode-sdk' | 'pty';
|
|
6
|
+
/**
|
|
7
|
+
* Adapter 注册表
|
|
8
|
+
* 管理所有 Provider Adapter 实例的生命周期
|
|
9
|
+
*/
|
|
10
|
+
export declare class AdapterRegistry {
|
|
11
|
+
private adapters;
|
|
12
|
+
/**
|
|
13
|
+
* 注册 Adapter 实例
|
|
14
|
+
* @param adapter Adapter 实例(providerId 作为 key)
|
|
15
|
+
* @throws 如果该 providerId 已注册
|
|
16
|
+
*/
|
|
17
|
+
register(adapter: BaseProviderAdapter): void;
|
|
18
|
+
/**
|
|
19
|
+
* 按 Provider ID 获取 Adapter
|
|
20
|
+
* @param providerId Provider 标识(如 'claude-code', 'opencode')
|
|
21
|
+
* @throws 如果该 providerId 未注册
|
|
22
|
+
*/
|
|
23
|
+
get(providerId: string): BaseProviderAdapter;
|
|
24
|
+
/**
|
|
25
|
+
* 按 AdapterType 获取 Adapter
|
|
26
|
+
* @param adapterType 适配器类型
|
|
27
|
+
* @throws 如果该类型未注册
|
|
28
|
+
*/
|
|
29
|
+
getByType(adapterType: AdapterType): BaseProviderAdapter;
|
|
30
|
+
/**
|
|
31
|
+
* 检查是否已注册
|
|
32
|
+
* @param providerId Provider 标识
|
|
33
|
+
*/
|
|
34
|
+
has(providerId: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* 获取所有已注册的 Provider ID
|
|
37
|
+
*/
|
|
38
|
+
getRegisteredIds(): string[];
|
|
39
|
+
/**
|
|
40
|
+
* 获取所有已注册 Adapter。
|
|
41
|
+
*/
|
|
42
|
+
getAll(): BaseProviderAdapter[];
|
|
43
|
+
/**
|
|
44
|
+
* 清理所有 Adapter 资源
|
|
45
|
+
*/
|
|
46
|
+
cleanup(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Provider ID → AdapterType 匹配
|
|
49
|
+
*/
|
|
50
|
+
private matchType;
|
|
51
|
+
}
|
|
52
|
+
export declare const adapterRegistry: AdapterRegistry;
|
|
53
|
+
//# sourceMappingURL=AdapterRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdapterRegistry.d.ts","sourceRoot":"","sources":["../../src/adapter/AdapterRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,KAAK,CAAC;AAE9E;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAA+C;IAE/D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAO5C;;;;OAIG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB;IAU5C;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;IASxD;;;OAGG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,MAAM,IAAI,mBAAmB,EAAE;IAI/B;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;IACH,OAAO,CAAC,SAAS;CAclB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter 注册表 —— 管理 Provider ID → Adapter 实例的映射
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Adapter 注册表
|
|
6
|
+
* 管理所有 Provider Adapter 实例的生命周期
|
|
7
|
+
*/
|
|
8
|
+
export class AdapterRegistry {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.adapters = new Map();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 注册 Adapter 实例
|
|
14
|
+
* @param adapter Adapter 实例(providerId 作为 key)
|
|
15
|
+
* @throws 如果该 providerId 已注册
|
|
16
|
+
*/
|
|
17
|
+
register(adapter) {
|
|
18
|
+
if (this.adapters.has(adapter.providerId)) {
|
|
19
|
+
throw new Error(`Adapter already registered for provider: ${adapter.providerId}`);
|
|
20
|
+
}
|
|
21
|
+
this.adapters.set(adapter.providerId, adapter);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 按 Provider ID 获取 Adapter
|
|
25
|
+
* @param providerId Provider 标识(如 'claude-code', 'opencode')
|
|
26
|
+
* @throws 如果该 providerId 未注册
|
|
27
|
+
*/
|
|
28
|
+
get(providerId) {
|
|
29
|
+
const adapter = this.adapters.get(providerId);
|
|
30
|
+
if (!adapter) {
|
|
31
|
+
throw new Error(`No adapter registered for provider: ${providerId}. Available: ${[...this.adapters.keys()].join(', ')}`);
|
|
32
|
+
}
|
|
33
|
+
return adapter;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 按 AdapterType 获取 Adapter
|
|
37
|
+
* @param adapterType 适配器类型
|
|
38
|
+
* @throws 如果该类型未注册
|
|
39
|
+
*/
|
|
40
|
+
getByType(adapterType) {
|
|
41
|
+
for (const adapter of this.adapters.values()) {
|
|
42
|
+
if (this.matchType(adapter.providerId, adapterType)) {
|
|
43
|
+
return adapter;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
throw new Error(`No adapter registered for type: ${adapterType}`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 检查是否已注册
|
|
50
|
+
* @param providerId Provider 标识
|
|
51
|
+
*/
|
|
52
|
+
has(providerId) {
|
|
53
|
+
return this.adapters.has(providerId);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 获取所有已注册的 Provider ID
|
|
57
|
+
*/
|
|
58
|
+
getRegisteredIds() {
|
|
59
|
+
return [...this.adapters.keys()];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 获取所有已注册 Adapter。
|
|
63
|
+
*/
|
|
64
|
+
getAll() {
|
|
65
|
+
return [...this.adapters.values()];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 清理所有 Adapter 资源
|
|
69
|
+
*/
|
|
70
|
+
cleanup() {
|
|
71
|
+
for (const adapter of this.adapters.values()) {
|
|
72
|
+
try {
|
|
73
|
+
adapter.cleanup();
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
console.error(`[AdapterRegistry] Error cleaning up ${adapter.providerId}:`, err);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
this.adapters.clear();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Provider ID → AdapterType 匹配
|
|
83
|
+
*/
|
|
84
|
+
matchType(providerId, adapterType) {
|
|
85
|
+
switch (adapterType) {
|
|
86
|
+
case 'claude-sdk':
|
|
87
|
+
return providerId === 'claude-code';
|
|
88
|
+
case 'codex-sdk':
|
|
89
|
+
return providerId === 'codex';
|
|
90
|
+
case 'opencode-sdk':
|
|
91
|
+
return providerId === 'opencode';
|
|
92
|
+
case 'pty':
|
|
93
|
+
return providerId === 'pty';
|
|
94
|
+
default:
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// 单例实例
|
|
100
|
+
export const adapterRegistry = new AdapterRegistry();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdapterRegistry.test.d.ts","sourceRoot":"","sources":["../../src/adapter/AdapterRegistry.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AdapterRegistry 测试
|
|
3
|
+
*/
|
|
4
|
+
import { EventEmitter } from 'node:events';
|
|
5
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
6
|
+
import { AdapterRegistry } from '../adapter/AdapterRegistry.js';
|
|
7
|
+
import { registerSdkProviders } from '../adapter/SdkProviderSpi.js';
|
|
8
|
+
import { CodexSdkAdapter } from './CodexSdkAdapter.js';
|
|
9
|
+
// 创建测试用的 Mock Adapter
|
|
10
|
+
class MockAdapter extends EventEmitter {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.providerId = 'mock-provider';
|
|
14
|
+
this.displayName = 'Mock Provider';
|
|
15
|
+
}
|
|
16
|
+
async startSession(sessionId, _config) {
|
|
17
|
+
this.emit('status-change', sessionId, 'running');
|
|
18
|
+
}
|
|
19
|
+
async sendMessage(_sessionId, _message) { }
|
|
20
|
+
async sendConfirmation(_sessionId, _accept) { }
|
|
21
|
+
async abortCurrentTurn(_sessionId) { }
|
|
22
|
+
async terminateSession(_sessionId) { }
|
|
23
|
+
async resumeSession(_sessionId, _providerSessionId, _config) { }
|
|
24
|
+
getConversation(_sessionId) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
hasSession(_sessionId) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
getProviderSessionId(_sessionId) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
getSessionStatus(_sessionId) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
cleanup() { }
|
|
37
|
+
}
|
|
38
|
+
describe('AdapterRegistry', () => {
|
|
39
|
+
let registry;
|
|
40
|
+
beforeEach(() => {
|
|
41
|
+
registry = new AdapterRegistry();
|
|
42
|
+
});
|
|
43
|
+
describe('register', () => {
|
|
44
|
+
it('should register an adapter', () => {
|
|
45
|
+
const adapter = new MockAdapter();
|
|
46
|
+
registry.register(adapter);
|
|
47
|
+
expect(registry.has('mock-provider')).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
it('should throw error when registering duplicate providerId', () => {
|
|
50
|
+
const adapter1 = new MockAdapter();
|
|
51
|
+
const adapter2 = new MockAdapter();
|
|
52
|
+
registry.register(adapter1);
|
|
53
|
+
expect(() => registry.register(adapter2)).toThrow('Adapter already registered');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('get', () => {
|
|
57
|
+
it('should return registered adapter', () => {
|
|
58
|
+
const adapter = new MockAdapter();
|
|
59
|
+
registry.register(adapter);
|
|
60
|
+
const result = registry.get('mock-provider');
|
|
61
|
+
expect(result).toBe(adapter);
|
|
62
|
+
});
|
|
63
|
+
it('should throw error when adapter not found', () => {
|
|
64
|
+
expect(() => registry.get('non-existent')).toThrow('No adapter registered');
|
|
65
|
+
});
|
|
66
|
+
it('should return registered codex adapter', () => {
|
|
67
|
+
const adapter = new CodexSdkAdapter();
|
|
68
|
+
registry.register(adapter);
|
|
69
|
+
const result = registry.get('codex');
|
|
70
|
+
expect(result).toBe(adapter);
|
|
71
|
+
expect(registry.has('codex')).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
describe('has', () => {
|
|
75
|
+
it('should return true for registered adapter', () => {
|
|
76
|
+
const adapter = new MockAdapter();
|
|
77
|
+
registry.register(adapter);
|
|
78
|
+
expect(registry.has('mock-provider')).toBe(true);
|
|
79
|
+
});
|
|
80
|
+
it('should return false for non-existent adapter', () => {
|
|
81
|
+
expect(registry.has('non-existent')).toBe(false);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
describe('getRegisteredIds', () => {
|
|
85
|
+
it('should return all registered provider IDs', () => {
|
|
86
|
+
const adapter = new MockAdapter();
|
|
87
|
+
registry.register(adapter);
|
|
88
|
+
expect(registry.getRegisteredIds()).toContain('mock-provider');
|
|
89
|
+
});
|
|
90
|
+
it('should return empty array when no adapters registered', () => {
|
|
91
|
+
expect(registry.getRegisteredIds()).toEqual([]);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
describe('SDK provider SPI', () => {
|
|
95
|
+
it('registers built-in SDK providers through one extension point', () => {
|
|
96
|
+
registerSdkProviders(registry, () => { });
|
|
97
|
+
expect(registry.getRegisteredIds().sort()).toEqual(['claude-code', 'codex', 'opencode']);
|
|
98
|
+
expect(registry.get('codex').providerId).toBe('codex');
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('cleanup', () => {
|
|
102
|
+
it('should clear all adapters', () => {
|
|
103
|
+
const adapter = new MockAdapter();
|
|
104
|
+
registry.register(adapter);
|
|
105
|
+
registry.cleanup();
|
|
106
|
+
expect(registry.getRegisteredIds()).toEqual([]);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
});
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code Agent SDK Adapter
|
|
3
|
+
*
|
|
4
|
+
* 通过 @anthropic-ai/claude-agent-sdk 的 query() API
|
|
5
|
+
* 实现与 Claude Code 的结构化交互。
|
|
6
|
+
*
|
|
7
|
+
* 核心特性:
|
|
8
|
+
* - 支持 autoAccept 模式自动确认所有权限
|
|
9
|
+
* - 支持 AskUserQuestion 拦截并转发到聊天面板
|
|
10
|
+
* - 支持 turn_complete 事件精确判断 AI 就绪状态
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from 'events';
|
|
13
|
+
import type { BaseProviderAdapter, AdapterSessionConfig, ConversationMessage, SessionStatus } from './types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Claude Code Agent SDK Adapter
|
|
16
|
+
*/
|
|
17
|
+
export declare class ClaudeSdkAdapter extends EventEmitter implements BaseProviderAdapter {
|
|
18
|
+
readonly providerId = "claude-code";
|
|
19
|
+
readonly displayName = "Claude Code";
|
|
20
|
+
private sessions;
|
|
21
|
+
private sdkQueries;
|
|
22
|
+
private inputStreams;
|
|
23
|
+
private abortControllers;
|
|
24
|
+
private sdkModule;
|
|
25
|
+
private pendingPermissions;
|
|
26
|
+
private pendingQuestions;
|
|
27
|
+
private activeToolUseIds;
|
|
28
|
+
private recentToolNames;
|
|
29
|
+
private toolInputBuffers;
|
|
30
|
+
startSession(sessionId: string, config: AdapterSessionConfig): Promise<void>;
|
|
31
|
+
sendMessage(sessionId: string, message: string): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* 解析消息内容,提取图片和文本
|
|
34
|
+
* 支持 [图片: url] 标记格式
|
|
35
|
+
*/
|
|
36
|
+
private parseMessageContent;
|
|
37
|
+
sendConfirmation(sessionId: string, accept: boolean): Promise<void>;
|
|
38
|
+
sendQuestionAnswer(sessionId: string, answers: Record<string, string>): Promise<void>;
|
|
39
|
+
abortCurrentTurn(sessionId: string): Promise<void>;
|
|
40
|
+
terminateSession(sessionId: string): Promise<void>;
|
|
41
|
+
getConversation(sessionId: string): ConversationMessage[];
|
|
42
|
+
hasSession(sessionId: string): boolean;
|
|
43
|
+
getProviderSessionId(sessionId: string): string | undefined;
|
|
44
|
+
getSessionStatus(sessionId: string): SessionStatus | undefined;
|
|
45
|
+
getSessionPid(sessionId: string): number | undefined;
|
|
46
|
+
cleanup(): void;
|
|
47
|
+
private idleCommands;
|
|
48
|
+
private idleTimers;
|
|
49
|
+
private lastActivityAt;
|
|
50
|
+
/**
|
|
51
|
+
* 设置空闲命令配置
|
|
52
|
+
*/
|
|
53
|
+
setIdleCommands(sessionId: string, commands: {
|
|
54
|
+
idleInputCommand: string;
|
|
55
|
+
nonInputCommand: string;
|
|
56
|
+
}): void;
|
|
57
|
+
/**
|
|
58
|
+
* 启动空闲检测定时器
|
|
59
|
+
*/
|
|
60
|
+
private startIdleDetection;
|
|
61
|
+
/**
|
|
62
|
+
* 停止空闲检测定时器
|
|
63
|
+
*/
|
|
64
|
+
private stopIdleDetection;
|
|
65
|
+
/**
|
|
66
|
+
* 检测空闲状态并执行命令
|
|
67
|
+
*/
|
|
68
|
+
private checkIdleState;
|
|
69
|
+
/**
|
|
70
|
+
* 发送空闲提示到 SDK
|
|
71
|
+
*/
|
|
72
|
+
private sendIdlePrompt;
|
|
73
|
+
private isTaskPollingIdleCommand;
|
|
74
|
+
private isMessagePollingIdleCommand;
|
|
75
|
+
/**
|
|
76
|
+
* 执行空闲命令(支持 [enter], [wait:n] 等 token)
|
|
77
|
+
*/
|
|
78
|
+
private executeIdleCommand;
|
|
79
|
+
/**
|
|
80
|
+
* 更新活动时间(在收到输出或状态变化时调用)
|
|
81
|
+
*/
|
|
82
|
+
private updateActivity;
|
|
83
|
+
/**
|
|
84
|
+
* 恢复之前的会话
|
|
85
|
+
* 注意:SDK 的 resume 功能需要 providerSessionId
|
|
86
|
+
*/
|
|
87
|
+
resumeSession(sessionId: string, providerSessionId: string, config: AdapterSessionConfig): Promise<void>;
|
|
88
|
+
private loadSdk;
|
|
89
|
+
/**
|
|
90
|
+
* 查找 Claude Code 可执行文件路径
|
|
91
|
+
* 支持 Windows / macOS / Linux
|
|
92
|
+
*/
|
|
93
|
+
private findClaudeExecutable;
|
|
94
|
+
/**
|
|
95
|
+
* 从 wrapper 脚本解析 cli.js 路径
|
|
96
|
+
*/
|
|
97
|
+
private resolveCliJsFromWrapper;
|
|
98
|
+
private buildQueryOptions;
|
|
99
|
+
private createPermissionHandler;
|
|
100
|
+
private consumeStream;
|
|
101
|
+
private handleSdkMessage;
|
|
102
|
+
private handleToolUse;
|
|
103
|
+
/**
|
|
104
|
+
* 处理 SDK 流式事件
|
|
105
|
+
* 用于检测工具调用开始、增量更新和结束
|
|
106
|
+
*
|
|
107
|
+
* 注意:此方法只更新状态,不发送时间线事件
|
|
108
|
+
* 时间线事件由 handleToolUse 发送,这样能获取完整的工具参数
|
|
109
|
+
*/
|
|
110
|
+
private handleStreamEvent;
|
|
111
|
+
/**
|
|
112
|
+
* 提取工具名后缀
|
|
113
|
+
* 用于匹配不同格式的工具名
|
|
114
|
+
* 例如:aws-mcp__get_profile -> get_profile
|
|
115
|
+
*/
|
|
116
|
+
private extractToolNameSuffix;
|
|
117
|
+
private emitEvent;
|
|
118
|
+
private cleanupSession;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=ClaudeSdkAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/ClaudeSdkAdapter.ts"],"names":[],"mappings":"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"}
|