botmux 3.5.2 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/README.en.md +56 -396
  2. package/README.md +55 -396
  3. package/dist/.runtime-build-id +1 -0
  4. package/dist/adapters/cli/claude-code.d.ts +6 -0
  5. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  6. package/dist/adapters/cli/claude-code.js +197 -11
  7. package/dist/adapters/cli/claude-code.js.map +1 -1
  8. package/dist/adapters/cli/coco.js +4 -4
  9. package/dist/adapters/cli/coco.js.map +1 -1
  10. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  11. package/dist/adapters/cli/codex-app.js +9 -6
  12. package/dist/adapters/cli/codex-app.js.map +1 -1
  13. package/dist/adapters/cli/codex.js +5 -5
  14. package/dist/adapters/cli/codex.js.map +1 -1
  15. package/dist/adapters/cli/fs-policy.d.ts.map +1 -1
  16. package/dist/adapters/cli/fs-policy.js +5 -7
  17. package/dist/adapters/cli/fs-policy.js.map +1 -1
  18. package/dist/adapters/cli/grok.d.ts +2 -1
  19. package/dist/adapters/cli/grok.d.ts.map +1 -1
  20. package/dist/adapters/cli/grok.js +2 -1
  21. package/dist/adapters/cli/grok.js.map +1 -1
  22. package/dist/adapters/cli/hermes.d.ts.map +1 -1
  23. package/dist/adapters/cli/hermes.js +8 -4
  24. package/dist/adapters/cli/hermes.js.map +1 -1
  25. package/dist/adapters/cli/mtr.d.ts.map +1 -1
  26. package/dist/adapters/cli/mtr.js +3 -2
  27. package/dist/adapters/cli/mtr.js.map +1 -1
  28. package/dist/adapters/cli/opencode.d.ts.map +1 -1
  29. package/dist/adapters/cli/opencode.js +5 -4
  30. package/dist/adapters/cli/opencode.js.map +1 -1
  31. package/dist/adapters/cli/relay.js +2 -2
  32. package/dist/adapters/cli/relay.js.map +1 -1
  33. package/dist/adapters/cli/runner-input.d.ts +2 -2
  34. package/dist/adapters/cli/runner-input.d.ts.map +1 -1
  35. package/dist/adapters/cli/runner-input.js +9 -6
  36. package/dist/adapters/cli/runner-input.js.map +1 -1
  37. package/dist/adapters/cli/seed.d.ts.map +1 -1
  38. package/dist/adapters/cli/seed.js +2 -1
  39. package/dist/adapters/cli/seed.js.map +1 -1
  40. package/dist/adapters/cli/traex.d.ts.map +1 -1
  41. package/dist/adapters/cli/traex.js +3 -2
  42. package/dist/adapters/cli/traex.js.map +1 -1
  43. package/dist/adapters/cli/types.d.ts +25 -18
  44. package/dist/adapters/cli/types.d.ts.map +1 -1
  45. package/dist/bot-registry.d.ts +28 -0
  46. package/dist/bot-registry.d.ts.map +1 -1
  47. package/dist/bot-registry.js +75 -0
  48. package/dist/bot-registry.js.map +1 -1
  49. package/dist/cli.d.ts.map +1 -1
  50. package/dist/cli.js +272 -86
  51. package/dist/cli.js.map +1 -1
  52. package/dist/codex-app-runner.js +85 -192
  53. package/dist/codex-app-runner.js.map +1 -1
  54. package/dist/config.d.ts +0 -16
  55. package/dist/config.d.ts.map +1 -1
  56. package/dist/config.js +0 -30
  57. package/dist/config.js.map +1 -1
  58. package/dist/core/ask-broker.d.ts +12 -0
  59. package/dist/core/ask-broker.d.ts.map +1 -1
  60. package/dist/core/ask-broker.js +41 -0
  61. package/dist/core/ask-broker.js.map +1 -1
  62. package/dist/core/bot-turn-mutation-gate.d.ts +24 -0
  63. package/dist/core/bot-turn-mutation-gate.d.ts.map +1 -0
  64. package/dist/core/bot-turn-mutation-gate.js +369 -0
  65. package/dist/core/bot-turn-mutation-gate.js.map +1 -0
  66. package/dist/core/command-handler.d.ts +5 -0
  67. package/dist/core/command-handler.d.ts.map +1 -1
  68. package/dist/core/command-handler.js +38 -16
  69. package/dist/core/command-handler.js.map +1 -1
  70. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  71. package/dist/core/dashboard-ipc-server.js +330 -57
  72. package/dist/core/dashboard-ipc-server.js.map +1 -1
  73. package/dist/core/dashboard-rows.d.ts +8 -0
  74. package/dist/core/dashboard-rows.d.ts.map +1 -1
  75. package/dist/core/dashboard-rows.js.map +1 -1
  76. package/dist/core/host-overload-alert.d.ts +157 -0
  77. package/dist/core/host-overload-alert.d.ts.map +1 -0
  78. package/dist/core/host-overload-alert.js +251 -0
  79. package/dist/core/host-overload-alert.js.map +1 -0
  80. package/dist/core/passthrough-commands.d.ts +8 -0
  81. package/dist/core/passthrough-commands.d.ts.map +1 -1
  82. package/dist/core/passthrough-commands.js +19 -0
  83. package/dist/core/passthrough-commands.js.map +1 -1
  84. package/dist/core/restart-coordinator.d.ts +28 -0
  85. package/dist/core/restart-coordinator.d.ts.map +1 -0
  86. package/dist/core/restart-coordinator.js +82 -0
  87. package/dist/core/restart-coordinator.js.map +1 -0
  88. package/dist/core/restart-followup-policy.d.ts +112 -0
  89. package/dist/core/restart-followup-policy.d.ts.map +1 -0
  90. package/dist/core/restart-followup-policy.js +49 -0
  91. package/dist/core/restart-followup-policy.js.map +1 -0
  92. package/dist/core/role-library.d.ts +1 -1
  93. package/dist/core/role-library.js +1 -1
  94. package/dist/core/session-cwd.d.ts.map +1 -1
  95. package/dist/core/session-cwd.js +8 -0
  96. package/dist/core/session-cwd.js.map +1 -1
  97. package/dist/core/session-discovery.d.ts +14 -0
  98. package/dist/core/session-discovery.d.ts.map +1 -1
  99. package/dist/core/session-discovery.js +25 -0
  100. package/dist/core/session-discovery.js.map +1 -1
  101. package/dist/core/session-liveness.d.ts +15 -0
  102. package/dist/core/session-liveness.d.ts.map +1 -0
  103. package/dist/core/session-liveness.js +76 -0
  104. package/dist/core/session-liveness.js.map +1 -0
  105. package/dist/core/session-row-enrichment.d.ts +15 -0
  106. package/dist/core/session-row-enrichment.d.ts.map +1 -0
  107. package/dist/core/session-row-enrichment.js +93 -0
  108. package/dist/core/session-row-enrichment.js.map +1 -0
  109. package/dist/core/slash-inject.js +1 -1
  110. package/dist/core/slash-inject.js.map +1 -1
  111. package/dist/core/trigger-final-suppression.d.ts +24 -0
  112. package/dist/core/trigger-final-suppression.d.ts.map +1 -0
  113. package/dist/core/trigger-final-suppression.js +97 -0
  114. package/dist/core/trigger-final-suppression.js.map +1 -0
  115. package/dist/core/trigger-session.d.ts.map +1 -1
  116. package/dist/core/trigger-session.js +64 -4
  117. package/dist/core/trigger-session.js.map +1 -1
  118. package/dist/core/types.d.ts +6 -0
  119. package/dist/core/types.d.ts.map +1 -1
  120. package/dist/core/types.js.map +1 -1
  121. package/dist/core/worker-pool.d.ts +20 -0
  122. package/dist/core/worker-pool.d.ts.map +1 -1
  123. package/dist/core/worker-pool.js +283 -32
  124. package/dist/core/worker-pool.js.map +1 -1
  125. package/dist/daemon.d.ts +5 -1
  126. package/dist/daemon.d.ts.map +1 -1
  127. package/dist/daemon.js +520 -35
  128. package/dist/daemon.js.map +1 -1
  129. package/dist/dashboard/aggregator.d.ts +1 -0
  130. package/dist/dashboard/aggregator.d.ts.map +1 -1
  131. package/dist/dashboard/aggregator.js +34 -6
  132. package/dist/dashboard/aggregator.js.map +1 -1
  133. package/dist/dashboard/bot-payload.d.ts +3 -0
  134. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  135. package/dist/dashboard/bot-payload.js +3 -0
  136. package/dist/dashboard/bot-payload.js.map +1 -1
  137. package/dist/dashboard/compat.d.ts +102 -2
  138. package/dist/dashboard/compat.d.ts.map +1 -1
  139. package/dist/dashboard/compat.js +78 -14
  140. package/dist/dashboard/compat.js.map +1 -1
  141. package/dist/dashboard/connector-api.d.ts.map +1 -1
  142. package/dist/dashboard/connector-api.js +1 -0
  143. package/dist/dashboard/connector-api.js.map +1 -1
  144. package/dist/dashboard/desktop-asks.d.ts +21 -0
  145. package/dist/dashboard/desktop-asks.d.ts.map +1 -0
  146. package/dist/dashboard/desktop-asks.js +49 -0
  147. package/dist/dashboard/desktop-asks.js.map +1 -0
  148. package/dist/dashboard/public-redact.d.ts +7 -0
  149. package/dist/dashboard/public-redact.d.ts.map +1 -1
  150. package/dist/dashboard/public-redact.js +35 -3
  151. package/dist/dashboard/public-redact.js.map +1 -1
  152. package/dist/dashboard/session-presentation.d.ts +16 -0
  153. package/dist/dashboard/session-presentation.d.ts.map +1 -0
  154. package/dist/dashboard/session-presentation.js +62 -0
  155. package/dist/dashboard/session-presentation.js.map +1 -0
  156. package/dist/dashboard/settings-write-applier.d.ts +2 -1
  157. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  158. package/dist/dashboard/settings-write-applier.js +19 -1
  159. package/dist/dashboard/settings-write-applier.js.map +1 -1
  160. package/dist/dashboard/trigger-api.d.ts.map +1 -1
  161. package/dist/dashboard/trigger-api.js +19 -1
  162. package/dist/dashboard/trigger-api.js.map +1 -1
  163. package/dist/dashboard/vc-consumer-profiles-api.d.ts +7 -2
  164. package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -1
  165. package/dist/dashboard/vc-consumer-profiles-api.js +13 -0
  166. package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -1
  167. package/dist/dashboard/web/app.d.ts.map +1 -1
  168. package/dist/dashboard/web/app.js +18 -5
  169. package/dist/dashboard/web/app.js.map +1 -1
  170. package/dist/dashboard/web/bot-defaults-page.d.ts +1 -1
  171. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  172. package/dist/dashboard/web/bot-defaults-page.js +97 -35
  173. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  174. package/dist/dashboard/web/bot-defaults.d.ts +3 -0
  175. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  176. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  177. package/dist/dashboard/web/client-shell.d.ts +29 -0
  178. package/dist/dashboard/web/client-shell.d.ts.map +1 -0
  179. package/dist/dashboard/web/client-shell.js +89 -0
  180. package/dist/dashboard/web/client-shell.js.map +1 -0
  181. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  182. package/dist/dashboard/web/connectors-page.js +5 -1
  183. package/dist/dashboard/web/connectors-page.js.map +1 -1
  184. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  185. package/dist/dashboard/web/i18n.js +100 -8
  186. package/dist/dashboard/web/i18n.js.map +1 -1
  187. package/dist/dashboard/web/preferences.d.ts +7 -0
  188. package/dist/dashboard/web/preferences.d.ts.map +1 -1
  189. package/dist/dashboard/web/preferences.js +32 -0
  190. package/dist/dashboard/web/preferences.js.map +1 -1
  191. package/dist/dashboard/web/sessions-kanban.d.ts +1 -1
  192. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
  193. package/dist/dashboard/web/sessions-kanban.js +1 -1
  194. package/dist/dashboard/web/sessions-kanban.js.map +1 -1
  195. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  196. package/dist/dashboard/web/sessions-page.js +77 -23
  197. package/dist/dashboard/web/sessions-page.js.map +1 -1
  198. package/dist/dashboard/web/sessions.d.ts +4 -0
  199. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  200. package/dist/dashboard/web/sessions.js +14 -1
  201. package/dist/dashboard/web/sessions.js.map +1 -1
  202. package/dist/dashboard/web/settings-page.d.ts +6 -0
  203. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  204. package/dist/dashboard/web/settings-page.js +55 -30
  205. package/dist/dashboard/web/settings-page.js.map +1 -1
  206. package/dist/dashboard/web/store.d.ts +1 -2
  207. package/dist/dashboard/web/store.d.ts.map +1 -1
  208. package/dist/dashboard/web/store.js +69 -20
  209. package/dist/dashboard/web/store.js.map +1 -1
  210. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
  211. package/dist/dashboard/web/vc-consumer-profiles-section.js +128 -42
  212. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
  213. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  214. package/dist/dashboard/webhook-routes.js +9 -2
  215. package/dist/dashboard/webhook-routes.js.map +1 -1
  216. package/dist/dashboard-web/app.js +1 -1
  217. package/dist/dashboard-web/chunks/bot-defaults-page-VQMPUJ4Y.js +10 -0
  218. package/dist/dashboard-web/chunks/chunk-AGCPF6MT.js +1 -0
  219. package/dist/dashboard-web/chunks/{chunk-KPQAUX7V.js → chunk-JMRGZQDB.js} +1 -1
  220. package/dist/dashboard-web/chunks/{chunk-R7IAKAYX.js → chunk-NP4JUBGS.js} +1 -1
  221. package/dist/dashboard-web/chunks/{chunk-NRL6CVAS.js → chunk-P327LXOT.js} +1 -1
  222. package/dist/dashboard-web/chunks/{chunk-X2L65IOM.js → chunk-SNKATZWK.js} +15 -15
  223. package/dist/dashboard-web/chunks/connectors-page-DOY4J3ZL.js +1 -0
  224. package/dist/dashboard-web/chunks/{groups-page-6DKXBYOM.js → groups-page-74TS2DIH.js} +1 -1
  225. package/dist/dashboard-web/chunks/{insights-page-NWARTJ6J.js → insights-page-AYCO65JC.js} +1 -1
  226. package/dist/dashboard-web/chunks/{monitor-room-AGX3XRJX.js → monitor-room-YKYLTSAN.js} +1 -1
  227. package/dist/dashboard-web/chunks/{monitoring-page-GGGIWN4C.js → monitoring-page-QBIUNRBR.js} +1 -1
  228. package/dist/dashboard-web/chunks/{office-page-6SIVKSK3.js → office-page-4PH2A26P.js} +1 -1
  229. package/dist/dashboard-web/chunks/overview-page-H73D5UT4.js +1 -0
  230. package/dist/dashboard-web/chunks/{roles-page-WE2YB7KN.js → roles-page-U4BTOQ7F.js} +1 -1
  231. package/dist/dashboard-web/chunks/{schedules-page-TB3I24XN.js → schedules-page-RHRHX7R7.js} +1 -1
  232. package/dist/dashboard-web/chunks/sessions-page-VSC6AM5G.js +2 -0
  233. package/dist/dashboard-web/chunks/settings-page-LF3RKM5P.js +2 -0
  234. package/dist/dashboard-web/chunks/{skills-page-3QAT2IWD.js → skills-page-SYOIGGXH.js} +1 -1
  235. package/dist/dashboard-web/chunks/{team-federation-page-K4VVAVAK.js → team-federation-page-RMBLASTW.js} +1 -1
  236. package/dist/dashboard-web/chunks/{v3-page-V6IOJR2B.js → v3-page-XJXKKJRN.js} +1 -1
  237. package/dist/dashboard-web/chunks/{whiteboards-page-V6CGKRNX.js → whiteboards-page-K3YVSTHJ.js} +1 -1
  238. package/dist/dashboard-web/style.css +551 -0
  239. package/dist/dashboard.js +153 -9
  240. package/dist/dashboard.js.map +1 -1
  241. package/dist/global-config.d.ts +11 -0
  242. package/dist/global-config.d.ts.map +1 -1
  243. package/dist/global-config.js +23 -0
  244. package/dist/global-config.js.map +1 -1
  245. package/dist/i18n/en.d.ts.map +1 -1
  246. package/dist/i18n/en.js +5 -0
  247. package/dist/i18n/en.js.map +1 -1
  248. package/dist/i18n/zh.d.ts.map +1 -1
  249. package/dist/i18n/zh.js +5 -0
  250. package/dist/i18n/zh.js.map +1 -1
  251. package/dist/im/lark/card-builder.d.ts +1 -1
  252. package/dist/im/lark/card-builder.js +1 -1
  253. package/dist/im/lark/card-handler.d.ts +10 -0
  254. package/dist/im/lark/card-handler.d.ts.map +1 -1
  255. package/dist/im/lark/card-handler.js +163 -17
  256. package/dist/im/lark/card-handler.js.map +1 -1
  257. package/dist/im/lark/client.d.ts +11 -0
  258. package/dist/im/lark/client.d.ts.map +1 -1
  259. package/dist/im/lark/client.js +47 -18
  260. package/dist/im/lark/client.js.map +1 -1
  261. package/dist/im/lark/event-dispatcher.d.ts +13 -0
  262. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  263. package/dist/im/lark/event-dispatcher.js +20 -0
  264. package/dist/im/lark/event-dispatcher.js.map +1 -1
  265. package/dist/im/lark/identity-cache.d.ts +25 -1
  266. package/dist/im/lark/identity-cache.d.ts.map +1 -1
  267. package/dist/im/lark/identity-cache.js +47 -1
  268. package/dist/im/lark/identity-cache.js.map +1 -1
  269. package/dist/im/lark/overload-nonce.d.ts +19 -0
  270. package/dist/im/lark/overload-nonce.d.ts.map +1 -0
  271. package/dist/im/lark/overload-nonce.js +72 -0
  272. package/dist/im/lark/overload-nonce.js.map +1 -0
  273. package/dist/im/lark/v3-progress-card.d.ts.map +1 -1
  274. package/dist/im/lark/v3-progress-card.js +5 -0
  275. package/dist/im/lark/v3-progress-card.js.map +1 -1
  276. package/dist/services/async-trigger-state.d.ts +82 -0
  277. package/dist/services/async-trigger-state.d.ts.map +1 -0
  278. package/dist/services/async-trigger-state.js +95 -0
  279. package/dist/services/async-trigger-state.js.map +1 -0
  280. package/dist/services/async-trigger-store.d.ts +28 -0
  281. package/dist/services/async-trigger-store.d.ts.map +1 -0
  282. package/dist/services/async-trigger-store.js +120 -0
  283. package/dist/services/async-trigger-store.js.map +1 -0
  284. package/dist/services/bot-config-store.d.ts.map +1 -1
  285. package/dist/services/bot-config-store.js +34 -2
  286. package/dist/services/bot-config-store.js.map +1 -1
  287. package/dist/services/bridge-fallback-gate.d.ts +32 -0
  288. package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
  289. package/dist/services/bridge-fallback-gate.js +39 -0
  290. package/dist/services/bridge-fallback-gate.js.map +1 -1
  291. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  292. package/dist/services/bridge-turn-queue.js +15 -1
  293. package/dist/services/bridge-turn-queue.js.map +1 -1
  294. package/dist/services/card-prefs-store.d.ts +4 -0
  295. package/dist/services/card-prefs-store.d.ts.map +1 -1
  296. package/dist/services/card-prefs-store.js +8 -0
  297. package/dist/services/card-prefs-store.js.map +1 -1
  298. package/dist/services/claude-transcript.d.ts +23 -0
  299. package/dist/services/claude-transcript.d.ts.map +1 -1
  300. package/dist/services/claude-transcript.js +33 -0
  301. package/dist/services/claude-transcript.js.map +1 -1
  302. package/dist/services/codex-app-runner-protocol.d.ts +61 -0
  303. package/dist/services/codex-app-runner-protocol.d.ts.map +1 -0
  304. package/dist/services/codex-app-runner-protocol.js +170 -0
  305. package/dist/services/codex-app-runner-protocol.js.map +1 -0
  306. package/dist/services/codex-app-turn-controller.d.ts +72 -0
  307. package/dist/services/codex-app-turn-controller.d.ts.map +1 -0
  308. package/dist/services/codex-app-turn-controller.js +524 -0
  309. package/dist/services/codex-app-turn-controller.js.map +1 -0
  310. package/dist/services/codex-runner-freshness.d.ts +39 -0
  311. package/dist/services/codex-runner-freshness.d.ts.map +1 -0
  312. package/dist/services/codex-runner-freshness.js +78 -0
  313. package/dist/services/codex-runner-freshness.js.map +1 -0
  314. package/dist/services/connector-store.d.ts +6 -0
  315. package/dist/services/connector-store.d.ts.map +1 -1
  316. package/dist/services/connector-store.js.map +1 -1
  317. package/dist/services/grant-store.d.ts.map +1 -1
  318. package/dist/services/grant-store.js +16 -0
  319. package/dist/services/grant-store.js.map +1 -1
  320. package/dist/services/hermes-transcript.d.ts +1 -0
  321. package/dist/services/hermes-transcript.d.ts.map +1 -1
  322. package/dist/services/hermes-transcript.js +49 -0
  323. package/dist/services/hermes-transcript.js.map +1 -1
  324. package/dist/services/schedule-split-migration.d.ts +2 -0
  325. package/dist/services/schedule-split-migration.d.ts.map +1 -0
  326. package/dist/services/schedule-split-migration.js +159 -0
  327. package/dist/services/schedule-split-migration.js.map +1 -0
  328. package/dist/services/schedule-store.d.ts +28 -4
  329. package/dist/services/schedule-store.d.ts.map +1 -1
  330. package/dist/services/schedule-store.js +118 -33
  331. package/dist/services/schedule-store.js.map +1 -1
  332. package/dist/services/trigger-types.d.ts +18 -1
  333. package/dist/services/trigger-types.d.ts.map +1 -1
  334. package/dist/services/trigger-types.js +3 -0
  335. package/dist/services/trigger-types.js.map +1 -1
  336. package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +1 -1
  337. package/dist/services/vc-meeting-consumer-profile-store.js +1 -0
  338. package/dist/services/vc-meeting-consumer-profile-store.js.map +1 -1
  339. package/dist/services/vc-meeting-consumer-profile-templates.d.ts +32 -0
  340. package/dist/services/vc-meeting-consumer-profile-templates.d.ts.map +1 -0
  341. package/dist/services/vc-meeting-consumer-profile-templates.js +106 -0
  342. package/dist/services/vc-meeting-consumer-profile-templates.js.map +1 -0
  343. package/dist/services/vc-meeting-delivery-feed.d.ts +1 -1
  344. package/dist/services/vc-meeting-delivery-feed.d.ts.map +1 -1
  345. package/dist/services/vc-meeting-delivery-feed.js +2 -1
  346. package/dist/services/vc-meeting-delivery-feed.js.map +1 -1
  347. package/dist/services/vc-meeting-delivery-hub-store.d.ts +3 -1
  348. package/dist/services/vc-meeting-delivery-hub-store.d.ts.map +1 -1
  349. package/dist/services/vc-meeting-delivery-hub-store.js +11 -0
  350. package/dist/services/vc-meeting-delivery-hub-store.js.map +1 -1
  351. package/dist/services/vc-meeting-delivery-protocol.d.ts +9 -2
  352. package/dist/services/vc-meeting-delivery-protocol.d.ts.map +1 -1
  353. package/dist/services/vc-meeting-delivery-protocol.js +10 -1
  354. package/dist/services/vc-meeting-delivery-protocol.js.map +1 -1
  355. package/dist/services/vc-meeting-delivery-receiver.d.ts.map +1 -1
  356. package/dist/services/vc-meeting-delivery-receiver.js +10 -1
  357. package/dist/services/vc-meeting-delivery-receiver.js.map +1 -1
  358. package/dist/services/vc-meeting-delivery-store.d.ts +12 -2
  359. package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -1
  360. package/dist/services/vc-meeting-delivery-store.js +14 -2
  361. package/dist/services/vc-meeting-delivery-store.js.map +1 -1
  362. package/dist/services/vc-meeting-im-reply.d.ts +2 -1
  363. package/dist/services/vc-meeting-im-reply.d.ts.map +1 -1
  364. package/dist/services/vc-meeting-im-reply.js +19 -3
  365. package/dist/services/vc-meeting-im-reply.js.map +1 -1
  366. package/dist/services/vc-meeting-listener-output-protocol.d.ts +27 -0
  367. package/dist/services/vc-meeting-listener-output-protocol.d.ts.map +1 -0
  368. package/dist/services/vc-meeting-listener-output-protocol.js +58 -0
  369. package/dist/services/vc-meeting-listener-output-protocol.js.map +1 -0
  370. package/dist/services/vc-meeting-listener-topic-store.d.ts +31 -0
  371. package/dist/services/vc-meeting-listener-topic-store.d.ts.map +1 -0
  372. package/dist/services/vc-meeting-listener-topic-store.js +120 -0
  373. package/dist/services/vc-meeting-listener-topic-store.js.map +1 -0
  374. package/dist/services/vc-meeting-runtime-store.d.ts +2 -1
  375. package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -1
  376. package/dist/services/vc-meeting-runtime-store.js +8 -0
  377. package/dist/services/vc-meeting-runtime-store.js.map +1 -1
  378. package/dist/services/vc-meeting-send-policy.d.ts +8 -1
  379. package/dist/services/vc-meeting-send-policy.d.ts.map +1 -1
  380. package/dist/services/vc-meeting-send-policy.js +8 -0
  381. package/dist/services/vc-meeting-send-policy.js.map +1 -1
  382. package/dist/types.d.ts +40 -3
  383. package/dist/types.d.ts.map +1 -1
  384. package/dist/utils/allowed-users-apply.d.ts +76 -0
  385. package/dist/utils/allowed-users-apply.d.ts.map +1 -0
  386. package/dist/utils/allowed-users-apply.js +123 -0
  387. package/dist/utils/allowed-users-apply.js.map +1 -0
  388. package/dist/utils/allowed-users-cache.d.ts +29 -0
  389. package/dist/utils/allowed-users-cache.d.ts.map +1 -0
  390. package/dist/utils/allowed-users-cache.js +82 -0
  391. package/dist/utils/allowed-users-cache.js.map +1 -0
  392. package/dist/utils/child-env.d.ts +2 -1
  393. package/dist/utils/child-env.d.ts.map +1 -1
  394. package/dist/utils/child-env.js +2 -1
  395. package/dist/utils/child-env.js.map +1 -1
  396. package/dist/utils/cli-usage-limit.d.ts +27 -1
  397. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  398. package/dist/utils/cli-usage-limit.js +92 -20
  399. package/dist/utils/cli-usage-limit.js.map +1 -1
  400. package/dist/utils/input-gate.d.ts +2 -0
  401. package/dist/utils/input-gate.d.ts.map +1 -1
  402. package/dist/utils/input-gate.js +2 -0
  403. package/dist/utils/input-gate.js.map +1 -1
  404. package/dist/utils/runtime-build-id.d.ts +21 -0
  405. package/dist/utils/runtime-build-id.d.ts.map +1 -0
  406. package/dist/utils/runtime-build-id.js +83 -0
  407. package/dist/utils/runtime-build-id.js.map +1 -0
  408. package/dist/utils/terminal-renderer.d.ts +3 -3
  409. package/dist/utils/terminal-renderer.js +3 -3
  410. package/dist/vc-agent/cards.d.ts.map +1 -1
  411. package/dist/vc-agent/cards.js +21 -1
  412. package/dist/vc-agent/cards.js.map +1 -1
  413. package/dist/worker.js +601 -179
  414. package/dist/worker.js.map +1 -1
  415. package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
  416. package/dist/workflows/hostExecutors/botmux-schedule.js +13 -1
  417. package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
  418. package/dist/workflows/migration/v2-run-archive-schema.d.ts +20 -20
  419. package/dist/workflows/migration/v2-to-v3.d.ts.map +1 -1
  420. package/dist/workflows/migration/v2-to-v3.js +5 -1
  421. package/dist/workflows/migration/v2-to-v3.js.map +1 -1
  422. package/dist/workflows/v3/architect.d.ts.map +1 -1
  423. package/dist/workflows/v3/architect.js +1 -0
  424. package/dist/workflows/v3/architect.js.map +1 -1
  425. package/dist/workflows/v3/cli-run.d.ts +9 -0
  426. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  427. package/dist/workflows/v3/cli-run.js +17 -2
  428. package/dist/workflows/v3/cli-run.js.map +1 -1
  429. package/dist/workflows/v3/goal-cli.d.ts +58 -0
  430. package/dist/workflows/v3/goal-cli.d.ts.map +1 -0
  431. package/dist/workflows/v3/goal-cli.js +430 -0
  432. package/dist/workflows/v3/goal-cli.js.map +1 -0
  433. package/dist/workflows/v3/library-materialize.d.ts.map +1 -1
  434. package/dist/workflows/v3/library-materialize.js +5 -1
  435. package/dist/workflows/v3/library-materialize.js.map +1 -1
  436. package/dist/workflows/v3/library-schema.d.ts +21 -0
  437. package/dist/workflows/v3/library-schema.d.ts.map +1 -1
  438. package/dist/workflows/v3/library-schema.js +95 -1
  439. package/dist/workflows/v3/library-schema.js.map +1 -1
  440. package/dist/workflows/v3/progress-projection.d.ts +3 -0
  441. package/dist/workflows/v3/progress-projection.d.ts.map +1 -1
  442. package/dist/workflows/v3/progress-projection.js +23 -1
  443. package/dist/workflows/v3/progress-projection.js.map +1 -1
  444. package/dist/workflows/v3/run-envelope.d.ts +46 -1
  445. package/dist/workflows/v3/run-envelope.d.ts.map +1 -1
  446. package/dist/workflows/v3/run-envelope.js +32 -1
  447. package/dist/workflows/v3/run-envelope.js.map +1 -1
  448. package/package.json +2 -2
  449. package/dist/dashboard-web/chunks/bot-defaults-page-AUKV7P4L.js +0 -10
  450. package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +0 -1
  451. package/dist/dashboard-web/chunks/connectors-page-HDQFEXZI.js +0 -1
  452. package/dist/dashboard-web/chunks/overview-page-FVR3NKAF.js +0 -1
  453. package/dist/dashboard-web/chunks/sessions-page-KOOOASIL.js +0 -2
  454. package/dist/dashboard-web/chunks/settings-page-IEBR7TGN.js +0 -2
  455. package/dist/utils/screen-analyzer.d.ts +0 -75
  456. package/dist/utils/screen-analyzer.d.ts.map +0 -1
  457. package/dist/utils/screen-analyzer.js +0 -333
  458. package/dist/utils/screen-analyzer.js.map +0 -1
