botmux 3.15.0 → 3.16.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 (780) hide show
  1. package/README.en.md +2 -2
  2. package/README.md +2 -2
  3. package/dist/.runtime-build-id +1 -1
  4. package/dist/adapters/backend/destroy-result.d.ts +159 -0
  5. package/dist/adapters/backend/destroy-result.d.ts.map +1 -0
  6. package/dist/adapters/backend/destroy-result.js +223 -0
  7. package/dist/adapters/backend/destroy-result.js.map +1 -0
  8. package/dist/adapters/backend/herdr-backend.d.ts +4 -0
  9. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  10. package/dist/adapters/backend/herdr-backend.js +23 -1
  11. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  12. package/dist/adapters/backend/mojo-backend.d.ts +577 -0
  13. package/dist/adapters/backend/mojo-backend.d.ts.map +1 -0
  14. package/dist/adapters/backend/mojo-backend.js +2471 -0
  15. package/dist/adapters/backend/mojo-backend.js.map +1 -0
  16. package/dist/adapters/backend/mojo-budgets.d.ts +21 -0
  17. package/dist/adapters/backend/mojo-budgets.d.ts.map +1 -0
  18. package/dist/adapters/backend/mojo-budgets.js +22 -0
  19. package/dist/adapters/backend/mojo-budgets.js.map +1 -0
  20. package/dist/adapters/backend/mojo-isolated-workspace.d.ts +69 -0
  21. package/dist/adapters/backend/mojo-isolated-workspace.d.ts.map +1 -0
  22. package/dist/adapters/backend/mojo-isolated-workspace.js +213 -0
  23. package/dist/adapters/backend/mojo-isolated-workspace.js.map +1 -0
  24. package/dist/adapters/backend/mojo-process-tree.d.ts +292 -0
  25. package/dist/adapters/backend/mojo-process-tree.d.ts.map +1 -0
  26. package/dist/adapters/backend/mojo-process-tree.js +486 -0
  27. package/dist/adapters/backend/mojo-process-tree.js.map +1 -0
  28. package/dist/adapters/backend/mojo-types.d.ts +542 -0
  29. package/dist/adapters/backend/mojo-types.d.ts.map +1 -0
  30. package/dist/adapters/backend/mojo-types.js +682 -0
  31. package/dist/adapters/backend/mojo-types.js.map +1 -0
  32. package/dist/adapters/backend/reproduce-command.js +3 -3
  33. package/dist/adapters/backend/reproduce-command.js.map +1 -1
  34. package/dist/adapters/backend/riff-backend.js +1 -1
  35. package/dist/adapters/backend/riff-backend.js.map +1 -1
  36. package/dist/adapters/backend/sandbox.d.ts +44 -7
  37. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  38. package/dist/adapters/backend/sandbox.js +30 -7
  39. package/dist/adapters/backend/sandbox.js.map +1 -1
  40. package/dist/adapters/backend/session-backend-selector.d.ts +14 -1
  41. package/dist/adapters/backend/session-backend-selector.d.ts.map +1 -1
  42. package/dist/adapters/backend/session-backend-selector.js +82 -10
  43. package/dist/adapters/backend/session-backend-selector.js.map +1 -1
  44. package/dist/adapters/backend/types.d.ts +101 -6
  45. package/dist/adapters/backend/types.d.ts.map +1 -1
  46. package/dist/adapters/backend/types.js.map +1 -1
  47. package/dist/adapters/backend/zmx-backend.d.ts +11 -0
  48. package/dist/adapters/backend/zmx-backend.d.ts.map +1 -1
  49. package/dist/adapters/backend/zmx-backend.js +16 -1
  50. package/dist/adapters/backend/zmx-backend.js.map +1 -1
  51. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  52. package/dist/adapters/cli/codex-app.js +2 -2
  53. package/dist/adapters/cli/codex-app.js.map +1 -1
  54. package/dist/adapters/cli/codex.d.ts.map +1 -1
  55. package/dist/adapters/cli/codex.js +7 -0
  56. package/dist/adapters/cli/codex.js.map +1 -1
  57. package/dist/adapters/cli/copilot.d.ts +3 -1
  58. package/dist/adapters/cli/copilot.d.ts.map +1 -1
  59. package/dist/adapters/cli/copilot.js +23 -5
  60. package/dist/adapters/cli/copilot.js.map +1 -1
  61. package/dist/adapters/cli/cursor.d.ts.map +1 -1
  62. package/dist/adapters/cli/cursor.js +13 -3
  63. package/dist/adapters/cli/cursor.js.map +1 -1
  64. package/dist/adapters/cli/grok.d.ts.map +1 -1
  65. package/dist/adapters/cli/grok.js +24 -5
  66. package/dist/adapters/cli/grok.js.map +1 -1
  67. package/dist/adapters/cli/kimi.d.ts.map +1 -1
  68. package/dist/adapters/cli/kimi.js +19 -1
  69. package/dist/adapters/cli/kimi.js.map +1 -1
  70. package/dist/adapters/cli/mojo.d.ts +28 -0
  71. package/dist/adapters/cli/mojo.d.ts.map +1 -0
  72. package/dist/adapters/cli/mojo.js +58 -0
  73. package/dist/adapters/cli/mojo.js.map +1 -0
  74. package/dist/adapters/cli/pi.d.ts +6 -4
  75. package/dist/adapters/cli/pi.d.ts.map +1 -1
  76. package/dist/adapters/cli/pi.js +6 -4
  77. package/dist/adapters/cli/pi.js.map +1 -1
  78. package/dist/adapters/cli/read-isolation.d.ts +251 -1
  79. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  80. package/dist/adapters/cli/read-isolation.js +254 -1
  81. package/dist/adapters/cli/read-isolation.js.map +1 -1
  82. package/dist/adapters/cli/registry.d.ts +13 -1
  83. package/dist/adapters/cli/registry.d.ts.map +1 -1
  84. package/dist/adapters/cli/registry.js +19 -1
  85. package/dist/adapters/cli/registry.js.map +1 -1
  86. package/dist/adapters/cli/runner-input.d.ts +3 -3
  87. package/dist/adapters/cli/runner-input.d.ts.map +1 -1
  88. package/dist/adapters/cli/runner-input.js +4 -3
  89. package/dist/adapters/cli/runner-input.js.map +1 -1
  90. package/dist/adapters/cli/shared-hints.d.ts +3 -1
  91. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  92. package/dist/adapters/cli/shared-hints.js +22 -6
  93. package/dist/adapters/cli/shared-hints.js.map +1 -1
  94. package/dist/adapters/cli/types.d.ts +29 -4
  95. package/dist/adapters/cli/types.d.ts.map +1 -1
  96. package/dist/bot-registry.d.ts +20 -0
  97. package/dist/bot-registry.d.ts.map +1 -1
  98. package/dist/bot-registry.js +30 -4
  99. package/dist/bot-registry.js.map +1 -1
  100. package/dist/cli/arg-utils.d.ts +5 -0
  101. package/dist/cli/arg-utils.d.ts.map +1 -1
  102. package/dist/cli/arg-utils.js +7 -0
  103. package/dist/cli/arg-utils.js.map +1 -1
  104. package/dist/cli/bots-list-output.d.ts +130 -2
  105. package/dist/cli/bots-list-output.d.ts.map +1 -1
  106. package/dist/cli/bots-list-output.js +173 -27
  107. package/dist/cli/bots-list-output.js.map +1 -1
  108. package/dist/cli/daemon-lifecycle-env.d.ts +10 -3
  109. package/dist/cli/daemon-lifecycle-env.d.ts.map +1 -1
  110. package/dist/cli/daemon-lifecycle-env.js +38 -11
  111. package/dist/cli/daemon-lifecycle-env.js.map +1 -1
  112. package/dist/cli/dashboard-command.d.ts +15 -0
  113. package/dist/cli/dashboard-command.d.ts.map +1 -1
  114. package/dist/cli/dashboard-command.js +22 -0
  115. package/dist/cli/dashboard-command.js.map +1 -1
  116. package/dist/cli/log-tail.d.ts +54 -0
  117. package/dist/cli/log-tail.d.ts.map +1 -0
  118. package/dist/cli/log-tail.js +167 -0
  119. package/dist/cli/log-tail.js.map +1 -0
  120. package/dist/cli/pm2-env.d.ts +16 -0
  121. package/dist/cli/pm2-env.d.ts.map +1 -0
  122. package/dist/cli/pm2-env.js +63 -0
  123. package/dist/cli/pm2-env.js.map +1 -0
  124. package/dist/cli/pm2-fleet-lock.d.ts +26 -0
  125. package/dist/cli/pm2-fleet-lock.d.ts.map +1 -0
  126. package/dist/cli/pm2-fleet-lock.js +50 -0
  127. package/dist/cli/pm2-fleet-lock.js.map +1 -0
  128. package/dist/cli/pm2-god-retirement.d.ts +59 -0
  129. package/dist/cli/pm2-god-retirement.d.ts.map +1 -0
  130. package/dist/cli/pm2-god-retirement.js +95 -0
  131. package/dist/cli/pm2-god-retirement.js.map +1 -0
  132. package/dist/cli/session-list-wake.d.ts +41 -0
  133. package/dist/cli/session-list-wake.d.ts.map +1 -0
  134. package/dist/cli/session-list-wake.js +102 -0
  135. package/dist/cli/session-list-wake.js.map +1 -0
  136. package/dist/cli/workflow.d.ts.map +1 -1
  137. package/dist/cli/workflow.js +26 -0
  138. package/dist/cli/workflow.js.map +1 -1
  139. package/dist/cli.d.ts.map +1 -1
  140. package/dist/cli.js +933 -115
  141. package/dist/cli.js.map +1 -1
  142. package/dist/codex-app-runner.js +261 -49
  143. package/dist/codex-app-runner.js.map +1 -1
  144. package/dist/core/cli-runtime-update.d.ts +8 -0
  145. package/dist/core/cli-runtime-update.d.ts.map +1 -1
  146. package/dist/core/cli-runtime-update.js +127 -8
  147. package/dist/core/cli-runtime-update.js.map +1 -1
  148. package/dist/core/close-residual.d.ts +64 -0
  149. package/dist/core/close-residual.d.ts.map +1 -0
  150. package/dist/core/close-residual.js +93 -0
  151. package/dist/core/close-residual.js.map +1 -0
  152. package/dist/core/closed-session-card.d.ts.map +1 -1
  153. package/dist/core/closed-session-card.js +11 -3
  154. package/dist/core/closed-session-card.js.map +1 -1
  155. package/dist/core/command-handler.d.ts.map +1 -1
  156. package/dist/core/command-handler.js +129 -27
  157. package/dist/core/command-handler.js.map +1 -1
  158. package/dist/core/cost-calculator.d.ts +3 -1
  159. package/dist/core/cost-calculator.d.ts.map +1 -1
  160. package/dist/core/cost-calculator.js +230 -1
  161. package/dist/core/cost-calculator.js.map +1 -1
  162. package/dist/core/daemon-background-close.d.ts +19 -0
  163. package/dist/core/daemon-background-close.d.ts.map +1 -0
  164. package/dist/core/daemon-background-close.js +39 -0
  165. package/dist/core/daemon-background-close.js.map +1 -0
  166. package/dist/core/dashboard-command/overview.d.ts +4 -0
  167. package/dist/core/dashboard-command/overview.d.ts.map +1 -1
  168. package/dist/core/dashboard-command/overview.js +8 -1
  169. package/dist/core/dashboard-command/overview.js.map +1 -1
  170. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  171. package/dist/core/dashboard-ipc-server.js +373 -41
  172. package/dist/core/dashboard-ipc-server.js.map +1 -1
  173. package/dist/core/dashboard-rows.d.ts +4 -0
  174. package/dist/core/dashboard-rows.d.ts.map +1 -1
  175. package/dist/core/dashboard-rows.js +3 -0
  176. package/dist/core/dashboard-rows.js.map +1 -1
  177. package/dist/core/dashboard-url.d.ts +37 -0
  178. package/dist/core/dashboard-url.d.ts.map +1 -1
  179. package/dist/core/dashboard-url.js +71 -0
  180. package/dist/core/dashboard-url.js.map +1 -1
  181. package/dist/core/deferred-schedule-settlement.d.ts +15 -1
  182. package/dist/core/deferred-schedule-settlement.d.ts.map +1 -1
  183. package/dist/core/deferred-schedule-settlement.js +4 -1
  184. package/dist/core/deferred-schedule-settlement.js.map +1 -1
  185. package/dist/core/device-isolation-daemon.d.ts +91 -1
  186. package/dist/core/device-isolation-daemon.d.ts.map +1 -1
  187. package/dist/core/device-isolation-daemon.js +346 -2
  188. package/dist/core/device-isolation-daemon.js.map +1 -1
  189. package/dist/core/local-terminal-opener.d.ts.map +1 -1
  190. package/dist/core/local-terminal-opener.js +5 -1
  191. package/dist/core/local-terminal-opener.js.map +1 -1
  192. package/dist/core/loopback-target.d.ts +14 -0
  193. package/dist/core/loopback-target.d.ts.map +1 -0
  194. package/dist/core/loopback-target.js +20 -0
  195. package/dist/core/loopback-target.js.map +1 -0
  196. package/dist/core/maintenance.d.ts.map +1 -1
  197. package/dist/core/maintenance.js +16 -2
  198. package/dist/core/maintenance.js.map +1 -1
  199. package/dist/core/mojo-containment-command.d.ts +20 -0
  200. package/dist/core/mojo-containment-command.d.ts.map +1 -0
  201. package/dist/core/mojo-containment-command.js +266 -0
  202. package/dist/core/mojo-containment-command.js.map +1 -0
  203. package/dist/core/mojo-containment.d.ts +575 -0
  204. package/dist/core/mojo-containment.d.ts.map +1 -0
  205. package/dist/core/mojo-containment.js +1158 -0
  206. package/dist/core/mojo-containment.js.map +1 -0
  207. package/dist/core/mojo-launcher-env-quarantine.d.ts +30 -0
  208. package/dist/core/mojo-launcher-env-quarantine.d.ts.map +1 -0
  209. package/dist/core/mojo-launcher-env-quarantine.js +175 -0
  210. package/dist/core/mojo-launcher-env-quarantine.js.map +1 -0
  211. package/dist/core/mojo-session-identity.d.ts +3 -0
  212. package/dist/core/mojo-session-identity.d.ts.map +1 -0
  213. package/dist/core/mojo-session-identity.js +126 -0
  214. package/dist/core/mojo-session-identity.js.map +1 -0
  215. package/dist/core/persistent-backend.d.ts +32 -8
  216. package/dist/core/persistent-backend.d.ts.map +1 -1
  217. package/dist/core/persistent-backend.js +55 -17
  218. package/dist/core/persistent-backend.js.map +1 -1
  219. package/dist/core/plugins/mcp/gateway.d.ts +14 -1
  220. package/dist/core/plugins/mcp/gateway.d.ts.map +1 -1
  221. package/dist/core/plugins/mcp/gateway.js +70 -3
  222. package/dist/core/plugins/mcp/gateway.js.map +1 -1
  223. package/dist/core/plugins/mcp/host.d.ts +2 -0
  224. package/dist/core/plugins/mcp/host.d.ts.map +1 -1
  225. package/dist/core/plugins/mcp/host.js +2 -0
  226. package/dist/core/plugins/mcp/host.js.map +1 -1
  227. package/dist/core/plugins/pm2.d.ts.map +1 -1
  228. package/dist/core/plugins/pm2.js +16 -3
  229. package/dist/core/plugins/pm2.js.map +1 -1
  230. package/dist/core/plugins/service-manager.d.ts +9 -0
  231. package/dist/core/plugins/service-manager.d.ts.map +1 -1
  232. package/dist/core/plugins/service-manager.js +33 -16
  233. package/dist/core/plugins/service-manager.js.map +1 -1
  234. package/dist/core/preview-port-owner.d.ts +109 -0
  235. package/dist/core/preview-port-owner.d.ts.map +1 -0
  236. package/dist/core/preview-port-owner.js +320 -0
  237. package/dist/core/preview-port-owner.js.map +1 -0
  238. package/dist/core/remote-cli-ids.d.ts +5 -0
  239. package/dist/core/remote-cli-ids.d.ts.map +1 -0
  240. package/dist/core/remote-cli-ids.js +24 -0
  241. package/dist/core/remote-cli-ids.js.map +1 -0
  242. package/dist/core/{riff-shutdown-detach.d.ts → remote-shutdown-detach.d.ts} +40 -39
  243. package/dist/core/remote-shutdown-detach.d.ts.map +1 -0
  244. package/dist/core/{riff-shutdown-detach.js → remote-shutdown-detach.js} +85 -83
  245. package/dist/core/remote-shutdown-detach.js.map +1 -0
  246. package/dist/core/{riff-worker-shutdown-readiness.d.ts → remote-worker-shutdown-readiness.d.ts} +5 -4
  247. package/dist/core/remote-worker-shutdown-readiness.d.ts.map +1 -0
  248. package/dist/core/{riff-worker-shutdown-readiness.js → remote-worker-shutdown-readiness.js} +4 -3
  249. package/dist/core/remote-worker-shutdown-readiness.js.map +1 -0
  250. package/dist/core/reply-target.d.ts +16 -1
  251. package/dist/core/reply-target.d.ts.map +1 -1
  252. package/dist/core/reply-target.js +61 -0
  253. package/dist/core/reply-target.js.map +1 -1
  254. package/dist/core/session-group-birth.d.ts +26 -0
  255. package/dist/core/session-group-birth.d.ts.map +1 -1
  256. package/dist/core/session-group-birth.js +81 -4
  257. package/dist/core/session-group-birth.js.map +1 -1
  258. package/dist/core/session-manager.d.ts +15 -2
  259. package/dist/core/session-manager.d.ts.map +1 -1
  260. package/dist/core/session-manager.js +259 -5
  261. package/dist/core/session-manager.js.map +1 -1
  262. package/dist/core/session-model.d.ts +46 -0
  263. package/dist/core/session-model.d.ts.map +1 -0
  264. package/dist/core/session-model.js +42 -0
  265. package/dist/core/session-model.js.map +1 -0
  266. package/dist/core/session-owner-reminder.d.ts +63 -0
  267. package/dist/core/session-owner-reminder.d.ts.map +1 -0
  268. package/dist/core/session-owner-reminder.js +196 -0
  269. package/dist/core/session-owner-reminder.js.map +1 -0
  270. package/dist/core/session-preview-registry.d.ts +53 -0
  271. package/dist/core/session-preview-registry.d.ts.map +1 -0
  272. package/dist/core/session-preview-registry.js +82 -0
  273. package/dist/core/session-preview-registry.js.map +1 -0
  274. package/dist/core/session-preview.d.ts +114 -0
  275. package/dist/core/session-preview.d.ts.map +1 -0
  276. package/dist/core/session-preview.js +184 -0
  277. package/dist/core/session-preview.js.map +1 -0
  278. package/dist/core/session-rename.d.ts.map +1 -1
  279. package/dist/core/session-rename.js +5 -3
  280. package/dist/core/session-rename.js.map +1 -1
  281. package/dist/core/session-wake-deadline.d.ts +5 -0
  282. package/dist/core/session-wake-deadline.d.ts.map +1 -0
  283. package/dist/core/session-wake-deadline.js +13 -0
  284. package/dist/core/session-wake-deadline.js.map +1 -0
  285. package/dist/core/shutdown-budgets.d.ts +7 -6
  286. package/dist/core/shutdown-budgets.d.ts.map +1 -1
  287. package/dist/core/shutdown-budgets.js +11 -10
  288. package/dist/core/shutdown-budgets.js.map +1 -1
  289. package/dist/core/terminal-control-grant.d.ts +74 -0
  290. package/dist/core/terminal-control-grant.d.ts.map +1 -0
  291. package/dist/core/terminal-control-grant.js +183 -0
  292. package/dist/core/terminal-control-grant.js.map +1 -0
  293. package/dist/core/terminal-proxy.d.ts.map +1 -1
  294. package/dist/core/terminal-proxy.js +4 -5
  295. package/dist/core/terminal-proxy.js.map +1 -1
  296. package/dist/core/terminal-write-auth.d.ts +4 -11
  297. package/dist/core/terminal-write-auth.d.ts.map +1 -1
  298. package/dist/core/terminal-write-auth.js +19 -16
  299. package/dist/core/terminal-write-auth.js.map +1 -1
  300. package/dist/core/trigger-session.d.ts.map +1 -1
  301. package/dist/core/trigger-session.js +36 -29
  302. package/dist/core/trigger-session.js.map +1 -1
  303. package/dist/core/types.d.ts +88 -10
  304. package/dist/core/types.d.ts.map +1 -1
  305. package/dist/core/types.js +9 -7
  306. package/dist/core/types.js.map +1 -1
  307. package/dist/core/workbench-link.d.ts +81 -0
  308. package/dist/core/workbench-link.d.ts.map +1 -0
  309. package/dist/core/workbench-link.js +109 -0
  310. package/dist/core/workbench-link.js.map +1 -0
  311. package/dist/core/worker-pool.d.ts +312 -11
  312. package/dist/core/worker-pool.d.ts.map +1 -1
  313. package/dist/core/worker-pool.js +2494 -209
  314. package/dist/core/worker-pool.js.map +1 -1
  315. package/dist/daemon.d.ts +6 -0
  316. package/dist/daemon.d.ts.map +1 -1
  317. package/dist/daemon.js +443 -106
  318. package/dist/daemon.js.map +1 -1
  319. package/dist/dashboard/aggregator.d.ts +33 -3
  320. package/dist/dashboard/aggregator.d.ts.map +1 -1
  321. package/dist/dashboard/aggregator.js +93 -17
  322. package/dist/dashboard/aggregator.js.map +1 -1
  323. package/dist/dashboard/auth-session-connections.d.ts +59 -0
  324. package/dist/dashboard/auth-session-connections.d.ts.map +1 -0
  325. package/dist/dashboard/auth-session-connections.js +109 -0
  326. package/dist/dashboard/auth-session-connections.js.map +1 -0
  327. package/dist/dashboard/auth.d.ts +99 -1
  328. package/dist/dashboard/auth.d.ts.map +1 -1
  329. package/dist/dashboard/auth.js +176 -64
  330. package/dist/dashboard/auth.js.map +1 -1
  331. package/dist/dashboard/bot-payload.d.ts +1 -0
  332. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  333. package/dist/dashboard/bot-payload.js +3 -0
  334. package/dist/dashboard/bot-payload.js.map +1 -1
  335. package/dist/dashboard/control-audit.d.ts +112 -0
  336. package/dist/dashboard/control-audit.d.ts.map +1 -0
  337. package/dist/dashboard/control-audit.js +195 -0
  338. package/dist/dashboard/control-audit.js.map +1 -0
  339. package/dist/dashboard/control-csrf.d.ts +123 -0
  340. package/dist/dashboard/control-csrf.d.ts.map +1 -0
  341. package/dist/dashboard/control-csrf.js +392 -0
  342. package/dist/dashboard/control-csrf.js.map +1 -0
  343. package/dist/dashboard/daemon-reconcile.d.ts +26 -0
  344. package/dist/dashboard/daemon-reconcile.d.ts.map +1 -0
  345. package/dist/dashboard/daemon-reconcile.js +46 -0
  346. package/dist/dashboard/daemon-reconcile.js.map +1 -0
  347. package/dist/dashboard/debug-terminal.d.ts.map +1 -1
  348. package/dist/dashboard/debug-terminal.js +18 -4
  349. package/dist/dashboard/debug-terminal.js.map +1 -1
  350. package/dist/dashboard/events-sse.d.ts +60 -0
  351. package/dist/dashboard/events-sse.d.ts.map +1 -0
  352. package/dist/dashboard/events-sse.js +63 -0
  353. package/dist/dashboard/events-sse.js.map +1 -0
  354. package/dist/dashboard/h5-auth.d.ts +256 -0
  355. package/dist/dashboard/h5-auth.d.ts.map +1 -0
  356. package/dist/dashboard/h5-auth.js +825 -0
  357. package/dist/dashboard/h5-auth.js.map +1 -0
  358. package/dist/dashboard/managed-spawn.d.ts +36 -0
  359. package/dist/dashboard/managed-spawn.d.ts.map +1 -0
  360. package/dist/dashboard/managed-spawn.js +169 -0
  361. package/dist/dashboard/managed-spawn.js.map +1 -0
  362. package/dist/dashboard/preview-content-capability.d.ts +41 -0
  363. package/dist/dashboard/preview-content-capability.d.ts.map +1 -0
  364. package/dist/dashboard/preview-content-capability.js +127 -0
  365. package/dist/dashboard/preview-content-capability.js.map +1 -0
  366. package/dist/dashboard/preview-contract.d.ts +85 -0
  367. package/dist/dashboard/preview-contract.d.ts.map +1 -0
  368. package/dist/dashboard/preview-contract.js +198 -0
  369. package/dist/dashboard/preview-contract.js.map +1 -0
  370. package/dist/dashboard/preview-guard-page.d.ts +52 -0
  371. package/dist/dashboard/preview-guard-page.d.ts.map +1 -0
  372. package/dist/dashboard/preview-guard-page.js +162 -0
  373. package/dist/dashboard/preview-guard-page.js.map +1 -0
  374. package/dist/dashboard/preview-interaction.d.ts +57 -0
  375. package/dist/dashboard/preview-interaction.d.ts.map +1 -0
  376. package/dist/dashboard/preview-interaction.js +198 -0
  377. package/dist/dashboard/preview-interaction.js.map +1 -0
  378. package/dist/dashboard/preview-proxy.d.ts +113 -0
  379. package/dist/dashboard/preview-proxy.d.ts.map +1 -0
  380. package/dist/dashboard/preview-proxy.js +543 -0
  381. package/dist/dashboard/preview-proxy.js.map +1 -0
  382. package/dist/dashboard/public-redact.d.ts +23 -0
  383. package/dist/dashboard/public-redact.d.ts.map +1 -1
  384. package/dist/dashboard/public-redact.js +90 -21
  385. package/dist/dashboard/public-redact.js.map +1 -1
  386. package/dist/dashboard/request-identity.d.ts +77 -0
  387. package/dist/dashboard/request-identity.d.ts.map +1 -0
  388. package/dist/dashboard/request-identity.js +72 -0
  389. package/dist/dashboard/request-identity.js.map +1 -0
  390. package/dist/dashboard/session-cleanup.d.ts +5 -0
  391. package/dist/dashboard/session-cleanup.d.ts.map +1 -1
  392. package/dist/dashboard/session-cleanup.js +4 -0
  393. package/dist/dashboard/session-cleanup.js.map +1 -1
  394. package/dist/dashboard/settings-write-applier.d.ts +5 -1
  395. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  396. package/dist/dashboard/settings-write-applier.js +14 -0
  397. package/dist/dashboard/settings-write-applier.js.map +1 -1
  398. package/dist/dashboard/standing-link.d.ts +76 -0
  399. package/dist/dashboard/standing-link.d.ts.map +1 -0
  400. package/dist/dashboard/standing-link.js +111 -0
  401. package/dist/dashboard/standing-link.js.map +1 -0
  402. package/dist/dashboard/terminal-control.d.ts +105 -0
  403. package/dist/dashboard/terminal-control.d.ts.map +1 -0
  404. package/dist/dashboard/terminal-control.js +296 -0
  405. package/dist/dashboard/terminal-control.js.map +1 -0
  406. package/dist/dashboard/terminal-front-proxy.d.ts +55 -0
  407. package/dist/dashboard/terminal-front-proxy.d.ts.map +1 -0
  408. package/dist/dashboard/terminal-front-proxy.js +397 -0
  409. package/dist/dashboard/terminal-front-proxy.js.map +1 -0
  410. package/dist/dashboard/terminal-view-capability.d.ts +97 -0
  411. package/dist/dashboard/terminal-view-capability.d.ts.map +1 -0
  412. package/dist/dashboard/terminal-view-capability.js +145 -0
  413. package/dist/dashboard/terminal-view-capability.js.map +1 -0
  414. package/dist/dashboard/web/agent-workbench-api.d.ts +59 -0
  415. package/dist/dashboard/web/agent-workbench-api.d.ts.map +1 -0
  416. package/dist/dashboard/web/agent-workbench-api.js +227 -0
  417. package/dist/dashboard/web/agent-workbench-api.js.map +1 -0
  418. package/dist/dashboard/web/agent-workbench-appearance-menu.d.ts +59 -0
  419. package/dist/dashboard/web/agent-workbench-appearance-menu.d.ts.map +1 -0
  420. package/dist/dashboard/web/agent-workbench-appearance-menu.js +195 -0
  421. package/dist/dashboard/web/agent-workbench-appearance-menu.js.map +1 -0
  422. package/dist/dashboard/web/agent-workbench-appearance.d.ts +222 -0
  423. package/dist/dashboard/web/agent-workbench-appearance.d.ts.map +1 -0
  424. package/dist/dashboard/web/agent-workbench-appearance.js +499 -0
  425. package/dist/dashboard/web/agent-workbench-appearance.js.map +1 -0
  426. package/dist/dashboard/web/agent-workbench-capabilities.d.ts +13 -0
  427. package/dist/dashboard/web/agent-workbench-capabilities.d.ts.map +1 -0
  428. package/dist/dashboard/web/agent-workbench-capabilities.js +24 -0
  429. package/dist/dashboard/web/agent-workbench-capabilities.js.map +1 -0
  430. package/dist/dashboard/web/agent-workbench-chat.d.ts +90 -0
  431. package/dist/dashboard/web/agent-workbench-chat.d.ts.map +1 -0
  432. package/dist/dashboard/web/agent-workbench-chat.js +168 -0
  433. package/dist/dashboard/web/agent-workbench-chat.js.map +1 -0
  434. package/dist/dashboard/web/agent-workbench-dock-page.d.ts +3 -0
  435. package/dist/dashboard/web/agent-workbench-dock-page.d.ts.map +1 -0
  436. package/dist/dashboard/web/agent-workbench-dock-page.js +23 -0
  437. package/dist/dashboard/web/agent-workbench-dock-page.js.map +1 -0
  438. package/dist/dashboard/web/agent-workbench-dock-view.d.ts +22 -0
  439. package/dist/dashboard/web/agent-workbench-dock-view.d.ts.map +1 -0
  440. package/dist/dashboard/web/agent-workbench-dock-view.js +76 -0
  441. package/dist/dashboard/web/agent-workbench-dock-view.js.map +1 -0
  442. package/dist/dashboard/web/agent-workbench-model.d.ts +196 -0
  443. package/dist/dashboard/web/agent-workbench-model.d.ts.map +1 -0
  444. package/dist/dashboard/web/agent-workbench-model.js +529 -0
  445. package/dist/dashboard/web/agent-workbench-model.js.map +1 -0
  446. package/dist/dashboard/web/agent-workbench-page.d.ts +3 -0
  447. package/dist/dashboard/web/agent-workbench-page.d.ts.map +1 -0
  448. package/dist/dashboard/web/agent-workbench-page.js +27 -0
  449. package/dist/dashboard/web/agent-workbench-page.js.map +1 -0
  450. package/dist/dashboard/web/agent-workbench-panes.d.ts +49 -0
  451. package/dist/dashboard/web/agent-workbench-panes.d.ts.map +1 -0
  452. package/dist/dashboard/web/agent-workbench-panes.js +468 -0
  453. package/dist/dashboard/web/agent-workbench-panes.js.map +1 -0
  454. package/dist/dashboard/web/agent-workbench-session-list.d.ts +42 -0
  455. package/dist/dashboard/web/agent-workbench-session-list.d.ts.map +1 -0
  456. package/dist/dashboard/web/agent-workbench-session-list.js +353 -0
  457. package/dist/dashboard/web/agent-workbench-session-list.js.map +1 -0
  458. package/dist/dashboard/web/agent-workbench-storage.d.ts +49 -0
  459. package/dist/dashboard/web/agent-workbench-storage.d.ts.map +1 -0
  460. package/dist/dashboard/web/agent-workbench-storage.js +197 -0
  461. package/dist/dashboard/web/agent-workbench-storage.js.map +1 -0
  462. package/dist/dashboard/web/agent-workbench-touch.d.ts +46 -0
  463. package/dist/dashboard/web/agent-workbench-touch.d.ts.map +1 -0
  464. package/dist/dashboard/web/agent-workbench-touch.js +96 -0
  465. package/dist/dashboard/web/agent-workbench-touch.js.map +1 -0
  466. package/dist/dashboard/web/agent-workbench-view.d.ts +34 -0
  467. package/dist/dashboard/web/agent-workbench-view.d.ts.map +1 -0
  468. package/dist/dashboard/web/agent-workbench-view.js +439 -0
  469. package/dist/dashboard/web/agent-workbench-view.js.map +1 -0
  470. package/dist/dashboard/web/app.d.ts.map +1 -1
  471. package/dist/dashboard/web/app.js +63 -2
  472. package/dist/dashboard/web/app.js.map +1 -1
  473. package/dist/dashboard/web/bot-defaults-page.d.ts +11 -0
  474. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  475. package/dist/dashboard/web/bot-defaults-page.js +267 -36
  476. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  477. package/dist/dashboard/web/bot-defaults.d.ts +6 -0
  478. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  479. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  480. package/dist/dashboard/web/control-csrf.d.ts +4 -0
  481. package/dist/dashboard/web/control-csrf.d.ts.map +1 -0
  482. package/dist/dashboard/web/control-csrf.js +26 -0
  483. package/dist/dashboard/web/control-csrf.js.map +1 -0
  484. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
  485. package/dist/dashboard/web/dashboard-routes.js +2 -0
  486. package/dist/dashboard/web/dashboard-routes.js.map +1 -1
  487. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  488. package/dist/dashboard/web/groups-page.js +11 -2
  489. package/dist/dashboard/web/groups-page.js.map +1 -1
  490. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  491. package/dist/dashboard/web/i18n.js +132 -6
  492. package/dist/dashboard/web/i18n.js.map +1 -1
  493. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  494. package/dist/dashboard/web/overview-page.js +3 -2
  495. package/dist/dashboard/web/overview-page.js.map +1 -1
  496. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  497. package/dist/dashboard/web/sessions-page.js +41 -1
  498. package/dist/dashboard/web/sessions-page.js.map +1 -1
  499. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  500. package/dist/dashboard/web/sessions.js +5 -1
  501. package/dist/dashboard/web/sessions.js.map +1 -1
  502. package/dist/dashboard/web/settings-page.d.ts +3 -0
  503. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  504. package/dist/dashboard/web/settings-page.js +56 -10
  505. package/dist/dashboard/web/settings-page.js.map +1 -1
  506. package/dist/dashboard/web/store.d.ts +27 -2
  507. package/dist/dashboard/web/store.d.ts.map +1 -1
  508. package/dist/dashboard/web/store.js +43 -4
  509. package/dist/dashboard/web/store.js.map +1 -1
  510. package/dist/dashboard/web/ui.d.ts +3 -0
  511. package/dist/dashboard/web/ui.d.ts.map +1 -1
  512. package/dist/dashboard/web/ui.js +11 -0
  513. package/dist/dashboard/web/ui.js.map +1 -1
  514. package/dist/dashboard/web/update-action.d.ts +12 -0
  515. package/dist/dashboard/web/update-action.d.ts.map +1 -1
  516. package/dist/dashboard/web/update-action.js +11 -0
  517. package/dist/dashboard/web/update-action.js.map +1 -1
  518. package/dist/dashboard/workbench-doctor.d.ts +114 -0
  519. package/dist/dashboard/workbench-doctor.d.ts.map +1 -0
  520. package/dist/dashboard/workbench-doctor.js +620 -0
  521. package/dist/dashboard/workbench-doctor.js.map +1 -0
  522. package/dist/dashboard/workbench-ticket.d.ts +165 -0
  523. package/dist/dashboard/workbench-ticket.d.ts.map +1 -0
  524. package/dist/dashboard/workbench-ticket.js +495 -0
  525. package/dist/dashboard/workbench-ticket.js.map +1 -0
  526. package/dist/dashboard-web/app.js +1 -1
  527. package/dist/dashboard-web/chunks/agent-workbench-dock-page-IKAC5CFL.js +1 -0
  528. package/dist/dashboard-web/chunks/agent-workbench-page-M53UN5EB.js +1 -0
  529. package/dist/dashboard-web/chunks/bot-defaults-page-YKE5SDZF.js +10 -0
  530. package/dist/dashboard-web/chunks/chunk-22WIADUT.js +2 -0
  531. package/dist/dashboard-web/chunks/chunk-24ONYQMR.js +1 -0
  532. package/dist/dashboard-web/chunks/{chunk-Z7B3E3US.js → chunk-2W6SCN3M.js} +1 -1
  533. package/dist/dashboard-web/chunks/chunk-4XNJX6B3.js +1 -0
  534. package/dist/dashboard-web/chunks/{chunk-VMWNR3SV.js → chunk-F6KNPF4R.js} +11 -9
  535. package/dist/dashboard-web/chunks/chunk-FXW3V4JR.js +1 -0
  536. package/dist/dashboard-web/chunks/chunk-G5ZS2YUS.js +1 -0
  537. package/dist/dashboard-web/chunks/chunk-KTQ7B6ZR.js +1 -0
  538. package/dist/dashboard-web/chunks/{chunk-Z7DO42GJ.js → chunk-NACP7BMR.js} +1 -1
  539. package/dist/dashboard-web/chunks/{connectors-page-CPH6VVFY.js → connectors-page-VOISXXII.js} +1 -1
  540. package/dist/dashboard-web/chunks/{feedback-page-J2FKQ3LK.js → feedback-page-RN6HRZMS.js} +1 -1
  541. package/dist/dashboard-web/chunks/groups-page-UQT6DCB7.js +8 -0
  542. package/dist/dashboard-web/chunks/{insights-page-A2LWTKJD.js → insights-page-HJFDYR5N.js} +3 -3
  543. package/dist/dashboard-web/chunks/{monitor-room-2YR752E3.js → monitor-room-V7PCP47V.js} +1 -1
  544. package/dist/dashboard-web/chunks/{monitoring-page-BGYSKZGM.js → monitoring-page-NKEKVQAP.js} +1 -1
  545. package/dist/dashboard-web/chunks/{office-page-ZZHTEAE4.js → office-page-GVJF73XW.js} +1 -1
  546. package/dist/dashboard-web/chunks/overview-page-KHLV6VTI.js +1 -0
  547. package/dist/dashboard-web/chunks/{plugin-page-VEGTCEAS.js → plugin-page-J3OF5IY4.js} +1 -1
  548. package/dist/dashboard-web/chunks/{roles-page-YUC4YLJG.js → roles-page-WQIRSOLZ.js} +1 -1
  549. package/dist/dashboard-web/chunks/{schedules-page-2L2NKTDJ.js → schedules-page-J2DEY2X6.js} +1 -1
  550. package/dist/dashboard-web/chunks/sessions-page-7BQFEA5P.js +8 -0
  551. package/dist/dashboard-web/chunks/settings-page-BJEIOFJH.js +2 -0
  552. package/dist/dashboard-web/chunks/{skills-page-DQPBBI3T.js → skills-page-HGIFR3IU.js} +1 -1
  553. package/dist/dashboard-web/chunks/{team-federation-page-LQKLDV4K.js → team-federation-page-MR5ZPL4B.js} +1 -1
  554. package/dist/dashboard-web/chunks/{v3-page-RVKQIMAP.js → v3-page-GBR5JWPE.js} +2 -2
  555. package/dist/dashboard-web/chunks/{whiteboards-page-S5K55HRZ.js → whiteboards-page-QAZM4BN3.js} +1 -1
  556. package/dist/dashboard-web/index.html +8 -1
  557. package/dist/dashboard-web/style.css +2006 -10
  558. package/dist/dashboard.js +1006 -263
  559. package/dist/dashboard.js.map +1 -1
  560. package/dist/global-config.d.ts +30 -0
  561. package/dist/global-config.d.ts.map +1 -1
  562. package/dist/global-config.js +33 -0
  563. package/dist/global-config.js.map +1 -1
  564. package/dist/i18n/en.d.ts.map +1 -1
  565. package/dist/i18n/en.js +31 -1
  566. package/dist/i18n/en.js.map +1 -1
  567. package/dist/i18n/zh.d.ts.map +1 -1
  568. package/dist/i18n/zh.js +28 -1
  569. package/dist/i18n/zh.js.map +1 -1
  570. package/dist/im/lark/card-builder.d.ts +1 -1
  571. package/dist/im/lark/card-builder.d.ts.map +1 -1
  572. package/dist/im/lark/card-builder.js +22 -6
  573. package/dist/im/lark/card-builder.js.map +1 -1
  574. package/dist/im/lark/card-handler.d.ts.map +1 -1
  575. package/dist/im/lark/card-handler.js +118 -24
  576. package/dist/im/lark/card-handler.js.map +1 -1
  577. package/dist/im/lark/client.d.ts +15 -0
  578. package/dist/im/lark/client.d.ts.map +1 -1
  579. package/dist/im/lark/client.js +30 -0
  580. package/dist/im/lark/client.js.map +1 -1
  581. package/dist/im/lark/event-dispatcher.d.ts +48 -0
  582. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  583. package/dist/im/lark/event-dispatcher.js +133 -22
  584. package/dist/im/lark/event-dispatcher.js.map +1 -1
  585. package/dist/im/lark/identity-cache.d.ts +14 -6
  586. package/dist/im/lark/identity-cache.d.ts.map +1 -1
  587. package/dist/im/lark/identity-cache.js +69 -26
  588. package/dist/im/lark/identity-cache.js.map +1 -1
  589. package/dist/im/lark/lark-hosts.d.ts +13 -0
  590. package/dist/im/lark/lark-hosts.d.ts.map +1 -1
  591. package/dist/im/lark/lark-hosts.js +16 -0
  592. package/dist/im/lark/lark-hosts.js.map +1 -1
  593. package/dist/im/lark/overview-card.d.ts +22 -0
  594. package/dist/im/lark/overview-card.d.ts.map +1 -1
  595. package/dist/im/lark/overview-card.js +53 -3
  596. package/dist/im/lark/overview-card.js.map +1 -1
  597. package/dist/im/lark/sessions-card.d.ts.map +1 -1
  598. package/dist/im/lark/sessions-card.js +26 -3
  599. package/dist/im/lark/sessions-card.js.map +1 -1
  600. package/dist/im/lark/workflow-slash-command.d.ts +6 -0
  601. package/dist/im/lark/workflow-slash-command.d.ts.map +1 -1
  602. package/dist/im/lark/workflow-slash-command.js +7 -0
  603. package/dist/im/lark/workflow-slash-command.js.map +1 -1
  604. package/dist/index-daemon.js +27 -4
  605. package/dist/index-daemon.js.map +1 -1
  606. package/dist/index-dashboard.d.ts +3 -0
  607. package/dist/index-dashboard.d.ts.map +1 -0
  608. package/dist/index-dashboard.js +94 -0
  609. package/dist/index-dashboard.js.map +1 -0
  610. package/dist/platform/team-agents-client.d.ts +199 -0
  611. package/dist/platform/team-agents-client.d.ts.map +1 -0
  612. package/dist/platform/team-agents-client.js +263 -0
  613. package/dist/platform/team-agents-client.js.map +1 -0
  614. package/dist/platform/tunnel-client.d.ts +6 -0
  615. package/dist/platform/tunnel-client.d.ts.map +1 -1
  616. package/dist/platform/tunnel-client.js.map +1 -1
  617. package/dist/services/async-trigger-state.d.ts +7 -3
  618. package/dist/services/async-trigger-state.d.ts.map +1 -1
  619. package/dist/services/async-trigger-state.js +28 -0
  620. package/dist/services/async-trigger-state.js.map +1 -1
  621. package/dist/services/async-trigger-store.d.ts +13 -4
  622. package/dist/services/async-trigger-store.d.ts.map +1 -1
  623. package/dist/services/async-trigger-store.js +55 -8
  624. package/dist/services/async-trigger-store.js.map +1 -1
  625. package/dist/services/bot-config-store.d.ts +1 -11
  626. package/dist/services/bot-config-store.d.ts.map +1 -1
  627. package/dist/services/bot-config-store.js +27 -3
  628. package/dist/services/bot-config-store.js.map +1 -1
  629. package/dist/services/bot-profile-store.d.ts +17 -2
  630. package/dist/services/bot-profile-store.d.ts.map +1 -1
  631. package/dist/services/bot-profile-store.js +93 -12
  632. package/dist/services/bot-profile-store.js.map +1 -1
  633. package/dist/services/bridge-turn-queue.d.ts +10 -1
  634. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  635. package/dist/services/bridge-turn-queue.js +29 -9
  636. package/dist/services/bridge-turn-queue.js.map +1 -1
  637. package/dist/services/claude-transcript.d.ts +19 -0
  638. package/dist/services/claude-transcript.d.ts.map +1 -1
  639. package/dist/services/claude-transcript.js +57 -5
  640. package/dist/services/claude-transcript.js.map +1 -1
  641. package/dist/services/codex-app-threads.d.ts +2 -0
  642. package/dist/services/codex-app-threads.d.ts.map +1 -1
  643. package/dist/services/codex-app-threads.js +1 -1
  644. package/dist/services/codex-app-threads.js.map +1 -1
  645. package/dist/services/codex-reasoning-effort.d.ts +8 -0
  646. package/dist/services/codex-reasoning-effort.d.ts.map +1 -1
  647. package/dist/services/codex-reasoning-effort.js +24 -0
  648. package/dist/services/codex-reasoning-effort.js.map +1 -1
  649. package/dist/services/cursor-resume-policy.d.ts.map +1 -1
  650. package/dist/services/cursor-resume-policy.js +15 -3
  651. package/dist/services/cursor-resume-policy.js.map +1 -1
  652. package/dist/services/open-platform-rename.d.ts.map +1 -1
  653. package/dist/services/open-platform-rename.js +3 -2
  654. package/dist/services/open-platform-rename.js.map +1 -1
  655. package/dist/services/ordinary-turn-recovery.d.ts +76 -0
  656. package/dist/services/ordinary-turn-recovery.d.ts.map +1 -0
  657. package/dist/services/ordinary-turn-recovery.js +349 -0
  658. package/dist/services/ordinary-turn-recovery.js.map +1 -0
  659. package/dist/services/resume-fresh-policy.d.ts +17 -0
  660. package/dist/services/resume-fresh-policy.d.ts.map +1 -0
  661. package/dist/services/resume-fresh-policy.js +24 -0
  662. package/dist/services/resume-fresh-policy.js.map +1 -0
  663. package/dist/services/session-group-title.d.ts +1 -0
  664. package/dist/services/session-group-title.d.ts.map +1 -1
  665. package/dist/services/session-group-title.js +16 -1
  666. package/dist/services/session-group-title.js.map +1 -1
  667. package/dist/services/session-groups-store.d.ts +30 -0
  668. package/dist/services/session-groups-store.d.ts.map +1 -1
  669. package/dist/services/session-groups-store.js +26 -4
  670. package/dist/services/session-groups-store.js.map +1 -1
  671. package/dist/services/session-owner-notification.d.ts +9 -0
  672. package/dist/services/session-owner-notification.d.ts.map +1 -0
  673. package/dist/services/session-owner-notification.js +10 -0
  674. package/dist/services/session-owner-notification.js.map +1 -0
  675. package/dist/services/session-owner-reminder-config-store.d.ts +9 -0
  676. package/dist/services/session-owner-reminder-config-store.d.ts.map +1 -0
  677. package/dist/services/session-owner-reminder-config-store.js +24 -0
  678. package/dist/services/session-owner-reminder-config-store.js.map +1 -0
  679. package/dist/services/session-owner-reminder-store.d.ts +5 -0
  680. package/dist/services/session-owner-reminder-store.d.ts.map +1 -0
  681. package/dist/services/session-owner-reminder-store.js +54 -0
  682. package/dist/services/session-owner-reminder-store.js.map +1 -0
  683. package/dist/services/session-store.d.ts +98 -21
  684. package/dist/services/session-store.d.ts.map +1 -1
  685. package/dist/services/session-store.js +406 -48
  686. package/dist/services/session-store.js.map +1 -1
  687. package/dist/services/structured-bridge-clis.d.ts +9 -5
  688. package/dist/services/structured-bridge-clis.d.ts.map +1 -1
  689. package/dist/services/structured-bridge-clis.js +9 -4
  690. package/dist/services/structured-bridge-clis.js.map +1 -1
  691. package/dist/services/transcript-resolver.d.ts +1 -1
  692. package/dist/services/transcript-resolver.d.ts.map +1 -1
  693. package/dist/services/transcript-resolver.js +6 -1
  694. package/dist/services/transcript-resolver.js.map +1 -1
  695. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  696. package/dist/setup/bot-config-editor.js +7 -2
  697. package/dist/setup/bot-config-editor.js.map +1 -1
  698. package/dist/setup/ensure-herdr-integrations.d.ts +13 -0
  699. package/dist/setup/ensure-herdr-integrations.d.ts.map +1 -1
  700. package/dist/setup/ensure-herdr-integrations.js +21 -3
  701. package/dist/setup/ensure-herdr-integrations.js.map +1 -1
  702. package/dist/setup/open-platform-automation.d.ts +1 -0
  703. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  704. package/dist/setup/open-platform-automation.js +107 -7
  705. package/dist/setup/open-platform-automation.js.map +1 -1
  706. package/dist/skills/definitions.d.ts +17 -0
  707. package/dist/skills/definitions.d.ts.map +1 -1
  708. package/dist/skills/definitions.js +78 -8
  709. package/dist/skills/definitions.js.map +1 -1
  710. package/dist/skills/injection-mode.d.ts +24 -3
  711. package/dist/skills/injection-mode.d.ts.map +1 -1
  712. package/dist/skills/injection-mode.js +64 -15
  713. package/dist/skills/injection-mode.js.map +1 -1
  714. package/dist/skills/installer.d.ts +18 -0
  715. package/dist/skills/installer.d.ts.map +1 -1
  716. package/dist/skills/installer.js +45 -1
  717. package/dist/skills/installer.js.map +1 -1
  718. package/dist/types.d.ts +221 -10
  719. package/dist/types.d.ts.map +1 -1
  720. package/dist/utils/child-env.d.ts +92 -2
  721. package/dist/utils/child-env.d.ts.map +1 -1
  722. package/dist/utils/child-env.js +195 -1
  723. package/dist/utils/child-env.js.map +1 -1
  724. package/dist/utils/cli-usage-limit.d.ts +25 -14
  725. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  726. package/dist/utils/cli-usage-limit.js +25 -15
  727. package/dist/utils/cli-usage-limit.js.map +1 -1
  728. package/dist/utils/daemon-rejection-guard.d.ts +35 -0
  729. package/dist/utils/daemon-rejection-guard.d.ts.map +1 -0
  730. package/dist/utils/daemon-rejection-guard.js +101 -0
  731. package/dist/utils/daemon-rejection-guard.js.map +1 -0
  732. package/dist/utils/dashboard-env.d.ts +53 -0
  733. package/dist/utils/dashboard-env.d.ts.map +1 -0
  734. package/dist/utils/dashboard-env.js +116 -0
  735. package/dist/utils/dashboard-env.js.map +1 -0
  736. package/dist/utils/global-install.d.ts.map +1 -1
  737. package/dist/utils/global-install.js +61 -5
  738. package/dist/utils/global-install.js.map +1 -1
  739. package/dist/utils/install-diagnostics.d.ts +14 -7
  740. package/dist/utils/install-diagnostics.d.ts.map +1 -1
  741. package/dist/utils/install-diagnostics.js +20 -11
  742. package/dist/utils/install-diagnostics.js.map +1 -1
  743. package/dist/utils/local-dev-update.d.ts +132 -0
  744. package/dist/utils/local-dev-update.d.ts.map +1 -0
  745. package/dist/utils/local-dev-update.js +176 -0
  746. package/dist/utils/local-dev-update.js.map +1 -0
  747. package/dist/utils/pending-input-queue.d.ts +12 -1
  748. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  749. package/dist/utils/pending-input-queue.js.map +1 -1
  750. package/dist/worker.js +1284 -225
  751. package/dist/worker.js.map +1 -1
  752. package/dist/workflows/definition.d.ts +68 -68
  753. package/dist/workflows/events/payloads.d.ts +14 -14
  754. package/dist/workflows/events/schema.d.ts +312 -312
  755. package/dist/workflows/migration/v2-run-archive-schema.d.ts +40 -40
  756. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  757. package/dist/workflows/v3/cli-run.js +7 -0
  758. package/dist/workflows/v3/cli-run.js.map +1 -1
  759. package/dist/workflows/v3/goal-cli.d.ts +3 -0
  760. package/dist/workflows/v3/goal-cli.d.ts.map +1 -1
  761. package/dist/workflows/v3/goal-cli.js +11 -0
  762. package/dist/workflows/v3/goal-cli.js.map +1 -1
  763. package/dist/workflows/v3/run-envelope.d.ts +144 -144
  764. package/package.json +3 -2
  765. package/dist/cli/pm2-god-admission.d.ts +0 -8
  766. package/dist/cli/pm2-god-admission.d.ts.map +0 -1
  767. package/dist/cli/pm2-god-admission.js +0 -25
  768. package/dist/cli/pm2-god-admission.js.map +0 -1
  769. package/dist/core/riff-shutdown-detach.d.ts.map +0 -1
  770. package/dist/core/riff-shutdown-detach.js.map +0 -1
  771. package/dist/core/riff-worker-shutdown-readiness.d.ts.map +0 -1
  772. package/dist/core/riff-worker-shutdown-readiness.js.map +0 -1
  773. package/dist/dashboard-web/chunks/bot-defaults-page-65SMZ4QY.js +0 -10
  774. package/dist/dashboard-web/chunks/chunk-G5XGBCM6.js +0 -1
  775. package/dist/dashboard-web/chunks/chunk-IKN6WURK.js +0 -1
  776. package/dist/dashboard-web/chunks/chunk-WLIVBPJC.js +0 -1
  777. package/dist/dashboard-web/chunks/groups-page-VDOOLS4M.js +0 -8
  778. package/dist/dashboard-web/chunks/overview-page-7NYPKQSB.js +0 -1
  779. package/dist/dashboard-web/chunks/sessions-page-DYZZMKFL.js +0 -8
  780. package/dist/dashboard-web/chunks/settings-page-LIULUSMH.js +0 -2
