aws-runtime-bridge 1.9.79 → 1.9.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts +0 -1
  2. package/dist/adapter/AcodeSdkAdapter.js +11 -1986
  3. package/dist/adapter/AdapterRegistry.d.ts +0 -1
  4. package/dist/adapter/AdapterRegistry.js +2 -100
  5. package/dist/adapter/ClaudeSdkAdapter.d.ts +0 -1
  6. package/dist/adapter/ClaudeSdkAdapter.js +4 -1300
  7. package/dist/adapter/CodexSdkAdapter.d.ts +0 -1
  8. package/dist/adapter/CodexSdkAdapter.js +4 -836
  9. package/dist/adapter/OpencodeSdkAdapter.d.ts +0 -1
  10. package/dist/adapter/OpencodeSdkAdapter.js +4 -879
  11. package/dist/adapter/SdkProviderSpi.d.ts +0 -1
  12. package/dist/adapter/SdkProviderSpi.js +2 -55
  13. package/dist/adapter/acode-tool-names.d.ts +0 -1
  14. package/dist/adapter/acode-tool-names.js +2 -37
  15. package/dist/adapter/idle-poll-loop.d.ts +0 -1
  16. package/dist/adapter/idle-poll-loop.js +2 -59
  17. package/dist/adapter/index.d.ts +0 -1
  18. package/dist/adapter/index.js +2 -11
  19. package/dist/adapter/instance-ai-config-resolver.d.ts +0 -1
  20. package/dist/adapter/instance-ai-config-resolver.js +2 -46
  21. package/dist/adapter/types.d.ts +0 -1
  22. package/dist/adapter/types.js +2 -443
  23. package/dist/adapters/cc-switch/common.d.ts +0 -1
  24. package/dist/adapters/cc-switch/common.js +2 -61
  25. package/dist/adapters/cc-switch/index.d.ts +0 -1
  26. package/dist/adapters/cc-switch/index.js +2 -57
  27. package/dist/adapters/cc-switch/mcp-acode.d.ts +0 -1
  28. package/dist/adapters/cc-switch/mcp-acode.js +2 -71
  29. package/dist/adapters/cc-switch/mcp-claude.d.ts +0 -1
  30. package/dist/adapters/cc-switch/mcp-claude.js +2 -89
  31. package/dist/adapters/cc-switch/mcp-claudecode.d.ts +0 -1
  32. package/dist/adapters/cc-switch/mcp-claudecode.js +2 -77
  33. package/dist/adapters/cc-switch/mcp-codex.d.ts +0 -1
  34. package/dist/adapters/cc-switch/mcp-codex.js +11 -249
  35. package/dist/adapters/cc-switch/mcp-opencode.d.ts +0 -1
  36. package/dist/adapters/cc-switch/mcp-opencode.js +2 -97
  37. package/dist/adapters/cc-switch/mcp-placeholder.d.ts +0 -1
  38. package/dist/adapters/cc-switch/mcp-placeholder.js +2 -19
  39. package/dist/adapters/cc-switch/skill-acode.d.ts +0 -1
  40. package/dist/adapters/cc-switch/skill-acode.js +2 -12
  41. package/dist/adapters/cc-switch/skill-claude.d.ts +0 -1
  42. package/dist/adapters/cc-switch/skill-claude.js +2 -11
  43. package/dist/adapters/cc-switch/skill-claudecode.d.ts +0 -1
  44. package/dist/adapters/cc-switch/skill-claudecode.js +2 -11
  45. package/dist/adapters/cc-switch/skill-codex.d.ts +0 -1
  46. package/dist/adapters/cc-switch/skill-codex.js +2 -6
  47. package/dist/adapters/cc-switch/skill-directory.d.ts +0 -1
  48. package/dist/adapters/cc-switch/skill-directory.js +3 -137
  49. package/dist/adapters/cc-switch/skill-opencode.d.ts +0 -1
  50. package/dist/adapters/cc-switch/skill-opencode.js +2 -11
  51. package/dist/adapters/cc-switch/skill-placeholder.d.ts +0 -1
  52. package/dist/adapters/cc-switch/skill-placeholder.js +2 -19
  53. package/dist/config.d.ts +0 -1
  54. package/dist/config.js +2 -290
  55. package/dist/index.d.ts +0 -1
  56. package/dist/index.js +2 -573
  57. package/dist/middleware/auth.d.ts +0 -1
  58. package/dist/middleware/auth.js +2 -98
  59. package/dist/routes/acode-todos.d.ts +0 -1
  60. package/dist/routes/acode-todos.js +2 -75
  61. package/dist/routes/ai-sources.d.ts +0 -1
  62. package/dist/routes/ai-sources.js +2 -132
  63. package/dist/routes/dashboard.d.ts +0 -1
  64. package/dist/routes/dashboard.js +182 -649
  65. package/dist/routes/events.d.ts +0 -1
  66. package/dist/routes/events.js +2 -22
  67. package/dist/routes/file-browser.d.ts +0 -1
  68. package/dist/routes/file-browser.js +2 -781
  69. package/dist/routes/file-diff-rollback.d.ts +0 -1
  70. package/dist/routes/file-diff-rollback.js +2 -301
  71. package/dist/routes/file-snapshot.d.ts +0 -1
  72. package/dist/routes/file-snapshot.js +2 -156
  73. package/dist/routes/git.d.ts +0 -1
  74. package/dist/routes/git.js +28 -1900
  75. package/dist/routes/instance.d.ts +0 -1
  76. package/dist/routes/instance.js +3 -748
  77. package/dist/routes/mcp.d.ts +0 -1
  78. package/dist/routes/mcp.js +2 -196
  79. package/dist/routes/processes.d.ts +0 -1
  80. package/dist/routes/processes.js +2 -252
  81. package/dist/routes/properties.d.ts +0 -1
  82. package/dist/routes/properties.js +2 -72
  83. package/dist/routes/pty.d.ts +0 -1
  84. package/dist/routes/pty.js +6 -560
  85. package/dist/routes/runtime-binding.d.ts +0 -1
  86. package/dist/routes/runtime-binding.js +2 -263
  87. package/dist/routes/sessions.d.ts +0 -1
  88. package/dist/routes/sessions.js +2 -758
  89. package/dist/routes/skills.d.ts +0 -1
  90. package/dist/routes/skills.js +2 -187
  91. package/dist/routes/sub-agents.d.ts +0 -1
  92. package/dist/routes/sub-agents.js +20 -279
  93. package/dist/routes/system-metrics.d.ts +0 -1
  94. package/dist/routes/system-metrics.js +2 -20
  95. package/dist/routes/task-context.d.ts +0 -1
  96. package/dist/routes/task-context.js +2 -78
  97. package/dist/routes/terminal.d.ts +0 -1
  98. package/dist/routes/terminal.js +54 -2882
  99. package/dist/routes/yml.d.ts +0 -1
  100. package/dist/routes/yml.js +2 -223
  101. package/dist/services/acode-package.d.ts +0 -1
  102. package/dist/services/acode-package.js +2 -111
  103. package/dist/services/agent-event-store.d.ts +0 -1
  104. package/dist/services/agent-event-store.js +2 -81
  105. package/dist/services/agent-process-manager.d.ts +0 -1
  106. package/dist/services/agent-process-manager.js +2 -796
  107. package/dist/services/ai-source-apply.d.ts +0 -1
  108. package/dist/services/ai-source-apply.js +2 -83
  109. package/dist/services/auto-register.d.ts +5 -1
  110. package/dist/services/auto-register.js +2 -1053
  111. package/dist/services/aws-client-agent-mcp.d.ts +0 -1
  112. package/dist/services/aws-client-agent-mcp.js +3 -337
  113. package/dist/services/bridge-package-publish-hooks.d.ts +0 -1
  114. package/dist/services/bridge-package-publish-hooks.js +2 -115
  115. package/dist/services/cc-switch-sdk.d.ts +0 -1
  116. package/dist/services/cc-switch-sdk.js +2 -135
  117. package/dist/services/cli-commands.d.ts +6 -1
  118. package/dist/services/cli-commands.js +6 -645
  119. package/dist/services/event-delta-pusher.d.ts +0 -1
  120. package/dist/services/event-delta-pusher.js +2 -95
  121. package/dist/services/fileSnapshotStore.d.ts +0 -1
  122. package/dist/services/fileSnapshotStore.js +2 -500
  123. package/dist/services/instance-ai-config-service.d.ts +0 -1
  124. package/dist/services/instance-ai-config-service.js +2 -174
  125. package/dist/services/instance-init-service.d.ts +0 -1
  126. package/dist/services/instance-init-service.js +2 -193
  127. package/dist/services/instance-service.d.ts +0 -1
  128. package/dist/services/instance-service.js +2 -237
  129. package/dist/services/instance-state.d.ts +0 -1
  130. package/dist/services/instance-state.js +2 -94
  131. package/dist/services/legacy-path-migration.d.ts +0 -1
  132. package/dist/services/legacy-path-migration.js +2 -66
  133. package/dist/services/lifecycle-state.d.ts +0 -1
  134. package/dist/services/lifecycle-state.js +3 -110
  135. package/dist/services/mcp-launch-binding-queue.d.ts +0 -1
  136. package/dist/services/mcp-launch-binding-queue.js +2 -175
  137. package/dist/services/orphan-monitor.d.ts +0 -1
  138. package/dist/services/orphan-monitor.js +2 -382
  139. package/dist/services/panel-auth.d.ts +0 -1
  140. package/dist/services/panel-auth.js +2 -168
  141. package/dist/services/process-detector.d.ts +0 -1
  142. package/dist/services/process-detector.js +18 -1019
  143. package/dist/services/process-registry.d.ts +0 -1
  144. package/dist/services/process-registry.js +2 -375
  145. package/dist/services/ring-buffer.d.ts +0 -1
  146. package/dist/services/ring-buffer.js +2 -103
  147. package/dist/services/runtime-binding.d.ts +0 -1
  148. package/dist/services/runtime-binding.js +6 -363
  149. package/dist/services/runtime-lifecycle-policy.d.ts +0 -1
  150. package/dist/services/runtime-lifecycle-policy.js +2 -35
  151. package/dist/services/session-output.d.ts +0 -1
  152. package/dist/services/session-output.js +5 -539
  153. package/dist/services/startup-config-wizard.d.ts +0 -1
  154. package/dist/services/startup-config-wizard.js +14 -258
  155. package/dist/services/sub-agent-manager-instance.d.ts +0 -1
  156. package/dist/services/sub-agent-manager-instance.js +2 -12
  157. package/dist/services/system-metrics.d.ts +0 -1
  158. package/dist/services/system-metrics.js +2 -252
  159. package/dist/services/terminal-persistence.d.ts +0 -1
  160. package/dist/services/terminal-persistence.js +2 -176
  161. package/dist/services/tool-installer.d.ts +0 -1
  162. package/dist/services/tool-installer.js +5 -751
  163. package/dist/services/tunnel-client.d.ts +0 -1
  164. package/dist/services/tunnel-client.js +2 -402
  165. package/dist/services/windows-service-manager.d.ts +3 -3
  166. package/dist/services/windows-service-manager.js +2 -59
  167. package/dist/services/workspace-files.d.ts +0 -1
  168. package/dist/services/workspace-files.js +2 -1275
  169. package/dist/services/workspace-watch.d.ts +0 -1
  170. package/dist/services/workspace-watch.js +2 -123
  171. package/dist/services/workspaceTaskChangeWatcher.d.ts +0 -1
  172. package/dist/services/workspaceTaskChangeWatcher.js +2 -483
  173. package/dist/types.d.ts +0 -1
  174. package/dist/types.js +1 -1
  175. package/dist/utils/file-utils.d.ts +0 -1
  176. package/dist/utils/file-utils.js +3 -208
  177. package/dist/utils/instance-ai-config-debug-logger.d.ts +0 -1
  178. package/dist/utils/instance-ai-config-debug-logger.js +4 -63
  179. package/dist/utils/logger.d.ts +0 -1
  180. package/dist/utils/logger.js +2 -154
  181. package/dist/utils/mcp-utils.d.ts +0 -1
  182. package/dist/utils/mcp-utils.js +2 -187
  183. package/dist/utils/path-utils.d.ts +0 -1
  184. package/dist/utils/path-utils.js +2 -44
  185. package/dist/utils/sdk-package-loader.d.ts +0 -1
  186. package/dist/utils/sdk-package-loader.js +2 -78
  187. package/dist/utils/validation.d.ts +0 -1
  188. package/dist/utils/validation.js +2 -53
  189. package/dist/utils/yaml-utils.d.ts +0 -1
  190. package/dist/utils/yaml-utils.js +2 -312
  191. package/node_modules/@cc-switch/sdk/dist/constants.d.ts +0 -1
  192. package/node_modules/@cc-switch/sdk/dist/constants.js +2 -63
  193. package/node_modules/@cc-switch/sdk/dist/errors.d.ts +0 -1
  194. package/node_modules/@cc-switch/sdk/dist/errors.js +2 -8
  195. package/node_modules/@cc-switch/sdk/dist/index.d.ts +0 -1
  196. package/node_modules/@cc-switch/sdk/dist/index.js +2 -9
  197. package/node_modules/@cc-switch/sdk/dist/schemas.d.ts +0 -1
  198. package/node_modules/@cc-switch/sdk/dist/schemas.js +2 -38
  199. package/node_modules/@cc-switch/sdk/dist/sdk.d.ts +0 -1
  200. package/node_modules/@cc-switch/sdk/dist/sdk.js +2 -470
  201. package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.d.ts +0 -1
  202. package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.js +4 -307
  203. package/node_modules/@cc-switch/sdk/dist/services/mcp-model.d.ts +0 -1
  204. package/node_modules/@cc-switch/sdk/dist/services/mcp-model.js +2 -37
  205. package/node_modules/@cc-switch/sdk/dist/services/mcp-service.d.ts +0 -1
  206. package/node_modules/@cc-switch/sdk/dist/services/mcp-service.js +2 -9
  207. package/node_modules/@cc-switch/sdk/dist/services/skill-model.d.ts +0 -1
  208. package/node_modules/@cc-switch/sdk/dist/services/skill-model.js +2 -41
  209. package/node_modules/@cc-switch/sdk/dist/services/skill-service.d.ts +0 -1
  210. package/node_modules/@cc-switch/sdk/dist/services/skill-service.js +2 -9
  211. package/node_modules/@cc-switch/sdk/dist/state.d.ts +0 -1
  212. package/node_modules/@cc-switch/sdk/dist/state.js +2 -19
  213. package/node_modules/@cc-switch/sdk/dist/types.d.ts +0 -1
  214. package/node_modules/@cc-switch/sdk/dist/types.js +1 -1
  215. package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts +0 -1
  216. package/node_modules/@cc-switch/sdk/dist/utils/fs.js +3 -114
  217. package/node_modules/@cc-switch/sdk/dist/utils/id.d.ts +0 -1
  218. package/node_modules/@cc-switch/sdk/dist/utils/id.js +2 -12
  219. package/node_modules/@cc-switch/sdk/package.json +1 -1
  220. package/package/acode/dist/ask-user-question-tool.d.ts +0 -1
  221. package/package/acode/dist/ask-user-question-tool.js +4 -233
  222. package/package/acode/dist/built-in-file-tools.d.ts +0 -1
  223. package/package/acode/dist/built-in-file-tools.js +4 -966
  224. package/package/acode/dist/built-in-symbols-tool.d.ts +0 -1
  225. package/package/acode/dist/built-in-symbols-tool.js +2 -117
  226. package/package/acode/dist/builtins/commandArtifacts.d.ts +0 -1
  227. package/package/acode/dist/builtins/commandArtifacts.js +9 -97
  228. package/package/acode/dist/builtins/commandOutputEvents.d.ts +0 -1
  229. package/package/acode/dist/builtins/commandOutputEvents.js +2 -56
  230. package/package/acode/dist/builtins/shellCommandPreparation.d.ts +0 -1
  231. package/package/acode/dist/builtins/shellCommandPreparation.js +5 -44
  232. package/package/acode/dist/builtins/shellCommandResult.d.ts +0 -1
  233. package/package/acode/dist/builtins/shellCommandResult.js +2 -71
  234. package/package/acode/dist/builtins/shellCommandRunner.d.ts +0 -1
  235. package/package/acode/dist/builtins/shellCommandRunner.js +2 -115
  236. package/package/acode/dist/builtins/shellOutputDecoder.d.ts +0 -1
  237. package/package/acode/dist/builtins/shellOutputDecoder.js +2 -94
  238. package/package/acode/dist/cli.d.ts +0 -1
  239. package/package/acode/dist/cli.js +4 -38
  240. package/package/acode/dist/commands/commandLoader.d.ts +0 -1
  241. package/package/acode/dist/commands/commandLoader.js +2 -33
  242. package/package/acode/dist/commands/commandParser.d.ts +0 -1
  243. package/package/acode/dist/commands/commandParser.js +3 -77
  244. package/package/acode/dist/commands/commandRegistry.d.ts +0 -1
  245. package/package/acode/dist/commands/commandRegistry.js +2 -30
  246. package/package/acode/dist/compaction.d.ts +0 -1
  247. package/package/acode/dist/compaction.js +7 -919
  248. package/package/acode/dist/config.d.ts +0 -1
  249. package/package/acode/dist/config.js +5 -105
  250. package/package/acode/dist/fs-utils.d.ts +0 -1
  251. package/package/acode/dist/fs-utils.js +2 -79
  252. package/package/acode/dist/hooks/hookBus.d.ts +0 -1
  253. package/package/acode/dist/hooks/hookBus.js +2 -40
  254. package/package/acode/dist/index.d.ts +0 -1
  255. package/package/acode/dist/index.js +2 -19
  256. package/package/acode/dist/mcpToolNames.d.ts +0 -1
  257. package/package/acode/dist/mcpToolNames.js +2 -17
  258. package/package/acode/dist/parsers/ast-cache.d.ts +0 -1
  259. package/package/acode/dist/parsers/ast-cache.js +2 -76
  260. package/package/acode/dist/parsers/language-detector.d.ts +0 -1
  261. package/package/acode/dist/parsers/language-detector.js +2 -44
  262. package/package/acode/dist/parsers/language-queries.d.ts +0 -1
  263. package/package/acode/dist/parsers/language-queries.js +12 -602
  264. package/package/acode/dist/parsers/symbol-extractor.d.ts +0 -1
  265. package/package/acode/dist/parsers/symbol-extractor.js +3 -164
  266. package/package/acode/dist/parsers/tree-sitter-loader.d.ts +0 -1
  267. package/package/acode/dist/parsers/tree-sitter-loader.js +2 -64
  268. package/package/acode/dist/parsers/types.d.ts +0 -1
  269. package/package/acode/dist/parsers/types.js +1 -7
  270. package/package/acode/dist/runtime.d.ts +0 -1
  271. package/package/acode/dist/runtime.js +86 -3771
  272. package/package/acode/dist/skill-tool.d.ts +0 -1
  273. package/package/acode/dist/skill-tool.js +5 -174
  274. package/package/acode/dist/sub-agent-manager.d.ts +0 -1
  275. package/package/acode/dist/sub-agent-manager.js +2 -1159
  276. package/package/acode/dist/sub-agent-store.d.ts +0 -1
  277. package/package/acode/dist/sub-agent-store.js +4 -236
  278. package/package/acode/dist/sub-agent-tools.d.ts +0 -1
  279. package/package/acode/dist/sub-agent-tools.js +15 -369
  280. package/package/acode/dist/sub-agent-types.d.ts +0 -1
  281. package/package/acode/dist/sub-agent-types.js +1 -8
  282. package/package/acode/dist/todo-store.d.ts +0 -1
  283. package/package/acode/dist/todo-store.js +2 -73
  284. package/package/acode/dist/todo-tool.d.ts +0 -1
  285. package/package/acode/dist/todo-tool.js +5 -121
  286. package/package/acode/dist/types.d.ts +0 -1
  287. package/package/acode/dist/types.js +1 -1
  288. package/package/acode/package.json +2 -2
  289. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +0 -1
  290. package/package/aws-client-agent-mcp/dist/agent-client.js +2 -890
  291. package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts +0 -1
  292. package/package/aws-client-agent-mcp/dist/agent-client.test.js +0 -1
  293. package/package/aws-client-agent-mcp/dist/config.d.ts +0 -1
  294. package/package/aws-client-agent-mcp/dist/config.js +2 -243
  295. package/package/aws-client-agent-mcp/dist/config.test.d.ts +0 -1
  296. package/package/aws-client-agent-mcp/dist/config.test.js +0 -1
  297. package/package/aws-client-agent-mcp/dist/constants.d.ts +0 -1
  298. package/package/aws-client-agent-mcp/dist/constants.js +2 -24
  299. package/package/aws-client-agent-mcp/dist/context-manager.d.ts +0 -1
  300. package/package/aws-client-agent-mcp/dist/context-manager.js +2 -477
  301. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +0 -1
  302. package/package/aws-client-agent-mcp/dist/context-manager.test.js +0 -1
  303. package/package/aws-client-agent-mcp/dist/http-client.d.ts +0 -1
  304. package/package/aws-client-agent-mcp/dist/http-client.js +2 -446
  305. package/package/aws-client-agent-mcp/dist/http-client.test.d.ts +0 -1
  306. package/package/aws-client-agent-mcp/dist/http-client.test.js +0 -1
  307. package/package/aws-client-agent-mcp/dist/index.d.ts +0 -1
  308. package/package/aws-client-agent-mcp/dist/index.js +2 -34
  309. package/package/aws-client-agent-mcp/dist/logger.d.ts +0 -1
  310. package/package/aws-client-agent-mcp/dist/logger.js +3 -178
  311. package/package/aws-client-agent-mcp/dist/logger.test.d.ts +0 -1
  312. package/package/aws-client-agent-mcp/dist/logger.test.js +0 -1
  313. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +0 -1
  314. package/package/aws-client-agent-mcp/dist/mcp-server.js +38 -2709
  315. package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts +0 -1
  316. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +0 -1
  317. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +0 -1
  318. package/package/aws-client-agent-mcp/dist/mcp-tools.js +22 -562
  319. package/package/aws-client-agent-mcp/dist/mcp-tools.test.d.ts +0 -1
  320. package/package/aws-client-agent-mcp/dist/mcp-tools.test.js +0 -1
  321. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +0 -1
  322. package/package/aws-client-agent-mcp/dist/memory-store.js +4 -826
  323. package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts +0 -1
  324. package/package/aws-client-agent-mcp/dist/memory-store.test.js +0 -1
  325. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +0 -1
  326. package/package/aws-client-agent-mcp/dist/memory-tools.js +31 -294
  327. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +0 -1
  328. package/package/aws-client-agent-mcp/dist/message-buffer.js +2 -288
  329. package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts +0 -1
  330. package/package/aws-client-agent-mcp/dist/message-buffer.test.js +0 -1
  331. package/package/aws-client-agent-mcp/dist/messageContent.d.ts +0 -1
  332. package/package/aws-client-agent-mcp/dist/messageContent.js +2 -125
  333. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts +0 -1
  334. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js +2 -103
  335. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts +0 -1
  336. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js +0 -1
  337. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +0 -1
  338. package/package/aws-client-agent-mcp/dist/server-memory-store.js +2 -96
  339. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +0 -1
  340. package/package/aws-client-agent-mcp/dist/status-reporter.js +3 -327
  341. package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts +0 -1
  342. package/package/aws-client-agent-mcp/dist/status-reporter.test.js +0 -1
  343. package/package/aws-client-agent-mcp/dist/types.d.ts +0 -1
  344. package/package/aws-client-agent-mcp/dist/types.js +2 -9
  345. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +0 -1
  346. package/package/aws-client-agent-mcp/dist/websocket-client.js +2 -677
  347. package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts +0 -1
  348. package/package/aws-client-agent-mcp/dist/websocket-client.test.js +0 -1
  349. package/package/aws-client-agent-mcp/package.json +1 -1
  350. package/package/cc-switch-sdk/dist/constants.d.ts +0 -1
  351. package/package/cc-switch-sdk/dist/constants.js +2 -63
  352. package/package/cc-switch-sdk/dist/errors.d.ts +0 -1
  353. package/package/cc-switch-sdk/dist/errors.js +2 -8
  354. package/package/cc-switch-sdk/dist/index.d.ts +0 -1
  355. package/package/cc-switch-sdk/dist/index.js +2 -9
  356. package/package/cc-switch-sdk/dist/schemas.d.ts +0 -1
  357. package/package/cc-switch-sdk/dist/schemas.js +2 -38
  358. package/package/cc-switch-sdk/dist/sdk.d.ts +0 -1
  359. package/package/cc-switch-sdk/dist/sdk.js +2 -470
  360. package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts +0 -1
  361. package/package/cc-switch-sdk/dist/services/ai-config-service.js +4 -307
  362. package/package/cc-switch-sdk/dist/services/mcp-model.d.ts +0 -1
  363. package/package/cc-switch-sdk/dist/services/mcp-model.js +2 -37
  364. package/package/cc-switch-sdk/dist/services/mcp-service.d.ts +0 -1
  365. package/package/cc-switch-sdk/dist/services/mcp-service.js +2 -9
  366. package/package/cc-switch-sdk/dist/services/skill-model.d.ts +0 -1
  367. package/package/cc-switch-sdk/dist/services/skill-model.js +2 -41
  368. package/package/cc-switch-sdk/dist/services/skill-service.d.ts +0 -1
  369. package/package/cc-switch-sdk/dist/services/skill-service.js +2 -9
  370. package/package/cc-switch-sdk/dist/state.d.ts +0 -1
  371. package/package/cc-switch-sdk/dist/state.js +2 -19
  372. package/package/cc-switch-sdk/dist/types.d.ts +0 -1
  373. package/package/cc-switch-sdk/dist/types.js +1 -1
  374. package/package/cc-switch-sdk/dist/utils/fs.d.ts +0 -1
  375. package/package/cc-switch-sdk/dist/utils/fs.js +3 -114
  376. package/package/cc-switch-sdk/dist/utils/id.d.ts +0 -1
  377. package/package/cc-switch-sdk/dist/utils/id.js +2 -12
  378. package/package/cc-switch-sdk/package.json +1 -1
  379. package/package.json +4 -2
  380. package/dist/adapter/AcodeSdkAdapter.d.ts.map +0 -1
  381. package/dist/adapter/AdapterRegistry.d.ts.map +0 -1
  382. package/dist/adapter/ClaudeSdkAdapter.d.ts.map +0 -1
  383. package/dist/adapter/CodexSdkAdapter.d.ts.map +0 -1
  384. package/dist/adapter/OpencodeSdkAdapter.d.ts.map +0 -1
  385. package/dist/adapter/SdkProviderSpi.d.ts.map +0 -1
  386. package/dist/adapter/acode-tool-names.d.ts.map +0 -1
  387. package/dist/adapter/idle-poll-loop.d.ts.map +0 -1
  388. package/dist/adapter/index.d.ts.map +0 -1
  389. package/dist/adapter/instance-ai-config-resolver.d.ts.map +0 -1
  390. package/dist/adapter/types.d.ts.map +0 -1
  391. package/dist/adapters/cc-switch/common.d.ts.map +0 -1
  392. package/dist/adapters/cc-switch/index.d.ts.map +0 -1
  393. package/dist/adapters/cc-switch/mcp-acode.d.ts.map +0 -1
  394. package/dist/adapters/cc-switch/mcp-claude.d.ts.map +0 -1
  395. package/dist/adapters/cc-switch/mcp-claudecode.d.ts.map +0 -1
  396. package/dist/adapters/cc-switch/mcp-codex.d.ts.map +0 -1
  397. package/dist/adapters/cc-switch/mcp-opencode.d.ts.map +0 -1
  398. package/dist/adapters/cc-switch/mcp-placeholder.d.ts.map +0 -1
  399. package/dist/adapters/cc-switch/skill-acode.d.ts.map +0 -1
  400. package/dist/adapters/cc-switch/skill-claude.d.ts.map +0 -1
  401. package/dist/adapters/cc-switch/skill-claudecode.d.ts.map +0 -1
  402. package/dist/adapters/cc-switch/skill-codex.d.ts.map +0 -1
  403. package/dist/adapters/cc-switch/skill-directory.d.ts.map +0 -1
  404. package/dist/adapters/cc-switch/skill-opencode.d.ts.map +0 -1
  405. package/dist/adapters/cc-switch/skill-placeholder.d.ts.map +0 -1
  406. package/dist/config.d.ts.map +0 -1
  407. package/dist/index.d.ts.map +0 -1
  408. package/dist/middleware/auth.d.ts.map +0 -1
  409. package/dist/routes/acode-todos.d.ts.map +0 -1
  410. package/dist/routes/ai-sources.d.ts.map +0 -1
  411. package/dist/routes/dashboard.d.ts.map +0 -1
  412. package/dist/routes/events.d.ts.map +0 -1
  413. package/dist/routes/file-browser.d.ts.map +0 -1
  414. package/dist/routes/file-diff-rollback.d.ts.map +0 -1
  415. package/dist/routes/file-snapshot.d.ts.map +0 -1
  416. package/dist/routes/git.d.ts.map +0 -1
  417. package/dist/routes/instance.d.ts.map +0 -1
  418. package/dist/routes/mcp.d.ts.map +0 -1
  419. package/dist/routes/processes.d.ts.map +0 -1
  420. package/dist/routes/properties.d.ts.map +0 -1
  421. package/dist/routes/pty.d.ts.map +0 -1
  422. package/dist/routes/runtime-binding.d.ts.map +0 -1
  423. package/dist/routes/sessions.d.ts.map +0 -1
  424. package/dist/routes/skills.d.ts.map +0 -1
  425. package/dist/routes/sub-agents.d.ts.map +0 -1
  426. package/dist/routes/system-metrics.d.ts.map +0 -1
  427. package/dist/routes/task-context.d.ts.map +0 -1
  428. package/dist/routes/terminal.d.ts.map +0 -1
  429. package/dist/routes/yml.d.ts.map +0 -1
  430. package/dist/services/acode-package.d.ts.map +0 -1
  431. package/dist/services/agent-event-store.d.ts.map +0 -1
  432. package/dist/services/agent-process-manager.d.ts.map +0 -1
  433. package/dist/services/ai-source-apply.d.ts.map +0 -1
  434. package/dist/services/auto-register.d.ts.map +0 -1
  435. package/dist/services/aws-client-agent-mcp.d.ts.map +0 -1
  436. package/dist/services/bridge-package-publish-hooks.d.ts.map +0 -1
  437. package/dist/services/cc-switch-sdk.d.ts.map +0 -1
  438. package/dist/services/cli-commands.d.ts.map +0 -1
  439. package/dist/services/event-delta-pusher.d.ts.map +0 -1
  440. package/dist/services/fileSnapshotStore.d.ts.map +0 -1
  441. package/dist/services/instance-ai-config-service.d.ts.map +0 -1
  442. package/dist/services/instance-init-service.d.ts.map +0 -1
  443. package/dist/services/instance-service.d.ts.map +0 -1
  444. package/dist/services/instance-state.d.ts.map +0 -1
  445. package/dist/services/legacy-path-migration.d.ts.map +0 -1
  446. package/dist/services/lifecycle-state.d.ts.map +0 -1
  447. package/dist/services/mcp-launch-binding-queue.d.ts.map +0 -1
  448. package/dist/services/orphan-monitor.d.ts.map +0 -1
  449. package/dist/services/panel-auth.d.ts.map +0 -1
  450. package/dist/services/process-detector.d.ts.map +0 -1
  451. package/dist/services/process-registry.d.ts.map +0 -1
  452. package/dist/services/ring-buffer.d.ts.map +0 -1
  453. package/dist/services/runtime-binding.d.ts.map +0 -1
  454. package/dist/services/runtime-lifecycle-policy.d.ts.map +0 -1
  455. package/dist/services/session-output.d.ts.map +0 -1
  456. package/dist/services/startup-config-wizard.d.ts.map +0 -1
  457. package/dist/services/sub-agent-manager-instance.d.ts.map +0 -1
  458. package/dist/services/system-metrics.d.ts.map +0 -1
  459. package/dist/services/terminal-persistence.d.ts.map +0 -1
  460. package/dist/services/tool-installer.d.ts.map +0 -1
  461. package/dist/services/tunnel-client.d.ts.map +0 -1
  462. package/dist/services/windows-service-manager.d.ts.map +0 -1
  463. package/dist/services/workspace-files.d.ts.map +0 -1
  464. package/dist/services/workspace-watch.d.ts.map +0 -1
  465. package/dist/services/workspaceTaskChangeWatcher.d.ts.map +0 -1
  466. package/dist/types.d.ts.map +0 -1
  467. package/dist/utils/file-utils.d.ts.map +0 -1
  468. package/dist/utils/instance-ai-config-debug-logger.d.ts.map +0 -1
  469. package/dist/utils/logger.d.ts.map +0 -1
  470. package/dist/utils/mcp-utils.d.ts.map +0 -1
  471. package/dist/utils/path-utils.d.ts.map +0 -1
  472. package/dist/utils/sdk-package-loader.d.ts.map +0 -1
  473. package/dist/utils/validation.d.ts.map +0 -1
  474. package/dist/utils/yaml-utils.d.ts.map +0 -1
  475. package/node_modules/@cc-switch/sdk/dist/constants.d.ts.map +0 -1
  476. package/node_modules/@cc-switch/sdk/dist/errors.d.ts.map +0 -1
  477. package/node_modules/@cc-switch/sdk/dist/index.d.ts.map +0 -1
  478. package/node_modules/@cc-switch/sdk/dist/schemas.d.ts.map +0 -1
  479. package/node_modules/@cc-switch/sdk/dist/sdk.d.ts.map +0 -1
  480. package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.d.ts.map +0 -1
  481. package/node_modules/@cc-switch/sdk/dist/services/mcp-model.d.ts.map +0 -1
  482. package/node_modules/@cc-switch/sdk/dist/services/mcp-service.d.ts.map +0 -1
  483. package/node_modules/@cc-switch/sdk/dist/services/skill-model.d.ts.map +0 -1
  484. package/node_modules/@cc-switch/sdk/dist/services/skill-service.d.ts.map +0 -1
  485. package/node_modules/@cc-switch/sdk/dist/state.d.ts.map +0 -1
  486. package/node_modules/@cc-switch/sdk/dist/types.d.ts.map +0 -1
  487. package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts.map +0 -1
  488. package/node_modules/@cc-switch/sdk/dist/utils/id.d.ts.map +0 -1
  489. package/package/acode/dist/ask-user-question-tool.d.ts.map +0 -1
  490. package/package/acode/dist/built-in-file-tools.d.ts.map +0 -1
  491. package/package/acode/dist/built-in-symbols-tool.d.ts.map +0 -1
  492. package/package/acode/dist/builtins/commandArtifacts.d.ts.map +0 -1
  493. package/package/acode/dist/builtins/commandOutputEvents.d.ts.map +0 -1
  494. package/package/acode/dist/builtins/shellCommandPreparation.d.ts.map +0 -1
  495. package/package/acode/dist/builtins/shellCommandResult.d.ts.map +0 -1
  496. package/package/acode/dist/builtins/shellCommandRunner.d.ts.map +0 -1
  497. package/package/acode/dist/builtins/shellOutputDecoder.d.ts.map +0 -1
  498. package/package/acode/dist/cli.d.ts.map +0 -1
  499. package/package/acode/dist/commands/commandLoader.d.ts.map +0 -1
  500. package/package/acode/dist/commands/commandParser.d.ts.map +0 -1
  501. package/package/acode/dist/commands/commandRegistry.d.ts.map +0 -1
  502. package/package/acode/dist/compaction.d.ts.map +0 -1
  503. package/package/acode/dist/config.d.ts.map +0 -1
  504. package/package/acode/dist/fs-utils.d.ts.map +0 -1
  505. package/package/acode/dist/hooks/hookBus.d.ts.map +0 -1
  506. package/package/acode/dist/index.d.ts.map +0 -1
  507. package/package/acode/dist/mcpToolNames.d.ts.map +0 -1
  508. package/package/acode/dist/parsers/ast-cache.d.ts.map +0 -1
  509. package/package/acode/dist/parsers/language-detector.d.ts.map +0 -1
  510. package/package/acode/dist/parsers/language-queries.d.ts.map +0 -1
  511. package/package/acode/dist/parsers/symbol-extractor.d.ts.map +0 -1
  512. package/package/acode/dist/parsers/tree-sitter-loader.d.ts.map +0 -1
  513. package/package/acode/dist/parsers/types.d.ts.map +0 -1
  514. package/package/acode/dist/runtime.d.ts.map +0 -1
  515. package/package/acode/dist/skill-tool.d.ts.map +0 -1
  516. package/package/acode/dist/sub-agent-manager.d.ts.map +0 -1
  517. package/package/acode/dist/sub-agent-store.d.ts.map +0 -1
  518. package/package/acode/dist/sub-agent-tools.d.ts.map +0 -1
  519. package/package/acode/dist/sub-agent-types.d.ts.map +0 -1
  520. package/package/acode/dist/todo-store.d.ts.map +0 -1
  521. package/package/acode/dist/todo-tool.d.ts.map +0 -1
  522. package/package/acode/dist/types.d.ts.map +0 -1
  523. package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +0 -1
  524. package/package/aws-client-agent-mcp/dist/agent-client.js.map +0 -1
  525. package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts.map +0 -1
  526. package/package/aws-client-agent-mcp/dist/agent-client.test.js.map +0 -1
  527. package/package/aws-client-agent-mcp/dist/config.d.ts.map +0 -1
  528. package/package/aws-client-agent-mcp/dist/config.js.map +0 -1
  529. package/package/aws-client-agent-mcp/dist/config.test.d.ts.map +0 -1
  530. package/package/aws-client-agent-mcp/dist/config.test.js.map +0 -1
  531. package/package/aws-client-agent-mcp/dist/constants.d.ts.map +0 -1
  532. package/package/aws-client-agent-mcp/dist/constants.js.map +0 -1
  533. package/package/aws-client-agent-mcp/dist/context-manager.d.ts.map +0 -1
  534. package/package/aws-client-agent-mcp/dist/context-manager.js.map +0 -1
  535. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts.map +0 -1
  536. package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +0 -1
  537. package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +0 -1
  538. package/package/aws-client-agent-mcp/dist/http-client.js.map +0 -1
  539. package/package/aws-client-agent-mcp/dist/http-client.test.d.ts.map +0 -1
  540. package/package/aws-client-agent-mcp/dist/http-client.test.js.map +0 -1
  541. package/package/aws-client-agent-mcp/dist/index.d.ts.map +0 -1
  542. package/package/aws-client-agent-mcp/dist/index.js.map +0 -1
  543. package/package/aws-client-agent-mcp/dist/logger.d.ts.map +0 -1
  544. package/package/aws-client-agent-mcp/dist/logger.js.map +0 -1
  545. package/package/aws-client-agent-mcp/dist/logger.test.d.ts.map +0 -1
  546. package/package/aws-client-agent-mcp/dist/logger.test.js.map +0 -1
  547. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +0 -1
  548. package/package/aws-client-agent-mcp/dist/mcp-server.js.map +0 -1
  549. package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts.map +0 -1
  550. package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +0 -1
  551. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +0 -1
  552. package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +0 -1
  553. package/package/aws-client-agent-mcp/dist/mcp-tools.test.d.ts.map +0 -1
  554. package/package/aws-client-agent-mcp/dist/mcp-tools.test.js.map +0 -1
  555. package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +0 -1
  556. package/package/aws-client-agent-mcp/dist/memory-store.js.map +0 -1
  557. package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts.map +0 -1
  558. package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +0 -1
  559. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +0 -1
  560. package/package/aws-client-agent-mcp/dist/memory-tools.js.map +0 -1
  561. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +0 -1
  562. package/package/aws-client-agent-mcp/dist/message-buffer.js.map +0 -1
  563. package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts.map +0 -1
  564. package/package/aws-client-agent-mcp/dist/message-buffer.test.js.map +0 -1
  565. package/package/aws-client-agent-mcp/dist/messageContent.d.ts.map +0 -1
  566. package/package/aws-client-agent-mcp/dist/messageContent.js.map +0 -1
  567. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts.map +0 -1
  568. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js.map +0 -1
  569. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts.map +0 -1
  570. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js.map +0 -1
  571. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +0 -1
  572. package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +0 -1
  573. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +0 -1
  574. package/package/aws-client-agent-mcp/dist/status-reporter.js.map +0 -1
  575. package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts.map +0 -1
  576. package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +0 -1
  577. package/package/aws-client-agent-mcp/dist/types.d.ts.map +0 -1
  578. package/package/aws-client-agent-mcp/dist/types.js.map +0 -1
  579. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +0 -1
  580. package/package/aws-client-agent-mcp/dist/websocket-client.js.map +0 -1
  581. package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts.map +0 -1
  582. package/package/aws-client-agent-mcp/dist/websocket-client.test.js.map +0 -1
  583. package/package/cc-switch-sdk/dist/constants.d.ts.map +0 -1
  584. package/package/cc-switch-sdk/dist/errors.d.ts.map +0 -1
  585. package/package/cc-switch-sdk/dist/index.d.ts.map +0 -1
  586. package/package/cc-switch-sdk/dist/schemas.d.ts.map +0 -1
  587. package/package/cc-switch-sdk/dist/sdk.d.ts.map +0 -1
  588. package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts.map +0 -1
  589. package/package/cc-switch-sdk/dist/services/mcp-model.d.ts.map +0 -1
  590. package/package/cc-switch-sdk/dist/services/mcp-service.d.ts.map +0 -1
  591. package/package/cc-switch-sdk/dist/services/skill-model.d.ts.map +0 -1
  592. package/package/cc-switch-sdk/dist/services/skill-service.d.ts.map +0 -1
  593. package/package/cc-switch-sdk/dist/state.d.ts.map +0 -1
  594. package/package/cc-switch-sdk/dist/types.d.ts.map +0 -1
  595. package/package/cc-switch-sdk/dist/utils/fs.d.ts.map +0 -1
  596. package/package/cc-switch-sdk/dist/utils/id.d.ts.map +0 -1
