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,27 @@
1
+ /**
2
+ * Graceful-shutdown budgets are shared with the CLI/PM2 supervisor. Keep the
3
+ * ordering monotonic: a Riff create/follow-up fetch is bounded at 10s,
4
+ * admission restoration after a refused prepare at 11s, and ordinary worker
5
+ * exit at 3s. Shutdown never cancels accepted Riff work as a fallback.
6
+ */
7
+ export declare const RIFF_SHUTDOWN_DRAIN_TIMEOUT_MS = 12000;
8
+ /** Admission restoration can wait for the same bounded 10s create/follow-up
9
+ * that prepare was draining. The daemon keeps its retirement fence throughout. */
10
+ export declare const RIFF_ADMISSION_RESTORE_TIMEOUT_MS = 11000;
11
+ /** Bounded acquisition of the bot-wide mutation lease. A timed-out waiter is
12
+ * removed and can never run after shutdown has already been refused. */
13
+ export declare const BOT_TURN_MUTATION_SHUTDOWN_ACQUIRE_TIMEOUT_MS = 1000;
14
+ /** Initial all-owner snapshot and phase-2 batch CAS each use one short lock. */
15
+ export declare const RIFF_SHUTDOWN_INITIAL_SNAPSHOT_TIMEOUT_MS = 1000;
16
+ export declare const RIFF_SHUTDOWN_BATCH_PERSIST_TIMEOUT_MS = 1000;
17
+ /** Scheduling/logging slack inside the supervisor-visible daemon budget. */
18
+ export declare const DAEMON_SHUTDOWN_OVERHEAD_MS = 2000;
19
+ export declare const DAEMON_WORKER_EXIT_GRACE_MS = 3000;
20
+ export declare const DAEMON_SHUTDOWN_MAX_MS: number;
21
+ export declare const PM2_DAEMON_KILL_TIMEOUT_MS = 29000;
22
+ export declare const PM2_DAEMON_RESTART_DELAY_MS = 3000;
23
+ /** A full restart-delay plus projection jitter. The fleet helper must observe
24
+ * this quiet window after every signalled generation exits. */
25
+ export declare const FLEET_SUCCESSOR_SETTLE_MS: number;
26
+ export declare const FLEET_DAEMON_EXIT_WAIT_MS = 60000;
27
+ //# sourceMappingURL=shutdown-budgets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown-budgets.d.ts","sourceRoot":"","sources":["../../src/core/shutdown-budgets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD;kFACkF;AAClF,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD;wEACwE;AACxE,eAAO,MAAM,6CAA6C,OAAQ,CAAC;AAEnE,gFAAgF;AAChF,eAAO,MAAM,yCAAyC,OAAQ,CAAC;AAC/D,eAAO,MAAM,sCAAsC,OAAQ,CAAC;AAE5D,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AACjD,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AACjD,eAAO,MAAM,sBAAsB,QAMJ,CAAC;AAChC,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AACjD;+DAC+D;AAC/D,eAAO,MAAM,yBAAyB,QAAoC,CAAC;AAC3E,eAAO,MAAM,yBAAyB,QAAS,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Graceful-shutdown budgets are shared with the CLI/PM2 supervisor. Keep the
3
+ * ordering monotonic: a Riff create/follow-up fetch is bounded at 10s,
4
+ * admission restoration after a refused prepare at 11s, and ordinary worker
5
+ * exit at 3s. Shutdown never cancels accepted Riff work as a fallback.
6
+ */
7
+ export const RIFF_SHUTDOWN_DRAIN_TIMEOUT_MS = 12_000;
8
+ /** Admission restoration can wait for the same bounded 10s create/follow-up
9
+ * that prepare was draining. The daemon keeps its retirement fence throughout. */
10
+ export const RIFF_ADMISSION_RESTORE_TIMEOUT_MS = 11_000;
11
+ /** Bounded acquisition of the bot-wide mutation lease. A timed-out waiter is
12
+ * removed and can never run after shutdown has already been refused. */
13
+ export const BOT_TURN_MUTATION_SHUTDOWN_ACQUIRE_TIMEOUT_MS = 1_000;
14
+ /** Initial all-owner snapshot and phase-2 batch CAS each use one short lock. */
15
+ export const RIFF_SHUTDOWN_INITIAL_SNAPSHOT_TIMEOUT_MS = 1_000;
16
+ export const RIFF_SHUTDOWN_BATCH_PERSIST_TIMEOUT_MS = 1_000;
17
+ /** Scheduling/logging slack inside the supervisor-visible daemon budget. */
18
+ export const DAEMON_SHUTDOWN_OVERHEAD_MS = 2_000;
19
+ export const DAEMON_WORKER_EXIT_GRACE_MS = 3_000;
20
+ export const DAEMON_SHUTDOWN_MAX_MS = BOT_TURN_MUTATION_SHUTDOWN_ACQUIRE_TIMEOUT_MS
21
+ + RIFF_SHUTDOWN_INITIAL_SNAPSHOT_TIMEOUT_MS
22
+ + RIFF_SHUTDOWN_DRAIN_TIMEOUT_MS
23
+ + RIFF_SHUTDOWN_BATCH_PERSIST_TIMEOUT_MS
24
+ + Math.max(RIFF_ADMISSION_RESTORE_TIMEOUT_MS, DAEMON_WORKER_EXIT_GRACE_MS)
25
+ + DAEMON_SHUTDOWN_OVERHEAD_MS;
26
+ export const PM2_DAEMON_KILL_TIMEOUT_MS = 29_000;
27
+ export const PM2_DAEMON_RESTART_DELAY_MS = 3_000;
28
+ /** A full restart-delay plus projection jitter. The fleet helper must observe
29
+ * this quiet window after every signalled generation exits. */
30
+ export const FLEET_SUCCESSOR_SETTLE_MS = PM2_DAEMON_RESTART_DELAY_MS + 500;
31
+ export const FLEET_DAEMON_EXIT_WAIT_MS = 60_000;
32
+ if (PM2_DAEMON_KILL_TIMEOUT_MS <= DAEMON_SHUTDOWN_MAX_MS) {
33
+ throw new Error('PM2 daemon kill timeout must exceed the complete daemon shutdown budget');
34
+ }
35
+ if (DAEMON_SHUTDOWN_MAX_MS > 28_000) {
36
+ throw new Error('complete daemon shutdown budget must remain at or below 28 seconds');
37
+ }
38
+ if (FLEET_DAEMON_EXIT_WAIT_MS <= PM2_DAEMON_KILL_TIMEOUT_MS) {
39
+ throw new Error('fleet restart wait must exceed the PM2 daemon kill timeout');
40
+ }
41
+ if (FLEET_DAEMON_EXIT_WAIT_MS <= DAEMON_SHUTDOWN_MAX_MS + FLEET_SUCCESSOR_SETTLE_MS) {
42
+ throw new Error('fleet restart wait must cover daemon shutdown plus successor quiet window');
43
+ }
44
+ if (FLEET_DAEMON_EXIT_WAIT_MS <= PM2_DAEMON_KILL_TIMEOUT_MS + FLEET_SUCCESSOR_SETTLE_MS) {
45
+ throw new Error('fleet restart wait must cover PM2 kill timeout plus successor quiet window');
46
+ }
47
+ //# sourceMappingURL=shutdown-budgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown-budgets.js","sourceRoot":"","sources":["../../src/core/shutdown-budgets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAErD;kFACkF;AAClF,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD;wEACwE;AACxE,MAAM,CAAC,MAAM,6CAA6C,GAAG,KAAK,CAAC;AAEnE,gFAAgF;AAChF,MAAM,CAAC,MAAM,yCAAyC,GAAG,KAAK,CAAC;AAC/D,MAAM,CAAC,MAAM,sCAAsC,GAAG,KAAK,CAAC;AAE5D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AACjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AACjD,MAAM,CAAC,MAAM,sBAAsB,GACjC,6CAA6C;MAC3C,yCAAyC;MACzC,8BAA8B;MAC9B,sCAAsC;MACtC,IAAI,CAAC,GAAG,CAAC,iCAAiC,EAAE,2BAA2B,CAAC;MACxE,2BAA2B,CAAC;AAChC,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AACjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AACjD;+DAC+D;AAC/D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,GAAG,GAAG,CAAC;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEhD,IAAI,0BAA0B,IAAI,sBAAsB,EAAE,CAAC;IACzD,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;AAC7F,CAAC;AACD,IAAI,sBAAsB,GAAG,MAAM,EAAE,CAAC;IACpC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACxF,CAAC;AACD,IAAI,yBAAyB,IAAI,0BAA0B,EAAE,CAAC;IAC5D,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAChF,CAAC;AACD,IAAI,yBAAyB,IAAI,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IACpF,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC/F,CAAC;AACD,IAAI,yBAAyB,IAAI,0BAA0B,GAAG,yBAAyB,EAAE,CAAC;IACxF,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;AAChG,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const SUPERVISOR_SHUTDOWN_ROUTE = "/__supervisor-ipc/v1/shutdown";
2
+ export interface SupervisorShutdownIdentity {
3
+ larkAppId: string;
4
+ bootInstanceId: string;
5
+ processStartIdentity: string;
6
+ }
7
+ export interface SupervisorShutdownRequest extends SupervisorShutdownIdentity {
8
+ }
9
+ export declare function isExactSupervisorShutdownRequest(identity: SupervisorShutdownIdentity, value: unknown): value is SupervisorShutdownRequest;
10
+ //# sourceMappingURL=supervisor-shutdown-ipc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor-shutdown-ipc.d.ts","sourceRoot":"","sources":["../../src/core/supervisor-shutdown-ipc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AAEzE,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;CAAG;AAEhF,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,0BAA0B,EACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,yBAAyB,CAMpC"}
@@ -0,0 +1,10 @@
1
+ export const SUPERVISOR_SHUTDOWN_ROUTE = '/__supervisor-ipc/v1/shutdown';
2
+ export function isExactSupervisorShutdownRequest(identity, value) {
3
+ if (!value || typeof value !== 'object' || Array.isArray(value))
4
+ return false;
5
+ const record = value;
6
+ return record.larkAppId === identity.larkAppId
7
+ && record.bootInstanceId === identity.bootInstanceId
8
+ && record.processStartIdentity === identity.processStartIdentity;
9
+ }
10
+ //# sourceMappingURL=supervisor-shutdown-ipc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor-shutdown-ipc.js","sourceRoot":"","sources":["../../src/core/supervisor-shutdown-ipc.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,+BAA+B,CAAC;AAUzE,MAAM,UAAU,gCAAgC,CAC9C,QAAoC,EACpC,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;WACzC,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc;WACjD,MAAM,CAAC,oBAAoB,KAAK,QAAQ,CAAC,oBAAoB,CAAC;AACrE,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Descriptor capability required before a supervisor may signal a live daemon.
3
+ * Bump this exact value whenever shutdown safety depends on a protocol that an
4
+ * already-running older daemon does not implement.
5
+ */
6
+ export declare const SUPERVISOR_SHUTDOWN_PROTOCOL: "riff-fleet-prepare-persist-commit-managed-sentinel-v3";
7
+ /**
8
+ * PM2 normalizes signal-only child exits to code 0 (`code || 0`) before it
9
+ * evaluates `stop_exit_codes`. Zero therefore cannot prove that the daemon
10
+ * completed the protocol above: SIGKILL/OOM may look identical. Only the
11
+ * successful end of a PM2-managed daemon.shutdown() exits with this reserved
12
+ * non-zero code; foreground launches keep the conventional zero exit.
13
+ */
14
+ export declare const DAEMON_GRACEFUL_EXIT_CODE = 90;
15
+ export type SupervisorShutdownProtocol = typeof SUPERVISOR_SHUTDOWN_PROTOCOL;
16
+ //# sourceMappingURL=supervisor-shutdown-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor-shutdown-protocol.d.ts","sourceRoot":"","sources":["../../src/core/supervisor-shutdown-protocol.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAG,uDAAgE,CAAC;AAE7G;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,KAAyB,CAAC;AAEhE,MAAM,MAAM,0BAA0B,GAAG,OAAO,4BAA4B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { PM2_GRACEFUL_EXIT_CODE } from '../pm2-graceful-exit.js';
2
+ /**
3
+ * Descriptor capability required before a supervisor may signal a live daemon.
4
+ * Bump this exact value whenever shutdown safety depends on a protocol that an
5
+ * already-running older daemon does not implement.
6
+ */
7
+ export const SUPERVISOR_SHUTDOWN_PROTOCOL = 'riff-fleet-prepare-persist-commit-managed-sentinel-v3';
8
+ /**
9
+ * PM2 normalizes signal-only child exits to code 0 (`code || 0`) before it
10
+ * evaluates `stop_exit_codes`. Zero therefore cannot prove that the daemon
11
+ * completed the protocol above: SIGKILL/OOM may look identical. Only the
12
+ * successful end of a PM2-managed daemon.shutdown() exits with this reserved
13
+ * non-zero code; foreground launches keep the conventional zero exit.
14
+ */
15
+ export const DAEMON_GRACEFUL_EXIT_CODE = PM2_GRACEFUL_EXIT_CODE;
16
+ //# sourceMappingURL=supervisor-shutdown-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor-shutdown-protocol.js","sourceRoot":"","sources":["../../src/core/supervisor-shutdown-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,uDAAgE,CAAC;AAE7G;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC"}
@@ -1,4 +1,8 @@
1
1
  import type { DaemonSession } from './types.js';
