aws-runtime-bridge 1.9.33 → 1.9.41
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 +66 -5
- package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/AcodeSdkAdapter.js +771 -69
- package/dist/adapter/ClaudeSdkAdapter.d.ts +6 -0
- package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/ClaudeSdkAdapter.js +24 -1
- package/dist/adapter/OpencodeSdkAdapter.d.ts +19 -0
- package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/OpencodeSdkAdapter.js +62 -0
- package/dist/adapter/idle-poll-loop.d.ts +2 -1
- package/dist/adapter/idle-poll-loop.d.ts.map +1 -1
- package/dist/adapter/types.d.ts +86 -9
- package/dist/adapter/types.d.ts.map +1 -1
- package/dist/adapter/types.js +15 -5
- package/dist/index.js +15 -0
- package/dist/routes/acode-todos.d.ts +11 -0
- package/dist/routes/acode-todos.d.ts.map +1 -0
- package/dist/routes/acode-todos.js +75 -0
- package/dist/routes/ai-sources.js +4 -1
- package/dist/routes/dashboard.d.ts.map +1 -1
- package/dist/routes/dashboard.js +1 -1
- package/dist/routes/memory.d.ts +1 -1
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/memory.js +3 -3
- package/dist/routes/pty.d.ts.map +1 -1
- package/dist/routes/pty.js +9 -0
- package/dist/routes/runtime-binding.d.ts.map +1 -1
- package/dist/routes/runtime-binding.js +6 -3
- package/dist/routes/sessions.js +89 -4
- package/dist/routes/sub-agents.d.ts +14 -0
- package/dist/routes/sub-agents.d.ts.map +1 -0
- package/dist/routes/sub-agents.js +267 -0
- package/dist/routes/terminal.d.ts +12 -1
- package/dist/routes/terminal.d.ts.map +1 -1
- package/dist/routes/terminal.js +326 -24
- package/dist/services/acode-package.d.ts +8 -1
- package/dist/services/acode-package.d.ts.map +1 -1
- package/dist/services/acode-package.js +33 -4
- package/dist/services/agent-event-store.d.ts +1 -0
- package/dist/services/agent-event-store.d.ts.map +1 -1
- package/dist/services/aws-client-agent-mcp.d.ts.map +1 -1
- package/dist/services/aws-client-agent-mcp.js +11 -4
- package/dist/services/event-delta-pusher.js +4 -4
- package/dist/services/fileSnapshotStore.js +1 -1
- package/dist/services/legacy-path-migration.d.ts +3 -0
- package/dist/services/legacy-path-migration.d.ts.map +1 -0
- package/dist/services/legacy-path-migration.js +66 -0
- package/dist/services/lifecycle-state.d.ts.map +1 -1
- package/dist/services/lifecycle-state.js +1 -1
- package/dist/services/runtime-binding.d.ts +5 -0
- package/dist/services/runtime-binding.d.ts.map +1 -1
- package/dist/services/runtime-binding.js +33 -1
- package/dist/services/session-output.d.ts +10 -1
- package/dist/services/session-output.d.ts.map +1 -1
- package/dist/services/session-output.js +54 -4
- package/dist/services/sub-agent-manager-instance.d.ts +4 -0
- package/dist/services/sub-agent-manager-instance.d.ts.map +1 -0
- package/dist/services/sub-agent-manager-instance.js +12 -0
- package/dist/services/workspace-files.d.ts +1 -0
- package/dist/services/workspace-files.d.ts.map +1 -1
- package/dist/services/workspace-files.js +57 -1
- package/package/acode/dist/ask-user-question-tool.d.ts +47 -0
- package/package/acode/dist/ask-user-question-tool.d.ts.map +1 -0
- package/package/acode/dist/ask-user-question-tool.js +233 -0
- package/package/acode/dist/built-in-file-tools.d.ts +2 -0
- package/package/acode/dist/built-in-file-tools.d.ts.map +1 -1
- package/package/acode/dist/built-in-file-tools.js +504 -3
- package/package/acode/dist/compaction.d.ts +242 -0
- package/package/acode/dist/compaction.d.ts.map +1 -0
- package/package/acode/dist/compaction.js +919 -0
- package/package/acode/dist/config.d.ts +6 -1
- package/package/acode/dist/config.d.ts.map +1 -1
- package/package/acode/dist/config.js +27 -2
- package/package/acode/dist/index.d.ts +4 -0
- package/package/acode/dist/index.d.ts.map +1 -1
- package/package/acode/dist/index.js +4 -0
- package/package/acode/dist/runtime.d.ts +257 -0
- package/package/acode/dist/runtime.d.ts.map +1 -1
- package/package/acode/dist/runtime.js +1843 -191
- package/package/acode/dist/skill-tool.d.ts +30 -0
- package/package/acode/dist/skill-tool.d.ts.map +1 -0
- package/package/acode/dist/skill-tool.js +174 -0
- package/package/acode/dist/sub-agent-manager.d.ts +264 -0
- package/package/acode/dist/sub-agent-manager.d.ts.map +1 -0
- package/package/acode/dist/sub-agent-manager.js +825 -0
- package/package/acode/dist/sub-agent-store.d.ts +40 -0
- package/package/acode/dist/sub-agent-store.d.ts.map +1 -0
- package/package/acode/dist/sub-agent-store.js +164 -0
- package/package/acode/dist/sub-agent-tools.d.ts +72 -0
- package/package/acode/dist/sub-agent-tools.d.ts.map +1 -0
- package/package/acode/dist/sub-agent-tools.js +429 -0
- package/package/acode/dist/sub-agent-types.d.ts +85 -0
- package/package/acode/dist/sub-agent-types.d.ts.map +1 -0
- package/package/acode/dist/sub-agent-types.js +8 -0
- package/package/acode/dist/todo-store.d.ts +42 -0
- package/package/acode/dist/todo-store.d.ts.map +1 -0
- package/package/acode/dist/todo-store.js +68 -0
- package/package/acode/dist/todo-tool.d.ts +6 -0
- package/package/acode/dist/todo-tool.d.ts.map +1 -0
- package/package/acode/dist/todo-tool.js +138 -0
- package/package/acode/dist/types.d.ts +41 -1
- package/package/acode/dist/types.d.ts.map +1 -1
- package/package/acode/package.json +13 -2
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts +9 -0
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/agent-client.js +69 -10
- package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.js +4 -0
- package/package/aws-client-agent-mcp/dist/config.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/constants.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/constants.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/constants.js +3 -1
- package/package/aws-client-agent-mcp/dist/constants.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/context-manager.d.ts +4 -1
- package/package/aws-client-agent-mcp/dist/context-manager.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/context-manager.js +6 -2
- package/package/aws-client-agent-mcp/dist/context-manager.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/context-manager.test.js +5 -3
- package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.d.ts +5 -0
- package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.js +15 -1
- package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +162 -71
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.js +1007 -504
- package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js +371 -253
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +6 -17
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.js +20 -75
- package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts +45 -45
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-store.js +114 -162
- package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-store.test.js +175 -164
- package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +3 -9
- package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.js +31 -58
- package/package/aws-client-agent-mcp/dist/memory-tools.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +40 -9
- package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.js +123 -23
- package/package/aws-client-agent-mcp/dist/message-buffer.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +13 -13
- package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.js +23 -16
- package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.js +8 -5
- package/package/aws-client-agent-mcp/dist/status-reporter.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js +93 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/types.d.ts +12 -25
- package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/types.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +34 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.js +146 -18
- package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -1
- package/package.json +17 -7
- package/dist/adapter/AcodeSdkAdapter.test.d.ts +0 -2
- package/dist/adapter/AcodeSdkAdapter.test.d.ts.map +0 -1
- package/dist/adapter/AcodeSdkAdapter.test.js +0 -2000
- package/dist/adapter/AdapterRegistry.test.d.ts +0 -5
- package/dist/adapter/AdapterRegistry.test.d.ts.map +0 -1
- package/dist/adapter/AdapterRegistry.test.js +0 -118
- package/dist/adapter/ClaudeSdkAdapter.test.d.ts +0 -2
- package/dist/adapter/ClaudeSdkAdapter.test.d.ts.map +0 -1
- package/dist/adapter/ClaudeSdkAdapter.test.js +0 -311
- package/dist/adapter/CodexSdkAdapter.test.d.ts +0 -2
- package/dist/adapter/CodexSdkAdapter.test.d.ts.map +0 -1
- package/dist/adapter/CodexSdkAdapter.test.js +0 -270
- package/dist/adapter/OpencodeSdkAdapter.test.d.ts +0 -2
- package/dist/adapter/OpencodeSdkAdapter.test.d.ts.map +0 -1
- package/dist/adapter/OpencodeSdkAdapter.test.js +0 -158
- package/dist/adapter/acode-tool-names.test.d.ts +0 -2
- package/dist/adapter/acode-tool-names.test.d.ts.map +0 -1
- package/dist/adapter/acode-tool-names.test.js +0 -28
- package/dist/adapter/adapter.test.d.ts +0 -5
- package/dist/adapter/adapter.test.d.ts.map +0 -1
- package/dist/adapter/adapter.test.js +0 -180
- package/dist/adapter/idle-poll-loop.test.d.ts +0 -2
- package/dist/adapter/idle-poll-loop.test.d.ts.map +0 -1
- package/dist/adapter/idle-poll-loop.test.js +0 -85
- package/dist/adapter/types.test.d.ts +0 -2
- package/dist/adapter/types.test.d.ts.map +0 -1
- package/dist/adapter/types.test.js +0 -50
- package/dist/adapters/cc-switch/mcp-acode.test.d.ts +0 -2
- package/dist/adapters/cc-switch/mcp-acode.test.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-acode.test.js +0 -80
- package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts +0 -2
- package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-claudecode.test.js +0 -75
- package/dist/adapters/cc-switch/mcp-codex.test.d.ts +0 -2
- package/dist/adapters/cc-switch/mcp-codex.test.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-codex.test.js +0 -126
- package/dist/adapters/cc-switch/mcp-opencode.test.d.ts +0 -2
- package/dist/adapters/cc-switch/mcp-opencode.test.d.ts.map +0 -1
- package/dist/adapters/cc-switch/mcp-opencode.test.js +0 -62
- package/dist/adapters/cc-switch/skill-directory.test.d.ts +0 -2
- package/dist/adapters/cc-switch/skill-directory.test.d.ts.map +0 -1
- package/dist/adapters/cc-switch/skill-directory.test.js +0 -74
- package/dist/config.test.d.ts +0 -2
- package/dist/config.test.d.ts.map +0 -1
- package/dist/config.test.js +0 -107
- package/dist/routes/ai-sources.test.d.ts +0 -2
- package/dist/routes/ai-sources.test.d.ts.map +0 -1
- package/dist/routes/ai-sources.test.js +0 -169
- package/dist/routes/file-browser.test.d.ts +0 -5
- package/dist/routes/file-browser.test.d.ts.map +0 -1
- package/dist/routes/file-browser.test.js +0 -155
- package/dist/routes/git.test.d.ts +0 -2
- package/dist/routes/git.test.d.ts.map +0 -1
- package/dist/routes/git.test.js +0 -330
- package/dist/routes/instance.test.d.ts +0 -5
- package/dist/routes/instance.test.d.ts.map +0 -1
- package/dist/routes/instance.test.js +0 -389
- package/dist/routes/mcp.test.d.ts +0 -5
- package/dist/routes/mcp.test.d.ts.map +0 -1
- package/dist/routes/mcp.test.js +0 -92
- package/dist/routes/memory-route-wiring.test.d.ts +0 -2
- package/dist/routes/memory-route-wiring.test.d.ts.map +0 -1
- package/dist/routes/memory-route-wiring.test.js +0 -15
- package/dist/routes/memory.test.d.ts +0 -2
- package/dist/routes/memory.test.d.ts.map +0 -1
- package/dist/routes/memory.test.js +0 -177
- package/dist/routes/properties.test.d.ts +0 -5
- package/dist/routes/properties.test.d.ts.map +0 -1
- package/dist/routes/properties.test.js +0 -72
- package/dist/routes/pty.test.d.ts +0 -2
- package/dist/routes/pty.test.d.ts.map +0 -1
- package/dist/routes/pty.test.js +0 -82
- package/dist/routes/runtime-binding.test.d.ts +0 -2
- package/dist/routes/runtime-binding.test.d.ts.map +0 -1
- package/dist/routes/runtime-binding.test.js +0 -32
- package/dist/routes/sessions.test.d.ts +0 -5
- package/dist/routes/sessions.test.d.ts.map +0 -1
- package/dist/routes/sessions.test.js +0 -86
- package/dist/routes/skills.test.d.ts +0 -5
- package/dist/routes/skills.test.d.ts.map +0 -1
- package/dist/routes/skills.test.js +0 -50
- package/dist/routes/system-metrics.test.d.ts +0 -2
- package/dist/routes/system-metrics.test.d.ts.map +0 -1
- package/dist/routes/system-metrics.test.js +0 -16
- package/dist/routes/terminal.stop-options.test.d.ts +0 -2
- package/dist/routes/terminal.stop-options.test.d.ts.map +0 -1
- package/dist/routes/terminal.stop-options.test.js +0 -39
- package/dist/routes/terminal.test.d.ts +0 -2
- package/dist/routes/terminal.test.d.ts.map +0 -1
- package/dist/routes/terminal.test.js +0 -746
- package/dist/routes/yml.test.d.ts +0 -5
- package/dist/routes/yml.test.d.ts.map +0 -1
- package/dist/routes/yml.test.js +0 -58
- package/dist/services/ai-source-apply.test.d.ts +0 -2
- package/dist/services/ai-source-apply.test.d.ts.map +0 -1
- package/dist/services/ai-source-apply.test.js +0 -138
- package/dist/services/auto-register.test.d.ts +0 -2
- package/dist/services/auto-register.test.d.ts.map +0 -1
- package/dist/services/auto-register.test.js +0 -184
- package/dist/services/aws-client-agent-mcp.test.d.ts +0 -2
- package/dist/services/aws-client-agent-mcp.test.d.ts.map +0 -1
- package/dist/services/aws-client-agent-mcp.test.js +0 -242
- package/dist/services/bridge-package-publish-hooks.test.d.ts +0 -2
- package/dist/services/bridge-package-publish-hooks.test.d.ts.map +0 -1
- package/dist/services/bridge-package-publish-hooks.test.js +0 -136
- package/dist/services/cc-switch-discovery.test.d.ts +0 -2
- package/dist/services/cc-switch-discovery.test.d.ts.map +0 -1
- package/dist/services/cc-switch-discovery.test.js +0 -56
- package/dist/services/cli-commands.test.d.ts +0 -2
- package/dist/services/cli-commands.test.d.ts.map +0 -1
- package/dist/services/cli-commands.test.js +0 -230
- package/dist/services/instance-init-service.test.d.ts +0 -2
- package/dist/services/instance-init-service.test.d.ts.map +0 -1
- package/dist/services/instance-init-service.test.js +0 -140
- package/dist/services/instance-state.test.d.ts +0 -2
- package/dist/services/instance-state.test.d.ts.map +0 -1
- package/dist/services/instance-state.test.js +0 -245
- package/dist/services/mcp-launch-binding-queue.test.d.ts +0 -2
- package/dist/services/mcp-launch-binding-queue.test.d.ts.map +0 -1
- package/dist/services/mcp-launch-binding-queue.test.js +0 -181
- package/dist/services/runtime-binding.test.d.ts +0 -2
- package/dist/services/runtime-binding.test.d.ts.map +0 -1
- package/dist/services/runtime-binding.test.js +0 -78
- package/dist/services/runtime-lifecycle-policy.test.d.ts +0 -2
- package/dist/services/runtime-lifecycle-policy.test.d.ts.map +0 -1
- package/dist/services/runtime-lifecycle-policy.test.js +0 -41
- package/dist/services/session-output.test.d.ts +0 -5
- package/dist/services/session-output.test.d.ts.map +0 -1
- package/dist/services/session-output.test.js +0 -177
- package/dist/services/startup-config-wizard.test.d.ts +0 -2
- package/dist/services/startup-config-wizard.test.d.ts.map +0 -1
- package/dist/services/startup-config-wizard.test.js +0 -184
- package/dist/services/terminal-persistence.test.d.ts +0 -5
- package/dist/services/terminal-persistence.test.d.ts.map +0 -1
- package/dist/services/terminal-persistence.test.js +0 -159
- package/dist/services/tool-installer.test.d.ts +0 -2
- package/dist/services/tool-installer.test.d.ts.map +0 -1
- package/dist/services/tool-installer.test.js +0 -225
- package/dist/services/workspace-files.test.d.ts +0 -2
- package/dist/services/workspace-files.test.d.ts.map +0 -1
- package/dist/services/workspace-files.test.js +0 -648
- package/dist/services/workspace-watch.test.d.ts +0 -2
- package/dist/services/workspace-watch.test.d.ts.map +0 -1
- package/dist/services/workspace-watch.test.js +0 -38
- package/dist/utils/file-utils.test.d.ts +0 -2
- package/dist/utils/file-utils.test.d.ts.map +0 -1
- package/dist/utils/file-utils.test.js +0 -244
- package/dist/utils/logger.test.d.ts +0 -2
- package/dist/utils/logger.test.d.ts.map +0 -1
- package/dist/utils/logger.test.js +0 -93
- package/dist/utils/sdk-package-loader.test.d.ts +0 -2
- package/dist/utils/sdk-package-loader.test.d.ts.map +0 -1
- package/dist/utils/sdk-package-loader.test.js +0 -84
- package/dist/utils/validation.test.d.ts +0 -2
- package/dist/utils/validation.test.d.ts.map +0 -1
- package/dist/utils/validation.test.js +0 -88
- package/dist/utils/yaml-utils.test.d.ts +0 -2
- package/dist/utils/yaml-utils.test.d.ts.map +0 -1
- package/dist/utils/yaml-utils.test.js +0 -363
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-client-agent-mcp.d.ts","sourceRoot":"","sources":["../../src/services/aws-client-agent-mcp.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAqB7C,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,sCAAsC;IACrD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,sCAAsC;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAaD,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC3C;AAuBD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAgLD,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,sCAA2C,GACnD,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"aws-client-agent-mcp.d.ts","sourceRoot":"","sources":["../../src/services/aws-client-agent-mcp.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAqB7C,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,sCAAsC;IACrD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,sCAAsC;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAaD,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC3C;AAuBD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAgLD,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,sCAA2C,GACnD,MAAM,GAAG,IAAI,CA+Df;AAgGD,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,sCAA2C,GACnD,kBAAkB,CAEpB;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,sCAA2C,GACnD,kBAAkB,CAsBpB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CAsBpB;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAgBtD"}
|
|
@@ -172,13 +172,20 @@ function shouldRefreshReleasedMcp(releasedEntry, manifest, nextManifest) {
|
|
|
172
172
|
}
|
|
173
173
|
export function releaseBundledAwsClientAgentMcp(options = {}) {
|
|
174
174
|
const packageRoot = options.packageRoot || getPackageRoot();
|
|
175
|
-
const releasedRoot = options.releasedRoot || getReleasedMcpRoot();
|
|
176
175
|
const bundledDist = path.dirname(getBundledEntryPath(packageRoot));
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
if (!existsSync(path.join(bundledDist, "index.js"))) {
|
|
176
|
+
const bundledEntry = path.join(bundledDist, "index.js");
|
|
177
|
+
if (!existsSync(bundledEntry)) {
|
|
180
178
|
return null;
|
|
181
179
|
}
|
|
180
|
+
// 本地开发模式:直接使用项目下 dist,无需复制
|
|
181
|
+
if (existsSync(path.join(packageRoot, "src"))) {
|
|
182
|
+
logger.info(`[runtime-bridge] ${AWS_MCP_SERVER_NAME} MCP 本地开发模式,直接使用项目 dist: ${bundledEntry}`);
|
|
183
|
+
return bundledEntry;
|
|
184
|
+
}
|
|
185
|
+
// 部署模式:复制到 ~/.aws-bridge/mcp
|
|
186
|
+
const releasedRoot = options.releasedRoot || getReleasedMcpRoot();
|
|
187
|
+
const releasedDist = path.join(releasedRoot, "dist");
|
|
188
|
+
const releasedEntry = path.join(releasedDist, "index.js");
|
|
182
189
|
const nextManifest = {
|
|
183
190
|
bridgeVersion: getBridgeVersion(packageRoot),
|
|
184
191
|
mcpVersion: getBundledMcpVersion(packageRoot),
|
|
@@ -22,10 +22,10 @@ function runtimeAuthHeaders(authOptions, callbackBaseUrl) {
|
|
|
22
22
|
* 暂以单次 push 模式实现,后续可按需改为批量/定时 flush。
|
|
23
23
|
*/
|
|
24
24
|
export async function scheduleEventPush(agentId, _entry, authOptions) {
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
25
|
+
// 事件传输由 sendStatus() / sendOutput() 中的 HTTP 回调直接完成(POST /api/runtime/callback/status|output),
|
|
26
|
+
// 调度中心收到回调后持久化到 DB SSOT 并通过 WebSocket AGENT_EVENTS_DELTA 广播给前端。
|
|
27
|
+
// 此函数仅用于记录推送统计,不做实际 HTTP 推送。
|
|
28
|
+
// 桥接侧 ring buffer 作为本地事件备份,可用于调试面板和增量查询。
|
|
29
29
|
const state = getOrCreatePushState(agentId);
|
|
30
30
|
state.success++;
|
|
31
31
|
state.consecutiveFailures = 0;
|
|
@@ -18,7 +18,7 @@ function resolveSnapshotRoot() {
|
|
|
18
18
|
const envRoot = String(process.env.AWS_RUNTIME_SNAPSHOT_ROOT || "").trim();
|
|
19
19
|
if (envRoot)
|
|
20
20
|
return envRoot;
|
|
21
|
-
return path.join(homedir(), ".
|
|
21
|
+
return path.join(homedir(), ".aws-bridge", "snapshots");
|
|
22
22
|
}
|
|
23
23
|
/** 快照操作超时(毫秒),默认 120s */
|
|
24
24
|
function resolveSnapshotTimeoutMs() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-path-migration.d.ts","sourceRoot":"","sources":["../../src/services/legacy-path-migration.ts"],"names":[],"mappings":"AAwDA,sBAAsB;AACtB,wBAAgB,wBAAwB,IAAI,IAAI,CAc/C"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 旧路径迁移:将 ~/.agentswork/ 下的全局配置文件迁移到 ~/.aws-bridge/。
|
|
3
|
+
*
|
|
4
|
+
* 迁移范围:
|
|
5
|
+
* 1. binding.json、runtime-tokens.properties(由 migrateOldBindingDir 处理)
|
|
6
|
+
* 2. lifecycle-state.json
|
|
7
|
+
* 3. snapshots/ 目录
|
|
8
|
+
*
|
|
9
|
+
* 仅在旧路径存在且新路径不存在时执行,避免覆盖已有配置。
|
|
10
|
+
* 迁移后旧文件保留不动。
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync, mkdirSync, copyFileSync, readdirSync } from "node:fs";
|
|
13
|
+
import path from "node:path";
|
|
14
|
+
import { getRuntimeHomeDir } from "../config.js";
|
|
15
|
+
import { createLogger } from "../utils/logger.js";
|
|
16
|
+
import { migrateOldBindingDir } from "./runtime-binding.js";
|
|
17
|
+
const log = createLogger("legacy-path-migration");
|
|
18
|
+
function oldRootDir() {
|
|
19
|
+
return path.join(getRuntimeHomeDir(), ".agentswork", "runtime-bridge");
|
|
20
|
+
}
|
|
21
|
+
function newRootDir() {
|
|
22
|
+
return path.join(getRuntimeHomeDir(), ".aws-bridge");
|
|
23
|
+
}
|
|
24
|
+
function migrateLifecycleState() {
|
|
25
|
+
const oldFile = path.join(oldRootDir(), "lifecycle-state.json");
|
|
26
|
+
const newFile = path.join(newRootDir(), "lifecycle-state.json");
|
|
27
|
+
if (existsSync(oldFile) && !existsSync(newFile)) {
|
|
28
|
+
mkdirSync(newRootDir(), { recursive: true });
|
|
29
|
+
copyFileSync(oldFile, newFile);
|
|
30
|
+
log.info(`[runtime-bridge] 已迁移 lifecycle-state.json → ${newFile}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function migrateSnapshots() {
|
|
34
|
+
const oldDir = path.join(getRuntimeHomeDir(), ".agentswork", "snapshots");
|
|
35
|
+
const newDir = path.join(newRootDir(), "snapshots");
|
|
36
|
+
if (existsSync(oldDir) && !existsSync(newDir)) {
|
|
37
|
+
mkdirSync(newDir, { recursive: true });
|
|
38
|
+
try {
|
|
39
|
+
const entries = readdirSync(oldDir);
|
|
40
|
+
for (const entry of entries) {
|
|
41
|
+
const src = path.join(oldDir, entry);
|
|
42
|
+
const dest = path.join(newDir, entry);
|
|
43
|
+
copyFileSync(src, dest);
|
|
44
|
+
}
|
|
45
|
+
log.info(`[runtime-bridge] 已迁移 snapshots/ 到 ${newDir}`);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
log.warn(`[runtime-bridge] snapshots/ 迁移失败(部分文件可能被跳过)`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** 启动时调用:迁移所有旧路径配置 */
|
|
53
|
+
export function migrateOldPathsOnStartup() {
|
|
54
|
+
// 旧目录不存在则跳过
|
|
55
|
+
const oldRoot = oldRootDir();
|
|
56
|
+
if (!existsSync(oldRoot)) {
|
|
57
|
+
const oldSnapshots = path.join(getRuntimeHomeDir(), ".agentswork", "snapshots");
|
|
58
|
+
if (!existsSync(oldSnapshots)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
log.info("[runtime-bridge] 检测到旧路径 ~/.agentswork/,正在迁移到 ~/.aws-bridge/ ...");
|
|
63
|
+
migrateOldBindingDir();
|
|
64
|
+
migrateLifecycleState();
|
|
65
|
+
migrateSnapshots();
|
|
66
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-state.d.ts","sourceRoot":"","sources":["../../src/services/lifecycle-state.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,4BAA4B,GAAG,QAAQ,GAAG,SAAS,CAAC;AAChE,MAAM,MAAM,8BAA8B,GACtC,UAAU,GACV,SAAS,GACT,WAAW,GACX,QAAQ,GACR,mBAAmB,CAAC;AAExB,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,4BAA4B,CAAC;IAC5C,MAAM,EAAE,8BAA8B,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"lifecycle-state.d.ts","sourceRoot":"","sources":["../../src/services/lifecycle-state.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,4BAA4B,GAAG,QAAQ,GAAG,SAAS,CAAC;AAChE,MAAM,MAAM,8BAA8B,GACtC,UAAU,GACV,SAAS,GACT,WAAW,GACX,QAAQ,GACR,mBAAmB,CAAC;AAExB,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,4BAA4B,CAAC;IAC5C,MAAM,EAAE,8BAA8B,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsCD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,aAAa,EAAE,4BAA4B,CAAC;IAC5C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,wBAAwB,CAgB3B;AAED,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,wBAAwB,GAClC,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAKf;AAiCD;;;GAGG;AACH,wBAAsB,0CAA0C,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BhF"}
|
|
@@ -7,7 +7,7 @@ import { getRuntimeAccessToken, loadRuntimeBinding, normalizeSchedulerBaseUrl, }
|
|
|
7
7
|
import { createLogger } from "../utils/logger.js";
|
|
8
8
|
const log = createLogger("bridge-lifecycle");
|
|
9
9
|
function lifecycleStateFile() {
|
|
10
|
-
return path.join(getRuntimeHomeDir(), ".
|
|
10
|
+
return path.join(getRuntimeHomeDir(), ".aws-bridge", "lifecycle-state.json");
|
|
11
11
|
}
|
|
12
12
|
function normalizeText(value) {
|
|
13
13
|
const normalized = String(value || "").trim();
|
|
@@ -41,4 +41,9 @@ export declare function saveRuntimeBinding(input: {
|
|
|
41
41
|
schedulerBaseUrl?: string;
|
|
42
42
|
}): RuntimeBindingState;
|
|
43
43
|
export declare function clearRuntimeBinding(): void;
|
|
44
|
+
/**
|
|
45
|
+
* 将旧路径 ~/.agentswork/runtime-bridge/ 下的配置文件迁移到新路径 ~/.aws-bridge/。
|
|
46
|
+
* 仅在旧路径存在且新路径不存在时执行,避免覆盖已有配置。
|
|
47
|
+
*/
|
|
48
|
+
export declare function migrateOldBindingDir(): void;
|
|
44
49
|
//# sourceMappingURL=runtime-binding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-binding.d.ts","sourceRoot":"","sources":["../../src/services/runtime-binding.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAmEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAqB5E;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAiCD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,OAAO,GACrB,MAAM,CAYR;AAsCD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAWT;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,OAAO,GACrB,MAAM,GAAG,SAAS,CAUpB;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,OAAO,GACrB,OAAO,CAeT;AAcD,wBAAgB,kBAAkB,IAAI,mBAAmB,CAgBxD;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAClD,mBAAmB,EACnB,WAAW,GAAG,aAAa,CAC5B,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAWtB;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAcnE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,OAAO,GACtB,MAAM,GAAG,SAAS,CAyBpB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,mBAAmB,CAwCtB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAkB1C"}
|
|
1
|
+
{"version":3,"file":"runtime-binding.d.ts","sourceRoot":"","sources":["../../src/services/runtime-binding.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAmEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAqB5E;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAiCD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,OAAO,GACrB,MAAM,CAYR;AAsCD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAWT;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,OAAO,GACrB,MAAM,GAAG,SAAS,CAUpB;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,OAAO,GACrB,OAAO,CAeT;AAcD,wBAAgB,kBAAkB,IAAI,mBAAmB,CAgBxD;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAClD,mBAAmB,EACnB,WAAW,GAAG,aAAa,CAC5B,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAWtB;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAcnE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,OAAO,GACtB,MAAM,GAAG,SAAS,CAyBpB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,mBAAmB,CAwCtB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAkB1C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CA0B3C"}
|
|
@@ -13,7 +13,7 @@ function generatePairingCode() {
|
|
|
13
13
|
.replace(/(\d{3})(\d{3})/, "$1-$2");
|
|
14
14
|
}
|
|
15
15
|
function bindingDir() {
|
|
16
|
-
return path.join(getRuntimeHomeDir(), ".
|
|
16
|
+
return path.join(getRuntimeHomeDir(), ".aws-bridge");
|
|
17
17
|
}
|
|
18
18
|
function bindingFile() {
|
|
19
19
|
return path.join(bindingDir(), "binding.json");
|
|
@@ -331,3 +331,35 @@ export function clearRuntimeBinding() {
|
|
|
331
331
|
fs.writeFileSync(bindingFile(), `${JSON.stringify(revokedState, null, 2)}\n`, { encoding: "utf8", mode: 0o600 });
|
|
332
332
|
log.info("[runtime-bridge] runtime binding cleared");
|
|
333
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* 将旧路径 ~/.agentswork/runtime-bridge/ 下的配置文件迁移到新路径 ~/.aws-bridge/。
|
|
336
|
+
* 仅在旧路径存在且新路径不存在时执行,避免覆盖已有配置。
|
|
337
|
+
*/
|
|
338
|
+
export function migrateOldBindingDir() {
|
|
339
|
+
const homedir = getRuntimeHomeDir();
|
|
340
|
+
const oldDir = path.join(homedir, ".agentswork", "runtime-bridge");
|
|
341
|
+
const newDir = bindingDir();
|
|
342
|
+
if (oldDir === newDir)
|
|
343
|
+
return;
|
|
344
|
+
if (!fs.existsSync(oldDir))
|
|
345
|
+
return;
|
|
346
|
+
const files = ["binding.json", "runtime-tokens.properties"];
|
|
347
|
+
let migratedCount = 0;
|
|
348
|
+
for (const file of files) {
|
|
349
|
+
const oldFile = path.join(oldDir, file);
|
|
350
|
+
const newFile = path.join(newDir, file);
|
|
351
|
+
if (fs.existsSync(oldFile) && !fs.existsSync(newFile)) {
|
|
352
|
+
fs.mkdirSync(newDir, { recursive: true });
|
|
353
|
+
fs.copyFileSync(oldFile, newFile);
|
|
354
|
+
try {
|
|
355
|
+
fs.chmodSync(newFile, 0o600);
|
|
356
|
+
}
|
|
357
|
+
catch { /* ignore */ }
|
|
358
|
+
migratedCount++;
|
|
359
|
+
log.info(`[runtime-bridge] 已迁移 ${oldFile} → ${newFile}`);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
if (migratedCount > 0) {
|
|
363
|
+
log.info(`[runtime-bridge] 已迁移 ${migratedCount} 个配置文件从 ${oldDir} 到 ${newDir}`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
@@ -31,6 +31,7 @@ export interface BridgeEventPayload {
|
|
|
31
31
|
readonly actionInput?: string;
|
|
32
32
|
readonly actionResult?: string;
|
|
33
33
|
readonly actionId?: string;
|
|
34
|
+
readonly parentId?: string;
|
|
34
35
|
readonly inputTokens?: number;
|
|
35
36
|
readonly outputTokens?: number;
|
|
36
37
|
readonly sourceEventType?: string;
|
|
@@ -40,6 +41,7 @@ export interface BridgeEventPayload {
|
|
|
40
41
|
readonly filePath?: string;
|
|
41
42
|
readonly eventType?: string;
|
|
42
43
|
readonly size?: number;
|
|
44
|
+
readonly toolCallId?: string;
|
|
43
45
|
}
|
|
44
46
|
/** RingBufferEntry 的便捷导出 */
|
|
45
47
|
export type { RingBufferEntry, RingBufferSlice };
|
|
@@ -57,6 +59,8 @@ interface RuntimeStatusActionInfo {
|
|
|
57
59
|
actionInput?: string;
|
|
58
60
|
actionResult?: string;
|
|
59
61
|
actionId?: string;
|
|
62
|
+
/** 父事件 ID,用于事件父子层级(如压缩子事件关联到父压缩事件) */
|
|
63
|
+
parentId?: string;
|
|
60
64
|
}
|
|
61
65
|
export interface RuntimeCallbackAuthOptions {
|
|
62
66
|
runtimeAccessToken?: string;
|
|
@@ -87,6 +91,9 @@ export declare function sendStatus(agentId: string, sessionId: string | null, st
|
|
|
87
91
|
inputTokens: number;
|
|
88
92
|
outputTokens: number;
|
|
89
93
|
contextLimit?: number;
|
|
94
|
+
maxOutput?: number;
|
|
95
|
+
inputLimit?: number;
|
|
96
|
+
compactionThreshold?: number;
|
|
90
97
|
}, authOptions?: RuntimeCallbackAuthOptions, timestamp?: number, sourceEventType?: string): Promise<AxiosResponse<unknown> | undefined>;
|
|
91
98
|
/**
|
|
92
99
|
* 发送输出到调度器
|
|
@@ -103,8 +110,10 @@ export declare function sendOutput(agentId: string, output: string, sessionId: s
|
|
|
103
110
|
* @param agentId - Agent ID
|
|
104
111
|
* @param sessionId - SDK 会话 ID
|
|
105
112
|
* @param questions - 结构化问题列表
|
|
113
|
+
* @param authOptions - 运行时鉴权选项
|
|
114
|
+
* @param toolCallId - 提问实例的唯一标识,用于前端区分同一会话内连续多次提问
|
|
106
115
|
*/
|
|
107
|
-
export declare function sendQuestionRequest(agentId: string, sessionId: string, questions: unknown[], authOptions?: RuntimeCallbackAuthOptions): Promise<void>;
|
|
116
|
+
export declare function sendQuestionRequest(agentId: string, sessionId: string, questions: unknown[], authOptions?: RuntimeCallbackAuthOptions, toolCallId?: string): Promise<void>;
|
|
108
117
|
export interface RuntimeFileChangedPayload {
|
|
109
118
|
bridgeBaseUrl?: string;
|
|
110
119
|
workspacePath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-output.d.ts","sourceRoot":"","sources":["../../src/services/session-output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAKlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAK1F;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session-output.d.ts","sourceRoot":"","sources":["../../src/services/session-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,6 +105,8 @@ export async function sendStatus(agentId, sessionId, status, actionInfo, usage,
|
|
|
105
105
|
payload.actionResult = actionInfo.actionResult;
|
|
106
106
|
if (actionInfo.actionId)
|
|
107
107
|
payload.actionId = actionInfo.actionId;
|
|
108
|
+
if (actionInfo.parentId)
|
|
109
|
+
payload.parentId = actionInfo.parentId;
|
|
108
110
|
}
|
|
109
111
|
// 添加 token 用量信息
|
|
110
112
|
if (usage) {
|
|
@@ -113,6 +115,17 @@ export async function sendStatus(agentId, sessionId, status, actionInfo, usage,
|
|
|
113
115
|
if (usage.contextLimit) {
|
|
114
116
|
payload.contextLimit = usage.contextLimit;
|
|
115
117
|
}
|
|
118
|
+
// ★ 补传 maxOutput/inputLimit/compactionThreshold,前端 AgentContextPanel 直接用
|
|
119
|
+
// compactionThreshold 显示压缩点竖线(消除前端自算公式脱节)。
|
|
120
|
+
if (usage.maxOutput) {
|
|
121
|
+
payload.maxOutput = usage.maxOutput;
|
|
122
|
+
}
|
|
123
|
+
if (usage.inputLimit) {
|
|
124
|
+
payload.inputLimit = usage.inputLimit;
|
|
125
|
+
}
|
|
126
|
+
if (usage.compactionThreshold) {
|
|
127
|
+
payload.compactionThreshold = usage.compactionThreshold;
|
|
128
|
+
}
|
|
116
129
|
}
|
|
117
130
|
// 添加来源事件类型(用于前端时间线灰度区分,如 thinking / ai_request)
|
|
118
131
|
if (sourceEventType) {
|
|
@@ -124,8 +137,29 @@ export async function sendStatus(agentId, sessionId, status, actionInfo, usage,
|
|
|
124
137
|
logger.warn("Skip runtime status callback because runtime token is missing", { agentId, sessionId, status, schedulerBaseUrl: callbackBaseUrl });
|
|
125
138
|
return undefined;
|
|
126
139
|
}
|
|
140
|
+
// ★ 诊断日志:为 context_compaction 事件记录发送过程,排查间歇性丢失
|
|
141
|
+
const isCompactionEvent = actionInfo?.actionType === "context_compaction";
|
|
142
|
+
if (isCompactionEvent) {
|
|
143
|
+
logger.info("[compaction-diag] sendStatus enter", {
|
|
144
|
+
agentId, sessionId, status,
|
|
145
|
+
actionId: actionInfo?.actionId,
|
|
146
|
+
parentId: actionInfo?.parentId,
|
|
147
|
+
actionLabel: actionInfo?.actionLabel,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
127
150
|
try {
|
|
128
|
-
|
|
151
|
+
const response = await axios.post(`${callbackBaseUrl}/api/runtime/callback/status`, payload, { headers, timeout: 15000 });
|
|
152
|
+
if (isCompactionEvent) {
|
|
153
|
+
const data = response?.data;
|
|
154
|
+
logger.info("[compaction-diag] sendStatus success", {
|
|
155
|
+
agentId, actionId: actionInfo?.actionId,
|
|
156
|
+
actionLabel: actionInfo?.actionLabel,
|
|
157
|
+
httpStatus: response?.status,
|
|
158
|
+
ignored: data?.ignored,
|
|
159
|
+
responseBody: data,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return response;
|
|
129
163
|
}
|
|
130
164
|
catch (error) {
|
|
131
165
|
if (getAxiosStatusCode(error) === 401) {
|
|
@@ -134,7 +168,17 @@ export async function sendStatus(agentId, sessionId, status, actionInfo, usage,
|
|
|
134
168
|
const retryHeaders = runtimeAuthHeaders(authOptions, callbackBaseUrl);
|
|
135
169
|
if (retryHeaders) {
|
|
136
170
|
try {
|
|
137
|
-
|
|
171
|
+
const retryResponse = await axios.post(`${callbackBaseUrl}/api/runtime/callback/status`, payload, { headers: retryHeaders, timeout: 15000 });
|
|
172
|
+
if (isCompactionEvent) {
|
|
173
|
+
const data = retryResponse?.data;
|
|
174
|
+
logger.info("[compaction-diag] sendStatus retry success", {
|
|
175
|
+
agentId, actionId: actionInfo?.actionId,
|
|
176
|
+
actionLabel: actionInfo?.actionLabel,
|
|
177
|
+
httpStatus: retryResponse?.status,
|
|
178
|
+
ignored: data?.ignored,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
return retryResponse;
|
|
138
182
|
}
|
|
139
183
|
catch (retryError) {
|
|
140
184
|
logger.warn("Runtime status callback retry failed after token refresh", {
|
|
@@ -167,6 +211,9 @@ export async function sendStatus(agentId, sessionId, status, actionInfo, usage,
|
|
|
167
211
|
actionInput: actionInfo?.actionInput,
|
|
168
212
|
actionResult: actionInfo?.actionResult,
|
|
169
213
|
actionId: actionInfo?.actionId,
|
|
214
|
+
// ★ 必须写入 parentId,否则子事件(如压缩 phase/end 子事件)在前端
|
|
215
|
+
// buildEventTreeFromFlat 中找不到父事件,会作为孤儿子事件扁平化渲染。
|
|
216
|
+
parentId: actionInfo?.parentId,
|
|
170
217
|
inputTokens: usage?.inputTokens,
|
|
171
218
|
outputTokens: usage?.outputTokens,
|
|
172
219
|
sourceEventType,
|
|
@@ -269,10 +316,12 @@ export async function sendOutput(agentId, output, sessionId, seq, metadata, auth
|
|
|
269
316
|
* @param agentId - Agent ID
|
|
270
317
|
* @param sessionId - SDK 会话 ID
|
|
271
318
|
* @param questions - 结构化问题列表
|
|
319
|
+
* @param authOptions - 运行时鉴权选项
|
|
320
|
+
* @param toolCallId - 提问实例的唯一标识,用于前端区分同一会话内连续多次提问
|
|
272
321
|
*/
|
|
273
|
-
export async function sendQuestionRequest(agentId, sessionId, questions, authOptions) {
|
|
322
|
+
export async function sendQuestionRequest(agentId, sessionId, questions, authOptions, toolCallId) {
|
|
274
323
|
const callbackBaseUrl = resolveRuntimeCallbackBaseUrl(authOptions);
|
|
275
|
-
const payload = { agentId, sessionId, questions };
|
|
324
|
+
const payload = { agentId, sessionId, questions, ...(toolCallId ? { toolCallId } : {}) };
|
|
276
325
|
try {
|
|
277
326
|
const headers = runtimeAuthHeaders(authOptions, callbackBaseUrl);
|
|
278
327
|
if (!headers) {
|
|
@@ -304,6 +353,7 @@ export async function sendQuestionRequest(agentId, sessionId, questions, authOpt
|
|
|
304
353
|
category: "question",
|
|
305
354
|
agentId,
|
|
306
355
|
sessionId,
|
|
356
|
+
...(toolCallId ? { toolCallId } : {}),
|
|
307
357
|
questions,
|
|
308
358
|
};
|
|
309
359
|
bridgeEventBuffer.append(eventPayload);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sub-agent-manager-instance.d.ts","sourceRoot":"","sources":["../../src/services/sub-agent-manager-instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAWnE,eAAO,MAAM,eAAe,iBAAiC,CAAC;AAC9D,eAAO,MAAM,aAAa,eAAQ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SubAgentManager, SubAgentStore } from "@agentswork/acode";
|
|
2
|
+
/**
|
|
3
|
+
* Bridge 层 SubAgentManager 单例。
|
|
4
|
+
*
|
|
5
|
+
* 每个 bridge 进程持有一个 SubAgentManager 实例,
|
|
6
|
+
* 所有 ACodeRuntime 实例共享(通过 ACodeRuntimeConfig.subAgentManager 注入)。
|
|
7
|
+
*
|
|
8
|
+
* SubAgentStore 同样单例,所有 agent 共用(按 agentId 文件隔离)。
|
|
9
|
+
*/
|
|
10
|
+
const store = new SubAgentStore();
|
|
11
|
+
export const subAgentManager = new SubAgentManager({ store });
|
|
12
|
+
export const subAgentStore = store;
|
|
@@ -134,6 +134,7 @@ export declare function readWorkspaceFile(params: WorkspaceFileParams): Promise<
|
|
|
134
134
|
/**
|
|
135
135
|
* 读取工作区条目的属性信息。
|
|
136
136
|
* 主流程:解析安全路径 -> 读取 stat/lstat -> 文件额外尝试解析图片尺寸。
|
|
137
|
+
* 对于目录,stat.size 只是目录项元数据大小,需要递归统计子文件总和。
|
|
137
138
|
*/
|
|
138
139
|
export declare function getWorkspaceEntryProperties(params: DeleteWorkspaceEntryParams): Promise<WorkspaceEntryPropertiesResult>;
|
|
139
140
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-files.d.ts","sourceRoot":"","sources":["../../src/services/workspace-files.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workspace-files.d.ts","sourceRoot":"","sources":["../../src/services/workspace-files.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqDH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,IAAI,CAAC;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,mBAAmB;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,mBAAmB;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,wBAAyB,SAAQ,mBAAmB;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,0BAA2B,SAAQ,mBAAmB;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,0BAA2B,SAAQ,mBAAmB;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,wBAAyB,SAAQ,mBAAmB;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,0BAA2B,SAAQ,mBAAmB;IAC9D,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,UAAU,0BAA2B,SAAQ,mBAAmB;IAC9D,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,4BAA6B,SAAQ,mBAAmB;IAChE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,6BAA8B,SAAQ,mBAAmB;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,yBAA0B,SAAQ,mBAAmB;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,wBAAwB,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,IAAI,CAAC;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAoeD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CA0B/G;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAgBrG;AAsDD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CA+B7H;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAoB/G;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAkCnH;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAYzI;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CAkCxF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAkCtF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAiD/G;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAelE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,6BAA6B,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA4CnL;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAa3H;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAarH;AA+GD;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CA8C3H"}
|
|
@@ -475,9 +475,61 @@ export async function readWorkspaceFile(params) {
|
|
|
475
475
|
content
|
|
476
476
|
};
|
|
477
477
|
}
|
|
478
|
+
/**
|
|
479
|
+
* 目录大小计算上限,避免在工作区体量异常时长时间阻塞属性查询。
|
|
480
|
+
*/
|
|
481
|
+
const DIRECTORY_SIZE_LIMITS = {
|
|
482
|
+
maxEntries: 100_000,
|
|
483
|
+
maxDepth: 32,
|
|
484
|
+
};
|
|
485
|
+
/**
|
|
486
|
+
* 递归累加目录内所有普通文件的总大小。
|
|
487
|
+
* 跳过符号链接以避免跟随循环,访问失败的单个条目直接忽略。
|
|
488
|
+
*/
|
|
489
|
+
async function calculateDirectorySize(workspaceRoot, directoryPath) {
|
|
490
|
+
let total = 0;
|
|
491
|
+
let entriesProcessed = 0;
|
|
492
|
+
async function walk(dirPath, depth) {
|
|
493
|
+
if (depth >= DIRECTORY_SIZE_LIMITS.maxDepth) {
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
let entries;
|
|
497
|
+
try {
|
|
498
|
+
entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
499
|
+
}
|
|
500
|
+
catch {
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
for (const entry of entries) {
|
|
504
|
+
entriesProcessed += 1;
|
|
505
|
+
if (entriesProcessed > DIRECTORY_SIZE_LIMITS.maxEntries) {
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
if (entry.isSymbolicLink()) {
|
|
509
|
+
continue;
|
|
510
|
+
}
|
|
511
|
+
const entryPath = ensureInsideWorkspace(workspaceRoot, path.join(dirPath, entry.name));
|
|
512
|
+
try {
|
|
513
|
+
if (entry.isDirectory()) {
|
|
514
|
+
await walk(entryPath, depth + 1);
|
|
515
|
+
}
|
|
516
|
+
else if (entry.isFile()) {
|
|
517
|
+
const stat = await fs.stat(entryPath);
|
|
518
|
+
total += stat.size;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
catch {
|
|
522
|
+
// 单个条目失败不影响整体统计
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
await walk(directoryPath, 0);
|
|
527
|
+
return total;
|
|
528
|
+
}
|
|
478
529
|
/**
|
|
479
530
|
* 读取工作区条目的属性信息。
|
|
480
531
|
* 主流程:解析安全路径 -> 读取 stat/lstat -> 文件额外尝试解析图片尺寸。
|
|
532
|
+
* 对于目录,stat.size 只是目录项元数据大小,需要递归统计子文件总和。
|
|
481
533
|
*/
|
|
482
534
|
export async function getWorkspaceEntryProperties(params) {
|
|
483
535
|
const { workspaceRoot, resolvedTargetPath } = await resolveEntryTarget(params, { allowWorkspaceRoot: true });
|
|
@@ -485,7 +537,11 @@ export async function getWorkspaceEntryProperties(params) {
|
|
|
485
537
|
fs.stat(resolvedTargetPath),
|
|
486
538
|
fs.lstat(resolvedTargetPath),
|
|
487
539
|
]);
|
|
540
|
+
const isDirectory = stat.isDirectory();
|
|
488
541
|
const image = stat.isFile() ? await readImageProperties(resolvedTargetPath) : undefined;
|
|
542
|
+
const size = isDirectory
|
|
543
|
+
? await calculateDirectorySize(workspaceRoot, resolvedTargetPath)
|
|
544
|
+
: stat.size;
|
|
489
545
|
return {
|
|
490
546
|
workspacePath: toDisplayPath(workspaceRoot),
|
|
491
547
|
targetPath: toDisplayPath(resolvedTargetPath),
|
|
@@ -493,7 +549,7 @@ export async function getWorkspaceEntryProperties(params) {
|
|
|
493
549
|
isDirectory: stat.isDirectory(),
|
|
494
550
|
isFile: stat.isFile(),
|
|
495
551
|
isSymbolicLink: linkStat.isSymbolicLink(),
|
|
496
|
-
size
|
|
552
|
+
size,
|
|
497
553
|
mode: stat.mode,
|
|
498
554
|
modeOctal: formatModeOctal(stat.mode),
|
|
499
555
|
permissions: formatPermissions(stat.mode),
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type ACodeBuiltInTool } from "./built-in-file-tools.js";
|
|
2
|
+
/**
|
|
3
|
+
* ask_user_question 工具的依赖:由 ACodeRuntime 注入,
|
|
4
|
+
* 让工具的 execute() 能通知 runtime 发出 question_request 事件,
|
|
5
|
+
* 并阻塞等待 runtime 通过 submitQuestionAnswer() 回传答案。
|
|
6
|
+
*/
|
|
7
|
+
export interface AcodeAskUserQuestionDeps {
|
|
8
|
+
/**
|
|
9
|
+
* 当工具被调用时,runtime 应发出 question_request 事件,
|
|
10
|
+
* 携带 questions 与 toolCallId,让适配器转发到前端。
|
|
11
|
+
*/
|
|
12
|
+
onQuestion(toolCallId: string, questions: AcodeQuestionItem[]): void;
|
|
13
|
+
/**
|
|
14
|
+
* 阻塞等待用户回答。runtime 内部用 questionWaiters Map 管理 Promise,
|
|
15
|
+
* submitQuestionAnswer() 调用时 resolve,abort/stop 时 reject。
|
|
16
|
+
*/
|
|
17
|
+
waitForAnswer(toolCallId: string, contextVersion: number): Promise<Record<string, string>>;
|
|
18
|
+
}
|
|
19
|
+
export interface AcodeQuestionOption {
|
|
20
|
+
label: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
requiresCustomInput?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface AcodeQuestionItem {
|
|
25
|
+
question: string;
|
|
26
|
+
header?: string;
|
|
27
|
+
options: AcodeQuestionOption[];
|
|
28
|
+
multiple?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface AcodeAskUserQuestionResult {
|
|
31
|
+
ok: true;
|
|
32
|
+
tool: "ask_user_question";
|
|
33
|
+
answers: Record<string, string>;
|
|
34
|
+
summary: string;
|
|
35
|
+
}
|
|
36
|
+
/** 工具名常量,供 runtime/adapter 引用 */
|
|
37
|
+
export declare const ASK_USER_QUESTION_TOOL_NAME = "ask_user_question";
|
|
38
|
+
/**
|
|
39
|
+
* 创建 ask_user_question 内置工具。
|
|
40
|
+
* 由 ACodeRuntime.start() 调用并注入 deps。
|
|
41
|
+
*/
|
|
42
|
+
export declare function createAskUserQuestionTool(deps: AcodeAskUserQuestionDeps, contextVersionProvider: () => number): ACodeBuiltInTool;
|
|
43
|
+
/** 类型守卫:判断一个值是否为 ask_user_question 工具的成功结果 */
|
|
44
|
+
export declare function isAskUserQuestionResult(value: unknown): value is AcodeAskUserQuestionResult;
|
|
45
|
+
/** 将成功结果转为 JSON 字符串(供 toToolResultText 调用) */
|
|
46
|
+
export declare function serializeAskUserQuestionResult(result: AcodeAskUserQuestionResult): string;
|
|
47
|
+
//# sourceMappingURL=ask-user-question-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-user-question-tool.d.ts","sourceRoot":"","sources":["../src/ask-user-question-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,0BAA0B,CAAC;AAElC;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,iBAAiB,EAAE,GAC7B,IAAI,CAAC;IAER;;;OAGG;IACH,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iCAAiC;AACjC,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAU/D;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,wBAAwB,EAC9B,sBAAsB,EAAE,MAAM,MAAM,GACnC,gBAAgB,CAwDlB;AA2JD,8CAA8C;AAC9C,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,0BAA0B,CAUrC;AAED,8CAA8C;AAC9C,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,0BAA0B,GACjC,MAAM,CAQR"}
|