@@ -1,288 +1,2 @@
1
- /**
2
- * 消息缓冲与派发模块
3
- * 负责消息的缓冲、分类、去重和派发
4
- */
5
- import { logger } from './logger.js';
6
- /**
7
- * 去重记录上限。
8
- * seenMsgIds 不做时间老化(见 isDuplicate 注释),仅受此上限约束:
9
- * 超出时淘汰最旧的记录,确保内存不会无限增长。
10
- * 500 条 ≈ poll_message 在 Agent 生命周期内可消费的消息数上限,足以覆盖正常使用场景。
11
- */
12
- const MSG_ID_DEDUP_MAX_SIZE = 500;
13
- /**
14
- * 获取消息的唯一标识
15
- * DirectMessage 的 msgId 是 string,GroupMessage 的 msgId 是 number
16
- */
17
- function getMessageKey(msg) {
18
- if (msg.msgId === undefined || msg.msgId === null)
19
- return undefined;
20
- return msg.msgId;
21
- }
22
- /**
23
- * 消息缓冲区
24
- * 管理消息的存储、去重、分类和派发
25
- */
26
- export class MessageBuffer {
27
- buffer = [];
28
- resolvers = [];
29
- onMessageArrived = null;
30
- isPolling = false;
31
- seenMsgIds = new Map();
32
- /**
33
- * 设置消息到达回调
34
- * 当有新消息到达且正在 poll 等待时,会立即调用此回调
35
- */
36
- setOnMessageArrived(callback) {
37
- this.onMessageArrived = callback;
38
- }
39
- /**
40
- * 设置是否正在 poll 等待
41
- */
42
- setIsPolling(polling) {
43
- this.isPolling = polling;
44
- }
45
- /**
46
- * 标记消息为已见(用于去重)
47
- */
48
- markSeen(msg) {
49
- const key = getMessageKey(msg);
50
- if (key === undefined)
51
- return;
52
- this.seenMsgIds.set(key, Date.now());
53
- this.cleanupSeenMsgIds();
54
- }
55
- /**
56
- * 检查消息是否已存在(去重)
57
- *
58
- * ⚠️ 去重记录永不过期:由于服务端 poll_message 返回的私信不会在 WebSocket 消费时标记已读,
59
- * 导致下次 hydrate 拉取仍能拉到同一条 is_read=false 的消息。
60
- * 如果去重记录有 TTL,超过 TTL 后同一条消息会被二次投递给 Agent 导致重复回复。
61
- * 因此 seenMsgIds 仅受 MAX_SIZE 上限约束,不做时间老化——消息一旦被消费过就永久去重。
62
- *
63
- * 如果是新消息,标记为已见并返回 false
64
- */
65
- isDuplicate(msg) {
66
- const key = getMessageKey(msg);
67
- if (key === undefined)
68
- return false;
69
- if (this.seenMsgIds.has(key)) {
70
- return true;
71
- }
72
- this.seenMsgIds.set(key, Date.now());
73
- this.cleanupSeenMsgIds();
74
- return false;
75
- }
76
- /**
77
- * 清理去重记录:只在超出 MAX_SIZE 上限时淘汰最旧的记录。
78
- * 不按时间老化,避免 TTL 到期后同一条消息被服务端二次拉取时漏掉去重。
79
- */
80
- cleanupSeenMsgIds() {
81
- if (this.seenMsgIds.size <= MSG_ID_DEDUP_MAX_SIZE)
82
- return;
83
- let count = 0;
84
- const toDelete = this.seenMsgIds.size - MSG_ID_DEDUP_MAX_SIZE;
85
- // Map 按插入顺序迭代,最旧的排前面
86
- for (const key of this.seenMsgIds.keys()) {
87
- if (count >= toDelete)
88
- break;
89
- this.seenMsgIds.delete(key);
90
- count++;
91
- }
92
- }
93
- /**
94
- * 添加消息到缓冲区
95
- */
96
- push(message) {
97
- if (this.isDuplicate(message)) {
98
- logger.info(`[MessageBuffer] 忽略重复消息,msgId: ${message.msgId}`);
99
- return;
100
- }
101
- this.buffer.push(message);
102
- logger.info(`[MessageBuffer] 消息入缓冲区,当前数量: ${this.buffer.length}`);
103
- if (this.isPolling && this.onMessageArrived) {
104
- logger.info('[MessageBuffer] 检测到 poll 等待中,触发消息到达回调');
105
- this.onMessageArrived();
106
- }
107
- this.tryDispatch();
108
- }
109
- /**
110
- * 接收 Profile 推送。
111
- * 主流程:记录日志 -> 不进入未读缓冲区 -> 引导调用方通过 get_profile 获取身份详情。
112
- */
113
- setProfileMessage(profile) {
114
- logger.info(`[MessageBuffer] 收到 Profile 推送,displayName: ${profile.displayName}。身份信息请通过 get_profile 获取。`);
115
- }
116
- /**
117
- * 移除 Profile 系统消息。
118
- * 当前未再向未读消息注入 profile 信息,保留该方法仅为兼容既有调用链。
119
- */
120
- removeProfileMessage() {
121
- logger.info('[MessageBuffer] removeProfileMessage 被调用,当前无需移除未读身份消息');
122
- }
123
- /**
124
- * 检查是否有 Profile 消息。
125
- * 当前身份信息不会进入未读消息,因此固定返回 false。
126
- */
127
- hasProfileMessage() {
128
- return false;
129
- }
130
- /**
131
- * 唤醒正在 poll 等待的 resolver。
132
- *
133
- * 用于不进入缓冲区的"唤醒信号"消息(如 pipeline_task_assigned):
134
- * 这类消息不应被 Agent 直接消费,但需要让 poll_message 立即返回空结果,
135
- * 由调用方走 hydrate 路径重新查询任务状态,避免最长 30s 的检测延迟。
136
- *
137
- * 主流程:
138
- * 1. 若 buffer 有消息,先走正常 tryDispatch 派发
139
- * 2. 若 buffer 空,给第一个等待中的 resolver 推空结果,
140
- * 让 doPollMessage 的 while 循环立即进入 hydrate 路径
141
- */
142
- wakeUpWaiters() {
143
- this.tryDispatch();
144
- if (this.buffer.length === 0 && this.resolvers.length > 0) {
145
- const resolver = this.resolvers.shift();
146
- if (resolver) {
147
- this.updatePollingState();
148
- logger.info('[MessageBuffer] wakeUpWaiters: 唤醒 poll 走 hydrate 重查');
149
- resolver({ directMessages: [], groupMessages: [] });
150
- }
151
- }
152
- }
153
- /**
154
- * 获取 Profile 消息。
155
- * 当前身份信息不会进入未读消息,因此固定返回 null。
156
- */
157
- getProfileMessage() {
158
- return null;
159
- }
160
- /**
161
- * 更新 isPolling 状态:resolvers 从 0 变为 1 时设为 true,变为 0 时设为 false
162
- */
163
- updatePollingState() {
164
- this.isPolling = this.resolvers.length > 0;
165
- }
166
- /**
167
- * 阻塞等待新消息
168
- * 如果缓冲区有消息则立即返回,否则阻塞等待
169
- * @param timeoutMs 可选超时时间(毫秒),超时后返回空消息而不继续阻塞
170
- */
171
- poll(timeoutMs) {
172
- logger.info(`[MessageBuffer] poll() 被调用,buffer: ${this.buffer.length}${timeoutMs ? `,超时: ${timeoutMs}ms` : ''}`);
173
- if (this.buffer.length > 0) {
174
- const messages = this.consumeAll();
175
- logger.info(`[MessageBuffer] poll 立即返回,私聊: ${messages.directMessages.length},群聊: ${messages.groupMessages.length}`);
176
- return Promise.resolve(messages);
177
- }
178
- if (this.resolvers.length === 0) {
179
- this.isPolling = true;
180
- }
181
- return new Promise((resolve) => {
182
- let timer = null;
183
- let resolved = false;
184
- const resolver = (messages) => {
185
- if (resolved)
186
- return;
187
- resolved = true;
188
- const index = this.resolvers.indexOf(resolver);
189
- if (index > -1) {
190
- this.resolvers.splice(index, 1);
191
- }
192
- if (timer) {
193
- clearTimeout(timer);
194
- timer = null;
195
- }
196
- this.updatePollingState();
197
- logger.info(`[MessageBuffer] poll 收到消息,私聊: ${messages.directMessages.length},群聊: ${messages.groupMessages.length}`);
198
- resolve(messages);
199
- };
200
- this.resolvers.push(resolver);
201
- this.tryDispatch();
202
- if (timeoutMs && timeoutMs > 0) {
203
- timer = setTimeout(() => {
204
- if (resolved)
205
- return;
206
- resolved = true;
207
- const index = this.resolvers.indexOf(resolver);
208
- if (index > -1) {
209
- this.resolvers.splice(index, 1);
210
- }
211
- this.updatePollingState();
212
- logger.info(`[MessageBuffer] poll 超时(${timeoutMs}ms),返回空消息`);
213
- resolve({ directMessages: [], groupMessages: [] });
214
- }, timeoutMs);
215
- }
216
- });
217
- }
218
- /**
219
- * 非阻塞获取消息
220
- */
221
- get() {
222
- if (this.buffer.length > 0) {
223
- const messages = this.consumeAll();
224
- logger.info(`[MessageBuffer] get 返回消息,私聊: ${messages.directMessages.length},群聊: ${messages.groupMessages.length}`);
225
- return messages;
226
- }
227
- return { directMessages: [], groupMessages: [] };
228
- }
229
- /**
230
- * 获取缓冲区大小
231
- */
232
- size() {
233
- return this.buffer.length;
234
- }
235
- /**
236
- * 清空缓冲区
237
- */
238
- clear() {
239
- this.buffer = [];
240
- for (const resolver of this.resolvers) {
241
- resolver({ directMessages: [], groupMessages: [] });
242
- }
243
- this.resolvers = [];
244
- this.isPolling = false;
245
- this.seenMsgIds.clear();
246
- }
247
- /**
248
- * 尝试派发缓冲区消息给等待的 resolver
249
- */
250
- tryDispatch() {
251
- while (this.resolvers.length > 0 && this.buffer.length > 0) {
252
- const resolver = this.resolvers.shift();
253
- if (resolver) {
254
- const messages = this.consumeAll();
255
- resolver(messages);
256
- }
257
- }
258
- this.updatePollingState();
259
- }
260
- /**
261
- * 消费缓冲区所有消息并分类,同时标记为已见
262
- */
263
- consumeAll() {
264
- const directMessages = [];
265
- const groupMessages = [];
266
- while (this.buffer.length > 0) {
267
- const msg = this.buffer.shift();
268
- if (msg) {
269
- this.markSeen(msg);
270
- if (this.isDirectMessage(msg)) {
271
- directMessages.push(msg);
272
- }
273
- else {
274
- groupMessages.push(msg);
275
- }
276
- }
277
- }
278
- return { directMessages, groupMessages };
279
- }
280
- /**
281
- * 判断消息类型
282
- * DirectMessage 的 msgId 是 string,GroupMessage 的 msgId 是 number
283
- */
284
- isDirectMessage(msg) {
285
- return typeof msg.msgId === 'string';
286
- }
287
- }
288
- //# sourceMappingURL=message-buffer.js.map
1
+ import{logger as r}from"./logger.js";const g=500;function h(l){if(!(l.msgId===void 0||l.msgId===null))return l.msgId}class u{buffer=[];resolvers=[];onMessageArrived=null;isPolling=!1;seenMsgIds=new Map;setOnMessageArrived(e){this.onMessageArrived=e}setIsPolling(e){this.isPolling=e}markSeen(e){const s=h(e);s!==void 0&&(this.seenMsgIds.set(s,Date.now()),this.cleanupSeenMsgIds())}isDuplicate(e){const s=h(e);return s===void 0?!1:this.seenMsgIds.has(s)?!0:(this.seenMsgIds.set(s,Date.now()),this.cleanupSeenMsgIds(),!1)}cleanupSeenMsgIds(){if(this.seenMsgIds.size<=g)return;let e=0;const s=this.seenMsgIds.size-g;for(const t of this.seenMsgIds.keys()){if(e>=s)break;this.seenMsgIds.delete(t),e++}}push(e){if(this.isDuplicate(e)){r.info(`[MessageBuffer] \u5FFD\u7565\u91CD\u590D\u6D88\u606F\uFF0CmsgId: ${e.msgId}`);return}this.buffer.push(e),r.info(`[MessageBuffer] \u6D88\u606F\u5165\u7F13\u51B2\u533A\uFF0C\u5F53\u524D\u6570\u91CF: ${this.buffer.length}`),this.isPolling&&this.onMessageArrived&&(r.info("[MessageBuffer] \u68C0\u6D4B\u5230 poll \u7B49\u5F85\u4E2D\uFF0C\u89E6\u53D1\u6D88\u606F\u5230\u8FBE\u56DE\u8C03"),this.onMessageArrived()),this.tryDispatch()}setProfileMessage(e){r.info(`[MessageBuffer] \u6536\u5230 Profile \u63A8\u9001\uFF0CdisplayName: ${e.displayName}\u3002\u8EAB\u4EFD\u4FE1\u606F\u8BF7\u901A\u8FC7 get_profile \u83B7\u53D6\u3002`)}removeProfileMessage(){r.info("[MessageBuffer] removeProfileMessage \u88AB\u8C03\u7528\uFF0C\u5F53\u524D\u65E0\u9700\u79FB\u9664\u672A\u8BFB\u8EAB\u4EFD\u6D88\u606F")}hasProfileMessage(){return!1}wakeUpWaiters(){if(this.tryDispatch(),this.buffer.length===0&&this.resolvers.length>0){const e=this.resolvers.shift();e&&(this.updatePollingState(),r.info("[MessageBuffer] wakeUpWaiters: \u5524\u9192 poll \u8D70 hydrate \u91CD\u67E5"),e({directMessages:[],groupMessages:[]}))}}getProfileMessage(){return null}updatePollingState(){this.isPolling=this.resolvers.length>0}poll(e){if(r.info(`[MessageBuffer] poll() \u88AB\u8C03\u7528\uFF0Cbuffer: ${this.buffer.length}${e?`\uFF0C\u8D85\u65F6: ${e}ms`:""}`),this.buffer.length>0){const s=this.consumeAll();return r.info(`[MessageBuffer] poll \u7ACB\u5373\u8FD4\u56DE\uFF0C\u79C1\u804A: ${s.directMessages.length}\uFF0C\u7FA4\u804A: ${s.groupMessages.length}`),Promise.resolve(s)}return this.resolvers.length===0&&(this.isPolling=!0),new Promise(s=>{let t=null,n=!1;const f=i=>{if(n)return;n=!0;const o=this.resolvers.indexOf(f);o>-1&&this.resolvers.splice(o,1),t&&(clearTimeout(t),t=null),this.updatePollingState(),r.info(`[MessageBuffer] poll \u6536\u5230\u6D88\u606F\uFF0C\u79C1\u804A: ${i.directMessages.length}\uFF0C\u7FA4\u804A: ${i.groupMessages.length}`),s(i)};this.resolvers.push(f),this.tryDispatch(),e&&e>0&&(t=setTimeout(()=>{if(n)return;n=!0;const i=this.resolvers.indexOf(f);i>-1&&this.resolvers.splice(i,1),this.updatePollingState(),r.info(`[MessageBuffer] poll \u8D85\u65F6\uFF08${e}ms\uFF09\uFF0C\u8FD4\u56DE\u7A7A\u6D88\u606F`),s({directMessages:[],groupMessages:[]})},e))})}get(){if(this.buffer.length>0){const e=this.consumeAll();return r.info(`[MessageBuffer] get \u8FD4\u56DE\u6D88\u606F\uFF0C\u79C1\u804A: ${e.directMessages.length}\uFF0C\u7FA4\u804A: ${e.groupMessages.length}`),e}return{directMessages:[],groupMessages:[]}}size(){return this.buffer.length}clear(){this.buffer=[];for(const e of this.resolvers)e({directMessages:[],groupMessages:[]});this.resolvers=[],this.isPolling=!1,this.seenMsgIds.clear()}tryDispatch(){for(;this.resolvers.length>0&&this.buffer.length>0;){const e=this.resolvers.shift();if(e){const s=this.consumeAll();e(s)}}this.updatePollingState()}consumeAll(){const e=[],s=[];for(;this.buffer.length>0;){const t=this.buffer.shift();t&&(this.markSeen(t),this.isDirectMessage(t)?e.push(t):s.push(t))}return{directMessages:e,groupMessages:s}}isDirectMessage(e){return typeof e.msgId=="string"}}export{u as MessageBuffer};
2
+
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=message-buffer.test.d.ts.map
@@ -41,4 +41,3 @@ describe('MessageBuffer poll', () => {
41
41
  assert.deepEqual(messages.groupMessages[0], groupMessage);
42
42
  });
