aws-runtime-bridge 1.9.33 → 1.9.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts +66 -5
  2. package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
  3. package/dist/adapter/AcodeSdkAdapter.js +771 -69
  4. package/dist/adapter/ClaudeSdkAdapter.d.ts +6 -0
  5. package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -1
  6. package/dist/adapter/ClaudeSdkAdapter.js +24 -1
  7. package/dist/adapter/OpencodeSdkAdapter.d.ts +19 -0
  8. package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
  9. package/dist/adapter/OpencodeSdkAdapter.js +62 -0
  10. package/dist/adapter/idle-poll-loop.d.ts +2 -1
  11. package/dist/adapter/idle-poll-loop.d.ts.map +1 -1
  12. package/dist/adapter/types.d.ts +86 -9
  13. package/dist/adapter/types.d.ts.map +1 -1
  14. package/dist/adapter/types.js +15 -5
  15. package/dist/index.js +15 -0
  16. package/dist/routes/acode-todos.d.ts +11 -0
  17. package/dist/routes/acode-todos.d.ts.map +1 -0
  18. package/dist/routes/acode-todos.js +75 -0
  19. package/dist/routes/ai-sources.js +4 -1
  20. package/dist/routes/dashboard.d.ts.map +1 -1
  21. package/dist/routes/dashboard.js +1 -1
  22. package/dist/routes/memory.d.ts +1 -1
  23. package/dist/routes/memory.d.ts.map +1 -1
  24. package/dist/routes/memory.js +3 -3
  25. package/dist/routes/pty.d.ts.map +1 -1
  26. package/dist/routes/pty.js +9 -0
  27. package/dist/routes/runtime-binding.d.ts.map +1 -1
  28. package/dist/routes/runtime-binding.js +6 -3
  29. package/dist/routes/sessions.js +89 -4
  30. package/dist/routes/sub-agents.d.ts +14 -0
  31. package/dist/routes/sub-agents.d.ts.map +1 -0
  32. package/dist/routes/sub-agents.js +267 -0
  33. package/dist/routes/terminal.d.ts +12 -1
  34. package/dist/routes/terminal.d.ts.map +1 -1
  35. package/dist/routes/terminal.js +326 -24
  36. package/dist/services/acode-package.d.ts +8 -1
  37. package/dist/services/acode-package.d.ts.map +1 -1
  38. package/dist/services/acode-package.js +33 -4
  39. package/dist/services/agent-event-store.d.ts +1 -0
  40. package/dist/services/agent-event-store.d.ts.map +1 -1
  41. package/dist/services/aws-client-agent-mcp.d.ts.map +1 -1
  42. package/dist/services/aws-client-agent-mcp.js +11 -4
  43. package/dist/services/event-delta-pusher.js +4 -4
  44. package/dist/services/fileSnapshotStore.js +1 -1
  45. package/dist/services/legacy-path-migration.d.ts +3 -0
  46. package/dist/services/legacy-path-migration.d.ts.map +1 -0
  47. package/dist/services/legacy-path-migration.js +66 -0
  48. package/dist/services/lifecycle-state.d.ts.map +1 -1
  49. package/dist/services/lifecycle-state.js +1 -1
  50. package/dist/services/runtime-binding.d.ts +5 -0
  51. package/dist/services/runtime-binding.d.ts.map +1 -1
  52. package/dist/services/runtime-binding.js +33 -1
  53. package/dist/services/session-output.d.ts +10 -1
  54. package/dist/services/session-output.d.ts.map +1 -1
  55. package/dist/services/session-output.js +54 -4
  56. package/dist/services/sub-agent-manager-instance.d.ts +4 -0
  57. package/dist/services/sub-agent-manager-instance.d.ts.map +1 -0
  58. package/dist/services/sub-agent-manager-instance.js +12 -0
  59. package/dist/services/workspace-files.d.ts +1 -0
  60. package/dist/services/workspace-files.d.ts.map +1 -1
  61. package/dist/services/workspace-files.js +57 -1
  62. package/package/acode/dist/ask-user-question-tool.d.ts +47 -0
  63. package/package/acode/dist/ask-user-question-tool.d.ts.map +1 -0
  64. package/package/acode/dist/ask-user-question-tool.js +233 -0
  65. package/package/acode/dist/built-in-file-tools.d.ts +2 -0
  66. package/package/acode/dist/built-in-file-tools.d.ts.map +1 -1
  67. package/package/acode/dist/built-in-file-tools.js +504 -3
  68. package/package/acode/dist/compaction.d.ts +242 -0
  69. package/package/acode/dist/compaction.d.ts.map +1 -0
  70. package/package/acode/dist/compaction.js +919 -0
  71. package/package/acode/dist/config.d.ts +6 -1
  72. package/package/acode/dist/config.d.ts.map +1 -1
  73. package/package/acode/dist/config.js +27 -2
  74. package/package/acode/dist/index.d.ts +4 -0
  75. package/package/acode/dist/index.d.ts.map +1 -1
  76. package/package/acode/dist/index.js +4 -0
  77. package/package/acode/dist/runtime.d.ts +257 -0
  78. package/package/acode/dist/runtime.d.ts.map +1 -1
  79. package/package/acode/dist/runtime.js +1843 -191
  80. package/package/acode/dist/skill-tool.d.ts +30 -0
  81. package/package/acode/dist/skill-tool.d.ts.map +1 -0
  82. package/package/acode/dist/skill-tool.js +174 -0
  83. package/package/acode/dist/sub-agent-manager.d.ts +264 -0
  84. package/package/acode/dist/sub-agent-manager.d.ts.map +1 -0
  85. package/package/acode/dist/sub-agent-manager.js +825 -0
  86. package/package/acode/dist/sub-agent-store.d.ts +40 -0
  87. package/package/acode/dist/sub-agent-store.d.ts.map +1 -0
  88. package/package/acode/dist/sub-agent-store.js +164 -0
  89. package/package/acode/dist/sub-agent-tools.d.ts +72 -0
  90. package/package/acode/dist/sub-agent-tools.d.ts.map +1 -0
  91. package/package/acode/dist/sub-agent-tools.js +429 -0
  92. package/package/acode/dist/sub-agent-types.d.ts +85 -0
  93. package/package/acode/dist/sub-agent-types.d.ts.map +1 -0
  94. package/package/acode/dist/sub-agent-types.js +8 -0
  95. package/package/acode/dist/todo-store.d.ts +42 -0
  96. package/package/acode/dist/todo-store.d.ts.map +1 -0
  97. package/package/acode/dist/todo-store.js +68 -0
  98. package/package/acode/dist/todo-tool.d.ts +6 -0
  99. package/package/acode/dist/todo-tool.d.ts.map +1 -0
  100. package/package/acode/dist/todo-tool.js +138 -0
  101. package/package/acode/dist/types.d.ts +41 -1
  102. package/package/acode/dist/types.d.ts.map +1 -1
  103. package/package/acode/package.json +13 -2
  104. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +9 -0
  105. package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +1 -1
  106. package/package/aws-client-agent-mcp/dist/agent-client.js +69 -10
  107. package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -1
  108. package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -1
  109. package/package/aws-client-agent-mcp/dist/config.js +4 -0
  110. package/package/aws-client-agent-mcp/dist/config.js.map +1 -1
  111. package/package/aws-client-agent-mcp/dist/constants.d.ts +2 -0
  112. package/package/aws-client-agent-mcp/dist/constants.d.ts.map +1 -1
  113. package/package/aws-client-agent-mcp/dist/constants.js +3 -1
  114. package/package/aws-client-agent-mcp/dist/constants.js.map +1 -1
  115. package/package/aws-client-agent-mcp/dist/context-manager.d.ts +4 -1
  116. package/package/aws-client-agent-mcp/dist/context-manager.d.ts.map +1 -1
  117. package/package/aws-client-agent-mcp/dist/context-manager.js +6 -2
  118. package/package/aws-client-agent-mcp/dist/context-manager.js.map +1 -1
  119. package/package/aws-client-agent-mcp/dist/context-manager.test.js +5 -3
  120. package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +1 -1
  121. package/package/aws-client-agent-mcp/dist/http-client.d.ts +5 -0
  122. package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -1
  123. package/package/aws-client-agent-mcp/dist/http-client.js +15 -1
  124. package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -1
  125. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +162 -71
  126. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
  127. package/package/aws-client-agent-mcp/dist/mcp-server.js +1007 -504
  128. package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
  129. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +371 -253
  130. package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
  131. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +6 -17
  132. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -1
  133. package/package/aws-client-agent-mcp/dist/mcp-tools.js +20 -75
  134. package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -1
  135. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +45 -45
  136. package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -1
  137. package/package/aws-client-agent-mcp/dist/memory-store.js +114 -162
  138. package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -1
  139. package/package/aws-client-agent-mcp/dist/memory-store.test.js +175 -164
  140. package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +1 -1
  141. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +3 -9
  142. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +1 -1
  143. package/package/aws-client-agent-mcp/dist/memory-tools.js +31 -58
  144. package/package/aws-client-agent-mcp/dist/memory-tools.js.map +1 -1
  145. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +40 -9
  146. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +1 -1
  147. package/package/aws-client-agent-mcp/dist/message-buffer.js +123 -23
  148. package/package/aws-client-agent-mcp/dist/message-buffer.js.map +1 -1
  149. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +13 -13
  150. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +1 -1
  151. package/package/aws-client-agent-mcp/dist/server-memory-store.js +23 -16
  152. package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +1 -1
  153. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +1 -1
  154. package/package/aws-client-agent-mcp/dist/status-reporter.js +8 -5
  155. package/package/aws-client-agent-mcp/dist/status-reporter.js.map +1 -1
  156. package/package/aws-client-agent-mcp/dist/status-reporter.test.js +93 -0
  157. package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +1 -1
  158. package/package/aws-client-agent-mcp/dist/types.d.ts +12 -25
  159. package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -1
  160. package/package/aws-client-agent-mcp/dist/types.js.map +1 -1
  161. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +34 -1
  162. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -1
  163. package/package/aws-client-agent-mcp/dist/websocket-client.js +146 -18
  164. package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -1
  165. package/package.json +17 -7
  166. package/dist/adapter/AcodeSdkAdapter.test.d.ts +0 -2
  167. package/dist/adapter/AcodeSdkAdapter.test.d.ts.map +0 -1
  168. package/dist/adapter/AcodeSdkAdapter.test.js +0 -2000
  169. package/dist/adapter/AdapterRegistry.test.d.ts +0 -5
  170. package/dist/adapter/AdapterRegistry.test.d.ts.map +0 -1
  171. package/dist/adapter/AdapterRegistry.test.js +0 -118
  172. package/dist/adapter/ClaudeSdkAdapter.test.d.ts +0 -2
  173. package/dist/adapter/ClaudeSdkAdapter.test.d.ts.map +0 -1
  174. package/dist/adapter/ClaudeSdkAdapter.test.js +0 -311
  175. package/dist/adapter/CodexSdkAdapter.test.d.ts +0 -2
  176. package/dist/adapter/CodexSdkAdapter.test.d.ts.map +0 -1
  177. package/dist/adapter/CodexSdkAdapter.test.js +0 -270
  178. package/dist/adapter/OpencodeSdkAdapter.test.d.ts +0 -2
  179. package/dist/adapter/OpencodeSdkAdapter.test.d.ts.map +0 -1
  180. package/dist/adapter/OpencodeSdkAdapter.test.js +0 -158
  181. package/dist/adapter/acode-tool-names.test.d.ts +0 -2
  182. package/dist/adapter/acode-tool-names.test.d.ts.map +0 -1
  183. package/dist/adapter/acode-tool-names.test.js +0 -28
  184. package/dist/adapter/adapter.test.d.ts +0 -5
  185. package/dist/adapter/adapter.test.d.ts.map +0 -1
  186. package/dist/adapter/adapter.test.js +0 -180
  187. package/dist/adapter/idle-poll-loop.test.d.ts +0 -2
  188. package/dist/adapter/idle-poll-loop.test.d.ts.map +0 -1
  189. package/dist/adapter/idle-poll-loop.test.js +0 -85
  190. package/dist/adapter/types.test.d.ts +0 -2
  191. package/dist/adapter/types.test.d.ts.map +0 -1
  192. package/dist/adapter/types.test.js +0 -50
  193. package/dist/adapters/cc-switch/mcp-acode.test.d.ts +0 -2
  194. package/dist/adapters/cc-switch/mcp-acode.test.d.ts.map +0 -1
  195. package/dist/adapters/cc-switch/mcp-acode.test.js +0 -80
  196. package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts +0 -2
  197. package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts.map +0 -1
  198. package/dist/adapters/cc-switch/mcp-claudecode.test.js +0 -75
  199. package/dist/adapters/cc-switch/mcp-codex.test.d.ts +0 -2
  200. package/dist/adapters/cc-switch/mcp-codex.test.d.ts.map +0 -1
  201. package/dist/adapters/cc-switch/mcp-codex.test.js +0 -126
  202. package/dist/adapters/cc-switch/mcp-opencode.test.d.ts +0 -2
  203. package/dist/adapters/cc-switch/mcp-opencode.test.d.ts.map +0 -1
  204. package/dist/adapters/cc-switch/mcp-opencode.test.js +0 -62
  205. package/dist/adapters/cc-switch/skill-directory.test.d.ts +0 -2
  206. package/dist/adapters/cc-switch/skill-directory.test.d.ts.map +0 -1
  207. package/dist/adapters/cc-switch/skill-directory.test.js +0 -74
  208. package/dist/config.test.d.ts +0 -2
  209. package/dist/config.test.d.ts.map +0 -1
  210. package/dist/config.test.js +0 -107
  211. package/dist/routes/ai-sources.test.d.ts +0 -2
  212. package/dist/routes/ai-sources.test.d.ts.map +0 -1
  213. package/dist/routes/ai-sources.test.js +0 -169
  214. package/dist/routes/file-browser.test.d.ts +0 -5
  215. package/dist/routes/file-browser.test.d.ts.map +0 -1
  216. package/dist/routes/file-browser.test.js +0 -155
  217. package/dist/routes/git.test.d.ts +0 -2
  218. package/dist/routes/git.test.d.ts.map +0 -1
  219. package/dist/routes/git.test.js +0 -330
  220. package/dist/routes/instance.test.d.ts +0 -5
  221. package/dist/routes/instance.test.d.ts.map +0 -1
  222. package/dist/routes/instance.test.js +0 -389
  223. package/dist/routes/mcp.test.d.ts +0 -5
  224. package/dist/routes/mcp.test.d.ts.map +0 -1
  225. package/dist/routes/mcp.test.js +0 -92
  226. package/dist/routes/memory-route-wiring.test.d.ts +0 -2
  227. package/dist/routes/memory-route-wiring.test.d.ts.map +0 -1
  228. package/dist/routes/memory-route-wiring.test.js +0 -15
  229. package/dist/routes/memory.test.d.ts +0 -2
  230. package/dist/routes/memory.test.d.ts.map +0 -1
  231. package/dist/routes/memory.test.js +0 -177
  232. package/dist/routes/properties.test.d.ts +0 -5
  233. package/dist/routes/properties.test.d.ts.map +0 -1
  234. package/dist/routes/properties.test.js +0 -72
  235. package/dist/routes/pty.test.d.ts +0 -2
  236. package/dist/routes/pty.test.d.ts.map +0 -1
  237. package/dist/routes/pty.test.js +0 -82
  238. package/dist/routes/runtime-binding.test.d.ts +0 -2
  239. package/dist/routes/runtime-binding.test.d.ts.map +0 -1
  240. package/dist/routes/runtime-binding.test.js +0 -32
  241. package/dist/routes/sessions.test.d.ts +0 -5
  242. package/dist/routes/sessions.test.d.ts.map +0 -1
  243. package/dist/routes/sessions.test.js +0 -86
  244. package/dist/routes/skills.test.d.ts +0 -5
  245. package/dist/routes/skills.test.d.ts.map +0 -1
  246. package/dist/routes/skills.test.js +0 -50
  247. package/dist/routes/system-metrics.test.d.ts +0 -2
  248. package/dist/routes/system-metrics.test.d.ts.map +0 -1
  249. package/dist/routes/system-metrics.test.js +0 -16
  250. package/dist/routes/terminal.stop-options.test.d.ts +0 -2
  251. package/dist/routes/terminal.stop-options.test.d.ts.map +0 -1
  252. package/dist/routes/terminal.stop-options.test.js +0 -39
  253. package/dist/routes/terminal.test.d.ts +0 -2
  254. package/dist/routes/terminal.test.d.ts.map +0 -1
  255. package/dist/routes/terminal.test.js +0 -746
  256. package/dist/routes/yml.test.d.ts +0 -5
  257. package/dist/routes/yml.test.d.ts.map +0 -1
  258. package/dist/routes/yml.test.js +0 -58
  259. package/dist/services/ai-source-apply.test.d.ts +0 -2
  260. package/dist/services/ai-source-apply.test.d.ts.map +0 -1
  261. package/dist/services/ai-source-apply.test.js +0 -138
  262. package/dist/services/auto-register.test.d.ts +0 -2
  263. package/dist/services/auto-register.test.d.ts.map +0 -1
  264. package/dist/services/auto-register.test.js +0 -184
  265. package/dist/services/aws-client-agent-mcp.test.d.ts +0 -2
  266. package/dist/services/aws-client-agent-mcp.test.d.ts.map +0 -1
  267. package/dist/services/aws-client-agent-mcp.test.js +0 -242
  268. package/dist/services/bridge-package-publish-hooks.test.d.ts +0 -2
  269. package/dist/services/bridge-package-publish-hooks.test.d.ts.map +0 -1
  270. package/dist/services/bridge-package-publish-hooks.test.js +0 -136
  271. package/dist/services/cc-switch-discovery.test.d.ts +0 -2
  272. package/dist/services/cc-switch-discovery.test.d.ts.map +0 -1
  273. package/dist/services/cc-switch-discovery.test.js +0 -56
  274. package/dist/services/cli-commands.test.d.ts +0 -2
  275. package/dist/services/cli-commands.test.d.ts.map +0 -1
  276. package/dist/services/cli-commands.test.js +0 -230
  277. package/dist/services/instance-init-service.test.d.ts +0 -2
  278. package/dist/services/instance-init-service.test.d.ts.map +0 -1
  279. package/dist/services/instance-init-service.test.js +0 -140
  280. package/dist/services/instance-state.test.d.ts +0 -2
  281. package/dist/services/instance-state.test.d.ts.map +0 -1
  282. package/dist/services/instance-state.test.js +0 -245
  283. package/dist/services/mcp-launch-binding-queue.test.d.ts +0 -2
  284. package/dist/services/mcp-launch-binding-queue.test.d.ts.map +0 -1
  285. package/dist/services/mcp-launch-binding-queue.test.js +0 -181
  286. package/dist/services/runtime-binding.test.d.ts +0 -2
  287. package/dist/services/runtime-binding.test.d.ts.map +0 -1
  288. package/dist/services/runtime-binding.test.js +0 -78
  289. package/dist/services/runtime-lifecycle-policy.test.d.ts +0 -2
  290. package/dist/services/runtime-lifecycle-policy.test.d.ts.map +0 -1
  291. package/dist/services/runtime-lifecycle-policy.test.js +0 -41
  292. package/dist/services/session-output.test.d.ts +0 -5
  293. package/dist/services/session-output.test.d.ts.map +0 -1
  294. package/dist/services/session-output.test.js +0 -177
  295. package/dist/services/startup-config-wizard.test.d.ts +0 -2
  296. package/dist/services/startup-config-wizard.test.d.ts.map +0 -1
  297. package/dist/services/startup-config-wizard.test.js +0 -184
  298. package/dist/services/terminal-persistence.test.d.ts +0 -5
  299. package/dist/services/terminal-persistence.test.d.ts.map +0 -1
  300. package/dist/services/terminal-persistence.test.js +0 -159
  301. package/dist/services/tool-installer.test.d.ts +0 -2
  302. package/dist/services/tool-installer.test.d.ts.map +0 -1
  303. package/dist/services/tool-installer.test.js +0 -225
  304. package/dist/services/workspace-files.test.d.ts +0 -2
  305. package/dist/services/workspace-files.test.d.ts.map +0 -1
  306. package/dist/services/workspace-files.test.js +0 -648
  307. package/dist/services/workspace-watch.test.d.ts +0 -2
  308. package/dist/services/workspace-watch.test.d.ts.map +0 -1
  309. package/dist/services/workspace-watch.test.js +0 -38
  310. package/dist/utils/file-utils.test.d.ts +0 -2
  311. package/dist/utils/file-utils.test.d.ts.map +0 -1
  312. package/dist/utils/file-utils.test.js +0 -244
  313. package/dist/utils/logger.test.d.ts +0 -2
  314. package/dist/utils/logger.test.d.ts.map +0 -1
  315. package/dist/utils/logger.test.js +0 -93
  316. package/dist/utils/sdk-package-loader.test.d.ts +0 -2
  317. package/dist/utils/sdk-package-loader.test.d.ts.map +0 -1
  318. package/dist/utils/sdk-package-loader.test.js +0 -84
  319. package/dist/utils/validation.test.d.ts +0 -2
  320. package/dist/utils/validation.test.d.ts.map +0 -1
  321. package/dist/utils/validation.test.js +0 -88
  322. package/dist/utils/yaml-utils.test.d.ts +0 -2
  323. package/dist/utils/yaml-utils.test.d.ts.map +0 -1
  324. package/dist/utils/yaml-utils.test.js +0 -363
