botmux 2.66.0-canary.0 → 2.66.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 (386) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/adapters/backend/sandbox.d.ts +193 -0
  4. package/dist/adapters/backend/sandbox.d.ts.map +1 -0
  5. package/dist/adapters/backend/sandbox.js +621 -0
  6. package/dist/adapters/backend/sandbox.js.map +1 -0
  7. package/dist/adapters/backend/types.d.ts +8 -0
  8. package/dist/adapters/backend/types.d.ts.map +1 -1
  9. package/dist/adapters/backend/types.js.map +1 -1
  10. package/dist/adapters/backend/zellij-observe-backend.d.ts +5 -0
  11. package/dist/adapters/backend/zellij-observe-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/zellij-observe-backend.js +7 -0
  13. package/dist/adapters/backend/zellij-observe-backend.js.map +1 -1
  14. package/dist/adapters/cli/aiden.d.ts.map +1 -1
  15. package/dist/adapters/cli/aiden.js +1 -3
  16. package/dist/adapters/cli/aiden.js.map +1 -1
  17. package/dist/adapters/cli/antigravity.d.ts.map +1 -1
  18. package/dist/adapters/cli/antigravity.js +2 -4
  19. package/dist/adapters/cli/antigravity.js.map +1 -1
  20. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  21. package/dist/adapters/cli/claude-code.js +7 -11
  22. package/dist/adapters/cli/claude-code.js.map +1 -1
  23. package/dist/adapters/cli/coco.d.ts.map +1 -1
  24. package/dist/adapters/cli/coco.js +12 -4
  25. package/dist/adapters/cli/coco.js.map +1 -1
  26. package/dist/adapters/cli/codex.d.ts.map +1 -1
  27. package/dist/adapters/cli/codex.js +2 -4
  28. package/dist/adapters/cli/codex.js.map +1 -1
  29. package/dist/adapters/cli/copilot.d.ts.map +1 -1
  30. package/dist/adapters/cli/copilot.js +1 -3
  31. package/dist/adapters/cli/copilot.js.map +1 -1
  32. package/dist/adapters/cli/cursor.d.ts.map +1 -1
  33. package/dist/adapters/cli/cursor.js +1 -3
  34. package/dist/adapters/cli/cursor.js.map +1 -1
  35. package/dist/adapters/cli/gemini.d.ts.map +1 -1
  36. package/dist/adapters/cli/gemini.js +1 -3
  37. package/dist/adapters/cli/gemini.js.map +1 -1
  38. package/dist/adapters/cli/hermes.d.ts.map +1 -1
  39. package/dist/adapters/cli/hermes.js +1 -3
  40. package/dist/adapters/cli/hermes.js.map +1 -1
  41. package/dist/adapters/cli/mtr.d.ts.map +1 -1
  42. package/dist/adapters/cli/mtr.js +1 -3
  43. package/dist/adapters/cli/mtr.js.map +1 -1
  44. package/dist/adapters/cli/oh-my-pi.d.ts +5 -0
  45. package/dist/adapters/cli/oh-my-pi.d.ts.map +1 -0
  46. package/dist/adapters/cli/oh-my-pi.js +55 -0
  47. package/dist/adapters/cli/oh-my-pi.js.map +1 -0
  48. package/dist/adapters/cli/opencode.d.ts.map +1 -1
  49. package/dist/adapters/cli/opencode.js +1 -3
  50. package/dist/adapters/cli/opencode.js.map +1 -1
  51. package/dist/adapters/cli/pi.d.ts.map +1 -1
  52. package/dist/adapters/cli/pi.js +1 -3
  53. package/dist/adapters/cli/pi.js.map +1 -1
  54. package/dist/adapters/cli/registry.d.ts +2 -1
  55. package/dist/adapters/cli/registry.d.ts.map +1 -1
  56. package/dist/adapters/cli/registry.js +3 -1
  57. package/dist/adapters/cli/registry.js.map +1 -1
  58. package/dist/adapters/cli/traex.d.ts.map +1 -1
  59. package/dist/adapters/cli/traex.js +1 -3
  60. package/dist/adapters/cli/traex.js.map +1 -1
  61. package/dist/adapters/cli/types.d.ts +8 -2
  62. package/dist/adapters/cli/types.d.ts.map +1 -1
  63. package/dist/adapters/coco-ask-plugin.d.ts +25 -0
  64. package/dist/adapters/coco-ask-plugin.d.ts.map +1 -0
  65. package/dist/adapters/coco-ask-plugin.js +71 -0
  66. package/dist/adapters/coco-ask-plugin.js.map +1 -0
  67. package/dist/bot-registry.d.ts +16 -1
  68. package/dist/bot-registry.d.ts.map +1 -1
  69. package/dist/bot-registry.js +4 -0
  70. package/dist/bot-registry.js.map +1 -1
  71. package/dist/cli/send-dispatch.d.ts +22 -0
  72. package/dist/cli/send-dispatch.d.ts.map +1 -1
  73. package/dist/cli/send-dispatch.js +40 -0
  74. package/dist/cli/send-dispatch.js.map +1 -1
  75. package/dist/cli/workflow.d.ts.map +1 -1
  76. package/dist/cli/workflow.js +4 -11
  77. package/dist/cli/workflow.js.map +1 -1
  78. package/dist/cli.d.ts.map +1 -1
  79. package/dist/cli.js +224 -155
  80. package/dist/cli.js.map +1 -1
  81. package/dist/core/ask-hook/coco.d.ts +22 -0
  82. package/dist/core/ask-hook/coco.d.ts.map +1 -0
  83. package/dist/core/ask-hook/coco.js +35 -0
  84. package/dist/core/ask-hook/coco.js.map +1 -0
  85. package/dist/core/ask-hook/registry.d.ts.map +1 -1
  86. package/dist/core/ask-hook/registry.js +6 -0
  87. package/dist/core/ask-hook/registry.js.map +1 -1
  88. package/dist/core/coco-picker-keys.d.ts +31 -0
  89. package/dist/core/coco-picker-keys.d.ts.map +1 -0
  90. package/dist/core/coco-picker-keys.js +60 -0
  91. package/dist/core/coco-picker-keys.js.map +1 -0
  92. package/dist/core/command-discovery.d.ts +9 -0
  93. package/dist/core/command-discovery.d.ts.map +1 -1
  94. package/dist/core/command-discovery.js +74 -14
  95. package/dist/core/command-discovery.js.map +1 -1
  96. package/dist/core/command-handler.d.ts.map +1 -1
  97. package/dist/core/command-handler.js +114 -61
  98. package/dist/core/command-handler.js.map +1 -1
  99. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  100. package/dist/core/dashboard-ipc-server.js +101 -2
  101. package/dist/core/dashboard-ipc-server.js.map +1 -1
  102. package/dist/core/dashboard-rows.d.ts +10 -0
  103. package/dist/core/dashboard-rows.d.ts.map +1 -1
  104. package/dist/core/dashboard-rows.js +3 -0
  105. package/dist/core/dashboard-rows.js.map +1 -1
  106. package/dist/core/inflight-input-tracker.d.ts +46 -0
  107. package/dist/core/inflight-input-tracker.d.ts.map +1 -0
  108. package/dist/core/inflight-input-tracker.js +54 -0
  109. package/dist/core/inflight-input-tracker.js.map +1 -0
  110. package/dist/core/restart-report.d.ts +3 -2
  111. package/dist/core/restart-report.d.ts.map +1 -1
  112. package/dist/core/restart-report.js +17 -12
  113. package/dist/core/restart-report.js.map +1 -1
  114. package/dist/core/session-activity.d.ts +1 -0
  115. package/dist/core/session-activity.d.ts.map +1 -1
  116. package/dist/core/session-activity.js +12 -0
  117. package/dist/core/session-activity.js.map +1 -1
  118. package/dist/core/session-discovery.d.ts.map +1 -1
  119. package/dist/core/session-discovery.js +1 -0
  120. package/dist/core/session-discovery.js.map +1 -1
  121. package/dist/core/session-manager.js +8 -8
  122. package/dist/core/session-manager.js.map +1 -1
  123. package/dist/core/trigger-session.js +2 -2
  124. package/dist/core/trigger-session.js.map +1 -1
  125. package/dist/core/types.d.ts +13 -0
  126. package/dist/core/types.d.ts.map +1 -1
  127. package/dist/core/types.js.map +1 -1
  128. package/dist/core/worker-pool.d.ts +32 -8
  129. package/dist/core/worker-pool.d.ts.map +1 -1
  130. package/dist/core/worker-pool.js +117 -34
  131. package/dist/core/worker-pool.js.map +1 -1
  132. package/dist/daemon.d.ts +4 -0
  133. package/dist/daemon.d.ts.map +1 -1
  134. package/dist/daemon.js +163 -289
  135. package/dist/daemon.js.map +1 -1
  136. package/dist/dashboard/auth.d.ts.map +1 -1
  137. package/dist/dashboard/auth.js +1 -7
  138. package/dist/dashboard/auth.js.map +1 -1
  139. package/dist/dashboard/web/app.d.ts.map +1 -1
  140. package/dist/dashboard/web/app.js +33 -8
  141. package/dist/dashboard/web/app.js.map +1 -1
  142. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  143. package/dist/dashboard/web/bot-defaults.js +65 -0
  144. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  145. package/dist/dashboard/web/connectors.js +66 -66
  146. package/dist/dashboard/web/connectors.js.map +1 -1
  147. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  148. package/dist/dashboard/web/i18n.js +386 -2
  149. package/dist/dashboard/web/i18n.js.map +1 -1
  150. package/dist/dashboard/web/overview.d.ts.map +1 -1
  151. package/dist/dashboard/web/overview.js +4 -4
  152. package/dist/dashboard/web/overview.js.map +1 -1
  153. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  154. package/dist/dashboard/web/sessions.js +72 -9
  155. package/dist/dashboard/web/sessions.js.map +1 -1
  156. package/dist/dashboard/web/team-federation.d.ts.map +1 -1
  157. package/dist/dashboard/web/team-federation.js +131 -130
  158. package/dist/dashboard/web/team-federation.js.map +1 -1
  159. package/dist/dashboard/web/ui.d.ts +1 -0
  160. package/dist/dashboard/web/ui.d.ts.map +1 -1
  161. package/dist/dashboard/web/ui.js +11 -0
  162. package/dist/dashboard/web/ui.js.map +1 -1
  163. package/dist/dashboard-web/app.js +642 -802
  164. package/dist/dashboard-web/index.html +1 -2
  165. package/dist/dashboard-web/style.css +6 -227
  166. package/dist/dashboard.js +61 -9
  167. package/dist/dashboard.js.map +1 -1
  168. package/dist/i18n/en.d.ts.map +1 -1
  169. package/dist/i18n/en.js +137 -5
  170. package/dist/i18n/en.js.map +1 -1
  171. package/dist/i18n/zh.d.ts.map +1 -1
  172. package/dist/i18n/zh.js +137 -5
  173. package/dist/i18n/zh.js.map +1 -1
  174. package/dist/im/lark/ask-card.d.ts.map +1 -1
  175. package/dist/im/lark/ask-card.js +40 -35
  176. package/dist/im/lark/ask-card.js.map +1 -1
  177. package/dist/im/lark/card-builder.d.ts +27 -2
  178. package/dist/im/lark/card-builder.d.ts.map +1 -1
  179. package/dist/im/lark/card-builder.js +64 -10
  180. package/dist/im/lark/card-builder.js.map +1 -1
  181. package/dist/im/lark/card-handler.d.ts +0 -12
  182. package/dist/im/lark/card-handler.d.ts.map +1 -1
  183. package/dist/im/lark/card-handler.js +84 -54
  184. package/dist/im/lark/card-handler.js.map +1 -1
  185. package/dist/im/lark/client.d.ts.map +1 -1
  186. package/dist/im/lark/client.js +5 -2
  187. package/dist/im/lark/client.js.map +1 -1
  188. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  189. package/dist/im/lark/event-dispatcher.js +7 -4
  190. package/dist/im/lark/event-dispatcher.js.map +1 -1
  191. package/dist/im/lark/grant-pending.d.ts +1 -0
  192. package/dist/im/lark/grant-pending.d.ts.map +1 -1
  193. package/dist/im/lark/grant-pending.js +36 -4
  194. package/dist/im/lark/grant-pending.js.map +1 -1
  195. package/dist/im/lark/md-card.d.ts +3 -1
  196. package/dist/im/lark/md-card.d.ts.map +1 -1
  197. package/dist/im/lark/md-card.js +7 -6
  198. package/dist/im/lark/md-card.js.map +1 -1
  199. package/dist/im/lark/quote-hint.d.ts +2 -1
  200. package/dist/im/lark/quote-hint.d.ts.map +1 -1
  201. package/dist/im/lark/quote-hint.js +3 -2
  202. package/dist/im/lark/quote-hint.js.map +1 -1
  203. package/dist/im/lark/relay-target-routing.d.ts +17 -0
  204. package/dist/im/lark/relay-target-routing.d.ts.map +1 -0
  205. package/dist/im/lark/relay-target-routing.js +68 -0
  206. package/dist/im/lark/relay-target-routing.js.map +1 -0
  207. package/dist/im/lark/workflow-card-handler.d.ts +2 -1
  208. package/dist/im/lark/workflow-card-handler.d.ts.map +1 -1
  209. package/dist/im/lark/workflow-card-handler.js +4 -4
  210. package/dist/im/lark/workflow-card-handler.js.map +1 -1
  211. package/dist/im/lark/workflow-cards.d.ts +2 -1
  212. package/dist/im/lark/workflow-cards.d.ts.map +1 -1
  213. package/dist/im/lark/workflow-cards.js +27 -26
  214. package/dist/im/lark/workflow-cards.js.map +1 -1
  215. package/dist/im/lark/workflow-progress-card.d.ts +6 -1
  216. package/dist/im/lark/workflow-progress-card.d.ts.map +1 -1
  217. package/dist/im/lark/workflow-progress-card.js +24 -20
  218. package/dist/im/lark/workflow-progress-card.js.map +1 -1
  219. package/dist/im/lark/workflow-slash-command.d.ts +2 -29
  220. package/dist/im/lark/workflow-slash-command.d.ts.map +1 -1
  221. package/dist/im/lark/workflow-slash-command.js +25 -77
  222. package/dist/im/lark/workflow-slash-command.js.map +1 -1
  223. package/dist/services/relay-picker.d.ts +6 -1
  224. package/dist/services/relay-picker.d.ts.map +1 -1
  225. package/dist/services/relay-picker.js +8 -2
  226. package/dist/services/relay-picker.js.map +1 -1
  227. package/dist/services/sandbox-land.d.ts +45 -0
  228. package/dist/services/sandbox-land.d.ts.map +1 -0
  229. package/dist/services/sandbox-land.js +382 -0
  230. package/dist/services/sandbox-land.js.map +1 -0
  231. package/dist/services/sandbox-store.d.ts +10 -0
  232. package/dist/services/sandbox-store.d.ts.map +1 -0
  233. package/dist/services/sandbox-store.js +40 -0
  234. package/dist/services/sandbox-store.js.map +1 -0
  235. package/dist/services/send-policy.d.ts +39 -0
  236. package/dist/services/send-policy.d.ts.map +1 -1
  237. package/dist/services/send-policy.js +43 -0
  238. package/dist/services/send-policy.js.map +1 -1
  239. package/dist/services/session-store.d.ts.map +1 -1
  240. package/dist/services/session-store.js +16 -6
  241. package/dist/services/session-store.js.map +1 -1
  242. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  243. package/dist/setup/bot-config-editor.js +3 -1
  244. package/dist/setup/bot-config-editor.js.map +1 -1
  245. package/dist/skills/definitions.d.ts.map +1 -1
  246. package/dist/skills/definitions.js +26 -209
  247. package/dist/skills/definitions.js.map +1 -1
  248. package/dist/types.d.ts +20 -0
  249. package/dist/types.d.ts.map +1 -1
  250. package/dist/utils/bounded-map.d.ts +15 -0
  251. package/dist/utils/bounded-map.d.ts.map +1 -0
  252. package/dist/utils/bounded-map.js +29 -0
  253. package/dist/utils/bounded-map.js.map +1 -0
  254. package/dist/utils/file-lock.d.ts +7 -1
  255. package/dist/utils/file-lock.d.ts.map +1 -1
  256. package/dist/utils/file-lock.js +5 -3
  257. package/dist/utils/file-lock.js.map +1 -1
  258. package/dist/utils/timing.d.ts +30 -0
  259. package/dist/utils/timing.d.ts.map +1 -0
  260. package/dist/utils/timing.js +41 -0
  261. package/dist/utils/timing.js.map +1 -0
  262. package/dist/utils/transient-snapshot.d.ts +24 -0
  263. package/dist/utils/transient-snapshot.d.ts.map +1 -1
  264. package/dist/utils/transient-snapshot.js +26 -0
  265. package/dist/utils/transient-snapshot.js.map +1 -1
  266. package/dist/worker.js +396 -44
  267. package/dist/worker.js.map +1 -1
  268. package/dist/workflows/definition.d.ts +96 -96
  269. package/dist/workflows/events/payloads.d.ts +6 -6
  270. package/dist/workflows/events/schema.d.ts +24 -24
  271. package/dist/workflows/fanout.d.ts.map +1 -1
  272. package/dist/workflows/fanout.js +2 -1
  273. package/dist/workflows/fanout.js.map +1 -1
  274. package/package.json +11 -5
  275. package/dist/dashboard/v3-runs-api.d.ts +0 -26
  276. package/dist/dashboard/v3-runs-api.d.ts.map +0 -1
  277. package/dist/dashboard/v3-runs-api.js +0 -67
  278. package/dist/dashboard/v3-runs-api.js.map +0 -1
  279. package/dist/dashboard/web/v3-terminal.d.ts +0 -11
  280. package/dist/dashboard/web/v3-terminal.d.ts.map +0 -1
  281. package/dist/dashboard/web/v3-terminal.js +0 -143
  282. package/dist/dashboard/web/v3-terminal.js.map +0 -1
  283. package/dist/dashboard/web/v3.d.ts +0 -2
  284. package/dist/dashboard/web/v3.d.ts.map +0 -1
  285. package/dist/dashboard/web/v3.js +0 -538
  286. package/dist/dashboard/web/v3.js.map +0 -1
  287. package/dist/im/lark/v3-blocked-card-handler.d.ts +0 -28
  288. package/dist/im/lark/v3-blocked-card-handler.d.ts.map +0 -1
  289. package/dist/im/lark/v3-blocked-card-handler.js +0 -130
  290. package/dist/im/lark/v3-blocked-card-handler.js.map +0 -1
  291. package/dist/im/lark/v3-blocked-card.d.ts +0 -75
  292. package/dist/im/lark/v3-blocked-card.d.ts.map +0 -1
  293. package/dist/im/lark/v3-blocked-card.js +0 -206
  294. package/dist/im/lark/v3-blocked-card.js.map +0 -1
  295. package/dist/im/lark/v3-gate-card-handler.d.ts +0 -31
  296. package/dist/im/lark/v3-gate-card-handler.d.ts.map +0 -1
  297. package/dist/im/lark/v3-gate-card-handler.js +0 -97
  298. package/dist/im/lark/v3-gate-card-handler.js.map +0 -1
  299. package/dist/im/lark/v3-gate-card.d.ts +0 -47
  300. package/dist/im/lark/v3-gate-card.d.ts.map +0 -1
  301. package/dist/im/lark/v3-gate-card.js +0 -119
  302. package/dist/im/lark/v3-gate-card.js.map +0 -1
  303. package/dist/im/lark/v3-loop-grant-card-handler.d.ts +0 -28
  304. package/dist/im/lark/v3-loop-grant-card-handler.d.ts.map +0 -1
  305. package/dist/im/lark/v3-loop-grant-card-handler.js +0 -90
  306. package/dist/im/lark/v3-loop-grant-card-handler.js.map +0 -1
  307. package/dist/im/lark/v3-loop-grant-card.d.ts +0 -46
  308. package/dist/im/lark/v3-loop-grant-card.d.ts.map +0 -1
  309. package/dist/im/lark/v3-loop-grant-card.js +0 -119
  310. package/dist/im/lark/v3-loop-grant-card.js.map +0 -1
  311. package/dist/im/lark/v3-revisit-grant-card-handler.d.ts +0 -29
  312. package/dist/im/lark/v3-revisit-grant-card-handler.d.ts.map +0 -1
  313. package/dist/im/lark/v3-revisit-grant-card-handler.js +0 -88
  314. package/dist/im/lark/v3-revisit-grant-card-handler.js.map +0 -1
  315. package/dist/im/lark/v3-revisit-grant-card.d.ts +0 -52
  316. package/dist/im/lark/v3-revisit-grant-card.d.ts.map +0 -1
  317. package/dist/im/lark/v3-revisit-grant-card.js +0 -123
  318. package/dist/im/lark/v3-revisit-grant-card.js.map +0 -1
  319. package/dist/workflows/v3/architect.d.ts +0 -37
  320. package/dist/workflows/v3/architect.d.ts.map +0 -1
  321. package/dist/workflows/v3/architect.js +0 -220
  322. package/dist/workflows/v3/architect.js.map +0 -1
  323. package/dist/workflows/v3/bot-resolve.d.ts +0 -21
  324. package/dist/workflows/v3/bot-resolve.d.ts.map +0 -1
  325. package/dist/workflows/v3/bot-resolve.js +0 -47
  326. package/dist/workflows/v3/bot-resolve.js.map +0 -1
  327. package/dist/workflows/v3/cli-run.d.ts +0 -24
  328. package/dist/workflows/v3/cli-run.d.ts.map +0 -1
  329. package/dist/workflows/v3/cli-run.js +0 -265
  330. package/dist/workflows/v3/cli-run.js.map +0 -1
  331. package/dist/workflows/v3/contract.d.ts +0 -302
  332. package/dist/workflows/v3/contract.d.ts.map +0 -1
  333. package/dist/workflows/v3/contract.js +0 -91
  334. package/dist/workflows/v3/contract.js.map +0 -1
  335. package/dist/workflows/v3/daemon-run.d.ts +0 -311
  336. package/dist/workflows/v3/daemon-run.d.ts.map +0 -1
  337. package/dist/workflows/v3/daemon-run.js +0 -755
  338. package/dist/workflows/v3/daemon-run.js.map +0 -1
  339. package/dist/workflows/v3/dag.d.ts +0 -332
  340. package/dist/workflows/v3/dag.d.ts.map +0 -1
  341. package/dist/workflows/v3/dag.js +0 -1040
  342. package/dist/workflows/v3/dag.js.map +0 -1
  343. package/dist/workflows/v3/ephemeral-pool.d.ts +0 -29
  344. package/dist/workflows/v3/ephemeral-pool.d.ts.map +0 -1
  345. package/dist/workflows/v3/ephemeral-pool.js +0 -331
  346. package/dist/workflows/v3/ephemeral-pool.js.map +0 -1
  347. package/dist/workflows/v3/grill-state.d.ts +0 -92
  348. package/dist/workflows/v3/grill-state.d.ts.map +0 -1
  349. package/dist/workflows/v3/grill-state.js +0 -151
  350. package/dist/workflows/v3/grill-state.js.map +0 -1
  351. package/dist/workflows/v3/host.d.ts +0 -88
  352. package/dist/workflows/v3/host.d.ts.map +0 -1
  353. package/dist/workflows/v3/host.js +0 -352
  354. package/dist/workflows/v3/host.js.map +0 -1
  355. package/dist/workflows/v3/human-gate.d.ts +0 -85
  356. package/dist/workflows/v3/human-gate.d.ts.map +0 -1
  357. package/dist/workflows/v3/human-gate.js +0 -153
  358. package/dist/workflows/v3/human-gate.js.map +0 -1
  359. package/dist/workflows/v3/journal.d.ts +0 -205
  360. package/dist/workflows/v3/journal.d.ts.map +0 -1
  361. package/dist/workflows/v3/journal.js +0 -64
  362. package/dist/workflows/v3/journal.js.map +0 -1
  363. package/dist/workflows/v3/manifest.d.ts +0 -17
  364. package/dist/workflows/v3/manifest.d.ts.map +0 -1
  365. package/dist/workflows/v3/manifest.js +0 -266
  366. package/dist/workflows/v3/manifest.js.map +0 -1
  367. package/dist/workflows/v3/ops-projection.d.ts +0 -109
  368. package/dist/workflows/v3/ops-projection.d.ts.map +0 -1
  369. package/dist/workflows/v3/ops-projection.js +0 -0
  370. package/dist/workflows/v3/ops-projection.js.map +0 -1
  371. package/dist/workflows/v3/orchestrator.d.ts +0 -168
  372. package/dist/workflows/v3/orchestrator.d.ts.map +0 -1
  373. package/dist/workflows/v3/orchestrator.js +0 -417
  374. package/dist/workflows/v3/orchestrator.js.map +0 -1
  375. package/dist/workflows/v3/runtime.d.ts +0 -193
  376. package/dist/workflows/v3/runtime.d.ts.map +0 -1
  377. package/dist/workflows/v3/runtime.js +0 -1266
  378. package/dist/workflows/v3/runtime.js.map +0 -1
  379. package/dist/workflows/v3/spec.d.ts +0 -32
  380. package/dist/workflows/v3/spec.d.ts.map +0 -1
  381. package/dist/workflows/v3/spec.js +0 -173
  382. package/dist/workflows/v3/spec.js.map +0 -1
  383. package/dist/workflows/v3/state.d.ts +0 -74
  384. package/dist/workflows/v3/state.d.ts.map +0 -1
  385. package/dist/workflows/v3/state.js +0 -353
  386. package/dist/workflows/v3/state.js.map +0 -1
