botmux 3.10.0 → 3.11.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 (539) hide show
  1. package/dist/.runtime-build-id +1 -1
  2. package/dist/adapters/backend/herdr-backend.d.ts +4 -3
  3. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  4. package/dist/adapters/backend/herdr-backend.js +11 -8
  5. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  6. package/dist/adapters/backend/pty-backend.d.ts +1 -1
  7. package/dist/adapters/backend/pty-backend.d.ts.map +1 -1
  8. package/dist/adapters/backend/pty-backend.js +4 -1
  9. package/dist/adapters/backend/pty-backend.js.map +1 -1
  10. package/dist/adapters/backend/riff-backend.d.ts +29 -5
  11. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/riff-backend.js +302 -31
  13. package/dist/adapters/backend/riff-backend.js.map +1 -1
  14. package/dist/adapters/backend/sandbox.d.ts +6 -0
  15. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  16. package/dist/adapters/backend/sandbox.js +7 -0
  17. package/dist/adapters/backend/sandbox.js.map +1 -1
  18. package/dist/adapters/backend/tmux-backend.d.ts +1 -1
  19. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  20. package/dist/adapters/backend/tmux-backend.js +4 -1
  21. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  22. package/dist/adapters/backend/tmux-pipe-backend.d.ts +1 -1
  23. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  24. package/dist/adapters/backend/tmux-pipe-backend.js +1 -1
  25. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  26. package/dist/adapters/backend/types.d.ts +37 -3
  27. package/dist/adapters/backend/types.d.ts.map +1 -1
  28. package/dist/adapters/backend/types.js.map +1 -1
  29. package/dist/adapters/backend/zellij-backend.d.ts +3 -3
  30. package/dist/adapters/backend/zellij-backend.d.ts.map +1 -1
  31. package/dist/adapters/backend/zellij-backend.js +9 -3
  32. package/dist/adapters/backend/zellij-backend.js.map +1 -1
  33. package/dist/adapters/backend/zellij-observe-backend.d.ts +3 -3
  34. package/dist/adapters/backend/zellij-observe-backend.d.ts.map +1 -1
  35. package/dist/adapters/backend/zellij-observe-backend.js +12 -7
  36. package/dist/adapters/backend/zellij-observe-backend.js.map +1 -1
  37. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  38. package/dist/adapters/cli/codex-app.js +11 -2
  39. package/dist/adapters/cli/codex-app.js.map +1 -1
  40. package/dist/adapters/cli/read-isolation.d.ts +35 -2
  41. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  42. package/dist/adapters/cli/read-isolation.js +88 -7
  43. package/dist/adapters/cli/read-isolation.js.map +1 -1
  44. package/dist/adapters/cli/runner-input.d.ts +15 -14
  45. package/dist/adapters/cli/runner-input.d.ts.map +1 -1
  46. package/dist/adapters/cli/runner-input.js +64 -26
  47. package/dist/adapters/cli/runner-input.js.map +1 -1
  48. package/dist/adapters/cli/types.d.ts +20 -5
  49. package/dist/adapters/cli/types.d.ts.map +1 -1
  50. package/dist/bot-registry.d.ts +24 -0
  51. package/dist/bot-registry.d.ts.map +1 -1
  52. package/dist/bot-registry.js +110 -5
  53. package/dist/bot-registry.js.map +1 -1
  54. package/dist/cli/fleet-shutdown.d.ts +47 -0
  55. package/dist/cli/fleet-shutdown.d.ts.map +1 -0
  56. package/dist/cli/fleet-shutdown.js +387 -0
  57. package/dist/cli/fleet-shutdown.js.map +1 -0
  58. package/dist/cli/pm2-descriptor-guard.d.ts +19 -0
  59. package/dist/cli/pm2-descriptor-guard.d.ts.map +1 -0
  60. package/dist/cli/pm2-descriptor-guard.js +122 -0
  61. package/dist/cli/pm2-descriptor-guard.js.map +1 -0
  62. package/dist/cli/pm2-exact-start.d.ts +16 -0
  63. package/dist/cli/pm2-exact-start.d.ts.map +1 -0
  64. package/dist/cli/pm2-exact-start.js +63 -0
  65. package/dist/cli/pm2-exact-start.js.map +1 -0
  66. package/dist/cli/pm2-god-admission.d.ts +8 -0
  67. package/dist/cli/pm2-god-admission.d.ts.map +1 -0
  68. package/dist/cli/pm2-god-admission.js +25 -0
  69. package/dist/cli/pm2-god-admission.js.map +1 -0
  70. package/dist/cli/pm2-jlist.d.ts +13 -0
  71. package/dist/cli/pm2-jlist.d.ts.map +1 -0
  72. package/dist/cli/pm2-jlist.js +108 -0
  73. package/dist/cli/pm2-jlist.js.map +1 -0
  74. package/dist/cli/pm2-preflight.d.ts +10 -0
  75. package/dist/cli/pm2-preflight.d.ts.map +1 -0
  76. package/dist/cli/pm2-preflight.js +23 -0
  77. package/dist/cli/pm2-preflight.js.map +1 -0
  78. package/dist/cli/pm2-shutdown-capability.d.ts +27 -0
  79. package/dist/cli/pm2-shutdown-capability.d.ts.map +1 -0
  80. package/dist/cli/pm2-shutdown-capability.js +161 -0
  81. package/dist/cli/pm2-shutdown-capability.js.map +1 -0
  82. package/dist/cli/pm2-start-transaction.d.ts +55 -0
  83. package/dist/cli/pm2-start-transaction.d.ts.map +1 -0
  84. package/dist/cli/pm2-start-transaction.js +220 -0
  85. package/dist/cli/pm2-start-transaction.js.map +1 -0
  86. package/dist/cli/send-dispatch.d.ts +12 -0
  87. package/dist/cli/send-dispatch.d.ts.map +1 -1
  88. package/dist/cli/send-dispatch.js +31 -4
  89. package/dist/cli/send-dispatch.js.map +1 -1
  90. package/dist/cli/session-list-liveness.d.ts +1 -0
  91. package/dist/cli/session-list-liveness.d.ts.map +1 -1
  92. package/dist/cli/session-list-liveness.js +6 -0
  93. package/dist/cli/session-list-liveness.js.map +1 -1
  94. package/dist/cli/session-picker-layout.d.ts +26 -0
  95. package/dist/cli/session-picker-layout.d.ts.map +1 -0
  96. package/dist/cli/session-picker-layout.js +123 -0
  97. package/dist/cli/session-picker-layout.js.map +1 -0
  98. package/dist/cli/session-picker-viewport.d.ts +49 -0
  99. package/dist/cli/session-picker-viewport.d.ts.map +1 -0
  100. package/dist/cli/session-picker-viewport.js +46 -0
  101. package/dist/cli/session-picker-viewport.js.map +1 -0
  102. package/dist/cli/supervisor-shutdown-client.d.ts +31 -0
  103. package/dist/cli/supervisor-shutdown-client.d.ts.map +1 -0
  104. package/dist/cli/supervisor-shutdown-client.js +146 -0
  105. package/dist/cli/supervisor-shutdown-client.js.map +1 -0
  106. package/dist/cli/terminal-width.d.ts +48 -0
  107. package/dist/cli/terminal-width.d.ts.map +1 -0
  108. package/dist/cli/terminal-width.js +119 -0
  109. package/dist/cli/terminal-width.js.map +1 -0
  110. package/dist/cli/vc-agent.d.ts.map +1 -1
  111. package/dist/cli/vc-agent.js +1 -1
  112. package/dist/cli/vc-agent.js.map +1 -1
  113. package/dist/cli.d.ts.map +1 -1
  114. package/dist/cli.js +2269 -716
  115. package/dist/cli.js.map +1 -1
  116. package/dist/codex-app-runner.js +1630 -125
  117. package/dist/codex-app-runner.js.map +1 -1
  118. package/dist/core/ask-api.d.ts +8 -1
  119. package/dist/core/ask-api.d.ts.map +1 -1
  120. package/dist/core/ask-api.js +18 -0
  121. package/dist/core/ask-api.js.map +1 -1
  122. package/dist/core/ask-broker.d.ts +20 -0
  123. package/dist/core/ask-broker.d.ts.map +1 -1
  124. package/dist/core/ask-broker.js +467 -47
  125. package/dist/core/ask-broker.js.map +1 -1
  126. package/dist/core/ask-persist-store.d.ts +126 -0
  127. package/dist/core/ask-persist-store.d.ts.map +1 -0
  128. package/dist/core/ask-persist-store.js +188 -0
  129. package/dist/core/ask-persist-store.js.map +1 -0
  130. package/dist/core/ask-types.d.ts +80 -0
  131. package/dist/core/ask-types.d.ts.map +1 -1
  132. package/dist/core/ask-types.js +62 -0
  133. package/dist/core/ask-types.js.map +1 -1
  134. package/dist/core/cli-session-id-publisher.d.ts +20 -0
  135. package/dist/core/cli-session-id-publisher.d.ts.map +1 -0
  136. package/dist/core/cli-session-id-publisher.js +21 -0
  137. package/dist/core/cli-session-id-publisher.js.map +1 -0
  138. package/dist/core/command-handler.d.ts.map +1 -1
  139. package/dist/core/command-handler.js +427 -255
  140. package/dist/core/command-handler.js.map +1 -1
  141. package/dist/core/cost-calculator.d.ts +13 -0
  142. package/dist/core/cost-calculator.d.ts.map +1 -1
  143. package/dist/core/cost-calculator.js +385 -26
  144. package/dist/core/cost-calculator.js.map +1 -1
  145. package/dist/core/dashboard-ipc-server.d.ts +9 -0
  146. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  147. package/dist/core/dashboard-ipc-server.js +842 -288
  148. package/dist/core/dashboard-ipc-server.js.map +1 -1
  149. package/dist/core/explicit-session-backing-cleanup.d.ts +49 -0
  150. package/dist/core/explicit-session-backing-cleanup.d.ts.map +1 -0
  151. package/dist/core/explicit-session-backing-cleanup.js +76 -0
  152. package/dist/core/explicit-session-backing-cleanup.js.map +1 -0
  153. package/dist/core/idle-worker-sweeper.d.ts +20 -0
  154. package/dist/core/idle-worker-sweeper.d.ts.map +1 -1
  155. package/dist/core/idle-worker-sweeper.js +18 -0
  156. package/dist/core/idle-worker-sweeper.js.map +1 -1
  157. package/dist/core/inflight-input-tracker.d.ts +10 -0
  158. package/dist/core/inflight-input-tracker.d.ts.map +1 -1
  159. package/dist/core/inflight-input-tracker.js +7 -0
  160. package/dist/core/inflight-input-tracker.js.map +1 -1
  161. package/dist/core/managed-origin-attestation.d.ts +51 -0
  162. package/dist/core/managed-origin-attestation.d.ts.map +1 -0
  163. package/dist/core/managed-origin-attestation.js +208 -0
  164. package/dist/core/managed-origin-attestation.js.map +1 -0
  165. package/dist/core/managed-origin-capability.d.ts +62 -3
  166. package/dist/core/managed-origin-capability.d.ts.map +1 -1
  167. package/dist/core/managed-origin-capability.js +419 -9
  168. package/dist/core/managed-origin-capability.js.map +1 -1
  169. package/dist/core/pending-repo-journal.d.ts +6 -0
  170. package/dist/core/pending-repo-journal.d.ts.map +1 -0
  171. package/dist/core/pending-repo-journal.js +85 -0
  172. package/dist/core/pending-repo-journal.js.map +1 -0
  173. package/dist/core/persistent-backend.d.ts +6 -1
  174. package/dist/core/persistent-backend.d.ts.map +1 -1
  175. package/dist/core/persistent-backend.js +12 -6
  176. package/dist/core/persistent-backend.js.map +1 -1
  177. package/dist/core/process-start-identity.d.ts +3 -0
  178. package/dist/core/process-start-identity.d.ts.map +1 -0
  179. package/dist/core/process-start-identity.js +62 -0
  180. package/dist/core/process-start-identity.js.map +1 -0
  181. package/dist/core/raw-command-writer.d.ts +34 -0
  182. package/dist/core/raw-command-writer.d.ts.map +1 -0
  183. package/dist/core/raw-command-writer.js +48 -0
  184. package/dist/core/raw-command-writer.js.map +1 -0
  185. package/dist/core/reply-target.d.ts +85 -22
  186. package/dist/core/reply-target.d.ts.map +1 -1
  187. package/dist/core/reply-target.js +267 -32
  188. package/dist/core/reply-target.js.map +1 -1
  189. package/dist/core/resource-monitor/runtime.d.ts.map +1 -1
  190. package/dist/core/resource-monitor/runtime.js +4 -1
  191. package/dist/core/resource-monitor/runtime.js.map +1 -1
  192. package/dist/core/restart-report.d.ts +6 -1
  193. package/dist/core/restart-report.d.ts.map +1 -1
  194. package/dist/core/restart-report.js +22 -4
  195. package/dist/core/restart-report.js.map +1 -1
  196. package/dist/core/riff-shutdown-detach.d.ts +164 -0
  197. package/dist/core/riff-shutdown-detach.d.ts.map +1 -0
  198. package/dist/core/riff-shutdown-detach.js +787 -0
  199. package/dist/core/riff-shutdown-detach.js.map +1 -0
  200. package/dist/core/riff-worker-shutdown-readiness.d.ts +17 -0
  201. package/dist/core/riff-worker-shutdown-readiness.d.ts.map +1 -0
  202. package/dist/core/riff-worker-shutdown-readiness.js +21 -0
  203. package/dist/core/riff-worker-shutdown-readiness.js.map +1 -0
  204. package/dist/core/session-manager.d.ts +6 -6
  205. package/dist/core/session-manager.d.ts.map +1 -1
  206. package/dist/core/session-manager.js +1227 -594
  207. package/dist/core/session-manager.js.map +1 -1
  208. package/dist/core/session-marker.d.ts +1 -1
  209. package/dist/core/session-marker.d.ts.map +1 -1
  210. package/dist/core/session-marker.js +2 -2
  211. package/dist/core/session-marker.js.map +1 -1
  212. package/dist/core/session-mutation-guard.d.ts +17 -0
  213. package/dist/core/session-mutation-guard.d.ts.map +1 -0
  214. package/dist/core/session-mutation-guard.js +33 -0
  215. package/dist/core/session-mutation-guard.js.map +1 -0
  216. package/dist/core/shutdown-budgets.d.ts +27 -0
  217. package/dist/core/shutdown-budgets.d.ts.map +1 -0
  218. package/dist/core/shutdown-budgets.js +47 -0
  219. package/dist/core/shutdown-budgets.js.map +1 -0
  220. package/dist/core/supervisor-shutdown-ipc.d.ts +10 -0
  221. package/dist/core/supervisor-shutdown-ipc.d.ts.map +1 -0
  222. package/dist/core/supervisor-shutdown-ipc.js +10 -0
  223. package/dist/core/supervisor-shutdown-ipc.js.map +1 -0
  224. package/dist/core/supervisor-shutdown-protocol.d.ts +16 -0
  225. package/dist/core/supervisor-shutdown-protocol.d.ts.map +1 -0
  226. package/dist/core/supervisor-shutdown-protocol.js +16 -0
  227. package/dist/core/supervisor-shutdown-protocol.js.map +1 -0
  228. package/dist/core/trigger-final-suppression.d.ts +4 -0
  229. package/dist/core/trigger-final-suppression.d.ts.map +1 -1
  230. package/dist/core/trigger-final-suppression.js +6 -11
  231. package/dist/core/trigger-final-suppression.js.map +1 -1
  232. package/dist/core/trigger-session.d.ts +70 -0
  233. package/dist/core/trigger-session.d.ts.map +1 -1
  234. package/dist/core/trigger-session.js +923 -145
  235. package/dist/core/trigger-session.js.map +1 -1
  236. package/dist/core/types.d.ts +94 -1
  237. package/dist/core/types.d.ts.map +1 -1
  238. package/dist/core/types.js +9 -0
  239. package/dist/core/types.js.map +1 -1
  240. package/dist/core/worker-pool.d.ts +194 -13
  241. package/dist/core/worker-pool.d.ts.map +1 -1
  242. package/dist/core/worker-pool.js +2597 -547
  243. package/dist/core/worker-pool.js.map +1 -1
  244. package/dist/daemon.d.ts +76 -2
  245. package/dist/daemon.d.ts.map +1 -1
  246. package/dist/daemon.js +2255 -773
  247. package/dist/daemon.js.map +1 -1
  248. package/dist/dashboard/bot-payload.d.ts +20 -0
  249. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  250. package/dist/dashboard/bot-payload.js +24 -0
  251. package/dist/dashboard/bot-payload.js.map +1 -1
  252. package/dist/dashboard/feed-groups.d.ts +17 -0
  253. package/dist/dashboard/feed-groups.d.ts.map +1 -0
  254. package/dist/dashboard/feed-groups.js +75 -0
  255. package/dist/dashboard/feed-groups.js.map +1 -0
  256. package/dist/dashboard/session-card-model.d.ts +1 -1
  257. package/dist/dashboard/session-card-model.d.ts.map +1 -1
  258. package/dist/dashboard/session-card-model.js +8 -5
  259. package/dist/dashboard/session-card-model.js.map +1 -1
  260. package/dist/dashboard/web/bot-defaults-page.d.ts +4 -0
  261. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  262. package/dist/dashboard/web/bot-defaults-page.js +139 -46
  263. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  264. package/dist/dashboard/web/bot-defaults.d.ts +4 -0
  265. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  266. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  267. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  268. package/dist/dashboard/web/connectors-page.js +40 -3
  269. package/dist/dashboard/web/connectors-page.js.map +1 -1
  270. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  271. package/dist/dashboard/web/groups-page.js +95 -2
  272. package/dist/dashboard/web/groups-page.js.map +1 -1
  273. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  274. package/dist/dashboard/web/i18n.js +86 -40
  275. package/dist/dashboard/web/i18n.js.map +1 -1
  276. package/dist/dashboard/web/kanban-model.js +1 -1
  277. package/dist/dashboard/web/kanban-model.js.map +1 -1
  278. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  279. package/dist/dashboard/web/overview-page.js +3 -2
  280. package/dist/dashboard/web/overview-page.js.map +1 -1
  281. package/dist/dashboard/web/overview.d.ts +3 -0
  282. package/dist/dashboard/web/overview.d.ts.map +1 -1
  283. package/dist/dashboard/web/overview.js +2 -0
  284. package/dist/dashboard/web/overview.js.map +1 -1
  285. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
  286. package/dist/dashboard/web/sessions-kanban.js +2 -0
  287. package/dist/dashboard/web/sessions-kanban.js.map +1 -1
  288. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  289. package/dist/dashboard/web/sessions-page.js +103 -2
  290. package/dist/dashboard/web/sessions-page.js.map +1 -1
  291. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  292. package/dist/dashboard/web/sessions.js +3 -2
  293. package/dist/dashboard/web/sessions.js.map +1 -1
  294. package/dist/dashboard/web/ui.d.ts +8 -0
  295. package/dist/dashboard/web/ui.d.ts.map +1 -1
  296. package/dist/dashboard/web/ui.js +15 -0
  297. package/dist/dashboard/web/ui.js.map +1 -1
  298. package/dist/dashboard-web/app.js +1 -1
  299. package/dist/dashboard-web/chunks/bot-defaults-page-GED4FEMS.js +10 -0
  300. package/dist/dashboard-web/chunks/chunk-6J5LS5AU.js +51 -0
  301. package/dist/dashboard-web/chunks/{chunk-ZU3UUKAR.js → chunk-HK7NIBJG.js} +1 -1
  302. package/dist/dashboard-web/chunks/{chunk-3UE7S77S.js → chunk-KRHWZEXU.js} +1 -1
  303. package/dist/dashboard-web/chunks/chunk-VBXJOJFH.js +1 -0
  304. package/dist/dashboard-web/chunks/connectors-page-EELM66G3.js +1 -0
  305. package/dist/dashboard-web/chunks/groups-page-WKUV6E42.js +8 -0
  306. package/dist/dashboard-web/chunks/{insights-page-T2ZX2RWL.js → insights-page-54UBPPOC.js} +1 -1
  307. package/dist/dashboard-web/chunks/{monitor-room-YNVBAGR6.js → monitor-room-PORHVKRH.js} +1 -1
  308. package/dist/dashboard-web/chunks/{monitoring-page-LHM55YWN.js → monitoring-page-XGA7AXNL.js} +1 -1
  309. package/dist/dashboard-web/chunks/{office-page-ATXVP7PW.js → office-page-AO3AFG45.js} +1 -1
  310. package/dist/dashboard-web/chunks/overview-page-F5BUTYR6.js +1 -0
  311. package/dist/dashboard-web/chunks/{roles-page-56VWM6CD.js → roles-page-M5GIASJU.js} +1 -1
  312. package/dist/dashboard-web/chunks/{schedules-page-S5K6U4EO.js → schedules-page-O232WQRR.js} +1 -1
  313. package/dist/dashboard-web/chunks/sessions-page-YFRPSTIL.js +6 -0
  314. package/dist/dashboard-web/chunks/{settings-page-QUZDQARR.js → settings-page-OJAZLZQT.js} +1 -1
  315. package/dist/dashboard-web/chunks/{skills-page-IFY7AEND.js → skills-page-EFZQPWV4.js} +1 -1
  316. package/dist/dashboard-web/chunks/{team-federation-page-C7FJQPFZ.js → team-federation-page-ZJVAP7HW.js} +1 -1
  317. package/dist/dashboard-web/chunks/{v3-page-2LMF3WWR.js → v3-page-GYWTRGO2.js} +1 -1
  318. package/dist/dashboard-web/chunks/{whiteboards-page-3XC6QRMY.js → whiteboards-page-MSDAG6P7.js} +1 -1
  319. package/dist/dashboard-web/style.css +255 -0
  320. package/dist/dashboard.js +172 -7
  321. package/dist/dashboard.js.map +1 -1
  322. package/dist/desktop/renderer/app.js +21 -0
  323. package/dist/desktop/renderer/app.js.map +1 -1
  324. package/dist/i18n/en.d.ts.map +1 -1
  325. package/dist/i18n/en.js +35 -9
  326. package/dist/i18n/en.js.map +1 -1
  327. package/dist/i18n/zh.d.ts.map +1 -1
  328. package/dist/i18n/zh.js +35 -9
  329. package/dist/i18n/zh.js.map +1 -1
  330. package/dist/im/lark/ask-card.d.ts +23 -0
  331. package/dist/im/lark/ask-card.d.ts.map +1 -1
  332. package/dist/im/lark/ask-card.js +94 -4
  333. package/dist/im/lark/ask-card.js.map +1 -1
  334. package/dist/im/lark/card-builder.d.ts +6 -1
  335. package/dist/im/lark/card-builder.d.ts.map +1 -1
  336. package/dist/im/lark/card-builder.js +112 -15
  337. package/dist/im/lark/card-builder.js.map +1 -1
  338. package/dist/im/lark/card-handler.d.ts +1 -1
  339. package/dist/im/lark/card-handler.d.ts.map +1 -1
  340. package/dist/im/lark/card-handler.js +496 -310
  341. package/dist/im/lark/card-handler.js.map +1 -1
  342. package/dist/im/lark/client.d.ts +7 -0
  343. package/dist/im/lark/client.d.ts.map +1 -1
  344. package/dist/im/lark/client.js +39 -26
  345. package/dist/im/lark/client.js.map +1 -1
  346. package/dist/im/lark/doc-comment.d.ts +7 -4
  347. package/dist/im/lark/doc-comment.d.ts.map +1 -1
  348. package/dist/im/lark/doc-comment.js +19 -6
  349. package/dist/im/lark/doc-comment.js.map +1 -1
  350. package/dist/im/lark/event-dispatcher.d.ts +16 -0
  351. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  352. package/dist/im/lark/event-dispatcher.js +88 -23
  353. package/dist/im/lark/event-dispatcher.js.map +1 -1
  354. package/dist/im/lark/forward-followup-content.d.ts.map +1 -1
  355. package/dist/im/lark/forward-followup-content.js +9 -1
  356. package/dist/im/lark/forward-followup-content.js.map +1 -1
  357. package/dist/im/lark/grant-command.d.ts.map +1 -1
  358. package/dist/im/lark/grant-command.js +7 -4
  359. package/dist/im/lark/grant-command.js.map +1 -1
  360. package/dist/im/lark/md-card.d.ts +11 -0
  361. package/dist/im/lark/md-card.d.ts.map +1 -1
  362. package/dist/im/lark/md-card.js +46 -0
  363. package/dist/im/lark/md-card.js.map +1 -1
  364. package/dist/im/lark/message-parser.d.ts +23 -2
  365. package/dist/im/lark/message-parser.d.ts.map +1 -1
  366. package/dist/im/lark/message-parser.js +58 -3
  367. package/dist/im/lark/message-parser.js.map +1 -1
  368. package/dist/im/lark/overview-card.d.ts.map +1 -1
  369. package/dist/im/lark/overview-card.js +2 -1
  370. package/dist/im/lark/overview-card.js.map +1 -1
  371. package/dist/services/async-trigger-state.d.ts +6 -1
  372. package/dist/services/async-trigger-state.d.ts.map +1 -1
  373. package/dist/services/async-trigger-state.js +21 -0
  374. package/dist/services/async-trigger-state.js.map +1 -1
  375. package/dist/services/async-trigger-store.d.ts +23 -1
  376. package/dist/services/async-trigger-store.d.ts.map +1 -1
  377. package/dist/services/async-trigger-store.js +96 -13
  378. package/dist/services/async-trigger-store.js.map +1 -1
  379. package/dist/services/bridge-fallback-gate.d.ts +40 -0
  380. package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
  381. package/dist/services/bridge-fallback-gate.js +124 -24
  382. package/dist/services/bridge-fallback-gate.js.map +1 -1
  383. package/dist/services/codex-app-runner-protocol.d.ts +8 -0
  384. package/dist/services/codex-app-runner-protocol.d.ts.map +1 -1
  385. package/dist/services/codex-app-runner-protocol.js +9 -2
  386. package/dist/services/codex-app-runner-protocol.js.map +1 -1
  387. package/dist/services/codex-bridge-queue.d.ts +1 -0
  388. package/dist/services/codex-bridge-queue.d.ts.map +1 -1
  389. package/dist/services/codex-bridge-queue.js +1 -0
  390. package/dist/services/codex-bridge-queue.js.map +1 -1
  391. package/dist/services/codex-service-tier.d.ts +2 -0
  392. package/dist/services/codex-service-tier.d.ts.map +1 -1
  393. package/dist/services/codex-service-tier.js +1 -0
  394. package/dist/services/codex-service-tier.js.map +1 -1
  395. package/dist/services/codex-transcript.d.ts +27 -0
  396. package/dist/services/codex-transcript.d.ts.map +1 -1
  397. package/dist/services/codex-transcript.js +340 -2
  398. package/dist/services/codex-transcript.js.map +1 -1
  399. package/dist/services/grant-policy.d.ts +3 -0
  400. package/dist/services/grant-policy.d.ts.map +1 -1
  401. package/dist/services/grant-policy.js +5 -0
  402. package/dist/services/grant-policy.js.map +1 -1
  403. package/dist/services/grant-prefs-store.d.ts +6 -3
  404. package/dist/services/grant-prefs-store.d.ts.map +1 -1
  405. package/dist/services/grant-prefs-store.js +42 -12
  406. package/dist/services/grant-prefs-store.js.map +1 -1
  407. package/dist/services/hook-runner.d.ts +20 -1
  408. package/dist/services/hook-runner.d.ts.map +1 -1
  409. package/dist/services/hook-runner.js +17 -13
  410. package/dist/services/hook-runner.js.map +1 -1
  411. package/dist/services/idempotency-store.d.ts +134 -0
  412. package/dist/services/idempotency-store.d.ts.map +1 -0
  413. package/dist/services/idempotency-store.js +299 -0
  414. package/dist/services/idempotency-store.js.map +1 -0
  415. package/dist/services/jsonl-cursor.d.ts +7 -3
  416. package/dist/services/jsonl-cursor.d.ts.map +1 -1
  417. package/dist/services/jsonl-cursor.js +55 -31
  418. package/dist/services/jsonl-cursor.js.map +1 -1
  419. package/dist/services/open-platform-rename.d.ts.map +1 -1
  420. package/dist/services/open-platform-rename.js +1 -108
  421. package/dist/services/open-platform-rename.js.map +1 -1
  422. package/dist/services/restart-intent-store.d.ts +22 -2
  423. package/dist/services/restart-intent-store.d.ts.map +1 -1
  424. package/dist/services/restart-intent-store.js +160 -18
  425. package/dist/services/restart-intent-store.js.map +1 -1
  426. package/dist/services/sandbox-store.d.ts +22 -0
  427. package/dist/services/sandbox-store.d.ts.map +1 -1
  428. package/dist/services/sandbox-store.js +37 -8
  429. package/dist/services/sandbox-store.js.map +1 -1
  430. package/dist/services/send-policy.d.ts +41 -33
  431. package/dist/services/send-policy.d.ts.map +1 -1
  432. package/dist/services/send-policy.js +39 -40
  433. package/dist/services/send-policy.js.map +1 -1
  434. package/dist/services/session-store.d.ts +66 -0
  435. package/dist/services/session-store.d.ts.map +1 -1
  436. package/dist/services/session-store.js +403 -67
  437. package/dist/services/session-store.js.map +1 -1
  438. package/dist/services/submit-notification.d.ts +3 -0
  439. package/dist/services/submit-notification.d.ts.map +1 -0
  440. package/dist/services/submit-notification.js +15 -0
  441. package/dist/services/submit-notification.js.map +1 -0
  442. package/dist/services/traex-transcript.d.ts +25 -2
  443. package/dist/services/traex-transcript.d.ts.map +1 -1
  444. package/dist/services/traex-transcript.js +133 -1
  445. package/dist/services/traex-transcript.js.map +1 -1
  446. package/dist/services/trigger-types.d.ts +13 -1
  447. package/dist/services/trigger-types.d.ts.map +1 -1
  448. package/dist/services/trigger-types.js +39 -0
  449. package/dist/services/trigger-types.js.map +1 -1
  450. package/dist/services/voice/index.d.ts +3 -2
  451. package/dist/services/voice/index.d.ts.map +1 -1
  452. package/dist/services/voice/index.js +5 -5
  453. package/dist/services/voice/index.js.map +1 -1
  454. package/dist/services/voice/openai.d.ts +2 -1
  455. package/dist/services/voice/openai.d.ts.map +1 -1
  456. package/dist/services/voice/openai.js +2 -1
  457. package/dist/services/voice/openai.js.map +1 -1
  458. package/dist/services/voice/sami.d.ts +5 -2
  459. package/dist/services/voice/sami.d.ts.map +1 -1
  460. package/dist/services/voice/sami.js +19 -4
  461. package/dist/services/voice/sami.js.map +1 -1
  462. package/dist/setup/bots-store.d.ts.map +1 -1
  463. package/dist/setup/bots-store.js +10 -4
  464. package/dist/setup/bots-store.js.map +1 -1
  465. package/dist/setup/lark-scopes.json +2 -0
  466. package/dist/setup/open-platform-automation.d.ts +9 -1
  467. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  468. package/dist/setup/open-platform-automation.js +44 -15
  469. package/dist/setup/open-platform-automation.js.map +1 -1
  470. package/dist/setup/open-platform-visibility.d.ts +42 -0
  471. package/dist/setup/open-platform-visibility.d.ts.map +1 -0
  472. package/dist/setup/open-platform-visibility.js +133 -0
  473. package/dist/setup/open-platform-visibility.js.map +1 -0
  474. package/dist/setup/verify-permissions.d.ts.map +1 -1
  475. package/dist/setup/verify-permissions.js +6 -0
  476. package/dist/setup/verify-permissions.js.map +1 -1
  477. package/dist/skills/definitions.js +2 -2
  478. package/dist/types.d.ts +290 -13
  479. package/dist/types.d.ts.map +1 -1
  480. package/dist/utils/bot-routing.d.ts +1 -0
  481. package/dist/utils/bot-routing.d.ts.map +1 -1
  482. package/dist/utils/bot-routing.js +1 -1
  483. package/dist/utils/bot-routing.js.map +1 -1
  484. package/dist/utils/child-env.d.ts +1 -1
  485. package/dist/utils/child-env.d.ts.map +1 -1
  486. package/dist/utils/child-env.js +9 -0
  487. package/dist/utils/child-env.js.map +1 -1
  488. package/dist/utils/codex-app-control.d.ts +438 -0
  489. package/dist/utils/codex-app-control.d.ts.map +1 -0
  490. package/dist/utils/codex-app-control.js +2336 -0
  491. package/dist/utils/codex-app-control.js.map +1 -0
  492. package/dist/utils/codex-app-dispatch-ledger.d.ts +78 -0
  493. package/dist/utils/codex-app-dispatch-ledger.d.ts.map +1 -0
  494. package/dist/utils/codex-app-dispatch-ledger.js +149 -0
  495. package/dist/utils/codex-app-dispatch-ledger.js.map +1 -0
  496. package/dist/utils/codex-app-turn-dispatch.d.ts +77 -0
  497. package/dist/utils/codex-app-turn-dispatch.d.ts.map +1 -0
  498. package/dist/utils/codex-app-turn-dispatch.js +141 -0
  499. package/dist/utils/codex-app-turn-dispatch.js.map +1 -0
  500. package/dist/utils/codex-app-turn-liveness.d.ts +125 -0
  501. package/dist/utils/codex-app-turn-liveness.d.ts.map +1 -0
  502. package/dist/utils/codex-app-turn-liveness.js +301 -0
  503. package/dist/utils/codex-app-turn-liveness.js.map +1 -0
  504. package/dist/utils/idle-detector.d.ts +12 -0
  505. package/dist/utils/idle-detector.d.ts.map +1 -1
  506. package/dist/utils/idle-detector.js +19 -0
  507. package/dist/utils/idle-detector.js.map +1 -1
  508. package/dist/utils/input-gate.d.ts +87 -0
  509. package/dist/utils/input-gate.d.ts.map +1 -1
  510. package/dist/utils/input-gate.js +86 -0
  511. package/dist/utils/input-gate.js.map +1 -1
  512. package/dist/utils/lark-upload.d.ts.map +1 -1
  513. package/dist/utils/lark-upload.js +52 -1
  514. package/dist/utils/lark-upload.js.map +1 -1
  515. package/dist/utils/pending-input-queue.d.ts +15 -0
  516. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  517. package/dist/utils/pending-input-queue.js +5 -1
  518. package/dist/utils/pending-input-queue.js.map +1 -1
  519. package/dist/utils/user-token.d.ts.map +1 -1
  520. package/dist/utils/user-token.js +53 -2
  521. package/dist/utils/user-token.js.map +1 -1
  522. package/dist/worker-ipc-preload.d.ts +12 -0
  523. package/dist/worker-ipc-preload.d.ts.map +1 -0
  524. package/dist/worker-ipc-preload.js +44 -0
  525. package/dist/worker-ipc-preload.js.map +1 -0
  526. package/dist/worker.js +2604 -325
  527. package/dist/worker.js.map +1 -1
  528. package/dist/workflows/v3/session-relay-client.d.ts +1 -0
  529. package/dist/workflows/v3/session-relay-client.d.ts.map +1 -1
  530. package/dist/workflows/v3/session-relay-client.js +12 -3
  531. package/dist/workflows/v3/session-relay-client.js.map +1 -1
  532. package/package.json +1 -1
  533. package/dist/dashboard-web/chunks/bot-defaults-page-LTVOUDIS.js +0 -10
  534. package/dist/dashboard-web/chunks/chunk-DCS35UMD.js +0 -1
  535. package/dist/dashboard-web/chunks/chunk-MFQPCVHY.js +0 -51
  536. package/dist/dashboard-web/chunks/connectors-page-5KWDIMKC.js +0 -1
  537. package/dist/dashboard-web/chunks/groups-page-FHOKYXMW.js +0 -8
  538. package/dist/dashboard-web/chunks/overview-page-QYI3KBDD.js +0 -1
  539. package/dist/dashboard-web/chunks/sessions-page-WBP4N7D2.js +0 -6