43
43
  });
44
- //# sourceMappingURL=message-buffer.test.js.map
@@ -50,4 +50,3 @@ export declare function buildMultimodalContentBlocks(parsedContent: ParsedMessag
50
50
  data?: string;
51
51
  };
52
52
  }>;
53
- //# sourceMappingURL=messageContent.d.ts.map
@@ -1,125 +1,2 @@
1
- /**
2
- * 消息内容解析工具
3
- *
4
- * 负责解析消息中的图片标记,支持两种格式:
5
- * 1. [图片: url] 标记格式(推荐,与前端兼容)
6
- * 2. JSON 格式 { text, attachments }(兼容旧消息)
7
- */
8
- import { logger } from "./logger.js";
9
- /**
10
- * 解析消息内容
11
- *
12
- * @param content 消息内容(可能是纯文本、[图片: url] 格式或 JSON 格式)
13
- * @returns 解析后的内容
14
- */
15
- export function parseMessageContent(content) {
16
- if (!content) {
17
- return { text: "", attachments: [], hasImages: false };
18
- }
19
- // 1. 尝试解析 [图片: url] 标记格式
20
- const imageTagRegex = /\[图片\s*:\s*([^\]\n]+?)\s*\]/gi;
21
- const attachments = [];
22
- const seen = new Set();
23
- let match = imageTagRegex.exec(content);
24
- while (match !== null) {
25
- const url = (match[1] || "").trim();
26
- if (url && !seen.has(url)) {
27
- seen.add(url);
28
- attachments.push({
29
- type: "image",
30
- url,
31
- name: getFileName(url),
32
- mediaType: getMediaType(url),
33
- size: 0,
34
- });
35
- }
36
- match = imageTagRegex.exec(content);
37
- }
38
- // 移除图片标记,保留纯文本
39
- const text = content.replace(imageTagRegex, "").replace(/\s+/g, " ").trim();
40
- if (attachments.length > 0) {
41
- return {
42
- text,
43
- attachments,
44
- hasImages: true,
45
- };
46
- }
47
- // 2. 尝试解析 JSON 格式(兼容旧消息)
48
- try {
49
- const parsed = JSON.parse(content);
50
- // 检查是否是 JSON 格式(带 attachments)
51
- if (parsed && typeof parsed === "object" && "text" in parsed) {
52
- const imageAttachments = (parsed.attachments || []).filter((att) => att.type === "image");
53
- return {
54
- text: parsed.text || "",
55
- attachments: imageAttachments,
56
- hasImages: imageAttachments.length > 0,
57
- };
58
- }
59
- }
60
- catch {
61
- // 不是 JSON
62
- }
63
- // 3. 纯文本消息
64
- return { text: content, attachments: [], hasImages: false };
65
- }
66
- /**
67
- * 从 URL 提取文件名
68
- */
69
- function getFileName(url) {
70
- const normalized = (url || "").replace(/\\/g, "/");
71
- const parts = normalized.split("/").filter(Boolean);
72
- const lastPart = parts[parts.length - 1] || url;
73
- return lastPart.split("?")[0] || url;
74
- }
75
- /**
76
- * 从 URL 推断媒体类型
77
- */
78
- function getMediaType(url) {
79
- const ext = (url || "").split(".").pop()?.toLowerCase()?.split("?")[0] || "";
80
- switch (ext) {
81
- case "png": return "image/png";
82
- case "jpg":
83
- case "jpeg": return "image/jpeg";
84
- case "gif": return "image/gif";
85
- case "webp": return "image/webp";
86
- default: return "image/png";
87
- }
88
- }
89
- /**
90
- * 构造多模态消息内容块
91
- *
92
- * 用于 Claude Agent SDK 的流式输入模式。
93
- * SDK 直接支持 URL 引用图片,无需下载转 Base64。
94
- *
95
- * @param parsedContent 解析后的消息内容
96
- * @param _baseUrl 服务器基础 URL(未使用,SDK 直接处理 URL)
97
- * @returns 内容块数组
98
- */
99
- export function buildMultimodalContentBlocks(parsedContent, _baseUrl) {
100
- const blocks = [];
101
- // 添加图片内容块 - 使用 URL 引用,SDK 会自动处理
102
- for (const attachment of parsedContent.attachments) {
103
- // 构造完整的 URL(如果是相对路径)
104
- const fullUrl = attachment.url.startsWith("http")
105
- ? attachment.url
106
- : `${_baseUrl}${attachment.url}`;
107
- logger.info(`[MessageContent] 添加图片 URL 引用: ${fullUrl}`);
108
- blocks.push({
109
- type: "image",
110
- source: {
111
- type: "url",
112
- url: fullUrl,
113
- },
114
- });
115
- }
116
- // 添加文本内容块
117
- if (parsedContent.text.trim()) {
118
- blocks.push({
119
- type: "text",
120
- text: parsedContent.text,
121
- });
122
- }
123
- return blocks;
124
- }
125
- //# sourceMappingURL=messageContent.js.map
1
+ import{logger as g}from"./logger.js";function u(t){if(!t)return{text:"",attachments:[],hasImages:!1};const s=/\[图片\s*:\s*([^\]\n]+?)\s*\]/gi,a=[],r=new Set;let n=s.exec(t);for(;n!==null;){const e=(n[1]||"").trim();e&&!r.has(e)&&(r.add(e),a.push({type:"image",url:e,name:o(e),mediaType:m(e),size:0})),n=s.exec(t)}const c=t.replace(s,"").replace(/\s+/g," ").trim();if(a.length>0)return{text:c,attachments:a,hasImages:!0};try{const e=JSON.parse(t);if(e&&typeof e=="object"&&"text"in e){const i=(e.attachments||[]).filter(l=>l.type==="image");return{text:e.text||"",attachments:i,hasImages:i.length>0}}}catch{}return{text:t,attachments:[],hasImages:!1}}function o(t){const a=(t||"").replace(/\\/g,"/").split("/").filter(Boolean);return(a[a.length-1]||t).split("?")[0]||t}function m(t){switch((t||"").split(".").pop()?.toLowerCase()?.split("?")[0]||""){case"png":return"image/png";case"jpg":case"jpeg":return"image/jpeg";case"gif":return"image/gif";case"webp":return"image/webp";default:return"image/png"}}function h(t,s){const a=[];for(const r of t.attachments){const n=r.url.startsWith("http")?r.url:`${s}${r.url}`;g.info(`[MessageContent] \u6DFB\u52A0\u56FE\u7247 URL \u5F15\u7528: ${n}`),a.push({type:"image",source:{type:"url",url:n}})}return t.text.trim()&&a.push({type:"text",text:t.text}),a}export{h as buildMultimodalContentBlocks,u as parseMessageContent};
2
+
@@ -1,3 +1,2 @@
1
1
  import type { AgentConfig, RuntimeLaunchBinding, ServerConfig } from "./types.js";