@@ -63,7 +63,7 @@ async function fetchRemoteModelList(baseUrl, apiKey, protocolType) {
63
63
  return [];
64
64
  }
65
65
  aiSourcesRouter.post('/cc-switch/apply-ai-sources', validateToken, async (req, res) => {
66
- const { agentId, template, ccSwitchEnabledTools, acodeTemplateId, claudecodeTemplateId, codexTemplateId, opencodeTemplateId, acodeModelEffort, claudecodeModelEffort, codexModelEffort, opencodeModelEffort, acode, claudecode, codex, opencode, } = req.body || {};
66
+ const { agentId, template, ccSwitchEnabledTools, acodeTemplateId, claudecodeTemplateId, codexTemplateId, opencodeTemplateId, acodeModelEffort, claudecodeModelEffort, codexModelEffort, opencodeModelEffort, acodeSubAgentTemplateId, acodeSubAgentModel, acodeSubAgentModelEffort, acode, acodeSubAgent, claudecode, codex, opencode, } = req.body || {};
67
67
  if (!agentId) {
68
68
  res.status(400).json({ error: 'agentId is required' });
69
69
  return;
@@ -89,6 +89,9 @@ aiSourcesRouter.post('/cc-switch/apply-ai-sources', validateToken, async (req, r
89
89
  claudecodeModelEffort: String(claudecodeModelEffort || ''),
90
90
  codexModelEffort: String(codexModelEffort || ''),
91
91
  opencodeModelEffort: String(opencodeModelEffort || ''),
92
+ acodeSubAgentTemplateId: String(acodeSubAgentTemplateId || ''),
93
+ acodeSubAgentModel: String(acodeSubAgentModel || ''),
94
+ acodeSubAgentModelEffort: String(acodeSubAgentModelEffort || ''),
92
95
  generatedFromUnifiedTemplate: appliedSummary.generatedFromUnifiedTemplate,
93
96
  applied: appliedSummary.applied,
94
97
  skippedTools: appliedSummary.skippedTools,
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/routes/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuFH,eAAO,MAAM,eAAe,4CAAW,CAAC"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/routes/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsFH,eAAO,MAAM,eAAe,4CAAW,CAAC"}
@@ -52,7 +52,7 @@ async function loadLatestLifecycleOperation() {
52
52
  const fs = await import("node:fs/promises");
53
53
  const path = await import("node:path");
54
54
  const os = await import("node:os");
55
- const lifecycleFile = path.join(String(process.env.AWS_RUNTIME_HOME_DIR || os.homedir()).trim() || os.homedir(), ".agentswork", "runtime-bridge", "lifecycle-state.json");
55
+ const lifecycleFile = path.join(String(process.env.AWS_RUNTIME_HOME_DIR || os.homedir()).trim() || os.homedir(), ".aws-bridge", "lifecycle-state.json");
56
56
  try {
57
57
  const raw = await fs.readFile(lifecycleFile, "utf8");
58
58
  const parsed = JSON.parse(raw);
@@ -1,5 +1,5 @@
1
1
  export declare const memoryRouter: import("express-serve-static-core").Router;
2
- type MemoryType = "task_list" | "recently_memory" | "memory";
2
+ type MemoryType = "recently_memory" | "agent_memory" | "project_memory";
3
3
  interface MemoryRecord {
4
4
  id: string;
5
5
  uri: string;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/routes/memory.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,4CAAW,CAAC;AAErC,KAAK,UAAU,GAAG,WAAW,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAE7D,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,UAAU,6BAA6B;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAmCD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,MAAM,EACrB,QAAQ,SAAK,GACZ,MAAM,CAaR;AAED;;;GAGG;AACH,wBAAgB,yCAAyC,CACvD,aAAa,EAAE,MAAM,EACrB,QAAQ,SAAK,GACZ,6BAA6B,EAAE,CAWjC;AA8FD;;;GAGG;AACH,wBAAsB,kCAAkC,CACtD,aAAa,EAAE,MAAM,EACrB,QAAQ,SAAK,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAkBzB"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/routes/memory.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,4CAAW,CAAC;AAErC,KAAK,UAAU,GAAG,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAExE,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,UAAU,6BAA6B;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAmCD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,MAAM,EACrB,QAAQ,SAAK,GACZ,MAAM,CAaR;AAED;;;GAGG;AACH,wBAAgB,yCAAyC,CACvD,aAAa,EAAE,MAAM,EACrB,QAAQ,SAAK,GACZ,6BAA6B,EAAE,CAWjC;AA8FD;;;GAGG;AACH,wBAAsB,kCAAkC,CACtD,aAAa,EAAE,MAAM,EACrB,QAAQ,SAAK,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAkBzB"}
@@ -74,8 +74,8 @@ function normalizeUri(input) {
74
74
  };
75
75
  }
76
76
  function normalizeMemoryRecord(uri, record) {
77
- const memoryType = record.memory_type || "memory";
78
- if (memoryType !== "memory") {
77
+ const memoryType = record.memory_type || "project_memory";
78
+ if (memoryType !== "project_memory") {
79
79
  return null;
80
80
  }
81
81
  const normalized = normalizeUri(record.uri || uri);
@@ -86,7 +86,7 @@ function normalizeMemoryRecord(uri, record) {
86
86
  path: normalized.path,
87
87
  title: record.title || undefined,
88
88
  content: String(record.content || ""),
89
- memory_type: "memory",
89
+ memory_type: "project_memory",
90
90
  createdAt: String(record.createdAt || record.updatedAt || ""),
91
91
  updatedAt: String(record.updatedAt || record.createdAt || ""),
92
92
  version: typeof record.version === "number" ? record.version : 1,
@@ -1 +1 @@
1
- {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/routes/pty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/routes/pty.ts"],"names":[],"mappings":"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"}
@@ -364,16 +364,20 @@ export function createPtyConnectToken(sessionId) {
364
364
  function consumePtyConnectToken(sessionId, token) {
365
365
  const entry = ptyConnectTokens.get(token);
366
366
  if (!entry) {
367
+ log.warn(`[pty-ws] consumePtyConnectToken: token 不存在, sessionId=${sessionId}, ptyConnectTokens.size=${ptyConnectTokens.size}`);
367
368
  return false;
368
369
  }
369
370
  if (entry.expiresAt < Date.now()) {
370
371
  ptyConnectTokens.delete(token);
372
+ log.warn(`[pty-ws] consumePtyConnectToken: token 已过期, sessionId=${sessionId}, expiredAt=${new Date(entry.expiresAt).toISOString()}`);
371
373
  return false;
372
374
  }
373
375
  if (entry.sessionId !== sessionId) {
376
+ log.warn(`[pty-ws] consumePtyConnectToken: sessionId 不匹配, expected=${entry.sessionId}, actual=${sessionId}`);
374
377
  return false;
375
378
  }
376
379
  ptyConnectTokens.delete(token);
380
+ log.info(`[pty-ws] consumePtyConnectToken: 成功, sessionId=${sessionId}`);
377
381
  return true;
378
382
  }
379
383
  function deletePtyConnectTokensForSession(sessionId) {
@@ -533,17 +537,22 @@ export function attachPtyWebSocketServer(server) {
533
537
  }
534
538
  const token = extractWsToken(request, requestUrl);
535
539
  const sessionId = decodeURIComponent(match[1] || "");
540
+ const tokenPreview = token ? (token.length > 12 ? token.substring(0, 12) + "..." : token) : "empty";
541
+ log.info(`[pty-ws] upgrade 请求: sessionId=${sessionId}, token=${tokenPreview}, pathname=${requestUrl.pathname}`);
536
542
  if (!isRuntimeTokenValid(token) && !consumePtyConnectToken(sessionId, token)) {
543
+ log.warn(`[pty-ws] token 校验失败: sessionId=${sessionId}, token=${tokenPreview}, runtimeTokenValid=${isRuntimeTokenValid(token)}, ptySessions.size=${ptySessions.size}`);
537
544
  socket.write("HTTP/1.1 401 Unauthorized\r\n\r\n");
538
545
  socket.destroy();
539
546
  return;
540
547
  }
541
548
  const session = ptySessions.get(sessionId);
542
549
  if (!session) {
550
+ log.warn(`[pty-ws] session 不存在: sessionId=${sessionId}, ptySessions.size=${ptySessions.size}, keys=${Array.from(ptySessions.keys()).join(",")}`);
543
551
  socket.write("HTTP/1.1 404 Not Found\r\n\r\n");
544
552
  socket.destroy();
545
553
  return;
546
554
  }
555
+ log.info(`[pty-ws] handleUpgrade: sessionId=${sessionId}, status=${session.status}, persistent=${session.persistent}, sockets=${session.sockets.size}`);
547
556
  wss.handleUpgrade(request, socket, head, (ws) => {
548
557
  handlePtySocket(session, ws);
549
558
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-binding.d.ts","sourceRoot":"","sources":["../../src/routes/runtime-binding.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,oBAAoB,4CAAW,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,wBAAwB,GAC9B,yBAAyB,CAM3B;AAqPD,wBAAgB,6BAA6B,IAAI,IAAI,CAapD"}
1
+ {"version":3,"file":"runtime-binding.d.ts","sourceRoot":"","sources":["../../src/routes/runtime-binding.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,oBAAoB,4CAAW,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,wBAAwB,GAC9B,yBAAyB,CAM3B;AAwPD,wBAAgB,6BAA6B,IAAI,IAAI,CAapD"}
@@ -148,7 +148,7 @@ runtimeBindingRouter.post("/binding/refresh-token", (req, res) => {
148
148
  res.status(403).json({ ok: false, error: "loopback request required" });
149
149
  return;
150
150
  }
151
- const { agentId, currentToken } = req.body || {};
151
+ const { agentId, currentToken, forceRefresh } = req.body || {};
152
152
  const normalizedAgentId = String(agentId || "").trim();
153
153
  if (!normalizedAgentId) {
154
154
  res.status(400).json({ ok: false, error: "agentId is required" });
@@ -159,9 +159,12 @@ runtimeBindingRouter.post("/binding/refresh-token", (req, res) => {
159
159
  res.status(404).json({ ok: false, error: "no cached token for agent" });
160
160
  return;
161
161
  }
162
- // 如果最新 token 与当前 token 相同,说明服务端已撤销,bridge 侧没有更新的
162
+ // forceRefresh=true 时跳过 token 一致性检查,直接返回缓存的最新 token
163
+ // 用于 WebSocket 1008(policy rejection)场景:即使 bridge 缓存的 token 与当前相同,
164
+ // 也允许返回,由客户端侧的 hammer 保护控制重复请求。
165
+ // 非 forceRefresh(HTTP 401 反应式刷新)保持原有 409 语义。
163
166
  const normalizedCurrent = String(currentToken || "").trim();
164
- if (normalizedCurrent && latest.runtimeAccessToken === normalizedCurrent) {
167
+ if (!forceRefresh && normalizedCurrent && latest.runtimeAccessToken === normalizedCurrent) {
165
168
  res.status(409).json({
166
169
  ok: false,
167
170
  error: "token_unchanged",
@@ -198,11 +198,62 @@ sessionsRouter.post('/search-orphan', validateToken, async (req, res) => {
198
198
  }
199
199
  try {
200
200
  // 1. 首先检查 runtime-bridge 是否已经有活跃 SDK 会话
201
- const activeSdkSession = Array.from(sdkSessions.entries()).find(([, s]) => s.agentId === agentId);
202
- const hasActiveSession = activeSdkSession;
201
+ // ★ 同时检测陈旧会话:进程已死但 sdkSessions 中仍有残留条目时,清理并视为无活跃会话
202
+ const activeSdkSessionEntry = Array.from(sdkSessions.entries()).find(([, s]) => s.agentId === agentId);
203
+ let hasActiveSession = false;
204
+ let activeSessionPid;
205
+ let activeSessionCommand;
206
+ if (activeSdkSessionEntry) {
207
+ const [activeSessionId, activeEntry] = activeSdkSessionEntry;
208
+ const adapter = adapterRegistry.get(activeEntry.providerId || 'claude-code');
209
+ activeSessionPid = adapter.getSessionPid?.(activeSessionId);
210
+ activeSessionCommand = activeEntry.config?.command;
211
+ const isPidAlive = activeSessionPid ? isProcessRunning(activeSessionPid) : false;
212
+ const sessionStatus = adapter.getSessionStatus(activeSessionId);
213
+ const isSessionDeadStatus = sessionStatus === 'completed' ||
214
+ sessionStatus === 'terminated' ||
215
+ sessionStatus === 'error';
216
+ if (isPidAlive) {
217
+ // 外部 CLI provider(claude-code/opencode):进程存活,视为活跃会话
218
+ hasActiveSession = true;
219
+ }
220
+ else if (activeSessionPid && !isPidAlive) {
221
+ // PID 存在但进程已死亡 - 清理陈旧会话
222
+ log.info(`[search-orphan] Cleaning up stale SDK session (process dead): agentId=${agentId}, sessionId=${activeSessionId}, pid=${activeSessionPid}`);
223
+ sdkSessions.delete(activeSessionId);
224
+ await removePersistedSession(activeSessionId);
225
+ }
226
+ else if (isSessionDeadStatus) {
227
+ // 无 PID(in-process provider 如 ACode)且会话已结束 - 清理陈旧会话
228
+ log.info(`[search-orphan] Cleaning up stale in-process SDK session (status=${sessionStatus}): agentId=${agentId}, sessionId=${activeSessionId}`);
229
+ try {
230
+ await adapter.terminateSession(activeSessionId);
231
+ }
232
+ catch (e) {
233
+ log.warn(`[search-orphan] Failed to terminate stale in-process session: ${e}`);
234
+ }
235
+ sdkSessions.delete(activeSessionId);
236
+ await removePersistedSession(activeSessionId);
237
+ }
238
+ else {
239
+ // 无 PID 且会话仍存活(in-process provider,如 ACode)
240
+ // WebSocket 断开导致前端显示 LOST,但 in-process 运行时仍在运行且不可达
241
+ // 终止会话以释放资源,然后清理
242
+ log.info(`[search-orphan] Terminating unreachable in-process SDK session: agentId=${agentId}, sessionId=${activeSessionId}, status=${sessionStatus || 'unknown'}`);
243
+ try {
244
+ await adapter.abortCurrentTurn(activeSessionId).catch(() => { });
245
+ await adapter.terminateSession(activeSessionId);
246
+ }
247
+ catch (e) {
248
+ log.warn(`[search-orphan] Failed to terminate in-process session: ${e}`);
249
+ }
250
+ sdkSessions.delete(activeSessionId);
251
+ await removePersistedSession(activeSessionId);
252
+ }
253
+ }
203
254
  // 2. 搜索标记了该 agentId 的进程(命令 + 环境变量 + 进程树匹配)
204
255
  const orphanProcess = await findOrphanProcessByAgentId(agentId);
205
- // 3. 如果找到残留进程,返回进程信�?
256
+ // 3. 如果找到残留进程,返回进程信息
206
257
  if (orphanProcess) {
207
258
  log.info(`[search-orphan] Found orphan process for agentId=${agentId}, pid=${orphanProcess.pid}`);
208
259
  res.json({
@@ -220,6 +271,24 @@ sessionsRouter.post('/search-orphan', validateToken, async (req, res) => {
220
271
  });
221
272
  return;
222
273
  }
274
+ // 3.5 活跃会话的进程仍然存活时,将其作为可终止的残留进程返回
275
+ // 场景:WebSocket 断开导致前端显示 LOST/zombie,但 SDK 进程仍在运行且不可达
276
+ // 用户可以通过终止该进程来清理僵尸状态
277
+ if (hasActiveSession && activeSessionPid) {
278
+ log.info(`[search-orphan] Active session process still running, reporting as terminable orphan: agentId=${agentId}, pid=${activeSessionPid}`);
279
+ res.json({
280
+ ok: true,
281
+ agentId,
282
+ hasActiveSession: true,
283
+ found: true,
284
+ orphan: {
285
+ pid: activeSessionPid,
286
+ command: activeSessionCommand || '(active SDK session)',
287
+ message: 'Found active SDK session process. Click terminate to stop it.',
288
+ },
289
+ });
290
+ return;
291
+ }
223
292
  // 4. 检查持久化会话中的 PID 是否仍然存活
224
293
  // 即使进程列表匹配不到(命令行特征未识别),PID 存活说明进程仍在运行
225
294
  const persistedSession = await findPersistedSessionByAgentId(agentId);
@@ -291,7 +360,23 @@ sessionsRouter.post('/terminate-orphan', validateToken, async (req, res) => {
291
360
  return;
292
361
  }
293
362
  try {
294
- // 1. 检查进程是否还在运�?
363
+ // 0. 清理 sdkSessions 中匹配 agentId 的活跃会话条目
364
+ // 场景:/search-orphan 将活跃会话的 PID 作为残留进程返回,用户终止该进程后需要清理 bridge 侧的会话状态
365
+ const activeSessionEntry = Array.from(sdkSessions.entries()).find(([, s]) => s.agentId === agentId);
366
+ if (activeSessionEntry) {
367
+ const [activeSessionId, activeEntry] = activeSessionEntry;
368
+ const adapter = adapterRegistry.get(activeEntry.providerId || 'claude-code');
369
+ try {
370
+ await adapter.terminateSession(activeSessionId);
371
+ }
372
+ catch (e) {
373
+ log.warn(`[terminate-orphan] Failed to terminate SDK session for agentId=${agentId}:`, e);
374
+ }
375
+ sdkSessions.delete(activeSessionId);
376
+ await removePersistedSession(activeSessionId);
377
+ log.info(`[terminate-orphan] Cleaned up SDK session for agentId=${agentId}, sessionId=${activeSessionId}`);
378
+ }
379
+ // 1. 检查进程是否还在运行
295
380
  if (!isProcessRunning(pid)) {
296
381
  res.json({
297
382
  ok: true,
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Sub Agent HTTP 路由
3
+ *
4
+ * 提供/dashboard 直连 bridge 拉取 sub-agent 数据的接口:
5
+ * GET /runtime/sub-agents/:agentId 列表(含历史)
6
+ * GET /runtime/sub-agents/:agentId/:subId 单个详情
7
+ * GET /runtime/sub-agents/:agentId/:subId/events SSE 实时事件流
8
+ * POST /runtime/sub-agents/:agentId/:subId/abort 取消运行中的 sub-agent
9
+ *
10
+ * 设计与 acode-todos.ts 同构:validateToken 鉴权,agentId 路径隔离。
11
+ * 数据源:SubAgentStore(持久化历史) + SubAgentManager(运行中实时状态)。
12
+ */
13
+ export declare const subAgentsRouter: import("express-serve-static-core").Router;
14
+ //# sourceMappingURL=sub-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-agents.d.ts","sourceRoot":"","sources":["../../src/routes/sub-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,eAAO,MAAM,eAAe,4CAAW,CAAC"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Sub Agent HTTP 路由
3
+ *
4
+ * 提供/dashboard 直连 bridge 拉取 sub-agent 数据的接口:
5
+ * GET /runtime/sub-agents/:agentId 列表(含历史)
6
+ * GET /runtime/sub-agents/:agentId/:subId 单个详情
7
+ * GET /runtime/sub-agents/:agentId/:subId/events SSE 实时事件流
8
+ * POST /runtime/sub-agents/:agentId/:subId/abort 取消运行中的 sub-agent
9
+ *
10
+ * 设计与 acode-todos.ts 同构:validateToken 鉴权,agentId 路径隔离。
11
+ * 数据源:SubAgentStore(持久化历史) + SubAgentManager(运行中实时状态)。
12
+ */
13
+ import { Router } from "express";
14
+ import { validateToken } from "../middleware/auth.js";
15
+ import { createLogger } from "../utils/logger.js";
16
+ import { subAgentManager, subAgentStore } from "../services/sub-agent-manager-instance.js";
17
+ const log = createLogger("sub-agents");
18
+ export const subAgentsRouter = Router();
19
+ /**
20
+ * GET /runtime/sub-agents/:agentId
21
+ * 返回该 agent 的全部 sub-agent 列表(运行中 + 历史)。
22
+ *
23
+ * 响应:
24
+ * 200 { ok: true, agentId, updatedAt, running: [...], history: [...] }
25
+ */
26
+ subAgentsRouter.get("/sub-agents/:agentId", validateToken, async (req, res) => {
27
+ const agentId = String(req.params.agentId ?? "");
28
+ if (!agentId.trim()) {
29
+ res.status(400).json({ ok: false, error: "agentId is required" });
30
+ return;
31
+ }
32
+ try {
33
+ // 从 store 读取全部历史
34
+ const allRecords = await subAgentStore.list(agentId);
35
+ // 从 manager 读取活跃 entry(pending / running),已完成但未 TTL 清理的不计入
36
+ const runningEntries = subAgentManager.listActiveByParent(agentId);
37
+ const runningIds = new Set(runningEntries.map((e) => e.subId));
38
+ // 合并:运行中的用 manager 的实时状态覆盖 store 的记录
39
+ const running = runningEntries.map((e) => ({
40
+ subId: e.subId,
41
+ parentAgentId: e.parentAgentId,
42
+ parentSessionId: e.parentSessionId,
43
+ subagentType: e.subagentType,
44
+ description: e.description,
45
+ prompt: e.prompt,
46
+ status: e.status,
47
+ startedAt: e.startedAt,
48
+ contextSnapshot: e.contextSnapshot,
49
+ availableTools: e.availableTools,
50
+ }));
51
+ const history = allRecords.filter((r) => !runningIds.has(r.subId));
52
+ const doc = await subAgentStore.read(agentId);
53
+ res.json({
54
+ ok: true,
55
+ agentId,
56
+ updatedAt: doc.updatedAt,
57
+ running,
58
+ history,
59
+ });
60
+ }
61
+ catch (err) {
62
+ const e = err;
63
+ log.error("[sub-agents] 列表失败: %s", e.message);
64
+ res.status(500).json({ ok: false, error: e.message });
65
+ }
66
+ });
67
+ /**
68
+ * GET /runtime/sub-agents/:agentId/events
69
+ * SSE 实时事件流(agent 级,推送该 agent 下所有 sub-agent 的事件)。
70
+ *
71
+ * 用于 dashboard 面板订阅,避免高频轮询。
72
+ * 通过 SubAgentManager.subscribe("*", ...) 全局订阅,在回调中按 parentAgentId 过滤。
73
+ * 连接建立时先发送一次 snapshot(当前运行中的 sub-agent 列表)。
74
+ *
75
+ * 事件类型:
76
+ * snapshot - 连接建立时的当前快照(data.running: SubAgentEntry[])
77
+ * spawned - sub-agent 创建
78
+ * running - sub-agent 开始运行
79
+ * completed - sub-agent 完成
80
+ * failed - sub-agent 失败
81
+ * cancelled - sub-agent 被取消
82
+ * (tool_start/tool_end/delta 等高频事件不在此流推送,避免噪声;如需查看详情订阅 subId 级 SSE)
83
+ */
84
+ subAgentsRouter.get("/sub-agents/:agentId/events", validateToken, async (req, res) => {
85
+ const agentId = String(req.params.agentId ?? "");
86
+ if (!agentId.trim()) {
87
+ res.status(400).json({ ok: false, error: "agentId is required" });
88
+ return;
89
+ }
90
+ res.writeHead(200, {
91
+ "Content-Type": "text/event-stream",
92
+ "Cache-Control": "no-cache",
93
+ "Connection": "keep-alive",
94
+ "X-Accel-Buffering": "no", // nginx 关闭缓冲
95
+ });
96
+ res.write(": connected\n\n");
97
+ // 发送当前快照(仅活跃 sub-agent:pending / running;已完成但未清理的不计入)
98
+ const runningEntries = subAgentManager.listActiveByParent(agentId);
99
+ if (runningEntries.length > 0) {
100
+ res.write(`data: ${JSON.stringify({
101
+ type: "snapshot",
102
+ agentId,
103
+ timestamp: new Date().toISOString(),
104
+ data: {
105
+ running: runningEntries.map((e) => ({
106
+ subId: e.subId,
107
+ subagentType: e.subagentType,
108
+ description: e.description,
109
+ status: e.status,
110
+ startedAt: e.startedAt,
111
+ })),
112
+ },
113
+ })}\n\n`);
114
+ }
115
+ // 全局订阅,按 parentAgentId 过滤
116
+ const unsubscribe = subAgentManager.subscribe("*", (event) => {
117
+ const entry = subAgentManager.getSubAgent(event.subId);
118
+ if (!entry || entry.parentAgentId !== agentId)
119
+ return;
120
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
121
+ });
122
+ // 心跳(30s)
123
+ const heartbeat = setInterval(() => {
124
+ try {
125
+ res.write(": heartbeat\n\n");
126
+ }
127
+ catch { /* 已断开 */ }
128
+ }, 30000);
129
+ req.on("close", () => {
130
+ unsubscribe();
131
+ clearInterval(heartbeat);
132
+ try {
133
+ res.end();
134
+ }
135
+ catch { /* 忽略 */ }
136
+ });
137
+ });
138
+ /**
139
+ * GET /runtime/sub-agents/:agentId/:subId
140
+ * 返回单个 sub-agent 详情(含上下文快照)。
141
+ *
142
+ * 优先从 manager 内存读取(运行中),否则从 store 读取(历史)。
143
+ */
144
+ subAgentsRouter.get("/sub-agents/:agentId/:subId", validateToken, async (req, res) => {
145
+ const agentId = String(req.params.agentId ?? "");
146
+ const subId = String(req.params.subId ?? "");
147
+ if (!agentId.trim() || !subId.trim()) {
148
+ res.status(400).json({ ok: false, error: "agentId and subId are required" });
149
+ return;
150
+ }
151
+ try {
152
+ // 优先内存
153
+ const entry = subAgentManager.getSubAgent(subId);
154
+ if (entry) {
155
+ res.json({
156
+ ok: true,
157
+ subAgent: {
158
+ subId: entry.subId,
159
+ parentAgentId: entry.parentAgentId,
160
+ parentSessionId: entry.parentSessionId,
161
+ subagentType: entry.subagentType,
162
+ description: entry.description,
163
+ prompt: entry.prompt,
164
+ status: entry.status,
165
+ startedAt: entry.startedAt,
166
+ contextSnapshot: entry.contextSnapshot,
167
+ availableTools: entry.availableTools,
168
+ },
169
+ });
170
+ return;
171
+ }
172
+ // 回退到 store
173
+ const record = await subAgentStore.get(agentId, subId);
174
+ if (!record) {
175
+ res.status(404).json({ ok: false, error: "sub-agent not found" });
176
+ return;
177
+ }
178
+ res.json({ ok: true, subAgent: record });
179
+ }
180
+ catch (err) {
181
+ const e = err;
182
+ log.error("[sub-agents] 详情失败: %s", e.message);
183
+ res.status(500).json({ ok: false, error: e.message });
184
+ }
185
+ });
186
+ /**
187
+ * GET /runtime/sub-agents/:agentId/:subId/events
188
+ * SSE 实时事件流(sub-agent 运行期间推送 spawned/running/tool_start/delta/tool_end/completed/failed/cancelled)。
189
+ *
190
+ * 客户端关闭连接时自动取消订阅。
191
+ */
192
+ subAgentsRouter.get("/sub-agents/:agentId/:subId/events", validateToken, async (req, res) => {
193
+ const agentId = String(req.params.agentId ?? "");
194
+ const subId = String(req.params.subId ?? "");
195
+ if (!agentId.trim() || !subId.trim()) {
196
+ res.status(400).json({ ok: false, error: "agentId and subId are required" });
197
+ return;
198
+ }
199
+ res.writeHead(200, {
200
+ "Content-Type": "text/event-stream",
201
+ "Cache-Control": "no-cache",
202
+ "Connection": "keep-alive",
203
+ "X-Accel-Buffering": "no", // nginx 关闭缓冲
204
+ });
205
+ res.write(": connected\n\n");
206
+ // 1. 补发历史 tool 事件(从 store 读取,按时间升序)
207
+ try {
208
+ const record = await subAgentStore.get(agentId, subId);
209
+ const historyEvents = record?.events ?? [];
210
+ for (const ev of historyEvents) {
211
+ res.write(`data: ${JSON.stringify(ev)}\n\n`);
212
+ }
213
+ }
214
+ catch (err) {
215
+ log.error("[sub-agents] 补发历史事件失败: %s", err.message);
216
+ }
217
+ // 2. 发送当前状态(如果 entry 仍在内存中)
218
+ const entry = subAgentManager.getSubAgent(subId);
219
+ if (entry) {
220
+ res.write(`data: ${JSON.stringify({
221
+ type: entry.status === "pending" ? "spawned" : "running",
222
+ subId,
223
+ timestamp: new Date().toISOString(),
224
+ data: { snapshot: entry.contextSnapshot },
225
+ })}\n\n`);
226
+ }
227
+ // 3. 实时订阅
228
+ const unsubscribe = subAgentManager.subscribe(subId, (event) => {
229
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
230
+ });
231
+ // 心跳(30s)
232
+ const heartbeat = setInterval(() => {
233
+ try {
234
+ res.write(": heartbeat\n\n");
235
+ }
236
+ catch { /* 已断开 */ }
237
+ }, 30000);
238
+ req.on("close", () => {
239
+ unsubscribe();
240
+ clearInterval(heartbeat);
241
+ try {
242
+ res.end();
243
+ }
244
+ catch { /* 忽略 */ }
245
+ });
246
+ });
247
+ /**
248
+ * POST /runtime/sub-agents/:agentId/:subId/abort
249
+ * 取消运行中的 sub-agent。
250
+ */
251
+ subAgentsRouter.post("/sub-agents/:agentId/:subId/abort", validateToken, async (req, res) => {
252
+ const agentId = String(req.params.agentId ?? "");
253
+ const subId = String(req.params.subId ?? "");
254
+ if (!agentId.trim() || !subId.trim()) {
255
+ res.status(400).json({ ok: false, error: "agentId and subId are required" });
256
+ return;
257
+ }
258
+ try {
259
+ await subAgentManager.abort(subId);
260
+ res.json({ ok: true, subId, status: "cancelled" });
261
+ }
262
+ catch (err) {
263
+ const e = err;
264
+ log.error("[sub-agents] 取消失败: %s", e.message);
265
+ res.status(500).json({ ok: false, error: e.message });
266
+ }
267
+ });
@@ -23,6 +23,14 @@ export interface SdkSessionEntry {
23
23
  currentRuntimeActionLabel?: string;
24
24
  currentRuntimeActionDetail?: string;
25
25
  currentRuntimeActionInput?: string;
26
+ /**
27
+ * runtime_capabilities 事件的 actionDetail 缓存。
28
+ * 修复时序竞争条件:session 启动时 "starting" 状态变更与 runtime_capabilities
29
+ * 几乎同时发送到服务端,若 capabilities POST 先到达且 runtime_session_id 尚未更新,
30
+ * 服务端会视为过期会话直接丢弃。缓存此值后,在 session 稳定到 waiting_input 时重发,
31
+ * 确保能力清单最终送达前端。
32
+ */
33
+ cachedCapabilitiesActionDetail?: string;
26
34
  }
27
35
  export declare const sdkSessions: Map<string, SdkSessionEntry>;
28
36
  export interface RuntimeStopOptions {
@@ -48,9 +56,12 @@ export declare function shouldProbeSdkProcessPid(providerId: string): boolean;
48
56
  */
49
57
  export declare function parseRuntimeStopOptions(body: unknown): RuntimeStopOptions;
50
58
  export declare function resolveStatusChangeUsage(actionInfo?: RuntimeStatusActionInfo): {
51
- contextLimit?: number | undefined;
52
59
  inputTokens: number;
53
60
  outputTokens: number;
61
+ contextLimit?: number;
62
+ maxOutput?: number;
63
+ inputLimit?: number;
64
+ compactionThreshold?: number;
54
65
  } | undefined;
55
66
  export declare function resolveStatusChangeRuntimeState(status: string, actionInfo?: RuntimeStatusActionInfo): {
56
67
  status: string;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/routes/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/routes/terminal.ts"],"names":[],"mappings":"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"}