botmux 3.5.0 → 3.6.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 (505) hide show
  1. package/README.en.md +56 -396
  2. package/README.md +55 -396
  3. package/dist/.runtime-build-id +1 -0
  4. package/dist/adapters/backend/sandbox.d.ts +99 -279
  5. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  6. package/dist/adapters/backend/sandbox.js +424 -826
  7. package/dist/adapters/backend/sandbox.js.map +1 -1
  8. package/dist/adapters/cli/claude-code.d.ts +6 -0
  9. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  10. package/dist/adapters/cli/claude-code.js +197 -11
  11. package/dist/adapters/cli/claude-code.js.map +1 -1
  12. package/dist/adapters/cli/coco.js +4 -4
  13. package/dist/adapters/cli/coco.js.map +1 -1
  14. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  15. package/dist/adapters/cli/codex-app.js +9 -6
  16. package/dist/adapters/cli/codex-app.js.map +1 -1
  17. package/dist/adapters/cli/codex.d.ts.map +1 -1
  18. package/dist/adapters/cli/codex.js +9 -5
  19. package/dist/adapters/cli/codex.js.map +1 -1
  20. package/dist/adapters/cli/fs-policy.d.ts +244 -0
  21. package/dist/adapters/cli/fs-policy.d.ts.map +1 -0
  22. package/dist/adapters/cli/fs-policy.js +537 -0
  23. package/dist/adapters/cli/fs-policy.js.map +1 -0
  24. package/dist/adapters/cli/grok.d.ts +2 -1
  25. package/dist/adapters/cli/grok.d.ts.map +1 -1
  26. package/dist/adapters/cli/grok.js +2 -1
  27. package/dist/adapters/cli/grok.js.map +1 -1
  28. package/dist/adapters/cli/hermes.d.ts.map +1 -1
  29. package/dist/adapters/cli/hermes.js +8 -4
  30. package/dist/adapters/cli/hermes.js.map +1 -1
  31. package/dist/adapters/cli/mtr.d.ts.map +1 -1
  32. package/dist/adapters/cli/mtr.js +3 -2
  33. package/dist/adapters/cli/mtr.js.map +1 -1
  34. package/dist/adapters/cli/opencode.d.ts.map +1 -1
  35. package/dist/adapters/cli/opencode.js +5 -4
  36. package/dist/adapters/cli/opencode.js.map +1 -1
  37. package/dist/adapters/cli/read-isolation.d.ts +14 -200
  38. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  39. package/dist/adapters/cli/read-isolation.js +18 -477
  40. package/dist/adapters/cli/read-isolation.js.map +1 -1
  41. package/dist/adapters/cli/relay.js +2 -2
  42. package/dist/adapters/cli/relay.js.map +1 -1
  43. package/dist/adapters/cli/runner-input.d.ts +2 -2
  44. package/dist/adapters/cli/runner-input.d.ts.map +1 -1
  45. package/dist/adapters/cli/runner-input.js +9 -6
  46. package/dist/adapters/cli/runner-input.js.map +1 -1
  47. package/dist/adapters/cli/seed.d.ts.map +1 -1
  48. package/dist/adapters/cli/seed.js +2 -1
  49. package/dist/adapters/cli/seed.js.map +1 -1
  50. package/dist/adapters/cli/traex.d.ts.map +1 -1
  51. package/dist/adapters/cli/traex.js +3 -2
  52. package/dist/adapters/cli/traex.js.map +1 -1
  53. package/dist/adapters/cli/types.d.ts +25 -18
  54. package/dist/adapters/cli/types.d.ts.map +1 -1
  55. package/dist/bot-registry.d.ts +54 -23
  56. package/dist/bot-registry.d.ts.map +1 -1
  57. package/dist/bot-registry.js +91 -0
  58. package/dist/bot-registry.js.map +1 -1
  59. package/dist/cli.d.ts.map +1 -1
  60. package/dist/cli.js +297 -104
  61. package/dist/cli.js.map +1 -1
  62. package/dist/codex-app-runner.js +85 -192
  63. package/dist/codex-app-runner.js.map +1 -1
  64. package/dist/config.d.ts +0 -16
  65. package/dist/config.d.ts.map +1 -1
  66. package/dist/config.js +0 -30
  67. package/dist/config.js.map +1 -1
  68. package/dist/core/ask-broker.d.ts +12 -0
  69. package/dist/core/ask-broker.d.ts.map +1 -1
  70. package/dist/core/ask-broker.js +41 -0
  71. package/dist/core/ask-broker.js.map +1 -1
  72. package/dist/core/bot-turn-mutation-gate.d.ts +24 -0
  73. package/dist/core/bot-turn-mutation-gate.d.ts.map +1 -0
  74. package/dist/core/bot-turn-mutation-gate.js +369 -0
  75. package/dist/core/bot-turn-mutation-gate.js.map +1 -0
  76. package/dist/core/command-handler.d.ts +5 -0
  77. package/dist/core/command-handler.d.ts.map +1 -1
  78. package/dist/core/command-handler.js +53 -73
  79. package/dist/core/command-handler.js.map +1 -1
  80. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  81. package/dist/core/dashboard-ipc-server.js +356 -84
  82. package/dist/core/dashboard-ipc-server.js.map +1 -1
  83. package/dist/core/dashboard-rows.d.ts +8 -0
  84. package/dist/core/dashboard-rows.d.ts.map +1 -1
  85. package/dist/core/dashboard-rows.js.map +1 -1
  86. package/dist/core/host-overload-alert.d.ts +157 -0
  87. package/dist/core/host-overload-alert.d.ts.map +1 -0
  88. package/dist/core/host-overload-alert.js +251 -0
  89. package/dist/core/host-overload-alert.js.map +1 -0
  90. package/dist/core/passthrough-commands.d.ts +8 -0
  91. package/dist/core/passthrough-commands.d.ts.map +1 -1
  92. package/dist/core/passthrough-commands.js +20 -1
  93. package/dist/core/passthrough-commands.js.map +1 -1
  94. package/dist/core/plugins/mcp/gateway-installer.d.ts.map +1 -1
  95. package/dist/core/plugins/mcp/gateway-installer.js +14 -2
  96. package/dist/core/plugins/mcp/gateway-installer.js.map +1 -1
  97. package/dist/core/restart-coordinator.d.ts +28 -0
  98. package/dist/core/restart-coordinator.d.ts.map +1 -0
  99. package/dist/core/restart-coordinator.js +82 -0
  100. package/dist/core/restart-coordinator.js.map +1 -0
  101. package/dist/core/restart-followup-policy.d.ts +112 -0
  102. package/dist/core/restart-followup-policy.d.ts.map +1 -0
  103. package/dist/core/restart-followup-policy.js +49 -0
  104. package/dist/core/restart-followup-policy.js.map +1 -0
  105. package/dist/core/role-library.d.ts +1 -1
  106. package/dist/core/role-library.js +1 -1
  107. package/dist/core/session-cwd.d.ts.map +1 -1
  108. package/dist/core/session-cwd.js +8 -0
  109. package/dist/core/session-cwd.js.map +1 -1
  110. package/dist/core/session-discovery.d.ts +14 -0
  111. package/dist/core/session-discovery.d.ts.map +1 -1
  112. package/dist/core/session-discovery.js +25 -0
  113. package/dist/core/session-discovery.js.map +1 -1
  114. package/dist/core/session-liveness.d.ts +15 -0
  115. package/dist/core/session-liveness.d.ts.map +1 -0
  116. package/dist/core/session-liveness.js +76 -0
  117. package/dist/core/session-liveness.js.map +1 -0
  118. package/dist/core/session-manager.d.ts.map +1 -1
  119. package/dist/core/session-manager.js +90 -60
  120. package/dist/core/session-manager.js.map +1 -1
  121. package/dist/core/session-row-enrichment.d.ts +15 -0
  122. package/dist/core/session-row-enrichment.d.ts.map +1 -0
  123. package/dist/core/session-row-enrichment.js +93 -0
  124. package/dist/core/session-row-enrichment.js.map +1 -0
  125. package/dist/core/slash-inject.js +1 -1
  126. package/dist/core/slash-inject.js.map +1 -1
  127. package/dist/core/trigger-final-suppression.d.ts +24 -0
  128. package/dist/core/trigger-final-suppression.d.ts.map +1 -0
  129. package/dist/core/trigger-final-suppression.js +97 -0
  130. package/dist/core/trigger-final-suppression.js.map +1 -0
  131. package/dist/core/trigger-session.d.ts.map +1 -1
  132. package/dist/core/trigger-session.js +64 -4
  133. package/dist/core/trigger-session.js.map +1 -1
  134. package/dist/core/types.d.ts +6 -0
  135. package/dist/core/types.d.ts.map +1 -1
  136. package/dist/core/types.js.map +1 -1
  137. package/dist/core/worker-pool.d.ts +44 -0
  138. package/dist/core/worker-pool.d.ts.map +1 -1
  139. package/dist/core/worker-pool.js +333 -38
  140. package/dist/core/worker-pool.js.map +1 -1
  141. package/dist/daemon.d.ts +5 -1
  142. package/dist/daemon.d.ts.map +1 -1
  143. package/dist/daemon.js +526 -35
  144. package/dist/daemon.js.map +1 -1
  145. package/dist/dashboard/aggregator.d.ts +1 -0
  146. package/dist/dashboard/aggregator.d.ts.map +1 -1
  147. package/dist/dashboard/aggregator.js +34 -6
  148. package/dist/dashboard/aggregator.js.map +1 -1
  149. package/dist/dashboard/bot-payload.d.ts +8 -0
  150. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  151. package/dist/dashboard/bot-payload.js +10 -0
  152. package/dist/dashboard/bot-payload.js.map +1 -1
  153. package/dist/dashboard/compat.d.ts +102 -2
  154. package/dist/dashboard/compat.d.ts.map +1 -1
  155. package/dist/dashboard/compat.js +78 -14
  156. package/dist/dashboard/compat.js.map +1 -1
  157. package/dist/dashboard/connector-api.d.ts.map +1 -1
  158. package/dist/dashboard/connector-api.js +1 -0
  159. package/dist/dashboard/connector-api.js.map +1 -1
  160. package/dist/dashboard/desktop-asks.d.ts +21 -0
  161. package/dist/dashboard/desktop-asks.d.ts.map +1 -0
  162. package/dist/dashboard/desktop-asks.js +49 -0
  163. package/dist/dashboard/desktop-asks.js.map +1 -0
  164. package/dist/dashboard/public-redact.d.ts +7 -0
  165. package/dist/dashboard/public-redact.d.ts.map +1 -1
  166. package/dist/dashboard/public-redact.js +35 -3
  167. package/dist/dashboard/public-redact.js.map +1 -1
  168. package/dist/dashboard/session-presentation.d.ts +16 -0
  169. package/dist/dashboard/session-presentation.d.ts.map +1 -0
  170. package/dist/dashboard/session-presentation.js +62 -0
  171. package/dist/dashboard/session-presentation.js.map +1 -0
  172. package/dist/dashboard/settings-write-applier.d.ts +2 -1
  173. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  174. package/dist/dashboard/settings-write-applier.js +19 -1
  175. package/dist/dashboard/settings-write-applier.js.map +1 -1
  176. package/dist/dashboard/trigger-api.d.ts.map +1 -1
  177. package/dist/dashboard/trigger-api.js +19 -1
  178. package/dist/dashboard/trigger-api.js.map +1 -1
  179. package/dist/dashboard/vc-consumer-profiles-api.d.ts +7 -2
  180. package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -1
  181. package/dist/dashboard/vc-consumer-profiles-api.js +13 -0
  182. package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -1
  183. package/dist/dashboard/web/app.d.ts.map +1 -1
  184. package/dist/dashboard/web/app.js +18 -5
  185. package/dist/dashboard/web/app.js.map +1 -1
  186. package/dist/dashboard/web/bot-defaults-page.d.ts +16 -0
  187. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  188. package/dist/dashboard/web/bot-defaults-page.js +288 -7
  189. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  190. package/dist/dashboard/web/bot-defaults.d.ts +10 -0
  191. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  192. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  193. package/dist/dashboard/web/client-shell.d.ts +29 -0
  194. package/dist/dashboard/web/client-shell.d.ts.map +1 -0
  195. package/dist/dashboard/web/client-shell.js +89 -0
  196. package/dist/dashboard/web/client-shell.js.map +1 -0
  197. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  198. package/dist/dashboard/web/connectors-page.js +5 -1
  199. package/dist/dashboard/web/connectors-page.js.map +1 -1
  200. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  201. package/dist/dashboard/web/i18n.js +130 -22
  202. package/dist/dashboard/web/i18n.js.map +1 -1
  203. package/dist/dashboard/web/preferences.d.ts +7 -0
  204. package/dist/dashboard/web/preferences.d.ts.map +1 -1
  205. package/dist/dashboard/web/preferences.js +32 -0
  206. package/dist/dashboard/web/preferences.js.map +1 -1
  207. package/dist/dashboard/web/sessions-kanban.d.ts +1 -1
  208. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
  209. package/dist/dashboard/web/sessions-kanban.js +1 -1
  210. package/dist/dashboard/web/sessions-kanban.js.map +1 -1
  211. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  212. package/dist/dashboard/web/sessions-page.js +78 -67
  213. package/dist/dashboard/web/sessions-page.js.map +1 -1
  214. package/dist/dashboard/web/sessions.d.ts +4 -0
  215. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  216. package/dist/dashboard/web/sessions.js +14 -1
  217. package/dist/dashboard/web/sessions.js.map +1 -1
  218. package/dist/dashboard/web/settings-page.d.ts +6 -0
  219. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  220. package/dist/dashboard/web/settings-page.js +55 -30
  221. package/dist/dashboard/web/settings-page.js.map +1 -1
  222. package/dist/dashboard/web/store.d.ts +1 -2
  223. package/dist/dashboard/web/store.d.ts.map +1 -1
  224. package/dist/dashboard/web/store.js +69 -20
  225. package/dist/dashboard/web/store.js.map +1 -1
  226. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
  227. package/dist/dashboard/web/vc-consumer-profiles-section.js +128 -42
  228. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
  229. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  230. package/dist/dashboard/webhook-routes.js +9 -2
  231. package/dist/dashboard/webhook-routes.js.map +1 -1
  232. package/dist/dashboard-web/app.js +1 -1
  233. package/dist/dashboard-web/chunks/bot-defaults-page-VQMPUJ4Y.js +10 -0
  234. package/dist/dashboard-web/chunks/chunk-AGCPF6MT.js +1 -0
  235. package/dist/dashboard-web/chunks/{chunk-QCPPKCX3.js → chunk-JMRGZQDB.js} +1 -1
  236. package/dist/dashboard-web/chunks/{chunk-EJDYUINZ.js → chunk-NP4JUBGS.js} +1 -1
  237. package/dist/dashboard-web/chunks/{chunk-WXPMNEYV.js → chunk-P327LXOT.js} +1 -1
  238. package/dist/dashboard-web/chunks/chunk-SNKATZWK.js +49 -0
  239. package/dist/dashboard-web/chunks/connectors-page-DOY4J3ZL.js +1 -0
  240. package/dist/dashboard-web/chunks/{groups-page-3P4TLUMF.js → groups-page-74TS2DIH.js} +1 -1
  241. package/dist/dashboard-web/chunks/{insights-page-TDCZV56A.js → insights-page-AYCO65JC.js} +1 -1
  242. package/dist/dashboard-web/chunks/{monitor-room-QWCWL3SX.js → monitor-room-YKYLTSAN.js} +1 -1
  243. package/dist/dashboard-web/chunks/{monitoring-page-IOWFSNVC.js → monitoring-page-QBIUNRBR.js} +1 -1
  244. package/dist/dashboard-web/chunks/{office-page-5AUPEHZP.js → office-page-4PH2A26P.js} +1 -1
  245. package/dist/dashboard-web/chunks/overview-page-H73D5UT4.js +1 -0
  246. package/dist/dashboard-web/chunks/{roles-page-WJVB52ET.js → roles-page-U4BTOQ7F.js} +1 -1
  247. package/dist/dashboard-web/chunks/{schedules-page-RVRWHP4V.js → schedules-page-RHRHX7R7.js} +1 -1
  248. package/dist/dashboard-web/chunks/sessions-page-VSC6AM5G.js +2 -0
  249. package/dist/dashboard-web/chunks/settings-page-LF3RKM5P.js +2 -0
  250. package/dist/dashboard-web/chunks/{skills-page-7YT5TIX5.js → skills-page-SYOIGGXH.js} +1 -1
  251. package/dist/dashboard-web/chunks/{team-federation-page-NJZKTU7A.js → team-federation-page-RMBLASTW.js} +1 -1
  252. package/dist/dashboard-web/chunks/{v3-page-NQ73UA2Q.js → v3-page-XJXKKJRN.js} +1 -1
  253. package/dist/dashboard-web/chunks/{whiteboards-page-DSM3MDMN.js → whiteboards-page-K3YVSTHJ.js} +1 -1
  254. package/dist/dashboard-web/style.css +571 -3
  255. package/dist/dashboard.js +238 -9
  256. package/dist/dashboard.js.map +1 -1
  257. package/dist/global-config.d.ts +11 -0
  258. package/dist/global-config.d.ts.map +1 -1
  259. package/dist/global-config.js +27 -1
  260. package/dist/global-config.js.map +1 -1
  261. package/dist/i18n/en.d.ts.map +1 -1
  262. package/dist/i18n/en.js +6 -19
  263. package/dist/i18n/en.js.map +1 -1
  264. package/dist/i18n/zh.d.ts.map +1 -1
  265. package/dist/i18n/zh.js +6 -19
  266. package/dist/i18n/zh.js.map +1 -1
  267. package/dist/im/lark/card-builder.d.ts +1 -14
  268. package/dist/im/lark/card-builder.d.ts.map +1 -1
  269. package/dist/im/lark/card-builder.js +1 -35
  270. package/dist/im/lark/card-builder.js.map +1 -1
  271. package/dist/im/lark/card-handler.d.ts +10 -0
  272. package/dist/im/lark/card-handler.d.ts.map +1 -1
  273. package/dist/im/lark/card-handler.js +161 -44
  274. package/dist/im/lark/card-handler.js.map +1 -1
  275. package/dist/im/lark/client.d.ts +47 -0
  276. package/dist/im/lark/client.d.ts.map +1 -1
  277. package/dist/im/lark/client.js +127 -18
  278. package/dist/im/lark/client.js.map +1 -1
  279. package/dist/im/lark/event-dispatcher.d.ts +13 -0
  280. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  281. package/dist/im/lark/event-dispatcher.js +48 -3
  282. package/dist/im/lark/event-dispatcher.js.map +1 -1
  283. package/dist/im/lark/identity-cache.d.ts +25 -1
  284. package/dist/im/lark/identity-cache.d.ts.map +1 -1
  285. package/dist/im/lark/identity-cache.js +47 -1
  286. package/dist/im/lark/identity-cache.js.map +1 -1
  287. package/dist/im/lark/overload-nonce.d.ts +19 -0
  288. package/dist/im/lark/overload-nonce.d.ts.map +1 -0
  289. package/dist/im/lark/overload-nonce.js +72 -0
  290. package/dist/im/lark/overload-nonce.js.map +1 -0
  291. package/dist/im/lark/v3-progress-card.d.ts.map +1 -1
  292. package/dist/im/lark/v3-progress-card.js +5 -0
  293. package/dist/im/lark/v3-progress-card.js.map +1 -1
  294. package/dist/services/async-trigger-state.d.ts +82 -0
  295. package/dist/services/async-trigger-state.d.ts.map +1 -0
  296. package/dist/services/async-trigger-state.js +95 -0
  297. package/dist/services/async-trigger-state.js.map +1 -0
  298. package/dist/services/async-trigger-store.d.ts +28 -0
  299. package/dist/services/async-trigger-store.d.ts.map +1 -0
  300. package/dist/services/async-trigger-store.js +120 -0
  301. package/dist/services/async-trigger-store.js.map +1 -0
  302. package/dist/services/bot-config-store.d.ts.map +1 -1
  303. package/dist/services/bot-config-store.js +34 -2
  304. package/dist/services/bot-config-store.js.map +1 -1
  305. package/dist/services/bridge-fallback-gate.d.ts +32 -0
  306. package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
  307. package/dist/services/bridge-fallback-gate.js +39 -0
  308. package/dist/services/bridge-fallback-gate.js.map +1 -1
  309. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  310. package/dist/services/bridge-turn-queue.js +15 -1
  311. package/dist/services/bridge-turn-queue.js.map +1 -1
  312. package/dist/services/card-prefs-store.d.ts +4 -0
  313. package/dist/services/card-prefs-store.d.ts.map +1 -1
  314. package/dist/services/card-prefs-store.js +8 -0
  315. package/dist/services/card-prefs-store.js.map +1 -1
  316. package/dist/services/claude-transcript.d.ts +23 -0
  317. package/dist/services/claude-transcript.d.ts.map +1 -1
  318. package/dist/services/claude-transcript.js +33 -0
  319. package/dist/services/claude-transcript.js.map +1 -1
  320. package/dist/services/codex-app-runner-protocol.d.ts +61 -0
  321. package/dist/services/codex-app-runner-protocol.d.ts.map +1 -0
  322. package/dist/services/codex-app-runner-protocol.js +170 -0
  323. package/dist/services/codex-app-runner-protocol.js.map +1 -0
  324. package/dist/services/codex-app-turn-controller.d.ts +72 -0
  325. package/dist/services/codex-app-turn-controller.d.ts.map +1 -0
  326. package/dist/services/codex-app-turn-controller.js +524 -0
  327. package/dist/services/codex-app-turn-controller.js.map +1 -0
  328. package/dist/services/codex-runner-freshness.d.ts +39 -0
  329. package/dist/services/codex-runner-freshness.d.ts.map +1 -0
  330. package/dist/services/codex-runner-freshness.js +78 -0
  331. package/dist/services/codex-runner-freshness.js.map +1 -0
  332. package/dist/services/connector-store.d.ts +6 -0
  333. package/dist/services/connector-store.d.ts.map +1 -1
  334. package/dist/services/connector-store.js.map +1 -1
  335. package/dist/services/grant-store.d.ts.map +1 -1
  336. package/dist/services/grant-store.js +16 -0
  337. package/dist/services/grant-store.js.map +1 -1
  338. package/dist/services/hermes-transcript.d.ts +1 -0
  339. package/dist/services/hermes-transcript.d.ts.map +1 -1
  340. package/dist/services/hermes-transcript.js +49 -0
  341. package/dist/services/hermes-transcript.js.map +1 -1
  342. package/dist/services/sandbox-migration.d.ts +14 -0
  343. package/dist/services/sandbox-migration.d.ts.map +1 -0
  344. package/dist/services/sandbox-migration.js +85 -0
  345. package/dist/services/sandbox-migration.js.map +1 -0
  346. package/dist/services/sandbox-store.d.ts +28 -0
  347. package/dist/services/sandbox-store.d.ts.map +1 -1
  348. package/dist/services/sandbox-store.js +82 -0
  349. package/dist/services/sandbox-store.js.map +1 -1
  350. package/dist/services/schedule-split-migration.d.ts +2 -0
  351. package/dist/services/schedule-split-migration.d.ts.map +1 -0
  352. package/dist/services/schedule-split-migration.js +159 -0
  353. package/dist/services/schedule-split-migration.js.map +1 -0
  354. package/dist/services/schedule-store.d.ts +28 -4
  355. package/dist/services/schedule-store.d.ts.map +1 -1
  356. package/dist/services/schedule-store.js +118 -33
  357. package/dist/services/schedule-store.js.map +1 -1
  358. package/dist/services/trigger-types.d.ts +18 -1
  359. package/dist/services/trigger-types.d.ts.map +1 -1
  360. package/dist/services/trigger-types.js +3 -0
  361. package/dist/services/trigger-types.js.map +1 -1
  362. package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +1 -1
  363. package/dist/services/vc-meeting-consumer-profile-store.js +1 -0
  364. package/dist/services/vc-meeting-consumer-profile-store.js.map +1 -1
  365. package/dist/services/vc-meeting-consumer-profile-templates.d.ts +32 -0
  366. package/dist/services/vc-meeting-consumer-profile-templates.d.ts.map +1 -0
  367. package/dist/services/vc-meeting-consumer-profile-templates.js +106 -0
  368. package/dist/services/vc-meeting-consumer-profile-templates.js.map +1 -0
  369. package/dist/services/vc-meeting-delivery-feed.d.ts +1 -1
  370. package/dist/services/vc-meeting-delivery-feed.d.ts.map +1 -1
  371. package/dist/services/vc-meeting-delivery-feed.js +2 -1
  372. package/dist/services/vc-meeting-delivery-feed.js.map +1 -1
  373. package/dist/services/vc-meeting-delivery-hub-store.d.ts +3 -1
  374. package/dist/services/vc-meeting-delivery-hub-store.d.ts.map +1 -1
  375. package/dist/services/vc-meeting-delivery-hub-store.js +11 -0
  376. package/dist/services/vc-meeting-delivery-hub-store.js.map +1 -1
  377. package/dist/services/vc-meeting-delivery-protocol.d.ts +9 -2
  378. package/dist/services/vc-meeting-delivery-protocol.d.ts.map +1 -1
  379. package/dist/services/vc-meeting-delivery-protocol.js +10 -1
  380. package/dist/services/vc-meeting-delivery-protocol.js.map +1 -1
  381. package/dist/services/vc-meeting-delivery-receiver.d.ts.map +1 -1
  382. package/dist/services/vc-meeting-delivery-receiver.js +10 -1
  383. package/dist/services/vc-meeting-delivery-receiver.js.map +1 -1
  384. package/dist/services/vc-meeting-delivery-store.d.ts +12 -2
  385. package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -1
  386. package/dist/services/vc-meeting-delivery-store.js +14 -2
  387. package/dist/services/vc-meeting-delivery-store.js.map +1 -1
  388. package/dist/services/vc-meeting-im-reply.d.ts +2 -1
  389. package/dist/services/vc-meeting-im-reply.d.ts.map +1 -1
  390. package/dist/services/vc-meeting-im-reply.js +19 -3
  391. package/dist/services/vc-meeting-im-reply.js.map +1 -1
  392. package/dist/services/vc-meeting-listener-output-protocol.d.ts +27 -0
  393. package/dist/services/vc-meeting-listener-output-protocol.d.ts.map +1 -0
  394. package/dist/services/vc-meeting-listener-output-protocol.js +58 -0
  395. package/dist/services/vc-meeting-listener-output-protocol.js.map +1 -0
  396. package/dist/services/vc-meeting-listener-topic-store.d.ts +31 -0
  397. package/dist/services/vc-meeting-listener-topic-store.d.ts.map +1 -0
  398. package/dist/services/vc-meeting-listener-topic-store.js +120 -0
  399. package/dist/services/vc-meeting-listener-topic-store.js.map +1 -0
  400. package/dist/services/vc-meeting-runtime-store.d.ts +2 -1
  401. package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -1
  402. package/dist/services/vc-meeting-runtime-store.js +8 -0
  403. package/dist/services/vc-meeting-runtime-store.js.map +1 -1
  404. package/dist/services/vc-meeting-send-policy.d.ts +8 -1
  405. package/dist/services/vc-meeting-send-policy.d.ts.map +1 -1
  406. package/dist/services/vc-meeting-send-policy.js +8 -0
  407. package/dist/services/vc-meeting-send-policy.js.map +1 -1
  408. package/dist/types.d.ts +53 -4
  409. package/dist/types.d.ts.map +1 -1
  410. package/dist/utils/allowed-users-apply.d.ts +76 -0
  411. package/dist/utils/allowed-users-apply.d.ts.map +1 -0
  412. package/dist/utils/allowed-users-apply.js +123 -0
  413. package/dist/utils/allowed-users-apply.js.map +1 -0
  414. package/dist/utils/allowed-users-cache.d.ts +29 -0
  415. package/dist/utils/allowed-users-cache.d.ts.map +1 -0
  416. package/dist/utils/allowed-users-cache.js +82 -0
  417. package/dist/utils/allowed-users-cache.js.map +1 -0
  418. package/dist/utils/child-env.d.ts +4 -3
  419. package/dist/utils/child-env.d.ts.map +1 -1
  420. package/dist/utils/child-env.js +16 -1
  421. package/dist/utils/child-env.js.map +1 -1
  422. package/dist/utils/cli-usage-limit.d.ts +27 -1
  423. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  424. package/dist/utils/cli-usage-limit.js +92 -20
  425. package/dist/utils/cli-usage-limit.js.map +1 -1
  426. package/dist/utils/input-gate.d.ts +2 -0
  427. package/dist/utils/input-gate.d.ts.map +1 -1
  428. package/dist/utils/input-gate.js +2 -0
  429. package/dist/utils/input-gate.js.map +1 -1
  430. package/dist/utils/runtime-build-id.d.ts +21 -0
  431. package/dist/utils/runtime-build-id.d.ts.map +1 -0
  432. package/dist/utils/runtime-build-id.js +83 -0
  433. package/dist/utils/runtime-build-id.js.map +1 -0
  434. package/dist/utils/terminal-renderer.d.ts +3 -3
  435. package/dist/utils/terminal-renderer.js +3 -3
  436. package/dist/vc-agent/cards.d.ts.map +1 -1
  437. package/dist/vc-agent/cards.js +21 -1
  438. package/dist/vc-agent/cards.js.map +1 -1
  439. package/dist/worker.js +1010 -669
  440. package/dist/worker.js.map +1 -1
  441. package/dist/workflows/events/payloads.d.ts +56 -0
  442. package/dist/workflows/events/payloads.d.ts.map +1 -1
  443. package/dist/workflows/events/payloads.js +9 -0
  444. package/dist/workflows/events/payloads.js.map +1 -1
  445. package/dist/workflows/events/schema.d.ts +86 -0
  446. package/dist/workflows/events/schema.d.ts.map +1 -1
  447. package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
  448. package/dist/workflows/hostExecutors/botmux-schedule.js +13 -1
  449. package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
  450. package/dist/workflows/migration/v2-run-archive-schema.d.ts +20 -20
  451. package/dist/workflows/migration/v2-to-v3.d.ts.map +1 -1
  452. package/dist/workflows/migration/v2-to-v3.js +5 -1
  453. package/dist/workflows/migration/v2-to-v3.js.map +1 -1
  454. package/dist/workflows/shared/sandbox-policy.d.ts +10 -1
  455. package/dist/workflows/shared/sandbox-policy.d.ts.map +1 -1
  456. package/dist/workflows/shared/sandbox-policy.js +12 -0
  457. package/dist/workflows/shared/sandbox-policy.js.map +1 -1
  458. package/dist/workflows/v3/architect.d.ts.map +1 -1
  459. package/dist/workflows/v3/architect.js +1 -0
  460. package/dist/workflows/v3/architect.js.map +1 -1
  461. package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
  462. package/dist/workflows/v3/bot-resolve.js +36 -0
  463. package/dist/workflows/v3/bot-resolve.js.map +1 -1
  464. package/dist/workflows/v3/cli-run.d.ts +9 -0
  465. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  466. package/dist/workflows/v3/cli-run.js +17 -2
  467. package/dist/workflows/v3/cli-run.js.map +1 -1
  468. package/dist/workflows/v3/contract.d.ts +8 -0
  469. package/dist/workflows/v3/contract.d.ts.map +1 -1
  470. package/dist/workflows/v3/contract.js.map +1 -1
  471. package/dist/workflows/v3/goal-cli.d.ts +58 -0
  472. package/dist/workflows/v3/goal-cli.d.ts.map +1 -0
  473. package/dist/workflows/v3/goal-cli.js +430 -0
  474. package/dist/workflows/v3/goal-cli.js.map +1 -0
  475. package/dist/workflows/v3/library-materialize.d.ts.map +1 -1
  476. package/dist/workflows/v3/library-materialize.js +5 -1
  477. package/dist/workflows/v3/library-materialize.js.map +1 -1
  478. package/dist/workflows/v3/library-schema.d.ts +21 -0
  479. package/dist/workflows/v3/library-schema.d.ts.map +1 -1
  480. package/dist/workflows/v3/library-schema.js +95 -1
  481. package/dist/workflows/v3/library-schema.js.map +1 -1
  482. package/dist/workflows/v3/progress-projection.d.ts +3 -0
  483. package/dist/workflows/v3/progress-projection.d.ts.map +1 -1
  484. package/dist/workflows/v3/progress-projection.js +23 -1
  485. package/dist/workflows/v3/progress-projection.js.map +1 -1
  486. package/dist/workflows/v3/run-envelope.d.ts +46 -1
  487. package/dist/workflows/v3/run-envelope.d.ts.map +1 -1
  488. package/dist/workflows/v3/run-envelope.js +32 -1
  489. package/dist/workflows/v3/run-envelope.js.map +1 -1
  490. package/package.json +2 -2
  491. package/dist/dashboard-web/chunks/bot-defaults-page-O376WSER.js +0 -5
  492. package/dist/dashboard-web/chunks/chunk-H7P5UV4W.js +0 -49
  493. package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +0 -1
  494. package/dist/dashboard-web/chunks/connectors-page-IR54AOAI.js +0 -1
  495. package/dist/dashboard-web/chunks/overview-page-QJMI6NLW.js +0 -1
  496. package/dist/dashboard-web/chunks/sessions-page-KWLGBX6G.js +0 -3
  497. package/dist/dashboard-web/chunks/settings-page-TNZEPC7V.js +0 -2
  498. package/dist/services/sandbox-land.d.ts +0 -45
  499. package/dist/services/sandbox-land.d.ts.map +0 -1
  500. package/dist/services/sandbox-land.js +0 -394
  501. package/dist/services/sandbox-land.js.map +0 -1
  502. package/dist/utils/screen-analyzer.d.ts +0 -75
  503. package/dist/utils/screen-analyzer.d.ts.map +0 -1
  504. package/dist/utils/screen-analyzer.js +0 -333
  505. package/dist/utils/screen-analyzer.js.map +0 -1