2
2
  export declare function claimRuntimeLaunchBinding(agentConfig: AgentConfig, serverConfig: ServerConfig): Promise<RuntimeLaunchBinding | null>;
3
- //# sourceMappingURL=runtime-launch-binding.d.ts.map
@@ -1,103 +1,2 @@
1
- import { logger } from "./logger.js";
2
- const DEFAULT_CLAIM_ATTEMPTS = 5;
3
- const DEFAULT_CLAIM_RETRY_DELAY_MS = 200;
4
- const MAX_CLAIM_ATTEMPTS = 10;
5
- const MAX_CLAIM_RETRY_DELAY_MS = 5_000;
6
- function shouldClaimLaunchBinding() {
7
- return process.env.AWS_MCP_CLAIM_LAUNCH_BINDING !== "false";
8
- }
9
- function normalizeBridgeBaseUrl(serverConfig) {
10
- return String(serverConfig.runtimeBridgeBaseUrl || "").trim().replace(/\/$/, "");
11
- }
12
- function readBoundedNumberEnv(key, fallback, min, max) {
13
- const parsed = Number.parseInt(String(process.env[key] || ""), 10);
14
- if (!Number.isFinite(parsed)) {
15
- return fallback;
16
- }
17
- return Math.min(Math.max(parsed, min), max);
18
- }
19
- function getClaimAttempts() {
20
- return readBoundedNumberEnv("AWS_MCP_LAUNCH_BINDING_CLAIM_ATTEMPTS", DEFAULT_CLAIM_ATTEMPTS, 1, MAX_CLAIM_ATTEMPTS);
21
- }
22
- function getClaimRetryDelayMs() {
23
- return readBoundedNumberEnv("AWS_MCP_LAUNCH_BINDING_CLAIM_RETRY_DELAY_MS", DEFAULT_CLAIM_RETRY_DELAY_MS, 0, MAX_CLAIM_RETRY_DELAY_MS);
24
- }
25
- function delay(ms) {
26
- if (ms <= 0) {
27
- return Promise.resolve();
28
- }
29
- return new Promise((resolve) => {
30
- setTimeout(resolve, ms);
31
- });
32
- }
33
- function buildClaimRequestBody(agentConfig, serverConfig) {
34
- const body = {
35
- workspacePath: String(agentConfig.workspacePath || "").trim(),
36
- serverUrl: serverConfig.serverUrl,
37
- };
38
- const agentId = String(agentConfig.agentId || "").trim();
39
- if (agentId) {
40
- body.agentId = agentId;
41
- }
42
- return body;
43
- }
44
- function shouldRetryClaimResponse(response) {
45
- return response.status === 404 || response.status >= 500;
46
- }
47
- export async function claimRuntimeLaunchBinding(agentConfig, serverConfig) {
48
- if (!shouldClaimLaunchBinding()) {
49
- return null;
50
- }
51
- const bridgeBaseUrl = normalizeBridgeBaseUrl(serverConfig);
52
- if (!bridgeBaseUrl) {
53
- logger.warn("[RuntimeLaunchBinding] 已请求认领启动绑定,但未配置 AWS_RUNTIME_BRIDGE_BASE_URL");
54
- return null;
55
- }
56
- const workspacePath = String(agentConfig.workspacePath || "").trim();
57
- if (!workspacePath) {
58
- logger.warn("[RuntimeLaunchBinding] workspacePath 为空,无法认领启动绑定");
59
- return null;
60
- }
61
- const body = buildClaimRequestBody(agentConfig, serverConfig);
62
- const attempts = getClaimAttempts();
63
- const retryDelayMs = getClaimRetryDelayMs();
64
- for (let attempt = 1; attempt <= attempts; attempt += 1) {
65
- let response;
66
- try {
67
- response = await fetch(`${bridgeBaseUrl}/runtime/binding/claim-agent`, {
68
- method: "POST",
69
- headers: { "Content-Type": "application/json" },
70
- body: JSON.stringify(body),
71
- });
72
- }
73
- catch (error) {
74
- const errorMessage = error instanceof Error ? error.message : String(error);
75
- if (attempt < attempts) {
76
- logger.warn(`[RuntimeLaunchBinding] 无法连接 runtime-bridge 认领启动绑定,准备重试 ${attempt}/${attempts}: ${errorMessage}`);
77
- await delay(retryDelayMs);
78
- continue;
79
- }
80
- logger.warn(`[RuntimeLaunchBinding] 无法连接 runtime-bridge 认领启动绑定: ${errorMessage}`);
81
- return null;
82
- }
83
- if (!response.ok) {
84
- if (shouldRetryClaimResponse(response) && attempt < attempts) {
85
- logger.warn(`[RuntimeLaunchBinding] 启动绑定暂不可用,准备重试 ${attempt}/${attempts}: ${response.status} ${response.statusText}`);
86
- await delay(retryDelayMs);
87
- continue;
88
- }
89
- if (response.status === 404) {
90
- logger.warn(`[RuntimeLaunchBinding] 未找到待认领启动绑定: ${workspacePath}`);
91
- return null;
92
- }
93
- throw new Error(`Failed to claim runtime launch binding: ${response.status} ${response.statusText}`);
94
- }
95
- const payload = (await response.json());
96
- if (!payload.agentId) {
97
- throw new Error(payload.error || "runtime-bridge did not return agentId");
98
- }
99
- return payload;
100
- }
101
- return null;
102
- }
103
- //# sourceMappingURL=runtime-launch-binding.js.map
1
+ import{logger as u}from"./logger.js";const A=5,h=200,L=10,M=5e3;function f(){return process.env.AWS_MCP_CLAIM_LAUNCH_BINDING!=="false"}function I(n){return String(n.runtimeBridgeBaseUrl||"").trim().replace(/\/$/,"")}function _(n,r,e,i){const o=Number.parseInt(String(process.env[n]||""),10);return Number.isFinite(o)?Math.min(Math.max(o,e),i):r}function p(){return _("AWS_MCP_LAUNCH_BINDING_CLAIM_ATTEMPTS",A,1,L)}function w(){return _("AWS_MCP_LAUNCH_BINDING_CLAIM_RETRY_DELAY_MS",h,0,M)}function g(n){return n<=0?Promise.resolve():new Promise(r=>{setTimeout(r,n)})}function B(n,r){const e={workspacePath:String(n.workspacePath||"").trim(),serverUrl:r.serverUrl},i=String(n.agentId||"").trim();return i&&(e.agentId=i),e}function R(n){return n.status===404||n.status>=500}async function S(n,r){if(!f())return null;const e=I(r);if(!e)return u.warn("[RuntimeLaunchBinding] \u5DF2\u8BF7\u6C42\u8BA4\u9886\u542F\u52A8\u7ED1\u5B9A\uFF0C\u4F46\u672A\u914D\u7F6E AWS_RUNTIME_BRIDGE_BASE_URL"),null;const i=String(n.workspacePath||"").trim();if(!i)return u.warn("[RuntimeLaunchBinding] workspacePath \u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u8BA4\u9886\u542F\u52A8\u7ED1\u5B9A"),null;const o=B(n,r),s=p(),m=w();for(let a=1;a<=s;a+=1){let t;try{t=await fetch(`${e}/runtime/binding/claim-agent`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})}catch(l){const d=l instanceof Error?l.message:String(l);if(a<s){u.warn(`[RuntimeLaunchBinding] \u65E0\u6CD5\u8FDE\u63A5 runtime-bridge \u8BA4\u9886\u542F\u52A8\u7ED1\u5B9A\uFF0C\u51C6\u5907\u91CD\u8BD5 ${a}/${s}: ${d}`),await g(m);continue}return u.warn(`[RuntimeLaunchBinding] \u65E0\u6CD5\u8FDE\u63A5 runtime-bridge \u8BA4\u9886\u542F\u52A8\u7ED1\u5B9A: ${d}`),null}if(!t.ok){if(R(t)&&a<s){u.warn(`[RuntimeLaunchBinding] \u542F\u52A8\u7ED1\u5B9A\u6682\u4E0D\u53EF\u7528\uFF0C\u51C6\u5907\u91CD\u8BD5 ${a}/${s}: ${t.status} ${t.statusText}`),await g(m);continue}if(t.status===404)return u.warn(`[RuntimeLaunchBinding] \u672A\u627E\u5230\u5F85\u8BA4\u9886\u542F\u52A8\u7ED1\u5B9A: ${i}`),null;throw new Error(`Failed to claim runtime launch binding: ${t.status} ${t.statusText}`)}const c=await t.json();if(!c.agentId)throw new Error(c.error||"runtime-bridge did not return agentId");return c}return null}export{S as claimRuntimeLaunchBinding};
2
+
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=runtime-launch-binding.test.d.ts.map
@@ -161,4 +161,3 @@ describe('claimRuntimeLaunchBinding', () => {
161
161
  assert.equal(result?.agentId, 'agent-a');
162
162
  });