2
+ /** Bound on the per-turn reply-target map — reuses reply-target.ts's shared
3
+ * pruneReplyTargets so eviction updates the SAME prune watermark the
4
+ * --mention-back ambiguity gate reads (a synthetic trigger folding in must not
5
+ * silently prune a participant-bearing sibling without raising the watermark). */
2
6
  /**
3
7
  * Give a synthetic trigger turn the session's CURRENT fold-back anchor.
4
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"trigger-final-suppression.d.ts","sourceRoot":"","sources":["../../src/core/trigger-final-suppression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAkBhD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,SAA2B,GAChC,IAAI,CAoBN;AAgBD,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,MAAM,EACd,GAAG,SAAa,GACf,IAAI,CAIN;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,aAAa,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,GAAG,SAAa,GACf,OAAO,CAQT;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAGrF"}
1
+ {"version":3,"file":"trigger-final-suppression.d.ts","sourceRoot":"","sources":["../../src/core/trigger-final-suppression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAchD;;;mFAGmF;AAEnF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,SAA2B,GAChC,IAAI,CAcN;AAgBD,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,MAAM,EACd,GAAG,SAAa,GACf,IAAI,CAIN;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,aAAa,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,GAAG,SAAa,GACf,OAAO,CAQT;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAGrF"}
@@ -1,3 +1,4 @@
1
+ import { pruneReplyTargets } from './reply-target.js';
1
2
  // Turn-exact suppression of the daemon-rendered final_output for loud external
2
3
  // triggers whose owner opted into "no trailing final notice" (connector
3
4
  // suppressFinalOutput). Unlike silent scheduled fires this leaves the streaming
@@ -8,10 +9,10 @@
8
9
  // age/size when new suppressions are armed.
9
10
  const SUPPRESS_TTL_MS = 24 * 60 * 60 * 1000;
10
11
  const MAX_SUPPRESSED_TURNS_PER_SESSION = 256;
11
- /** Bound on the per-turn reply-target map, mirroring reply-target.ts's own
12
- * REPLY_TARGETS_MAX so an inherited trigger anchor can never grow the map
13
- * past what the normal IM path allows. */
14
- const REPLY_TARGETS_MAX = 32;
12
+ /** Bound on the per-turn reply-target map reuses reply-target.ts's shared
13
+ * pruneReplyTargets so eviction updates the SAME prune watermark the
14
+ * --mention-back ambiguity gate reads (a synthetic trigger folding in must not
15
+ * silently prune a participant-bearing sibling without raising the watermark). */
15
16
  /**
16
17
  * Give a synthetic trigger turn the session's CURRENT fold-back anchor.
17
18
  *
@@ -45,13 +46,7 @@ export function inheritTriggerReplyAnchor(ds, turnId, nowIso = new Date().toISOS
45
46
  ...(anchor.quoteOnly ? { quoteOnly: true } : {}),
46
47
  ...(anchor.substitute ? { substitute: true } : {}),
47
48
  };
48
- const keys = Object.keys(targets);
49
- if (keys.length > REPLY_TARGETS_MAX) {
50
- keys
51
- .sort((a, b) => (targets[a].updatedAt < targets[b].updatedAt ? -1 : 1))
52
- .slice(0, keys.length - REPLY_TARGETS_MAX)
53
- .forEach(k => { delete targets[k]; });
54
- }
49
+ ds.session.replyTargetsPrunedThrough = pruneReplyTargets(targets, ds.session.replyTargetsPrunedThrough);
55
50
  ds.session.replyTargets = targets;
56
51
  }
57
52
  function pruneTriggerFinalSuppression(ds, now) {
@@ -1 +1 @@
1
- {"version":3,"file":"trigger-final-suppression.js","sourceRoot":"","sources":["../../src/core/trigger-final-suppression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trigger-final-suppression.js","sourceRoot":"","sources":["../../src/core/trigger-final-suppression.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import * as idempotencyStore from '../services/idempotency-store.js';
1
2
  import { type ChatMode } from '../im/lark/client.js';
2
3
  import { type ChatReplyMode } from '../services/chat-reply-mode-store.js';
3
4
  import type { DaemonSession } from './types.js';
@@ -52,5 +53,74 @@ export declare function buildExternalEventDataContext(req: TriggerRequest, trigg
52
53
  * keep a top-level external event flat in the group chat-scope session, exactly
53
54
  * as they route a top-level @mention. Exported for unit tests. */