package/README.en.md CHANGED
@@ -64,7 +64,7 @@ Compared to OpenClaw-style approaches built on Agent SDKs:
64
64
  ## Prerequisites
65
65
 
66
66
  - **Node.js** >= 20
67
- - **AI coding CLI / local agent app** installed and authenticated (`claude`, `codex`, `coco`, `cursor-agent`, `gemini`, `opencode`, `hermes`, `seed` (Seed CLI, a Claude Code fork), `pi`, `copilot` (GitHub Copilot CLI), `traex` (TRAE CLI), or `agy` (Antigravity) in PATH)
67
+ - **AI coding CLI / local agent app** installed and authenticated (`claude`, `codex`, `coco`, `cursor-agent`, `gemini`, `opencode`, `hermes`, `seed` (Seed CLI, a Claude Code fork), `pi`, `omp` (oh-my-pi, a Pi fork), `copilot` (GitHub Copilot CLI), `traex` (TRAE CLI), or `agy` (Antigravity) in PATH)
68
68
  - **CoCo requires `0.120.32+`**: type-ahead (sending a new message while a turn is still running, parked in CoCo's own message queue) relies on 0.120.32+ behavior; earlier versions may drop or serialize input while busy — upgrade before use
69
69
  - **tmux** >= 3.x (optional — auto-enabled when installed for persistent CLI sessions)
70
70
  - **CJK fonts** (only needed for screenshot rendering of Chinese text / emoji):
package/README.md CHANGED
@@ -199,7 +199,7 @@ CLI 进入 botmux 会话时自动获得 `~/.botmux/bin` 在 PATH 中,以及一
199
199
  ## 前置要求
200
200
 
201
201
  - **Node.js** >= 20
202
- - **AI 编程 CLI / 本地 Agent 应用** 已安装并完成认证(`claude`、`codex`、`coco`、`cursor-agent`、`gemini`、`opencode`、`hermes`、`seed`(Seed CLI,Claude Code 衍生)、`pi`、`copilot`(GitHub Copilot CLI)、`traex`(TRAE CLI)或 `agy`(Antigravity)在 PATH 中)
202
+ - **AI 编程 CLI / 本地 Agent 应用** 已安装并完成认证(`claude`、`codex`、`coco`、`cursor-agent`、`gemini`、`opencode`、`hermes`、`seed`(Seed CLI,Claude Code 衍生)、`pi`、`omp`(oh-my-pi,Pi 衍生)、`copilot`(GitHub Copilot CLI)、`traex`(TRAE CLI)或 `agy`(Antigravity)在 PATH 中)
203
203
  - **CoCo 最低版本 `0.120.32`**:type-ahead(会话忙时即可发新消息,由 CoCo 自己的消息队列接住)依赖 0.120.32+ 的行为;更早版本忙时输入可能丢失或串行,请升级后再用
204
204
  - **tmux** >= 3.x(可选,安装后自动启用会话常驻)
205
205
  - **CJK 字体**(用于截图渲染中文/emoji):
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Mount an overlayfs: reads fall through to `lower` (real, zero copy); writes
3
+ * copy-up into `upper` (the landable changeset). `work` is overlayfs scratch on
4
+ * the same fs as `upper`. Returns true iff `mount` exited 0.
5
+ */
6
+ export declare function mountOverlay(opts: {
7
+ lower: string;
8
+ upper: string;
9
+ work: string;
10
+ merged: string;
11
+ }): boolean;
12
+ /** True iff `path` is currently a mountpoint (host-side overlay still mounted). */
13
+ export declare function isMounted(path: string): boolean;
14
+ /** Unmount an overlay merged dir. Best-effort: lazy-umount (`-l`) if a normal
15
+ * umount fails (busy fd from a still-draining child). No-op if not a mount. */
16
+ export declare function unmountOverlay(merged: string): void;
17
+ export interface SandboxPlan {
18
+ /** In-sandbox path the project is bound at — equals the original workingDir the
19
+ * CLI was given, so the CLI's existing path args resolve. Also the child's chdir. */
20
+ projectMount: string;
21
+ /** Host path of the merged project overlay (reads=real lower, writes=upper). */
22
+ projectMerged: string;
23
+ /** In-sandbox path the home overlay is bound at — equals the real home path so
24
+ * every CLI's hardcoded `~/.<cli>` resolves there. */
25
+ home: string;
26
+ /** Host path of the merged home overlay. */
27
+ homeMerged: string;
28
+ /** Daemon-mediated `botmux send` outbox — bound LAST so it wins over any mask. */
29
+ outbox: string;
30
+ /** Per-bot privacy masks: directories blanked with an empty tmpfs. */
31
+ hideDirs: string[];
32
+ /** Per-bot privacy masks: files blanked with a read-only empty placeholder. */
33
+ hideFiles: {
34
+ path: string;
35
+ empty: string;
36
+ }[];
37
+ /** Keep network egress. File-only scope ⇒ default true (npm/pip/git work). */
38
+ net?: boolean;
39
+ }
40
+ /**
41
+ * Build the bwrap argv prefix. Final spawn becomes:
42
+ * bwrap <these args> -- <cliBin> <cliArgs...>
43
+ *
44
+ * Mount order matters (later mounts win): the whole real fs read-only first, then
45
+ * the home + project merged overlays bind over it (so writes there are isolated),
46
+ * then privacy masks blank specific paths, then the outbox binds LAST so it stays
47
+ * writable even if a mask covers a parent dir.
48
+ */
49
+ export declare function buildSandboxArgs(plan: SandboxPlan): string[];
50
+ /** Is file-sandbox enabled for this session? Spike gate = env; the real
51
+ * per-bot BotConfig.sandbox flag is decided by the caller. */
52
+ export declare function sandboxEnabled(): boolean;
53
+ export interface SandboxSpawn {
54
+ /** Replace the CLI binary with this (always 'bwrap'). */
55
+ bin: string;
56
+ /** bwrap args + '--' + original (bin, ...args). */
57
+ args: string[];
58
+ /** Env overrides to merge into childEnv (HOME, PATH, BOTMUX_SEND_RELAY, proxies). */
59
+ env: Record<string, string>;
60
+ /** Outbox dir the daemon watcher must service. */
61
+ outbox: string;
62
+ /** Project overlay UPPER dir — THE LANDABLE CHANGESET (used by sandbox-land). */
63
+ workDir: string;
64
+ /** HOME overlay UPPER dir (/var/tmp/botmux-sbx/<sid>/home-upper). The sandboxed
65
+ * CLI's $HOME writes — INCLUDING its session jsonl under CLAUDE_CONFIG_DIR —
66
+ * land here (invisible at the real path). The worker redirects its bridge/idle
67
+ * watch into this via sandboxedClaudeDataDir() so it sees the CLI's turns. */
68
+ homeUpper: string;
69
+ /** Unmount the overlays + remove the per-session sandbox tree. */
70
+ cleanup: () => void;
71
+ }
72
+ /** The path where a sandboxed session's CLI actually writes a $HOME-relative
73
+ * data dir (e.g. CLAUDE_CONFIG_DIR / `.claude-runtime`): the HOME overlay's
74
+ * ephemeral UPPER copy. The worker redirects its jsonl/bridge watch here so it
75
+ * sees the sandboxed CLI's writes (which are invisible at the real host path).
76
+ * Mirrors prepareSandbox's homeUpper layout — keep in sync. */
77
+ export declare function sandboxedClaudeDataDir(sessionId: string, realDataDir: string): string;
78
+ /**
79
+ * Build the sandboxed spawn for a CLI session, or return null when sandboxing
80
+ * is off / unsupported / a required overlay mount fails (fail-safe = the worker
81
+ * treats null as a hard error and does NOT silently run unsandboxed).
82
+ *
83
+ * Layout under <dataDir>/sandboxes/<sessionId>/: outbox, shimbin, proj-upper
84
+ * (the landable changeset), proj-work, proj-merged, home-merged. The HOME
85
+ * overlay's upper/work live under /var/tmp/botmux-sbx/<sessionId>/ because
86
+ * overlayfs forbids upper/work inside the lower (= the real home).
87
+ */
88
+ export declare function prepareSandbox(opts: {
89
+ /** Whether the sandbox is on for THIS session (per-bot BotConfig.sandbox OR
90
+ * the BOTMUX_SANDBOX env force). Decided by the caller — prepareSandbox does
91
+ * NOT re-read the env, so the dashboard per-bot toggle actually takes effect. */
92
+ enabled: boolean;
93
+ cliId: string;
94
+ sessionId: string;
95
+ sourceWorkingDir: string;
96
+ dataDir: string;
97
+ cliBin: string;
98
+ cliArgs: string[];
99
+ /** Per-bot privacy masks (opt-in, no defaults). Paths existing as dirs are
100
+ * blanked with a tmpfs; files with an empty read-only placeholder. */
101
+ hidePaths?: string[];
102
+ }): SandboxSpawn | null;
103
+ /**
104
+ * Re-attach the daemon/worker side to an ALREADY-spawned sandbox session WITHOUT
105
+ * touching the overlays. Used on daemon-restart reattach to a persistent
106
+ * (tmux/herdr/zellij) pane whose bwrap'd CLI is still alive: the CLI is bound to
107
+ * its own namespace-pinned overlay, so we must NOT unmount/remount (that would
108
+ * leave a duplicate host-side mount the CLI isn't using). We only need the outbox
109
+ * path back so the watcher can keep servicing the live CLI's `botmux send`, plus
110
+ * the workDir (upper changeset for landing) and a cleanup that tears the residue
111
+ * down at close/exit. Returns null if the session has no sandbox tree on disk
112
+ * (never sandboxed). Linux-only, mirrors prepareSandbox's layout.
113
+ */
114
+ export declare function attachSandboxOutbox(opts: {
115
+ sessionId: string;
116
+ dataDir: string;
117
+ }): {
118
+ outbox: string;
119
+ workDir: string;
120
+ cleanup: () => void;
121
+ } | null;
122
+ /**
123
+ * Reclaim leaked sandbox residue.
124
+ *
125
+ * Two classes of leak are reclaimed:
126
+ * 1. NON-ACTIVE orphans — sid not in `activeSessionIds`: the session is gone, so
127
+ * any leftover mount/dir is pure residue (the original startup-sweep case,
128
+ * guarding against a daemon crash/kill that skipped killCli()).
129
+ * 2. ACTIVE-but-DEAD — sid IS in `activeSessionIds`, yet NEITHER of its merged
130
+ * overlays is still mounted. This closes the blind spot where a sandboxed
131
+ * worker was SIGKILL'd (straggler reaper) or crashed: the session stays
132
+ * status='active' on disk, so the old "skip if active" rule would let the
133
+ * leaked upper/work dirs survive across restarts indefinitely. We only GC an
134
+ * active sid when its mounts are ALREADY gone — we NEVER tear down a live
135
+ * mount (a CLI persisting in a tmux/herdr/zellij pane is still bound to it),
136
+ * so a genuinely-live persistent session keeps its changeset.
137
+ *
138
+ * Safe to call repeatedly: wire once at daemon bootstrap AND on a periodic timer
139
+ * (the SIGKILL/straggler path can't run worker-side killCli(), so a startup-only
140
+ * sweep would let a crashed-active session's mount survive for the whole next
141
+ * daemon lifetime — one daemon per bot can run for days).
142
+ */
143
+ export declare function sweepOrphanSandboxes(dataDir: string, activeSessionIds: Set<string>): void;
144
+ export interface RelayRequest {
145
+ contentFile?: unknown;
146
+ attachments?: unknown;
147
+ flags?: unknown;
148
+ }
149
+ export interface ValidatedRelay {
150
+ contentName: string;
151
+ attachmentNames: string[];
152
+ flags: string[];
153
+ }
154
+ /**
155
+ * PURE validation of an outbox relay request (schema + flag allowlist only — no
156
+ * filesystem access, so it's deterministically testable):
157
+ * - contentFile/attachments must be plain basenames (no `/`, `\`, `..`).
158
+ * - only allowlisted presentation flags pass; any other flag → reject (this
159
+ * rejects raw `--content-file`/`--session-id`/path flags etc.).
160
+ * The TOCTOU-safe filesystem read is handled separately by materializeOutboxFile,
161
+ * NOT here — this function deliberately resolves no paths.
162
+ */
163
+ export declare function validateRelayRequest(req: RelayRequest): {
164
+ ok: true;
165
+ value: ValidatedRelay;
166
+ } | {
167
+ ok: false;
168
+ error: string;
169
+ };
170
+ /**
171
+ * TOCTOU-safe copy of an outbox file (`outbox/<name>`, name already validated as
172
+ * a plain basename) into a host-private `dest`. Opens with O_NOFOLLOW so a
173
+ * symlink swapped in by the sandbox AFTER validation is rejected at open time,
174
+ * and O_NONBLOCK so opening a FIFO/special the sandbox dropped into the (rw-bound)
175
+ * outbox returns IMMEDIATELY instead of blocking the synchronous watcher tick
176
+ * forever (a FIFO with no writer would otherwise hang the whole worker event
177
+ * loop — an agent-triggerable DoS). After open we fstat-reject anything that
178
+ * isn't a regular file (a FIFO opened O_NONBLOCK|O_RDONLY succeeds but isFile()
179
+ * is false → rejected here). Reads from the fd (not the path), so the inode can't
180
+ * be swapped under us. Returns false (reject) on symlink / non-regular / any error.
181
+ */
182
+ export declare function materializeOutboxFile(outbox: string, name: string, dest: string): boolean;
183
+ /**
184
+ * Daemon/worker-side outbox watcher. The sandboxed `botmux send` (relay mode)
185
+ * drops `<id>.req.json`; we validate (validateRelayRequest) and then MATERIALIZE
186
+ * the content/attachments into a host-private staging dir that is NOT bound into
187
+ * the sandbox — closing the TOCTOU window where the sandbox could swap an outbox
188
+ * file for a symlink between check and the host-side read. We then re-exec THIS
189
+ * build's `send` OUTSIDE the sandbox (full creds) against the private copies,
190
+ * with the session-id FORCED. This keeps every Lark credential out of the sandbox.
191
+ */
192
+ export declare function startOutboxWatcher(outbox: string, baseEnv: NodeJS.ProcessEnv, sessionId: string): () => void;
193
+ //# sourceMappingURL=sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/adapters/backend/sandbox.ts"],"names":[],"mappings":"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"}