aws-runtime-bridge 1.9.78 → 1.9.80
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 +0 -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 -2
- package/dist/services/windows-service-manager.js +2 -54
- 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
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
const SUB_AGENT_TOOL_DESCRIPTION = `Launch a new sub-agent to handle a task autonomously (non-blocking).
|
|
1
|
+
const d=`Launch a new sub-agent to handle a task autonomously (non-blocking).
|
|
3
2
|
|
|
4
3
|
Use this tool to:
|
|
5
4
|
1. Delegate research, exploration, or implementation work to a specialized sub-agent
|
|
@@ -21,79 +20,11 @@ Guidelines:
|
|
|
21
20
|
- Write a clear, self-contained prompt (the sub-agent starts with a fresh context)
|
|
22
21
|
- Launch multiple agents concurrently when possible (multiple tool calls in one message)
|
|
23
22
|
- Sub-agents cannot spawn further sub-agents (no nesting)
|
|
24
|
-
- Always call await_sub_agents before reporting completion to the user`;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
exposedName: "sub_agent",
|
|
30
|
-
description: SUB_AGENT_TOOL_DESCRIPTION,
|
|
31
|
-
inputSchema: {
|
|
32
|
-
type: "object",
|
|
33
|
-
properties: {
|
|
34
|
-
description: {
|
|
35
|
-
type: "string",
|
|
36
|
-
description: "A short (3-5 words) description of the task.",
|
|
37
|
-
},
|
|
38
|
-
prompt: {
|
|
39
|
-
type: "string",
|
|
40
|
-
description: "The task for the sub-agent to perform (self-contained, fresh context).",
|
|
41
|
-
},
|
|
42
|
-
subagent_type: {
|
|
43
|
-
type: "string",
|
|
44
|
-
enum: ["general", "explore"],
|
|
45
|
-
description: "Type of specialized agent: 'explore' (default) for read-only codebase exploration, 'general' for multi-step tasks (file ops, bash, etc.). When in doubt, use 'explore'.",
|
|
46
|
-
default: "explore",
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
required: ["description", "prompt"],
|
|
50
|
-
},
|
|
51
|
-
async execute(args) {
|
|
52
|
-
const description = typeof args.description === "string" ? args.description.trim() : "";
|
|
53
|
-
const prompt = typeof args.prompt === "string" ? args.prompt.trim() : "";
|
|
54
|
-
const subagentType = args.subagent_type || "explore";
|
|
55
|
-
if (!description) {
|
|
56
|
-
return {
|
|
57
|
-
title: "sub_agent validation error",
|
|
58
|
-
output: "Invalid input: 'description' is required and must be non-empty.",
|
|
59
|
-
metadata: { error: true },
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
if (!prompt) {
|
|
63
|
-
return {
|
|
64
|
-
title: "sub_agent validation error",
|
|
65
|
-
output: "Invalid input: 'prompt' is required and must be non-empty.",
|
|
66
|
-
metadata: { error: true },
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
if (subagentType !== "general" && subagentType !== "explore") {
|
|
70
|
-
return {
|
|
71
|
-
title: "sub_agent validation error",
|
|
72
|
-
output: `Invalid input: 'subagent_type' must be 'general' or 'explore', got '${subagentType}'.`,
|
|
73
|
-
metadata: { error: true },
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
try {
|
|
77
|
-
const { subId } = await deps.spawnSubAgent({ subagentType, description, prompt });
|
|
78
|
-
return {
|
|
79
|
-
title: description,
|
|
80
|
-
output: `sub_agent spawned: ${subId}\nstatus: pending\n\nCall await_sub_agents with this subId to get the result.\nCall get_sub_agent_status to check progress.`,
|
|
81
|
-
metadata: { subId, spawned: true },
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
catch (err) {
|
|
85
|
-
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
86
|
-
return {
|
|
87
|
-
title: description,
|
|
88
|
-
output: `Failed to spawn sub-agent: ${errorMessage}`,
|
|
89
|
-
metadata: { error: true },
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
// ==================== 工具 2: list_sub_agents ====================
|
|
96
|
-
const LIST_SUB_AGENTS_DESCRIPTION = `List all sub-agents for the current agent.
|
|
23
|
+
- Always call await_sub_agents before reporting completion to the user`;function c(o){return{kind:"builtin",toolName:"sub_agent",exposedName:"sub_agent",description:d,inputSchema:{type:"object",properties:{description:{type:"string",description:"A short (3-5 words) description of the task."},prompt:{type:"string",description:"The task for the sub-agent to perform (self-contained, fresh context)."},subagent_type:{type:"string",enum:["general","explore"],description:"Type of specialized agent: 'explore' (default) for read-only codebase exploration, 'general' for multi-step tasks (file ops, bash, etc.). When in doubt, use 'explore'.",default:"explore"}},required:["description","prompt"]},async execute(a){const n=typeof a.description=="string"?a.description.trim():"",t=typeof a.prompt=="string"?a.prompt.trim():"",s=a.subagent_type||"explore";if(!n)return{title:"sub_agent validation error",output:"Invalid input: 'description' is required and must be non-empty.",metadata:{error:!0}};if(!t)return{title:"sub_agent validation error",output:"Invalid input: 'prompt' is required and must be non-empty.",metadata:{error:!0}};if(s!=="general"&&s!=="explore")return{title:"sub_agent validation error",output:`Invalid input: 'subagent_type' must be 'general' or 'explore', got '${s}'.`,metadata:{error:!0}};try{const{subId:e}=await o.spawnSubAgent({subagentType:s,description:n,prompt:t});return{title:n,output:`sub_agent spawned: ${e}
|
|
24
|
+
status: pending
|
|
25
|
+
|
|
26
|
+
Call await_sub_agents with this subId to get the result.
|
|
27
|
+
Call get_sub_agent_status to check progress.`,metadata:{subId:e,spawned:!0}}}catch(e){const r=e instanceof Error?e.message:String(e);return{title:n,output:`Failed to spawn sub-agent: ${r}`,metadata:{error:!0}}}}}}const g=`List all sub-agents for the current agent.
|
|
97
28
|
|
|
98
29
|
Returns two arrays:
|
|
99
30
|
- running: sub-agents currently in pending/running state
|
|
@@ -102,63 +33,8 @@ Returns two arrays:
|
|
|
102
33
|
Use this to:
|
|
103
34
|
1. Check which sub-agents are still running
|
|
104
35
|
2. Review completed sub-agent history
|
|
105
|
-
3. Find a subId before calling await_sub_agents or get_sub_agent_status`;
|
|
106
|
-
|
|
107
|
-
return {
|
|
108
|
-
kind: "builtin",
|
|
109
|
-
toolName: "list_sub_agents",
|
|
110
|
-
exposedName: "list_sub_agents",
|
|
111
|
-
description: LIST_SUB_AGENTS_DESCRIPTION,
|
|
112
|
-
inputSchema: {
|
|
113
|
-
type: "object",
|
|
114
|
-
properties: {},
|
|
115
|
-
},
|
|
116
|
-
async execute(_args) {
|
|
117
|
-
try {
|
|
118
|
-
const { running, history } = await deps.listSubAgents();
|
|
119
|
-
const formatEntry = (e) => {
|
|
120
|
-
const duration = e.durationMs !== undefined
|
|
121
|
-
? `${(e.durationMs / 1000).toFixed(1)}s`
|
|
122
|
-
: e.endedAt
|
|
123
|
-
? `${((e.endedAt - e.startedAt) / 1000).toFixed(1)}s`
|
|
124
|
-
: "ongoing";
|
|
125
|
-
return ` - ${e.subId} [${e.status}] (${duration}) ${e.description}`;
|
|
126
|
-
};
|
|
127
|
-
const lines = [];
|
|
128
|
-
lines.push(`Running (${running.length}):`);
|
|
129
|
-
if (running.length === 0) {
|
|
130
|
-
lines.push(" (none)");
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
running.forEach((e) => lines.push(formatEntry(e)));
|
|
134
|
-
}
|
|
135
|
-
lines.push("");
|
|
136
|
-
lines.push(`History (${history.length}):`);
|
|
137
|
-
if (history.length === 0) {
|
|
138
|
-
lines.push(" (none)");
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
history.forEach((e) => lines.push(formatEntry(e)));
|
|
142
|
-
}
|
|
143
|
-
return {
|
|
144
|
-
title: "sub-agents list",
|
|
145
|
-
output: lines.join("\n"),
|
|
146
|
-
metadata: { runningCount: running.length, historyCount: history.length },
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
catch (err) {
|
|
150
|
-
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
151
|
-
return {
|
|
152
|
-
title: "list_sub_agents error",
|
|
153
|
-
output: `Failed to list sub-agents: ${errorMessage}`,
|
|
154
|
-
metadata: { error: true },
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
// ==================== 工具 3: get_sub_agent_status ====================
|
|
161
|
-
const GET_SUB_AGENT_STATUS_DESCRIPTION = `Get the current status and context snapshot of a sub-agent.
|
|
36
|
+
3. Find a subId before calling await_sub_agents or get_sub_agent_status`;function b(o){return{kind:"builtin",toolName:"list_sub_agents",exposedName:"list_sub_agents",description:g,inputSchema:{type:"object",properties:{}},async execute(a){try{const{running:n,history:t}=await o.listSubAgents(),s=r=>{const i=r.durationMs!==void 0?`${(r.durationMs/1e3).toFixed(1)}s`:r.endedAt?`${((r.endedAt-r.startedAt)/1e3).toFixed(1)}s`:"ongoing";return` - ${r.subId} [${r.status}] (${i}) ${r.description}`},e=[];return e.push(`Running (${n.length}):`),n.length===0?e.push(" (none)"):n.forEach(r=>e.push(s(r))),e.push(""),e.push(`History (${t.length}):`),t.length===0?e.push(" (none)"):t.forEach(r=>e.push(s(r))),{title:"sub-agents list",output:e.join(`
|
|
37
|
+
`),metadata:{runningCount:n.length,historyCount:t.length}}}catch(n){return{title:"list_sub_agents error",output:`Failed to list sub-agents: ${n instanceof Error?n.message:String(n)}`,metadata:{error:!0}}}}}}const h=`Get the current status and context snapshot of a sub-agent.
|
|
162
38
|
|
|
163
39
|
Returns:
|
|
164
40
|
- status: pending/running/completed/failed/cancelled
|
|
@@ -169,101 +45,9 @@ Returns:
|
|
|
169
45
|
- result: final output (if completed)
|
|
170
46
|
- error: error message (if failed)
|
|
171
47
|
|
|
172
|
-
Use this to check progress of a running sub-agent before awaiting it.`;
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
kind: "builtin",
|
|
176
|
-
toolName: "get_sub_agent_status",
|
|
177
|
-
exposedName: "get_sub_agent_status",
|
|
178
|
-
description: GET_SUB_AGENT_STATUS_DESCRIPTION,
|
|
179
|
-
inputSchema: {
|
|
180
|
-
type: "object",
|
|
181
|
-
properties: {
|
|
182
|
-
sub_id: {
|
|
183
|
-
type: "string",
|
|
184
|
-
description: "The sub-agent ID returned by sub_agent tool.",
|
|
185
|
-
},
|
|
186
|
-
},
|
|
187
|
-
required: ["sub_id"],
|
|
188
|
-
},
|
|
189
|
-
async execute(args) {
|
|
190
|
-
const subId = typeof args.sub_id === "string" ? args.sub_id.trim() : "";
|
|
191
|
-
if (!subId) {
|
|
192
|
-
return {
|
|
193
|
-
title: "get_sub_agent_status validation error",
|
|
194
|
-
output: "Invalid input: 'sub_id' is required.",
|
|
195
|
-
metadata: { error: true },
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
try {
|
|
199
|
-
const detail = await deps.getSubAgentStatus(subId);
|
|
200
|
-
if (!detail) {
|
|
201
|
-
return {
|
|
202
|
-
title: "sub-agent not found",
|
|
203
|
-
output: `sub-agent not found: ${subId}`,
|
|
204
|
-
metadata: { subId, error: true },
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
const lines = [];
|
|
208
|
-
lines.push(`subId: ${detail.subId}`);
|
|
209
|
-
lines.push(`type: ${detail.subagentType}`);
|
|
210
|
-
lines.push(`description: ${detail.description}`);
|
|
211
|
-
lines.push(`status: ${detail.status}`);
|
|
212
|
-
if (detail.startedAt) {
|
|
213
|
-
lines.push(`startedAt: ${new Date(detail.startedAt).toISOString()}`);
|
|
214
|
-
}
|
|
215
|
-
if (detail.endedAt) {
|
|
216
|
-
lines.push(`endedAt: ${new Date(detail.endedAt).toISOString()}`);
|
|
217
|
-
}
|
|
218
|
-
if (detail.durationMs !== undefined) {
|
|
219
|
-
lines.push(`duration: ${(detail.durationMs / 1000).toFixed(2)}s`);
|
|
220
|
-
}
|
|
221
|
-
if (detail.contextSnapshot) {
|
|
222
|
-
lines.push("");
|
|
223
|
-
lines.push("Context:");
|
|
224
|
-
if (detail.contextSnapshot.currentTool) {
|
|
225
|
-
lines.push(` currentTool: ${detail.contextSnapshot.currentTool}`);
|
|
226
|
-
}
|
|
227
|
-
if (detail.contextSnapshot.lastAssistantText) {
|
|
228
|
-
const text = detail.contextSnapshot.lastAssistantText;
|
|
229
|
-
lines.push(` lastOutput: ${text.length > 200 ? text.slice(-200) + "..." : text}`);
|
|
230
|
-
}
|
|
231
|
-
lines.push(` tokens: input=${detail.contextSnapshot.tokenUsage.input}, output=${detail.contextSnapshot.tokenUsage.output}`);
|
|
232
|
-
lines.push(` messages: ${detail.contextSnapshot.messageCount}`);
|
|
233
|
-
lines.push(` updatedAt: ${detail.contextSnapshot.updatedAt}`);
|
|
234
|
-
}
|
|
235
|
-
if (detail.result) {
|
|
236
|
-
lines.push("");
|
|
237
|
-
lines.push("Result:");
|
|
238
|
-
const result = detail.result;
|
|
239
|
-
lines.push(result.length > 500 ? result.slice(0, 500) + "\n... (truncated)" : result);
|
|
240
|
-
}
|
|
241
|
-
if (detail.errorMessage) {
|
|
242
|
-
lines.push("");
|
|
243
|
-
lines.push(`Error: ${detail.errorMessage}`);
|
|
244
|
-
}
|
|
245
|
-
return {
|
|
246
|
-
title: `status: ${detail.description}`,
|
|
247
|
-
output: lines.join("\n"),
|
|
248
|
-
metadata: {
|
|
249
|
-
subId: detail.subId,
|
|
250
|
-
status: detail.status,
|
|
251
|
-
},
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
catch (err) {
|
|
255
|
-
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
256
|
-
return {
|
|
257
|
-
title: "get_sub_agent_status error",
|
|
258
|
-
output: `Failed to get status: ${errorMessage}`,
|
|
259
|
-
metadata: { subId, error: true },
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
// ==================== 工具 4: await_sub_agents ====================
|
|
266
|
-
const AWAIT_SUB_AGENTS_DESCRIPTION = `Block and wait for one or more sub-agents to complete.
|
|
48
|
+
Use this to check progress of a running sub-agent before awaiting it.`;function m(o){return{kind:"builtin",toolName:"get_sub_agent_status",exposedName:"get_sub_agent_status",description:h,inputSchema:{type:"object",properties:{sub_id:{type:"string",description:"The sub-agent ID returned by sub_agent tool."}},required:["sub_id"]},async execute(a){const n=typeof a.sub_id=="string"?a.sub_id.trim():"";if(!n)return{title:"get_sub_agent_status validation error",output:"Invalid input: 'sub_id' is required.",metadata:{error:!0}};try{const t=await o.getSubAgentStatus(n);if(!t)return{title:"sub-agent not found",output:`sub-agent not found: ${n}`,metadata:{subId:n,error:!0}};const s=[];if(s.push(`subId: ${t.subId}`),s.push(`type: ${t.subagentType}`),s.push(`description: ${t.description}`),s.push(`status: ${t.status}`),t.startedAt&&s.push(`startedAt: ${new Date(t.startedAt).toISOString()}`),t.endedAt&&s.push(`endedAt: ${new Date(t.endedAt).toISOString()}`),t.durationMs!==void 0&&s.push(`duration: ${(t.durationMs/1e3).toFixed(2)}s`),t.contextSnapshot){if(s.push(""),s.push("Context:"),t.contextSnapshot.currentTool&&s.push(` currentTool: ${t.contextSnapshot.currentTool}`),t.contextSnapshot.lastAssistantText){const e=t.contextSnapshot.lastAssistantText;s.push(` lastOutput: ${e.length>200?e.slice(-200)+"...":e}`)}s.push(` tokens: input=${t.contextSnapshot.tokenUsage.input}, output=${t.contextSnapshot.tokenUsage.output}`),s.push(` messages: ${t.contextSnapshot.messageCount}`),s.push(` updatedAt: ${t.contextSnapshot.updatedAt}`)}if(t.result){s.push(""),s.push("Result:");const e=t.result;s.push(e.length>500?e.slice(0,500)+`
|
|
49
|
+
... (truncated)`:e)}return t.errorMessage&&(s.push(""),s.push(`Error: ${t.errorMessage}`)),{title:`status: ${t.description}`,output:s.join(`
|
|
50
|
+
`),metadata:{subId:t.subId,status:t.status}}}catch(t){return{title:"get_sub_agent_status error",output:`Failed to get status: ${t instanceof Error?t.message:String(t)}`,metadata:{subId:n,error:!0}}}}}}const f=`Block and wait for one or more sub-agents to complete.
|
|
267
51
|
|
|
268
52
|
Use this tool after spawning one or more sub-agents (via sub_agent) to get their results.
|
|
269
53
|
All specified sub-agents must complete (completed/failed/cancelled) before this returns.
|
|
@@ -279,92 +63,8 @@ Returns an array of results, each containing:
|
|
|
279
63
|
Guidelines:
|
|
280
64
|
- Pass all subIds you want to wait for in one call
|
|
281
65
|
- Use a timeout to avoid waiting forever (0 = no timeout, default 0)
|
|
282
|
-
- After this returns, call poll_message to receive any pending messages`;
|
|
283
|
-
|
|
284
|
-
return {
|
|
285
|
-
kind: "builtin",
|
|
286
|
-
toolName: "await_sub_agents",
|
|
287
|
-
exposedName: "await_sub_agents",
|
|
288
|
-
description: AWAIT_SUB_AGENTS_DESCRIPTION,
|
|
289
|
-
inputSchema: {
|
|
290
|
-
type: "object",
|
|
291
|
-
properties: {
|
|
292
|
-
sub_ids: {
|
|
293
|
-
type: "array",
|
|
294
|
-
items: { type: "string" },
|
|
295
|
-
description: "Array of sub-agent IDs to wait for.",
|
|
296
|
-
},
|
|
297
|
-
timeout_ms: {
|
|
298
|
-
type: "number",
|
|
299
|
-
description: "Maximum time to wait in milliseconds. 0 = no timeout (wait forever). Default: 0.",
|
|
300
|
-
},
|
|
301
|
-
},
|
|
302
|
-
required: ["sub_ids"],
|
|
303
|
-
},
|
|
304
|
-
async execute(args) {
|
|
305
|
-
const subIdsRaw = args.sub_ids;
|
|
306
|
-
const timeoutMs = typeof args.timeout_ms === "number" ? args.timeout_ms : 0;
|
|
307
|
-
if (!Array.isArray(subIdsRaw) || subIdsRaw.length === 0) {
|
|
308
|
-
return {
|
|
309
|
-
title: "await_sub_agents validation error",
|
|
310
|
-
output: "Invalid input: 'sub_ids' must be a non-empty array of sub-agent IDs.",
|
|
311
|
-
metadata: { error: true },
|
|
312
|
-
};
|
|
313
|
-
}
|
|
314
|
-
const subIds = subIdsRaw.filter((id) => typeof id === "string" && id.trim().length > 0);
|
|
315
|
-
if (subIds.length === 0) {
|
|
316
|
-
return {
|
|
317
|
-
title: "await_sub_agents validation error",
|
|
318
|
-
output: "Invalid input: 'sub_ids' contains no valid IDs.",
|
|
319
|
-
metadata: { error: true },
|
|
320
|
-
};
|
|
321
|
-
}
|
|
322
|
-
try {
|
|
323
|
-
const results = await deps.awaitSubAgents(subIds, timeoutMs);
|
|
324
|
-
const lines = [];
|
|
325
|
-
lines.push(`Awaited ${results.length} sub-agent(s):`);
|
|
326
|
-
lines.push("");
|
|
327
|
-
for (const r of results) {
|
|
328
|
-
lines.push(`=== ${r.subId} [${r.status}] ===`);
|
|
329
|
-
if (r.error) {
|
|
330
|
-
lines.push(`<task_error>`);
|
|
331
|
-
lines.push(r.error);
|
|
332
|
-
lines.push(`</task_error>`);
|
|
333
|
-
}
|
|
334
|
-
else {
|
|
335
|
-
lines.push(`<task_result>`);
|
|
336
|
-
lines.push(r.output || "(empty output)");
|
|
337
|
-
lines.push(`</task_result>`);
|
|
338
|
-
}
|
|
339
|
-
lines.push("");
|
|
340
|
-
}
|
|
341
|
-
const completedCount = results.filter((r) => r.status === "completed").length;
|
|
342
|
-
const failedCount = results.filter((r) => r.status === "failed").length;
|
|
343
|
-
const cancelledCount = results.filter((r) => r.status === "cancelled").length;
|
|
344
|
-
return {
|
|
345
|
-
title: `awaited ${results.length} sub-agent(s)`,
|
|
346
|
-
output: lines.join("\n"),
|
|
347
|
-
metadata: {
|
|
348
|
-
total: results.length,
|
|
349
|
-
completed: completedCount,
|
|
350
|
-
failed: failedCount,
|
|
351
|
-
cancelled: cancelledCount,
|
|
352
|
-
},
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
catch (err) {
|
|
356
|
-
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
357
|
-
return {
|
|
358
|
-
title: "await_sub_agents error",
|
|
359
|
-
output: `Failed to await sub-agents: ${errorMessage}`,
|
|
360
|
-
metadata: { error: true },
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
},
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
// ==================== 工具 5: abort_sub_agent ====================
|
|
367
|
-
const ABORT_SUB_AGENT_DESCRIPTION = `Abort a running sub-agent.
|
|
66
|
+
- After this returns, call poll_message to receive any pending messages`;function _(o){return{kind:"builtin",toolName:"await_sub_agents",exposedName:"await_sub_agents",description:f,inputSchema:{type:"object",properties:{sub_ids:{type:"array",items:{type:"string"},description:"Array of sub-agent IDs to wait for."},timeout_ms:{type:"number",description:"Maximum time to wait in milliseconds. 0 = no timeout (wait forever). Default: 0."}},required:["sub_ids"]},async execute(a){const n=a.sub_ids,t=typeof a.timeout_ms=="number"?a.timeout_ms:0;if(!Array.isArray(n)||n.length===0)return{title:"await_sub_agents validation error",output:"Invalid input: 'sub_ids' must be a non-empty array of sub-agent IDs.",metadata:{error:!0}};const s=n.filter(e=>typeof e=="string"&&e.trim().length>0);if(s.length===0)return{title:"await_sub_agents validation error",output:"Invalid input: 'sub_ids' contains no valid IDs.",metadata:{error:!0}};try{const e=await o.awaitSubAgents(s,t),r=[];r.push(`Awaited ${e.length} sub-agent(s):`),r.push("");for(const u of e)r.push(`=== ${u.subId} [${u.status}] ===`),u.error?(r.push("<task_error>"),r.push(u.error),r.push("</task_error>")):(r.push("<task_result>"),r.push(u.output||"(empty output)"),r.push("</task_result>")),r.push("");const i=e.filter(u=>u.status==="completed").length,l=e.filter(u=>u.status==="failed").length,p=e.filter(u=>u.status==="cancelled").length;return{title:`awaited ${e.length} sub-agent(s)`,output:r.join(`
|
|
67
|
+
`),metadata:{total:e.length,completed:i,failed:l,cancelled:p}}}catch(e){return{title:"await_sub_agents error",output:`Failed to await sub-agents: ${e instanceof Error?e.message:String(e)}`,metadata:{error:!0}}}}}}const y=`Abort a running sub-agent.
|
|
368
68
|
|
|
369
69
|
Use this to cancel a sub-agent that is taking too long or is no longer needed.
|
|
370
70
|
Only pending or running sub-agents can be aborted; completed/failed/cancelled are no-ops.
|
|
@@ -372,59 +72,5 @@ Only pending or running sub-agents can be aborted; completed/failed/cancelled ar
|
|
|
372
72
|
After abort:
|
|
373
73
|
- The sub-agent's status becomes 'cancelled'
|
|
374
74
|
- Its completionPromise resolves with error='aborted'
|
|
375
|
-
- Any await_sub_agents waiting on it will return immediately`;
|
|
376
|
-
|
|
377
|
-
return {
|
|
378
|
-
kind: "builtin",
|
|
379
|
-
toolName: "abort_sub_agent",
|
|
380
|
-
exposedName: "abort_sub_agent",
|
|
381
|
-
description: ABORT_SUB_AGENT_DESCRIPTION,
|
|
382
|
-
inputSchema: {
|
|
383
|
-
type: "object",
|
|
384
|
-
properties: {
|
|
385
|
-
sub_id: {
|
|
386
|
-
type: "string",
|
|
387
|
-
description: "The sub-agent ID to abort.",
|
|
388
|
-
},
|
|
389
|
-
},
|
|
390
|
-
required: ["sub_id"],
|
|
391
|
-
},
|
|
392
|
-
async execute(args) {
|
|
393
|
-
const subId = typeof args.sub_id === "string" ? args.sub_id.trim() : "";
|
|
394
|
-
if (!subId) {
|
|
395
|
-
return {
|
|
396
|
-
title: "abort_sub_agent validation error",
|
|
397
|
-
output: "Invalid input: 'sub_id' is required.",
|
|
398
|
-
metadata: { error: true },
|
|
399
|
-
};
|
|
400
|
-
}
|
|
401
|
-
try {
|
|
402
|
-
await deps.abortSubAgent(subId);
|
|
403
|
-
return {
|
|
404
|
-
title: "sub-agent aborted",
|
|
405
|
-
output: `sub-agent ${subId} has been aborted.`,
|
|
406
|
-
metadata: { subId, aborted: true },
|
|
407
|
-
};
|
|
408
|
-
}
|
|
409
|
-
catch (err) {
|
|
410
|
-
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
411
|
-
return {
|
|
412
|
-
title: "abort_sub_agent error",
|
|
413
|
-
output: `Failed to abort sub-agent: ${errorMessage}`,
|
|
414
|
-
metadata: { subId, error: true },
|
|
415
|
-
};
|
|
416
|
-
}
|
|
417
|
-
},
|
|
418
|
-
};
|
|
419
|
-
}
|
|
420
|
-
// ==================== 工厂函数:一次创建全部 5 个工具 ====================
|
|
421
|
-
/** 创建全部 5 个 sub-agent 工具(仅当注入了 SubAgentManager 时调用) */
|
|
422
|
-
export function createSubAgentTools(deps) {
|
|
423
|
-
return [
|
|
424
|
-
createSubAgentTool(deps),
|
|
425
|
-
createListSubAgentsTool(deps),
|
|
426
|
-
createGetSubAgentStatusTool(deps),
|
|
427
|
-
createAwaitSubAgentsTool(deps),
|
|
428
|
-
createAbortSubAgentTool(deps),
|
|
429
|
-
];
|
|
430
|
-
}
|
|
75
|
+
- Any await_sub_agents waiting on it will return immediately`;function w(o){return{kind:"builtin",toolName:"abort_sub_agent",exposedName:"abort_sub_agent",description:y,inputSchema:{type:"object",properties:{sub_id:{type:"string",description:"The sub-agent ID to abort."}},required:["sub_id"]},async execute(a){const n=typeof a.sub_id=="string"?a.sub_id.trim():"";if(!n)return{title:"abort_sub_agent validation error",output:"Invalid input: 'sub_id' is required.",metadata:{error:!0}};try{return await o.abortSubAgent(n),{title:"sub-agent aborted",output:`sub-agent ${n} has been aborted.`,metadata:{subId:n,aborted:!0}}}catch(t){return{title:"abort_sub_agent error",output:`Failed to abort sub-agent: ${t instanceof Error?t.message:String(t)}`,metadata:{subId:n,error:!0}}}}}}function x(o){return[c(o),b(o),m(o),_(o),w(o)]}export{w as createAbortSubAgentTool,_ as createAwaitSubAgentsTool,m as createGetSubAgentStatusTool,b as createListSubAgentsTool,c as createSubAgentTool,x as createSubAgentTools};
|
|
76
|
+
|
|
@@ -1,73 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { renameWithRetry } from "./fs-utils.js";
|
|
5
|
-
/**
|
|
6
|
-
* Todo JSON 文件存储,按 agentId 隔离。
|
|
7
|
-
* 文件路径:{homedir}/.acode/todos/{agentId}.json
|
|
8
|
-
*
|
|
9
|
-
* 路径与 bridge 现有 ~/.acode/cmd-dist/ 惯例一致,固定使用家目录:
|
|
10
|
-
* - 不依赖 agent 工作目录,避免 workspacePath 错误时读取失败
|
|
11
|
-
* - todo 跟随 agent(agentId),不跟随项目工作区
|
|
12
|
-
*
|
|
13
|
-
* 并发安全:同一 TodoStore 实例的写操作通过 Promise 链串行化,
|
|
14
|
-
* 避免同一 agentId 的并发 todo_write 互相覆盖。
|
|
15
|
-
* 写入采用 tmp + rename 原子替换,防止半写损坏。
|
|
16
|
-
* (rename 在 Windows 上目标被打开时会 EPERM,使用 renameWithRetry 短退避重试)
|
|
17
|
-
*/
|
|
18
|
-
export class TodoStore {
|
|
19
|
-
constructor() {
|
|
20
|
-
this.writeChain = Promise.resolve();
|
|
21
|
-
this.todosDir = path.join(os.homedir(), ".acode", "todos");
|
|
22
|
-
}
|
|
23
|
-
/** 文件路径(按 agentId 隔离) */
|
|
24
|
-
filePath(agentId) {
|
|
25
|
-
// 防止路径穿越:仅允许字母数字下划线短横
|
|
26
|
-
const safe = String(agentId).replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
27
|
-
return path.join(this.todosDir, `${safe}.json`);
|
|
28
|
-
}
|
|
29
|
-
/** 读取该 agentId 的 todo 文档。文件不存在或损坏时返回空文档。 */
|
|
30
|
-
async read(agentId) {
|
|
31
|
-
const empty = { agentId, updatedAt: "", background: "", todos: [] };
|
|
32
|
-
try {
|
|
33
|
-
const raw = await fs.readFile(this.filePath(agentId), "utf-8");
|
|
34
|
-
const doc = JSON.parse(raw);
|
|
35
|
-
return {
|
|
36
|
-
agentId,
|
|
37
|
-
updatedAt: typeof doc.updatedAt === "string" ? doc.updatedAt : "",
|
|
38
|
-
background: typeof doc.background === "string" ? doc.background : "",
|
|
39
|
-
todos: Array.isArray(doc.todos) ? doc.todos : [],
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
if (err && err.code === "ENOENT")
|
|
44
|
-
return empty;
|
|
45
|
-
// JSON 解析错误也返回空,避免损坏文件阻断读取
|
|
46
|
-
if (err instanceof SyntaxError)
|
|
47
|
-
return empty;
|
|
48
|
-
throw err;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/** 全量替换该 agentId 的 todo 文档(background + todos)。串行化以避免并发覆盖。 */
|
|
52
|
-
async write(agentId, background, todos) {
|
|
53
|
-
const target = this.filePath(agentId);
|
|
54
|
-
const run = this.writeChain.then(async () => {
|
|
55
|
-
await fs.mkdir(this.todosDir, { recursive: true });
|
|
56
|
-
const doc = {
|
|
57
|
-
agentId,
|
|
58
|
-
updatedAt: new Date().toISOString(),
|
|
59
|
-
background,
|
|
60
|
-
todos,
|
|
61
|
-
};
|
|
62
|
-
const tmp = `${target}.tmp`;
|
|
63
|
-
await fs.writeFile(tmp, JSON.stringify(doc, null, 2), "utf-8");
|
|
64
|
-
// ★ Windows 上 fs.rename 目标被 reader 打开时会 EPERM/EBUSY/EACCES,
|
|
65
|
-
// 瞬时错误,短退避后重试通常即可成功(reader 已释放 fd)。
|
|
66
|
-
// POSIX 上 rename 原子,不会触发此类错误。
|
|
67
|
-
await renameWithRetry(tmp, target);
|
|
68
|
-
});
|
|
69
|
-
// 维持链式串行,但不让单次失败阻断后续写
|
|
70
|
-
this.writeChain = run.catch(() => { });
|
|
71
|
-
await run;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
1
|
+
import{promises as e}from"node:fs";import d from"node:os";import n from"node:path";import{renameWithRetry as h}from"./fs-utils.js";class y{constructor(){this.writeChain=Promise.resolve(),this.todosDir=n.join(d.homedir(),".acode","todos")}filePath(r){const i=String(r).replace(/[^a-zA-Z0-9_-]/g,"_");return n.join(this.todosDir,`${i}.json`)}async read(r){const i={agentId:r,updatedAt:"",background:"",todos:[]};try{const o=await e.readFile(this.filePath(r),"utf-8"),t=JSON.parse(o);return{agentId:r,updatedAt:typeof t.updatedAt=="string"?t.updatedAt:"",background:typeof t.background=="string"?t.background:"",todos:Array.isArray(t.todos)?t.todos:[]}}catch(o){if(o&&o.code==="ENOENT"||o instanceof SyntaxError)return i;throw o}}async write(r,i,o){const t=this.filePath(r),s=this.writeChain.then(async()=>{await e.mkdir(this.todosDir,{recursive:!0});const c={agentId:r,updatedAt:new Date().toISOString(),background:i,todos:o},a=`${t}.tmp`;await e.writeFile(a,JSON.stringify(c,null,2),"utf-8"),await h(a,t)});this.writeChain=s.catch(()=>{}),await s}}export{y as TodoStore};
|
|
2
|
+
|
|
@@ -3,4 +3,3 @@ import type { ACodeBuiltInTool } from "./built-in-file-tools.js";
|
|
|
3
3
|
export declare function createTodoWriteTool(agentId: string): ACodeBuiltInTool;
|
|
4
4
|
/** 创建 todo_read 工具(读取该 agent 的 todo 列表,含整体 background) */
|
|
5
5
|
export declare function createTodoReadTool(agentId: string): ACodeBuiltInTool;
|
|
6
|
-
//# sourceMappingURL=todo-tool.d.ts.map
|