@@ -0,0 +1,85 @@
1
+ import * as sessionStore from '../services/session-store.js';
2
+ export function stagePendingRepoSetup(ds, args) {
3
+ const prior = {
4
+ queued: ds.session.queued,
5
+ queuedPrompt: ds.session.queuedPrompt,
6
+ queuedCodexAppText: ds.session.queuedCodexAppText,
7
+ queuedCodexAppMessageContext: ds.session.queuedCodexAppMessageContext,
8
+ pendingRepoSetup: ds.session.pendingRepoSetup,
9
+ };
10
+ const setup = {
11
+ mode: args.mode,
12
+ prompt: ds.pendingPrompt ?? '',
13
+ ...(ds.pendingRawInput ? { rawInput: ds.pendingRawInput } : {}),
14
+ ...(args.turnId ? { turnId: args.turnId } : {}),
15
+ ...(args.baseDir ? { baseDir: args.baseDir } : {}),
16
+ ...(ds.pendingCodexAppText !== undefined ? { codexAppText: ds.pendingCodexAppText } : {}),
17
+ ...(ds.pendingCodexAppApplicationContext
18
+ ? { codexAppApplicationContext: ds.pendingCodexAppApplicationContext }
19
+ : {}),
20
+ ...(ds.pendingCodexAppMessageContext
21
+ ? { codexAppMessageContext: ds.pendingCodexAppMessageContext }
22
+ : {}),
23
+ ...(ds.pendingAttachments?.length
24
+ ? { attachments: ds.pendingAttachments.map(attachment => ({ ...attachment })) }
25
+ : {}),
26
+ ...(ds.pendingMentions?.length
27
+ ? { mentions: ds.pendingMentions.map(mention => ({ ...mention })) }
28
+ : {}),
29
+ ...(ds.pendingSubstituteTrigger
30
+ ? { substituteTrigger: structuredClone(ds.pendingSubstituteTrigger) }
31
+ : {}),
32
+ ...(ds.pendingSender ? { sender: { ...ds.pendingSender } } : {}),
33
+ };
34
+ ds.session.queued = true;
35
+ ds.session.queuedPrompt = setup.prompt;
36
+ ds.session.queuedCodexAppText = setup.codexAppText;
37
+ ds.session.queuedCodexAppMessageContext = setup.codexAppMessageContext;
38
+ ds.session.pendingRepoSetup = setup;
39
+ try {
40
+ sessionStore.updateSession(ds.session);
41
+ }
42
+ catch (err) {
43
+ ds.session.queued = prior.queued;
44
+ ds.session.queuedPrompt = prior.queuedPrompt;
45
+ ds.session.queuedCodexAppText = prior.queuedCodexAppText;
46
+ ds.session.queuedCodexAppMessageContext = prior.queuedCodexAppMessageContext;
47
+ ds.session.pendingRepoSetup = prior.pendingRepoSetup;
48
+ throw err;
49
+ }
50
+ }
51
+ export function persistPendingRepoCardMessageId(ds, messageId) {
52
+ const setup = ds.session.pendingRepoSetup;
53
+ if (!setup)
54
+ return;
55
+ const prior = setup.repoCardMessageId;
56
+ setup.repoCardMessageId = messageId;
57
+ try {
58
+ sessionStore.updateSession(ds.session);
59
+ }
60
+ catch (err) {
61
+ setup.repoCardMessageId = prior;
62
+ throw err;
63
+ }
64
+ }
65
+ export function restorePendingRepoRuntime(ds) {
66
+ const setup = ds.session.pendingRepoSetup;
67
+ if (!setup || ds.session.queuedActivationPending)
68
+ return false;
69
+ ds.pendingRepo = true;
70
+ ds.pendingPrompt = setup.prompt;
71
+ ds.pendingRawInput = setup.rawInput;
72
+ ds.pendingCodexAppText = setup.codexAppText;
73
+ ds.pendingCodexAppApplicationContext = setup.codexAppApplicationContext;
74
+ ds.pendingCodexAppMessageContext = setup.codexAppMessageContext;
75
+ ds.pendingAttachments = setup.attachments?.map(attachment => ({ ...attachment }));
76
+ ds.pendingMentions = setup.mentions?.map(mention => ({ ...mention }));
77
+ ds.pendingSubstituteTrigger = setup.substituteTrigger
78
+ ? structuredClone(setup.substituteTrigger)
79
+ : undefined;
80
+ ds.pendingSender = setup.sender ? { ...setup.sender } : undefined;
81
+ ds.repoCardMessageId = setup.repoCardMessageId;
82
+ ds.initialStartPending = false;
83
+ return true;
84
+ }
85
+ //# sourceMappingURL=pending-repo-journal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-repo-journal.js","sourceRoot":"","sources":["../../src/core/pending-repo-journal.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,11 @@ export declare function reconcileRiffBackendType(cliId: string, resolved: Backen
57
57
  * Riff CLI/backend pairing. Keep spawn-time callers on this single helper so
