aws-runtime-bridge 1.9.175 → 1.9.179

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.
Files changed (357) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/README.md +61 -2
  3. package/dist/adapter/AcodeSdkAdapter.d.ts +369 -0
  4. package/dist/adapter/AcodeSdkAdapter.js +2 -2
  5. package/dist/adapter/AdapterRegistry.d.ts +28 -0
  6. package/dist/adapter/ClaudeSdkAdapter.d.ts +71 -0
  7. package/dist/adapter/CodexSdkAdapter.d.ts +14 -0
  8. package/dist/adapter/OpencodeSdkAdapter.d.ts +44 -0
  9. package/dist/adapter/acode-tool-names.d.ts +9 -0
  10. package/dist/adapter/idle-poll-loop.d.ts +20 -0
  11. package/dist/adapter/index.d.ts +3 -0
  12. package/dist/adapter/instance-ai-config-resolver.d.ts +20 -0
  13. package/dist/adapter/prompts.d.ts +12 -0
  14. package/dist/adapter/types.d.ts +182 -0
  15. package/dist/browser/browser-bootstrap.d.ts +15 -0
  16. package/dist/browser/browser-connect-token.d.ts +11 -0
  17. package/dist/browser/browser-frame-encode.d.ts +32 -0
  18. package/dist/browser/browser-pool.d.ts +129 -0
  19. package/dist/browser/browser-profile-store.d.ts +41 -0
  20. package/dist/browser/browser-ws-bridge.d.ts +20 -0
  21. package/dist/browser/built-in-browser-tools.d.ts +44 -0
  22. package/dist/browser/element-locator.d.ts +25 -0
  23. package/dist/browser/element-picker.d.ts +30 -0
  24. package/dist/browser/frame-encode.d.ts +19 -0
  25. package/dist/browser/input-dispatcher.d.ts +35 -0
  26. package/dist/browser/listener-store.d.ts +44 -0
  27. package/dist/browser/page-listener-manager.d.ts +88 -0
  28. package/dist/browser/page-listener-types.d.ts +38 -0
  29. package/dist/browser/screencast-differ.d.ts +10 -0
  30. package/dist/browser/screencast-manager.d.ts +94 -0
  31. package/dist/browser/snapshot-serializer.d.ts +56 -0
  32. package/dist/browser/ssrf-guard.d.ts +44 -0
  33. package/dist/browser/stealth.d.ts +21 -0
  34. package/dist/browser/step-archive.d.ts +13 -0
  35. package/dist/browser/types.d.ts +100 -0
  36. package/dist/browser/ws-server.d.ts +54 -0
  37. package/dist/config.d.ts +138 -2
  38. package/dist/config.js +2 -2
  39. package/dist/desktop/built-in-desktop-tools.d.ts +68 -0
  40. package/dist/desktop/built-in-desktop-tools.js +2 -1
  41. package/dist/desktop/desktop-control.d.ts +142 -0
  42. package/dist/desktop/desktop-control.js +2 -0
  43. package/dist/desktop/desktop-mcp-client.d.ts +28 -0
  44. package/dist/desktop/desktop-staleness.d.ts +66 -0
  45. package/dist/desktop/desktop-staleness.js +2 -0
  46. package/dist/index.d.ts +4 -0
  47. package/dist/index.js +1 -1
  48. package/dist/middleware/auth.d.ts +26 -0
  49. package/dist/middleware/auth.js +1 -1
  50. package/dist/remote-desktop/computer-control.d.ts +3 -0
  51. package/dist/remote-desktop/coords.d.ts +6 -0
  52. package/dist/remote-desktop/frame-backpressure.d.ts +10 -0
  53. package/dist/remote-desktop/frame-encode.d.ts +3 -0
  54. package/dist/remote-desktop/index.js +2 -2
  55. package/dist/remote-desktop/input-dispatcher.d.ts +4 -0
  56. package/dist/remote-desktop/permission-manager.d.ts +3 -0
  57. package/dist/remote-desktop/screen-capture.d.ts +91 -0
  58. package/dist/remote-desktop/session-manager.d.ts +47 -0
  59. package/dist/remote-desktop/session-manager.js +1 -1
  60. package/dist/remote-desktop/system-backend.d.ts +64 -0
  61. package/dist/remote-desktop/types.d.ts +25 -0
  62. package/dist/remote-desktop/ui-automation.d.ts +11 -0
  63. package/dist/remote-desktop/win32-api.d.ts +10 -0
  64. package/dist/routes/acode-todos.d.ts +13 -0
  65. package/dist/routes/agent-state.d.ts +15 -0
  66. package/dist/routes/ai-sources.js +1 -1
  67. package/dist/routes/background-tasks.d.ts +18 -0
  68. package/dist/routes/background-tasks.js +2 -2
  69. package/dist/routes/browser-listeners.d.ts +17 -0
  70. package/dist/routes/browser-sessions.d.ts +10 -0
  71. package/dist/routes/capabilities.js +1 -1
  72. package/dist/routes/dashboard-icon.d.ts +9 -0
  73. package/dist/routes/dashboard-icon.js +2 -0
  74. package/dist/routes/dashboard-theme.d.ts +24 -0
  75. package/dist/routes/dashboard-theme.js +157 -0
  76. package/dist/routes/dashboard.d.ts +9 -0
  77. package/dist/routes/dashboard.js +1988 -625
  78. package/dist/routes/debug-mount.d.ts +16 -0
  79. package/dist/routes/desktop-control.d.ts +15 -0
  80. package/dist/routes/desktop-control.js +2 -0
  81. package/dist/routes/events.d.ts +4 -0
  82. package/dist/routes/file-browser.d.ts +11 -0
  83. package/dist/routes/file-change-diff.d.ts +25 -0
  84. package/dist/routes/file-diff-rollback.d.ts +28 -0
  85. package/dist/routes/file-snapshot.d.ts +7 -0
  86. package/dist/routes/git.d.ts +143 -0
  87. package/dist/routes/instance-tool-status.d.ts +5 -0
  88. package/dist/routes/instance.d.ts +8 -0
  89. package/dist/routes/instance.js +1 -1
  90. package/dist/routes/jdks.d.ts +4 -0
  91. package/dist/routes/launch.d.ts +5 -0
  92. package/dist/routes/lsp-providers.d.ts +11 -0
  93. package/dist/routes/lsp-providers.js +2 -0
  94. package/dist/routes/lsp.d.ts +41 -0
  95. package/dist/routes/lsp.js +4 -2
  96. package/dist/routes/mcp-extra.d.ts +15 -0
  97. package/dist/routes/mcp.d.ts +16 -0
  98. package/dist/routes/mcp.js +1 -1
  99. package/dist/routes/plugins.d.ts +19 -0
  100. package/dist/routes/plugins.js +1 -1
  101. package/dist/routes/processes.d.ts +4 -0
  102. package/dist/routes/properties.d.ts +4 -0
  103. package/dist/routes/pty.d.ts +29 -0
  104. package/dist/routes/runtime-binding.d.ts +3 -0
  105. package/dist/routes/sessions.d.ts +22 -0
  106. package/dist/routes/skills.d.ts +15 -0
  107. package/dist/routes/skills.js +1 -1
  108. package/dist/routes/sub-agents.d.ts +11 -0
  109. package/dist/routes/sub-agents.js +1 -1
  110. package/dist/routes/task-context.d.ts +5 -0
  111. package/dist/routes/tech-stack.d.ts +4 -0
  112. package/dist/routes/terminal.d.ts +122 -0
  113. package/dist/routes/terminal.js +16 -16
  114. package/dist/routes/workspace-index.d.ts +12 -0
  115. package/dist/routes/workspace-index.js +2 -0
  116. package/dist/routes/yml.d.ts +4 -0
  117. package/dist/scripts/migrate-user-scopes.d.ts +26 -0
  118. package/dist/scripts/migrate-user-scopes.js +2 -0
  119. package/dist/services/access-control.d.ts +21 -0
  120. package/dist/services/acode-bg-manager.d.ts +21 -0
  121. package/dist/services/acode-package.d.ts +10 -0
  122. package/dist/services/acode-package.js +1 -1
  123. package/dist/services/agent-capability-sync.d.ts +26 -0
  124. package/dist/services/agent-capability-sync.js +1 -1
  125. package/dist/services/agent-event-store.d.ts +20 -0
  126. package/dist/services/agent-ownership.d.ts +58 -0
  127. package/dist/services/agent-ownership.js +3 -0
  128. package/dist/services/agent-process-manager.d.ts +154 -0
  129. package/dist/services/agent-pty-manager.d.ts +37 -0
  130. package/dist/services/agent-startup-memory.d.ts +34 -0
  131. package/dist/services/agent-startup-memory.js +1 -1
  132. package/dist/services/ai-config-service.d.ts +26 -52
  133. package/dist/services/ai-config-service.js +1 -3
  134. package/dist/services/ai-source-apply.d.ts +7 -15
  135. package/dist/services/ai-source-apply.js +1 -1
  136. package/dist/services/auto-register.d.ts +165 -1
  137. package/dist/services/auto-register.js +1 -1
  138. package/dist/services/aws-client-agent-mcp.d.ts +14 -0
  139. package/dist/services/aws-client-agent-mcp.js +2 -2
  140. package/dist/services/bridge-package-publish-hooks.d.ts +14 -0
  141. package/dist/services/bridge-pairing.d.ts +82 -0
  142. package/dist/services/bridge-pairing.js +2 -0
  143. package/dist/services/bridge-temp-files.d.ts +29 -0
  144. package/dist/services/browser-session-manager.d.ts +71 -0
  145. package/dist/services/capability-config.d.ts +60 -15
  146. package/dist/services/capability-config.js +2 -2
  147. package/dist/services/change-cache-retention.d.ts +9 -0
  148. package/dist/services/changelog.d.ts +9 -0
  149. package/dist/services/cli-commands.d.ts +82 -0
  150. package/dist/services/cli-commands.js +6 -6
  151. package/dist/services/connection-key-rotation.d.ts +27 -0
  152. package/dist/services/connection-key-rotation.js +2 -0
  153. package/dist/services/debug-mount.d.ts +49 -0
  154. package/dist/services/desktop-mcp-manager.d.ts +103 -1
  155. package/dist/services/desktop-mcp-manager.js +1 -1
  156. package/dist/services/event-delta-pusher.d.ts +15 -0
  157. package/dist/services/fileSnapshotStore.d.ts +33 -0
  158. package/dist/services/gitignore.d.ts +9 -0
  159. package/dist/services/instance-ai-config-service.d.ts +9 -0
  160. package/dist/services/instance-ai-config-service.js +1 -1
  161. package/dist/services/instance-features.d.ts +127 -0
  162. package/dist/services/instance-features.js +1 -1
  163. package/dist/services/instance-init-service.d.ts +3 -0
  164. package/dist/services/instance-init-service.js +1 -1
  165. package/dist/services/instance-state.d.ts +23 -0
  166. package/dist/services/jdk-scanner.d.ts +15 -0
  167. package/dist/services/launch-manager.d.ts +138 -0
  168. package/dist/services/launch-metrics.d.ts +42 -0
  169. package/dist/services/launch-streams.d.ts +19 -0
  170. package/dist/services/lifecycle-state.d.ts +5 -0
  171. package/dist/services/log-retention.d.ts +38 -0
  172. package/dist/services/lsp/install-manager.d.ts +55 -0
  173. package/dist/services/lsp/install-manager.js +2 -0
  174. package/dist/services/lsp/provider-registry.d.ts +108 -0
  175. package/dist/services/lsp/provider-registry.js +2 -0
  176. package/dist/services/lsp/uri-rewrite.d.ts +44 -0
  177. package/dist/services/lsp/uri-rewrite.js +2 -0
  178. package/dist/services/lsp-stdio-bridge.d.ts +41 -4
  179. package/dist/services/lsp-stdio-bridge.js +3 -3
  180. package/dist/services/mcp-deploy.d.ts +45 -4
  181. package/dist/services/mcp-deploy.js +4 -4
  182. package/dist/services/mcp-env-injector.d.ts +52 -0
  183. package/dist/services/mcp-launch-binding-queue.d.ts +12 -0
  184. package/dist/services/mcp-package.d.ts +22 -0
  185. package/dist/services/mcp-package.js +1 -1
  186. package/dist/services/mcp-probe-client.d.ts +19 -0
  187. package/dist/services/mcp-probe-client.js +1 -1
  188. package/dist/services/open-doc-events.d.ts +22 -0
  189. package/dist/services/open-doc-registry.d.ts +35 -0
  190. package/dist/services/orphan-monitor.d.ts +43 -0
  191. package/dist/services/panel-auth.d.ts +24 -0
  192. package/dist/services/panel-env.d.ts +28 -0
  193. package/dist/services/plugin-deployment.d.ts +34 -1
  194. package/dist/services/plugin-deployment.js +2 -2
  195. package/dist/services/plugin-event-buffer.d.ts +21 -0
  196. package/dist/services/plugin-fs.d.ts +11 -0
  197. package/dist/services/plugin-handler-adapter.d.ts +13 -0
  198. package/dist/services/plugin-listener-runner.d.ts +10 -0
  199. package/dist/services/plugin-loader.d.ts +15 -0
  200. package/dist/services/plugin-manager.d.ts +95 -9
  201. package/dist/services/plugin-manager.js +4 -4
  202. package/dist/services/plugin-manifest.d.ts +14 -0
  203. package/dist/services/plugin-package.d.ts +13 -0
  204. package/dist/services/plugin-runtime.d.ts +15 -0
  205. package/dist/services/port-detector.d.ts +15 -0
  206. package/dist/services/process-detail.d.ts +3 -0
  207. package/dist/services/process-detector.d.ts +132 -0
  208. package/dist/services/process-registry.d.ts +120 -0
  209. package/dist/services/process-top.d.ts +6 -0
  210. package/dist/services/request-identity.d.ts +77 -0
  211. package/dist/services/request-identity.js +2 -0
  212. package/dist/services/request-invalid-dump.d.ts +4 -0
  213. package/dist/services/ring-buffer.d.ts +33 -0
  214. package/dist/services/runtime-binding.d.ts +56 -4
  215. package/dist/services/runtime-binding.js +4 -4
  216. package/dist/services/runtime-lifecycle-policy.d.ts +17 -0
  217. package/dist/services/runtime-resources-snapshot.d.ts +26 -0
  218. package/dist/services/sdk-tool-file-change-recorder.d.ts +9 -0
  219. package/dist/services/session-output.d.ts +63 -0
  220. package/dist/services/session-output.js +3 -3
  221. package/dist/services/skill-manager.d.ts +42 -5
  222. package/dist/services/skill-manager.js +3 -3
  223. package/dist/services/snapshot-retention.d.ts +23 -0
  224. package/dist/services/startup-config-wizard.d.ts +7 -1
  225. package/dist/services/startup-config-wizard.js +10 -10
  226. package/dist/services/system-metrics.d.ts +3 -0
  227. package/dist/services/tech-stack-scanner.d.ts +12 -0
  228. package/dist/services/terminal-persistence.d.ts +43 -0
  229. package/dist/services/tool-installer.d.ts +12 -0
  230. package/dist/services/tunnel-client.d.ts +57 -2
  231. package/dist/services/tunnel-client.js +1 -1
  232. package/dist/services/update-log.d.ts +6 -0
  233. package/dist/services/update-notifier.d.ts +17 -0
  234. package/dist/services/update-notifier.js +2 -2
  235. package/dist/services/user-scope.d.ts +115 -0
  236. package/dist/services/user-scope.js +2 -0
  237. package/dist/services/windows-service-manager.d.ts +12 -0
  238. package/dist/services/workspace-files.d.ts +64 -0
  239. package/dist/services/workspace-index/index-manager.d.ts +46 -0
  240. package/dist/services/workspace-index/index-manager.js +2 -0
  241. package/dist/services/workspace-index/indexer.d.ts +15 -0
  242. package/dist/services/workspace-index/indexer.js +2 -0
  243. package/dist/services/workspace-index/query.d.ts +74 -0
  244. package/dist/services/workspace-index/query.js +5 -0
  245. package/dist/services/workspace-index/resolver.d.ts +26 -0
  246. package/dist/services/workspace-index/resolver.js +2 -0
  247. package/dist/services/workspace-index/types.d.ts +89 -0
  248. package/dist/services/workspace-index/types.js +2 -0
  249. package/dist/services/workspace-watch.d.ts +4 -0
  250. package/dist/services/workspaceTaskChangeWatcher.d.ts +49 -0
  251. package/dist/services/workspaceTaskChangeWatcher.js +1 -1
  252. package/dist/types.d.ts +9 -0
  253. package/dist/utils/config-write-queue.d.ts +11 -0
  254. package/dist/utils/env-safety.d.ts +21 -0
  255. package/dist/utils/file-utils.d.ts +15 -0
  256. package/dist/utils/instance-ai-config-debug-logger.d.ts +15 -0
  257. package/dist/utils/lifecycle-log.d.ts +5 -0
  258. package/dist/utils/logger.d.ts +13 -0
  259. package/dist/utils/logger.js +2 -1
  260. package/dist/utils/npm-version.d.ts +10 -0
  261. package/dist/utils/path-utils.d.ts +12 -0
  262. package/dist/utils/scheduler-url.d.ts +18 -0
  263. package/dist/utils/scheduler-url.js +2 -0
  264. package/dist/utils/sdk-package-loader.d.ts +13 -0
  265. package/dist/utils/sdk-package-loader.js +1 -1
  266. package/dist/utils/target-identity.d.ts +31 -0
  267. package/dist/utils/target-identity.js +2 -0
  268. package/dist/utils/validation.d.ts +17 -0
  269. package/dist/utils/yaml-utils.d.ts +48 -0
  270. package/package/acode/dist/__tests__/summary-request-helper.d.ts +10 -0
  271. package/package/acode/dist/ask-user-question-tool.d.ts +17 -0
  272. package/package/acode/dist/await-complete-tool.d.ts +12 -0
  273. package/package/acode/dist/background-command-manager.d.ts +105 -0
  274. package/package/acode/dist/background-command-store.d.ts +27 -0
  275. package/package/acode/dist/background-command-tools.d.ts +8 -0
  276. package/package/acode/dist/background-output-ringbuffer.d.ts +15 -0
  277. package/package/acode/dist/built-in-file-tools.d.ts +65 -0
  278. package/package/acode/dist/built-in-symbols-tool.d.ts +3 -0
  279. package/package/acode/dist/builtins/commandArtifacts.d.ts +3 -0
  280. package/package/acode/dist/builtins/shellCommandPreparation.d.ts +17 -0
  281. package/package/acode/dist/builtins/shellCommandRunner.d.ts +4 -0
  282. package/package/acode/dist/builtins/shellOutputDecoder.d.ts +15 -0
  283. package/package/acode/dist/cache-control.d.ts +45 -0
  284. package/package/acode/dist/commands/commandLoader.d.ts +3 -0
  285. package/package/acode/dist/commands/commandParser.d.ts +3 -0
  286. package/package/acode/dist/commands/commandRegistry.d.ts +3 -0
  287. package/package/acode/dist/compaction.d.ts +354 -0
  288. package/package/acode/dist/config.d.ts +3 -0
  289. package/package/acode/dist/context-overflow.d.ts +32 -0
  290. package/package/acode/dist/fs-utils.d.ts +18 -0
  291. package/package/acode/dist/hooks/hookBus.d.ts +3 -0
  292. package/package/acode/dist/image-utils.d.ts +35 -0
  293. package/package/acode/dist/index.d.ts +1 -0
  294. package/package/acode/dist/index.js +1 -1
  295. package/package/acode/dist/mcpToolNames.d.ts +32 -0
  296. package/package/acode/dist/microcompact.d.ts +53 -0
  297. package/package/acode/dist/parsers/ast-cache.d.ts +41 -0
  298. package/package/acode/dist/parsers/file-index.d.ts +83 -0
  299. package/package/acode/dist/parsers/file-index.js +4 -0
  300. package/package/acode/dist/parsers/language-detector.d.ts +4 -0
  301. package/package/acode/dist/parsers/tree-sitter-loader.d.ts +12 -0
  302. package/package/acode/dist/parsers/types.d.ts +11 -0
  303. package/package/acode/dist/paths.d.ts +14 -0
  304. package/package/acode/dist/plugin-types.d.ts +34 -0
  305. package/package/acode/dist/read-file-state.d.ts +15 -0
  306. package/package/acode/dist/runtime-environment.d.ts +16 -0
  307. package/package/acode/dist/runtime.d.ts +824 -9
  308. package/package/acode/dist/runtime.js +21 -21
  309. package/package/acode/dist/skill-tool.d.ts +20 -0
  310. package/package/acode/dist/sub-agent-manager.d.ts +169 -0
  311. package/package/acode/dist/sub-agent-manager.js +1 -1
  312. package/package/acode/dist/sub-agent-store.d.ts +50 -0
  313. package/package/acode/dist/sub-agent-tools.d.ts +15 -0
  314. package/package/acode/dist/sub-agent-types.d.ts +13 -0
  315. package/package/acode/dist/terminal-tool.d.ts +15 -0
  316. package/package/acode/dist/terminal-types.d.ts +10 -0
  317. package/package/acode/dist/todo-store.d.ts +15 -0
  318. package/package/acode/dist/token-estimator.d.ts +17 -0
  319. package/package/acode/dist/tool-allocation.d.ts +113 -0
  320. package/package/acode/dist/tool-concurrency/index.d.ts +8 -0
  321. package/package/acode/dist/tool-concurrency/observability.d.ts +32 -0
  322. package/package/acode/dist/tool-concurrency/resource-lock.d.ts +30 -0
  323. package/package/acode/dist/tool-concurrency/scheduler.d.ts +19 -0
  324. package/package/acode/dist/tool-concurrency/types.d.ts +57 -0
  325. package/package/acode/dist/tool-group-manager.d.ts +195 -0
  326. package/package/acode/dist/tool-group-manager.js +4 -4
  327. package/package/acode/dist/types.d.ts +179 -0
  328. package/package/aws-client-agent-mcp/README.md +130 -215
  329. package/package/aws-client-agent-mcp/dist/ability-market-tools.d.ts +57 -0
  330. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +277 -3
  331. package/package/aws-client-agent-mcp/dist/agent-client.js +1 -1
  332. package/package/aws-client-agent-mcp/dist/config.d.ts +18 -0
  333. package/package/aws-client-agent-mcp/dist/constants.d.ts +2 -0
  334. package/package/aws-client-agent-mcp/dist/context-manager.d.ts +70 -0
  335. package/package/aws-client-agent-mcp/dist/http-client.d.ts +61 -0
  336. package/package/aws-client-agent-mcp/dist/index.d.ts +10 -0
  337. package/package/aws-client-agent-mcp/dist/logger.d.ts +24 -0
  338. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +606 -1
  339. package/package/aws-client-agent-mcp/dist/mcp-server.js +4 -4
  340. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +158 -0
  341. package/package/aws-client-agent-mcp/dist/mcp-tools.js +38 -22
  342. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +81 -0
  343. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +18 -0
  344. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +86 -0
  345. package/package/aws-client-agent-mcp/dist/messageContent.d.ts +24 -0
  346. package/package/aws-client-agent-mcp/dist/office/office-equation.d.ts +19 -0
  347. package/package/aws-client-agent-mcp/dist/office/office-image.d.ts +18 -0
  348. package/package/aws-client-agent-mcp/dist/office/office-workspace.d.ts +29 -0
  349. package/package/aws-client-agent-mcp/dist/parent-lifecycle.d.ts +18 -0
  350. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts +6 -0
  351. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +4 -0
  352. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +41 -0
  353. package/package/aws-client-agent-mcp/dist/tool-groups.d.ts +136 -0
  354. package/package/aws-client-agent-mcp/dist/types.d.ts +123 -0
  355. package/package/aws-client-agent-mcp/dist/watchdog.d.ts +7 -0
  356. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +108 -0
  357. package/package.json +1 -1
