aws-runtime-bridge 1.9.79 → 1.9.81
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/dist/adapter/AcodeSdkAdapter.d.ts +0 -1
- package/dist/adapter/AcodeSdkAdapter.js +11 -1986
- package/dist/adapter/AdapterRegistry.d.ts +0 -1
- package/dist/adapter/AdapterRegistry.js +2 -100
- package/dist/adapter/ClaudeSdkAdapter.d.ts +0 -1
- package/dist/adapter/ClaudeSdkAdapter.js +4 -1300
- package/dist/adapter/CodexSdkAdapter.d.ts +0 -1
- package/dist/adapter/CodexSdkAdapter.js +4 -836
- package/dist/adapter/OpencodeSdkAdapter.d.ts +0 -1
- package/dist/adapter/OpencodeSdkAdapter.js +4 -879
- package/dist/adapter/SdkProviderSpi.d.ts +0 -1
- package/dist/adapter/SdkProviderSpi.js +2 -55
- package/dist/adapter/acode-tool-names.d.ts +0 -1
- package/dist/adapter/acode-tool-names.js +2 -37
- package/dist/adapter/idle-poll-loop.d.ts +0 -1
- package/dist/adapter/idle-poll-loop.js +2 -59
- package/dist/adapter/index.d.ts +0 -1
- package/dist/adapter/index.js +2 -11
- package/dist/adapter/instance-ai-config-resolver.d.ts +0 -1
- package/dist/adapter/instance-ai-config-resolver.js +2 -46
- package/dist/adapter/types.d.ts +0 -1
- package/dist/adapter/types.js +2 -443
- package/dist/adapters/cc-switch/common.d.ts +0 -1
- package/dist/adapters/cc-switch/common.js +2 -61
- package/dist/adapters/cc-switch/index.d.ts +0 -1
- package/dist/adapters/cc-switch/index.js +2 -57
- package/dist/adapters/cc-switch/mcp-acode.d.ts +0 -1
- package/dist/adapters/cc-switch/mcp-acode.js +2 -71
- package/dist/adapters/cc-switch/mcp-claude.d.ts +0 -1
- package/dist/adapters/cc-switch/mcp-claude.js +2 -89
- package/dist/adapters/cc-switch/mcp-claudecode.d.ts +0 -1
- package/dist/adapters/cc-switch/mcp-claudecode.js +2 -77
- package/dist/adapters/cc-switch/mcp-codex.d.ts +0 -1
- package/dist/adapters/cc-switch/mcp-codex.js +11 -249
- package/dist/adapters/cc-switch/mcp-opencode.d.ts +0 -1
- package/dist/adapters/cc-switch/mcp-opencode.js +2 -97
- package/dist/adapters/cc-switch/mcp-placeholder.d.ts +0 -1
- package/dist/adapters/cc-switch/mcp-placeholder.js +2 -19
- package/dist/adapters/cc-switch/skill-acode.d.ts +0 -1
- package/dist/adapters/cc-switch/skill-acode.js +2 -12
- package/dist/adapters/cc-switch/skill-claude.d.ts +0 -1
- package/dist/adapters/cc-switch/skill-claude.js +2 -11
- package/dist/adapters/cc-switch/skill-claudecode.d.ts +0 -1
- package/dist/adapters/cc-switch/skill-claudecode.js +2 -11
- package/dist/adapters/cc-switch/skill-codex.d.ts +0 -1
- package/dist/adapters/cc-switch/skill-codex.js +2 -6
- package/dist/adapters/cc-switch/skill-directory.d.ts +0 -1
- package/dist/adapters/cc-switch/skill-directory.js +3 -137
- package/dist/adapters/cc-switch/skill-opencode.d.ts +0 -1
- package/dist/adapters/cc-switch/skill-opencode.js +2 -11
- package/dist/adapters/cc-switch/skill-placeholder.d.ts +0 -1
- package/dist/adapters/cc-switch/skill-placeholder.js +2 -19
- package/dist/config.d.ts +0 -1
- package/dist/config.js +2 -290
- package/dist/index.d.ts +0 -1
- package/dist/index.js +2 -573
- package/dist/middleware/auth.d.ts +0 -1
- package/dist/middleware/auth.js +2 -98
- package/dist/routes/acode-todos.d.ts +0 -1
- package/dist/routes/acode-todos.js +2 -75
- package/dist/routes/ai-sources.d.ts +0 -1
- package/dist/routes/ai-sources.js +2 -132
- package/dist/routes/dashboard.d.ts +0 -1
- package/dist/routes/dashboard.js +182 -649
- package/dist/routes/events.d.ts +0 -1
- package/dist/routes/events.js +2 -22
- package/dist/routes/file-browser.d.ts +0 -1
- package/dist/routes/file-browser.js +2 -781
- package/dist/routes/file-diff-rollback.d.ts +0 -1
- package/dist/routes/file-diff-rollback.js +2 -301
- package/dist/routes/file-snapshot.d.ts +0 -1
- package/dist/routes/file-snapshot.js +2 -156
- package/dist/routes/git.d.ts +0 -1
- package/dist/routes/git.js +28 -1900
- package/dist/routes/instance.d.ts +0 -1
- package/dist/routes/instance.js +3 -748
- package/dist/routes/mcp.d.ts +0 -1
- package/dist/routes/mcp.js +2 -196
- package/dist/routes/processes.d.ts +0 -1
- package/dist/routes/processes.js +2 -252
- package/dist/routes/properties.d.ts +0 -1
- package/dist/routes/properties.js +2 -72
- package/dist/routes/pty.d.ts +0 -1
- package/dist/routes/pty.js +6 -560
- package/dist/routes/runtime-binding.d.ts +0 -1
- package/dist/routes/runtime-binding.js +2 -263
- package/dist/routes/sessions.d.ts +0 -1
- package/dist/routes/sessions.js +2 -758
- package/dist/routes/skills.d.ts +0 -1
- package/dist/routes/skills.js +2 -187
- package/dist/routes/sub-agents.d.ts +0 -1
- package/dist/routes/sub-agents.js +20 -279
- package/dist/routes/system-metrics.d.ts +0 -1
- package/dist/routes/system-metrics.js +2 -20
- package/dist/routes/task-context.d.ts +0 -1
- package/dist/routes/task-context.js +2 -78
- package/dist/routes/terminal.d.ts +0 -1
- package/dist/routes/terminal.js +54 -2882
- package/dist/routes/yml.d.ts +0 -1
- package/dist/routes/yml.js +2 -223
- package/dist/services/acode-package.d.ts +0 -1
- package/dist/services/acode-package.js +2 -111
- package/dist/services/agent-event-store.d.ts +0 -1
- package/dist/services/agent-event-store.js +2 -81
- package/dist/services/agent-process-manager.d.ts +0 -1
- package/dist/services/agent-process-manager.js +2 -796
- package/dist/services/ai-source-apply.d.ts +0 -1
- package/dist/services/ai-source-apply.js +2 -83
- package/dist/services/auto-register.d.ts +5 -1
- package/dist/services/auto-register.js +2 -1053
- package/dist/services/aws-client-agent-mcp.d.ts +0 -1
- package/dist/services/aws-client-agent-mcp.js +3 -337
- package/dist/services/bridge-package-publish-hooks.d.ts +0 -1
- package/dist/services/bridge-package-publish-hooks.js +2 -115
- package/dist/services/cc-switch-sdk.d.ts +0 -1
- package/dist/services/cc-switch-sdk.js +2 -135
- package/dist/services/cli-commands.d.ts +6 -1
- package/dist/services/cli-commands.js +6 -645
- package/dist/services/event-delta-pusher.d.ts +0 -1
- package/dist/services/event-delta-pusher.js +2 -95
- package/dist/services/fileSnapshotStore.d.ts +0 -1
- package/dist/services/fileSnapshotStore.js +2 -500
- package/dist/services/instance-ai-config-service.d.ts +0 -1
- package/dist/services/instance-ai-config-service.js +2 -174
- package/dist/services/instance-init-service.d.ts +0 -1
- package/dist/services/instance-init-service.js +2 -193
- package/dist/services/instance-service.d.ts +0 -1
- package/dist/services/instance-service.js +2 -237
- package/dist/services/instance-state.d.ts +0 -1
- package/dist/services/instance-state.js +2 -94
- package/dist/services/legacy-path-migration.d.ts +0 -1
- package/dist/services/legacy-path-migration.js +2 -66
- package/dist/services/lifecycle-state.d.ts +0 -1
- package/dist/services/lifecycle-state.js +3 -110
- package/dist/services/mcp-launch-binding-queue.d.ts +0 -1
- package/dist/services/mcp-launch-binding-queue.js +2 -175
- package/dist/services/orphan-monitor.d.ts +0 -1
- package/dist/services/orphan-monitor.js +2 -382
- package/dist/services/panel-auth.d.ts +0 -1
- package/dist/services/panel-auth.js +2 -168
- package/dist/services/process-detector.d.ts +0 -1
- package/dist/services/process-detector.js +18 -1019
- package/dist/services/process-registry.d.ts +0 -1
- package/dist/services/process-registry.js +2 -375
- package/dist/services/ring-buffer.d.ts +0 -1
- package/dist/services/ring-buffer.js +2 -103
- package/dist/services/runtime-binding.d.ts +0 -1
- package/dist/services/runtime-binding.js +6 -363
- package/dist/services/runtime-lifecycle-policy.d.ts +0 -1
- package/dist/services/runtime-lifecycle-policy.js +2 -35
- package/dist/services/session-output.d.ts +0 -1
- package/dist/services/session-output.js +5 -539
- package/dist/services/startup-config-wizard.d.ts +0 -1
- package/dist/services/startup-config-wizard.js +14 -258
- package/dist/services/sub-agent-manager-instance.d.ts +0 -1
- package/dist/services/sub-agent-manager-instance.js +2 -12
- package/dist/services/system-metrics.d.ts +0 -1
- package/dist/services/system-metrics.js +2 -252
- package/dist/services/terminal-persistence.d.ts +0 -1
- package/dist/services/terminal-persistence.js +2 -176
- package/dist/services/tool-installer.d.ts +0 -1
- package/dist/services/tool-installer.js +5 -751
- package/dist/services/tunnel-client.d.ts +0 -1
- package/dist/services/tunnel-client.js +2 -402
- package/dist/services/windows-service-manager.d.ts +3 -3
- package/dist/services/windows-service-manager.js +2 -59
- package/dist/services/workspace-files.d.ts +0 -1
- package/dist/services/workspace-files.js +2 -1275
- package/dist/services/workspace-watch.d.ts +0 -1
- package/dist/services/workspace-watch.js +2 -123
- package/dist/services/workspaceTaskChangeWatcher.d.ts +0 -1
- package/dist/services/workspaceTaskChangeWatcher.js +2 -483
- package/dist/types.d.ts +0 -1
- package/dist/types.js +1 -1
- package/dist/utils/file-utils.d.ts +0 -1
- package/dist/utils/file-utils.js +3 -208
- package/dist/utils/instance-ai-config-debug-logger.d.ts +0 -1
- package/dist/utils/instance-ai-config-debug-logger.js +4 -63
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.js +2 -154
- package/dist/utils/mcp-utils.d.ts +0 -1
- package/dist/utils/mcp-utils.js +2 -187
- package/dist/utils/path-utils.d.ts +0 -1
- package/dist/utils/path-utils.js +2 -44
- package/dist/utils/sdk-package-loader.d.ts +0 -1
- package/dist/utils/sdk-package-loader.js +2 -78
- package/dist/utils/validation.d.ts +0 -1
- package/dist/utils/validation.js +2 -53
- package/dist/utils/yaml-utils.d.ts +0 -1
- package/dist/utils/yaml-utils.js +2 -312
- package/node_modules/@cc-switch/sdk/dist/constants.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/constants.js +2 -63
- package/node_modules/@cc-switch/sdk/dist/errors.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/errors.js +2 -8
- package/node_modules/@cc-switch/sdk/dist/index.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/index.js +2 -9
- package/node_modules/@cc-switch/sdk/dist/schemas.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/schemas.js +2 -38
- package/node_modules/@cc-switch/sdk/dist/sdk.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/sdk.js +2 -470
- package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.js +4 -307
- package/node_modules/@cc-switch/sdk/dist/services/mcp-model.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/mcp-model.js +2 -37
- package/node_modules/@cc-switch/sdk/dist/services/mcp-service.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/mcp-service.js +2 -9
- package/node_modules/@cc-switch/sdk/dist/services/skill-model.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/skill-model.js +2 -41
- package/node_modules/@cc-switch/sdk/dist/services/skill-service.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/skill-service.js +2 -9
- package/node_modules/@cc-switch/sdk/dist/state.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/state.js +2 -19
- package/node_modules/@cc-switch/sdk/dist/types.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/types.js +1 -1
- package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/utils/fs.js +3 -114
- package/node_modules/@cc-switch/sdk/dist/utils/id.d.ts +0 -1
- package/node_modules/@cc-switch/sdk/dist/utils/id.js +2 -12
- package/node_modules/@cc-switch/sdk/package.json +1 -1
- package/package/acode/dist/ask-user-question-tool.d.ts +0 -1
- package/package/acode/dist/ask-user-question-tool.js +4 -233
- package/package/acode/dist/built-in-file-tools.d.ts +0 -1
- package/package/acode/dist/built-in-file-tools.js +4 -966
- package/package/acode/dist/built-in-symbols-tool.d.ts +0 -1
- package/package/acode/dist/built-in-symbols-tool.js +2 -117
- package/package/acode/dist/builtins/commandArtifacts.d.ts +0 -1
- package/package/acode/dist/builtins/commandArtifacts.js +9 -97
- package/package/acode/dist/builtins/commandOutputEvents.d.ts +0 -1
- package/package/acode/dist/builtins/commandOutputEvents.js +2 -56
- package/package/acode/dist/builtins/shellCommandPreparation.d.ts +0 -1
- package/package/acode/dist/builtins/shellCommandPreparation.js +5 -44
- package/package/acode/dist/builtins/shellCommandResult.d.ts +0 -1
- package/package/acode/dist/builtins/shellCommandResult.js +2 -71
- package/package/acode/dist/builtins/shellCommandRunner.d.ts +0 -1
- package/package/acode/dist/builtins/shellCommandRunner.js +2 -115
- package/package/acode/dist/builtins/shellOutputDecoder.d.ts +0 -1
- package/package/acode/dist/builtins/shellOutputDecoder.js +2 -94
- package/package/acode/dist/cli.d.ts +0 -1
- package/package/acode/dist/cli.js +4 -38
- package/package/acode/dist/commands/commandLoader.d.ts +0 -1
- package/package/acode/dist/commands/commandLoader.js +2 -33
- package/package/acode/dist/commands/commandParser.d.ts +0 -1
- package/package/acode/dist/commands/commandParser.js +3 -77
- package/package/acode/dist/commands/commandRegistry.d.ts +0 -1
- package/package/acode/dist/commands/commandRegistry.js +2 -30
- package/package/acode/dist/compaction.d.ts +0 -1
- package/package/acode/dist/compaction.js +7 -919
- package/package/acode/dist/config.d.ts +0 -1
- package/package/acode/dist/config.js +5 -105
- package/package/acode/dist/fs-utils.d.ts +0 -1
- package/package/acode/dist/fs-utils.js +2 -79
- package/package/acode/dist/hooks/hookBus.d.ts +0 -1
- package/package/acode/dist/hooks/hookBus.js +2 -40
- package/package/acode/dist/index.d.ts +0 -1
- package/package/acode/dist/index.js +2 -19
- package/package/acode/dist/mcpToolNames.d.ts +0 -1
- package/package/acode/dist/mcpToolNames.js +2 -17
- package/package/acode/dist/parsers/ast-cache.d.ts +0 -1
- package/package/acode/dist/parsers/ast-cache.js +2 -76
- package/package/acode/dist/parsers/language-detector.d.ts +0 -1
- package/package/acode/dist/parsers/language-detector.js +2 -44
- package/package/acode/dist/parsers/language-queries.d.ts +0 -1
- package/package/acode/dist/parsers/language-queries.js +12 -602
- package/package/acode/dist/parsers/symbol-extractor.d.ts +0 -1
- package/package/acode/dist/parsers/symbol-extractor.js +3 -164
- package/package/acode/dist/parsers/tree-sitter-loader.d.ts +0 -1
- package/package/acode/dist/parsers/tree-sitter-loader.js +2 -64
- package/package/acode/dist/parsers/types.d.ts +0 -1
- package/package/acode/dist/parsers/types.js +1 -7
- package/package/acode/dist/runtime.d.ts +0 -1
- package/package/acode/dist/runtime.js +86 -3771
- package/package/acode/dist/skill-tool.d.ts +0 -1
- package/package/acode/dist/skill-tool.js +5 -174
- package/package/acode/dist/sub-agent-manager.d.ts +0 -1
- package/package/acode/dist/sub-agent-manager.js +2 -1159
- package/package/acode/dist/sub-agent-store.d.ts +0 -1
- package/package/acode/dist/sub-agent-store.js +4 -236
- package/package/acode/dist/sub-agent-tools.d.ts +0 -1
- package/package/acode/dist/sub-agent-tools.js +15 -369
- package/package/acode/dist/sub-agent-types.d.ts +0 -1
- package/package/acode/dist/sub-agent-types.js +1 -8
- package/package/acode/dist/todo-store.d.ts +0 -1
- package/package/acode/dist/todo-store.js +2 -73
- package/package/acode/dist/todo-tool.d.ts +0 -1
- package/package/acode/dist/todo-tool.js +5 -121
- package/package/acode/dist/types.d.ts +0 -1
- package/package/acode/dist/types.js +1 -1
- package/package/acode/package.json +2 -2
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/agent-client.js +2 -890
- package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/agent-client.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/config.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/config.js +2 -243
- package/package/aws-client-agent-mcp/dist/config.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/config.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/constants.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/constants.js +2 -24
- package/package/aws-client-agent-mcp/dist/context-manager.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/context-manager.js +2 -477
- package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/context-manager.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/http-client.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/http-client.js +2 -446
- package/package/aws-client-agent-mcp/dist/http-client.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/http-client.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/index.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/index.js +2 -34
- package/package/aws-client-agent-mcp/dist/logger.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/logger.js +3 -178
- package/package/aws-client-agent-mcp/dist/logger.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/logger.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.js +38 -2709
- package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.js +22 -562
- package/package/aws-client-agent-mcp/dist/mcp-tools.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/memory-store.js +4 -826
- package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/memory-store.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.js +31 -294
- package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.js +2 -288
- package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/messageContent.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/messageContent.js +2 -125
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js +2 -103
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.js +2 -96
- package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.js +3 -327
- package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js +0 -1
- package/package/aws-client-agent-mcp/dist/types.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/types.js +2 -9
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.js +2 -677
- package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js +0 -1
- package/package/aws-client-agent-mcp/package.json +1 -1
- package/package/cc-switch-sdk/dist/constants.d.ts +0 -1
- package/package/cc-switch-sdk/dist/constants.js +2 -63
- package/package/cc-switch-sdk/dist/errors.d.ts +0 -1
- package/package/cc-switch-sdk/dist/errors.js +2 -8
- package/package/cc-switch-sdk/dist/index.d.ts +0 -1
- package/package/cc-switch-sdk/dist/index.js +2 -9
- package/package/cc-switch-sdk/dist/schemas.d.ts +0 -1
- package/package/cc-switch-sdk/dist/schemas.js +2 -38
- package/package/cc-switch-sdk/dist/sdk.d.ts +0 -1
- package/package/cc-switch-sdk/dist/sdk.js +2 -470
- package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts +0 -1
- package/package/cc-switch-sdk/dist/services/ai-config-service.js +4 -307
- package/package/cc-switch-sdk/dist/services/mcp-model.d.ts +0 -1
- package/package/cc-switch-sdk/dist/services/mcp-model.js +2 -37
- package/package/cc-switch-sdk/dist/services/mcp-service.d.ts +0 -1
- package/package/cc-switch-sdk/dist/services/mcp-service.js +2 -9
- package/package/cc-switch-sdk/dist/services/skill-model.d.ts +0 -1
- package/package/cc-switch-sdk/dist/services/skill-model.js +2 -41
- package/package/cc-switch-sdk/dist/services/skill-service.d.ts +0 -1
- package/package/cc-switch-sdk/dist/services/skill-service.js +2 -9
- package/package/cc-switch-sdk/dist/state.d.ts +0 -1
- package/package/cc-switch-sdk/dist/state.js +2 -19
- package/package/cc-switch-sdk/dist/types.d.ts +0 -1
- package/package/cc-switch-sdk/dist/types.js +1 -1
- package/package/cc-switch-sdk/dist/utils/fs.d.ts +0 -1
- package/package/cc-switch-sdk/dist/utils/fs.js +3 -114
- package/package/cc-switch-sdk/dist/utils/id.d.ts +0 -1
- package/package/cc-switch-sdk/dist/utils/id.js +2 -12
- package/package/cc-switch-sdk/package.json +1 -1
- package/package.json +4 -2
- package/dist/adapter/AcodeSdkAdapter.d.ts.map +0 -1
- package/dist/adapter/AdapterRegistry.d.ts.map +0 -1
- package/dist/adapter/ClaudeSdkAdapter.d.ts.map +0 -1
- package/dist/adapter/CodexSdkAdapter.d.ts.map +0 -1
- package/dist/adapter/OpencodeSdkAdapter.d.ts.map +0 -1
- package/dist/adapter/SdkProviderSpi.d.ts.map +0 -1
- package/dist/adapter/acode-tool-names.d.ts.map +0 -1
- package/dist/adapter/idle-poll-loop.d.ts.map +0 -1
- package/dist/adapter/index.d.ts.map +0 -1
- package/dist/adapter/instance-ai-config-resolver.d.ts.map +0 -1
- package/dist/adapter/types.d.ts.map +0 -1
- package/dist/adapters/cc-switch/common.d.ts.map +0 -1
- package/dist/adapters/cc-switch/index.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-acode.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-claude.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-claudecode.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-codex.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-opencode.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-placeholder.d.ts.map +0 -1
- package/dist/adapters/cc-switch/skill-acode.d.ts.map +0 -1
- package/dist/adapters/cc-switch/skill-claude.d.ts.map +0 -1
- package/dist/adapters/cc-switch/skill-claudecode.d.ts.map +0 -1
- package/dist/adapters/cc-switch/skill-codex.d.ts.map +0 -1
- package/dist/adapters/cc-switch/skill-directory.d.ts.map +0 -1
- package/dist/adapters/cc-switch/skill-opencode.d.ts.map +0 -1
- package/dist/adapters/cc-switch/skill-placeholder.d.ts.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/middleware/auth.d.ts.map +0 -1
- package/dist/routes/acode-todos.d.ts.map +0 -1
- package/dist/routes/ai-sources.d.ts.map +0 -1
- package/dist/routes/dashboard.d.ts.map +0 -1
- package/dist/routes/events.d.ts.map +0 -1
- package/dist/routes/file-browser.d.ts.map +0 -1
- package/dist/routes/file-diff-rollback.d.ts.map +0 -1
- package/dist/routes/file-snapshot.d.ts.map +0 -1
- package/dist/routes/git.d.ts.map +0 -1
- package/dist/routes/instance.d.ts.map +0 -1
- package/dist/routes/mcp.d.ts.map +0 -1
- package/dist/routes/processes.d.ts.map +0 -1
- package/dist/routes/properties.d.ts.map +0 -1
- package/dist/routes/pty.d.ts.map +0 -1
- package/dist/routes/runtime-binding.d.ts.map +0 -1
- package/dist/routes/sessions.d.ts.map +0 -1
- package/dist/routes/skills.d.ts.map +0 -1
- package/dist/routes/sub-agents.d.ts.map +0 -1
- package/dist/routes/system-metrics.d.ts.map +0 -1
- package/dist/routes/task-context.d.ts.map +0 -1
- package/dist/routes/terminal.d.ts.map +0 -1
- package/dist/routes/yml.d.ts.map +0 -1
- package/dist/services/acode-package.d.ts.map +0 -1
- package/dist/services/agent-event-store.d.ts.map +0 -1
- package/dist/services/agent-process-manager.d.ts.map +0 -1
- package/dist/services/ai-source-apply.d.ts.map +0 -1
- package/dist/services/auto-register.d.ts.map +0 -1
- package/dist/services/aws-client-agent-mcp.d.ts.map +0 -1
- package/dist/services/bridge-package-publish-hooks.d.ts.map +0 -1
- package/dist/services/cc-switch-sdk.d.ts.map +0 -1
- package/dist/services/cli-commands.d.ts.map +0 -1
- package/dist/services/event-delta-pusher.d.ts.map +0 -1
- package/dist/services/fileSnapshotStore.d.ts.map +0 -1
- package/dist/services/instance-ai-config-service.d.ts.map +0 -1
- package/dist/services/instance-init-service.d.ts.map +0 -1
- package/dist/services/instance-service.d.ts.map +0 -1
- package/dist/services/instance-state.d.ts.map +0 -1
- package/dist/services/legacy-path-migration.d.ts.map +0 -1
- package/dist/services/lifecycle-state.d.ts.map +0 -1
- package/dist/services/mcp-launch-binding-queue.d.ts.map +0 -1
- package/dist/services/orphan-monitor.d.ts.map +0 -1
- package/dist/services/panel-auth.d.ts.map +0 -1
- package/dist/services/process-detector.d.ts.map +0 -1
- package/dist/services/process-registry.d.ts.map +0 -1
- package/dist/services/ring-buffer.d.ts.map +0 -1
- package/dist/services/runtime-binding.d.ts.map +0 -1
- package/dist/services/runtime-lifecycle-policy.d.ts.map +0 -1
- package/dist/services/session-output.d.ts.map +0 -1
- package/dist/services/startup-config-wizard.d.ts.map +0 -1
- package/dist/services/sub-agent-manager-instance.d.ts.map +0 -1
- package/dist/services/system-metrics.d.ts.map +0 -1
- package/dist/services/terminal-persistence.d.ts.map +0 -1
- package/dist/services/tool-installer.d.ts.map +0 -1
- package/dist/services/tunnel-client.d.ts.map +0 -1
- package/dist/services/windows-service-manager.d.ts.map +0 -1
- package/dist/services/workspace-files.d.ts.map +0 -1
- package/dist/services/workspace-watch.d.ts.map +0 -1
- package/dist/services/workspaceTaskChangeWatcher.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/utils/file-utils.d.ts.map +0 -1
- package/dist/utils/instance-ai-config-debug-logger.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/mcp-utils.d.ts.map +0 -1
- package/dist/utils/path-utils.d.ts.map +0 -1
- package/dist/utils/sdk-package-loader.d.ts.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/yaml-utils.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/constants.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/errors.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/index.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/schemas.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/sdk.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/mcp-model.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/mcp-service.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/skill-model.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/services/skill-service.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/state.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/types.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts.map +0 -1
- package/node_modules/@cc-switch/sdk/dist/utils/id.d.ts.map +0 -1
- package/package/acode/dist/ask-user-question-tool.d.ts.map +0 -1
- package/package/acode/dist/built-in-file-tools.d.ts.map +0 -1
- package/package/acode/dist/built-in-symbols-tool.d.ts.map +0 -1
- package/package/acode/dist/builtins/commandArtifacts.d.ts.map +0 -1
- package/package/acode/dist/builtins/commandOutputEvents.d.ts.map +0 -1
- package/package/acode/dist/builtins/shellCommandPreparation.d.ts.map +0 -1
- package/package/acode/dist/builtins/shellCommandResult.d.ts.map +0 -1
- package/package/acode/dist/builtins/shellCommandRunner.d.ts.map +0 -1
- package/package/acode/dist/builtins/shellOutputDecoder.d.ts.map +0 -1
- package/package/acode/dist/cli.d.ts.map +0 -1
- package/package/acode/dist/commands/commandLoader.d.ts.map +0 -1
- package/package/acode/dist/commands/commandParser.d.ts.map +0 -1
- package/package/acode/dist/commands/commandRegistry.d.ts.map +0 -1
- package/package/acode/dist/compaction.d.ts.map +0 -1
- package/package/acode/dist/config.d.ts.map +0 -1
- package/package/acode/dist/fs-utils.d.ts.map +0 -1
- package/package/acode/dist/hooks/hookBus.d.ts.map +0 -1
- package/package/acode/dist/index.d.ts.map +0 -1
- package/package/acode/dist/mcpToolNames.d.ts.map +0 -1
- package/package/acode/dist/parsers/ast-cache.d.ts.map +0 -1
- package/package/acode/dist/parsers/language-detector.d.ts.map +0 -1
- package/package/acode/dist/parsers/language-queries.d.ts.map +0 -1
- package/package/acode/dist/parsers/symbol-extractor.d.ts.map +0 -1
- package/package/acode/dist/parsers/tree-sitter-loader.d.ts.map +0 -1
- package/package/acode/dist/parsers/types.d.ts.map +0 -1
- package/package/acode/dist/runtime.d.ts.map +0 -1
- package/package/acode/dist/skill-tool.d.ts.map +0 -1
- package/package/acode/dist/sub-agent-manager.d.ts.map +0 -1
- package/package/acode/dist/sub-agent-store.d.ts.map +0 -1
- package/package/acode/dist/sub-agent-tools.d.ts.map +0 -1
- package/package/acode/dist/sub-agent-types.d.ts.map +0 -1
- package/package/acode/dist/todo-store.d.ts.map +0 -1
- package/package/acode/dist/todo-tool.d.ts.map +0 -1
- package/package/acode/dist/types.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/agent-client.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/agent-client.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/config.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/config.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/config.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/config.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/constants.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/constants.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/context-manager.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/context-manager.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/http-client.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/http-client.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/http-client.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/index.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/index.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/logger.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/logger.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/logger.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/logger.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/memory-store.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/messageContent.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/messageContent.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/types.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/types.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.js.map +0 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts.map +0 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js.map +0 -1
- package/package/cc-switch-sdk/dist/constants.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/errors.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/index.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/schemas.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/sdk.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/services/mcp-model.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/services/mcp-service.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/services/skill-model.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/services/skill-service.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/state.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/types.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/utils/fs.d.ts.map +0 -1
- package/package/cc-switch-sdk/dist/utils/id.d.ts.map +0 -1
package/dist/utils/file-utils.js
CHANGED
|
@@ -1,208 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import path from 'node:path';
|
|
5
|
-
import axios from 'axios';
|
|
6
|
-
import { schedulerBaseUrl } from '../config.js';
|
|
7
|
-
import { getRuntimeAccessToken } from '../services/runtime-binding.js';
|
|
8
|
-
const fileLocks = new Map();
|
|
9
|
-
export async function ensureDir(targetDir) {
|
|
10
|
-
await fs.mkdir(targetDir, { recursive: true });
|
|
11
|
-
return targetDir;
|
|
12
|
-
}
|
|
13
|
-
export async function withFileLock(targetPath, operation) {
|
|
14
|
-
const lockKey = path.resolve(targetPath);
|
|
15
|
-
const previous = fileLocks.get(lockKey) ?? Promise.resolve();
|
|
16
|
-
let release;
|
|
17
|
-
const current = new Promise((resolve) => {
|
|
18
|
-
release = resolve;
|
|
19
|
-
});
|
|
20
|
-
const chained = previous.then(() => current);
|
|
21
|
-
fileLocks.set(lockKey, chained);
|
|
22
|
-
await previous;
|
|
23
|
-
try {
|
|
24
|
-
return await operation();
|
|
25
|
-
}
|
|
26
|
-
finally {
|
|
27
|
-
release();
|
|
28
|
-
if (fileLocks.get(lockKey) === chained) {
|
|
29
|
-
fileLocks.delete(lockKey);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function isPlainObject(value) {
|
|
34
|
-
if (!value || typeof value !== 'object') {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
const prototype = Object.getPrototypeOf(value);
|
|
38
|
-
return prototype === Object.prototype || prototype === null;
|
|
39
|
-
}
|
|
40
|
-
function sortJsonValue(value) {
|
|
41
|
-
if (Array.isArray(value)) {
|
|
42
|
-
return value.map((item) => sortJsonValue(item));
|
|
43
|
-
}
|
|
44
|
-
if (isPlainObject(value)) {
|
|
45
|
-
return Object.keys(value)
|
|
46
|
-
.sort()
|
|
47
|
-
.reduce((acc, key) => {
|
|
48
|
-
acc[key] = sortJsonValue(value[key]);
|
|
49
|
-
return acc;
|
|
50
|
-
}, {});
|
|
51
|
-
}
|
|
52
|
-
return value;
|
|
53
|
-
}
|
|
54
|
-
export function stringifyStableJson(value) {
|
|
55
|
-
return `${JSON.stringify(sortJsonValue(value), null, 2)}\n`;
|
|
56
|
-
}
|
|
57
|
-
export async function atomicWriteFile(targetPath, content) {
|
|
58
|
-
await ensureDir(path.dirname(targetPath));
|
|
59
|
-
const targetDir = path.dirname(targetPath);
|
|
60
|
-
const targetBase = path.basename(targetPath);
|
|
61
|
-
const tmpPath = path.join(targetDir, `.${targetBase}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`);
|
|
62
|
-
try {
|
|
63
|
-
await fs.writeFile(tmpPath, content, 'utf-8');
|
|
64
|
-
await fs.rename(tmpPath, targetPath);
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
await fs.rm(tmpPath, { force: true }).catch(() => undefined);
|
|
68
|
-
throw error;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
export async function atomicWriteJsonFile(targetPath, value) {
|
|
72
|
-
await atomicWriteFile(targetPath, stringifyStableJson(value));
|
|
73
|
-
}
|
|
74
|
-
export async function downloadSkillZip(skillPackage, targetDir) {
|
|
75
|
-
if (!skillPackage || !skillPackage.downloadUrl) {
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
const url = String(skillPackage.downloadUrl).trim();
|
|
79
|
-
if (!url) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
let absoluteUrl = url;
|
|
83
|
-
if (absoluteUrl.startsWith('/')) {
|
|
84
|
-
absoluteUrl = `${schedulerBaseUrl}${absoluteUrl}`;
|
|
85
|
-
}
|
|
86
|
-
const fileName = skillPackage.fileName && String(skillPackage.fileName).trim()
|
|
87
|
-
? String(skillPackage.fileName).trim()
|
|
88
|
-
: 'skill-package.zip';
|
|
89
|
-
const outputPath = path.join(targetDir, fileName);
|
|
90
|
-
const runtimeAccessToken = getRuntimeAccessToken(schedulerBaseUrl) || getRuntimeAccessToken();
|
|
91
|
-
if (!runtimeAccessToken) {
|
|
92
|
-
throw new Error('runtime access token is required to download skill package');
|
|
93
|
-
}
|
|
94
|
-
const response = await axios.get(absoluteUrl, {
|
|
95
|
-
responseType: 'arraybuffer',
|
|
96
|
-
headers: {
|
|
97
|
-
'X-Runtime-Token': runtimeAccessToken,
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
|
-
const bytes = Buffer.from(response.data);
|
|
101
|
-
await fs.writeFile(outputPath, bytes);
|
|
102
|
-
if (skillPackage.sha256) {
|
|
103
|
-
const hash = createHash('sha256').update(bytes).digest('hex');
|
|
104
|
-
if (hash !== String(skillPackage.sha256).trim().toLowerCase()) {
|
|
105
|
-
throw new Error('skill zip checksum mismatch');
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
fileName,
|
|
110
|
-
outputPath,
|
|
111
|
-
bytes: bytes.length,
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
export async function runCommand(command, args) {
|
|
115
|
-
await new Promise((resolve, reject) => {
|
|
116
|
-
const child = spawn(command, args, { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
117
|
-
let stderr = '';
|
|
118
|
-
child.stderr?.on('data', (chunk) => {
|
|
119
|
-
stderr += String(chunk || '');
|
|
120
|
-
});
|
|
121
|
-
child.on('error', (error) => {
|
|
122
|
-
reject(error);
|
|
123
|
-
});
|
|
124
|
-
child.on('close', (code) => {
|
|
125
|
-
if (code !== 0) {
|
|
126
|
-
reject(new Error(stderr || `${command} exited with code ${code}`));
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
resolve();
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
export function escapePowerShellLiteral(text) {
|
|
134
|
-
return String(text || '').replace(/'/g, "''");
|
|
135
|
-
}
|
|
136
|
-
export async function extractSkillZip(zipFilePath, extractRootDir) {
|
|
137
|
-
await fs.rm(extractRootDir, { recursive: true, force: true });
|
|
138
|
-
await fs.mkdir(extractRootDir, { recursive: true });
|
|
139
|
-
if (process.platform === 'win32') {
|
|
140
|
-
const zipLiteral = escapePowerShellLiteral(zipFilePath);
|
|
141
|
-
const targetLiteral = escapePowerShellLiteral(extractRootDir);
|
|
142
|
-
await runCommand('powershell.exe', [
|
|
143
|
-
'-NoLogo',
|
|
144
|
-
'-NoProfile',
|
|
145
|
-
'-Command',
|
|
146
|
-
`Expand-Archive -LiteralPath '${zipLiteral}' -DestinationPath '${targetLiteral}' -Force`,
|
|
147
|
-
]);
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
await runCommand('unzip', ['-o', zipFilePath, '-d', extractRootDir]);
|
|
151
|
-
}
|
|
152
|
-
export async function resolveSkillSourceDirFromExtractRoot(extractRootDir) {
|
|
153
|
-
const entries = await fs.readdir(extractRootDir, { withFileTypes: true });
|
|
154
|
-
const visible = entries.filter((entry) => !entry.name.startsWith('.'));
|
|
155
|
-
if (visible.length === 1 && visible[0].isDirectory()) {
|
|
156
|
-
return path.join(extractRootDir, visible[0].name);
|
|
157
|
-
}
|
|
158
|
-
return extractRootDir;
|
|
159
|
-
}
|
|
160
|
-
export function toSdkAppsFromEnabledTools(enabledTools) {
|
|
161
|
-
const tools = Array.isArray(enabledTools) ? enabledTools : [];
|
|
162
|
-
const includes = (name) => tools.includes(name);
|
|
163
|
-
return {
|
|
164
|
-
acode: includes('acode'),
|
|
165
|
-
claude: includes('claude'),
|
|
166
|
-
claudecode: includes('claudecode'),
|
|
167
|
-
codex: includes('codex'),
|
|
168
|
-
gemini: includes('gemini'),
|
|
169
|
-
opencode: includes('opencode'),
|
|
170
|
-
openclaw: includes('openclaw'),
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
export function resolveSkillSourceDir(skill) {
|
|
174
|
-
const sourceDirCandidate = String(skill?.sourceDir || skill?.directory || skill?.filePath || '').trim();
|
|
175
|
-
if (!sourceDirCandidate) {
|
|
176
|
-
throw new Error('skill.sourceDir is required');
|
|
177
|
-
}
|
|
178
|
-
return path.resolve(sourceDirCandidate);
|
|
179
|
-
}
|
|
180
|
-
export async function ensureDirectoryExists(directoryPath) {
|
|
181
|
-
const stat = await fs.stat(directoryPath);
|
|
182
|
-
if (!stat.isDirectory()) {
|
|
183
|
-
throw new Error(`not a directory: ${directoryPath}`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
export async function installSkillPackageToSdk(sdk, skillPackage, skillDir, sdkApps) {
|
|
187
|
-
const downloaded = await downloadSkillZip(skillPackage, skillDir);
|
|
188
|
-
if (!downloaded) {
|
|
189
|
-
return null;
|
|
190
|
-
}
|
|
191
|
-
const extractRootDir = path.join(skillDir, `${path.parse(downloaded.fileName).name}-${randomUUID()}`);
|
|
192
|
-
await extractSkillZip(downloaded.outputPath, extractRootDir);
|
|
193
|
-
const sourceDir = await resolveSkillSourceDirFromExtractRoot(extractRootDir);
|
|
194
|
-
const desiredName = String(skillPackage?.skillName || downloaded.fileName || '').trim() || downloaded.fileName;
|
|
195
|
-
const allSkills = sdk.getAllSkills();
|
|
196
|
-
const existing = allSkills.find((item) => String(item?.name || '').trim() === desiredName);
|
|
197
|
-
if (existing) {
|
|
198
|
-
return sdk.updateSkill(existing.id, {
|
|
199
|
-
name: desiredName,
|
|
200
|
-
apps: sdkApps,
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
return sdk.installSkill({
|
|
204
|
-
sourceDir,
|
|
205
|
-
name: desiredName,
|
|
206
|
-
apps: sdkApps,
|
|
207
|
-
});
|
|
208
|
-
}
|
|
1
|
+
import{spawn as g}from"node:child_process";import{createHash as x,randomUUID as $}from"node:crypto";import{promises as c}from"node:fs";import a from"node:path";import b from"axios";import{schedulerBaseUrl as d}from"../config.js";import{getRuntimeAccessToken as w}from"../services/runtime-binding.js";const p=new Map;async function N(e){return await c.mkdir(e,{recursive:!0}),e}async function W(e,t){const r=a.resolve(e),i=p.get(r)??Promise.resolve();let n;const s=new Promise(l=>{n=l}),o=i.then(()=>s);p.set(r,o),await i;try{return await t()}finally{n(),p.get(r)===o&&p.delete(r)}}function E(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function f(e){return Array.isArray(e)?e.map(t=>f(t)):E(e)?Object.keys(e).sort().reduce((t,r)=>(t[r]=f(e[r]),t),{}):e}function j(e){return`${JSON.stringify(f(e),null,2)}
|
|
2
|
+
`}async function k(e,t){await N(a.dirname(e));const r=a.dirname(e),i=a.basename(e),n=a.join(r,`.${i}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`);try{await c.writeFile(n,t,"utf-8"),await c.rename(n,e)}catch(s){throw await c.rm(n,{force:!0}).catch(()=>{}),s}}async function z(e,t){await k(e,j(t))}async function A(e,t){if(!e||!e.downloadUrl)return null;const r=String(e.downloadUrl).trim();if(!r)return null;let i=r;i.startsWith("/")&&(i=`${d}${i}`);const n=e.fileName&&String(e.fileName).trim()?String(e.fileName).trim():"skill-package.zip",s=a.join(t,n),o=w(d)||w();if(!o)throw new Error("runtime access token is required to download skill package");const l=await b.get(i,{responseType:"arraybuffer",headers:{"X-Runtime-Token":o}}),u=Buffer.from(l.data);if(await c.writeFile(s,u),e.sha256&&x("sha256").update(u).digest("hex")!==String(e.sha256).trim().toLowerCase())throw new Error("skill zip checksum mismatch");return{fileName:n,outputPath:s,bytes:u.length}}async function h(e,t){await new Promise((r,i)=>{const n=g(e,t,{stdio:["ignore","pipe","pipe"]});let s="";n.stderr?.on("data",o=>{s+=String(o||"")}),n.on("error",o=>{i(o)}),n.on("close",o=>{if(o!==0){i(new Error(s||`${e} exited with code ${o}`));return}r()})})}function y(e){return String(e||"").replace(/'/g,"''")}async function D(e,t){if(await c.rm(t,{recursive:!0,force:!0}),await c.mkdir(t,{recursive:!0}),process.platform==="win32"){const r=y(e),i=y(t);await h("powershell.exe",["-NoLogo","-NoProfile","-Command",`Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force`]);return}await h("unzip",["-o",e,"-d",t])}async function F(e){const r=(await c.readdir(e,{withFileTypes:!0})).filter(i=>!i.name.startsWith("."));return r.length===1&&r[0].isDirectory()?a.join(e,r[0].name):e}function B(e){const t=Array.isArray(e)?e:[],r=i=>t.includes(i);return{acode:r("acode"),claude:r("claude"),claudecode:r("claudecode"),codex:r("codex"),gemini:r("gemini"),opencode:r("opencode"),openclaw:r("openclaw")}}function q(e){const t=String(e?.sourceDir||e?.directory||e?.filePath||"").trim();if(!t)throw new Error("skill.sourceDir is required");return a.resolve(t)}async function M(e){if(!(await c.stat(e)).isDirectory())throw new Error(`not a directory: ${e}`)}async function Z(e,t,r,i){const n=await A(t,r);if(!n)return null;const s=a.join(r,`${a.parse(n.fileName).name}-${$()}`);await D(n.outputPath,s);const o=await F(s),l=String(t?.skillName||n.fileName||"").trim()||n.fileName,m=e.getAllSkills().find(S=>String(S?.name||"").trim()===l);return m?e.updateSkill(m.id,{name:l,apps:i}):e.installSkill({sourceDir:o,name:l,apps:i})}export{k as atomicWriteFile,z as atomicWriteJsonFile,A as downloadSkillZip,N as ensureDir,M as ensureDirectoryExists,y as escapePowerShellLiteral,D as extractSkillZip,Z as installSkillPackageToSdk,q as resolveSkillSourceDir,F as resolveSkillSourceDirFromExtractRoot,h as runCommand,j as stringifyStableJson,B as toSdkAppsFromEnabledTools,W as withFileLock};
|
|
3
|
+
|
|
@@ -1,63 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* 供 bridge + 后端共享调试。
|
|
6
|
-
*/
|
|
7
|
-
import fs from "node:fs/promises";
|
|
8
|
-
import path from "node:path";
|
|
9
|
-
import os from "node:os";
|
|
10
|
-
const DEBUG_LOG_PATH = path.join(os.userInfo().homedir, "Instance-ai-configuration-debug.log");
|
|
11
|
-
/**
|
|
12
|
-
* 调试日志记录器。
|
|
13
|
-
* 所有日志异步追加到固定文件,不阻塞主流程。
|
|
14
|
-
*/
|
|
15
|
-
export class InstanceAiConfigDebugLogger {
|
|
16
|
-
constructor(logPath = DEBUG_LOG_PATH) {
|
|
17
|
-
this.logPath = logPath;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* 写入一条调试日志。
|
|
21
|
-
* 格式:ISO时间 | level | 消息
|
|
22
|
-
*/
|
|
23
|
-
async log(entry) {
|
|
24
|
-
try {
|
|
25
|
-
const timestamp = new Date().toISOString();
|
|
26
|
-
const parts = [
|
|
27
|
-
`[${timestamp}]`,
|
|
28
|
-
`[${entry.level.toUpperCase()}]`,
|
|
29
|
-
`[${entry.source}]`,
|
|
30
|
-
`[${entry.category}]`,
|
|
31
|
-
entry.message,
|
|
32
|
-
];
|
|
33
|
-
if (entry.sessionId)
|
|
34
|
-
parts.push(`session=${entry.sessionId}`);
|
|
35
|
-
if (entry.agentId)
|
|
36
|
-
parts.push(`agent=${entry.agentId}`);
|
|
37
|
-
const line = parts.join(" ");
|
|
38
|
-
const detailLine = entry.details
|
|
39
|
-
? ` ${JSON.stringify(entry.details, null, 2)}`
|
|
40
|
-
: "";
|
|
41
|
-
await fs.appendFile(this.logPath, `${line}\n${detailLine ? `${detailLine}\n` : ""}`, "utf-8");
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
// 调试日志写入失败不阻塞主流程
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* 刷新日志(当前实现为无操作,追加写入天然实时落盘)。
|
|
49
|
-
*/
|
|
50
|
-
async flush() {
|
|
51
|
-
// appendFile 每次调用已保证落盘
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
let defaultLogger;
|
|
55
|
-
/**
|
|
56
|
-
* 获取全局单例的调试日志记录器。
|
|
57
|
-
*/
|
|
58
|
-
export function getInstanceAiConfigDebugLogger() {
|
|
59
|
-
if (!defaultLogger) {
|
|
60
|
-
defaultLogger = new InstanceAiConfigDebugLogger();
|
|
61
|
-
}
|
|
62
|
-
return defaultLogger;
|
|
63
|
-
}
|
|
1
|
+
import n from"node:fs/promises";import a from"node:path";import g from"node:os";const c=a.join(g.userInfo().homedir,"Instance-ai-configuration-debug.log");class l{constructor(s=c){this.logPath=s}async log(s){try{const o=[`[${new Date().toISOString()}]`,`[${s.level.toUpperCase()}]`,`[${s.source}]`,`[${s.category}]`,s.message];s.sessionId&&o.push(`session=${s.sessionId}`),s.agentId&&o.push(`agent=${s.agentId}`);const i=o.join(" "),e=s.details?` ${JSON.stringify(s.details,null,2)}`:"";await n.appendFile(this.logPath,`${i}
|
|
2
|
+
${e?`${e}
|
|
3
|
+
`:""}`,"utf-8")}catch{}}async flush(){}}let t;function d(){return t||(t=new l),t}export{l as InstanceAiConfigDebugLogger,d as getInstanceAiConfigDebugLogger};
|
|
4
|
+
|
package/dist/utils/logger.d.ts
CHANGED
package/dist/utils/logger.js
CHANGED
|
@@ -1,154 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* 提供结构化日志输出,支持不同日志级别和格式化
|
|
5
|
-
* 附带环形缓冲区,capture 最近 N 条日志供面板查看
|
|
6
|
-
*/
|
|
7
|
-
// ── 环形日志缓冲区 ──────────────────────────────────────
|
|
8
|
-
const MAX_LOG_ENTRIES = 500;
|
|
9
|
-
const logBuffer = [];
|
|
10
|
-
let logBufferEnabled = true;
|
|
11
|
-
/** 向缓冲区追加一条日志 */
|
|
12
|
-
export function pushLog(level, prefix, message) {
|
|
13
|
-
if (!logBufferEnabled)
|
|
14
|
-
return;
|
|
15
|
-
logBuffer.push({ level, timestamp: new Date().toISOString(), prefix, message });
|
|
16
|
-
if (logBuffer.length > MAX_LOG_ENTRIES) {
|
|
17
|
-
logBuffer.splice(0, logBuffer.length - MAX_LOG_ENTRIES);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* 返回缓冲区中最近的日志(按时间倒序)
|
|
22
|
-
* @param maxCount 最多返回条数
|
|
23
|
-
* @param filterLevel 可选级别过滤
|
|
24
|
-
*/
|
|
25
|
-
export function getRecentLogs(maxCount = 200, filterLevel) {
|
|
26
|
-
let entries = logBuffer;
|
|
27
|
-
if (filterLevel) {
|
|
28
|
-
const levels = ['debug', 'info', 'warn', 'error'];
|
|
29
|
-
const minIdx = levels.indexOf(filterLevel);
|
|
30
|
-
entries = entries.filter(e => levels.indexOf(e.level) >= minIdx);
|
|
31
|
-
}
|
|
32
|
-
return entries.slice(-maxCount).reverse();
|
|
33
|
-
}
|
|
34
|
-
/** 启用/禁用缓冲区(测试时使用) */
|
|
35
|
-
export function setLogBufferEnabled(enabled) {
|
|
36
|
-
logBufferEnabled = enabled;
|
|
37
|
-
}
|
|
38
|
-
/** 清空缓冲区 */
|
|
39
|
-
export function clearLogBuffer() {
|
|
40
|
-
logBuffer.length = 0;
|
|
41
|
-
}
|
|
42
|
-
const LOG_LEVEL_PRIORITY = {
|
|
43
|
-
debug: 0,
|
|
44
|
-
info: 1,
|
|
45
|
-
warn: 2,
|
|
46
|
-
error: 3,
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* 格式化时间戳
|
|
50
|
-
*/
|
|
51
|
-
function formatTimestamp() {
|
|
52
|
-
return new Date().toISOString();
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* 格式化日志参数
|
|
56
|
-
*/
|
|
57
|
-
function formatArgs(args) {
|
|
58
|
-
return args
|
|
59
|
-
.map((arg) => {
|
|
60
|
-
if (typeof arg === 'object' && arg !== null) {
|
|
61
|
-
try {
|
|
62
|
-
return JSON.stringify(arg, null, 2);
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return String(arg);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return String(arg);
|
|
69
|
-
})
|
|
70
|
-
.join(' ');
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* 日志器类
|
|
74
|
-
*/
|
|
75
|
-
export class Logger {
|
|
76
|
-
constructor(config = { level: 'info' }) {
|
|
77
|
-
this.level = config.level;
|
|
78
|
-
this.prefix = config.prefix || '';
|
|
79
|
-
this.timestamp = config.timestamp ?? true;
|
|
80
|
-
}
|
|
81
|
-
shouldLog(level) {
|
|
82
|
-
return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[this.level];
|
|
83
|
-
}
|
|
84
|
-
formatMessage(level, args) {
|
|
85
|
-
const parts = [];
|
|
86
|
-
if (this.timestamp) {
|
|
87
|
-
parts.push(`[${formatTimestamp()}]`);
|
|
88
|
-
}
|
|
89
|
-
parts.push(`[${level.toUpperCase()}]`);
|
|
90
|
-
if (this.prefix) {
|
|
91
|
-
parts.push(`[${this.prefix}]`);
|
|
92
|
-
}
|
|
93
|
-
parts.push(formatArgs(args));
|
|
94
|
-
return parts.join(' ');
|
|
95
|
-
}
|
|
96
|
-
debug(...args) {
|
|
97
|
-
if (this.shouldLog('debug')) {
|
|
98
|
-
const msg = this.formatMessage('debug', args);
|
|
99
|
-
console.debug(msg);
|
|
100
|
-
pushLog('debug', this.prefix, formatArgs(args));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
info(...args) {
|
|
104
|
-
if (this.shouldLog('info')) {
|
|
105
|
-
const msg = this.formatMessage('info', args);
|
|
106
|
-
console.info(msg);
|
|
107
|
-
pushLog('info', this.prefix, formatArgs(args));
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
warn(...args) {
|
|
111
|
-
if (this.shouldLog('warn')) {
|
|
112
|
-
const msg = this.formatMessage('warn', args);
|
|
113
|
-
console.warn(msg);
|
|
114
|
-
pushLog('warn', this.prefix, formatArgs(args));
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
error(...args) {
|
|
118
|
-
if (this.shouldLog('error')) {
|
|
119
|
-
const msg = this.formatMessage('error', args);
|
|
120
|
-
console.error(msg);
|
|
121
|
-
pushLog('error', this.prefix, formatArgs(args));
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* 创建子日志器
|
|
126
|
-
*/
|
|
127
|
-
child(prefix) {
|
|
128
|
-
return new Logger({
|
|
129
|
-
level: this.level,
|
|
130
|
-
prefix: this.prefix ? `${this.prefix}:${prefix}` : prefix,
|
|
131
|
-
timestamp: this.timestamp,
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// 默认日志器实例
|
|
136
|
-
const defaultLogger = new Logger({
|
|
137
|
-
level: process.env.LOG_LEVEL || 'info',
|
|
138
|
-
});
|
|
139
|
-
// 导出便捷方法
|
|
140
|
-
export const logger = {
|
|
141
|
-
debug: (...args) => defaultLogger.debug(...args),
|
|
142
|
-
info: (...args) => defaultLogger.info(...args),
|
|
143
|
-
warn: (...args) => defaultLogger.warn(...args),
|
|
144
|
-
error: (...args) => defaultLogger.error(...args),
|
|
145
|
-
child: (prefix) => defaultLogger.child(prefix),
|
|
146
|
-
};
|
|
147
|
-
// 创建带前缀的日志器
|
|
148
|
-
export function createLogger(prefix, config) {
|
|
149
|
-
return new Logger({
|
|
150
|
-
level: config?.level || process.env.LOG_LEVEL || 'info',
|
|
151
|
-
prefix,
|
|
152
|
-
timestamp: config?.timestamp,
|
|
153
|
-
});
|
|
154
|
-
}
|
|
1
|
+
const g=500,s=[];let u=!0;function f(t,e,r){u&&(s.push({level:t,timestamp:new Date().toISOString(),prefix:e,message:r}),s.length>500&&s.splice(0,s.length-500))}function m(t=200,e){let r=s;if(e){const o=["debug","info","warn","error"],p=o.indexOf(e);r=r.filter(c=>o.indexOf(c.level)>=p)}return r.slice(-t).reverse()}function d(t){u=t}function L(){s.length=0}const h={debug:0,info:1,warn:2,error:3};function a(){return new Date().toISOString()}function n(t){return t.map(e=>{if(typeof e=="object"&&e!==null)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}).join(" ")}class l{constructor(e={level:"info"}){this.level=e.level,this.prefix=e.prefix||"",this.timestamp=e.timestamp??!0}shouldLog(e){return h[e]>=h[this.level]}formatMessage(e,r){const o=[];return this.timestamp&&o.push(`[${a()}]`),o.push(`[${e.toUpperCase()}]`),this.prefix&&o.push(`[${this.prefix}]`),o.push(n(r)),o.join(" ")}debug(...e){if(this.shouldLog("debug")){const r=this.formatMessage("debug",e);console.debug(r),f("debug",this.prefix,n(e))}}info(...e){if(this.shouldLog("info")){const r=this.formatMessage("info",e);console.info(r),f("info",this.prefix,n(e))}}warn(...e){if(this.shouldLog("warn")){const r=this.formatMessage("warn",e);console.warn(r),f("warn",this.prefix,n(e))}}error(...e){if(this.shouldLog("error")){const r=this.formatMessage("error",e);console.error(r),f("error",this.prefix,n(e))}}child(e){return new l({level:this.level,prefix:this.prefix?`${this.prefix}:${e}`:e,timestamp:this.timestamp})}}const i=new l({level:process.env.LOG_LEVEL||"info"}),x={debug:(...t)=>i.debug(...t),info:(...t)=>i.info(...t),warn:(...t)=>i.warn(...t),error:(...t)=>i.error(...t),child:t=>i.child(t)};function w(t,e){return new l({level:e?.level||process.env.LOG_LEVEL||"info",prefix:t,timestamp:e?.timestamp})}export{l as Logger,L as clearLogBuffer,w as createLogger,m as getRecentLogs,x as logger,f as pushLog,d as setLogBufferEnabled};
|
|
2
|
+
|
package/dist/utils/mcp-utils.js
CHANGED
|
@@ -1,187 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
const claudecode = parseBoolean(apps.claudecode, false) || parseBoolean(apps.claude, false);
|
|
88
|
-
return {
|
|
89
|
-
acode: parseBoolean(apps.acode, false),
|
|
90
|
-
claude: false,
|
|
91
|
-
claudecode,
|
|
92
|
-
codex: parseBoolean(apps.codex, false),
|
|
93
|
-
gemini: parseBoolean(apps.gemini, false),
|
|
94
|
-
opencode: parseBoolean(apps.opencode, false),
|
|
95
|
-
openclaw: parseBoolean(apps.openclaw, false),
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* 规范化 SDK MCP 服务器规格
|
|
100
|
-
*
|
|
101
|
-
* @param rawMcp - 原始 MCP 配置
|
|
102
|
-
* @returns 规范化后的服务器配置
|
|
103
|
-
*/
|
|
104
|
-
export function normalizeSdkMcpServerSpec(rawMcp) {
|
|
105
|
-
const mcp = rawMcp && typeof rawMcp === 'object' ? rawMcp : {};
|
|
106
|
-
const baseServer = mcp.server && typeof mcp.server === 'object'
|
|
107
|
-
? mcp.server
|
|
108
|
-
: {};
|
|
109
|
-
const type = String(baseServer.type || mcp.transport || 'stdio').trim().toLowerCase();
|
|
110
|
-
const server = {
|
|
111
|
-
...baseServer,
|
|
112
|
-
type,
|
|
113
|
-
};
|
|
114
|
-
if (mcp.command != null && String(mcp.command).trim()) {
|
|
115
|
-
server.command = String(mcp.command).trim();
|
|
116
|
-
}
|
|
117
|
-
if (mcp.url != null && String(mcp.url).trim()) {
|
|
118
|
-
server.url = String(mcp.url).trim();
|
|
119
|
-
}
|
|
120
|
-
if (mcp.args != null) {
|
|
121
|
-
server.args = Array.isArray(mcp.args) ? mcp.args.map((item) => String(item)) : [];
|
|
122
|
-
}
|
|
123
|
-
if (mcp.env != null && typeof mcp.env === 'object') {
|
|
124
|
-
server.env = mcp.env;
|
|
125
|
-
}
|
|
126
|
-
if (mcp.headers != null && typeof mcp.headers === 'object') {
|
|
127
|
-
server.headers = mcp.headers;
|
|
128
|
-
}
|
|
129
|
-
return server;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* 转换为 Legacy MCP State Item
|
|
133
|
-
*
|
|
134
|
-
* @param mcpServer - SDK MCP 服务器对象
|
|
135
|
-
* @returns Legacy MCP State Item
|
|
136
|
-
*/
|
|
137
|
-
export function toLegacyMcpStateItem(mcpServer) {
|
|
138
|
-
const server = mcpServer?.server && typeof mcpServer.server === 'object' ? mcpServer.server : {};
|
|
139
|
-
const apps = mcpServer?.apps && typeof mcpServer.apps === 'object' ? mcpServer.apps : {};
|
|
140
|
-
return {
|
|
141
|
-
id: String(mcpServer?.id || randomUUID()),
|
|
142
|
-
name: String(mcpServer?.name || '').trim(),
|
|
143
|
-
transport: String(server.type || 'stdio').trim().toLowerCase(),
|
|
144
|
-
command: server.command == null ? '' : String(server.command),
|
|
145
|
-
url: server.url == null ? '' : String(server.url),
|
|
146
|
-
args: Array.isArray(server.args) ? server.args.map((item) => String(item)) : [],
|
|
147
|
-
env: server.env && typeof server.env === 'object' ? server.env : {},
|
|
148
|
-
enabled: Boolean(apps.acode || apps.claudecode || apps.codex || apps.gemini || apps.opencode || apps.openclaw),
|
|
149
|
-
apps: {
|
|
150
|
-
acode: Boolean(apps.acode),
|
|
151
|
-
claude: false,
|
|
152
|
-
claudecode: Boolean(apps.claudecode),
|
|
153
|
-
codex: Boolean(apps.codex),
|
|
154
|
-
gemini: Boolean(apps.gemini),
|
|
155
|
-
opencode: Boolean(apps.opencode),
|
|
156
|
-
openclaw: Boolean(apps.openclaw),
|
|
157
|
-
},
|
|
158
|
-
installedAt: new Date().toISOString(),
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* 转换为 Legacy Skill State Item
|
|
163
|
-
*
|
|
164
|
-
* @param skill - Skill 对象
|
|
165
|
-
* @returns Legacy Skill State Item
|
|
166
|
-
*/
|
|
167
|
-
export function toLegacySkillStateItem(skill) {
|
|
168
|
-
const directory = String(skill?.directory || skill?.sourceDir || skill?.filePath || '').trim();
|
|
169
|
-
const apps = skill?.apps && typeof skill.apps === 'object' ? skill.apps : {};
|
|
170
|
-
return {
|
|
171
|
-
id: String(skill?.id || randomUUID()),
|
|
172
|
-
name: String(skill?.name || path.basename(directory || 'skill')).trim(),
|
|
173
|
-
fileName: directory ? path.basename(directory) : '',
|
|
174
|
-
filePath: directory,
|
|
175
|
-
bytes: 0,
|
|
176
|
-
apps: {
|
|
177
|
-
acode: Boolean(apps.acode),
|
|
178
|
-
claude: false,
|
|
179
|
-
claudecode: Boolean(apps.claudecode),
|
|
180
|
-
codex: Boolean(apps.codex),
|
|
181
|
-
gemini: Boolean(apps.gemini),
|
|
182
|
-
opencode: Boolean(apps.opencode),
|
|
183
|
-
openclaw: Boolean(apps.openclaw),
|
|
184
|
-
},
|
|
185
|
-
installedAt: skill?.installedAt ? new Date(skill.installedAt).toISOString() : new Date().toISOString(),
|
|
186
|
-
};
|
|
187
|
-
}
|
|
1
|
+
import s from"node:path";import{randomUUID as c}from"node:crypto";import{parseBoolean as a}from"./validation.js";function u(n){const e=Array.isArray(n)?n:[],o={};for(const t of e){if(!t||!a(t.enabled,!0))continue;const r=String(t.name||"").trim();if(!r)continue;const i={transport:String(t.transport||"stdio").trim().toLowerCase()};t.command!=null&&String(t.command).trim()&&(i.command=String(t.command).trim()),t.url!=null&&String(t.url).trim()&&(i.url=String(t.url).trim()),t.args!=null&&(i.args=Array.isArray(t.args)?t.args:[]),t.env!=null&&typeof t.env=="object"&&(i.env=t.env),o[r]=i}return JSON.stringify({mcpServers:o},null,2)}function g(n){if(!n||typeof n!="object")return null;const e=n,o=String(e.name||"").trim();return o?{id:String(e.id||c()),name:o,transport:String(e.transport||"stdio").trim().toLowerCase(),command:e.command==null?"":String(e.command),url:e.url==null?"":String(e.url),args:Array.isArray(e.args)?e.args.map(t=>String(t)):[],env:e.env&&typeof e.env=="object"?e.env:{},enabled:a(e.enabled,!0),installedAt:e.installedAt||new Date().toISOString()}:null}function f(n){if(!n||typeof n!="object")return;const e=n,o=a(e.claudecode,!1)||a(e.claude,!1);return{acode:a(e.acode,!1),claude:!1,claudecode:o,codex:a(e.codex,!1),gemini:a(e.gemini,!1),opencode:a(e.opencode,!1),openclaw:a(e.openclaw,!1)}}function S(n){const e=n&&typeof n=="object"?n:{},o=e.server&&typeof e.server=="object"?e.server:{},t=String(o.type||e.transport||"stdio").trim().toLowerCase(),r={...o,type:t};return e.command!=null&&String(e.command).trim()&&(r.command=String(e.command).trim()),e.url!=null&&String(e.url).trim()&&(r.url=String(e.url).trim()),e.args!=null&&(r.args=Array.isArray(e.args)?e.args.map(l=>String(l)):[]),e.env!=null&&typeof e.env=="object"&&(r.env=e.env),e.headers!=null&&typeof e.headers=="object"&&(r.headers=e.headers),r}function y(n){const e=n?.server&&typeof n.server=="object"?n.server:{},o=n?.apps&&typeof n.apps=="object"?n.apps:{};return{id:String(n?.id||c()),name:String(n?.name||"").trim(),transport:String(e.type||"stdio").trim().toLowerCase(),command:e.command==null?"":String(e.command),url:e.url==null?"":String(e.url),args:Array.isArray(e.args)?e.args.map(t=>String(t)):[],env:e.env&&typeof e.env=="object"?e.env:{},enabled:!!(o.acode||o.claudecode||o.codex||o.gemini||o.opencode||o.openclaw),apps:{acode:!!o.acode,claude:!1,claudecode:!!o.claudecode,codex:!!o.codex,gemini:!!o.gemini,opencode:!!o.opencode,openclaw:!!o.openclaw},installedAt:new Date().toISOString()}}function v(n){const e=String(n?.directory||n?.sourceDir||n?.filePath||"").trim(),o=n?.apps&&typeof n.apps=="object"?n.apps:{};return{id:String(n?.id||c()),name:String(n?.name||s.basename(e||"skill")).trim(),fileName:e?s.basename(e):"",filePath:e,bytes:0,apps:{acode:!!o.acode,claude:!1,claudecode:!!o.claudecode,codex:!!o.codex,gemini:!!o.gemini,opencode:!!o.opencode,openclaw:!!o.openclaw},installedAt:n?.installedAt?new Date(n.installedAt).toISOString():new Date().toISOString()}}export{u as buildMcpConfigContent,g as normalizeMcpPayload,f as normalizeSdkAppFlags,S as normalizeSdkMcpServerSpec,y as toLegacyMcpStateItem,v as toLegacySkillStateItem};
|
|
2
|
+
|
|
@@ -21,4 +21,3 @@ export declare function resolveWorkspaceFilePath(workspacePath: string | unknown
|
|
|
21
21
|
* @returns 解析后的路径结果
|
|
22
22
|
*/
|
|
23
23
|
export declare function resolvePropertiesTargetPath(workspacePath: string | unknown, relativeOrAbsolutePath: string | unknown): PropertiesPathResult;
|
|
24
|
-
//# sourceMappingURL=path-utils.d.ts.map
|