botmux 3.16.0 → 3.17.0

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 (619) hide show
  1. package/dist/.runtime-build-id +1 -1
  2. package/dist/adapters/backend/riff-backend.d.ts +84 -1
  3. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  4. package/dist/adapters/backend/riff-backend.js +202 -19
  5. package/dist/adapters/backend/riff-backend.js.map +1 -1
  6. package/dist/adapters/backend/sandbox.d.ts +8 -0
  7. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  8. package/dist/adapters/backend/sandbox.js +15 -0
  9. package/dist/adapters/backend/sandbox.js.map +1 -1
  10. package/dist/adapters/backend/tmux-backend.d.ts +61 -7
  11. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/tmux-backend.js +80 -9
  13. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  14. package/dist/adapters/backend/tmux-pipe-backend.d.ts +62 -4
  15. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  16. package/dist/adapters/backend/tmux-pipe-backend.js +240 -27
  17. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  18. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  19. package/dist/adapters/cli/claude-code.js +4 -2
  20. package/dist/adapters/cli/claude-code.js.map +1 -1
  21. package/dist/adapters/cli/coco.d.ts.map +1 -1
  22. package/dist/adapters/cli/coco.js +27 -0
  23. package/dist/adapters/cli/coco.js.map +1 -1
  24. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  25. package/dist/adapters/cli/codex-app.js +28 -0
  26. package/dist/adapters/cli/codex-app.js.map +1 -1
  27. package/dist/adapters/cli/codex.d.ts.map +1 -1
  28. package/dist/adapters/cli/codex.js +51 -23
  29. package/dist/adapters/cli/codex.js.map +1 -1
  30. package/dist/adapters/cli/dsh-tui.d.ts +24 -0
  31. package/dist/adapters/cli/dsh-tui.d.ts.map +1 -0
  32. package/dist/adapters/cli/dsh-tui.js +99 -0
  33. package/dist/adapters/cli/dsh-tui.js.map +1 -0
  34. package/dist/adapters/cli/dsh.d.ts.map +1 -1
  35. package/dist/adapters/cli/dsh.js +15 -9
  36. package/dist/adapters/cli/dsh.js.map +1 -1
  37. package/dist/adapters/cli/fs-policy.d.ts +98 -1
  38. package/dist/adapters/cli/fs-policy.d.ts.map +1 -1
  39. package/dist/adapters/cli/fs-policy.js +182 -7
  40. package/dist/adapters/cli/fs-policy.js.map +1 -1
  41. package/dist/adapters/cli/grok.js +16 -18
  42. package/dist/adapters/cli/grok.js.map +1 -1
  43. package/dist/adapters/cli/model-catalog-json.d.ts +17 -0
  44. package/dist/adapters/cli/model-catalog-json.d.ts.map +1 -0
  45. package/dist/adapters/cli/model-catalog-json.js +43 -0
  46. package/dist/adapters/cli/model-catalog-json.js.map +1 -0
  47. package/dist/adapters/cli/oh-my-pi.d.ts +2 -0
  48. package/dist/adapters/cli/oh-my-pi.d.ts.map +1 -1
  49. package/dist/adapters/cli/oh-my-pi.js +45 -13
  50. package/dist/adapters/cli/oh-my-pi.js.map +1 -1
  51. package/dist/adapters/cli/opencode.js +1 -1
  52. package/dist/adapters/cli/opencode.js.map +1 -1
  53. package/dist/adapters/cli/registry.d.ts +2 -1
  54. package/dist/adapters/cli/registry.d.ts.map +1 -1
  55. package/dist/adapters/cli/registry.js +6 -1
  56. package/dist/adapters/cli/registry.js.map +1 -1
  57. package/dist/adapters/cli/relay.d.ts.map +1 -1
  58. package/dist/adapters/cli/relay.js +7 -0
  59. package/dist/adapters/cli/relay.js.map +1 -1
  60. package/dist/adapters/cli/seed.d.ts.map +1 -1
  61. package/dist/adapters/cli/seed.js +6 -0
  62. package/dist/adapters/cli/seed.js.map +1 -1
  63. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  64. package/dist/adapters/cli/shared-hints.js +20 -14
  65. package/dist/adapters/cli/shared-hints.js.map +1 -1
  66. package/dist/adapters/cli/traex.d.ts +4 -0
  67. package/dist/adapters/cli/traex.d.ts.map +1 -1
  68. package/dist/adapters/cli/traex.js +153 -0
  69. package/dist/adapters/cli/traex.js.map +1 -1
  70. package/dist/adapters/cli/types.d.ts +42 -1
  71. package/dist/adapters/cli/types.d.ts.map +1 -1
  72. package/dist/autostart.d.ts +6 -0
  73. package/dist/autostart.d.ts.map +1 -1
  74. package/dist/autostart.js +21 -1
  75. package/dist/autostart.js.map +1 -1
  76. package/dist/bot-registry.d.ts +27 -0
  77. package/dist/bot-registry.d.ts.map +1 -1
  78. package/dist/bot-registry.js +62 -2
  79. package/dist/bot-registry.js.map +1 -1
  80. package/dist/cli/vc-agent.d.ts.map +1 -1
  81. package/dist/cli/vc-agent.js +21 -3
  82. package/dist/cli/vc-agent.js.map +1 -1
  83. package/dist/cli.d.ts.map +1 -1
  84. package/dist/cli.js +92 -1
  85. package/dist/cli.js.map +1 -1
  86. package/dist/codex-app-runner.js +28 -0
  87. package/dist/codex-app-runner.js.map +1 -1
  88. package/dist/core/bot-steer-directive.d.ts +25 -0
  89. package/dist/core/bot-steer-directive.d.ts.map +1 -0
  90. package/dist/core/bot-steer-directive.js +47 -0
  91. package/dist/core/bot-steer-directive.js.map +1 -0
  92. package/dist/core/command-handler.d.ts.map +1 -1
  93. package/dist/core/command-handler.js +102 -18
  94. package/dist/core/command-handler.js.map +1 -1
  95. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  96. package/dist/core/dashboard-ipc-server.js +53 -13
  97. package/dist/core/dashboard-ipc-server.js.map +1 -1
  98. package/dist/core/dashboard-rows.d.ts +3 -0
  99. package/dist/core/dashboard-rows.d.ts.map +1 -1
  100. package/dist/core/dashboard-rows.js +26 -5
  101. package/dist/core/dashboard-rows.js.map +1 -1
  102. package/dist/core/dashboard-url.d.ts +10 -1
  103. package/dist/core/dashboard-url.d.ts.map +1 -1
  104. package/dist/core/dashboard-url.js +12 -2
  105. package/dist/core/dashboard-url.js.map +1 -1
  106. package/dist/core/dispatch.d.ts.map +1 -1
  107. package/dist/core/dispatch.js +5 -4
  108. package/dist/core/dispatch.js.map +1 -1
  109. package/dist/core/existing-app-server.d.ts +22 -0
  110. package/dist/core/existing-app-server.d.ts.map +1 -0
  111. package/dist/core/existing-app-server.js +85 -0
  112. package/dist/core/existing-app-server.js.map +1 -0
  113. package/dist/core/native-topic-id.d.ts +9 -0
  114. package/dist/core/native-topic-id.d.ts.map +1 -0
  115. package/dist/core/native-topic-id.js +14 -0
  116. package/dist/core/native-topic-id.js.map +1 -0
  117. package/dist/core/per-bot-env.d.ts.map +1 -1
  118. package/dist/core/per-bot-env.js +10 -0
  119. package/dist/core/per-bot-env.js.map +1 -1
  120. package/dist/core/plugins/mcp/gateway.d.ts +27 -3
  121. package/dist/core/plugins/mcp/gateway.d.ts.map +1 -1
  122. package/dist/core/plugins/mcp/gateway.js +272 -26
  123. package/dist/core/plugins/mcp/gateway.js.map +1 -1
  124. package/dist/core/plugins/mcp/host.d.ts +18 -0
  125. package/dist/core/plugins/mcp/host.d.ts.map +1 -1
  126. package/dist/core/plugins/mcp/host.js +80 -16
  127. package/dist/core/plugins/mcp/host.js.map +1 -1
  128. package/dist/core/plugins/mcp/launch-record.d.ts +14 -0
  129. package/dist/core/plugins/mcp/launch-record.d.ts.map +1 -0
  130. package/dist/core/plugins/mcp/launch-record.js +63 -0
  131. package/dist/core/plugins/mcp/launch-record.js.map +1 -0
  132. package/dist/core/session-activity.d.ts +11 -0
  133. package/dist/core/session-activity.d.ts.map +1 -1
  134. package/dist/core/session-activity.js +23 -0
  135. package/dist/core/session-activity.js.map +1 -1
  136. package/dist/core/session-group-birth.d.ts.map +1 -1
  137. package/dist/core/session-group-birth.js +23 -8
  138. package/dist/core/session-group-birth.js.map +1 -1
  139. package/dist/core/session-manager.d.ts +1 -4
  140. package/dist/core/session-manager.d.ts.map +1 -1
  141. package/dist/core/session-manager.js +16 -20
  142. package/dist/core/session-manager.js.map +1 -1
  143. package/dist/core/shared-adopt.d.ts +20 -0
  144. package/dist/core/shared-adopt.d.ts.map +1 -0
  145. package/dist/core/shared-adopt.js +26 -0
  146. package/dist/core/shared-adopt.js.map +1 -0
  147. package/dist/core/skills/customize-command.d.ts +7 -0
  148. package/dist/core/skills/customize-command.d.ts.map +1 -0
  149. package/dist/core/skills/customize-command.js +303 -0
  150. package/dist/core/skills/customize-command.js.map +1 -0
  151. package/dist/core/terminal-write-auth.d.ts +15 -0
  152. package/dist/core/terminal-write-auth.d.ts.map +1 -1
  153. package/dist/core/terminal-write-auth.js +15 -0
  154. package/dist/core/terminal-write-auth.js.map +1 -1
  155. package/dist/core/terminal-write-frame.d.ts +30 -0
  156. package/dist/core/terminal-write-frame.d.ts.map +1 -0
  157. package/dist/core/terminal-write-frame.js +44 -0
  158. package/dist/core/terminal-write-frame.js.map +1 -0
  159. package/dist/core/types.d.ts +14 -4
  160. package/dist/core/types.d.ts.map +1 -1
  161. package/dist/core/types.js +6 -8
  162. package/dist/core/types.js.map +1 -1
  163. package/dist/core/worker-pool.d.ts +31 -6
  164. package/dist/core/worker-pool.d.ts.map +1 -1
  165. package/dist/core/worker-pool.js +444 -102
  166. package/dist/core/worker-pool.js.map +1 -1
  167. package/dist/core/worker-startup-retry.d.ts +52 -0
  168. package/dist/core/worker-startup-retry.d.ts.map +1 -0
  169. package/dist/core/worker-startup-retry.js +68 -0
  170. package/dist/core/worker-startup-retry.js.map +1 -0
  171. package/dist/daemon.d.ts +9 -8
  172. package/dist/daemon.d.ts.map +1 -1
  173. package/dist/daemon.js +467 -171
  174. package/dist/daemon.js.map +1 -1
  175. package/dist/dashboard/autostart-api.d.ts +26 -0
  176. package/dist/dashboard/autostart-api.d.ts.map +1 -0
  177. package/dist/dashboard/autostart-api.js +88 -0
  178. package/dist/dashboard/autostart-api.js.map +1 -0
  179. package/dist/dashboard/bot-payload.d.ts +5 -0
  180. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  181. package/dist/dashboard/bot-payload.js +2 -0
  182. package/dist/dashboard/bot-payload.js.map +1 -1
  183. package/dist/dashboard/control-csrf.d.ts +29 -1
  184. package/dist/dashboard/control-csrf.d.ts.map +1 -1
  185. package/dist/dashboard/control-csrf.js +49 -10
  186. package/dist/dashboard/control-csrf.js.map +1 -1
  187. package/dist/dashboard/customization-api.d.ts +23 -0
  188. package/dist/dashboard/customization-api.d.ts.map +1 -0
  189. package/dist/dashboard/customization-api.js +198 -0
  190. package/dist/dashboard/customization-api.js.map +1 -0
  191. package/dist/dashboard/debug-terminal.d.ts +13 -1
  192. package/dist/dashboard/debug-terminal.d.ts.map +1 -1
  193. package/dist/dashboard/debug-terminal.js +18 -4
  194. package/dist/dashboard/debug-terminal.js.map +1 -1
  195. package/dist/dashboard/settings-write-applier.d.ts +0 -23
  196. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  197. package/dist/dashboard/settings-write-applier.js +7 -28
  198. package/dist/dashboard/settings-write-applier.js.map +1 -1
  199. package/dist/dashboard/terminal-control-route.d.ts +32 -0
  200. package/dist/dashboard/terminal-control-route.d.ts.map +1 -0
  201. package/dist/dashboard/terminal-control-route.js +70 -0
  202. package/dist/dashboard/terminal-control-route.js.map +1 -0
  203. package/dist/dashboard/terminal-control.d.ts +64 -13
  204. package/dist/dashboard/terminal-control.d.ts.map +1 -1
  205. package/dist/dashboard/terminal-control.js +77 -14
  206. package/dist/dashboard/terminal-control.js.map +1 -1
  207. package/dist/dashboard/terminal-front-proxy.d.ts.map +1 -1
  208. package/dist/dashboard/terminal-front-proxy.js +41 -9
  209. package/dist/dashboard/terminal-front-proxy.js.map +1 -1
  210. package/dist/dashboard/vc-consumer-profiles-api.d.ts +69 -18
  211. package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -1
  212. package/dist/dashboard/vc-consumer-profiles-api.js +149 -29
  213. package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -1
  214. package/dist/dashboard/web/agent-workbench-api.d.ts +34 -2
  215. package/dist/dashboard/web/agent-workbench-api.d.ts.map +1 -1
  216. package/dist/dashboard/web/agent-workbench-api.js +39 -4
  217. package/dist/dashboard/web/agent-workbench-api.js.map +1 -1
  218. package/dist/dashboard/web/agent-workbench-appearance.d.ts +6 -3
  219. package/dist/dashboard/web/agent-workbench-appearance.d.ts.map +1 -1
  220. package/dist/dashboard/web/agent-workbench-appearance.js +7 -4
  221. package/dist/dashboard/web/agent-workbench-appearance.js.map +1 -1
  222. package/dist/dashboard/web/agent-workbench-model.d.ts +2 -0
  223. package/dist/dashboard/web/agent-workbench-model.d.ts.map +1 -1
  224. package/dist/dashboard/web/agent-workbench-model.js.map +1 -1
  225. package/dist/dashboard/web/agent-workbench-page.js +2 -2
  226. package/dist/dashboard/web/agent-workbench-page.js.map +1 -1
  227. package/dist/dashboard/web/agent-workbench-panes.d.ts +59 -4
  228. package/dist/dashboard/web/agent-workbench-panes.d.ts.map +1 -1
  229. package/dist/dashboard/web/agent-workbench-panes.js +493 -85
  230. package/dist/dashboard/web/agent-workbench-panes.js.map +1 -1
  231. package/dist/dashboard/web/agent-workbench-session-list.d.ts +11 -7
  232. package/dist/dashboard/web/agent-workbench-session-list.d.ts.map +1 -1
  233. package/dist/dashboard/web/agent-workbench-session-list.js +24 -31
  234. package/dist/dashboard/web/agent-workbench-session-list.js.map +1 -1
  235. package/dist/dashboard/web/agent-workbench-terminal-control.d.ts +198 -0
  236. package/dist/dashboard/web/agent-workbench-terminal-control.d.ts.map +1 -0
  237. package/dist/dashboard/web/agent-workbench-terminal-control.js +292 -0
  238. package/dist/dashboard/web/agent-workbench-terminal-control.js.map +1 -0
  239. package/dist/dashboard/web/agent-workbench-view.d.ts +3 -2
  240. package/dist/dashboard/web/agent-workbench-view.d.ts.map +1 -1
  241. package/dist/dashboard/web/agent-workbench-view.js +69 -50
  242. package/dist/dashboard/web/agent-workbench-view.js.map +1 -1
  243. package/dist/dashboard/web/app.d.ts.map +1 -1
  244. package/dist/dashboard/web/app.js +58 -7
  245. package/dist/dashboard/web/app.js.map +1 -1
  246. package/dist/dashboard/web/bot-defaults-page.d.ts +24 -0
  247. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  248. package/dist/dashboard/web/bot-defaults-page.js +191 -16
  249. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  250. package/dist/dashboard/web/bot-defaults.d.ts +17 -0
  251. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  252. package/dist/dashboard/web/bot-defaults.js +51 -2
  253. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  254. package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
  255. package/dist/dashboard/web/bot-onboarding.js +32 -8
  256. package/dist/dashboard/web/bot-onboarding.js.map +1 -1
  257. package/dist/dashboard/web/confirm-modal.d.ts +35 -0
  258. package/dist/dashboard/web/confirm-modal.d.ts.map +1 -0
  259. package/dist/dashboard/web/confirm-modal.js +111 -0
  260. package/dist/dashboard/web/confirm-modal.js.map +1 -0
  261. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  262. package/dist/dashboard/web/connectors-page.js +2 -1
  263. package/dist/dashboard/web/connectors-page.js.map +1 -1
  264. package/dist/dashboard/web/customization-page.d.ts +3 -0
  265. package/dist/dashboard/web/customization-page.d.ts.map +1 -0
  266. package/dist/dashboard/web/customization-page.js +315 -0
  267. package/dist/dashboard/web/customization-page.js.map +1 -0
  268. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
  269. package/dist/dashboard/web/dashboard-routes.js +1 -0
  270. package/dist/dashboard/web/dashboard-routes.js.map +1 -1
  271. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  272. package/dist/dashboard/web/groups-page.js +11 -9
  273. package/dist/dashboard/web/groups-page.js.map +1 -1
  274. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  275. package/dist/dashboard/web/i18n.js +226 -42
  276. package/dist/dashboard/web/i18n.js.map +1 -1
  277. package/dist/dashboard/web/monitor-room.d.ts.map +1 -1
  278. package/dist/dashboard/web/monitor-room.js +3 -2
  279. package/dist/dashboard/web/monitor-room.js.map +1 -1
  280. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  281. package/dist/dashboard/web/overview-page.js +98 -63
  282. package/dist/dashboard/web/overview-page.js.map +1 -1
  283. package/dist/dashboard/web/roles-page.d.ts.map +1 -1
  284. package/dist/dashboard/web/roles-page.js +4 -3
  285. package/dist/dashboard/web/roles-page.js.map +1 -1
  286. package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
  287. package/dist/dashboard/web/schedules-page.js +165 -18
  288. package/dist/dashboard/web/schedules-page.js.map +1 -1
  289. package/dist/dashboard/web/sessions-kanban.d.ts +2 -0
  290. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
  291. package/dist/dashboard/web/sessions-kanban.js +142 -24
  292. package/dist/dashboard/web/sessions-kanban.js.map +1 -1
  293. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  294. package/dist/dashboard/web/sessions-page.js +177 -94
  295. package/dist/dashboard/web/sessions-page.js.map +1 -1
  296. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  297. package/dist/dashboard/web/sessions.js +5 -4
  298. package/dist/dashboard/web/sessions.js.map +1 -1
  299. package/dist/dashboard/web/settings-page.d.ts +0 -8
  300. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  301. package/dist/dashboard/web/settings-page.js +185 -65
  302. package/dist/dashboard/web/settings-page.js.map +1 -1
  303. package/dist/dashboard/web/skills/skill-library-tab.d.ts +2 -0
  304. package/dist/dashboard/web/skills/skill-library-tab.d.ts.map +1 -1
  305. package/dist/dashboard/web/skills/skill-library-tab.js +15 -1
  306. package/dist/dashboard/web/skills/skill-library-tab.js.map +1 -1
  307. package/dist/dashboard/web/skills-page.d.ts.map +1 -1
  308. package/dist/dashboard/web/skills-page.js +5 -4
  309. package/dist/dashboard/web/skills-page.js.map +1 -1
  310. package/dist/dashboard/web/store.d.ts +5 -0
  311. package/dist/dashboard/web/store.d.ts.map +1 -1
  312. package/dist/dashboard/web/store.js +4 -0
  313. package/dist/dashboard/web/store.js.map +1 -1
  314. package/dist/dashboard/web/team-federation-page.d.ts.map +1 -1
  315. package/dist/dashboard/web/team-federation-page.js +3 -2
  316. package/dist/dashboard/web/team-federation-page.js.map +1 -1
  317. package/dist/dashboard/web/toast.d.ts +15 -0
  318. package/dist/dashboard/web/toast.d.ts.map +1 -0
  319. package/dist/dashboard/web/toast.js +70 -0
  320. package/dist/dashboard/web/toast.js.map +1 -0
  321. package/dist/dashboard/web/v3-components.d.ts.map +1 -1
  322. package/dist/dashboard/web/v3-components.js +2 -1
  323. package/dist/dashboard/web/v3-components.js.map +1 -1
  324. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts +10 -12
  325. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
  326. package/dist/dashboard/web/vc-consumer-profiles-section.js +219 -200
  327. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
  328. package/dist/dashboard/web/whiteboards-page.d.ts.map +1 -1
  329. package/dist/dashboard/web/whiteboards-page.js +2 -1
  330. package/dist/dashboard/web/whiteboards-page.js.map +1 -1
  331. package/dist/dashboard-web/app.js +1 -1
  332. package/dist/dashboard-web/chunks/agent-workbench-dock-page-LZSUOCEQ.js +1 -0
  333. package/dist/dashboard-web/chunks/agent-workbench-page-YONDRJU7.js +1 -0
  334. package/dist/dashboard-web/chunks/bot-defaults-page-X7LV6373.js +1 -0
  335. package/dist/dashboard-web/chunks/chunk-2PVRDXEL.js +1 -0
  336. package/dist/dashboard-web/chunks/chunk-53JUKBU2.js +10 -0
  337. package/dist/dashboard-web/chunks/{chunk-5CJMHTT4.js → chunk-5QX4OYOR.js} +1 -1
  338. package/dist/dashboard-web/chunks/{chunk-NACP7BMR.js → chunk-5VRVJFQR.js} +1 -1
  339. package/dist/dashboard-web/chunks/{chunk-FDZ7WOBW.js → chunk-6ROOZWYV.js} +1 -1
  340. package/dist/dashboard-web/chunks/{chunk-F6KNPF4R.js → chunk-CK22743G.js} +15 -19
  341. package/dist/dashboard-web/chunks/chunk-CVNIMUPY.js +25 -0
  342. package/dist/dashboard-web/chunks/chunk-GJC2TMWS.js +2 -0
  343. package/dist/dashboard-web/chunks/chunk-OT6L6G7R.js +1 -0
  344. package/dist/dashboard-web/chunks/chunk-QITAMHW6.js +1 -0
  345. package/dist/dashboard-web/chunks/chunk-RHVFZC5Z.js +1 -0
  346. package/dist/dashboard-web/chunks/chunk-SOBMN2VY.js +1 -0
  347. package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +1 -0
  348. package/dist/dashboard-web/chunks/chunk-XVIXNQGC.js +44 -0
  349. package/dist/dashboard-web/chunks/chunk-YUJF34ME.js +1 -0
  350. package/dist/dashboard-web/chunks/connectors-page-LB2HEJ7F.js +1 -0
  351. package/dist/dashboard-web/chunks/customization-page-4GXBYLG6.js +105 -0
  352. package/dist/dashboard-web/chunks/feedback-page-IZQ7VLDG.js +1 -0
  353. package/dist/dashboard-web/chunks/groups-page-4WCP5OEV.js +8 -0
  354. package/dist/dashboard-web/chunks/{insights-page-HJFDYR5N.js → insights-page-TXQHIPQL.js} +1 -1
  355. package/dist/dashboard-web/chunks/{monitor-room-V7PCP47V.js → monitor-room-VBRVWXCM.js} +8 -8
  356. package/dist/dashboard-web/chunks/monitoring-page-QDDZWERE.js +2 -0
  357. package/dist/dashboard-web/chunks/office-page-PENFNYPG.js +1 -0
  358. package/dist/dashboard-web/chunks/overview-page-BZQDP6MP.js +1 -0
  359. package/dist/dashboard-web/chunks/plugin-page-JX4GSWZS.js +1 -0
  360. package/dist/dashboard-web/chunks/roles-page-VPNINZNK.js +1 -0
  361. package/dist/dashboard-web/chunks/schedules-page-BITO6HEA.js +1 -0
  362. package/dist/dashboard-web/chunks/sessions-page-ZKCOVTD2.js +8 -0
  363. package/dist/dashboard-web/chunks/settings-page-UT6JDTS6.js +2 -0
  364. package/dist/dashboard-web/chunks/skills-page-GULXVAJY.js +4 -0
  365. package/dist/dashboard-web/chunks/team-federation-page-CUUJWGEG.js +1 -0
  366. package/dist/dashboard-web/chunks/v3-page-5WVJ5AUR.js +94 -0
  367. package/dist/dashboard-web/chunks/whiteboards-page-FZ2CME4H.js +1 -0
  368. package/dist/dashboard-web/design-tokens.css +236 -0
  369. package/dist/dashboard-web/index.html +1 -0
  370. package/dist/dashboard-web/style.css +1930 -114
  371. package/dist/dashboard.js +360 -279
  372. package/dist/dashboard.js.map +1 -1
  373. package/dist/desktop/renderer/app.js +6 -0
  374. package/dist/desktop/renderer/app.js.map +1 -1
  375. package/dist/dsh-runner.js +139 -17
  376. package/dist/dsh-runner.js.map +1 -1
  377. package/dist/global-config.d.ts +33 -2
  378. package/dist/global-config.d.ts.map +1 -1
  379. package/dist/global-config.js +62 -0
  380. package/dist/global-config.js.map +1 -1
  381. package/dist/i18n/en.d.ts.map +1 -1
  382. package/dist/i18n/en.js +13 -4
  383. package/dist/i18n/en.js.map +1 -1
  384. package/dist/i18n/index.d.ts +27 -3
  385. package/dist/i18n/index.d.ts.map +1 -1
  386. package/dist/i18n/index.js +33 -4
  387. package/dist/i18n/index.js.map +1 -1
  388. package/dist/i18n/zh.d.ts.map +1 -1
  389. package/dist/i18n/zh.js +13 -4
  390. package/dist/i18n/zh.js.map +1 -1
  391. package/dist/im/lark/card-builder.d.ts +2 -0
  392. package/dist/im/lark/card-builder.d.ts.map +1 -1
  393. package/dist/im/lark/card-builder.js +7 -4
  394. package/dist/im/lark/card-builder.js.map +1 -1
  395. package/dist/im/lark/card-handler.d.ts.map +1 -1
  396. package/dist/im/lark/card-handler.js +135 -20
  397. package/dist/im/lark/card-handler.js.map +1 -1
  398. package/dist/im/lark/event-dispatcher.d.ts +38 -3
  399. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  400. package/dist/im/lark/event-dispatcher.js +163 -13
  401. package/dist/im/lark/event-dispatcher.js.map +1 -1
  402. package/dist/im/lark/v3-blocked-card-handler.d.ts.map +1 -1
  403. package/dist/im/lark/v3-blocked-card-handler.js +2 -1
  404. package/dist/im/lark/v3-blocked-card-handler.js.map +1 -1
  405. package/dist/im/lark/v3-blocked-card.d.ts +1 -1
  406. package/dist/im/lark/v3-blocked-card.d.ts.map +1 -1
  407. package/dist/im/lark/v3-blocked-card.js +14 -0
  408. package/dist/im/lark/v3-blocked-card.js.map +1 -1
  409. package/dist/index-core-only.js +2 -0
  410. package/dist/index-core-only.js.map +1 -1
  411. package/dist/index-daemon.js +3 -0
  412. package/dist/index-daemon.js.map +1 -1
  413. package/dist/platform/binding.d.ts +37 -0
  414. package/dist/platform/binding.d.ts.map +1 -1
  415. package/dist/platform/binding.js +15 -0
  416. package/dist/platform/binding.js.map +1 -1
  417. package/dist/services/bridge-turn-journal.d.ts +63 -0
  418. package/dist/services/bridge-turn-journal.d.ts.map +1 -0
  419. package/dist/services/bridge-turn-journal.js +149 -0
  420. package/dist/services/bridge-turn-journal.js.map +1 -0
  421. package/dist/services/bridge-turn-queue.d.ts +8 -1
  422. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  423. package/dist/services/bridge-turn-queue.js +2 -1
  424. package/dist/services/bridge-turn-queue.js.map +1 -1
  425. package/dist/services/codex-app-runner-protocol.d.ts +5 -0
  426. package/dist/services/codex-app-runner-protocol.d.ts.map +1 -1
  427. package/dist/services/codex-app-runner-protocol.js +5 -0
  428. package/dist/services/codex-app-runner-protocol.js.map +1 -1
  429. package/dist/services/customization-store.d.ts +93 -0
  430. package/dist/services/customization-store.d.ts.map +1 -0
  431. package/dist/services/customization-store.js +542 -0
  432. package/dist/services/customization-store.js.map +1 -0
  433. package/dist/services/file-bridge-path.d.ts.map +1 -1
  434. package/dist/services/file-bridge-path.js +3 -0
  435. package/dist/services/file-bridge-path.js.map +1 -1
  436. package/dist/services/grok-transcript.d.ts.map +1 -1
  437. package/dist/services/grok-transcript.js +44 -9
  438. package/dist/services/grok-transcript.js.map +1 -1
  439. package/dist/services/local-cli-opener.d.ts.map +1 -1
  440. package/dist/services/local-cli-opener.js +12 -3
  441. package/dist/services/local-cli-opener.js.map +1 -1
  442. package/dist/services/model-catalog.d.ts +54 -0
  443. package/dist/services/model-catalog.d.ts.map +1 -0
  444. package/dist/services/model-catalog.js +147 -0
  445. package/dist/services/model-catalog.js.map +1 -0
  446. package/dist/services/omp-transcript.d.ts +27 -0
  447. package/dist/services/omp-transcript.d.ts.map +1 -0
  448. package/dist/services/omp-transcript.js +214 -0
  449. package/dist/services/omp-transcript.js.map +1 -0
  450. package/dist/services/platform-team-store.d.ts +16 -8
  451. package/dist/services/platform-team-store.d.ts.map +1 -1
  452. package/dist/services/platform-team-store.js +17 -10
  453. package/dist/services/platform-team-store.js.map +1 -1
  454. package/dist/services/project-scanner.d.ts.map +1 -1
  455. package/dist/services/project-scanner.js +13 -8
  456. package/dist/services/project-scanner.js.map +1 -1
  457. package/dist/services/resumable-session-discovery.d.ts.map +1 -1
  458. package/dist/services/resumable-session-discovery.js +117 -35
  459. package/dist/services/resumable-session-discovery.js.map +1 -1
  460. package/dist/services/structured-bridge-clis.d.ts +5 -3
  461. package/dist/services/structured-bridge-clis.d.ts.map +1 -1
  462. package/dist/services/structured-bridge-clis.js +5 -1
  463. package/dist/services/structured-bridge-clis.js.map +1 -1
  464. package/dist/services/vc-meeting-action-gate.d.ts.map +1 -1
  465. package/dist/services/vc-meeting-action-gate.js +15 -4
  466. package/dist/services/vc-meeting-action-gate.js.map +1 -1
  467. package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts +46 -66
  468. package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts.map +1 -1
  469. package/dist/services/vc-meeting-consumer-profile-bootstrap.js +33 -292
  470. package/dist/services/vc-meeting-consumer-profile-bootstrap.js.map +1 -1
  471. package/dist/services/vc-meeting-consumer-profile-templates.js +3 -3
  472. package/dist/services/vc-meeting-consumer-profile-templates.js.map +1 -1
  473. package/dist/services/vc-meeting-delivery-store.d.ts +18 -0
  474. package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -1
  475. package/dist/services/vc-meeting-delivery-store.js +55 -0
  476. package/dist/services/vc-meeting-delivery-store.js.map +1 -1
  477. package/dist/services/vc-meeting-send-policy.d.ts +21 -1
  478. package/dist/services/vc-meeting-send-policy.d.ts.map +1 -1
  479. package/dist/services/vc-meeting-send-policy.js +30 -2
  480. package/dist/services/vc-meeting-send-policy.js.map +1 -1
  481. package/dist/services/vc-meeting-shared-consumer-catalog-store.d.ts +78 -0
  482. package/dist/services/vc-meeting-shared-consumer-catalog-store.d.ts.map +1 -0
  483. package/dist/services/vc-meeting-shared-consumer-catalog-store.js +227 -0
  484. package/dist/services/vc-meeting-shared-consumer-catalog-store.js.map +1 -0
  485. package/dist/services/vc-meeting-shared-consumer-catalog.d.ts +53 -0
  486. package/dist/services/vc-meeting-shared-consumer-catalog.d.ts.map +1 -0
  487. package/dist/services/vc-meeting-shared-consumer-catalog.js +161 -0
  488. package/dist/services/vc-meeting-shared-consumer-catalog.js.map +1 -0
  489. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  490. package/dist/setup/bot-config-editor.js +1 -0
  491. package/dist/setup/bot-config-editor.js.map +1 -1
  492. package/dist/setup/open-platform-automation.d.ts +20 -0
  493. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  494. package/dist/setup/open-platform-automation.js +27 -0
  495. package/dist/setup/open-platform-automation.js.map +1 -1
  496. package/dist/skills/customization-bundle.d.ts +83 -0
  497. package/dist/skills/customization-bundle.d.ts.map +1 -0
  498. package/dist/skills/customization-bundle.js +214 -0
  499. package/dist/skills/customization-bundle.js.map +1 -0
  500. package/dist/skills/definitions.d.ts.map +1 -1
  501. package/dist/skills/definitions.js +10 -3
  502. package/dist/skills/definitions.js.map +1 -1
  503. package/dist/skills/effective-builtins.d.ts +38 -0
  504. package/dist/skills/effective-builtins.d.ts.map +1 -0
  505. package/dist/skills/effective-builtins.js +96 -0
  506. package/dist/skills/effective-builtins.js.map +1 -0
  507. package/dist/skills/injection-mode.d.ts +4 -1
  508. package/dist/skills/injection-mode.d.ts.map +1 -1
  509. package/dist/skills/injection-mode.js +11 -3
  510. package/dist/skills/injection-mode.js.map +1 -1
  511. package/dist/skills/installer.d.ts.map +1 -1
  512. package/dist/skills/installer.js +24 -1
  513. package/dist/skills/installer.js.map +1 -1
  514. package/dist/skills/prompt-fragments.d.ts +58 -0
  515. package/dist/skills/prompt-fragments.d.ts.map +1 -0
  516. package/dist/skills/prompt-fragments.js +88 -0
  517. package/dist/skills/prompt-fragments.js.map +1 -0
  518. package/dist/types.d.ts +51 -0
  519. package/dist/types.d.ts.map +1 -1
  520. package/dist/utils/cli-usage-limit.d.ts +50 -0
  521. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  522. package/dist/utils/cli-usage-limit.js +43 -0
  523. package/dist/utils/cli-usage-limit.js.map +1 -1
  524. package/dist/utils/idle-detector.d.ts +12 -0
  525. package/dist/utils/idle-detector.d.ts.map +1 -1
  526. package/dist/utils/idle-detector.js +88 -2
  527. package/dist/utils/idle-detector.js.map +1 -1
  528. package/dist/utils/stuck-detector.d.ts +5 -0
  529. package/dist/utils/stuck-detector.d.ts.map +1 -1
  530. package/dist/utils/stuck-detector.js +41 -0
  531. package/dist/utils/stuck-detector.js.map +1 -1
  532. package/dist/utils/usage-limit-tracker.d.ts +46 -0
  533. package/dist/utils/usage-limit-tracker.d.ts.map +1 -0
  534. package/dist/utils/usage-limit-tracker.js +91 -0
  535. package/dist/utils/usage-limit-tracker.js.map +1 -0
  536. package/dist/utils/user-token.js +1 -1
  537. package/dist/utils/user-token.js.map +1 -1
  538. package/dist/worker.js +812 -125
  539. package/dist/worker.js.map +1 -1
  540. package/dist/workflows/definition.d.ts +14 -14
  541. package/dist/workflows/events/payloads.d.ts +12 -12
  542. package/dist/workflows/events/schema.d.ts +164 -164
  543. package/dist/workflows/migration/v2-to-v3.js +1 -1
  544. package/dist/workflows/migration/v2-to-v3.js.map +1 -1
  545. package/dist/workflows/v3/architect.d.ts.map +1 -1
  546. package/dist/workflows/v3/architect.js +11 -5
  547. package/dist/workflows/v3/architect.js.map +1 -1
  548. package/dist/workflows/v3/artifact-contract-declarations.d.ts +22 -0
  549. package/dist/workflows/v3/artifact-contract-declarations.d.ts.map +1 -0
  550. package/dist/workflows/v3/artifact-contract-declarations.js +95 -0
  551. package/dist/workflows/v3/artifact-contract-declarations.js.map +1 -0
  552. package/dist/workflows/v3/contract.d.ts +1 -0
  553. package/dist/workflows/v3/contract.d.ts.map +1 -1
  554. package/dist/workflows/v3/contract.js.map +1 -1
  555. package/dist/workflows/v3/daemon-run.d.ts +2 -2
  556. package/dist/workflows/v3/daemon-run.d.ts.map +1 -1
  557. package/dist/workflows/v3/daemon-run.js +4 -0
  558. package/dist/workflows/v3/daemon-run.js.map +1 -1
  559. package/dist/workflows/v3/dag.d.ts +7 -0
  560. package/dist/workflows/v3/dag.d.ts.map +1 -1
  561. package/dist/workflows/v3/dag.js +69 -8
  562. package/dist/workflows/v3/dag.js.map +1 -1
  563. package/dist/workflows/v3/ephemeral-pool.js +1 -1
  564. package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
  565. package/dist/workflows/v3/event-contract.d.ts +3 -1
  566. package/dist/workflows/v3/event-contract.d.ts.map +1 -1
  567. package/dist/workflows/v3/host.d.ts.map +1 -1
  568. package/dist/workflows/v3/host.js +5 -1
  569. package/dist/workflows/v3/host.js.map +1 -1
  570. package/dist/workflows/v3/journal.d.ts +1 -1
  571. package/dist/workflows/v3/journal.d.ts.map +1 -1
  572. package/dist/workflows/v3/journal.js.map +1 -1
  573. package/dist/workflows/v3/library-materialize.d.ts.map +1 -1
  574. package/dist/workflows/v3/library-materialize.js +9 -1
  575. package/dist/workflows/v3/library-materialize.js.map +1 -1
  576. package/dist/workflows/v3/library-schema.d.ts +3 -1
  577. package/dist/workflows/v3/library-schema.d.ts.map +1 -1
  578. package/dist/workflows/v3/library-schema.js +20 -4
  579. package/dist/workflows/v3/library-schema.js.map +1 -1
  580. package/dist/workflows/v3/library-store.d.ts.map +1 -1
  581. package/dist/workflows/v3/library-store.js +15 -3
  582. package/dist/workflows/v3/library-store.js.map +1 -1
  583. package/dist/workflows/v3/run-envelope.d.ts +16 -16
  584. package/dist/workflows/v3/shared-node-runtime.d.ts +2 -1
  585. package/dist/workflows/v3/shared-node-runtime.d.ts.map +1 -1
  586. package/dist/workflows/v3/shared-node-runtime.js +48 -7
  587. package/dist/workflows/v3/shared-node-runtime.js.map +1 -1
  588. package/package.json +2 -1
  589. package/dist/dashboard-web/chunks/agent-workbench-dock-page-IKAC5CFL.js +0 -1
  590. package/dist/dashboard-web/chunks/agent-workbench-page-M53UN5EB.js +0 -1
  591. package/dist/dashboard-web/chunks/bot-defaults-page-YKE5SDZF.js +0 -10
  592. package/dist/dashboard-web/chunks/chunk-22WIADUT.js +0 -2
  593. package/dist/dashboard-web/chunks/chunk-24ONYQMR.js +0 -1
  594. package/dist/dashboard-web/chunks/chunk-2W6SCN3M.js +0 -1
  595. package/dist/dashboard-web/chunks/chunk-4XNJX6B3.js +0 -1
  596. package/dist/dashboard-web/chunks/chunk-5THX4DI2.js +0 -66
  597. package/dist/dashboard-web/chunks/chunk-7SZRL6FY.js +0 -1
  598. package/dist/dashboard-web/chunks/chunk-AGCPF6MT.js +0 -1
  599. package/dist/dashboard-web/chunks/chunk-FXW3V4JR.js +0 -1
  600. package/dist/dashboard-web/chunks/chunk-SYC6D5XU.js +0 -1
  601. package/dist/dashboard-web/chunks/connectors-page-VOISXXII.js +0 -1
  602. package/dist/dashboard-web/chunks/feedback-page-RN6HRZMS.js +0 -1
  603. package/dist/dashboard-web/chunks/groups-page-UQT6DCB7.js +0 -8
  604. package/dist/dashboard-web/chunks/monitoring-page-NKEKVQAP.js +0 -2
  605. package/dist/dashboard-web/chunks/office-page-GVJF73XW.js +0 -1
  606. package/dist/dashboard-web/chunks/overview-page-KHLV6VTI.js +0 -1
  607. package/dist/dashboard-web/chunks/plugin-page-J3OF5IY4.js +0 -1
  608. package/dist/dashboard-web/chunks/roles-page-WQIRSOLZ.js +0 -1
  609. package/dist/dashboard-web/chunks/schedules-page-J2DEY2X6.js +0 -1
  610. package/dist/dashboard-web/chunks/sessions-page-7BQFEA5P.js +0 -8
  611. package/dist/dashboard-web/chunks/settings-page-BJEIOFJH.js +0 -2
  612. package/dist/dashboard-web/chunks/skills-page-HGIFR3IU.js +0 -4
  613. package/dist/dashboard-web/chunks/team-federation-page-MR5ZPL4B.js +0 -1
  614. package/dist/dashboard-web/chunks/v3-page-GBR5JWPE.js +0 -94
  615. package/dist/dashboard-web/chunks/whiteboards-page-QAZM4BN3.js +0 -1
  616. package/dist/services/vc-meeting-consumer-profile-store.d.ts +0 -39
  617. package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +0 -1
  618. package/dist/services/vc-meeting-consumer-profile-store.js +0 -191
  619. package/dist/services/vc-meeting-consumer-profile-store.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { createHash, randomBytes } from 'node:crypto';