@@ -1,13 +1,23 @@
1
1
 
2
2
 
3
+
4
+
5
+
6
+
7
+
8
+
3
9
  export type ProcessState = 'creating' | 'running' | 'stopping' | 'orphaned' | 'terminated' | 'unknown';
4
10
 
11
+
12
+
5
13
  export interface HealthStatus {
6
14
  cpu: number;
7
15
  memoryMB: number;
8
16
  status: string;
9
17
  }
10
18
 
19
+
20
+
11
21
  export interface ProcessRecord {
12
22
  agentId: string;
13
23
  sessionId: string;
@@ -23,6 +33,8 @@ export interface ProcessRecord {
23
33
  metadata?: Record<string, unknown>;
24
34
  }
25
35
 
36
+
37
+
26
38
  export interface PersistedSessionInput {
27
39
  agentId: string;
28
40
  sessionId: string;
@@ -32,57 +44,165 @@ export interface PersistedSessionInput {
32
44
  mode?: 'sdk';
33
45
  }
34
46
 
47
+
48
+
49
+
50
+
35
51
  export declare function getProcessRegistryFile(): string;
36
52
 
53
+
54
+
55
+
56
+
37
57
  export declare class ProcessRegistry {
38
58
  private static instance;
39
59
  private readonly records;
40
60
  private readonly pidToAgentId;
41
61
 
62
+
63
+
42
64
  private constructor();
43
65
 
66
+
67
+
68
+
69
+
44
70
  static getInstance(): ProcessRegistry;
45
71
 
72
+
73
+
46
74
  private persist;
47
75
  private mutate;
48
76
 
77
+
78
+
79
+
80
+
81
+
49
82
  register(record: Omit<ProcessRecord, 'createdAt'>): Promise<void>;
50
83
 
84
+
85
+
86
+
87
+
88
+
89
+
51
90
  update(agentId: string, updates: Partial<ProcessRecord>): Promise<boolean>;
52
91
 
92
+
93
+
94
+
95
+
96
+
53
97
  get(agentId: string): ProcessRecord | undefined;
54
98
 
99
+
100
+
101
+
102
+
103
+
55
104
  getByPid(pid: number): ProcessRecord | undefined;
56
105
 
106
+
107
+
108
+
109
+
57
110
  getAll(): ProcessRecord[];
58
111
 
112
+
113
+
114
+
115
+
116
+
59
117
  getByState(state: ProcessState): ProcessRecord[];
60
118
 
119
+
120
+
121
+
122
+
123
+
61
124
  isManaged(agentId: string): boolean;
62
125
 
126
+
127
+
128
+
129
+
130
+
63
131
  isManagedByPid(pid: number): boolean;
64
132
 
133
+
134
+
135
+
136
+
137
+
65
138
  markOrphaned(agentId: string): Promise<boolean>;
66
139
 
140
+
141
+
142
+
143
+
144
+
67
145
  markTerminated(agentId: string): Promise<boolean>;
68
146
 
147
+
148
+
149
+
150
+
151
+
69
152
  remove(agentId: string): Promise<boolean>;
70
153
 
154
+
155
+
156
+
157
+
158
+
71
159
  updateHeartbeat(agentId: string): Promise<boolean>;
72
160
 
161
+
162
+
163
+
164
+
165
+
166
+
73
167
  updateHealth(agentId: string, health: HealthStatus): Promise<boolean>;
74
168
 
169
+
170
+
171
+
172
+
75
173
  rebuildFromPersisted(sessions: PersistedSessionInput[]): Promise<void>;
76
174
 
175
+
176
+
177
+
178
+
77
179
  exportState(): ProcessRecord[];
78
180
 
181
+
182
+
183
+
184
+
79
185
  getStats(): Record<ProcessState | 'total', number>;
80
186
 
187
+
188
+
81
189
  clear(): Promise<void>;
82
190
  }
83
191
 
192
+
193
+
194
+
195
+
84
196
  export declare function getProcessRegistry(): ProcessRegistry;
85
197
 
198
+
199
+
200
+
201
+
86
202
  export declare function loadPersistedProcessRegistry(): Promise<ProcessRecord[]>;
87
203
 
204
+
205
+
206
+
207
+
88
208
  export declare function savePersistedProcessRegistry(records: ProcessRecord[]): Promise<void>;
@@ -4,6 +4,9 @@ export interface ProcessTopSample {
4
4
  pid: number;
5
5
  name: string;
6
6
 
7
+
8
+
9
+
7
10
  value: number;
8
11
  readBytesPerSecond?: number;
9
12
  writeBytesPerSecond?: number;
@@ -50,4 +53,7 @@ export declare function parseLsofConnectionCounts(output: string): Map<number, {
50
53
 
51
54
  export declare function parseJsonRows<T>(stdout: string): T[];
52
55
 
56
+
57
+
58
+
53
59
  export declare function collectProcessTop(resource: ProcessTopResource, limit: number): Promise<ProcessTopSnapshot>;
@@ -0,0 +1,77 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+ import type { Request } from "express";
18
+ import { type UserScope } from "./user-scope.js";
19
+ export type RequestIdentitySource = "connection-key" | "runtime-token" | "loopback" | "panel-session" | "untrusted";
20
+ export interface RequestIdentity {
21
+ source: RequestIdentitySource;
22
+
23
+ target?: {
24
+ serverUrl: string;
25
+ tenantId?: string;
26
+ userId?: string;
27
+ credentialId?: string;
28
+ instanceId?: string;
29
+ };
30
+
31
+ scope: UserScope | null;
32
+ }
33
+ export declare function isLoopbackRequest(req: Request): boolean;
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+ export declare function resolveCredentialIdentity(req: Request, token: string): RequestIdentity;
42
+
43
+
44
+
45
+
46
+ export declare function readTargetSelectors(req: Request): {
47
+ serverUrl?: string;
48
+ instanceId?: string;
49
+ credentialId?: string;
50
+ identity?: string;
51
+ };
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+ export declare function constrainScopeToTarget(requested: UserScope | null, targetTenantId?: string, targetUserId?: string): UserScope | null;
65
+
66
+
67
+
68
+
69
+
70
+
71
+ export declare function findConfiguredTarget(selectors: ReturnType<typeof readTargetSelectors>): {
72
+ serverUrl: string;
73
+ tenantId?: string;
74
+ userId?: string;
75
+ credentialId?: string;
76
+ instanceId?: string;
77
+ } | undefined;
@@ -0,0 +1,2 @@
1
+ import{findConfigsByConnectionKey as S,getConfiguredConnectionKeys as p,loadConfigs as o}from"./auto-register.js";import{getScopedRuntimeAccessToken as U,validateRuntimeBindingToken as y}from"./runtime-binding.js";import{normalizeUserScope as c}from"./user-scope.js";const v=new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]);function b(e){const n=e.ip||e.socket.remoteAddress||"";return v.has(n)}function B(e,n){const i=String(n||"").trim();if(!i)return{source:"untrusted",scope:null};if(p().includes(i)){const t=f(e),r=S(i);let d=r.length===1?r[0]:void 0;if(!d){const a=h(t);a&&(d=r.find(g=>u(g.serverUrl)===a.serverUrl))}const s=d?I(d,t):void 0;return s?{source:"connection-key",target:s,scope:m(l(e),s.tenantId,s.userId)}:{source:"connection-key",scope:null}}if(y(i)){for(const t of o()){const r=U(t.serverUrl,t.credentialId||t.userKey);if(!r||r!==i)continue;const d=I(t,f(e));return{source:"runtime-token",target:d,scope:m(l(e),d.tenantId,d.userId)}}return{source:"runtime-token",scope:null}}return{source:"untrusted",scope:null}}function l(e){const n=e.body??{};return c(e.header("X-Tenant-Id")??n.tenantId,e.header("X-User-Id")??n.ownerUserId??n.userId)}function I(e,n){return(!n.serverUrl||u(e.serverUrl)===u(n.serverUrl))&&(!n.instanceId||String(e.instanceId||"").trim()===n.instanceId)&&(!n.credentialId||String(e.credentialId||e.userKey||e.serverUrl||"").trim()===n.credentialId)?{serverUrl:u(e.serverUrl),tenantId:String(e.tenantId||"").trim()||void 0,userId:String(e.userId||"").trim()||void 0,credentialId:String(e.credentialId||"").trim()||void 0,instanceId:String(e.instanceId||"").trim()||void 0}:{serverUrl:u(e.serverUrl),tenantId:void 0,userId:void 0}}function f(e){const n=e.body??{},i=(...t)=>{for(const r of t){const d=String(r??"").trim();if(d)return d}};return{serverUrl:i(e.header("X-Scheduler-Base-Url"),n.serverUrl),instanceId:i(e.header("X-Bridge-Instance-Id"),n.instanceId),credentialId:i(e.header("X-Bridge-Credential-Id"),n.credentialId),identity:i(e.header("X-Bridge-Target-Identity"),n.targetIdentity)}}function m(e,n,i){const t=String(n||"").trim(),r=String(i||"").trim();return t?e?e.tenantId!==t||r&&e.userId!==r?null:e:r?c(t,r):null:null}function h(e){const i=o().filter(r=>!(e.serverUrl&&u(r.serverUrl)!==u(e.serverUrl)||e.instanceId&&String(r.instanceId||"").trim()!==e.instanceId||e.credentialId&&String(r.credentialId||"").trim()!==e.credentialId&&String(r.userKey||"").trim()!==e.credentialId||e.identity&&String(r.credentialId||r.userKey||"").trim()!==e.identity));if(i.length!==1)return;const t=i[0];return{serverUrl:u(String(t.serverUrl||"")),tenantId:String(t.tenantId||"").trim()||void 0,userId:String(t.userId||"").trim()||void 0,credentialId:String(t.credentialId||"").trim()||void 0,instanceId:String(t.instanceId||"").trim()||void 0}}function u(e){const n=String(e??"").trim();if(!n)return"";try{return new URL(n).origin.toLowerCase()}catch{return n.replace(/\/+$/,"").toLowerCase()}}export{m as constrainScopeToTarget,h as findConfiguredTarget,b as isLoopbackRequest,f as readTargetSelectors,B as resolveCredentialIdentity};
2
+
@@ -18,4 +18,8 @@ export declare function resetInvalidRequestDumpStateForTest(): void;
18
18
 
19
19
  export declare function getInvalidRequestDumpDir(): string;
20
20
 
21
+
22
+
23
+
24
+
21
25
  export declare function dumpInvalidProviderRequest(input: InvalidProviderRequestDumpInput): Promise<string | null>;
@@ -1,4 +1,9 @@
1
1
 
2
+
3
+
4
+
5
+
6
+
2
7
  export interface RingBufferEntry<T> {
3
8
  data: T;
4
9
  readonly timestamp: number;
@@ -6,6 +11,10 @@ export interface RingBufferEntry<T> {
6
11
  }
7
12
  export type RingBufferSlice<T> = readonly RingBufferEntry<T>[];
8
13
 
14
+
15
+
16
+
17
+
9
18
  export declare class RingBuffer<T> {
10
19
  private readonly entries;
11
20
  private readonly capacity;
@@ -13,21 +22,45 @@ export declare class RingBuffer<T> {
13
22
  private totalAppended;
14
23
  constructor(capacity: number);
15
24
 
25
+
26
+
27
+
28
+
16
29
  append(item: T): RingBufferEntry<T>;
17
30
 
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
18
40
  appendOrMerge(item: T, condition: (lastEntry: RingBufferEntry<T>) => boolean, merge: (last: T, next: T) => T): RingBufferEntry<T>;
19
41
 
42
+
43
+
20
44
  slice(): RingBufferSlice<T>;
21
45
 
46
+
47
+
22
48
  get size(): number;
23
49
 
50
+
51
+
24
52
  getLastN(n: number): RingBufferSlice<T>;
25
53
 
54
+
55
+
56
+
26
57
  getSinceIndex(index: number): {
27
58
  entries: RingBufferSlice<T>;
28
59
  nextIndex: number;
29
60
  oldestIndex: number;
30
61
  };
31
62
 
63
+
64
+
32
65
  clear(): void;
33
66
  }
@@ -4,37 +4,89 @@ export type RuntimeBindingState = {
4
4
  userId?: string;
5
5
  schedulerBaseUrl?: string;
6
6
 
7
+
8
+
9
+
10
+
7
11
  accessToken?: string;
8
12
  tokenHash?: string;
9
13
  createdAt?: string;
10
14
  updatedAt?: string;
11
15
  revokedAt?: string;
12
16
  };
17
+
18
+
19
+
20
+
13
21
  export declare function normalizeSchedulerBaseUrl(value: unknown): string | undefined;
14
22
  export declare function getRuntimePairingCode(): string;
15
23
  export declare function getRuntimeBindingFilePath(): string;
16
24
  export declare function getRuntimeTokenStoreFilePath(): string;
17
- export declare function buildRuntimeTokenKey(serverBaseUrl: unknown): string;
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+ export declare function buildLegacyRuntimeTokenKey(serverBaseUrl: unknown): string;
33
+
34
+
35
+
36
+
37
+
38
+
39
+ export declare function buildRuntimeTokenKey(serverBaseUrl: unknown, userKey?: unknown): string;
18
40
  export declare function saveScopedRuntimeAccessToken(input: {
19
41
  serverBaseUrl: string;
20
42
  accessToken: string;
43
+
44
+ userKey?: string;
21
45
  }): string;
22
- export declare function getScopedRuntimeAccessToken(serverBaseUrl: unknown): string | undefined;
23
- export declare function clearScopedRuntimeAccessToken(serverBaseUrl: unknown): boolean;
46
+
47
+ export declare function getScopedRuntimeAccessToken(serverBaseUrl: unknown, userKey?: unknown): string | undefined;
48
+
49
+ export declare function listScopedRuntimeAccessTokens(serverBaseUrl: unknown): Array<{
50
+ userKeyFingerprint: string;
51
+ accessToken: string;
52
+ }>;
53
+ export declare function clearScopedRuntimeAccessToken(serverBaseUrl: unknown, userKey?: unknown): boolean;
24
54
  export declare function loadRuntimeBinding(): RuntimeBindingState;
25
55
  export declare function getRuntimeBindingPublicState(): Omit<RuntimeBindingState, "tokenHash" | "accessToken"> & {
26
56
  paired: boolean;
27
57
  };
28
58
  export declare function hasRuntimeBinding(): boolean;
29
59
  export declare function validateRuntimeBindingToken(token: unknown): boolean;
30
- export declare function getRuntimeAccessToken(serverBaseUrl?: unknown): string | undefined;
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+ export declare function getRuntimeAccessToken(serverBaseUrl?: unknown, userKey?: unknown): string | undefined;
31
75
  export declare function validateRuntimePairingCode(code: unknown): boolean;
32
76
  export declare function saveRuntimeBinding(input: {
33
77
  accessToken: string;
34
78
  instanceId?: string;
35
79
  userId?: string;
36
80
  schedulerBaseUrl?: string;
81
+
82
+
83
+
84
+
85
+ userKey?: string;
37
86
  }): RuntimeBindingState;
38
87
  export declare function clearRuntimeBinding(): void;
39
88
 
89
+
90
+
91
+
40
92
  export declare function migrateOldBindingDir(): void;
@@ -1,6 +1,6 @@
1
- import m from"node:crypto";import o from"node:fs";import u from"node:path";import{getRuntimeHomeDir as w}from"../config.js";import{createLogger as R}from"../utils/logger.js";const g=R("runtime-binding"),b="sha256",x=v();function v(){const e=m.randomInt(0,1e6);return String(e).padStart(6,"0").replace(/(\d{3})(\d{3})/,"$1-$2")}function a(){return u.join(w(),".aws-bridge")}function p(){return u.join(a(),"binding.json")}function S(){return u.join(a(),"runtime-tokens.properties")}function T(e){return m.createHash(b).update(e,"utf8").digest("hex")}function $(e,t){const n=Buffer.from(e,"hex"),r=Buffer.from(t,"hex");return n.length!==r.length?!1:m.timingSafeEqual(n,r)}function H(e,t){const n=Buffer.from(e,"utf8"),r=Buffer.from(t,"utf8");return n.length!==r.length?!1:m.timingSafeEqual(n,r)}function d(e){return String(e||"").trim()}function I(e){return e.replace(/^((?:https?|wss?):\/\/(?:\[[^\]]+\]|[^/:?#]+):\d+):\d+(?=\/|$)/i,"$1")}function U(e){const t=e.toLowerCase();return t==="localhost"||t==="::1"||t==="[::1]"?"127.0.0.1":t}function f(e){const t=d(e);if(!t)return;const n=I(t);try{const r=new URL(n);return r.protocol==="ws:"?r.protocol="http:":r.protocol==="wss:"?r.protocol="https:":r.protocol=r.protocol.toLowerCase(),r.hostname=U(r.hostname),r.origin}catch{return n.replace(/\/+$/,"")}}function z(){return x}function L(){return p()}function N(){return S()}function F(e){const t=f(e);if(t)return t;const n=String(e||"").trim();return n?n.replace(/\/+$/,"").toLowerCase():""}function y(e){const t=F(e);if(!t)throw new Error("serverBaseUrl is required to build runtime token key");return m.createHash("md5").update(t,"utf8").digest("hex")}function k(){const e=new Map;try{const t=o.readFileSync(S(),"utf8");for(const n of t.split(/\r?\n/)){const r=n.trim();if(!r||r.startsWith("#"))continue;const i=r.indexOf("=");if(i<=0)continue;const s=r.slice(0,i).trim(),c=r.slice(i+1).trim();s&&c&&e.set(s,c)}}catch{}return e}function B(e){o.mkdirSync(a(),{recursive:!0});const t=[...e.entries()].sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>`${n}=${r}`);o.writeFileSync(S(),`${t.join(`
1
+ import m from"node:crypto";import c from"node:fs";import a from"node:path";import{getRuntimeHomeDir as T}from"../config.js";import{createLogger as U}from"../utils/logger.js";import{normalizeSchedulerUrl as F}from"../utils/scheduler-url.js";import{buildTargetKey as I,fingerprintUserKey as H}from"../utils/target-identity.js";const g=U("runtime-binding"),A="sha256",b=K();function K(){const e=m.randomInt(0,1e6);return String(e).padStart(6,"0").replace(/(\d{3})(\d{3})/,"$1-$2")}function d(){return a.join(T(),".aws-bridge")}function h(){return a.join(d(),"binding.json")}function S(){return a.join(d(),"runtime-tokens.properties")}function w(e){return m.createHash(A).update(e,"utf8").digest("hex")}function E(e,n){const t=Buffer.from(e,"hex"),r=Buffer.from(n,"hex");return t.length!==r.length?!1:m.timingSafeEqual(t,r)}function O(e,n){const t=Buffer.from(e,"utf8"),r=Buffer.from(n,"utf8");return t.length!==r.length?!1:m.timingSafeEqual(t,r)}function p(e){return String(e||"").trim()}function f(e){return F(e)}function M(){return b}function W(){return h()}function G(){return S()}function y(e){const n=f(e);if(n)return n;const t=String(e||"").trim();return t?t.replace(/\/+$/,"").toLowerCase():""}function R(e){const n=y(e);if(!n)throw new Error("serverBaseUrl is required to build runtime token key");return m.createHash("md5").update(n,"utf8").digest("hex")}function x(e,n){const t=y(e);if(!t)throw new Error("serverBaseUrl is required to build runtime token key");return I(t,n)}function k(){const e=new Map;try{const n=c.readFileSync(S(),"utf8");for(const t of n.split(/\r?\n/)){const r=t.trim();if(!r||r.startsWith("#"))continue;const i=r.indexOf("=");if(i<=0)continue;const o=r.slice(0,i).trim(),s=r.slice(i+1).trim();o&&s&&e.set(o,s)}}catch{}return e}function B(e){c.mkdirSync(d(),{recursive:!0});const n=[...e.entries()].sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${t}=${r}`);c.writeFileSync(S(),`${n.join(`
2
2
  `)}
3
- `,{encoding:"utf8",mode:384})}function A(e){const t=d(e.accessToken);if(t.length<16)throw new Error("accessToken must be at least 16 characters");const n=y(e.serverBaseUrl),r=k();return r.set(n,t),B(r),n}function O(e){if(e)try{const t=y(e);return k().get(t)}catch{return}}function _(e){if(!e)return!1;try{const t=y(e),n=k(),r=n.delete(t);return r&&B(n),r}catch{return!1}}function j(e){if(!e)return!1;for(const t of k().values())if(H(e,t))return!0;return!1}function l(){try{const e=o.readFileSync(p(),"utf8"),t=JSON.parse(e);if(t?.status==="paired"&&t.tokenHash)return{...t,schedulerBaseUrl:f(t.schedulerBaseUrl)||t.schedulerBaseUrl}}catch{}return{status:"unpaired"}}function J(){const e=l(),t={...e};return delete t.tokenHash,delete t.accessToken,{...t,paired:e.status==="paired"}}function K(){const e=l();return e.status==="paired"&&!!e.tokenHash}function M(e){const t=d(e);if(!t)return!1;const n=l();return n.status==="paired"&&n.tokenHash&&$(T(t),n.tokenHash)?!0:j(t)}function G(e){const t=O(e);if(t)return t;const n=l();if(n.status==="paired"){if(e){const r=f(e),i=f(n.schedulerBaseUrl);return r&&i&&r===i&&d(n.accessToken)||void 0}return d(n.accessToken)||void 0}}function W(e){return String(e||"").trim()===x}function Q(e){const t=d(e.accessToken);if(t.length<16)throw new Error("accessToken must be at least 16 characters");const n=l(),r=f(e.schedulerBaseUrl)||f(n.schedulerBaseUrl),i=new Date().toISOString(),s={status:"paired",instanceId:e.instanceId?String(e.instanceId):n.instanceId,userId:e.userId?String(e.userId):n.userId,schedulerBaseUrl:r,accessToken:t,tokenHash:T(t),createdAt:n.createdAt||i,updatedAt:i};if(o.mkdirSync(a(),{recursive:!0}),o.writeFileSync(p(),`${JSON.stringify(s,null,2)}
4
- `,{encoding:"utf8",mode:384}),s.schedulerBaseUrl){const c=A({serverBaseUrl:s.schedulerBaseUrl,accessToken:t});g.info(`[runtime-bridge] scoped runtime token saved: key=${c}`)}return g.info(`[runtime-bridge] runtime binding saved: ${p()}`),s}function V(){const t={...l(),status:"unpaired",accessToken:void 0,tokenHash:void 0,revokedAt:new Date().toISOString(),updatedAt:new Date().toISOString()};o.mkdirSync(a(),{recursive:!0}),o.writeFileSync(p(),`${JSON.stringify(t,null,2)}
5
- `,{encoding:"utf8",mode:384}),g.info("[runtime-bridge] runtime binding cleared")}function X(){const e=w(),t=u.join(e,".agentswork","runtime-bridge"),n=a();if(t===n||!o.existsSync(t))return;const r=["binding.json","runtime-tokens.properties"];let i=0;for(const s of r){const c=u.join(t,s),h=u.join(n,s);if(o.existsSync(c)&&!o.existsSync(h)){o.mkdirSync(n,{recursive:!0}),o.copyFileSync(c,h);try{o.chmodSync(h,384)}catch{}i++,g.info(`[runtime-bridge] \u5DF2\u8FC1\u79FB ${c} \u2192 ${h}`)}}i>0&&g.info(`[runtime-bridge] \u5DF2\u8FC1\u79FB ${i} \u4E2A\u914D\u7F6E\u6587\u4EF6\u4ECE ${t} \u5230 ${n}`)}export{y as buildRuntimeTokenKey,V as clearRuntimeBinding,_ as clearScopedRuntimeAccessToken,G as getRuntimeAccessToken,L as getRuntimeBindingFilePath,J as getRuntimeBindingPublicState,z as getRuntimePairingCode,N as getRuntimeTokenStoreFilePath,O as getScopedRuntimeAccessToken,K as hasRuntimeBinding,l as loadRuntimeBinding,X as migrateOldBindingDir,f as normalizeSchedulerBaseUrl,Q as saveRuntimeBinding,A as saveScopedRuntimeAccessToken,M as validateRuntimeBindingToken,W as validateRuntimePairingCode};
3
+ `,{encoding:"utf8",mode:384})}function j(e){const n=p(e.accessToken);if(n.length<16)throw new Error("accessToken must be at least 16 characters");const t=x(e.serverBaseUrl,e.userKey),r=k();return r.set(t,n),B(r),t}function D(e,n){if(e)try{const t=k(),r=x(e,n),i=t.get(r);if(i)return i;if(!!String(n||"").trim())return;const s=v(e);return s.length===1?s[0].accessToken:s.length>1?void 0:t.get(R(e))}catch{return}}function v(e){const n=y(e);if(!n)return[];const t=[],r=`${n}#`;for(const[i,o]of k().entries())i.startsWith(r)&&t.push({userKeyFingerprint:i.slice(r.length),accessToken:o});return t}function Q(e,n){if(!e)return!1;try{const t=k(),r=t.delete(x(e,n)),i=String(n||"").trim()?!1:t.delete(R(e));return(r||i)&&B(t),r||i}catch{return!1}}function q(e){if(!e)return!1;for(const n of k().values())if(O(e,n))return!0;return!1}function l(){try{const e=c.readFileSync(h(),"utf8"),n=JSON.parse(e);if(n?.status==="paired"&&n.tokenHash)return{...n,schedulerBaseUrl:f(n.schedulerBaseUrl)||n.schedulerBaseUrl}}catch{}return{status:"unpaired"}}function V(){const e=l(),n={...e};return delete n.tokenHash,delete n.accessToken,{...n,paired:e.status==="paired"}}function X(){const e=l();return e.status==="paired"&&!!e.tokenHash}function Y(e){const n=p(e);if(!n)return!1;const t=l();return t.status==="paired"&&t.tokenHash&&E(w(n),t.tokenHash)?!0:q(n)}function Z(e,n){const t=D(e,n);if(t)return t;const r=l();if(r.status==="paired"){if(e){const i=f(e),o=f(r.schedulerBaseUrl);if(i&&o&&i===o){if(String(n||"").trim()){const s=v(i),u=new Set(s.map($=>$.userKeyFingerprint));if(u.size>1&&!u.has(H(n)))return}return p(r.accessToken)||void 0}return}return p(r.accessToken)||void 0}}function ee(e){return String(e||"").trim()===b}function ne(e){const n=p(e.accessToken);if(n.length<16)throw new Error("accessToken must be at least 16 characters");const t=l(),r=f(e.schedulerBaseUrl)||f(t.schedulerBaseUrl),i=new Date().toISOString(),o={status:"paired",instanceId:e.instanceId?String(e.instanceId):t.instanceId,userId:e.userId?String(e.userId):t.userId,schedulerBaseUrl:r,accessToken:n,tokenHash:w(n),createdAt:t.createdAt||i,updatedAt:i};if(c.mkdirSync(d(),{recursive:!0}),c.writeFileSync(h(),`${JSON.stringify(o,null,2)}
4
+ `,{encoding:"utf8",mode:384}),o.schedulerBaseUrl){const s=j({serverBaseUrl:o.schedulerBaseUrl,accessToken:n,userKey:e.userKey});g.info(`[runtime-bridge] scoped runtime token saved: key=${s}`+(e.userKey?` (userKey=****${String(e.userKey).slice(-4)})`:""))}return g.info(`[runtime-bridge] runtime binding saved: ${h()}`),o}function te(){const n={...l(),status:"unpaired",accessToken:void 0,tokenHash:void 0,revokedAt:new Date().toISOString(),updatedAt:new Date().toISOString()};c.mkdirSync(d(),{recursive:!0}),c.writeFileSync(h(),`${JSON.stringify(n,null,2)}
5
+ `,{encoding:"utf8",mode:384}),g.info("[runtime-bridge] runtime binding cleared")}function re(){const e=T(),n=a.join(e,".agentswork","runtime-bridge"),t=d();if(n===t||!c.existsSync(n))return;const r=["binding.json","runtime-tokens.properties"];let i=0;for(const o of r){const s=a.join(n,o),u=a.join(t,o);if(c.existsSync(s)&&!c.existsSync(u)){c.mkdirSync(t,{recursive:!0}),c.copyFileSync(s,u);try{c.chmodSync(u,384)}catch{}i++,g.info(`[runtime-bridge] \u5DF2\u8FC1\u79FB ${s} \u2192 ${u}`)}}i>0&&g.info(`[runtime-bridge] \u5DF2\u8FC1\u79FB ${i} \u4E2A\u914D\u7F6E\u6587\u4EF6\u4ECE ${n} \u5230 ${t}`)}export{R as buildLegacyRuntimeTokenKey,x as buildRuntimeTokenKey,te as clearRuntimeBinding,Q as clearScopedRuntimeAccessToken,Z as getRuntimeAccessToken,W as getRuntimeBindingFilePath,V as getRuntimeBindingPublicState,M as getRuntimePairingCode,G as getRuntimeTokenStoreFilePath,D as getScopedRuntimeAccessToken,X as hasRuntimeBinding,v as listScopedRuntimeAccessTokens,l as loadRuntimeBinding,re as migrateOldBindingDir,f as normalizeSchedulerBaseUrl,ne as saveRuntimeBinding,j as saveScopedRuntimeAccessToken,Y as validateRuntimeBindingToken,ee as validateRuntimePairingCode};
6
6
 
@@ -8,8 +8,25 @@ export interface GracefulShutdownPlan {
8
8
  stopTunnelClient: boolean;
9
9
  }
10
10
 
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
11
20
  export declare function buildGracefulShutdownPlan(preserveSessions: boolean): GracefulShutdownPlan;
12
21
 
22
+
23
+
24
+
25
+
13
26
  export declare function shouldCleanupPersistedSessionsOnStartup(preserveSessions: boolean, env?: NodeJS.ProcessEnv): boolean;
14
27
 
28
+
29
+
30
+
31
+
15
32
  export declare function shouldAutoCleanOrphanProcesses(env?: NodeJS.ProcessEnv): boolean;
@@ -1,3 +1,29 @@
1
1
 
2
2
 
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
3
29
  export declare function buildRuntimeResourcesSnapshot(agentId: string | undefined): Promise<string | null>;
@@ -1,9 +1,18 @@
1
1
  import { type ProviderEvent } from "../adapter/types.js";
2
2
 
3
+
4
+
5
+
3
6
  export declare function onSdkToolUseStart(sessionId: string, toolUseId: string | undefined, toolInput: Record<string, unknown> | undefined, toolName?: string, workspacePath?: string): void;
4
7
 
8
+
9
+
10
+
5
11
  export declare function forgetSession(sessionId: string): void;
6
12
 
13
+
14
+
15
+
7
16
  export declare function onSdkToolUseEnd(event: ProviderEvent, entry: {
8
17
  sessionId: string;
9
18
  agentId: string;