163
163
  });
164
- //# sourceMappingURL=runtime-launch-binding.test.js.map
@@ -47,4 +47,3 @@ export declare class ServerMemoryStore implements MemoryStorePort {
47
47
  */
48
48
  listByFile(filePath: string, options?: string | ListByFileOptions): Promise<MemoryRecord[]>;
49
49
  }
50
- //# sourceMappingURL=server-memory-store.d.ts.map
@@ -1,96 +1,2 @@
1
- /**
2
- * 调度中心 SQLite 记忆存储适配器。
3
- * 主流程:所有 recently_memory/agent_memory 操作透传到 server,并由 server 按当前 agentId 做实例隔离。
4
- */
5
- export class ServerMemoryStore {
6
- agentClient;
7
- constructor(agentClient) {
8
- this.agentClient = agentClient;
9
- }
10
- ensureSuccess(payload) {
11
- if (payload && typeof payload === "object" && "error" in payload) {
12
- const error = payload.error;
13
- throw new Error(typeof error === "string" ? error : "Server memory operation failed");
14
- }
15
- return payload;
16
- }
17
- async getStats() {
18
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("get_memory_stats", {}));
19
- }
20
- async createMemory(input) {
21
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("create_memory", input));
22
- }
23
- async readMemory(input) {
24
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("read_memory", input));
25
- }
26
- async updateMemory(input) {
27
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("update_memory", input));
28
- }
29
- async deleteMemory(input) {
30
- const result = this.ensureSuccess(await this.agentClient.callAgentScopedTool("delete_memory", input));
31
- return Boolean(result.deleted);
32
- }
33
- async searchMemory(input) {
34
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("search_memory", input));
35
- }
36
- async listByType(memory_type) {
37
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("list_memories", { memory_type }));
38
- }
39
- async listExpiredRecentlyMemories() {
40
- // v1.13.0: 过期判定统一由服务端基于 expires_at < NOW() 完成
41
- // v1.19.0: recently_memory 纳入过期回忆,服务端 findExpiredAgentMemories 已包含两种类型
42
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("list_expired_memories", {}));
43
- }
44
- async markExpiredMemoriesRecalling(uris) {
45
- // v1.13.0: 服务端把已过期的 agent_memory / recently_memory 批量标记为 recalling 状态
46
- // v1.19.0: recently_memory 同样支持 recalling 状态流转
47
- // 传入 uris 时仅标记指定 URI 的过期记忆(分批标记用)
48
- const args = {};
49
- if (uris && uris.length > 0) {
50
- args.uris = uris;
51
- }
52
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("mark_expired_memories_recalling", args));
53
- }
54
- async clearRecallingExpiredMemories() {
55
- // v1.13.0: 服务端删除所有「recalling + 已过期」的 agent_memory / recently_memory
56
- // v1.19.0: recently_memory 纳入清理范围
57
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("clear_recalling_expired_memories", {}));
58
- }
59
- // ========== Memory 租约管理 (v1.21.0) ==========
60
- async claimMemoryUpdate(uris, leaseMinutes, memoryType) {
61
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("claim_memory_update", { uris, lease_minutes: leaseMinutes, ...(memoryType ? { memory_type: memoryType } : {}) }));
62
- }
63
- async renewMemoryLease(leaseMinutes) {
64
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("renew_memory_lease", { lease_minutes: leaseMinutes }));
65
- }
66
- async releaseMemoryClaim(uri) {
67
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("release_memory_update", { uri }));
68
- }
69
- async releaseAllMemoryClaims() {
70
- return this.ensureSuccess(await this.agentClient.callAgentScopedTool("release_all_memory_updates", {}));
71
- }
72
- async getMyClaimedUris() {
73
- const result = await this.agentClient.callAgentScopedTool("get_my_claimed_memory_uris", {});
74
- this.ensureSuccess(result);
75
- return result.uris ?? [];
76
- }
77
- /**
78
- * 按文件查询绑定了该文件的 Memory(支持 scope 跨 Agent 搜索)。
79
- * Memory 增强功能 (v1.6.0),范围扩展 (v1.7.0)
80
- * 兼容:第二个参数可以是 memory_type 字符串或 ListByFileOptions 对象。
81
- */
82
- async listByFile(filePath, options) {
83
- const resolvedOptions = typeof options === 'object' && options !== null
84
- ? { memory_type: options.memory_type, scope: options.scope }
85
- : { memory_type: options };
86
- const raw = await this.agentClient.callAgentScopedTool("list_memories_by_file", {
87
- file_path: filePath,
88
- ...(resolvedOptions.memory_type ? { memory_type: resolvedOptions.memory_type } : {}),
89
- ...(resolvedOptions.scope ? { scope: resolvedOptions.scope } : {}),
90
- });
91
- // 先检查服务端错误
92
- this.ensureSuccess(raw);
93
- return raw.results ?? [];
94
- }
95
- }
96
- //# sourceMappingURL=server-memory-store.js.map
1
+ class a{agentClient;constructor(e){this.agentClient=e}ensureSuccess(e){if(e&&typeof e=="object"&&"error"in e){const t=e.error;throw new Error(typeof t=="string"?t:"Server memory operation failed")}return e}async getStats(){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("get_memory_stats",{}))}async createMemory(e){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("create_memory",e))}async readMemory(e){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("read_memory",e))}async updateMemory(e){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("update_memory",e))}async deleteMemory(e){return!!this.ensureSuccess(await this.agentClient.callAgentScopedTool("delete_memory",e)).deleted}async searchMemory(e){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("search_memory",e))}async listByType(e){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("list_memories",{memory_type:e}))}async listExpiredRecentlyMemories(){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("list_expired_memories",{}))}async markExpiredMemoriesRecalling(e){const t={};return e&&e.length>0&&(t.uris=e),this.ensureSuccess(await this.agentClient.callAgentScopedTool("mark_expired_memories_recalling",t))}async clearRecallingExpiredMemories(){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("clear_recalling_expired_memories",{}))}async claimMemoryUpdate(e,t,s){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("claim_memory_update",{uris:e,lease_minutes:t,...s?{memory_type:s}:{}}))}async renewMemoryLease(e){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("renew_memory_lease",{lease_minutes:e}))}async releaseMemoryClaim(e){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("release_memory_update",{uri:e}))}async releaseAllMemoryClaims(){return this.ensureSuccess(await this.agentClient.callAgentScopedTool("release_all_memory_updates",{}))}async getMyClaimedUris(){const e=await this.agentClient.callAgentScopedTool("get_my_claimed_memory_uris",{});return this.ensureSuccess(e),e.uris??[]}async listByFile(e,t){const s=typeof t=="object"&&t!==null?{memory_type:t.memory_type,scope:t.scope}:{memory_type:t},r=await this.agentClient.callAgentScopedTool("list_memories_by_file",{file_path:e,...s.memory_type?{memory_type:s.memory_type}:{},...s.scope?{scope:s.scope}:{}});return this.ensureSuccess(r),r.results??[]}}export{a as ServerMemoryStore};
2
+