2
- import { chmodSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { chmodSync, lstatSync, mkdirSync, renameSync, rmSync, writeFileSync } from 'node:fs';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  import { createServer } from 'node:net';
@@ -14,17 +14,69 @@ export function sessionMcpGatewayPathRegex(socketRoot, uid = process.getuid?.()
14
14
  const root = socketRoot.replace(/\/+$/, '');
15
15
  return `^${escapeForRegex(root)}/bmcp-${uid}-[^/]+(?:/|$)`;
16
16
  }
17
- function gatewaySocketDir(sessionId, dataDir) {
17
+ /** Deterministic per-session Gateway socket directory.
18
+ *
19
+ * The name is a pure function of (dataDir, sessionId) — NO random component —
20
+ * so a replacement worker (daemon restart / upgrade) re-serves the socket at
21
+ * the exact path a surviving persistent pane's relay already holds in its
22
+ * environment, and the relay can simply reconnect instead of the worker having
23
+ * to kill the pane and cold-resume the CLI.
24
+ *
25
+ * Stays under tmpdir (not dataDir) to keep the Unix socket below macOS's short
26
+ * sun_path limit, and keeps the `bmcp-<uid>-` prefix so the existing Seatbelt
27
+ * deny regex (sessionMcpGatewayPathRegex) covers it unchanged. The predictable
28
+ * name is safe because ensurePrivateGatewayDir fails closed unless the
29
+ * directory is a real 0700 directory owned by this uid — a squatter can only
30
+ * DoS session startup, never observe traffic (connections still require the
31
+ * rotating auth token). */
32
+ export function sessionMcpGatewaySocketDir(sessionId, dataDir) {
18
33
  const uid = process.getuid?.() ?? 0;
19
34
  const sessionKey = createHash('sha256')
20
35
  .update(dataDir)
21
36
  .update('\0')
22
37
  .update(sessionId)
23
38
  .digest('hex')
24
- .slice(0, 8);
25
- // mkdtemp is atomic, avoids a predictable shared parent under /tmp, and
26
- // keeps the resulting Unix socket below macOS's short sun_path limit.
27
- return mkdtempSync(join(tmpdir(), `bmcp-${uid}-${sessionKey}-`));
39
+ .slice(0, 16);
40
+ return join(tmpdir(), `bmcp-${uid}-${sessionKey}`);
41
+ }
42
+ /** Deterministic per-session Gateway socket path (see sessionMcpGatewaySocketDir). */
43
+ export function sessionMcpGatewaySocketPath(sessionId, dataDir) {
44
+ return join(sessionMcpGatewaySocketDir(sessionId, dataDir), 'g.sock');
45
+ }
46
+ /** Create-or-verify the deterministic socket directory. Fail closed on
47
+ * anything that is not a 0700 directory owned by this uid: a symlink or a
48
+ * foreign-owned squat must abort session startup rather than let the Gateway
49
+ * serve (or the token be written) through an attacker-controlled path. */
50
+ function ensurePrivateGatewayDir(dir) {
51
+ try {
52
+ mkdirSync(dir, { mode: 0o700 });
53
+ return;
54
+ }
55
+ catch (err) {
56
+ if (err?.code !== 'EEXIST')
57
+ throw err;
58
+ }
59
+ const stat = lstatSync(dir);
60
+ if (!stat.isDirectory()) {
61
+ throw new Error(`Gateway socket dir ${dir} exists and is not a directory (planted symlink/file?)`);
62
+ }
63
+ const uid = process.getuid?.();
64
+ if (uid !== undefined && stat.uid !== uid) {
65
+ throw new Error(`Gateway socket dir ${dir} is owned by uid ${stat.uid} (expected ${uid})`);
66
+ }
67
+ if ((stat.mode & 0o077) !== 0)
68
+ chmodSync(dir, 0o700);
69
+ }
70
+ /** Rotate the Gateway auth token atomically (tmp + rename) so a relay that
71
+ * re-reads the file mid-rotation always sees either the old or the new token,
72
+ * never a partial write or a missing file. */
73
+ function rotateGatewayAuthToken(socketPath) {
74
+ const token = randomBytes(32).toString('base64url');
75
+ const finalPath = mcpGatewayAuthTokenPath(socketPath);
76
+ const tmpPath = `${finalPath}.${process.pid}.${randomBytes(4).toString('hex')}.tmp`;
77
+ writeFileSync(tmpPath, `${token}\n`, { mode: 0o600, flag: 'wx' });
78
+ renameSync(tmpPath, finalPath);
79
+ return token;
28
80
  }
29
81
  /**
30
82
  * Serve a session's credential-bearing Gateway in the trusted worker process.
@@ -32,11 +84,14 @@ function gatewaySocketDir(sessionId, dataDir) {
32
84
  * descriptor snapshot or plugin credentials itself.
33
85
  */
34
86
  export async function startSessionMcpGatewayHost(opts) {
35
- const socketDir = gatewaySocketDir(opts.sessionId, opts.dataDir);
87
+ const socketDir = sessionMcpGatewaySocketDir(opts.sessionId, opts.dataDir);
36
88
  const socketPath = join(socketDir, 'g.sock');
37
- const authToken = randomBytes(32).toString('base64url');
38
- chmodSync(socketDir, 0o700);
39
- writeFileSync(mcpGatewayAuthTokenPath(socketPath), `${authToken}\n`, { mode: 0o600, flag: 'wx' });
89
+ ensurePrivateGatewayDir(socketDir);
90
+ // A stale socket file from a dead worker generation blocks bind(); a live
91
+ // predecessor is impossible (the daemon runs one worker per session), so
92
+ // removing it unconditionally is safe and makes the fresh host authoritative.
93
+ rmSync(socketPath, { force: true });
94
+ const authToken = rotateGatewayAuthToken(socketPath);
40
95
  const sockets = new Set();
41
96
  const connectionClosers = new Set();
42
97
  let closing;
@@ -88,7 +143,7 @@ export async function startSessionMcpGatewayHost(opts) {
88
143
  server.once('listening', onListening);
89
144
  server.listen(socketPath);
90
145
  }).catch((error) => {
91
- rmSync(socketDir, { recursive: true, force: true });
146
+ rmSync(socketPath, { force: true });
92
147
  throw error;
93
148
  });
94
149
  server.on('error', reportError);
@@ -97,7 +152,7 @@ export async function startSessionMcpGatewayHost(opts) {
97
152
  }
98
153
  catch (error) {
99
154
  server.close();
100
- rmSync(socketDir, { recursive: true, force: true });
155
+ rmSync(socketPath, { force: true });
101
156
  throw error;
102
157
  }
103
158
  return {
@@ -107,10 +162,19 @@ export async function startSessionMcpGatewayHost(opts) {
107
162
  closing ??= (async () => {
108
163
  for (const socket of sockets)
109
164
  socket.destroy();
110
- // Revoke the filesystem capability before the first await. Worker
111
- // signal handlers call process.exit(), so async-only cleanup would
112
- // otherwise leave a stale socket directory behind.
113
- rmSync(socketDir, { recursive: true, force: true });
165
+ // Revoke the listener capability before the first await. Worker signal
166
+ // handlers call process.exit(), so async-only cleanup would otherwise
167
+ // leave a stale connectable socket behind.
168
+ //
169
+ // Deliberately unlink ONLY the socket file — the directory (and the
170
+ // auth token inside it) must survive worker generations: a sandboxed
171
+ // persistent pane bind-mounts this directory BY INODE (bwrap --ro-bind),
172
+ // so deleting and recreating the directory would permanently detach the
173
+ // pane's view. The replacement host reuses the directory in place,
174
+ // rotates the token, and re-binds the socket at the same path so the
175
+ // pane's relay can reconnect. A token file without a listener grants
176
+ // nothing.
177
+ rmSync(socketPath, { force: true });
114
178
  const serverClosed = new Promise((resolve) => {
115
179
  if (!server.listening) {
116
180
  resolve();
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../src/core/plugins/mcp/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAyC,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAA2C,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAQtF,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CACxC,UAAkB,EAClB,MAAc,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC;IAErC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;AAC7D,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB,EAAE,OAAe;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC;SACpC,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,wEAAwE;IACxE,sEAAsE;IACtE,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,GAAG,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAKhD;IACC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxD,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5B,aAAa,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,GAAG,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAElG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;IACzD,IAAI,OAAkC,CAAC;IACvC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAQ,EAAE;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEF,MAAM,MAAM,GAAc,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;QAChD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC,MAAM,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC;gBAAE,OAAO;YAChE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE;gBAC9C,GAAG,OAAO,CAAC,GAAG;gBACd,gBAAgB,EAAE,IAAI,CAAC,OAAO;gBAC9B,iBAAiB,EAAE,IAAI,CAAC,SAAS;aAClC,EAAE;gBACD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;aAC9C,CAAC,CAAC;YACH,IAAI,YAAuC,CAAC;YAC5C,MAAM,YAAY,GAAG,GAAkB,EAAE;gBACvC,YAAY,KAAK,OAAO,CAAC,KAAK,EAAE;qBAC7B,KAAK,CAAC,WAAW,CAAC;qBAClB,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBACzD,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC;YACF,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;YACtC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO;QACL,UAAU;QACV,SAAS;QACT,KAAK;YACH,OAAO,KAAK,CAAC,KAAK,IAAI,EAAE;gBACtB,KAAK,MAAM,MAAM,IAAI,OAAO;oBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/C,kEAAkE;gBAClE,mEAAmE;gBACnE,mDAAmD;gBACnD,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACjD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;wBACtB,OAAO,EAAE,CAAC;wBACV,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvE,MAAM,YAAY,CAAC;YACrB,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../src/core/plugins/mcp/host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** Bumped when the relay's reconnect contract changes incompatibly. */
2
+ export declare const MCP_GATEWAY_RELAY_PROTOCOL_VERSION = 2;
3
+ export interface McpGatewayLaunchRecord {
4
+ version: number;
5
+ socketPath: string;
6
+ }
7
+ export declare function mcpGatewayLaunchRecordPath(dataDir: string, sessionId: string): string;
8
+ export declare function writeMcpGatewayLaunchRecord(dataDir: string, sessionId: string, socketPath: string): void;
9
+ export declare function clearMcpGatewayLaunchRecord(dataDir: string, sessionId: string): void;
10
+ export declare function readMcpGatewayLaunchRecord(dataDir: string, sessionId: string): McpGatewayLaunchRecord | null;
11
+ /** Pure decision: may the worker reattach a surviving persistent pane that
12
+ * carries plugin MCP state, instead of killing it for a cold-resume? */
13
+ export declare function mcpGatewayPaneReattachSafe(record: McpGatewayLaunchRecord | null, expectedSocketPath: string): boolean;
14
+ //# sourceMappingURL=launch-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-record.d.ts","sourceRoot":"","sources":["../../../../src/core/plugins/mcp/launch-record.ts"],"names":[],"mappings":"AAsBA,uEAAuE;AACvE,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAEpD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAErF;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,IAAI,CAQN;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpF;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,sBAAsB,GAAG,IAAI,CAc/B;AAED;yEACyE;AACzE,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,sBAAsB,GAAG,IAAI,EACrC,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAIT"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Persisted record of the Gateway socket path a session's CLI was LAUNCHED
3
+ * with. Written by the worker when it starts a CLI generation whose
4
+ * environment carries `BOTMUX_MCP_GATEWAY_SOCKET`; consulted by the NEXT
5
+ * worker generation (after a daemon restart) to decide whether a surviving
6
+ * persistent pane can be reattached.
7
+ *
8
+ * Reattach is only safe when the pane's relay can reach the replacement host:
9
+ * - the recorded socket path must equal the deterministic path the new host
10
+ * will bind (sessionMcpGatewaySocketPath) — a pane launched by an older
11
+ * build with an mkdtemp-random path can never reconnect and must still be
12
+ * cold-resumed;
13
+ * - the record's relay protocol version must be ≥ 2 — version 2 is the
14
+ * first relay that reconnects after a socket loss (older relays exit on
15
+ * the first disconnect, so reattaching would strand a dead MCP client).
16
+ *
17
+ * The record lives outside the pane's reach (worker data dir, not session
18
+ * tmpfs) and is cleared whenever a CLI generation launches without a Gateway.
19
+ */
20
+ import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
21
+ import { dirname, join } from 'node:path';
22
+ /** Bumped when the relay's reconnect contract changes incompatibly. */
23
+ export const MCP_GATEWAY_RELAY_PROTOCOL_VERSION = 2;
24
+ export function mcpGatewayLaunchRecordPath(dataDir, sessionId) {
25
+ return join(dataDir, 'mcp-gateway-launch', `${sessionId}.json`);
26
+ }
27
+ export function writeMcpGatewayLaunchRecord(dataDir, sessionId, socketPath) {
28
+ const path = mcpGatewayLaunchRecordPath(dataDir, sessionId);
29
+ mkdirSync(dirname(path), { recursive: true });
30
+ const record = {
31
+ version: MCP_GATEWAY_RELAY_PROTOCOL_VERSION,
32
+ socketPath,
33
+ };
34
+ writeFileSync(path, `${JSON.stringify(record)}\n`, { mode: 0o600 });
35
+ }
36
+ export function clearMcpGatewayLaunchRecord(dataDir, sessionId) {
37
+ rmSync(mcpGatewayLaunchRecordPath(dataDir, sessionId), { force: true });
38
+ }
39
+ export function readMcpGatewayLaunchRecord(dataDir, sessionId) {
40
+ let raw;
41
+ try {
42
+ raw = readFileSync(mcpGatewayLaunchRecordPath(dataDir, sessionId), 'utf8');
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ try {
48
+ const parsed = JSON.parse(raw);
49
+ if (typeof parsed?.version === 'number' && typeof parsed?.socketPath === 'string') {
50
+ return { version: parsed.version, socketPath: parsed.socketPath };
51
+ }
52
+ }
53
+ catch { /* malformed record — treated as absent below */ }
54
+ return null;
55
+ }
56
+ /** Pure decision: may the worker reattach a surviving persistent pane that
57
+ * carries plugin MCP state, instead of killing it for a cold-resume? */
58
+ export function mcpGatewayPaneReattachSafe(record, expectedSocketPath) {
59
+ return record !== null
60
+ && record.version >= MCP_GATEWAY_RELAY_PROTOCOL_VERSION
61
+ && record.socketPath === expectedSocketPath;
62
+ }
63
+ //# sourceMappingURL=launch-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-record.js","sourceRoot":"","sources":["../../../../src/core/plugins/mcp/launch-record.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,uEAAuE;AACvE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAOpD,MAAM,UAAU,0BAA0B,CAAC,OAAe,EAAE,SAAiB;IAC3E,OAAO,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAe,EACf,SAAiB,EACjB,UAAkB;IAElB,MAAM,IAAI,GAAG,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,MAAM,GAA2B;QACrC,OAAO,EAAE,kCAAkC;QAC3C,UAAU;KACX,CAAC;IACF,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAe,EAAE,SAAiB;IAC5E,MAAM,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,SAAiB;IAEjB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,MAAM,EAAE,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACpE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;yEACyE;AACzE,MAAM,UAAU,0BAA0B,CACxC,MAAqC,EACrC,kBAA0B;IAE1B,OAAO,MAAM,KAAK,IAAI;WACjB,MAAM,CAAC,OAAO,IAAI,kCAAkC;WACpD,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC;AAChD,CAAC"}
@@ -22,6 +22,17 @@ export declare function publishClosedSessionPatch(sessionId: string, closedAt?:
22
22
  * assigning `quoteTargetSenderIsBot`.
23
23
  */
24
24
  export declare function publishLastInputFromBotPatch(ds: DaemonSession): void;
25
+ /**
26
+ * Immediately project a newly learned native topic id into the Dashboard's
27
+ * cached row. `markSessionActivity()` intentionally publishes only timestamp
28
+ * data, so it cannot make a first-time `larkThreadId` visible to a dashboard
29
+ * that has already hydrated this session.
30
+ *
31
+ * The row composer owns the brand-aware AppLink and validates the `omt_...`
32
+ * id again. Returning false keeps accidental callers with a chat/invalid id
33
+ * from publishing a misleading patch.
34
+ */
35
+ export declare function publishNativeTopicLinkPatch(ds: DaemonSession): boolean;
25
36
  /** Push the current attention signals (repo-selection pending / TUI prompt
26
37
  * open) to the dashboard. Call after mutating `ds.pendingRepo` or
27
38
  * `ds.tuiPromptCardId` so the board view's needs-you column tracks live
@@ -1 +1 @@
1
- {"version":3,"file":"session-activity.d.ts","sourceRoot":"","sources":["../../src/core/session-activity.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,GAAE,MAAmB,GAAG,IAAI,CAgBpF;AAED;;6EAE6E;AAC7E,wBAAgB,iCAAiC,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAQzE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GACnC,IAAI,CAmBN;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAQpE;AAED;;;;eAIe;AACf,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAgB7D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAK9D;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAK1D;AAED;;;;;;;;2EAQ2E;AAC3E,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAGlE"}
1
+ {"version":3,"file":"session-activity.d.ts","sourceRoot":"","sources":["../../src/core/session-activity.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,GAAE,MAAmB,GAAG,IAAI,CAgBpF;AAED;;6EAE6E;AAC7E,wBAAgB,iCAAiC,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAQzE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GACnC,IAAI,CAmBN;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAQpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAWtE;AAED;;;;eAIe;AACf,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAgB7D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAK9D;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAK1D;AAED;;;;;;;;2EAQ2E;AAC3E,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAGlE"}
@@ -79,6 +79,29 @@ export function publishLastInputFromBotPatch(ds) {
79
79
  },
80
80
  });
81
81
  }
82
+ /**
83
+ * Immediately project a newly learned native topic id into the Dashboard's
84
+ * cached row. `markSessionActivity()` intentionally publishes only timestamp
85
+ * data, so it cannot make a first-time `larkThreadId` visible to a dashboard
86
+ * that has already hydrated this session.
87
+ *
88
+ * The row composer owns the brand-aware AppLink and validates the `omt_...`
89
+ * id again. Returning false keeps accidental callers with a chat/invalid id
90
+ * from publishing a misleading patch.
91
+ */
92
+ export function publishNativeTopicLinkPatch(ds) {
93
+ const feishuThreadLink = composeRowFromActive(ds).feishuThreadLink;
94
+ if (!feishuThreadLink)
95
+ return false;
96
+ dashboardEventBus.publish({
97
+ type: 'session.update',
98
+ body: {
99
+ sessionId: ds.session.sessionId,
100
+ patch: { feishuThreadLink },
101
+ },
102
+ });
103
+ return true;
104
+ }
82
105
  /** Push the current attention signals (repo-selection pending / TUI prompt
83
106
  * open) to the dashboard. Call after mutating `ds.pendingRepo` or
84
107
  * `ds.tuiPromptCardId` so the board view's needs-you column tracks live
@@ -1 +1 @@
1
- {"version":3,"file":"session-activity.js","sourceRoot":"","sources":["../../src/core/session-activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-activity.js","sourceRoot":"","sources":["../../src/core/session-activity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-group-birth.d.ts","sourceRoot":"","sources":["../../src/core/session-group-birth.ts"],"names":[],"mappings":"AAkCA,OAAO,EAA8C,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEjH,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAKhE;uEACuE;AACvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMhG;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uCAAuC,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAU1E;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA0JhC"}
1
+ {"version":3,"file":"session-group-birth.d.ts","sourceRoot":"","sources":["../../src/core/session-group-birth.ts"],"names":[],"mappings":"AA4CA,OAAO,EAA8C,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEjH,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAKhE;uEACuE;AACvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMhG;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uCAAuC,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAU1E;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA+JhC"}
@@ -8,14 +8,24 @@
8
8
  * message into the new group, sends a DM receipt linking the group, kicks off
9
9
  * the async AI title, and hands back a rewritten RoutingContext pointing at
10
10
  * the new chat (chat-scope). handleNewTopic then simply recurses with that
11
- * context — every later step (oncall working-dir resolution via the binding
12
- * written at creation, session spawn, streaming card) behaves exactly like a
13
- * normal solo-group chat-scope session.
11
+ * context — every later step (working-dir resolution, session spawn,
12
+ * streaming card) behaves exactly like a normal solo-group chat-scope session.
14
13
  *
15
- * The oncall binding written at creation carries ONLY the working dir: the
16
- * group's talk/quota identity comes from the authorization provenance recorded
17
- * in the registry (origin* fields), which the dispatcher replays for every
18
- * later message. See evaluateSessionGroupTalk in im/lark/event-dispatcher.
14
+ * Working dir: ONLY an explicit `sessionGroup.workingDir` is bound to the new
15
+ * chat as an oncall binding at creation. When it is unset, birth deliberately
16
+ * writes NO binding so the recursed handleNewTopic resolves the dir through
17
+ * the same layered lookup as any other group (resolvePinnedWorkingDir):
18
+ * defaultOncall auto-bind, the bot's own defaultWorkingDir — with
19
+ * `defaultWorkingDirAutoWorktree` honored, which an oncall-sourced dir would
20
+ * suppress — or the repo-selection card. The old fallback chain
21
+ * (defaultWorkingDir → workingDirs[0]) pinned those dirs as oncall bindings,
22
+ * which both disabled auto-worktree and silently skipped the repo picker for
23
+ * multi-repo bots.
24
+ *
25
+ * When a binding IS written it carries ONLY the working dir: the group's
26
+ * talk/quota identity comes from the authorization provenance recorded in the
27
+ * registry (origin* fields), which the dispatcher replays for every later
28
+ * message. See evaluateSessionGroupTalk in im/lark/event-dispatcher.
19
29
  *
20
30
  * Returns null to fall through to the legacy thread behavior:
21
31
  * - the message is a slash command (never birth a group for /help, /login …)
@@ -101,7 +111,12 @@ export async function maybeBirthSessionGroup(data, ctx) {
101
111
  return null;
102
112
  const prefix = sg.namePrefix ?? '';
103
113
  const placeholder = buildPlaceholderName(text, prefix, locale);
104
- const workingDir = sg.workingDir?.trim() || botCfg.defaultWorkingDir?.trim() || botCfg.workingDir?.trim() || undefined;
114
+ // Only the explicit session-group template dir becomes a binding. Falling
115
+ // back to defaultWorkingDir / workingDirs[0] here would re-source the bot's
116
+ // default as an ONCALL dir, which suppresses defaultWorkingDirAutoWorktree
117
+ // and skips the repo-selection card for multi-repo bots — the recursed
118
+ // handleNewTopic already resolves those correctly when no binding exists.
119
+ const workingDir = sg.workingDir?.trim() || undefined;
105
120
  // Provenance snapshot, taken in the DM context BEFORE the new chat exists:
106
121
  // WHICH authorization is paying for this group. The dispatcher replays it for
107
122
  // every later message in the group (same quota counter, same reason, same
@@ -1 +1 @@
1
- {"version":3,"file":"session-group-birth.js","sourceRoot":"","sources":["../../src/core/session-group-birth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-group-birth.js","sourceRoot":"","sources":["../../src/core/session-group-birth.ts"],"names":[],"mappings":"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"}
@@ -311,9 +311,6 @@ export declare function ensureTerminalWorkerPort(ds: DaemonSession): Promise<num
311
311
  * a fresh thread session); refuse rather than clobber
312
312
  * - 'adopt_unsupported' — adopt sessions are torn down by /close and have
313
313
  * no resume semantics
314
- * - 'vc_receiver_managed' — dedicated meeting receivers are reconstructed
315
- * through the meeting membership/hub lifecycle; a
316
- * manual resume could resurrect a stale member epoch
317
314
  * - 'deferred_unmaterialized' — a silent fresh-topic run finished without
318
315
  * publishing, so it has no conversation to resume
319
316
  * - 'resume_cancelled' — a concurrent close won while resume was committing
@@ -323,7 +320,7 @@ export declare function resumeSession(sessionId: string, activeSessions: Map<str
323
320
  ds: DaemonSession;
324
321
  } | {
325
322
  ok: false;
326
- error: 'not_found' | 'not_closed' | 'anchor_occupied' | 'adopt_unsupported' | 'vc_receiver_managed' | 'deferred_unmaterialized' | 'resume_cancelled';
323
+ error: 'not_found' | 'not_closed' | 'anchor_occupied' | 'adopt_unsupported' | 'deferred_unmaterialized' | 'resume_cancelled';
327
324
  activeSessionId?: string;
328
325
  }>;
329
326
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/core/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/core/session-manager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAgC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAKtD,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,8BAA8B,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAqD,cAAc,EAAE,WAAW,EAAE,aAAa,EAAW,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAI1L,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAOnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,OAAO,EAAqC,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAgBlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,KAAK,iBAAiB,GAAG,CACvB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,GAAG,iBAAiB,CAAC,KACnE,OAAO,CAAC;AA+Vb;;;;;;;;;GASG;AACH;;;;;;;;GAQG;AACH,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAoC/D;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCpF;AAID,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,wBAAgB,oBAAoB,CAAC,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM,CAQ/D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM,CAQ5D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAezF;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE,CAkB/D;AAID,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAsC1K;AAID;;8EAE8E;AAC9E,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAoBvE;AAgDD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAM/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAK/H;AAkFD,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAS7F;AAqBD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAmB/D;AAuHD,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,EACZ,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,cAAc,EAAE,EAC9B,QAAQ,CAAC,EAAE,WAAW,EAAE,EACxB,aAAa,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,WAAW,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAChD,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc,EACvB,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CAAE,GACtI,MAAM,CA0GR;AAED;;;;qDAIqD;AACrD,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,EACZ,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,cAAc,EAAE,EAC9B,QAAQ,CAAC,EAAE,WAAW,EAAE,EACxB,aAAa,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,WAAW,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAChD,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc,EACvB,IAAI,CAAC,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,GACA,cAAc,CAuChB;AASD;;;GAGG;AACH;wDACwD;AACxD,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;uCACmC;IACnC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC;;kEAE8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AA+DF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,YAAY,GAClB,MAAM,CAER;AAkFD,sDAAsD;AACtD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,YAAY,GAClB,cAAc,CAgDhB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IACL,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,MAAM,CA0DR;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,aAAa,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IACL,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GACA,MAAM,CAuBR;AAED;2EAC2E;AAC3E,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,aAAa,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IACL,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,cAAc,CA8BhB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAkC9D;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GAAG,cAAc,EACjC,IAAI,CAAC,EAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC,IAAI,CAuBN;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAEzE;AAKD;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,IAAI,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,EACjC,SAAS,GAAE,MAAiC,EAC5C,OAAO,GAAE,MAA+B,EACxC,UAAU,GAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAA8C,GAChF,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,qBAAqB,CACzC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC1C,qBAAqB,GAAE,WAAW,CAAC,MAAM,CAAa,GACrD,OAAO,CAAC,IAAI,CAAC,CAu4Bf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwC7F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACzC,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,aAAa,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,WAAW,GAAG,YAAY,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,kBAAkB,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuNvK;AAID;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,OAAO,GAAG,eAAe,GAAG,SAAS,CAAC,GACrF,QAAQ,GAAG,MAAM,CAMnB;AAED,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,OAAO,GAAG,eAAe,GAAG,SAAS,CAAC,GACrF,WAAW,GAAG,OAAO,GAAG,WAAW,CAMrC;AAiCD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,EACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC1C,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,IAAI,CAAC,CAgYf;AA2KD,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,gEAAgE;IAChE,IAAI,EAAE,SAAS,CAAC;IAChB,oDAAoD;IACpD,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;sEACkE;IAClE,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;gDAIgD;AAChD,wBAAsB,qBAAqB,CACzC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC1C,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAChD,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgMzE;AAED;;oDAEoD;AACpD,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwGvG"}
@@ -52,6 +52,7 @@ import { escapeXmlTagLikeTokens } from '../utils/xml.js';
52
52
  import { chatAppLink, threadAppLink, normalizeBrand } from '../im/lark/lark-hosts.js';
53
53
  import { writePromptContext } from '../services/prompt-context-store.js';
54
54
  import { hasInstalledPromptHookCached } from '../adapters/hook-installer.js';
55
+ import { isSharedAdoptPersistedSession, isSharedAdoptSession } from './shared-adopt.js';
55
56
  export { getAttachmentsDir } from './attachment-path.js';
56
57
  function sessionCreatedAtMs(session) {
57
58
  return session.createdAt ? (Date.parse(session.createdAt) || Date.now()) : Date.now();
@@ -268,6 +269,12 @@ function armCliMismatchResweep(ds) {
268
269
  }
269
270
  }
270
271
  async function closeActiveSessionIfCliMismatch(ds) {
272
+ // A Codex App shared adopt deliberately runs the plain `codex` remote TUI
273
+ // even when this bot's normal/new-session runtime remains `codex-app`.
274
+ // That is not a bot configuration drift and must never trigger the ordinary
275
+ // "kill mismatched CLI" cleanup during daemon restore or a live config edit.
276
+ if (isSharedAdoptSession(ds))
277
+ return 'not_mismatched';
271
278
  const mismatch = sessionBotCliMismatch(ds);
272
279
  if (!mismatch)
273
280
  return 'not_mismatched';
@@ -374,7 +381,7 @@ export async function closeCliMismatchedSessionsForBot(larkAppId) {
374
381
  continue;
375
382
  if (ds.session.queued)
376
383
  continue;
377
- if (ds.adoptedFrom || ds.session.adoptedFrom || ds.session.title?.startsWith('Adopt:'))
384
+ if (isSharedAdoptSession(ds) || ds.session.title?.startsWith('Adopt:'))
378
385
  continue;
379
386
  // Defense in depth: the dashboard toggle preflights the whole bot before
380
387
  // changing config. Never let a refused suspend fall through into
@@ -428,7 +435,7 @@ export async function suspendActiveSessionsForBot(larkAppId) {
428
435
  continue;
429
436
  if (ds.session.queued)
430
437
  continue;
431
- if (ds.adoptedFrom || ds.session.adoptedFrom || ds.session.title?.startsWith('Adopt:'))
438
+ if (isSharedAdoptSession(ds) || ds.session.title?.startsWith('Adopt:'))
432
439
  continue;
433
440
  // A settings helper is never an explicit abandon boundary. In particular,
434
441
  // suspendWorker intentionally refuses pending Codex App ownership; do not
@@ -2468,9 +2475,6 @@ export async function ensureTerminalWorkerPort(ds) {
2468
2475
  * a fresh thread session); refuse rather than clobber
2469
2476
  * - 'adopt_unsupported' — adopt sessions are torn down by /close and have
2470
2477
  * no resume semantics
2471
- * - 'vc_receiver_managed' — dedicated meeting receivers are reconstructed
2472
- * through the meeting membership/hub lifecycle; a
2473
- * manual resume could resurrect a stale member epoch
2474
2478
  * - 'deferred_unmaterialized' — a silent fresh-topic run finished without
2475
2479
  * publishing, so it has no conversation to resume
2476
2480
  * - 'resume_cancelled' — a concurrent close won while resume was committing
@@ -2481,17 +2485,11 @@ export async function resumeSession(sessionId, activeSessions) {
2481
2485
  return { ok: false, error: 'not_found' };
2482
2486
  if (session.status !== 'closed')
2483
2487
  return { ok: false, error: 'not_closed' };
2484
- // A dedicated VC receiver is not an ordinary chat conversation. Its
2485
- // identity is fenced by (meeting, member, epoch) and its active-map slot is
2486
- // reconstructed by the meeting hub/membership lifecycle. Reactivating a
2487
- // closed receiver through the generic dashboard/card/CLI path would bypass
2488
- // that ownership check, potentially revive a stale epoch, and (before the
2489
- // dedicated-key fix) collapse it into the listener chat's ordinary slot.
2490
- // Keep it closed and let the authoritative meeting lifecycle create or
2491
- // recover the correct receiver binding.
2492
- if (session.vcMeetingReceiver) {
2493
- return { ok: false, error: 'vc_receiver_managed' };
2494
- }
2488
+ // Plan B: a VC meeting agent is an ordinary chat-scope session, so a closed one
2489
+ // resumes into its normal (chatId, appId) slot like any chat session — the old
2490
+ // `vc_receiver_managed` refusal is gone. (Reviving into the ordinary slot is now
2491
+ // the intended behavior, not a hazard; the meeting lifecycle re-stamps the
2492
+ // delivery binding via ensureVcMeetingReceiverSession when the meeting is live.)
2495
2493
  // Auto-closed invisible schedule runs are audit records, not conversations.
2496
2494
  // Without a materialized binding, resuming one would wake a virtual chat-
2497
2495
  // scope anchor that no inbound Lark message can reach; a later botmux send
@@ -2503,7 +2501,7 @@ export async function resumeSession(sessionId, activeSessions) {
2503
2501
  // Adopt sessions don't survive /close — the user's tmux pane and original
2504
2502
  // CLI pid have already moved on, and bringing the bridge back without a live
2505
2503
  // pane is meaningless.
2506
- if (session.title?.startsWith('Adopt:') || session.adoptedFrom) {
2504
+ if (session.title?.startsWith('Adopt:') || isSharedAdoptPersistedSession(session)) {
2507
2505
  return { ok: false, error: 'adopt_unsupported' };
2508
2506
  }
2509
2507
  const scope = session.scope === 'chat' ? 'chat' : 'thread';
@@ -2518,13 +2516,11 @@ export async function resumeSession(sessionId, activeSessions) {
2518
2516
  return { ok: false, error: 'not_found' };
2519
2517
  if (latest.status !== 'closed')
2520
2518
  return { ok: false, error: 'not_closed' };
2521
- if (latest.vcMeetingReceiver)
2522
- return { ok: false, error: 'vc_receiver_managed' };
2523
2519
  if (latest.deferredScheduleRun
2524
2520
  && !readDeferredTopicBinding(config.session.dataDir, latest.sessionId)) {
2525
2521
  return { ok: false, error: 'deferred_unmaterialized' };
2526
2522
  }
2527
- if (latest.title?.startsWith('Adopt:') || latest.adoptedFrom) {
2523
+ if (latest.title?.startsWith('Adopt:') || isSharedAdoptPersistedSession(latest)) {
2528
2524
  return { ok: false, error: 'adopt_unsupported' };
2529
2525
  }
2530
2526
  session = latest;