@@ -0,0 +1,524 @@
1
+ export class CodexAppRpcResponseError extends Error {
2
+ method;
3
+ code;
4
+ data;
5
+ constructor(method, error) {
6
+ const payload = isRecord(error) ? error : {};
7
+ const detail = typeof payload.message === 'string'
8
+ ? payload.message
9
+ : JSON.stringify(error);
10
+ super(`${method}: ${detail}`);
11
+ this.method = method;
12
+ this.name = 'CodexAppRpcResponseError';
13
+ this.code = typeof payload.code === 'number' ? payload.code : undefined;
14
+ this.data = payload.data;
15
+ }
16
+ }
17
+ export class CodexAppTransportError extends Error {
18
+ constructor(message) {
19
+ super(message);
20
+ this.name = 'CodexAppTransportError';
21
+ }
22
+ }
23
+ function isRecord(value) {
24
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
25
+ }
26
+ function stringField(value) {
27
+ return typeof value === 'string' && value.length > 0 ? value : undefined;
28
+ }
29
+ function turnIdFromParams(params) {
30
+ const turn = isRecord(params.turn) ? params.turn : undefined;
31
+ return stringField(turn?.id) ?? stringField(params.turnId);
32
+ }
33
+ function errorMessage(error) {
34
+ return error instanceof Error ? error.message : String(error);
35
+ }
36
+ export function isDefiniteSteerRejection(error) {
37
+ // JSON-RPC parse/method/params errors prove the operation was not accepted.
38
+ if (error.code === -32600 || error.code === -32601 || error.code === -32602)
39
+ return true;
40
+ let dataText = '';
41
+ try {
42
+ dataText = JSON.stringify(error.data ?? '').toLowerCase();
43
+ }
44
+ catch { /* untrusted data */ }
45
+ const detail = `${error.message} ${dataText}`.toLowerCase();
46
+ return detail.includes('no active turn to steer')
47
+ || detail.includes('activeturnnotsteerable')
48
+ || detail.includes('active turn not steerable')
49
+ || detail.includes('expectedturnid')
50
+ || detail.includes('expected turn id')
51
+ || detail.includes('cannot steer a review turn')
52
+ || detail.includes('cannot steer a compact turn')
53
+ || detail.includes('input must not be empty');
54
+ }
55
+ const CLOSED_TURN_LIMIT = 64;
56
+ export class CodexAppTurnController {
57
+ deps;
58
+ queue = [];
59
+ closedTurnIds = new Set();
60
+ active = null;
61
+ fatal = false;
62
+ structuredDisabled = false;
63
+ failureSequence = 0;
64
+ driving = false;
65
+ driveAgain = false;
66
+ constructor(deps) {
67
+ this.deps = deps;
68
+ }
69
+ enqueue(input) {
70
+ if (this.fatal) {
71
+ this.emitStandaloneFailure(input, 'Codex App runner is unavailable.');
72
+ return;
73
+ }
74
+ this.queue.push(input);
75
+ this.emitLifecycle({
76
+ kind: 'input_queued',
77
+ atMs: this.now(),
78
+ queueLength: this.queue.length,
79
+ ...(input.replyTurnId ? { replyTurnId: input.replyTurnId } : {}),
80
+ });
81
+ this.drive();
82
+ }
83
+ handleNotification(message) {
84
+ if (!isRecord(message) || typeof message.method !== 'string' || !isRecord(message.params))
85
+ return;
86
+ const turn = this.active;
87
+ if (!turn)
88
+ return;
89
+ const params = message.params;
90
+ const notificationThreadId = stringField(params.threadId);
91
+ if (turn.threadId && notificationThreadId && notificationThreadId !== turn.threadId)
92
+ return;
93
+ const notificationTurnId = turnIdFromParams(params);
94
+ if (notificationTurnId && this.closedTurnIds.has(notificationTurnId))
95
+ return;
96
+ if (turn.appTurnId && notificationTurnId && notificationTurnId !== turn.appTurnId)
97
+ return;
98
+ if (message.method === 'turn/started') {
99
+ turn.serverStarted = true;
100
+ if (notificationTurnId && !this.adoptAppTurnId(turn, notificationTurnId))
101
+ return;
102
+ if (!turn.completionSeen)
103
+ turn.phase = 'active';
104
+ this.drive();
105
+ return;
106
+ }
107
+ if (message.method === 'item/started') {
108
+ const item = isRecord(params.item) ? params.item : undefined;
109
+ if (item?.type === 'commandExecution') {
110
+ this.deps.onOutput?.(`\n$ ${String(item.command ?? '')}\n`);
111
+ }
112
+ else if (item?.type === 'fileChange') {
113
+ this.deps.onOutput?.('\n[files changed]\n');
114
+ }
115
+ return;
116
+ }
117
+ if (message.method === 'item/agentMessage/delta') {
118
+ const delta = String(params.delta ?? '');
119
+ const itemId = String(params.itemId ?? '');
120
+ turn.itemText.set(itemId, (turn.itemText.get(itemId) ?? '') + delta);
121
+ turn.allAgentText += delta;
122
+ this.deps.onOutput?.(delta);
123
+ return;
124
+ }
125
+ if (message.method === 'item/commandExecution/outputDelta' || message.method === 'item/fileChange/outputDelta') {
126
+ this.deps.onOutput?.(String(params.delta ?? ''));
127
+ return;
128
+ }
129
+ if (message.method === 'item/completed') {
130
+ const item = isRecord(params.item) ? params.item : undefined;
131
+ if (item?.type === 'agentMessage') {
132
+ const text = typeof item.text === 'string' ? item.text : '';
133
+ if (item.phase === 'final_answer')
134
+ turn.finalText = text;
135
+ else if (!turn.itemText.has(String(item.id ?? '')) && text)
136
+ turn.allAgentText += text;
137
+ }
138
+ return;
139
+ }
140
+ if (message.method === 'turn/completed') {
141
+ if (notificationTurnId && !this.adoptAppTurnId(turn, notificationTurnId))
142
+ return;
143
+ const completed = isRecord(params.turn) ? params.turn : undefined;
144
+ const completedError = isRecord(completed?.error) ? completed.error : undefined;
145
+ if (typeof completedError?.message === 'string' && !turn.finalText) {
146
+ turn.finalText = `Codex App turn failed: ${completedError.message}`;
147
+ }
148
+ if (turn.steerInFlight && turn.appTurnId && !turn.completionRaceEmitted) {
149
+ turn.completionRaceEmitted = true;
150
+ this.emitLifecycle({
151
+ kind: 'completion_race',
152
+ atMs: this.now(),
153
+ appTurnId: turn.appTurnId,
154
+ replyTurnId: turn.steerInFlight.replyTurnId,
155
+ queueLength: this.queue.length,
156
+ category: 'steer_in_flight',
157
+ });
158
+ }
159
+ turn.completionSeen = true;
160
+ turn.phase = 'closing';
161
+ this.drive();
162
+ }
163
+ }
164
+ handleFatal(error, category = this.errorCategory(error)) {
165
+ if (this.fatal)
166
+ return;
167
+ this.fatal = true;
168
+ const message = `Codex App runner error: ${errorMessage(error)}`;
169
+ const active = this.active;
170
+ const replyTurnId = active?.steerInFlight?.replyTurnId ?? active?.replyTurnId;
171
+ this.emitLifecycle({
172
+ kind: 'fatal',
173
+ atMs: this.now(),
174
+ operation: this.activeOperation(active),
175
+ category,
176
+ ...(active?.appTurnId ? { appTurnId: active.appTurnId } : {}),
177
+ ...(replyTurnId ? { replyTurnId } : {}),
178
+ queueLength: this.queue.length,
179
+ });
180
+ this.active = null;
181
+ if (active && !active.finalEmitted) {
182
+ if (active.steerInFlight && this.queue[0] === active.steerInFlight) {
183
+ this.queue.shift();
184
+ }
185
+ this.emitFailure(active, replyTurnId, message);
186
+ }
187
+ for (const input of this.queue.splice(0))
188
+ this.emitStandaloneFailure(input, message);
189
+ }
190
+ drive() {
191
+ if (this.driving) {
192
+ this.driveAgain = true;
193
+ return;
194
+ }
195
+ this.driving = true;
196
+ try {
197
+ do {
198
+ this.driveAgain = false;
199
+ if (this.fatal)
200
+ return;
201
+ const turn = this.active;
202
+ if (!turn) {
203
+ const next = this.queue.shift();
204
+ if (!next)
205
+ return;
206
+ this.startTurn(next);
207
+ return;
208
+ }
209
+ if (turn.completionSeen && !turn.steerInFlight) {
210
+ this.finalizeTurn(turn);
211
+ continue;
212
+ }
213
+ if (turn.phase === 'active'
214
+ && turn.appTurnId
215
+ && !turn.steeringClosed
216
+ && !turn.steerInFlight
217
+ && this.queue.length > 0) {
218
+ this.steerQueueHead(turn);
219
+ }
220
+ return;
221
+ } while (this.driveAgain);
222
+ }
223
+ finally {
224
+ this.driving = false;
225
+ if (this.driveAgain)
226
+ this.drive();
227
+ }
228
+ }
229
+ startTurn(input) {
230
+ const turn = {
231
+ phase: 'starting',
232
+ replyTurnId: input.replyTurnId,
233
+ startedAtMs: this.now(),
234
+ finalText: '',
235
+ allAgentText: '',
236
+ itemText: new Map(),
237
+ completionSeen: false,
238
+ serverStarted: false,
239
+ steeringClosed: false,
240
+ turnStartedEmitted: false,
241
+ completionRaceEmitted: false,
242
+ finalEmitted: false,
243
+ };
244
+ this.active = turn;
245
+ this.emitLifecycle({
246
+ kind: 'turn_start_attempt',
247
+ atMs: this.now(),
248
+ queueLength: this.queue.length,
249
+ ...(input.replyTurnId ? { replyTurnId: input.replyTurnId } : {}),
250
+ });
251
+ void this.beginTurnStart(turn, input);
252
+ }
253
+ async beginTurnStart(turn, input) {
254
+ try {
255
+ const threadId = await this.deps.ensureThread();
256
+ if (this.active !== turn || this.fatal)
257
+ return;
258
+ turn.threadId = threadId;
259
+ let prepared = this.deps.prepareInput(input, this.structuredDisabled);
260
+ this.reportPreparedInput(prepared);
261
+ this.deps.onTurnInput?.(input, prepared);
262
+ let result;
263
+ try {
264
+ result = await this.deps.request('turn/start', this.turnStartParams(threadId, prepared));
265
+ }
266
+ catch (error) {
267
+ if (prepared.structured
268
+ && !turn.serverStarted
269
+ && this.deps.isStartCapabilityError?.(error)) {
270
+ this.structuredDisabled = true;
271
+ this.deps.onDiagnostic?.('[codex-app] structured input unsupported; retrying this turn with the legacy prompt');
272
+ prepared = this.deps.prepareInput(input, true);
273
+ result = await this.deps.request('turn/start', this.turnStartParams(threadId, prepared));
274
+ }
275
+ else {
276
+ throw error;
277
+ }
278
+ }
279
+ if (this.active !== turn || this.fatal)
280
+ return;
281
+ const resultTurn = isRecord(result) && isRecord(result.turn) ? result.turn : undefined;
282
+ const resultTurnId = stringField(resultTurn?.id);
283
+ if (resultTurnId && !this.adoptAppTurnId(turn, resultTurnId))
284
+ return;
285
+ if (!turn.appTurnId) {
286
+ this.emitUnknownOutcome(turn, 'turn/start', 'protocol', input.replyTurnId);
287
+ this.handleFatal(new CodexAppTransportError('turn/start returned no app-server turn id.'), 'protocol');
288
+ return;
289
+ }
290
+ if (!turn.completionSeen)
291
+ turn.phase = 'active';
292
+ this.drive();
293
+ }
294
+ catch (error) {
295
+ if (this.active !== turn || this.fatal)
296
+ return;
297
+ if (error instanceof CodexAppTransportError || turn.serverStarted) {
298
+ this.emitUnknownOutcome(turn, 'turn/start', error instanceof CodexAppRpcResponseError ? 'rpc' : 'transport', input.replyTurnId);
299
+ this.handleFatal(error);
300
+ return;
301
+ }
302
+ this.active = null;
303
+ this.emitFailure(turn, turn.replyTurnId, `Codex App runner error: ${errorMessage(error)}`);
304
+ this.afterTurn();
305
+ }
306
+ }
307
+ steerQueueHead(turn) {
308
+ const input = this.queue[0];
309
+ if (!input || !turn.threadId || !turn.appTurnId)
310
+ return;
311
+ turn.steerInFlight = input;
312
+ void this.performSteer(turn, input);
313
+ }
314
+ async performSteer(turn, input) {
315
+ const expectedTurnId = turn.appTurnId;
316
+ try {
317
+ const prepared = this.deps.prepareInput(input, this.structuredDisabled);
318
+ this.reportPreparedInput(prepared);
319
+ this.emitLifecycle({
320
+ kind: 'steer_attempt',
321
+ atMs: this.now(),
322
+ appTurnId: expectedTurnId,
323
+ ...(input.replyTurnId ? { replyTurnId: input.replyTurnId } : {}),
324
+ queueLength: this.queue.length,
325
+ });
326
+ const result = await this.deps.request('turn/steer', {
327
+ threadId: turn.threadId,
328
+ input: prepared.input,
329
+ expectedTurnId,
330
+ ...(prepared.clientUserMessageId
331
+ ? { clientUserMessageId: prepared.clientUserMessageId }
332
+ : {}),
333
+ ...(prepared.additionalContext
334
+ ? { additionalContext: prepared.additionalContext }
335
+ : {}),
336
+ });
337
+ if (this.active !== turn || this.fatal)
338
+ return;
339
+ const responseTurnId = isRecord(result) ? stringField(result.turnId) : undefined;
340
+ if (responseTurnId !== expectedTurnId) {
341
+ this.emitUnknownOutcome(turn, 'turn/steer', 'protocol', input.replyTurnId);
342
+ this.handleFatal(new CodexAppTransportError('turn/steer returned an unexpected turn id.'), 'protocol');
343
+ return;
344
+ }
345
+ if (this.queue[0] === input)
346
+ this.queue.shift();
347
+ turn.replyTurnId = input.replyTurnId ?? turn.replyTurnId;
348
+ this.deps.onTurnInput?.(input, prepared);
349
+ this.emitLifecycle({
350
+ kind: 'steer_accepted',
351
+ atMs: this.now(),
352
+ appTurnId: expectedTurnId,
353
+ ...(input.replyTurnId ? { replyTurnId: input.replyTurnId } : {}),
354
+ queueLength: this.queue.length,
355
+ });
356
+ }
357
+ catch (error) {
358
+ if (this.active !== turn || this.fatal)
359
+ return;
360
+ if (error instanceof CodexAppRpcResponseError
361
+ && isDefiniteSteerRejection(error)) {
362
+ turn.steeringClosed = true;
363
+ this.emitLifecycle({
364
+ kind: 'steer_rejected_fallback',
365
+ atMs: this.now(),
366
+ appTurnId: expectedTurnId,
367
+ ...(input.replyTurnId ? { replyTurnId: input.replyTurnId } : {}),
368
+ queueLength: this.queue.length,
369
+ category: 'definite_rejection',
370
+ });
371
+ this.deps.onDiagnostic?.('[codex-app] steer rejected; queued for the next turn');
372
+ return;
373
+ }
374
+ this.emitUnknownOutcome(turn, 'turn/steer', error instanceof CodexAppRpcResponseError ? 'rpc' : 'transport', input.replyTurnId);
375
+ this.handleFatal(new CodexAppTransportError(`steer result unknown (${errorMessage(error)})`));
376
+ }
377
+ finally {
378
+ if (this.active === turn) {
379
+ turn.steerInFlight = undefined;
380
+ this.drive();
381
+ }
382
+ }
383
+ }
384
+ turnStartParams(threadId, prepared) {
385
+ return {
386
+ threadId,
387
+ input: prepared.input,
388
+ ...(prepared.clientUserMessageId
389
+ ? { clientUserMessageId: prepared.clientUserMessageId }
390
+ : {}),
391
+ ...(prepared.additionalContext
392
+ ? { additionalContext: prepared.additionalContext }
393
+ : {}),
394
+ cwd: this.deps.cwd,
395
+ approvalPolicy: 'never',
396
+ sandboxPolicy: { type: 'dangerFullAccess' },
397
+ };
398
+ }
399
+ reportPreparedInput(prepared) {
400
+ for (const path of prepared.skippedImages ?? []) {
401
+ this.deps.onDiagnostic?.(`[codex-app] skipped unreadable local image: ${path}`);
402
+ }
403
+ }
404
+ adoptAppTurnId(turn, appTurnId) {
405
+ if (!turn.appTurnId) {
406
+ turn.appTurnId = appTurnId;
407
+ this.emitTurnStarted(turn);
408
+ return true;
409
+ }
410
+ if (turn.appTurnId === appTurnId) {
411
+ this.emitTurnStarted(turn);
412
+ return true;
413
+ }
414
+ this.handleFatal(new CodexAppTransportError('app-server turn id changed unexpectedly.'), 'protocol');
415
+ return false;
416
+ }
417
+ emitTurnStarted(turn) {
418
+ if (turn.turnStartedEmitted || !turn.appTurnId)
419
+ return;
420
+ turn.turnStartedEmitted = true;
421
+ this.emitLifecycle({
422
+ kind: 'turn_started',
423
+ atMs: this.now(),
424
+ appTurnId: turn.appTurnId,
425
+ ...(turn.replyTurnId ? { replyTurnId: turn.replyTurnId } : {}),
426
+ queueLength: this.queue.length,
427
+ });
428
+ }
429
+ emitUnknownOutcome(turn, operation, category, replyTurnId) {
430
+ this.emitLifecycle({
431
+ kind: 'unknown_outcome',
432
+ atMs: this.now(),
433
+ operation,
434
+ category,
435
+ ...(turn.appTurnId ? { appTurnId: turn.appTurnId } : {}),
436
+ ...(replyTurnId ? { replyTurnId } : {}),
437
+ queueLength: this.queue.length,
438
+ });
439
+ }
440
+ finalizeTurn(turn) {
441
+ if (this.active !== turn || turn.finalEmitted)
442
+ return;
443
+ turn.finalEmitted = true;
444
+ const completedAtMs = this.now();
445
+ const appTurnId = turn.appTurnId ?? this.nextFailureId(completedAtMs);
446
+ this.rememberClosedTurn(appTurnId);
447
+ const content = (turn.finalText || turn.allAgentText).trim();
448
+ if (content) {
449
+ this.deps.onFinal({
450
+ appTurnId,
451
+ replyTurnId: turn.replyTurnId,
452
+ content,
453
+ startedAtMs: turn.startedAtMs,
454
+ completedAtMs,
455
+ });
456
+ }
457
+ this.active = null;
458
+ this.afterTurn();
459
+ }
460
+ emitFailure(turn, replyTurnId, content) {
461
+ if (turn.finalEmitted)
462
+ return;
463
+ turn.finalEmitted = true;
464
+ const completedAtMs = this.now();
465
+ const appTurnId = turn.appTurnId ?? this.nextFailureId(completedAtMs);
466
+ this.rememberClosedTurn(appTurnId);
467
+ this.deps.onDiagnostic?.(content);
468
+ this.deps.onFinal({
469
+ appTurnId,
470
+ replyTurnId,
471
+ content,
472
+ startedAtMs: turn.startedAtMs,
473
+ completedAtMs,
474
+ });
475
+ }
476
+ emitStandaloneFailure(input, content) {
477
+ const now = this.now();
478
+ this.deps.onDiagnostic?.(content);
479
+ this.deps.onFinal({
480
+ appTurnId: this.nextFailureId(now),
481
+ replyTurnId: input.replyTurnId,
482
+ content,
483
+ startedAtMs: now,
484
+ completedAtMs: now,
485
+ });
486
+ }
487
+ afterTurn() {
488
+ if (this.queue.length === 0)
489
+ this.deps.onPrompt?.();
490
+ this.drive();
491
+ }
492
+ rememberClosedTurn(turnId) {
493
+ this.closedTurnIds.add(turnId);
494
+ if (this.closedTurnIds.size <= CLOSED_TURN_LIMIT)
495
+ return;
496
+ const oldest = this.closedTurnIds.values().next().value;
497
+ if (typeof oldest === 'string')
498
+ this.closedTurnIds.delete(oldest);
499
+ }
500
+ nextFailureId(now) {
501
+ return `codex-app-error-${now}-${++this.failureSequence}`;
502
+ }
503
+ now() {
504
+ return this.deps.now?.() ?? Date.now();
505
+ }
506
+ emitLifecycle(event) {
507
+ this.deps.onLifecycle?.(event);
508
+ }
509
+ activeOperation(active) {
510
+ if (active?.steerInFlight)
511
+ return 'turn/steer';
512
+ if (active?.phase === 'starting')
513
+ return 'turn/start';
514
+ return 'runner';
515
+ }
516
+ errorCategory(error) {
517
+ if (error instanceof CodexAppTransportError)
518
+ return 'transport';
519
+ if (error instanceof CodexAppRpcResponseError)
520
+ return 'rpc';
521
+ return 'runtime';
522
+ }
523
+ }
524
+ //# sourceMappingURL=codex-app-turn-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-app-turn-controller.js","sourceRoot":"","sources":["../../src/services/codex-app-turn-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export type CodexRunnerFreshnessState = 'current' | 'stale_waiting_idle' | 'restarting_fresh' | 'failed' | 'unknown';
2
+ export interface CodexRunnerFreshnessDecision {
3
+ state: CodexRunnerFreshnessState;
4
+ reason: 'not_codex_app' | 'adopt_session' | 'fresh_spawn' | 'build_match' | 'persisted_build_missing' | 'build_mismatch' | 'replacement_reattached' | 'current_build_unknown';
5
+ persistOnReady: boolean;
6
+ }
7
+ export declare function decideCodexRunnerFreshness(input: {
8
+ cliId: string;
9
+ adoptMode: boolean;
10
+ persistentReattach: boolean;
11
+ replacementExpectedFresh?: boolean;
12
+ currentBuildId?: string;
13
+ persistedBuildId?: string;
14
+ }): CodexRunnerFreshnessDecision;
15
+ export declare function shouldHoldCodexRunnerInput(state: CodexRunnerFreshnessState): boolean;
16
+ export declare function transitionOnCodexRunnerPrompt(state: CodexRunnerFreshnessState): {
17
+ state: CodexRunnerFreshnessState;
18
+ action: 'publish_ready' | 'reload' | 'ignore';
19
+ };
20
+ /**
21
+ * Worker-owned input queues whose dequeue boundary is fenced by runner
22
+ * freshness. Keeping this small seam outside worker.ts makes the stale-runner
23
+ * contract executable without importing the worker process (which installs
24
+ * IPC handlers and starts runtime services at module load).
25
+ */
26
+ export declare class CodexRunnerFreshnessInputQueue<TNormal, TRaw> {
27
+ private readonly getState;
28
+ private readonly setState;
29
+ readonly normal: TNormal[];
30
+ readonly raw: TRaw[];
31
+ constructor(getState: () => CodexRunnerFreshnessState, setState: (state: CodexRunnerFreshnessState) => void);
32
+ enqueueNormal(input: TNormal): void;
33
+ enqueueRaw(input: TRaw): void;
34
+ takeNormal(): TNormal | undefined;
35
+ takeRaw(): TRaw | undefined;
36
+ onPromptReady(): 'publish_ready' | 'reload' | 'ignore';
37
+ onReplacementFailed(): void;
38
+ }
39
+ //# sourceMappingURL=codex-runner-freshness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-runner-freshness.d.ts","sourceRoot":"","sources":["../../src/services/codex-runner-freshness.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GACjC,SAAS,GACT,oBAAoB,GACpB,kBAAkB,GAClB,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,yBAAyB,CAAC;IACjC,MAAM,EACF,eAAe,GACf,eAAe,GACf,aAAa,GACb,aAAa,GACb,yBAAyB,GACzB,gBAAgB,GAChB,wBAAwB,GACxB,uBAAuB,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,4BAA4B,CAuB/B;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAEpF;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,yBAAyB,GAAG;IAC/E,KAAK,EAAE,yBAAyB,CAAC;IACjC,MAAM,EAAE,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC/C,CAKA;AAED;;;;;GAKG;AACH,qBAAa,8BAA8B,CAAC,OAAO,EAAE,IAAI;IAKrD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAM;IAChC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAM;gBAGP,QAAQ,EAAE,MAAM,yBAAyB,EACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI;IAGvE,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAInC,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI7B,UAAU,IAAI,OAAO,GAAG,SAAS;IAKjC,OAAO,IAAI,IAAI,GAAG,SAAS;IAK3B,aAAa,IAAI,eAAe,GAAG,QAAQ,GAAG,QAAQ;IAMtD,mBAAmB,IAAI,IAAI;CAG5B"}