@@ -0,0 +1,577 @@
1
+ import type { TerminationOutcome, TurnQuiescence } from './mojo-process-tree.js';
2
+ import type { SessionBackend, SessionAbortDestroyResult, SessionDestroyResult, SessionShutdownDetachResult, SpawnOpts } from './types.js';
3
+ import type { MojoAuthStatus, MojoLivePatch, EffectiveMojoConfig, MojoCancelOutcome, MojoLocalCloseResidual } from './mojo-types.js';
4
+ /**
5
+ * Pre-exec cgroup enrolment shim (P0: the spawn→enrolment window).
6
+ *
7
+ * Post-spawn migration cannot capture descendants the child forked before the
8
+ * parent's `cgroup.procs` write landed — cgroup v2 does not retroactively move
9
+ * an existing process's descendants — so the enrolment has to happen INSIDE the
10
+ * child, before any target code runs. `/bin/sh` writes its own pid into the
11
+ * prepared boundary and only then `exec`s the real launch, keeping the same
12
+ * pid. Between fork and the write the process executes just this shim, which
13
+ * forks nothing, so every descendant of the target is born enrolled.
14
+ *
15
+ * The `|| exit 97` is the handshake: an enrolment failure must NOT fall through
16
+ * to running a credentialed binary outside the boundary. Exit 97 is reserved —
17
+ * the parent maps it to a refused turn (see MOJO_ENROLL_FAILED_EXIT).
18
+ *
19
+ * Invoked as: sh -c SHIM <name> <cgroup.procs path> <bin> <args...>
20
+ * ($0 = name, $1 = procs path; after `shift`, "$@" = bin + args.)
21
+ */
22
+ export declare const MOJO_CGROUP_ENROLL_SHIM = "echo \"$$\" > \"$1\" || exit 97; shift; exec \"$@\"";
23
+ export declare const MOJO_ENROLL_FAILED_EXIT = 97;
24
+ export declare class MojoBackend implements SessionBackend {
25
+ /** Mutable: applyLivePatch rotates credentials without a refork. */
26
+ private config;
27
+ private readonly sessionId;
28
+ private dataCb;
29
+ private taskDoneCb;
30
+ private exitCb;
31
+ private taskIdCb;
32
+ private turnFinalCb;
33
+ private outputBuffer;
34
+ /**
35
+ * This turn's assistant answer, accumulated from the SAME text the user
36
+ * sees on the card (emitText is the single choke point for model prose —
37
+ * tool-call/warning chrome goes through emitLine and is deliberately left
38
+ * out). Reset per turn in runTurn(); handed to turnFinalCb at settleTurn().
39
+ */
40
+ private turnFinalText;
41
+ /** mojo-side session id — the resume lineage. */
42
+ private cliSessionId;
43
+ private child;
44
+ private killed;
45
+ private closing;
46
+ /** A close attempt observed evidence that something credentialed may still be
47
+ * alive (an unproven local subtree, or a dispatched turn with no lineage).
48
+ *
49
+ * ONE-WAY for the lifetime of this backend: nothing clears it. The CLOSE stays
50
+ * retryable though — a later destroySession() whose terminateChildProven()
51
+ * succeeds proceeds to the remote cancel and returns ok:true — and that
52
+ * liveness property IS covered by a test, because a fence that also wedged the
53
+ * close would be worse than the bug it fixes.
54
+ *
55
+ * Honest scope note: the one-way lifetime itself is an implementation fact, not
56
+ * a tested guarantee. Once a close succeeds `killed` refuses writes anyway, so
57
+ * clearing this field at that point is an equivalent mutation (verified: it
58
+ * survives). Do not read it as a proven invariant. */
59
+ private admissionFenced;
60
+ /** Graceful daemon shutdown is a non-cancelling detach. Fence only writes
61
+ * arriving after prepare, then wait just long enough for an already accepted
62
+ * first turn to publish its `system/init` lineage. */
63
+ private shutdownDetaching;
64
+ private shutdownDetachPrepared;
65
+ private shutdownDetachAttempt;
66
+ private shutdownDetachInFlight;
67
+ private shutdownDetachAbortInFlight;
68
+ private shutdownDetachWake;
69
+ private lineageWaiters;
70
+ /** At least one turn crossed the adapter boundary while no lineage was
71
+ * known. A later process exit without `system/init` cannot prove that no
72
+ * remote session was created, so shutdown must not persist authoritative
73
+ * null merely because the local write promise settled. */
74
+ private acceptedWriteWithoutLineage;
75
+ /** Inherited by every descendant of every turn, so the subtree stays
76
+ * enumerable after setsid/reparenting. Per BACKEND, not per turn: a tool left
77
+ * behind by an earlier turn must still be found. */
78
+ /**
79
+ * Env nonce injected into the turn subtree, inherited by every descendant.
80
+ *
81
+ * NOT `readonly`, and NOT freshly random per instance: a replacement worker
82
+ * generation builds a NEW backend for the SAME session, and a new nonce would
83
+ * make the previous generation's tree unenumerable forever (the env signal is
84
+ * the only one that survives setsid + reparenting). So it is adopted from an
85
+ * inherited containment handle whenever one is outstanding.
86
+ */
87
+ private treeNonce;
88
+ /**
89
+ * Worker generation, used only for operator-facing logs on the handle. Derived
90
+ * from how many handles this session already has outstanding, so a replacement
91
+ * generation is distinguishable from the first one.
92
+ */
93
+ private readonly containmentGeneration;
94
+ /**
95
+ * The cgroup boundary prepared for the CURRENT turn, created before spawn so
96
+ * the child can enrol itself pre-exec (see MOJO_CGROUP_ENROLL_SHIM). Null on
97
+ * hosts without cgroup v2 delegation — those turns get a weak handle instead.
98
+ */
99
+ private preparedBoundary;
100
+ /** Realpath of this session's isolated workspace (host execution only).
101
+ * Populated lazily by resolveCwd(); spawn and close share this exact
102
+ * string so the close-side daemon-registry match cannot drift. */
103
+ private isolatedWorkspace?;
104
+ /** True for control-plane-only instances (the workerless orphan-cancel
105
+ * helper): they never run an agent turn, so isolating their cwd would
106
+ * only mint a junk workspace dir (and potentially a junk daemon) for a
107
+ * sentinel session id. */
108
+ private readonly controlPlaneOnly;
109
+ /** One-shot resolver for the CURRENT runTurn promise, fired by settleTurn.
110
+ * The turn is accounted for by its result event, never by the client
111
+ * process ending — see runTurn for why the process may outlive the turn. */
112
+ private turnResolve;
113
+ /**
114
+ * Latched once a strong boundary proved unusable at runtime — the shim's
115
+ * enrolment write was rejected (exit 97). The prepare-time probe only opens
116
+ * cgroup.procs; a host that rejects the pid WRITE (delegation containment)
117
+ * would otherwise fail EVERY turn with exit 97 forever. After the first such
118
+ * failure this backend degrades to the weak post-spawn handle instead.
119
+ */
120
+ private strongBoundaryUnusable;
121
+ /** True for the turn currently in flight iff it launched through the cgroup
122
+ * enrolment shim, so a genuine mojo `exit 97` is not misread as an enrolment
123
+ * failure (and vice versa) on weak-handle hosts where no shim runs. */
124
+ private usedEnrolShim;
125
+ /**
126
+ * Latched when a spawned turn's containment handle could NOT be persisted
127
+ * AND the started subtree could not be proven terminated afterwards. While
128
+ * set, every close/destroy proof is refused: there is a tree nothing durable
129
+ * describes, so publishing a closed row would drop the device-isolation
130
+ * blocker over a subtree we cannot enumerate.
131
+ */
132
+ private containmentUnrecorded;
133
+ /**
134
+ * Root pid of the most recent turn, kept AFTER `this.child` is cleared.
135
+ *
136
+ * The child's own `close` handler nulls `this.child`, so a later `/close` had
137
+ * nothing left to check and skipped the subtree scan entirely — the exact hole
138
+ * that let a survivor go unnoticed once its parent had exited.
139
+ */
140
+ private lastTurnPid;
141
+ /**
142
+ * Recycle-proof identity of `lastTurnPid`, captured AT SPAWN.
143
+ *
144
+ * The pid number alone is not a handle: by the time teardown runs, the kernel
145
+ * may have recycled it onto an unrelated process, and `kill(-pid)` would then
146
+ * signal a stranger's whole process group. Binding boot id + starttime at
147
+ * spawn is what lets the signal path prove it is still aiming at OUR child.
148
+ */
149
+ private turnIdentity;
150
+ /**
151
+ * Evidence class of the last quiescence attempt. DIAGNOSTIC ONLY.
152
+ *
153
+ * The previous wording claimed the blocker decision requires
154
+ * `boundaryProof === true` on this value. It did not, and still does not:
155
+ * nothing in production reads `TurnQuiescence.boundaryProof`, so that was a
156
+ * claim about code that was never written. The real gate is
157
+ * `TerminationOutcome.boundaryProven` (see the close path below), which is
158
+ * derived from `containmentReleaseDecision` in mojo-containment.ts. This field
159
+ * is kept for logs and for tests that assert the grading, and it is read
160
+ * through the `lastTurnQuiescence` getter only.
161
+ */
162
+ private lastQuiescence;
163
+ private lastTermination;
164
+ /** True once the current turn has emitted its `result` event, so a late
165
+ * process exit cannot fire a second turn boundary. */
166
+ private turnSettled;
167
+ /** Buffer for partial NDJSON lines across stdout chunks. */
168
+ private stdoutTail;
169
+ /** Set when --include-partial deltas have already rendered this turn's text,
170
+ * so the trailing whole-segment `text` event isn't printed twice. */
171
+ private streamedThisTurn;
172
+ private readonly cliTimeoutMs;
173
+ /** How long /close waits for an in-flight turn to publish its session id
174
+ * before tearing down. Must stay well under the worker's close/restart
175
+ * race so teardown never becomes the thing that times out. */
176
+ private readonly destroySettleMs;
177
+ /**
178
+ * Captured from spawn(). The worker owns the authoritative cwd + env (the
179
+ * BOTMUX_* session context, per-bot `env`, credential paths, proxies) and
180
+ * hands them over exactly once; ignoring them silently drops repo selection,
181
+ * per-bot tokens and proxy settings. `config` values still win where set, so
182
+ * an explicit bots.json override remains authoritative.
183
+ */
184
+ private spawnOpts;
185
+ /**
186
+ * Resolved launch PREFIX from BotConfig.wrapperCli (e.g. `env VAR=x mojo`,
187
+ * a ttadk gateway). The worker resolves the prefix into a real bin + args and
188
+ * passes them to spawn(); a PTY CLI is wrapped once for the life of its
189
+ * process, but mojo is invoked per turn, so the prefix must be re-applied to
190
+ * EVERY invocation. Null when no wrapper is configured, in which case the
191
+ * plain binary is used.
192
+ */
193
+ private launchPrefix;
194
+ /** Guard so the config-side wrapper resolution is attempted at most once. */
195
+ private wrapperResolved;
196
+ /** Resolved once per session — see resolveBin. */
197
+ private pinnedBin;
198
+ /**
199
+ * Live JWT, THREE states — the distinction is why a clear used to fail:
200
+ * undefined → no live snapshot received; resolve from config/env as before
201
+ * string → use exactly this
202
+ * null → explicitly cleared; do NOT fall back to any config-layer env
203
+ *
204
+ * The daemon already folds the ambient fallback into the snapshot it sends, so
205
+ * `null` genuinely means "no credential from any config layer". Previously a
206
+ * clear only set `config.jwt = undefined`, and buildEnv then re-read `jwtEnv`
207
+ * out of the init-time `config.env` / `injectEnv`, reviving a stale token.
208
+ */
209
+ private liveJwt;
210
+ /**
211
+ * Generic CLI args the worker composed for this session (today: CLI_EXTRA_ARGS,
212
+ * e.g. `--timeout 77`). The mojo adapter's buildArgs() returns [], so anything
213
+ * arriving here came from the worker's shared arg pipeline and must be applied
214
+ * to every turn — dropping it made the flag work with a wrapper configured
215
+ * (buildWrappedLaunch folds spawnArgs into the prefix) but silently vanish
216
+ * without one.
217
+ */
218
+ private extraCliArgs;
219
+ private writeChain;
220
+ constructor(config: EffectiveMojoConfig, sessionId: string, opts?: {
221
+ controlPlaneOnly?: boolean;
222
+ });
223
+ spawn(bin: string, args: string[], opts: SpawnOpts): void;
224
+ /**
225
+ * Resolve the executable + leading args for one invocation, re-applying the
226
+ * wrapperCli prefix when present.
227
+ *
228
+ * The prefix normally arrives pre-resolved from the worker via spawn(). The
229
+ * daemon's workerless cancel path never calls spawn(), so when a wrapper is
230
+ * configured but unresolved we resolve it here from the config — otherwise
231
+ * `/close` would run an unwrapped binary that a wrapper-dependent setup
232
+ * (e.g. a gateway that injects auth) cannot reach.
233
+ */
234
+ private resolveLaunch;
235
+ /**
236
+ * Resolve the binary ONCE and reuse it for every turn of this session.
237
+ *
238
+ * Without pinning, a bare `mojo` was re-resolved on each turn against the
239
+ * then-current PATH, so anything able to influence the environment between
240
+ * turns could substitute the executable. The live patch no longer carries
241
+ * `env` at all, but pinning removes the class of problem rather than one
242
+ * instance of it — and it also keeps a session on one binary if PATH shifts
243
+ * underneath a long-running worker.
244
+ */
245
+ private resolveBin;
246
+ /**
247
+ * Find an executable using the PATH the CHILD will actually see.
248
+ *
249
+ * Layered exactly like buildEnv (worker env → per-bot injectEnv → mojo.env),
250
+ * so a per-bot PATH override takes effect. Falls back to the caller's own PATH
251
+ * when spawn() has not run (direct/unit use).
252
+ */
253
+ private locateOnEffectivePath;
254
+ /** Lazily resolve (and memoize) `config.wrapperCli` when spawn() never ran. */
255
+ private resolveConfiguredWrapper;
256
+ /** bots.json `mojo.cwd` wins; otherwise the worker's session working dir. */
257
+ /** The operator-facing working directory (the repo). Kept separate from
258
+ * resolveCwd(): host execution runs the CLI in an isolated per-session
259
+ * directory instead, and the decorate() preamble points the agent back
260
+ * here for repo work. */
261
+ private realWorkingDir;
262
+ /** True when this config executes tools on the bot host (shared derivation
263
+ * with buildEnv/buildArgs — see deriveMojoExecutionMode). */
264
+ private hostExecution;
265
+ /** HOME for the isolated workspace root. Prefer the CHILD env the worker
266
+ * hands over — in production it equals the daemon's own HOME (so the
267
+ * workerless close path, which uses os.homedir(), matches), while in
268
+ * tests it keeps backend instances from minting directories under the
269
+ * developer's real ~/.botmux (the full suite did exactly that once). */
270
+ private isolationHome;
271
+ private resolveCwd;
272
+ write(data: string): boolean;
273
+ /**
274
+ * Rotate the JWT on a LIVE session, without a refork.
275
+ *
276
+ * Needed because the config is otherwise read once at worker init, so every
277
+ * subsequent per-turn CLI invocation kept using the ORIGINAL token — a rotated
278
+ * credential never took effect.
279
+ *
280
+ * Takes a COMPLETE snapshot rather than a sparse diff, so the two states that
281
+ * a sparse patch could not express both work:
282
+ * - `jwt: null` → cleared (a deleted `mojo.jwt` must not linger)
283
+ * - `jwt: <original>` → rolled back (A → B → A must return to A)
284
+ *
285
+ * Only the JWT is patchable. An `env` patch would be equivalent to replacing
286
+ * the launcher — see MOJO_LIVE_PATCH_KEYS.
287
+ */
288
+ applyLivePatch(patch: MojoLivePatch): void;
289
+ resize(_cols: number, _rows: number): void;
290
+ onData(cb: (data: string) => void): void;
291
+ /**
292
+ * NOT fired on per-turn CLI exit — the binary is spawned and exits every
293
+ * turn, so forwarding that would tear the session down after the first
294
+ * reply. It IS fired from kill(), mirroring RiffBackend: the worker needs to
295
+ * learn the backend is gone on teardown / daemon restart, and nothing else
296
+ * tells it.
297
+ */
298
+ onExit(cb: (code: number | null, signal: string | null) => void): void;
299
+ /** Turn boundary — required: an API-backed backend produces no PTY output, so
300
+ * botmux's idle detector never fires and nothing else re-arms prompt-ready. */
301
+ onTaskDone(cb: () => void): void;
302
+ /** This turn's assistant answer, for the worker's final_output bridge. A
303
+ * headless mojo session has no terminal the user could read instead, so an
304
+ * answer the agent never `botmux send`s would otherwise reach nobody. */
305
+ onTurnFinal(cb: (text: string) => void): void;
306
+ /** Lineage id updates — forwarded to the daemon so multi-turn context
307
+ * survives a daemon restart. */
308
+ onTaskId(cb: (taskId: string | null) => void): void;
309
+ captureCurrentScreen(): string;
310
+ captureViewport(): string;
311
+ getPaneSize(): {
312
+ cols: number;
313
+ rows: number;
314
+ } | null;
315
+ getChildPid(): number | null;
316
+ /**
317
+ * SIGTERM, then PROVE the child is gone (escalating to SIGKILL).
318
+ *
319
+ * `child.kill('SIGTERM')` returning true only means the signal was delivered.
320
+ * A child that ignores it keeps executing with the injected credential while
321
+ * the explicit close publishes the row as `closed` — and a closed row is
322
+ * filtered out of the device-isolation inventory
323
+ * (mergePersistedDeviceIsolationSessions), so the blocker vanishes with the
324
+ * process still alive. That is exactly the state this backend must never
325
+ * report as a successful teardown.
326
+ *
327
+ * Returns false when termination could not be proven; the caller must then
328
+ * refuse the close rather than let the row be published as closed.
329
+ */
330
+ /** Overridable so a behaviour test can exercise the escalation ladder without
331
+ * burning the production budget in wall-clock. Production never changes it. */
332
+ protected get terminationProofBudgetMs(): number;
333
+ /** Overridable so a test can point the scan at a synthetic /proc. */
334
+ protected get procRoot(): string;
335
+ /** Overridable so a test can point boundary preparation at a synthetic
336
+ * cgroup root. `undefined` = the real /sys/fs/cgroup. */
337
+ protected get cgroupRoot(): string | undefined;
338
+ /** Overridable so a test can point the delegated-parent lookup
339
+ * (/proc/self/cgroup) at a synthetic /proc. `undefined` = the real /proc. */
340
+ protected get cgroupProcRoot(): string | undefined;
341
+ /**
342
+ * SIGTERM the whole turn SUBTREE, then gather the best evidence this host can
343
+ * give that nothing in it survives (escalating to SIGKILL).
344
+ *
345
+ * Read the result precisely. `ok: true` means "no executing member was
346
+ * found", NOT "the credential is now unreachable". Enumeration cannot see a
347
+ * descendant that both setsid'd and scrubbed its own environ, so a clean scan
348
+ * is a DIAGNOSTIC signal only — `boundaryProven` is the field that says
349
+ * whether a real boundary was established, and only kernel-level containment
350
+ * (a per-session cgroup) can set it true. `ok: true` with
351
+ * `boundaryProven: false` is therefore legal and, for Linux weak handles, the
352
+ * common case; destroySession() below consumes the two fields separately and
353
+ * downgrades the second case to a residual close.
354
+ *
355
+ * Three fail-open paths are closed here.
356
+ *
357
+ * 1. `child.kill()` returning true only means the signal was DELIVERED. A
358
+ * child that ignores SIGTERM keeps executing with the injected credential
359
+ * while the close publishes the row as `closed` — and a closed row is
360
+ * filtered out of the device-isolation inventory, so the blocker vanishes
361
+ * with the process still alive.
362
+ * 2. Signalling the direct pid leaves DESCENDANTS alive.
363
+ * 3. Signalling the process GROUP still leaves descendants that escaped it via
364
+ * setsid/detached. Enumeration therefore unions PGID, the inherited env
365
+ * nonce and the PPID chain — see mojo-process-tree.
366
+ *
367
+ * Reports `ok: false` whenever no such evidence could be obtained, INCLUDING when
368
+ * the scan itself fails: "cannot enumerate" must never read as "nothing is
369
+ * running". The caller then refuses the close, which keeps the row active and
370
+ * so keeps the device-isolation blocker in place. (destroySession makes ONE
371
+ * exception, for a platform that can never enumerate at all — see the
372
+ * `unsupported-platform` branch there.)
373
+ *
374
+ * Zombie members are discounted, because a reaped process executes nothing and
375
+ * cannot use the credential; only a definite `Z` state qualifies.
376
+ */
377
+ private terminateChildProven;
378
+ /** Structured evidence from the last termination attempt; see TerminationOutcome. */
379
+ get lastTerminationOutcome(): TerminationOutcome | null;
380
+ /** Evidence class of the last termination attempt; see TurnQuiescence. */
381
+ get lastTurnQuiescence(): TurnQuiescence | null;
382
+ /**
383
+ * SIGTERM the whole turn SUBTREE, then try to establish that nothing in it
384
+ * survives (escalating to SIGKILL), and report WHAT KIND of evidence we got.
385
+ */
386
+ protected proveTurnQuiescence(): Promise<TurnQuiescence>;
387
+ /**
388
+ * Mint and PERSIST the containment handle for a freshly spawned turn root.
389
+ *
390
+ * Extracted so it can be exercised directly: doing this at close time would be
391
+ * too late, because a crash between spawn and record is exactly the window that
392
+ * loses the tree, and a lost tree can never be proven quiescent afterwards.
393
+ */
394
+ private recordTurnContainment;
395
+ /**
396
+ * Terminate a subtree whose containment handle could not be persisted.
397
+ *
398
+ * `containmentUnrecorded` is already latched by the caller. It is cleared
399
+ * only when the boundary is PROVEN empty (rmdir accepted by the kernel) —
400
+ * anything less keeps every close proof refused, because a tree nothing
401
+ * durable describes must not be closable.
402
+ */
403
+ private containUnrecordedSpawn;
404
+ /**
405
+ * Discharge every DURABLE handle this session owns, after the in-memory ladder
406
+ * believes its own root is gone.
407
+ *
408
+ * The in-memory verdict only ever speaks for the pid THIS backend spawned. A
409
+ * replacement generation inherits handles describing trees it never spawned, and
410
+ * those must be proven independently or the close stays refused. A handle leaves
411
+ * the store only against a `proven: true` verdict — `releaseContainmentHandle`
412
+ * takes the verdict itself and throws on anything else, so "clear the blocker
413
+ * without proof" is not representable here.
414
+ */
415
+ private dischargeContainment;
416
+ /** Pids that must never be signalled, whatever a scan says. */
417
+ private selfPids;
418
+ /**
419
+ * SIGKILL an inherited tree whose recorded root identity has already been
420
+ * re-verified by the caller.
421
+ *
422
+ * SIGTERM is skipped deliberately: this tree belongs to a previous worker
423
+ * generation that is already gone, so nobody is waiting to shut it down
424
+ * gracefully, and the graceful attempt was made when that generation closed.
425
+ * Every enumerated member is signalled individually as well, because a
426
+ * descendant may have left the group via setsid and would survive the group
427
+ * signal alone.
428
+ *
429
+ * Best effort by design: this only creates the CHANCE for the proof below to
430
+ * succeed. If anything survives, the proof still refuses the close.
431
+ */
432
+ private signalInheritedTree;
433
+ kill(): void;
434
+ /** Test-only view of the adopted lineage, so a teardown test can assert it is
435
+ * still unset inside the pre-init window it is exercising. */
436
+ get cliSessionIdForTest(): string | undefined;
437
+ /** /close teardown — cancel the server-side session so it stops consuming
438
+ * cloud sandbox time after the IM session is gone. */
439
+ destroySession(): Promise<SessionDestroyResult>;
440
+ /**
441
+ * Roll back a FAILED prepare (restore write admission).
442
+ *
443
+ * Only valid when the cancel did not succeed. A proven cancel is irreversible:
444
+ * the remote session is gone, so restoring admission would produce a session
445
+ * that looks active but can never continue.
446
+ */
447
+ abortDestroySession(): SessionAbortDestroyResult;
448
+ /**
449
+ * Prepare a daemon-restart detach without cancelling the remote Mojo
450
+ * session. Unlike Riff, a Mojo turn can legitimately run for 60 seconds;
451
+ * shutdown only needs the lineage from its first `system/init`, not the
452
+ * whole answer. Therefore a pre-init turn waits at most destroySettleMs,
453
+ * while a known lineage (or an idle backend with no accepted turn) prepares
454
+ * immediately.
455
+ */
456
+ prepareShutdownDetach(): Promise<SessionShutdownDetachResult>;
457
+ abortShutdownDetach(): Promise<SessionShutdownDetachResult>;
458
+ commitShutdownDetach(): void;
459
+ private buildArgs;
460
+ /** Retry the "session still RUNNING" race with backoff (see SESSION_BUSY_RE). */
461
+ private runTurnWithBusyRetry;
462
+ /** Resolves `true` when the turn was rejected because the session is still
463
+ * RUNNING (caller should retry), `false` once the turn is accounted for. */
464
+ private runTurn;
465
+ /**
466
+ * Drop a dead resume lineage so the NEXT message starts a fresh session
467
+ * instead of re-sending the same doomed `-r <sid>` forever.
468
+ *
469
+ * Mirrors RiffBackend's broken-lineage path: the `null` broadcast is what
470
+ * clears the DAEMON-side persisted id — without it a daemon restart would
471
+ * resurrect the very session we just declared dead.
472
+ *
473
+ * Returns true when the lineage was dropped (caller must not treat the turn
474
+ * as a generic failure).
475
+ */
476
+ private maybeDropLineage;
477
+ /** Parse NDJSON incrementally — a chunk may split a line in half. */
478
+ private consume;
479
+ private flushTail;
480
+ private handleLine;
481
+ private adoptSession;
482
+ private handleResult;
483
+ /**
484
+ * Fire the turn boundary exactly once.
485
+ *
486
+ * This is the ONLY authority on when a mojo turn ends, which is why the
487
+ * worker must not run its generic IdleDetector for this backend: that
488
+ * detector infers "done" from ~2s of output quiescence, and a mojo turn goes
489
+ * quiet for far longer while a tool runs. An early idle would re-arm
490
+ * prompt-ready mid-turn, flushing queued messages into a session that is
491
+ * still RUNNING (rejected — see SESSION_BUSY_RE) and attributing the reply
492
+ * to the wrong turn/card. See the `isRemoteBackendType` gate in worker.ts.
493
+ */
494
+ private settleTurn;
495
+ /** `error` is an object ({code, message, retryable}) on both envelope shapes;
496
+ * naive interpolation yields "[object Object]". */
497
+ private fmtErr;
498
+ /** Condense a tool_result payload into one status line. The output is a JSON
499
+ * string for shell-like tools ({return_code, stdout, stderr, status}) but may
500
+ * be arbitrary text for others, so both shapes are handled. */
501
+ private summarizeToolResult;
502
+ private clip;
503
+ private summarizeInput;
504
+ /**
505
+ * Prepend the platform-owned skill block and the operator's systemPrompt.
506
+ *
507
+ * Order matters and is deliberate: the skill catalog is APPENDED after the
508
+ * operator prompt, never merged into it. Folding it into `systemPrompt` would
509
+ * mean a bot that sets its own prompt silently loses skill discovery — the
510
+ * same trap riff documented for its mandatory routing rules.
511
+ *
512
+ * `builtinSkillBlock` is only populated for `prompt` / `off`; in `global`
513
+ * mode the files are already on disk (~/.mojo/skills) so it stays empty.
514
+ */
515
+ private decorate;
516
+ /**
517
+ * Host-execution guidance (undefined in cloud mode). Two compensations for
518
+ * the isolated per-session cwd:
519
+ * 1. the initial working directory is NOT the repo — point the agent at
520
+ * the real one so repo work still lands in the right place;
521
+ * 2. every botmux command carries an explicit `--session-id`: the
522
+ * execution daemon's env belongs to whichever session spawned it, so
523
+ * an inherited BOTMUX_SESSION_ID must never be what routes a reply
524
+ * (defence in depth — the isolated daemon already carries the right
525
+ * env, this survives even a regression back to a shared daemon).
526
+ */
527
+ private hostGuidanceBlock;
528
+ private buildEnv;
529
+ /** Single-shot CLI call returning one JSON envelope (session.* subcommands). */
530
+ private runCliJson;
531
+ private runCli;
532
+ /** Probe the authoritative model list: an invalid --model exits 2 and prints
533
+ * "可用模型:a、b、c" to stderr. */
534
+ probeModels(): Promise<string[] | null>;
535
+ /** `mojo auth status --json` → {logged_in, identity, mode, source, expires_at}. */
536
+ authStatus(): Promise<MojoAuthStatus | null>;
537
+ private emitLine;
538
+ /** Normalize newlines for xterm rendering (bare \n → \r\n). */
539
+ private emitText;
540
+ }
541
+ /**
542
+ * Cancel a mojo session by id WITHOUT a live backend instance.
543
+ *
544
+ * The daemon needs this on the workerless `/close` path: the worker is already
545
+ * gone, so `MojoBackend.destroySession()` is unreachable, yet the server-side
546
+ * session must stop consuming cloud sandbox time (and stop an agent that may
547
+ * still hold injected credentials). Mirrors `cancelRiffTaskById`.
548
+ *
549
+ * One retry, then a STRUCTURED outcome — see MojoCancelOutcome for why this is no
550
+ * longer a boolean.
551
+ */
552
+ export declare function cancelMojoSessionById(config: EffectiveMojoConfig, sessionId: string): Promise<MojoCancelOutcome>;
553
+ /** The workerless local-subtree proof, split into its two independent answers. */
554
+ export interface WorkerlessLocalSubtreeProof {
555
+ /** Non-null → quiescence itself is unproven; the close must be REFUSED. */
556
+ unproven: MojoCancelOutcome | null;
557
+ /**
558
+ * Quiescence was proven, but at least one release decision kept its handle
559
+ * (weak evidence carries no boundary proof), so the close may proceed ONLY
560
+ * as `closed_with_residual`. Discarding this — the old contract returned
561
+ * bare null here — published a plain `closed` row while the handle and the
562
+ * device-isolation blocker silently stayed behind.
563
+ */
564
+ residual: MojoLocalCloseResidual | null;
565
+ }
566
+ /**
567
+ * Prove (and discharge) the LOCAL subtree a dead worker may have left behind.
568
+ *
569
+ * `unproven: null` means every outstanding handle was proven quiescent (or none
570
+ * existed). `residual` then reports whether any of those proofs was weak-only,
571
+ * in which case the handle stays in the store and the caller must surface a
572
+ * residual close instead of a plain one.
573
+ */
574
+ export declare function proveWorkerlessLocalSubtree(sessionId: string, opts?: {
575
+ procRoot?: string;
576
+ }): WorkerlessLocalSubtreeProof;
577
+ //# sourceMappingURL=mojo-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mojo-backend.d.ts","sourceRoot":"","sources":["../../../src/adapters/backend/mojo-backend.ts"],"names":[],"mappings":"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"}