58
58
  * worktree push decisions cannot drift from the backend forkWorker will use. */
59
59
  export declare function resolvePairedSpawnBackendType(cliId: string, sessionStamp: BackendType | undefined, botType: BackendType | undefined, defaultType: BackendType): BackendType;
60
+ /** Whether the live/persisted session is frozen onto the remote Riff backend.
61
+ * Restart guards must use the session stamp rather than the bot's mutable
62
+ * current config: changing a bot later must not make an existing Riff
63
+ * generation look locally restartable. */
64
+ export declare function isRiffBackendSession(ds: DaemonSession): boolean;
60
65
  /**
61
66
  * How a session's worker is torn down at daemon shutdown, branched on the
62
67
  * session's FROZEN backend (via getSessionPersistentBackendType), NOT live config:
@@ -66,7 +71,7 @@ export declare function resolvePairedSpawnBackendType(cliId: string, sessionStam
66
71
  * Freezing here stops a live backendType edit from changing how a running session
67
72
  * tears down — e.g. detach-preserving a "herdr" session whose real pane is tmux.
68
73
  */
69
- export declare function shutdownBackendDisposition(ds: DaemonSession): 'detach' | 'close';
74
+ export declare function shutdownBackendDisposition(ds: DaemonSession): 'riff-drain-detach' | 'detach' | 'close';
70
75
  /** Deterministic backing-session name (`bmx-<sid8>`, same rule across backends). */