@@ -0,0 +1,537 @@
1
+ /**
2
+ * Unified file-sandbox policy (FsPolicy) — the single source of truth for BOTH
3
+ * platform sandbox engines.
4
+ *
5
+ * Model (three-tier whitelist, per product decision 2026-07-16, design doc
6
+ * "botmux 文件沙盒重构方案"): every path gets one of three access levels —
7
+ * readWrite / readOnly / deny — and EVERYTHING NOT COVERED BY A RULE IS
8
+ * INACCESSIBLE (deny-by-default). Nested black/white lists are supported: the
9
+ * DEEPEST matching rule wins (longest-prefix), so `readOnly ~/Library` +
10
+ * `deny ~/Library/Keychains` and `deny bots/` + `readWrite bots/<self>` both
11
+ * work. This replaces the previous "read-everything + enumerated blocklist"
12
+ * model whose failure mode was silent secret exposure; here a missing baseline
13
+ * entry fails loud (CLI error), never silent.
14
+ *
15
+ * Architecture: this module is PURE (no fs / no spawn — fully unit-testable).
16
+ * buildFsPolicy(ctx) merges baseline preset + botmux-internal + adapter
17
+ * + user rules into one ordered rule list
18
+ * compileToSeatbelt(...) → macOS sandbox-exec profile text
19
+ * compileToBwrap(...) → Linux bwrap argv prefix
20
+ * Both engines resolve conflicts by "last emitted wins" (Seatbelt last-match /
21
+ * bwrap mount order), so emitting rules sorted shallow→deep yields
22
+ * longest-prefix-wins on BOTH platforms by construction — cross-platform
23
+ * parity needs no hand-synced rule lists.
24
+ *
25
+ * The worker resolves every impure input up front (realpath, existence
26
+ * filtering, sibling-free by design) and passes canonical absolute paths.
27
+ */
28
+ /** Normalize: require absolute, strip trailing slashes, reject `..` segments.
29
+ * Returns null for anything unusable (silently-dropped relative paths are a
30
+ * fail-open trap — callers log dropped entries). */
31
+ export function normalizeFsPath(p) {
32
+ if (!p || typeof p !== 'string')
33
+ return null;
34
+ const t = p.replace(/\/+$/, '') || '/';
35
+ if (!t.startsWith('/'))
36
+ return null;
37
+ if (t.split('/').includes('..'))
38
+ return null;
39
+ return t;
40
+ }
41
+ /** Path depth for emission ordering ('/' = 0, '/a' = 1, '/a/b' = 2 …). */
42
+ function pathDepth(p) {
43
+ if (p === '/')
44
+ return 0;
45
+ return p.split('/').length - 1;
46
+ }
47
+ /** Is `p` equal to or an ancestor of `child`? (both normalized) */
48
+ export function coversPath(p, child) {
49
+ if (p === child)
50
+ return true;
51
+ const prefix = p === '/' ? '/' : `${p}/`;
52
+ return child.startsWith(prefix);
53
+ }
54
+ const SOURCE_RANK = {
55
+ baseline: 0,
56
+ adapter: 1,
57
+ internal: 2,
58
+ user: 3,
59
+ mandatory: 4,
60
+ };
61
+ const RESTRICTIVENESS = { readWrite: 0, readOnly: 1, deny: 2 };
62
+ /**
63
+ * Merge candidate rules into the final ordered list:
64
+ * - normalize paths, drop unusable entries
65
+ * - dedupe same-path conflicts: higher source rank wins (user > internal >
66
+ * adapter > baseline); tie → the MORE RESTRICTIVE access wins (deny >
67
+ * readOnly > readWrite) so a duplicated entry can never widen access
68
+ * - sort shallow→deep (stable within a depth) — the emission order both
69
+ * compilers rely on for longest-prefix-wins
70
+ */
71
+ export function mergeFsRules(candidates) {
72
+ const byPath = new Map();
73
+ for (const c of candidates) {
74
+ const path = normalizeFsPath(c.path);
75
+ if (!path)
76
+ continue;
77
+ const rule = { path, access: c.access, source: c.source };
78
+ const prev = byPath.get(path);
79
+ if (!prev) {
80
+ byPath.set(path, rule);
81
+ continue;
82
+ }
83
+ const rankNew = SOURCE_RANK[rule.source], rankOld = SOURCE_RANK[prev.source];
84
+ if (rankNew > rankOld) {
85
+ byPath.set(path, rule);
86
+ continue;
87
+ }
88
+ if (rankNew === rankOld && RESTRICTIVENESS[rule.access] > RESTRICTIVENESS[prev.access]) {
89
+ byPath.set(path, rule);
90
+ }
91
+ }
92
+ return [...byPath.values()].sort((a, b) => pathDepth(a.path) - pathDepth(b.path) || (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
93
+ }
94
+ /**
95
+ * The effective access for `path` under `rules`: the DEEPEST rule whose path
96
+ * covers it; no match → 'none' (inaccessible). This one function IS the policy
97
+ * semantics — the dashboard path tester and the unit tests both call it, and
98
+ * both compilers are tested to agree with it.
99
+ */
100
+ export function accessForPath(rules, path) {
101
+ const p = normalizeFsPath(path);
102
+ if (!p)
103
+ return { access: 'none' };
104
+ let best;
105
+ for (const r of rules) {
106
+ if (!coversPath(r.path, p))
107
+ continue;
108
+ if (!best || pathDepth(r.path) > pathDepth(best.path))
109
+ best = r;
110
+ }
111
+ return best ? { access: best.access, rule: best } : { access: 'none' };
112
+ }
113
+ // ───────────────────────────── baseline presets ──────────────────────────────
114
+ /** Home-relative entries shared by both platforms. Existence-filtered by the
115
+ * worker before compiling (a missing path has nothing to protect or expose). */
116
+ function commonHomeBaseline(h) {
117
+ const ro = (p) => ({ path: p, access: 'readOnly', source: 'baseline' });
118
+ const rw = (p) => ({ path: p, access: 'readWrite', source: 'baseline' });
119
+ const deny = (p) => ({ path: p, access: 'deny', source: 'baseline' });
120
+ return [
121
+ // Shell/env init read by non-interactive subshells (the Bash tool sources
122
+ // .zshenv — botmux's lark-cli identity mapping lives there) + git identity.
123
+ ro(`${h}/.zshenv`), ro(`${h}/.zprofile`), ro(`${h}/.zshrc`),
124
+ ro(`${h}/.profile`), ro(`${h}/.bashrc`), ro(`${h}/.bash_profile`),
125
+ ro(`${h}/.gitconfig`), ro(`${h}/.config/git`), ro(`${h}/.gitignore_global`), ro(`${h}/.gitattributes`),
126
+ // Language toolchains / version managers / package caches commonly under
127
+ // $HOME (read+exec so python/perl/ruby/rust/go/node/java built or managed
128
+ // there just work — the deny-by-default read posture would otherwise hide a
129
+ // pyenv python or a cargo-built binary). READ-ONLY: the agent runs them, it
130
+ // doesn't need to mutate the toolchain. Credential files that live INSIDE a
131
+ // few of these (crates.io / rubygems / maven tokens) are re-denied DEEPER
132
+ // below so longest-prefix keeps them secret.
133
+ ro(`${h}/.fnm`), ro(`${h}/.nvm`), ro(`${h}/.volta`), ro(`${h}/.npm-global`),
134
+ ro(`${h}/.nodenv`), ro(`${h}/.yarn`), ro(`${h}/.pnpm`), ro(`${h}/.bun`), ro(`${h}/.deno`),
135
+ ro(`${h}/.pyenv`), ro(`${h}/Library/Python`), ro(`${h}/.local/lib`), ro(`${h}/.pipx`),
136
+ ro(`${h}/.rbenv`), ro(`${h}/.rvm`), ro(`${h}/.gem`), ro(`${h}/perl5`), ro(`${h}/.cpanm`), ro(`${h}/.cpan`),
137
+ ro(`${h}/.cargo`), ro(`${h}/.rustup`),
138
+ ro(`${h}/go`), ro(`${h}/.gvm`), ro(`${h}/.goenv`),
139
+ ro(`${h}/.sdkman`), ro(`${h}/.jenv`), ro(`${h}/.m2`), ro(`${h}/.gradle`),
140
+ ro(`${h}/.asdf`), ro(`${h}/.mise`), ro(`${h}/.plenv`),
141
+ ro(`${h}/.opam`), ro(`${h}/.ghcup`), ro(`${h}/.stack`), ro(`${h}/.nimble`), ro(`${h}/.pub-cache`),
142
+ ro(`${h}/.local/share`), ro(`${h}/.local/bin`),
143
+ // Toolchain credential files sitting inside the read-allowed dirs above —
144
+ // re-denied deeper (registry/publish tokens, maven server passwords).
145
+ deny(`${h}/.cargo/credentials`), deny(`${h}/.cargo/credentials.toml`),
146
+ deny(`${h}/.gem/credentials`),
147
+ deny(`${h}/.m2/settings.xml`), deny(`${h}/.m2/settings-security.xml`),
148
+ deny(`${h}/.gradle/gradle.properties`),
149
+ // Scratch/caches every CLI + spawned tool needs.
150
+ rw(`${h}/.cache`), rw(`${h}/.npm`), rw(`${h}/.local/state`),
151
+ // The daemon-written botmux wrapper (head of PATH) + skill plugin dir.
152
+ ro(`${h}/.botmux/bin`), ro(`${h}/.botmux/claude-plugin`),
153
+ // Crown jewels — most are already unreachable via deny-by-default; these
154
+ // explicit denies guard the ones that could fall under an allowed tree
155
+ // (workingDir = $HOME, a broad user readOnly, …). Defence-in-depth.
156
+ deny(`${h}/.ssh`), deny(`${h}/.aws`), deny(`${h}/.azure`), deny(`${h}/.gnupg`),
157
+ deny(`${h}/.netrc`), deny(`${h}/.config/gh`), deny(`${h}/.config/glab-cli`),
158
+ deny(`${h}/.config/gcloud`), deny(`${h}/.config/op`), deny(`${h}/.config/1Password`),
159
+ deny(`${h}/.1password`), deny(`${h}/.password-store`), deny(`${h}/.git-credentials`),
160
+ deny(`${h}/.npmrc`), deny(`${h}/.pypirc`), deny(`${h}/.docker/config.json`), deny(`${h}/.kube`),
161
+ deny(`${h}/.lark-cli`),
162
+ ];
163
+ }
164
+ function darwinBaseline(h) {
165
+ const ro = (p) => ({ path: p, access: 'readOnly', source: 'baseline' });
166
+ const rw = (p) => ({ path: p, access: 'readWrite', source: 'baseline' });
167
+ const deny = (p) => ({ path: p, access: 'deny', source: 'baseline' });
168
+ return [
169
+ ...commonHomeBaseline(h),
170
+ // System: dyld/frameworks/toolchain — broad readOnly + surgical deny holes.
171
+ ro('/System'), ro('/usr'), ro('/bin'), ro('/sbin'), ro('/Library'), ro('/opt'),
172
+ ro('/private/etc'),
173
+ ro('/private/var/select'), // /var/select/sh
174
+ ro('/private/var/db/timezone'),
175
+ ro('/private/var/run'), // resolv.conf
176
+ deny('/Library/Keychains'),
177
+ // Scratch: macOS per-user TMPDIR root + tmp family + devices.
178
+ rw('/dev'), rw('/private/tmp'), rw('/private/var/tmp'), rw('/private/var/folders'),
179
+ // ~/Library: CLIs need broad read (fonts/prefs/frameworks caches) and write
180
+ // into Caches + Application Support — with the secret stores denied DEEPER
181
+ // (longest-prefix beats the rw grant).
182
+ ro(`${h}/Library`),
183
+ rw(`${h}/Library/Caches`),
184
+ rw(`${h}/Library/Application Support`),
185
+ rw(`${h}/Library/Logs`),
186
+ deny(`${h}/Library/Keychains`),
187
+ // lark-cli's key store holds EVERY bot's app-secret ciphertext + master key
188
+ // (the known pre-refactor leak — see design doc §2.4). Deny the dir; the
189
+ // bot's OWN send path uses send-cred.json in BOT_HOME, not this store.
190
+ deny(`${h}/Library/Application Support/lark-cli`),
191
+ ];
192
+ }
193
+ function linuxBaseline(h) {
194
+ const ro = (p) => ({ path: p, access: 'readOnly', source: 'baseline' });
195
+ const rw = (p) => ({ path: p, access: 'readWrite', source: 'baseline' });
196
+ return [
197
+ ...commonHomeBaseline(h),
198
+ // Toolchain + config. /bin,/lib*… on usrmerge distros are symlinks — the
199
+ // bwrap compiler replicates them (see CompileBwrapOpts.symlinks); on
200
+ // non-usrmerge hosts the worker passes them as existing dirs instead.
201
+ ro('/usr'), ro('/etc'), ro('/opt'),
202
+ // /run is a fresh tmpfs (compiler primitive); fnm/nvm farms under /run are
203
+ // re-exposed via ctx.execPaths. /tmp,/dev/shm,/var/tmp fresh tmpfs; /dev,
204
+ // /proc via bwrap primitives — all emitted by the compiler, not rules.
205
+ rw(`${h}/.cache`), rw(`${h}/.npm`),
206
+ ];
207
+ }
208
+ // ───────────────────────────── policy assembly ───────────────────────────────
209
+ /**
210
+ * Build the unified FsPolicy: baseline preset (platform) + adapter-declared
211
+ * paths + botmux-internal injections + user sandboxPaths (highest precedence).
212
+ * Pure — the worker canonicalizes and existence-filters all ctx paths first.
213
+ */
214
+ export function buildFsPolicy(ctx) {
215
+ const candidates = [];
216
+ const push = (paths, access, source) => {
217
+ for (const p of paths ?? [])
218
+ candidates.push({ path: p, access, source });
219
+ };
220
+ candidates.push(...(ctx.platform === 'darwin' ? darwinBaseline(ctx.homeDir) : linuxBaseline(ctx.homeDir)));
221
+ // Adapter-declared surfaces.
222
+ push(ctx.execPaths, 'readOnly', 'adapter');
223
+ push(ctx.authPaths, 'readWrite', 'adapter');
224
+ if (!ctx.redirectedCliData)
225
+ push(ctx.cliDataPaths, 'readWrite', 'adapter');
226
+ // botmux internals.
227
+ push([ctx.workingDir, ctx.botHome], 'readWrite', 'internal');
228
+ push(ctx.outbox ? [ctx.outbox] : [], 'readWrite', 'internal');
229
+ push(ctx.extraWritePaths, 'readWrite', 'internal');
230
+ push(ctx.readonlyRoots, 'readOnly', 'internal');
231
+ // Own routing metadata (`botmux send` reply routing) — read-only.
232
+ push([`${ctx.sessionDataDir}/sessions-${ctx.currentAppId}.json`], 'readOnly', 'internal');
233
+ // Own upload bucket — readWRITE: `botmux quoted` / downloadResources writes the
234
+ // downloaded attachment under attachments/<self>/<messageId>/… (not just reads
235
+ // pre-uploaded files). The worker mkdirs it pre-spawn so it survives the
236
+ // existence-filter and gets bound rw. Siblings' buckets stay uncovered.
237
+ push([`${ctx.sessionDataDir}/attachments/${ctx.currentAppId}`], 'readWrite', 'internal');
238
+ // Own per-bot lark-cli config (agent-facing lark-cli identity).
239
+ push([`${ctx.homeDir}/.lark-cli-bots/${ctx.currentAppId}`], 'readWrite', 'internal');
240
+ // ── botmux CLI runtime surface (deny-by-default ALLOW-LIST) ──
241
+ // The agent runs `botmux …` and claude fires SessionStart / AskUserQuestion
242
+ // hooks that exec `node <install>/dist/cli.js …`. They need the install dir +
243
+ // a SMALL set of ~/.botmux files. We do NOT expose ~/.botmux wholesale: it
244
+ // holds live credentials (config.json's voice accessKey/secretKey/apiKey, .env,
245
+ // data/webhook-master.key + webhook-secrets.json) and other bots' private
246
+ // content (data/schedules.json prompts+routing, sibling sessions/identities/
247
+ // send-creds, connectors/federations/…). A readOnly umbrella + deny-list is
248
+ // the fragile "expose-then-blocklist" pattern this refactor exists to kill —
249
+ // and it fails OPEN for files created after spawn. So allow-list ONLY what the
250
+ // CLI/hooks genuinely read; everything else (incl. future files + all creds)
251
+ // stays denied by construction. (Verified against codex review 2026-07-16.)
252
+ const bh = ctx.botmuxHome, sd = ctx.sessionDataDir, app = ctx.currentAppId;
253
+ push(ctx.botmuxInstallRoot ? [ctx.botmuxInstallRoot] : [], 'readOnly', 'internal');
254
+ push([
255
+ `${bh}/.data-dir`, // resolves DATA_DIR location
256
+ `${bh}/.dashboard-port`, // dashboard port (owner term-link; harmless port int)
257
+ `${bh}/bin`, // the daemon-written `botmux` wrapper (head of PATH)
258
+ `${bh}/claude-plugin`, // skill/plugin dir (claude --plugin-dir); no secrets
259
+ `${bh}/lark-scopes.json`, // static scope catalog
260
+ `${sd}/dashboard-daemons`, // per-bot {ipcPort, resolvedAllowedUsers} — hook IPC discovery (operational, not secret)
261
+ `${sd}/bots-info.json`, // bot display names / avatars for <available_bots> + recipient rendering
262
+ `${sd}/bot-openids-${app}.json`, // OWN routing cross-ref (sibling ones stay denied)
263
+ // own sessions-<self>.json + attachments/<self> already pushed above (readOnly)
264
+ ], 'readOnly', 'internal');
265
+ // turn-sends: the CLI APPENDS its OWN dedup marker to
266
+ // `turn-sends/<sessionId>.jsonl` (write, not read). Grant the SINGLE file, not
267
+ // the whole directory: a directory-wide readWrite let session A rewrite
268
+ // session B's `<B>.jsonl` marker (corrupting B's send-dedup → dropped/duplicate
269
+ // replies). The exact-file grant confines each session to its own marker. The
270
+ // worker PRE-CREATES this file before spawn so it survives the existence
271
+ // filter and bwrap can bind it (bwrap cannot bind a nonexistent source).
272
+ if (ctx.sessionId)
273
+ push([`${sd}/turn-sends/${ctx.sessionId}.jsonl`], 'readWrite', 'internal');
274
+ // (schedules: stored PER BOT inside each BOT_HOME — the owner's dir is
275
+ // already readWrite above and siblings' stores are denied by construction,
276
+ // so the old shared data/schedules.json grant (and the cross-bot task-prompt
277
+ // exposure it had to accept) is gone. The RMW sibling lock lives in the same
278
+ // rw dir, so sandboxed `botmux schedule` mutations work on both platforms.)
279
+ // macOS lark-cli key store carve-out. The baseline DENIES the whole
280
+ // `~/Library/Application Support/lark-cli` dir (it holds EVERY bot's appsecret
281
+ // ciphertext + the master key — the pre-refactor cross-bot leak). But this bot
282
+ // needs its OWN appsecret + the master key to decrypt it and authenticate
283
+ // (verified: without these `lark-cli auth scopes` fails "keychain Get failed …
284
+ // operation not permitted"). Re-allow ONLY those two, read-only, at a DEEPER
285
+ // path than the deny so longest-prefix-wins. Siblings' `appsecret_*.enc` and
286
+ // user tokens stay denied → the master key alone can't decrypt what it can't
287
+ // read (verified: sibling ciphertext still DENIED). Linux keeps its keys in the
288
+ // per-bot `.lark-cli-bots/<self>` dir (already readWrite above), so this is
289
+ // darwin-only.
290
+ if (ctx.platform === 'darwin') {
291
+ const larkStore = `${ctx.homeDir}/Library/Application Support/lark-cli`;
292
+ push([`${larkStore}/master.key.file`, `${larkStore}/appsecret_${ctx.currentAppId}.enc`], 'readOnly', 'internal');
293
+ }
294
+ // User config — highest precedence.
295
+ push(ctx.userPaths?.readWrite, 'readWrite', 'user');
296
+ push(ctx.userPaths?.readOnly, 'readOnly', 'user');
297
+ push(ctx.userPaths?.deny, 'deny', 'user');
298
+ push(ctx.mandatoryDenyPaths, 'deny', 'mandatory');
299
+ push(ctx.mandatoryReadOnlyPaths, 'readOnly', 'mandatory');
300
+ return {
301
+ rules: mergeFsRules(candidates),
302
+ net: ctx.net !== false,
303
+ writeRegexes: [...(ctx.writeRegexes ?? [])],
304
+ denyRegexes: [...(ctx.mandatoryDenyRegexes ?? [])],
305
+ finalReadOnlyPaths: [...(ctx.mandatoryReadOnlyPaths ?? [])],
306
+ };
307
+ }
308
+ // ───────────────────────────── Seatbelt compiler ─────────────────────────────
309
+ function escSb(p) {
310
+ return p.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
311
+ }
312
+ function escSbRegex(r) {
313
+ return r.replace(/"/g, '.'); // a `"` would terminate the #"…" literal
314
+ }
315
+ /** Every strict ancestor of every non-deny rule path. Under read-deny-default,
316
+ * realpath()/stat of an intermediate dir fails and crashes CLIs that
317
+ * canonicalize their config dir — so each ancestor needs file-read-metadata
318
+ * (literal, NOT subpath: no listing/enumeration is granted). */
319
+ export function ancestorsNeedingTraverse(rules) {
320
+ const out = new Set();
321
+ for (const r of rules) {
322
+ if (r.access === 'deny')
323
+ continue;
324
+ let p = r.path;
325
+ for (;;) {
326
+ const parent = p === '/' ? null : p.slice(0, p.lastIndexOf('/')) || '/';
327
+ if (!parent)
328
+ break;
329
+ out.add(parent);
330
+ if (parent === '/')
331
+ break;
332
+ p = parent;
333
+ }
334
+ }
335
+ return [...out].sort((a, b) => pathDepth(a) - pathDepth(b) || (a < b ? -1 : 1));
336
+ }
337
+ /** Apple's stock base profile — sets up the process-bootstrap file reads
338
+ * (dyld shared cache, sysctl-backed system paths, mach services) that a raw
339
+ * `(deny file-read* (subpath "/"))` would block, aborting the process before
340
+ * main(). Empirically required: with a blanket read-deny even `/usr/bin/true`
341
+ * SIGABRTs at dyld; importing this base fixes bootstrap WITHOUT opening the
342
+ * disk (verified: /etc/hosts and $HOME stay denied under it). */
343
+ const SEATBELT_BASE_PROFILE = '/System/Library/Sandbox/Profiles/bsd.sb';
344
+ /**
345
+ * Compile the policy to a macOS Seatbelt profile. `(deny default)` + Apple's
346
+ * bsd.sb base makes it deny-by-default for BOTH files and other operations,
347
+ * then we re-allow the non-file operation classes the CLI needs (process/mach/
348
+ * ipc/sysctl/signal, network gated on policy.net) and the three file tiers
349
+ * emitted shallow→deep (Seatbelt applies the LAST matching rule → deepest rule
350
+ * wins, matching accessForPath()).
351
+ */
352
+ export function compileToSeatbelt(policy) {
353
+ const lines = [
354
+ '(version 1)',
355
+ '(deny default)',
356
+ `(import "${SEATBELT_BASE_PROFILE}")`,
357
+ // Non-file operation classes. `(allow default)` used to grant these wholesale;
358
+ // under `(deny default)` we re-grant exactly what a CLI + its subprocesses need.
359
+ '(allow process*)',
360
+ '(allow signal)',
361
+ '(allow mach*)',
362
+ '(allow ipc*)',
363
+ '(allow sysctl*)',
364
+ '(allow file-ioctl)',
365
+ ...(policy.net ? ['(allow network*)', '(allow system-socket)'] : []),
366
+ ];
367
+ for (const r of policy.rules) {
368
+ const p = escSb(r.path);
369
+ if (r.access === 'deny') {
370
+ lines.push(`(deny file-read* (subpath "${p}"))`);
371
+ lines.push(`(deny file-write* (subpath "${p}"))`);
372
+ }
373
+ else {
374
+ lines.push(`(allow file-read* (subpath "${p}"))`);
375
+ if (r.access === 'readWrite')
376
+ lines.push(`(allow file-write* (subpath "${p}"))`);
377
+ else
378
+ lines.push(`(deny file-write* (subpath "${p}"))`); // re-assert: deeper ro inside a rw tree must drop write
379
+ }
380
+ }
381
+ // Traversal metadata for ancestors of every allowed path — emitted AFTER the
382
+ // rules so a broad deny cannot clobber the narrow literal grants a nested
383
+ // allow needs (deny ~/x + readWrite ~/x/y: realpath must stat ~/x). Literal
384
+ // (not subpath): grants stat/readlink of the dir itself, never listing.
385
+ for (const p of ancestorsNeedingTraverse(policy.rules)) {
386
+ lines.push(`(allow file-read-metadata (literal "${escSb(p)}"))`);
387
+ }
388
+ for (const re of policy.writeRegexes) {
389
+ lines.push(`(allow file-write* (regex #"${escSbRegex(re)}"))`);
390
+ }
391
+ for (const re of policy.denyRegexes ?? []) {
392
+ lines.push(`(deny file-read* (regex #"${escSbRegex(re)}"))`);
393
+ lines.push(`(deny file-write* (regex #"${escSbRegex(re)}"))`);
394
+ }
395
+ for (const path of policy.finalReadOnlyPaths ?? []) {
396
+ lines.push(`(allow file-read* (subpath "${escSb(path)}"))`);
397
+ lines.push(`(deny file-write* (subpath "${escSb(path)}"))`);
398
+ }
399
+ return lines.join('\n') + '\n';
400
+ }
401
+ /**
402
+ * Compile the policy to a bwrap argv prefix. Deny-by-default is bwrap's
403
+ * natural shape: a fresh tmpfs root, then ONLY the rule paths are bound in
404
+ * (later mounts win → emitting shallow→deep gives deepest-rule-wins, matching
405
+ * accessForPath()). deny rules materialize as READ-ONLY, UNREADABLE empty
406
+ * masks (mode-000 empty-dir ro-bind for dirs, mode-000 empty-file ro-bind for
407
+ * files) and are emitted whenever they sit under an exposed tree — outside it
408
+ * they're unreachable already (deny-by-default), and bwrap would fail mounting
409
+ * onto a void path.
410
+ *
411
+ * Two properties this must preserve (both cost real blockers in review):
412
+ * 1. The mask is `--ro-bind` of an EMPTY source, NOT `--tmpfs`: a `--tmpfs
413
+ * <deny>` mount is WRITABLE inside the sandbox, so it hid the real contents
414
+ * but still let the CLI write into the denied path — not a real deny.
415
+ * 2. A deny path is masked EVEN WHEN IT DOES NOT EXIST YET. Skipping absent
416
+ * denies left the path inside the read-write parent bind, so the sandbox
417
+ * could `mkdir`+write it straight onto the host, and anything the host
418
+ * created there mid-session became readable (a stat→exec TOCTOU). The
419
+ * worker pre-creates the mountpoint on the host so the mask always binds.
420
+ */
421
+ export function compileToBwrap(policy, opts) {
422
+ const a = [];
423
+ const emptyFiles = [];
424
+ const maskMounts = [];
425
+ a.push('--tmpfs', '/');
426
+ a.push('--proc', '/proc', '--dev', '/dev');
427
+ a.push('--tmpfs', '/tmp', '--tmpfs', '/run', '--tmpfs', '/var/tmp', '--tmpfs', '/dev/shm');
428
+ for (const s of opts.symlinks ?? [])
429
+ a.push('--symlink', s.target, s.path);
430
+ const exposed = []; // non-deny paths emitted so far (for deny reachability)
431
+ const remountRo = []; // deny tmpfs masks to re-seal read-only after nested binds
432
+ let emptyIdx = 0;
433
+ for (const r of policy.rules) {
434
+ if (r.access === 'deny') {
435
+ if (!exposed.some(e => coversPath(e, r.path)))
436
+ continue; // unreachable → already denied by default
437
+ // Does a DEEPER allow (white-in-black carve-out) live under this deny?
438
+ // e.g. readWrite /proj → deny /proj/x → readWrite /proj/x/self. If so the
439
+ // mask must be able to HOST a child submount — a mode-000 read-only bind
440
+ // can't (bwrap: "Can't mkdir …/self: Read-only file system"). Use a fresh
441
+ // `--tmpfs` mask (hides the real contents, accepts the nested bind) and
442
+ // re-seal it read-only with `--remount-ro` AFTER the nested binds are
443
+ // emitted. tmpfs writes are in-memory and NEVER touch the host; the mask
444
+ // is listable only for the carve-out's own path (inherent to white-in-black).
445
+ const hasNestedAllow = policy.rules.some(o => o.access !== 'deny' && o.path !== r.path && coversPath(r.path, o.path));
446
+ // A deny is REDUNDANT only when the NEAREST enclosing rule is ALSO a deny:
447
+ // then this path is already masked by that ancestor and emitting a deeper
448
+ // mask would (a) add nothing and (b) fail to mount onto the ancestor's
449
+ // mode-000 read-only mask. Redundancy MUST be judged by the deepest strict
450
+ // ancestor rule — NOT "any ancestor deny exists" — because an allow can
451
+ // re-expose the tree between the two denies (deny /outer → allow
452
+ // /outer/self → deny /outer/self/secret): there the nearest ancestor of
453
+ // `secret` is the `self` ALLOW, so `secret` is a real leaf deny that MUST
454
+ // be masked (skipping it leaks the secret). Find the deepest exposed strict
455
+ // ancestor and skip only when it denies.
456
+ let nearestAncestor;
457
+ for (const o of policy.rules) {
458
+ if (o.path === r.path || !coversPath(o.path, r.path))
459
+ continue; // strict ancestor only
460
+ if (o.access !== 'deny' && !exposed.includes(o.path))
461
+ continue; // allow ancestor must be emitted to count
462
+ if (o.access === 'deny' && !exposed.some(e => coversPath(e, o.path)))
463
+ continue; // deny ancestor must be reachable
464
+ if (!nearestAncestor || pathDepth(o.path) > pathDepth(nearestAncestor.path))
465
+ nearestAncestor = o;
466
+ }
467
+ const shadowedByDeny = !hasNestedAllow && nearestAncestor?.access === 'deny';
468
+ if (shadowedByDeny)
469
+ continue;
470
+ if (hasNestedAllow) {
471
+ a.push('--tmpfs', r.path);
472
+ remountRo.push(r.path);
473
+ maskMounts.push({ path: r.path, kind: 'dir' });
474
+ }
475
+ else if (opts.filePaths?.has(r.path)) {
476
+ // FILE-shaped leaf deny: ro-bind a mode-000 empty placeholder file
477
+ // (unreadable + read-only).
478
+ const empty = `${opts.emptiesDir}/mask-${emptyIdx++}`;
479
+ emptyFiles.push({ path: empty, maskedPath: r.path });
480
+ a.push('--ro-bind', empty, r.path);
481
+ maskMounts.push({ path: r.path, kind: 'file' });
482
+ }
483
+ else {
484
+ // DIRECTORY-shaped leaf deny (existing dir OR not-yet-existing path):
485
+ // ro-bind the shared mode-000 empty dir → contents hidden, mount
486
+ // read-only, and the mask itself unreadable (a real deny, not a
487
+ // writable/listable tmpfs).
488
+ a.push('--ro-bind', opts.emptyDir, r.path);
489
+ maskMounts.push({ path: r.path, kind: 'dir' });
490
+ }
491
+ continue;
492
+ }
493
+ a.push(r.access === 'readWrite' ? '--bind' : '--ro-bind', r.path, r.path);
494
+ exposed.push(r.path);
495
+ }
496
+ // Re-seal white-in-black deny masks read-only AFTER their nested carve-out
497
+ // binds were emitted (a --remount-ro before the child bind would block the
498
+ // mkdir; after it, the child submount keeps its own writability while the
499
+ // tmpfs parent becomes unwritable).
500
+ for (const p of remountRo)
501
+ a.push('--remount-ro', p);
502
+ a.push('--unshare-user', '--unshare-pid', '--unshare-ipc', '--unshare-uts', '--unshare-cgroup-try');
503
+ if (!policy.net)
504
+ a.push('--unshare-net');
505
+ a.push('--die-with-parent', '--new-session', '--chdir', opts.chdir);
506
+ return { args: a, emptyFiles, maskMounts };
507
+ }
508
+ /**
509
+ * old→new field mapping (lossless: the old fields' expressiveness is a subset
510
+ * of the three-tier model). Used by the registry's load-time auto-migration,
511
+ * which writes the NEW fields while KEEPING the old ones in bots.json — a
512
+ * downgraded daemon reads the untouched old fields, so downgrade needs no
513
+ * reverse script (design doc §6.2). Returns null when nothing to migrate.
514
+ */
515
+ export function migrateLegacySandboxFields(entry) {
516
+ if (entry.sandboxPaths !== undefined)
517
+ return null; // already on the new model
518
+ const hasLegacy = entry.readIsolation === true
519
+ || (entry.sandboxReadonlyPaths?.length ?? 0) > 0
520
+ || (entry.sandboxHidePaths?.length ?? 0) > 0
521
+ || (entry.readDenyExtraPaths?.length ?? 0) > 0;
522
+ const sandbox = entry.sandbox === true || entry.readIsolation === true;
523
+ if (!hasLegacy)
524
+ return null; // plain `sandbox: true` needs no path migration
525
+ const readOnly = [...(entry.sandboxReadonlyPaths ?? [])];
526
+ const deny = [...(entry.sandboxHidePaths ?? []), ...(entry.readDenyExtraPaths ?? [])];
527
+ const sandboxPaths = {};
528
+ if (readOnly.length)
529
+ sandboxPaths.readOnly = readOnly;
530
+ if (deny.length)
531
+ sandboxPaths.deny = [...new Set(deny)];
532
+ return {
533
+ sandbox,
534
+ ...(readOnly.length || deny.length ? { sandboxPaths } : {}),
535
+ };
536
+ }
537
+ //# sourceMappingURL=fs-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-policy.js","sourceRoot":"","sources":["../../../src/adapters/cli/fs-policy.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,8 @@ import type { CliAdapter } from './types.js';
67
67
  *
68
68
  * ## Sandbox
69
69
  * `authPaths: [$GROK_HOME]` (directory) — grok keeps SQLite DBs there
70
- * (session_search.sqlite, worktrees.db) which fail under overlayfs fcntl
70
+ * (session_search.sqlite, worktrees.db); under the deny-by-default file sandbox
71
+ * a path not in authPaths doesn't exist, so they'd be unreachable / lack fcntl
71
72
  * locks.
72
73
  */
73
74
  export declare function createGrokAdapter(pathOverride?: string): CliAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/grok.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAoBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CA8OnE;AAED,eAAO,MAAM,MAAM,0BAAoB,CAAC"}
1
+ {"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/grok.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAoBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CA8OnE;AAED,eAAO,MAAM,MAAM,0BAAoB,CAAC"}
@@ -76,7 +76,8 @@ import { whiteboardEnabled } from '../../services/whiteboard-store.js';
76
76
  *
77
77
  * ## Sandbox
78
78
  * `authPaths: [$GROK_HOME]` (directory) — grok keeps SQLite DBs there
79
- * (session_search.sqlite, worktrees.db) which fail under overlayfs fcntl
79
+ * (session_search.sqlite, worktrees.db); under the deny-by-default file sandbox
80
+ * a path not in authPaths doesn't exist, so they'd be unreachable / lack fcntl
80
81
  * locks.
81
82
  */
82
83
  export function createGrokAdapter(pathOverride) {
@@ -1 +1 @@
1
- {"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../src/adapters/cli/grok.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../src/adapters/cli/grok.ts"],"names":[],"mappings":"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"}