54
55
  export declare function externalEventOpensOwnTopic(chatMode: ChatMode, regularGroupMode: ChatReplyMode): boolean;
56
+ type IdempotencyHitDecision = {
57
+ kind: 'reuse';
58
+ chatId: string;
59
+ message: string;
60
+ } | {
61
+ kind: 'terminal';
62
+ chatId: string;
63
+ message: string;
64
+ } | {
65
+ kind: 'takeover';
66
+ };
67
+ /** Decide what a same-payload idempotency-key HIT means (at-most-once). The
68
+ * TERMINAL outcome is owned by async-trigger-store (completed / failed), not by
69
+ * the lease — so a durable failed (dispatch_unknown) or completed is checked
70
+ * FIRST and wins over any lease state. The lease only distinguishes "in flight
71
+ * / reserved by me" (reuse) from "older-boot reserved" (takeover). Exported for tests. */
72
+ export declare function resolveIdempotencyHit(hit: idempotencyStore.IdempotencyRecord, ownerBootId: string, activeSessions: Map<string, DaemonSession>): IdempotencyHitDecision;
73
+ /**
74
+ * Boot reconcile for idempotency leases (at-most-once convergence). MUST run
75
+ * after the session store + worker pool are initialized but BEFORE the IPC
76
+ * server binds, and is scoped to a SINGLE owning bot (`ownerLarkAppId`) — the
77
+ * dataDir is shared across bots, so a bot must never touch another's leases.
78
+ * For each of THIS owner's leases left by a PREVIOUS boot:
79
+ * - completed (async store proves it) → keep; a retry polls the completed result.
80
+ * - attempting (commit-unknown, previous boot gone) → write a durable
81
+ * `dispatch_unknown` FAILED into async-trigger-store (authoritative terminal,
82
+ * so trigger-result converges to `failed` regardless of session close), then
83
+ * best-effort close the orphan. NEVER re-dispatched.
84
+ * - reserved (provably pre-dispatch) → CAS-remove the lease + best-effort close
85
+ * the never-dispatched session, so a same-key retry starts fresh.
86
+ * Returns the set of sessionIds terminalized/closed here so the caller can
87
+ * quarantine them from re-attach in restoreActiveSessions.
88
+ */
89
+ export declare function reconcileIdempotencyLeasesOnBoot(ownerLarkAppId: string, currentBootId: string, getSession?: (id: string) => {
90
+ chatId?: string;
91
+ } | undefined): Promise<Set<string>>;
92
+ /**
93
+ * Converge an INCOMPLETE idempotent async turn when its worker exits (codex #776
94
+ * round-6 finding #1). A worker that dies with no final_output sets ds.worker=null
95
+ * but leaves the session in activeSessions and its async record `pending`, so
96
+ * trigger-result would poll `running` and a same-key retry would `reuse` the dead
97
+ * session — both forever, until the next daemon boot reconcile. Registry presence
98
+ * is NOT execution liveness.
99
+ *
100
+ * We write the authoritative durable `dispatch_unknown` failed (the same terminal
101
+ * the boot reconcile writes), which trigger-result reads BEFORE its running
102
+ * branch and resolveIdempotencyHit reads as `terminal` — converging both without
103
+ * a re-dispatch. Best-effort + fail-safe: only fires for the EXACT generation
104
+ * that was stamped (a later generation that already completed/moved on is
105
+ * ignored), and only when no completed evidence exists (completed always wins in
106
+ * recordFailedStrict anyway). Idempotent: the stamp is cleared after.
107
+ *
108
+ * Called from the daemon's onWorkerExit/onCliExit callbacks. Returns a status so
109
+ * the caller can react to a convergence WRITE FAILURE (EIO/ENOSPC): merely
110
+ * logging + keeping the stamp is NOT enough, because the same Node worker
111
+ * auto-restarts to a healthy idle CLI and per-item noReplay stops the keyed input
112
+ * from re-running — so async-store stays `pending`, the session stays `open`, and
113
+ * ds.worker becomes live again → trigger-result polls `running` forever and a
114
+ * same-key retry reuses via liveWorker, with no automatic next-boot reconcile
115
+ * trigger (codex #776 round-8 finding #2). On `write_failed` the caller MUST take
116
+ * this session to an observable fail-closed terminal (close it → trigger-result's
117
+ * closed-branch resolves `failed`), not wait for an unknown future restart.
118
+ * - 'converged' → durable dispatch_unknown written (or owner-matched completed seen); stamp cleared.
119
+ * - 'noop' → nothing to converge (no stamp, wrong generation).
120
+ * - 'write_failed' → the strict durable write threw; stamp kept; caller must fail-closed the session.
121
+ */
122
+ export type IdempotentExitConvergence = 'converged' | 'noop' | 'write_failed';
123
+ export declare function convergeIdempotentAsyncTurnOnWorkerExit(ds: DaemonSession, exitingWorkerGeneration: number): IdempotentExitConvergence;
55
124
  export declare function triggerSessionTurn(req: TriggerRequest, deps: TriggerSessionDeps, internal?: TriggerSessionInternalOptions): Promise<TriggerResponse>;
125
+ export {};
56
126
  //# sourceMappingURL=trigger-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trigger-session.d.ts","sourceRoot":"","sources":["../../src/core/trigger-session.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4D,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,sCAAsC,CAAC;AASnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC5C;AAED;;oEAEoE;AACpE,MAAM,WAAW,6BAA6B;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;oDAEgD;IAChD,cAAc,CAAC,EAAE,CACf,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,KACrD,IAAI,GAAG;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC;;kBAEc;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;uEAEmE;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAOD;sEACsE;AACtE,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAG7F;AAED;0EAC0E;AAC1E,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASrG;AAED;;gFAEgF;AAChF,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAsBhF;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIxF;AAED;;0EAE0E;AAC1E,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAyB5F;AAED;;;;;;mEAMmE;AACnE,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,GAAG,OAAO,CAEvG;AAmID,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,kBAAkB,EACxB,QAAQ,CAAC,EAAE,6BAA6B,GACvC,OAAO,CAAC,eAAe,CAAC,CAugB1B"}
1
+ {"version":3,"file":"trigger-session.d.ts","sourceRoot":"","sources":["../../src/core/trigger-session.ts"],"names":[],"mappings":"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"}