71
76
  export declare function persistentSessionName(backendType: PersistentBackendType, sessionId: string): string;
72
77
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"persistent-backend.d.ts","sourceRoot":"","sources":["../../src/core/persistent-backend.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC;AAE9F;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,WAAW,EAAE,qBAAqB,EAClC,KAAK,EAAE,YAAY,GAClB,OAAO,CAET;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,WAAW,IAAI,qBAAqB,CAEtC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,aAAa,GAAG,qBAAqB,GAAG,SAAS,CAQpG;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,WAAW,GAAG,SAAS,EACrC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,WAAW,EAAE,WAAW,GACvB,WAAW,CAEb;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,WAAW,GACvB,WAAW,CAKb;AAED;;gFAEgF;AAChF,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,WAAW,GAAG,SAAS,EACrC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,WAAW,EAAE,WAAW,GACvB,WAAW,CAMb;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,aAAa,GAAG,QAAQ,GAAG,OAAO,CAOhF;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKnG;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,qBAAqB,EAClC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,uBAAuB,GAClC,uBAAuB,CAOzB;AAED,wBAAgB,iCAAiC,CAAC,EAAE,EAAE,aAAa,GAAG,uBAAuB,GAAG,SAAS,CAQxG;AAED;;6EAE6E;AAC7E,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,qBAAqB,EAClC,QAAQ,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,yBAAyB,CAAC,EAAE,GAC1F,uBAAuB,EAAE,CAQ3B;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,uBAAuB,GAAG,YAAY,CAK1F;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,uBAAuB,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAMN;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAKrG;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,qBAAqB,EAClC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GACtB,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAiCnC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,qBAAqB,EAClC,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAQN"}
1
+ {"version":3,"file":"persistent-backend.d.ts","sourceRoot":"","sources":["../../src/core/persistent-backend.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,13 @@ export function reconcileRiffBackendType(cliId, resolved, defaultType) {
95
95
  export function resolvePairedSpawnBackendType(cliId, sessionStamp, botType, defaultType) {
96
96
  return reconcileRiffBackendType(cliId, resolveSpawnBackendType(sessionStamp, botType, defaultType), defaultType);
97
97
  }
98
+ /** Whether the live/persisted session is frozen onto the remote Riff backend.
99
+ * Restart guards must use the session stamp rather than the bot's mutable
100
+ * current config: changing a bot later must not make an existing Riff
101
+ * generation look locally restartable. */
102
+ export function isRiffBackendSession(ds) {
103
+ return (ds.initConfig?.backendType ?? ds.session.backendType) === 'riff';
104
+ }
98
105
  /**
99
106
  * How a session's worker is torn down at daemon shutdown, branched on the
100
107
  * session's FROZEN backend (via getSessionPersistentBackendType), NOT live config:
@@ -105,12 +112,11 @@ export function resolvePairedSpawnBackendType(cliId, sessionStamp, botType, defa
105
112
  * tears down — e.g. detach-preserving a "herdr" session whose real pane is tmux.
106
113
  */
107
114
  export function shutdownBackendDisposition(ds) {
108
- // riff:远端任务独立于本地进程存活。daemon shutdown 走 'close' 会经 worker 的
109
- // destroySession() 取消远端任务——重启不该杀任务(血缘已持久化,重启后
110
- // follow-up 续上,agent 的 botmux send 照常送达)。detach = 仅 SIGTERM worker。
111
- const frozen = ds.initConfig?.backendType ?? ds.session.backendType;
112
- if (frozen === 'riff')
113
- return 'detach';
115
+ // Riff 不能落进普通 detach 的直接 SIGTERM:create/follow-up 最长 10s 才返回
116
+ // task id,而 worker SIGTERM 会立即 exit,丢掉唯一血缘。独立 disposition 迫使
117
+ // daemon 先走 drain → durable ACK → commit 协议;类型检查防止未来回归。
118
+ if (isRiffBackendSession(ds))
119
+ return 'riff-drain-detach';
114
120
  return getSessionPersistentBackendType(ds) ? 'detach' : 'close';
115
121
  }
116
122
  /** Deterministic backing-session name (`bmx-<sid8>`, same rule across backends). */
@@ -1 +1 @@
1
- {"version":3,"file":"persistent-backend.js","sourceRoot":"","sources":["../../src/core/persistent-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistent-backend.js","sourceRoot":"","sources":["../../src/core/persistent-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Stable process-birth identity used by supervisor mutation authority. */
2
+ export declare function readSupervisorProcessStartIdentity(pid: number): string | undefined;
3
+ //# sourceMappingURL=process-start-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-start-identity.d.ts","sourceRoot":"","sources":["../../src/core/process-start-identity.ts"],"names":[],"mappings":"AAUA,2EAA2E;AAC3E,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAwClF"}
@@ -0,0 +1,62 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { existsSync, readFileSync } from 'node:fs';
3
+ function systemPsBin() {
4
+ for (const candidate of ['/usr/bin/ps', '/bin/ps']) {
5
+ if (existsSync(candidate))
6
+ return candidate;
7
+ }
8
+ return undefined;
9
+ }
10
+ /** Stable process-birth identity used by supervisor mutation authority. */
11
+ export function readSupervisorProcessStartIdentity(pid) {
12
+ if (!Number.isSafeInteger(pid) || pid <= 1)
13
+ return undefined;
14
+ if (process.platform === 'linux') {
15
+ try {
16
+ const raw = readFileSync(`/proc/${pid}/stat`, 'utf8');
17
+ const closeParen = raw.lastIndexOf(')');
18
+ if (closeParen >= 0) {
19
+ const fields = raw.slice(closeParen + 2).trim().split(/\s+/);
20
+ if (fields[19])
21
+ return fields[19];
22
+ }
23
+ }
24
+ catch { /* exited or unreadable */ }
25
+ return undefined;
26
+ }
27
+ if (process.platform === 'win32') {
28
+ try {
29
+ const value = execFileSync('powershell.exe', [
30
+ '-NoProfile',
31
+ '-NonInteractive',
32
+ '-Command',
33
+ `$p = Get-CimInstance Win32_Process -Filter \"ProcessId = ${pid}\"; `
34
+ + 'if ($p) { $p.CreationDate.ToUniversalTime().Ticks }',
35
+ ], {
36
+ encoding: 'utf8',
37
+ timeout: 2_000,
38
+ stdio: ['ignore', 'pipe', 'ignore'],
39
+ }).trim();
40
+ return value || undefined;
41
+ }
42
+ catch {
43
+ return undefined;
44
+ }
45
+ }
46
+ const ps = systemPsBin();
47
+ if (!ps)
48
+ return undefined;
49
+ try {
50
+ const value = execFileSync(ps, ['-o', 'lstart=', '-p', String(pid)], {
51
+ encoding: 'utf8',
52
+ timeout: 2_000,
53
+ stdio: ['ignore', 'pipe', 'ignore'],
54
+ env: { PATH: '/usr/bin:/bin', LANG: 'C' },
55
+ }).trim();
56
+ return value || undefined;
57
+ }
58
+ catch {
59
+ return undefined;
60
+ }
61
+ }
62
+ //# sourceMappingURL=process-start-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-start-identity.js","sourceRoot":"","sources":["../../src/core/process-start-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,SAAS,WAAW;IAClB,KAAK,MAAM,SAAS,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QACnD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,kCAAkC,CAAC,GAAW;IAC5D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,EAAE,CAAC;oBAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,EAAE;gBAC3C,YAAY;gBACZ,iBAAiB;gBACjB,UAAU;gBACV,4DAA4D,GAAG,MAAM;sBACnE,qDAAqD;aACxD,EAAE;gBACD,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;aACpC,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,IAAI,SAAS,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;IAC/B,CAAC;IACD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACnE,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE;SAC1C,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,IAAI,SAAS,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,34 @@
1
+ /** Minimal write surface shared by PTY/session backends for literal slash
2
+ * commands. Historical backends return void on success; guarded backends
3
+ * return false when the target pane/process is already unavailable. */
4
+ export interface RawCommandWriter {
5
+ write(data: string): void | boolean;
6
+ sendText?: (text: string) => void | boolean;
7
+ sendSpecialKeys?: (...keys: string[]) => void | boolean;
8
+ }
9
+ export interface RawCommandWriteOptions {
10
+ coco?: boolean;
11
+ cocoThrottleMs?: number;
12
+ submitBeatMs?: number;
13
+ delay?: (ms: number) => Promise<void>;
14
+ }
15
+ /** Type one literal input line and report whether both the text and submit
16
+ * writes were accepted by the backend. `undefined` remains legacy success;
17
+ * explicit false is a proven drop and must never produce an activation ACK. */
18
+ export declare function writeRawCommandLine(backend: RawCommandWriter, content: string, opts?: RawCommandWriteOptions): Promise<boolean>;
19
+ export interface RawCommandDeliveryFinalizer {
20
+ accepted: boolean;
21
+ durableActivation: boolean;
22
+ acknowledgeActivation: boolean;
23
+ hasFollowUp: boolean;
24
+ onAccepted: () => void;
25
+ onFollowUp: () => void;
26
+ onActivationAck: () => void;
27
+ onDurableFailure: () => void;
28
+ }
29
+ /** Apply the raw-input side effects at the acceptance boundary. A rejected
30
+ * text/Enter write can neither enqueue the follower nor ACK the durable head;
31
+ * it must retire the worker generation so daemon exit recovery keeps the exact
32
+ * journal routable. */
33
+ export declare function finalizeRawCommandDelivery(args: RawCommandDeliveryFinalizer): boolean;
34
+ //# sourceMappingURL=raw-command-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-command-writer.d.ts","sourceRoot":"","sources":["../../src/core/raw-command-writer.ts"],"names":[],"mappings":"AAAA;;uEAEuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;IAC5C,eAAe,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;+EAE+E;AAC/E,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;uBAGuB;AACvB,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CASrF"}
@@ -0,0 +1,48 @@
1
+ /** Type one literal input line and report whether both the text and submit
2
+ * writes were accepted by the backend. `undefined` remains legacy success;
3
+ * explicit false is a proven drop and must never produce an activation ACK. */
4
+ export async function writeRawCommandLine(backend, content, opts = {}) {
5
+ const delay = opts.delay ?? (ms => new Promise(resolve => setTimeout(resolve, ms)));
6
+ const beatMs = opts.submitBeatMs ?? 200;
7
+ const sendText = backend.sendText?.bind(backend);
8
+ const sendSpecialKeys = backend.sendSpecialKeys?.bind(backend);
9
+ if (sendText && sendSpecialKeys) {
10
+ if (opts.coco) {
11
+ const cmd = content.trim();
12
+ const typed = cmd.includes(' ') ? cmd : `${cmd} `;
13
+ for (const ch of typed) {
14
+ if (sendText(ch) === false)
15
+ return false;
16
+ await delay(opts.cocoThrottleMs ?? 40);
17
+ }
18
+ await delay(beatMs);
19
+ return sendSpecialKeys('Enter') !== false;
20
+ }
21
+ if (sendText(content) === false)
22
+ return false;
23
+ await delay(beatMs);
24
+ return sendSpecialKeys('Enter') !== false;
25
+ }
26
+ if (backend.write(content) === false)
27
+ return false;
28
+ await delay(beatMs);
29
+ return backend.write('\r') !== false;
30
+ }
31
+ /** Apply the raw-input side effects at the acceptance boundary. A rejected
32
+ * text/Enter write can neither enqueue the follower nor ACK the durable head;
33
+ * it must retire the worker generation so daemon exit recovery keeps the exact
34
+ * journal routable. */
35
+ export function finalizeRawCommandDelivery(args) {
36
+ if (!args.accepted) {
37
+ if (args.durableActivation)
38
+ args.onDurableFailure();
39
+ return false;
40
+ }
41
+ args.onAccepted();
42
+ if (args.hasFollowUp)
43
+ args.onFollowUp();
44
+ if (args.acknowledgeActivation)
45
+ args.onActivationAck();
46
+ return true;
47
+ }
48
+ //# sourceMappingURL=raw-command-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-command-writer.js","sourceRoot":"","sources":["../../src/core/raw-command-writer.ts"],"names":[],"mappings":"AAgBA;;+EAE+E;AAC/E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAyB,EACzB,OAAe,EACf,OAA+B,EAAE;IAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAE/D,IAAI,QAAQ,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;YAClD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACzC,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,eAAe,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;QAC5C,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC9C,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,eAAe,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;AACvC,CAAC;AAaD;;;uBAGuB;AACvB,MAAM,UAAU,0BAA0B,CAAC,IAAiC;IAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;IAClB,IAAI,IAAI,CAAC,WAAW;QAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACxC,IAAI,IAAI,CAAC,qBAAqB;QAAE,IAAI,CAAC,eAAe,EAAE,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,5 +1,31 @@
1
1
  import type { DaemonSession } from './types.js';
2
- import type { Session } from '../types.js';
2
+ import type { FrozenSessionReplyContext, LarkMention, ReplyTargetEntry, Session, TurnParticipant } from '../types.js';
3
+ /** Merge participants by open_id, keeping the richest label (a later entry can
4
+ * fill a missing name / promote isBot). Order-stable on first appearance so a
5
+ * candidate list reads in arrival order. */
6
+ export declare function dedupeParticipants(list: TurnParticipant[]): TurnParticipant[];
7
+ /** Pure core of a message's turn-window contribution (daemon wraps it with live
8
+ * deps). Its sender plus everyone it @-mentioned, excluding the answering bot
9
+ * (by `selfOpenId` OR `selfAppId` — a self @ often arrives in app_id form, so
10
+ * open_id alone would miss it and wrongly mark a plain 1v1 incomplete).
11
+ * `participants` holds ONLY executable receiver-scoped open_id candidates (so
12
+ * `botmux send` can hand them back as `--mention <open_id>`), each labelled bot
13
+ * (`isMentionBot` proves a known peer, or sender is a platform-stamped bot) /
14
+ * unknown (NOT provably human — `isMentionBot=false` does not prove a person; a
15
+ * third-party bot isn't in the cross-ref). Returns `incomplete: true` when a
16
+ * real, NON-self @-mention could not be reduced to a usable open_id (app_id /
17
+ * user_id / union_id form — parser leaves `openId` undefined): that counterpart
18
+ * is NOT listed as a candidate but forces the window ambiguous so the gate
19
+ * demands an explicit decision rather than risk a wrong single-target @. Sender
20
+ * name is best-effort — omitted when unknown. */
21
+ export declare function buildTurnParticipantsFrom(sender: {
22
+ openId?: string;
23
+ isBot?: boolean;
24
+ name?: string;
25
+ }, mentions: LarkMention[] | undefined, selfOpenId: string | undefined, isMentionBot: (openId: string) => boolean, selfAppId?: string): {
26
+ participants: TurnParticipant[];
27
+ incomplete: boolean;
28
+ };
3
29
  export type SessionReplyTarget = {
4
30
  mode: 'plain';
5
31
  chatId: string;
@@ -10,28 +36,32 @@ export type SessionReplyTarget = {
10
36
  mode: 'quote';
11
37
  rootMessageId: string;
12
38
  };
13
- /** Per-turn reply-target entry persisted in `Session.replyTargets` (keyed by
14
- * turnId, so the key is not repeated inside the value). */
15
- export interface ReplyTargetEntry {
16
- rootMessageId: string;
17
- updatedAt: string;
18
- quoteOnly?: boolean;
19
- substitute?: boolean;
20
- }
21
- /** The reply target for a SPECIFIC turn: exact per-turn entry first, then the
22
- * single-slot currentReplyTarget (which only remembers the latest turn — with
23
- * queued/concurrent turns an earlier turn would otherwise lose its anchor). */
24
- export declare function pickTurnReplyTarget(s: Pick<Session, 'replyTargets' | 'currentReplyTarget'>, currentTurnId: string | undefined): {
25
- rootMessageId: string;
39
+ /** Bound on `Session.replyTargets`: long-lived sessions could otherwise grow
40
+ * without limit. An evicted turn may use a legacy slot only when its turnId
41
+ * still matches exactly; it never borrows a later turn's sender. */
42
+ export declare const REPLY_TARGETS_MAX = 32;
43
+ /** Prune `targets` down to REPLY_TARGETS_MAX oldest-first, IN PLACE, and return
44
+ * the new prune high-water mark = max(existing watermark, latest `updatedAt`
45
+ * among the entries actually evicted). Both replyTargets writers
46
+ * (beginReplyTargetTurn + trigger-final-suppression's inheritTriggerReplyAnchor)
47
+ * MUST route eviction through here so a pruned sibling can never silently
48
+ * under-count a turn's participant window — `botmux send` compares the returned
49
+ * watermark against the turn window to decide incompleteness. */
50
+ export declare function pruneReplyTargets(targets: Record<string, ReplyTargetEntry>, prevPrunedThrough: string | undefined): string | undefined;
51
+ export interface TurnReplyTarget extends Omit<ReplyTargetEntry, 'updatedAt'> {
26
52
  turnId: string;
27
- quoteOnly?: boolean;
28
- substitute?: boolean;
29
- } | undefined;
30
- /** Whether `turnId` is a substitute (avatar-style) turn. With no turn context,
31
- * falls back to the latest-accepted turn's flag — callers that have a turnId
32
- * (screen updates, turn reactions) get an exact per-turn answer so a queued
33
- * normal turn doesn't inherit a substitute turn's card-off (or vice versa). */
34
- export declare function isSubstituteTurn(ds: Pick<DaemonSession, 'session' | 'currentReplyTarget'>, turnId?: string): boolean;
53
+ updatedAt?: string;
54
+ }
55
+ /** Reply context for one exact turn. The per-turn entry is authoritative. Old
56
+ * persisted sessions may fall back to the single slots only when those slots
57
+ * explicitly identify the requested turn. */
58
+ export declare function pickTurnReplyTarget(s: Pick<Session, 'replyTargets' | 'currentReplyTarget' | 'quoteTargetId' | 'quoteTargetSenderOpenId'>, currentTurnId: string | undefined): TurnReplyTarget | undefined;
59
+ /** Whether `turnId` is a chat-scope substitute turn that disables the
60
+ * streaming card. Thread-scope substitute turns keep their normal card. With
61
+ * no turn context, falls back to the latest-accepted chat turn's flag; callers
62
+ * with a turnId get an exact per-turn answer so queued normal/substitute turns
63
+ * cannot inherit each other's card state. */
64
+ export declare function isSubstituteTurn(ds: Pick<DaemonSession, 'scope' | 'session' | 'currentReplyTarget'>, turnId?: string): boolean;
35
65
  export declare function resolveSessionReplyTarget(ds: Pick<DaemonSession, 'scope' | 'chatId' | 'session' | 'currentReplyTarget'>, turnId?: string): SessionReplyTarget;
36
66
  export declare function resolveSendTarget(opts: {
37
67
  into?: string;
@@ -47,7 +77,40 @@ export declare function resolveSendTarget(opts: {
47
77
  export declare function beginReplyTargetTurn(ds: DaemonSession, replyRootId: string | undefined, turnId: string, nowIso?: string, opts?: {
48
78
  quoteOnly?: boolean;
49
79
  substitute?: boolean;
80
+ senderOpenId?: string;
81
+ participants?: TurnParticipant[];
82
+ participantsIncomplete?: boolean;
50
83
  }): void;
84
+ /** Resolve a turn's immutable inbound destination, falling back only for
85
+ * legacy/non-Lark turns that predate the bounded registry. */
86
+ export declare function frozenReplyContextForTurn(ds: Pick<DaemonSession, 'scope' | 'chatId' | 'session' | 'currentReplyTarget'>, turnId?: string): FrozenSessionReplyContext;
87
+ /** Window within which sibling turn records are treated as the SAME turn for
88
+ * --mention-back ambiguity. Type-ahead follow-ups each land as their own
89
+ * per-turn record (distinct message_id), and the model may resolve
90
+ * BOTMUX_TURN_ID to whichever was processed last — so `botmux send` unions the
91
+ * participants of every record updated within this window of the resolved
92
+ * turn. Deliberate conservative approximation: uncertainty (an incomplete
93
+ * window, a pruned sibling, no window at all) fails toward explicit addressing,
94
+ * and erring wide can only over-suggest an explicit --mention, never wrongly
95
+ * auto-@ the wrong single counterpart. 90s comfortably spans a busy CLI batch
96
+ * while not bleeding into an unrelated later conversation. */
97
+ export declare const TURN_WINDOW_MS = 90000;
98
+ export interface TurnWindow {
99
+ /** Executable receiver-scoped open_id candidates in the window (deduped). */
100
+ participants: TurnParticipant[];
101
+ /** True when the set may be UNDER-counted — a non-open_id @ we couldn't
102
+ * resolve, a window-relevant sibling pruned by the bounded map, or the turn
103
+ * window itself is unknown. Callers must fail toward an explicit --mention. */
104
+ incomplete: boolean;
105
+ }
106
+ /** The turn-window counterpart set for `currentTurnId`: the resolved turn's own
107
+ * participants unioned with those of any sibling turn record updated within
108
+ * TURN_WINDOW_MS (covers type-ahead follow-ups that folded into this model
109
+ * turn under different message_ids). `incomplete` is set when the set can't be
110
+ * proven complete — no anchor, a window record self-marked incomplete
111
+ * (unresolved @), or the prune watermark reaches into the window (a pruned
112
+ * sibling may have carried an unseen counterpart). */
113
+ export declare function collectTurnWindowParticipants(s: Pick<Session, 'replyTargets' | 'replyTargetsPrunedThrough'>, currentTurnId: string | undefined): TurnWindow;
51
114
  /**
52
115
  * Effective turnId for a daemon-side message. Callers that know their turn
53
116
  * (worker final_output, placeholder cards) pass it explicitly and the
@@ -1 +1 @@
1
- {"version":3,"file":"reply-target.d.ts","sourceRoot":"","sources":["../../src/core/reply-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C;4DAC4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AASD;;gFAEgF;AAChF,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,oBAAoB,CAAC,EACvD,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAQlG;AAED;;;gFAGgF;AAChF,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,oBAAoB,CAAC,EACzD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAYT;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,oBAAoB,CAAC,EAC9E,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,CAmBpB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,kBAAkB,CAYrB;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,aAAa,EACjB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,SAA2B,EACjC,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACnD,IAAI,CA+BN;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,oBAAoB,CAAC,EACzD,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAIzE"}
1
+ {"version":3,"file":"reply-target.d.ts","sourceRoot":"","sources":["../../src/core/reply-target.ts"],"names":[],"mappings":"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"}