botmux 3.7.1 → 3.8.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 (622) hide show
  1. package/dist/.runtime-build-id +1 -1
  2. package/dist/adapters/backend/capabilities.d.ts +17 -0
  3. package/dist/adapters/backend/capabilities.d.ts.map +1 -0
  4. package/dist/adapters/backend/capabilities.js +22 -0
  5. package/dist/adapters/backend/capabilities.js.map +1 -0
  6. package/dist/adapters/backend/critical-control-key.d.ts +19 -0
  7. package/dist/adapters/backend/critical-control-key.d.ts.map +1 -0
  8. package/dist/adapters/backend/critical-control-key.js +34 -0
  9. package/dist/adapters/backend/critical-control-key.js.map +1 -0
  10. package/dist/adapters/backend/herdr-backend.d.ts +9 -0
  11. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/herdr-backend.js +23 -4
  13. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  14. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  15. package/dist/adapters/backend/riff-backend.js +3 -2
  16. package/dist/adapters/backend/riff-backend.js.map +1 -1
  17. package/dist/adapters/backend/session-backend-selector.d.ts +61 -6
  18. package/dist/adapters/backend/session-backend-selector.d.ts.map +1 -1
  19. package/dist/adapters/backend/session-backend-selector.js +173 -9
  20. package/dist/adapters/backend/session-backend-selector.js.map +1 -1
  21. package/dist/adapters/backend/tmux-backend.d.ts +10 -3
  22. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  23. package/dist/adapters/backend/tmux-backend.js +25 -8
  24. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  25. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  26. package/dist/adapters/backend/tmux-pipe-backend.js +3 -2
  27. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  28. package/dist/adapters/backend/types.d.ts +45 -4
  29. package/dist/adapters/backend/types.d.ts.map +1 -1
  30. package/dist/adapters/backend/types.js +11 -0
  31. package/dist/adapters/backend/types.js.map +1 -1
  32. package/dist/adapters/backend/zellij-backend.d.ts.map +1 -1
  33. package/dist/adapters/backend/zellij-backend.js +3 -2
  34. package/dist/adapters/backend/zellij-backend.js.map +1 -1
  35. package/dist/adapters/backend/zmx-backend.d.ts +286 -0
  36. package/dist/adapters/backend/zmx-backend.d.ts.map +1 -0
  37. package/dist/adapters/backend/zmx-backend.js +2396 -0
  38. package/dist/adapters/backend/zmx-backend.js.map +1 -0
  39. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  40. package/dist/adapters/cli/claude-code.js +3 -0
  41. package/dist/adapters/cli/claude-code.js.map +1 -1
  42. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  43. package/dist/adapters/cli/codex-app.js +5 -1
  44. package/dist/adapters/cli/codex-app.js.map +1 -1
  45. package/dist/adapters/cli/codex.d.ts.map +1 -1
  46. package/dist/adapters/cli/codex.js +26 -1
  47. package/dist/adapters/cli/codex.js.map +1 -1
  48. package/dist/adapters/cli/fs-policy.d.ts +79 -1
  49. package/dist/adapters/cli/fs-policy.d.ts.map +1 -1
  50. package/dist/adapters/cli/fs-policy.js +290 -13
  51. package/dist/adapters/cli/fs-policy.js.map +1 -1
  52. package/dist/adapters/cli/grok.d.ts.map +1 -1
  53. package/dist/adapters/cli/grok.js +4 -1
  54. package/dist/adapters/cli/grok.js.map +1 -1
  55. package/dist/adapters/cli/oh-my-pi.d.ts.map +1 -1
  56. package/dist/adapters/cli/oh-my-pi.js +5 -3
  57. package/dist/adapters/cli/oh-my-pi.js.map +1 -1
  58. package/dist/adapters/cli/shared-hints.d.ts +7 -4
  59. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  60. package/dist/adapters/cli/shared-hints.js +52 -35
  61. package/dist/adapters/cli/shared-hints.js.map +1 -1
  62. package/dist/adapters/cli/strict-input-handle.d.ts +13 -0
  63. package/dist/adapters/cli/strict-input-handle.d.ts.map +1 -0
  64. package/dist/adapters/cli/strict-input-handle.js +39 -0
  65. package/dist/adapters/cli/strict-input-handle.js.map +1 -0
  66. package/dist/adapters/cli/traex.d.ts.map +1 -1
  67. package/dist/adapters/cli/traex.js +6 -4
  68. package/dist/adapters/cli/traex.js.map +1 -1
  69. package/dist/adapters/cli/types.d.ts +16 -0
  70. package/dist/adapters/cli/types.d.ts.map +1 -1
  71. package/dist/bot-registry.d.ts +137 -8
  72. package/dist/bot-registry.d.ts.map +1 -1
  73. package/dist/bot-registry.js +298 -12
  74. package/dist/bot-registry.js.map +1 -1
  75. package/dist/cli/session-list-liveness.d.ts +1 -1
  76. package/dist/cli/session-list-liveness.js +1 -1
  77. package/dist/cli/zmx-managed-attach.d.ts +41 -0
  78. package/dist/cli/zmx-managed-attach.d.ts.map +1 -0
  79. package/dist/cli/zmx-managed-attach.js +72 -0
  80. package/dist/cli/zmx-managed-attach.js.map +1 -0
  81. package/dist/cli.d.ts.map +1 -1
  82. package/dist/cli.js +780 -131
  83. package/dist/cli.js.map +1 -1
  84. package/dist/codex-app-runner.js +90 -2
  85. package/dist/codex-app-runner.js.map +1 -1
  86. package/dist/codex-rpc-engine.d.ts.map +1 -1
  87. package/dist/codex-rpc-engine.js +22 -6
  88. package/dist/codex-rpc-engine.js.map +1 -1
  89. package/dist/config.d.ts +5 -0
  90. package/dist/config.d.ts.map +1 -1
  91. package/dist/config.js +29 -1
  92. package/dist/config.js.map +1 -1
  93. package/dist/core/ask-broker.d.ts +22 -1
  94. package/dist/core/ask-broker.d.ts.map +1 -1
  95. package/dist/core/ask-broker.js +12 -5
  96. package/dist/core/ask-broker.js.map +1 -1
  97. package/dist/core/botmux-wrapper.d.ts +18 -0
  98. package/dist/core/botmux-wrapper.d.ts.map +1 -1
  99. package/dist/core/botmux-wrapper.js +25 -1
  100. package/dist/core/botmux-wrapper.js.map +1 -1
  101. package/dist/core/chat-rename.d.ts +27 -0
  102. package/dist/core/chat-rename.d.ts.map +1 -0
  103. package/dist/core/chat-rename.js +53 -0
  104. package/dist/core/chat-rename.js.map +1 -0
  105. package/dist/core/command-handler.d.ts.map +1 -1
  106. package/dist/core/command-handler.js +160 -12
  107. package/dist/core/command-handler.js.map +1 -1
  108. package/dist/core/cost-calculator.d.ts +25 -1
  109. package/dist/core/cost-calculator.d.ts.map +1 -1
  110. package/dist/core/cost-calculator.js +102 -4
  111. package/dist/core/cost-calculator.js.map +1 -1
  112. package/dist/core/dashboard-ipc-server.d.ts +16 -2
  113. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  114. package/dist/core/dashboard-ipc-server.js +611 -62
  115. package/dist/core/dashboard-ipc-server.js.map +1 -1
  116. package/dist/core/dashboard-rows.d.ts +22 -1
  117. package/dist/core/dashboard-rows.d.ts.map +1 -1
  118. package/dist/core/dashboard-rows.js +61 -0
  119. package/dist/core/dashboard-rows.js.map +1 -1
  120. package/dist/core/dashboard-url.d.ts +6 -0
  121. package/dist/core/dashboard-url.d.ts.map +1 -1
  122. package/dist/core/dashboard-url.js +11 -1
  123. package/dist/core/dashboard-url.js.map +1 -1
  124. package/dist/core/device-isolation-daemon.d.ts +28 -6
  125. package/dist/core/device-isolation-daemon.d.ts.map +1 -1
  126. package/dist/core/device-isolation-daemon.js +96 -13
  127. package/dist/core/device-isolation-daemon.js.map +1 -1
  128. package/dist/core/host-overload-alert.d.ts +75 -0
  129. package/dist/core/host-overload-alert.d.ts.map +1 -1
  130. package/dist/core/host-overload-alert.js +103 -0
  131. package/dist/core/host-overload-alert.js.map +1 -1
  132. package/dist/core/idle-worker-sweeper.js +1 -1
  133. package/dist/core/idle-worker-sweeper.js.map +1 -1
  134. package/dist/core/inflight-input-tracker.d.ts +3 -0
  135. package/dist/core/inflight-input-tracker.d.ts.map +1 -1
  136. package/dist/core/inflight-input-tracker.js +9 -0
  137. package/dist/core/inflight-input-tracker.js.map +1 -1
  138. package/dist/core/passthrough-commands.d.ts.map +1 -1
  139. package/dist/core/passthrough-commands.js +10 -0
  140. package/dist/core/passthrough-commands.js.map +1 -1
  141. package/dist/core/persistent-backend.d.ts +32 -4
  142. package/dist/core/persistent-backend.d.ts.map +1 -1
  143. package/dist/core/persistent-backend.js +75 -6
  144. package/dist/core/persistent-backend.js.map +1 -1
  145. package/dist/core/plugins/mcp/gateway.js +2 -2
  146. package/dist/core/plugins/mcp/gateway.js.map +1 -1
  147. package/dist/core/plugins/runtime.d.ts +3 -0
  148. package/dist/core/plugins/runtime.d.ts.map +1 -1
  149. package/dist/core/plugins/runtime.js.map +1 -1
  150. package/dist/core/plugins/service-manager.d.ts +4 -1
  151. package/dist/core/plugins/service-manager.d.ts.map +1 -1
  152. package/dist/core/plugins/service-manager.js +11 -6
  153. package/dist/core/plugins/service-manager.js.map +1 -1
  154. package/dist/core/role-library.d.ts +48 -1
  155. package/dist/core/role-library.d.ts.map +1 -1
  156. package/dist/core/role-library.js +111 -3
  157. package/dist/core/role-library.js.map +1 -1
  158. package/dist/core/role-resolver.d.ts +14 -2
  159. package/dist/core/role-resolver.d.ts.map +1 -1
  160. package/dist/core/role-resolver.js +47 -4
  161. package/dist/core/role-resolver.js.map +1 -1
  162. package/dist/core/session-activity.d.ts +14 -0
  163. package/dist/core/session-activity.d.ts.map +1 -1
  164. package/dist/core/session-activity.js +46 -1
  165. package/dist/core/session-activity.js.map +1 -1
  166. package/dist/core/session-board.d.ts +5 -2
  167. package/dist/core/session-board.d.ts.map +1 -1
  168. package/dist/core/session-board.js +5 -2
  169. package/dist/core/session-board.js.map +1 -1
  170. package/dist/core/session-liveness.d.ts +6 -5
  171. package/dist/core/session-liveness.d.ts.map +1 -1
  172. package/dist/core/session-liveness.js +34 -13
  173. package/dist/core/session-liveness.js.map +1 -1
  174. package/dist/core/session-manager.d.ts +3 -2
  175. package/dist/core/session-manager.d.ts.map +1 -1
  176. package/dist/core/session-manager.js +397 -103
  177. package/dist/core/session-manager.js.map +1 -1
  178. package/dist/core/session-marker.d.ts +11 -2
  179. package/dist/core/session-marker.d.ts.map +1 -1
  180. package/dist/core/session-marker.js +50 -11
  181. package/dist/core/session-marker.js.map +1 -1
  182. package/dist/core/session-message-preview.d.ts +20 -0
  183. package/dist/core/session-message-preview.d.ts.map +1 -0
  184. package/dist/core/session-message-preview.js +188 -0
  185. package/dist/core/session-message-preview.js.map +1 -0
  186. package/dist/core/session-title.d.ts +5 -1
  187. package/dist/core/session-title.d.ts.map +1 -1
  188. package/dist/core/session-title.js +20 -3
  189. package/dist/core/session-title.js.map +1 -1
  190. package/dist/core/startup-commands.d.ts +1 -1
  191. package/dist/core/startup-commands.js +1 -1
  192. package/dist/core/terminal-url.d.ts.map +1 -1
  193. package/dist/core/terminal-url.js +3 -2
  194. package/dist/core/terminal-url.js.map +1 -1
  195. package/dist/core/trigger-session.d.ts.map +1 -1
  196. package/dist/core/trigger-session.js +75 -12
  197. package/dist/core/trigger-session.js.map +1 -1
  198. package/dist/core/types.d.ts +35 -0
  199. package/dist/core/types.d.ts.map +1 -1
  200. package/dist/core/types.js +23 -0
  201. package/dist/core/types.js.map +1 -1
  202. package/dist/core/worker-ipc.d.ts +11 -0
  203. package/dist/core/worker-ipc.d.ts.map +1 -0
  204. package/dist/core/worker-ipc.js +26 -0
  205. package/dist/core/worker-ipc.js.map +1 -0
  206. package/dist/core/worker-pool.d.ts +179 -29
  207. package/dist/core/worker-pool.d.ts.map +1 -1
  208. package/dist/core/worker-pool.js +2118 -331
  209. package/dist/core/worker-pool.js.map +1 -1
  210. package/dist/daemon.d.ts +132 -3
  211. package/dist/daemon.d.ts.map +1 -1
  212. package/dist/daemon.js +1327 -449
  213. package/dist/daemon.js.map +1 -1
  214. package/dist/dashboard/auth.d.ts +2 -0
  215. package/dist/dashboard/auth.d.ts.map +1 -1
  216. package/dist/dashboard/auth.js +9 -0
  217. package/dist/dashboard/auth.js.map +1 -1
  218. package/dist/dashboard/bot-payload.d.ts +4 -0
  219. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  220. package/dist/dashboard/bot-payload.js +5 -0
  221. package/dist/dashboard/bot-payload.js.map +1 -1
  222. package/dist/dashboard/federation-api.d.ts.map +1 -1
  223. package/dist/dashboard/federation-api.js +4 -0
  224. package/dist/dashboard/federation-api.js.map +1 -1
  225. package/dist/dashboard/federation-spoke-api.d.ts.map +1 -1
  226. package/dist/dashboard/federation-spoke-api.js +32 -5
  227. package/dist/dashboard/federation-spoke-api.js.map +1 -1
  228. package/dist/dashboard/public-redact.d.ts +8 -2
  229. package/dist/dashboard/public-redact.d.ts.map +1 -1
  230. package/dist/dashboard/public-redact.js +34 -7
  231. package/dist/dashboard/public-redact.js.map +1 -1
  232. package/dist/dashboard/session-card-model.d.ts.map +1 -1
  233. package/dist/dashboard/session-card-model.js +10 -2
  234. package/dist/dashboard/session-card-model.js.map +1 -1
  235. package/dist/dashboard/settings-write-applier.d.ts +35 -1
  236. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  237. package/dist/dashboard/settings-write-applier.js +88 -1
  238. package/dist/dashboard/settings-write-applier.js.map +1 -1
  239. package/dist/dashboard/web/app.d.ts.map +1 -1
  240. package/dist/dashboard/web/app.js +0 -1
  241. package/dist/dashboard/web/app.js.map +1 -1
  242. package/dist/dashboard/web/bot-defaults-page.d.ts +15 -0
  243. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  244. package/dist/dashboard/web/bot-defaults-page.js +212 -58
  245. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  246. package/dist/dashboard/web/bot-defaults.d.ts +3 -0
  247. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  248. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  249. package/dist/dashboard/web/bot-onboarding.d.ts +2 -1
  250. package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
  251. package/dist/dashboard/web/bot-onboarding.js.map +1 -1
  252. package/dist/dashboard/web/clipboard.d.ts +2 -0
  253. package/dist/dashboard/web/clipboard.d.ts.map +1 -0
  254. package/dist/dashboard/web/clipboard.js +42 -0
  255. package/dist/dashboard/web/clipboard.js.map +1 -0
  256. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  257. package/dist/dashboard/web/connectors-page.js +12 -8
  258. package/dist/dashboard/web/connectors-page.js.map +1 -1
  259. package/dist/dashboard/web/dashboard-components.d.ts +17 -16
  260. package/dist/dashboard/web/dashboard-components.d.ts.map +1 -1
  261. package/dist/dashboard/web/dashboard-components.js.map +1 -1
  262. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  263. package/dist/dashboard/web/groups-page.js +7 -3
  264. package/dist/dashboard/web/groups-page.js.map +1 -1
  265. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  266. package/dist/dashboard/web/i18n.js +205 -12
  267. package/dist/dashboard/web/i18n.js.map +1 -1
  268. package/dist/dashboard/web/icon-tooltip.d.ts.map +1 -1
  269. package/dist/dashboard/web/icon-tooltip.js +16 -1
  270. package/dist/dashboard/web/icon-tooltip.js.map +1 -1
  271. package/dist/dashboard/web/listener-filters.d.ts +23 -0
  272. package/dist/dashboard/web/listener-filters.d.ts.map +1 -0
  273. package/dist/dashboard/web/listener-filters.js +36 -0
  274. package/dist/dashboard/web/listener-filters.js.map +1 -0
  275. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  276. package/dist/dashboard/web/overview-page.js.map +1 -1
  277. package/dist/dashboard/web/plugin-page.d.ts.map +1 -1
  278. package/dist/dashboard/web/plugin-page.js.map +1 -1
  279. package/dist/dashboard/web/preview-markdown.d.ts +5 -0
  280. package/dist/dashboard/web/preview-markdown.d.ts.map +1 -0
  281. package/dist/dashboard/web/preview-markdown.js +52 -0
  282. package/dist/dashboard/web/preview-markdown.js.map +1 -0
  283. package/dist/dashboard/web/roles-page.d.ts.map +1 -1
  284. package/dist/dashboard/web/roles-page.js +535 -10
  285. package/dist/dashboard/web/roles-page.js.map +1 -1
  286. package/dist/dashboard/web/roles.d.ts +77 -0
  287. package/dist/dashboard/web/roles.d.ts.map +1 -1
  288. package/dist/dashboard/web/roles.js +98 -0
  289. package/dist/dashboard/web/roles.js.map +1 -1
  290. package/dist/dashboard/web/session-terminal.d.ts.map +1 -1
  291. package/dist/dashboard/web/session-terminal.js +6 -4
  292. package/dist/dashboard/web/session-terminal.js.map +1 -1
  293. package/dist/dashboard/web/sessions-kanban.d.ts +4 -1
  294. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
  295. package/dist/dashboard/web/sessions-kanban.js +1 -1
  296. package/dist/dashboard/web/sessions-kanban.js.map +1 -1
  297. package/dist/dashboard/web/sessions-page.d.ts +3 -2
  298. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  299. package/dist/dashboard/web/sessions-page.js +163 -28
  300. package/dist/dashboard/web/sessions-page.js.map +1 -1
  301. package/dist/dashboard/web/sessions.d.ts +25 -0
  302. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  303. package/dist/dashboard/web/sessions.js +58 -7
  304. package/dist/dashboard/web/sessions.js.map +1 -1
  305. package/dist/dashboard/web/settings-page.d.ts +28 -3
  306. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  307. package/dist/dashboard/web/settings-page.js +61 -1
  308. package/dist/dashboard/web/settings-page.js.map +1 -1
  309. package/dist/dashboard/web/skills-page.d.ts +6 -5
  310. package/dist/dashboard/web/skills-page.d.ts.map +1 -1
  311. package/dist/dashboard/web/skills-page.js +2 -0
  312. package/dist/dashboard/web/skills-page.js.map +1 -1
  313. package/dist/dashboard/web/v3-components.d.ts +3 -2
  314. package/dist/dashboard/web/v3-components.d.ts.map +1 -1
  315. package/dist/dashboard/web/v3-components.js.map +1 -1
  316. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts +12 -2
  317. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
  318. package/dist/dashboard/web/vc-consumer-profiles-section.js +0 -9
  319. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
  320. package/dist/dashboard/web/webhook-logs-page.d.ts +2 -1
  321. package/dist/dashboard/web/webhook-logs-page.d.ts.map +1 -1
  322. package/dist/dashboard/web/webhook-logs-page.js +4 -1
  323. package/dist/dashboard/web/webhook-logs-page.js.map +1 -1
  324. package/dist/dashboard-web/app.js +1 -1
  325. package/dist/dashboard-web/chunks/bot-defaults-page-FAPIMQV3.js +10 -0
  326. package/dist/dashboard-web/chunks/{chunk-QFMH6ITB.js → chunk-5CJMHTT4.js} +1 -1
  327. package/dist/dashboard-web/chunks/{chunk-KQB42ML5.js → chunk-DLZK52JU.js} +14 -12
  328. package/dist/dashboard-web/chunks/chunk-FDZ7WOBW.js +16 -0
  329. package/dist/dashboard-web/chunks/{chunk-3QAUJXAS.js → chunk-GTAJV5YC.js} +1 -1
  330. package/dist/dashboard-web/chunks/{chunk-FNPGOZMX.js → chunk-IHNG6KE6.js} +1 -1
  331. package/dist/dashboard-web/chunks/{chunk-FLGXZJTD.js → chunk-VA6QWSGQ.js} +1 -1
  332. package/dist/dashboard-web/chunks/chunk-XJ7BGPJH.js +1 -0
  333. package/dist/dashboard-web/chunks/chunk-ZJVTGU5X.js +1 -0
  334. package/dist/dashboard-web/chunks/connectors-page-LKWRT3GS.js +1 -0
  335. package/dist/dashboard-web/chunks/groups-page-V6654ICQ.js +8 -0
  336. package/dist/dashboard-web/chunks/insights-page-237RMFQ5.js +7 -0
  337. package/dist/dashboard-web/chunks/{monitor-room-7IVIS75W.js → monitor-room-OO5Y4FRQ.js} +1 -1
  338. package/dist/dashboard-web/chunks/{monitoring-page-5SSJRQZF.js → monitoring-page-OUEITM5P.js} +1 -1
  339. package/dist/dashboard-web/chunks/{office-page-EOND3L5D.js → office-page-4KNAHQ4Q.js} +1 -1
  340. package/dist/dashboard-web/chunks/{overview-page-NISBVBBJ.js → overview-page-QDP4YK2S.js} +1 -1
  341. package/dist/dashboard-web/chunks/{plugin-page-JXC5F5YV.js → plugin-page-VEGTCEAS.js} +1 -1
  342. package/dist/dashboard-web/chunks/roles-page-PGXNZZNP.js +1 -0
  343. package/dist/dashboard-web/chunks/{schedules-page-AVOOKLUH.js → schedules-page-BJNC5TID.js} +1 -1
  344. package/dist/dashboard-web/chunks/sessions-page-M2ZYYCMO.js +6 -0
  345. package/dist/dashboard-web/chunks/settings-page-IJFZKUUW.js +2 -0
  346. package/dist/dashboard-web/chunks/{skills-page-5MW54PCC.js → skills-page-YRAIRZOQ.js} +3 -3
  347. package/dist/dashboard-web/chunks/{team-federation-page-2SNIMVXI.js → team-federation-page-DEU27GRU.js} +1 -1
  348. package/dist/dashboard-web/chunks/{v3-page-W6SBXXQC.js → v3-page-6KHEW2YL.js} +5 -5
  349. package/dist/dashboard-web/chunks/{whiteboards-page-STC54KTP.js → whiteboards-page-VDECAALH.js} +1 -1
  350. package/dist/dashboard-web/style.css +12545 -11432
  351. package/dist/dashboard.js +215 -36
  352. package/dist/dashboard.js.map +1 -1
  353. package/dist/global-config.d.ts +41 -2
  354. package/dist/global-config.d.ts.map +1 -1
  355. package/dist/global-config.js +47 -0
  356. package/dist/global-config.js.map +1 -1
  357. package/dist/i18n/en.d.ts.map +1 -1
  358. package/dist/i18n/en.js +71 -19
  359. package/dist/i18n/en.js.map +1 -1
  360. package/dist/i18n/zh.d.ts.map +1 -1
  361. package/dist/i18n/zh.js +71 -19
  362. package/dist/i18n/zh.js.map +1 -1
  363. package/dist/im/lark/callback-button-marker.d.ts +34 -0
  364. package/dist/im/lark/callback-button-marker.d.ts.map +1 -0
  365. package/dist/im/lark/callback-button-marker.js +99 -0
  366. package/dist/im/lark/callback-button-marker.js.map +1 -0
  367. package/dist/im/lark/card-builder.d.ts +46 -10
  368. package/dist/im/lark/card-builder.d.ts.map +1 -1
  369. package/dist/im/lark/card-builder.js +299 -78
  370. package/dist/im/lark/card-builder.js.map +1 -1
  371. package/dist/im/lark/card-handler.d.ts +3 -4
  372. package/dist/im/lark/card-handler.d.ts.map +1 -1
  373. package/dist/im/lark/card-handler.js +380 -148
  374. package/dist/im/lark/card-handler.js.map +1 -1
  375. package/dist/im/lark/client.d.ts +24 -1
  376. package/dist/im/lark/client.d.ts.map +1 -1
  377. package/dist/im/lark/client.js +101 -8
  378. package/dist/im/lark/client.js.map +1 -1
  379. package/dist/im/lark/doc-comment.d.ts.map +1 -1
  380. package/dist/im/lark/doc-comment.js +6 -1
  381. package/dist/im/lark/doc-comment.js.map +1 -1
  382. package/dist/im/lark/event-dispatcher.d.ts +115 -3
  383. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  384. package/dist/im/lark/event-dispatcher.js +534 -147
  385. package/dist/im/lark/event-dispatcher.js.map +1 -1
  386. package/dist/im/lark/grant-command.d.ts +16 -12
  387. package/dist/im/lark/grant-command.d.ts.map +1 -1
  388. package/dist/im/lark/grant-command.js +48 -151
  389. package/dist/im/lark/grant-command.js.map +1 -1
  390. package/dist/im/lark/grant-pending.d.ts +12 -4
  391. package/dist/im/lark/grant-pending.d.ts.map +1 -1
  392. package/dist/im/lark/grant-pending.js +31 -8
  393. package/dist/im/lark/grant-pending.js.map +1 -1
  394. package/dist/im/lark/invite-command.d.ts +20 -0
  395. package/dist/im/lark/invite-command.d.ts.map +1 -0
  396. package/dist/im/lark/invite-command.js +239 -0
  397. package/dist/im/lark/invite-command.js.map +1 -0
  398. package/dist/im/lark/md-card.d.ts +66 -4
  399. package/dist/im/lark/md-card.d.ts.map +1 -1
  400. package/dist/im/lark/md-card.js +201 -31
  401. package/dist/im/lark/md-card.js.map +1 -1
  402. package/dist/im/lark/mention-targets.d.ts +43 -0
  403. package/dist/im/lark/mention-targets.d.ts.map +1 -0
  404. package/dist/im/lark/mention-targets.js +190 -0
  405. package/dist/im/lark/mention-targets.js.map +1 -0
  406. package/dist/im/lark/message-parser.d.ts +31 -0
  407. package/dist/im/lark/message-parser.d.ts.map +1 -1
  408. package/dist/im/lark/message-parser.js +305 -32
  409. package/dist/im/lark/message-parser.js.map +1 -1
  410. package/dist/im/lark/reply-card-footer-signature.d.ts +7 -0
  411. package/dist/im/lark/reply-card-footer-signature.d.ts.map +1 -0
  412. package/dist/im/lark/reply-card-footer-signature.js +7 -0
  413. package/dist/im/lark/reply-card-footer-signature.js.map +1 -0
  414. package/dist/im/lark/sessions-card.d.ts.map +1 -1
  415. package/dist/im/lark/sessions-card.js +4 -1
  416. package/dist/im/lark/sessions-card.js.map +1 -1
  417. package/dist/im/lark/substitute-command.d.ts.map +1 -1
  418. package/dist/im/lark/substitute-command.js +8 -0
  419. package/dist/im/lark/substitute-command.js.map +1 -1
  420. package/dist/im/lark/topic-root-context.d.ts +35 -0
  421. package/dist/im/lark/topic-root-context.d.ts.map +1 -0
  422. package/dist/im/lark/topic-root-context.js +37 -0
  423. package/dist/im/lark/topic-root-context.js.map +1 -0
  424. package/dist/im/lark/v3-blocked-card.d.ts.map +1 -1
  425. package/dist/im/lark/v3-blocked-card.js +2 -1
  426. package/dist/im/lark/v3-blocked-card.js.map +1 -1
  427. package/dist/im/lark/v3-gate-card.d.ts.map +1 -1
  428. package/dist/im/lark/v3-gate-card.js +2 -1
  429. package/dist/im/lark/v3-gate-card.js.map +1 -1
  430. package/dist/im/lark/v3-loop-grant-card.d.ts.map +1 -1
  431. package/dist/im/lark/v3-loop-grant-card.js +2 -1
  432. package/dist/im/lark/v3-loop-grant-card.js.map +1 -1
  433. package/dist/im/lark/v3-progress-card.d.ts.map +1 -1
  434. package/dist/im/lark/v3-progress-card.js +2 -1
  435. package/dist/im/lark/v3-progress-card.js.map +1 -1
  436. package/dist/im/lark/v3-revisit-grant-card.d.ts.map +1 -1
  437. package/dist/im/lark/v3-revisit-grant-card.js +2 -1
  438. package/dist/im/lark/v3-revisit-grant-card.js.map +1 -1
  439. package/dist/index-core-only.d.ts +3 -0
  440. package/dist/index-core-only.d.ts.map +1 -0
  441. package/dist/index-core-only.js +107 -0
  442. package/dist/index-core-only.js.map +1 -0
  443. package/dist/services/async-trigger-state.d.ts +8 -0
  444. package/dist/services/async-trigger-state.d.ts.map +1 -1
  445. package/dist/services/async-trigger-state.js +3 -2
  446. package/dist/services/async-trigger-state.js.map +1 -1
  447. package/dist/services/async-trigger-store.d.ts +10 -2
  448. package/dist/services/async-trigger-store.d.ts.map +1 -1
  449. package/dist/services/async-trigger-store.js +3 -2
  450. package/dist/services/async-trigger-store.js.map +1 -1
  451. package/dist/services/backend-availability.d.ts +3 -1
  452. package/dist/services/backend-availability.d.ts.map +1 -1
  453. package/dist/services/backend-availability.js +14 -1
  454. package/dist/services/backend-availability.js.map +1 -1
  455. package/dist/services/backend-type-store.d.ts.map +1 -1
  456. package/dist/services/backend-type-store.js +1 -1
  457. package/dist/services/backend-type-store.js.map +1 -1
  458. package/dist/services/bot-config-store.d.ts.map +1 -1
  459. package/dist/services/bot-config-store.js +2 -1
  460. package/dist/services/bot-config-store.js.map +1 -1
  461. package/dist/services/bridge-fallback-gate.d.ts +14 -1
  462. package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
  463. package/dist/services/bridge-fallback-gate.js +65 -1
  464. package/dist/services/bridge-fallback-gate.js.map +1 -1
  465. package/dist/services/card-prefs-store.d.ts +7 -2
  466. package/dist/services/card-prefs-store.d.ts.map +1 -1
  467. package/dist/services/card-prefs-store.js +30 -4
  468. package/dist/services/card-prefs-store.js.map +1 -1
  469. package/dist/services/codex-app-runner-protocol.d.ts +9 -0
  470. package/dist/services/codex-app-runner-protocol.d.ts.map +1 -1
  471. package/dist/services/codex-app-runner-protocol.js +17 -0
  472. package/dist/services/codex-app-runner-protocol.js.map +1 -1
  473. package/dist/services/codex-app-token-usage.d.ts +93 -0
  474. package/dist/services/codex-app-token-usage.d.ts.map +1 -0
  475. package/dist/services/codex-app-token-usage.js +190 -0
  476. package/dist/services/codex-app-token-usage.js.map +1 -0
  477. package/dist/services/codex-transcript.d.ts +6 -1
  478. package/dist/services/codex-transcript.d.ts.map +1 -1
  479. package/dist/services/codex-transcript.js +103 -32
  480. package/dist/services/codex-transcript.js.map +1 -1
  481. package/dist/services/federation-roster.d.ts +4 -0
  482. package/dist/services/federation-roster.d.ts.map +1 -1
  483. package/dist/services/federation-roster.js +3 -0
  484. package/dist/services/federation-roster.js.map +1 -1
  485. package/dist/services/federation-store.d.ts +6 -0
  486. package/dist/services/federation-store.d.ts.map +1 -1
  487. package/dist/services/federation-store.js.map +1 -1
  488. package/dist/services/grant-policy.d.ts +13 -0
  489. package/dist/services/grant-policy.d.ts.map +1 -0
  490. package/dist/services/grant-policy.js +40 -0
  491. package/dist/services/grant-policy.js.map +1 -0
  492. package/dist/services/grant-store.d.ts +24 -3
  493. package/dist/services/grant-store.d.ts.map +1 -1
  494. package/dist/services/grant-store.js +196 -12
  495. package/dist/services/grant-store.js.map +1 -1
  496. package/dist/services/groups-store.d.ts +36 -0
  497. package/dist/services/groups-store.d.ts.map +1 -1
  498. package/dist/services/groups-store.js +123 -1
  499. package/dist/services/groups-store.js.map +1 -1
  500. package/dist/services/jsonl-cursor.d.ts.map +1 -1
  501. package/dist/services/jsonl-cursor.js +8 -2
  502. package/dist/services/jsonl-cursor.js.map +1 -1
  503. package/dist/services/local-cli-opener.d.ts.map +1 -1
  504. package/dist/services/local-cli-opener.js +32 -0
  505. package/dist/services/local-cli-opener.js.map +1 -1
  506. package/dist/services/message-listener-run-preview-store.d.ts +43 -0
  507. package/dist/services/message-listener-run-preview-store.d.ts.map +1 -0
  508. package/dist/services/message-listener-run-preview-store.js +152 -0
  509. package/dist/services/message-listener-run-preview-store.js.map +1 -0
  510. package/dist/services/message-listener-store.d.ts +26 -0
  511. package/dist/services/message-listener-store.d.ts.map +1 -0
  512. package/dist/services/message-listener-store.js +138 -0
  513. package/dist/services/message-listener-store.js.map +1 -0
  514. package/dist/services/message-listener.d.ts +112 -0
  515. package/dist/services/message-listener.d.ts.map +1 -0
  516. package/dist/services/message-listener.js +391 -0
  517. package/dist/services/message-listener.js.map +1 -0
  518. package/dist/services/overload-alert-migration.d.ts +15 -0
  519. package/dist/services/overload-alert-migration.d.ts.map +1 -0
  520. package/dist/services/overload-alert-migration.js +115 -0
  521. package/dist/services/overload-alert-migration.js.map +1 -0
  522. package/dist/services/send-policy.d.ts +38 -0
  523. package/dist/services/send-policy.d.ts.map +1 -1
  524. package/dist/services/send-policy.js +34 -0
  525. package/dist/services/send-policy.js.map +1 -1
  526. package/dist/services/session-store.d.ts +12 -1
  527. package/dist/services/session-store.d.ts.map +1 -1
  528. package/dist/services/session-store.js +44 -2
  529. package/dist/services/session-store.js.map +1 -1
  530. package/dist/services/skill-registry-store.d.ts.map +1 -1
  531. package/dist/services/skill-registry-store.js +87 -12
  532. package/dist/services/skill-registry-store.js.map +1 -1
  533. package/dist/services/substitute-mode-normalize.d.ts +3 -0
  534. package/dist/services/substitute-mode-normalize.d.ts.map +1 -1
  535. package/dist/services/substitute-mode-normalize.js +8 -0
  536. package/dist/services/substitute-mode-normalize.js.map +1 -1
  537. package/dist/services/substitute-mode-store.d.ts.map +1 -1
  538. package/dist/services/substitute-mode-store.js +8 -1
  539. package/dist/services/substitute-mode-store.js.map +1 -1
  540. package/dist/services/transcript-resolver.d.ts +6 -1
  541. package/dist/services/transcript-resolver.d.ts.map +1 -1
  542. package/dist/services/transcript-resolver.js +145 -29
  543. package/dist/services/transcript-resolver.js.map +1 -1
  544. package/dist/services/trigger-types.d.ts +16 -0
  545. package/dist/services/trigger-types.d.ts.map +1 -1
  546. package/dist/services/trigger-types.js +6 -0
  547. package/dist/services/trigger-types.js.map +1 -1
  548. package/dist/setup/bot-config-editor.js +2 -2
  549. package/dist/setup/bot-config-editor.js.map +1 -1
  550. package/dist/setup/ensure-zmx.d.ts +31 -0
  551. package/dist/setup/ensure-zmx.d.ts.map +1 -0
  552. package/dist/setup/ensure-zmx.js +161 -0
  553. package/dist/setup/ensure-zmx.js.map +1 -0
  554. package/dist/setup/index.d.ts +1 -1
  555. package/dist/setup/index.js +1 -1
  556. package/dist/setup/open-platform-automation.d.ts +9 -0
  557. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  558. package/dist/setup/open-platform-automation.js +15 -2
  559. package/dist/setup/open-platform-automation.js.map +1 -1
  560. package/dist/setup/setup-args.d.ts +1 -1
  561. package/dist/setup/setup-args.d.ts.map +1 -1
  562. package/dist/setup/setup-args.js +1 -1
  563. package/dist/skills/definitions.d.ts.map +1 -1
  564. package/dist/skills/definitions.js +32 -0
  565. package/dist/skills/definitions.js.map +1 -1
  566. package/dist/skills/injection-mode.d.ts +6 -2
  567. package/dist/skills/injection-mode.d.ts.map +1 -1
  568. package/dist/skills/injection-mode.js +10 -5
  569. package/dist/skills/injection-mode.js.map +1 -1
  570. package/dist/types.d.ts +79 -3
  571. package/dist/types.d.ts.map +1 -1
  572. package/dist/utils/child-env.d.ts +1 -1
  573. package/dist/utils/child-env.d.ts.map +1 -1
  574. package/dist/utils/child-env.js +4 -0
  575. package/dist/utils/child-env.js.map +1 -1
  576. package/dist/utils/effort-confirm-dialog.d.ts +40 -0
  577. package/dist/utils/effort-confirm-dialog.d.ts.map +1 -0
  578. package/dist/utils/effort-confirm-dialog.js +74 -0
  579. package/dist/utils/effort-confirm-dialog.js.map +1 -0
  580. package/dist/utils/pending-input-queue.d.ts +56 -0
  581. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  582. package/dist/utils/pending-input-queue.js +80 -0
  583. package/dist/utils/pending-input-queue.js.map +1 -1
  584. package/dist/utils/render-dimensions.d.ts +8 -0
  585. package/dist/utils/render-dimensions.d.ts.map +1 -1
  586. package/dist/utils/render-dimensions.js +10 -0
  587. package/dist/utils/render-dimensions.js.map +1 -1
  588. package/dist/utils/stuck-key-guard.d.ts +3 -2
  589. package/dist/utils/stuck-key-guard.d.ts.map +1 -1
  590. package/dist/utils/stuck-key-guard.js +3 -3
  591. package/dist/utils/stuck-key-guard.js.map +1 -1
  592. package/dist/utils/terminal-renderer.d.ts +6 -0
  593. package/dist/utils/terminal-renderer.d.ts.map +1 -1
  594. package/dist/utils/terminal-renderer.js +15 -0
  595. package/dist/utils/terminal-renderer.js.map +1 -1
  596. package/dist/utils/tui-input-delivery.d.ts +32 -0
  597. package/dist/utils/tui-input-delivery.d.ts.map +1 -0
  598. package/dist/utils/tui-input-delivery.js +53 -0
  599. package/dist/utils/tui-input-delivery.js.map +1 -0
  600. package/dist/utils/xml.d.ts +19 -0
  601. package/dist/utils/xml.d.ts.map +1 -0
  602. package/dist/utils/xml.js +26 -0
  603. package/dist/utils/xml.js.map +1 -0
  604. package/dist/worker.js +1852 -374
  605. package/dist/worker.js.map +1 -1
  606. package/dist/workflows/definition.d.ts +8 -8
  607. package/dist/workflows/events/payloads.d.ts +8 -8
  608. package/dist/workflows/events/schema.d.ts +160 -160
  609. package/dist/workflows/v3/session-relay-client.js +1 -1
  610. package/dist/workflows/v3/session-relay-client.js.map +1 -1
  611. package/dist/workflows/v3/worker-fence.d.ts.map +1 -1
  612. package/dist/workflows/v3/worker-fence.js +15 -10
  613. package/dist/workflows/v3/worker-fence.js.map +1 -1
  614. package/package.json +1 -1
  615. package/dist/dashboard-web/chunks/bot-defaults-page-UKA7K4JV.js +0 -10
  616. package/dist/dashboard-web/chunks/chunk-DFLNXQNT.js +0 -1
  617. package/dist/dashboard-web/chunks/connectors-page-A77YAB5Y.js +0 -1
  618. package/dist/dashboard-web/chunks/groups-page-RUZNVXQB.js +0 -8
  619. package/dist/dashboard-web/chunks/insights-page-RF7U7RTA.js +0 -22
  620. package/dist/dashboard-web/chunks/roles-page-BUMKD7Y4.js +0 -1
  621. package/dist/dashboard-web/chunks/sessions-page-6HLSEAB7.js +0 -2
  622. package/dist/dashboard-web/chunks/settings-page-MJDZHQ4X.js +0 -2
@@ -8,6 +8,14 @@
8
8
  * disk and threads them through here.
9
9
  *
10
10
  * Rules:
11
+ * - Non-adopt + no-reply sentinel terminator: suppress the whole turn.
12
+ * Botmux-aware models use this explicit protocol when a turn genuinely
13
+ * needs no chat response. The signal is the LAST non-empty line of the
14
+ * final being exactly `BOTMUX_NO_REPLY` — models almost always explain
15
+ * the silence first and then append the token on its own line, so a
16
+ * full-string exact match leaked the literal token into Lark. A token
17
+ * that only appears inline (mid-sentence, or with prose after it) is
18
+ * still a normal answer and is NOT guessed away. See isBridgeNoReplyFinal.
11
19
  * - Adopt mode never suppresses: in /adopt the model in the adopted
12
20
  * session is unaware of botmux, so transcript drain is the ONLY
13
21
  * channel from model to Lark. There's no `botmux send` to compete
@@ -33,11 +41,65 @@
33
41
  import { normaliseForFingerprint } from './bridge-turn-queue.js';
34
42
  const MATERIAL_FINAL_LENGTH_RATIO = 2;
35
43
  const MATERIAL_FINAL_MIN_EXTRA_CHARS = 120;
44
+ export const BRIDGE_NO_REPLY_SENTINEL = 'BOTMUX_NO_REPLY';
45
+ export function isBridgeNoReplyFinal(finalText) {
46
+ if (finalText === undefined)
47
+ return false;
48
+ // Suppress the whole turn when the model's final ENDS WITH a standalone
49
+ // no-reply sentinel line. We look at the LAST non-empty line only:
50
+ // - pure `BOTMUX_NO_REPLY` → suppress
51
+ // - `<prose>\n\nBOTMUX_NO_REPLY` → suppress the whole turn
52
+ // - a final whose last non-empty line is prose → NOT a no-reply signal
53
+ // (the token inline in a sentence, or followed by more prose, still posts)
54
+ // Full-string exact match was too brittle: botmux-aware models almost always
55
+ // explain the silence first ("...no reply needed.") and then append the token
56
+ // on its own line, which exact match let leak the literal token into Lark.
57
+ // Trade-off (accepted): a genuine answer that happens to end with a bare
58
+ // sentinel line is dropped WHOLE — the product wants a fully silent no-reply
59
+ // turn over the safer strip-and-forward. The last-non-empty-line rule (not a
60
+ // substring / endsWith test) keeps that risk to finals the model deliberately
61
+ // terminated with the sentinel.
62
+ const lines = finalText.split('\n');
63
+ for (let i = lines.length - 1; i >= 0; i--) {
64
+ const line = lines[i].trim();
65
+ if (line.length === 0)
66
+ continue;
67
+ return line === BRIDGE_NO_REPLY_SENTINEL;
68
+ }
69
+ return false;
70
+ }
71
+ const BRIDGE_SEND_PREVIEW_MAX_CHARS = 4_000;
72
+ /** Bounded, newline-preserving copy of a `botmux send` body for dashboard
73
+ * previews. Unlike the fingerprint normaliser (which collapses ALL whitespace
74
+ * incl. newlines into single spaces — right for dedup, wrong for display), this
75
+ * keeps line breaks so the dashboard can render the reply's Markdown structure
76
+ * (paragraphs / lists / code blocks). Horizontal runs of spaces/tabs within a
77
+ * line are collapsed and trailing spaces trimmed to keep the stored copy tidy;
78
+ * blank-line runs are capped at one to bound size without flattening structure. */
79
+ export function buildBridgeSendPreviewText(content) {
80
+ const tidy = String(content ?? '')
81
+ .replace(/\r\n?/g, '\n')
82
+ .replace(/[^\S\n]+\n/g, '\n')
83
+ .replace(/\n{3,}/g, '\n\n')
84
+ .replace(/^\n+/, '')
85
+ .replace(/\s+$/, '');
86
+ if (!tidy)
87
+ return undefined;
88
+ return tidy.length > BRIDGE_SEND_PREVIEW_MAX_CHARS
89
+ ? `${tidy.slice(0, BRIDGE_SEND_PREVIEW_MAX_CHARS - 1)}…`
90
+ : tidy;
91
+ }
36
92
  export function buildBridgeSendMarkerContent(content) {
37
93
  const normalized = normaliseForFingerprint(content);
38
94
  if (!normalized)
39
95
  return undefined;
40
- return { contentLength: normalized.length };
96
+ return {
97
+ // Length stays fingerprint-normalized: the fallback gate compares it against
98
+ // normalise(finalText).length, so it must not count preview-only newlines.
99
+ contentLength: normalized.length,
100
+ // Preview keeps newlines — derive it from the raw body, NOT `normalized`.
101
+ previewText: buildBridgeSendPreviewText(content),
102
+ };
41
103
  }
42
104
  function hasStructuredContentMarker(marker) {
43
105
  return typeof marker.contentLength === 'number';
@@ -63,6 +125,8 @@ function markerSetCoversFinal(markers, finalText) {
63
125
  export function shouldSuppressBridgeEmit(turn, nextBoundaryMs, markers, adoptMode) {
64
126
  if (adoptMode)
65
127
  return false;
128
+ if (isBridgeNoReplyFinal(turn.finalText))
129
+ return true;
66
130
  if (turn.isLocal)
67
131
  return true;
68
132
  if (turn.markTimeMs === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-fallback-gate.js","sourceRoot":"","sources":["../../src/services/bridge-fallback-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-fallback-gate.js","sourceRoot":"","sources":["../../src/services/bridge-fallback-gate.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
- import { type ChatReplyMode } from '../bot-registry.js';
1
+ import { type ChatReplyMode, type UsageDisplayMode } from '../bot-registry.js';
2
2
  export interface BotCardPrefs {
3
+ /** Where to show native Context / Token usage:
4
+ * 'streaming' (default) = live streaming card body, 'footer' = ordinary
5
+ * reply-card footer, 'off' = nowhere. */
6
+ usageDisplay: UsageDisplayMode;
3
7
  disableStreamingCard: boolean;
4
8
  silentTurnReactions: boolean;
5
9
  /** Experimental Codex App presentation mode. Default false preserves the
@@ -29,7 +33,8 @@ export interface BotCardPrefs {
29
33
  /** 文档订阅新订阅默认评论触发范围(default 'mention-only')。 */
30
34
  docSubscribeDefaultMode: 'mention-only' | 'all';
31
35
  }
32
- /** Current card prefs for a bot (booleans default false, prompt defaults '' when unset). */
36
+ /** Current card prefs for a bot (`usageDisplay` defaults to 'streaming';
37
+ * `botToBotSameDir` defaults true; other booleans default false). */
33
38
  export declare function getBotCardPrefs(larkAppId: string): BotCardPrefs;
34
39
  /**
35
40
  * Persist a partial card-prefs change. Only the keys present in `patch` are
@@ -1 +1 @@
1
- {"version":3,"file":"card-prefs-store.d.ts","sourceRoot":"","sources":["../../src/services/card-prefs-store.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGhE,MAAM,WAAW,YAAY;IAC3B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;wDAEoD;IACpD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0BAA0B,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB;;8EAE0E;IAC1E,aAAa,EAAE,OAAO,CAAC;IACvB;;kFAE8E;IAC9E,eAAe,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,oBAAoB,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,0BAA0B,EAAE,MAAM,CAAC;IACnC,kEAAkE;IAClE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2FAA2F;IAC3F,qBAAqB,EAAE,aAAa,CAAC;IACrC,iFAAiF;IACjF,uBAAuB,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAClE,+CAA+C;IAC/C,uBAAuB,EAAE,cAAc,GAAG,KAAK,CAAC;CACjD;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAoC/D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAC3B,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA4I5E"}
1
+ {"version":3,"file":"card-prefs-store.d.ts","sourceRoot":"","sources":["../../src/services/card-prefs-store.ts"],"names":[],"mappings":"AAyBA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,YAAY;IAC3B;;8CAE0C;IAC1C,YAAY,EAAE,gBAAgB,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;wDAEoD;IACpD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0BAA0B,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB;;8EAE0E;IAC1E,aAAa,EAAE,OAAO,CAAC;IACvB;;kFAE8E;IAC9E,eAAe,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,oBAAoB,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,0BAA0B,EAAE,MAAM,CAAC;IACnC,kEAAkE;IAClE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2FAA2F;IAC3F,qBAAqB,EAAE,aAAa,CAAC;IACrC,iFAAiF;IACjF,uBAAuB,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAClE,+CAA+C;IAC/C,uBAAuB,EAAE,cAAc,GAAG,KAAK,CAAC;CACjD;AAED;qEACqE;AACrE,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAsC/D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAC3B,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA4J5E"}
@@ -4,7 +4,11 @@
4
4
  * in-memory registry sync so the daemon's own card builders pick up the change
5
5
  * without a restart.
6
6
  *
7
- * Three independent toggles:
7
+ * Per-bot card and related session preferences:
8
+ * • usageDisplay — where to show native Context / Token usage:
9
+ * 'streaming' (default) = live streaming card
10
+ * body, 'footer' = ordinary reply-card footer,
11
+ * 'off' = nowhere
8
12
  * • disableStreamingCard — suppress the live streaming session card
9
13
  * • silentTurnReactions — in card-off sessions, also drop the ✋→✅
10
14
  * lightweight status reactions on the trigger
@@ -19,13 +23,15 @@
19
23
  * (see chat-reply-mode-store). Default 'chat'.
20
24
  */
21
25
  import { rmwBotEntry } from './config-store.js';
22
- import { getBot } from '../bot-registry.js';
26
+ import { getBot, normalizeUsageDisplay, DEFAULT_USAGE_DISPLAY, } from '../bot-registry.js';
23
27
  import { logger } from '../utils/logger.js';
24
- /** Current card prefs for a bot (booleans default false, prompt defaults '' when unset). */
28
+ /** Current card prefs for a bot (`usageDisplay` defaults to 'streaming';
29
+ * `botToBotSameDir` defaults true; other booleans default false). */
25
30
  export function getBotCardPrefs(larkAppId) {
26
31
  try {
27
32
  const c = getBot(larkAppId).config;
28
33
  return {
34
+ usageDisplay: normalizeUsageDisplay(c),
29
35
  disableStreamingCard: c.disableStreamingCard === true,
30
36
  silentTurnReactions: c.silentTurnReactions === true,
31
37
  codexAppCleanInput: c.codexAppCleanInput === true,
@@ -44,6 +50,7 @@ export function getBotCardPrefs(larkAppId) {
44
50
  }
45
51
  catch {
46
52
  return {
53
+ usageDisplay: DEFAULT_USAGE_DISPLAY,
47
54
  disableStreamingCard: false,
48
55
  silentTurnReactions: false,
49
56
  codexAppCleanInput: false,
@@ -130,7 +137,18 @@ export async function updateBotCardPrefs(larkAppId, patch) {
130
137
  else
131
138
  delete entry[key];
132
139
  };
140
+ // 用量显示位置:只存非默认模式;'streaming'(默认)删键保持 bots.json 干净
141
+ // (absent === 'streaming')。
142
+ const applyUsageDisplay = (entry, key, val) => {
143
+ if (val === undefined)
144
+ return;
145
+ if (val === 'footer' || val === 'off')
146
+ entry[key] = val;
147
+ else
148
+ delete entry[key];
149
+ };
133
150
  const r = await rmwBotEntry(larkAppId, (entry) => {
151
+ applyUsageDisplay(entry, 'usageDisplay', patch.usageDisplay);
134
152
  apply(entry, 'disableStreamingCard', patch.disableStreamingCard);
135
153
  apply(entry, 'silentTurnReactions', patch.silentTurnReactions);
136
154
  apply(entry, 'codexAppCleanInput', patch.codexAppCleanInput);
@@ -147,6 +165,7 @@ export async function updateBotCardPrefs(larkAppId, patch) {
147
165
  return {
148
166
  write: true,
149
167
  result: {
168
+ usageDisplay: normalizeUsageDisplay(entry),
150
169
  disableStreamingCard: entry.disableStreamingCard === true,
151
170
  silentTurnReactions: entry.silentTurnReactions === true,
152
171
  codexAppCleanInput: entry.codexAppCleanInput === true,
@@ -170,6 +189,12 @@ export async function updateBotCardPrefs(larkAppId, patch) {
170
189
  if (!r.ok)
171
190
  return { ok: false, reason: r.reason };
172
191
  // Sync in-memory config so live card builders / routing react without a restart.
192
+ if (patch.usageDisplay !== undefined) {
193
+ // Store only a non-default mode; 'streaming' (default) clears the key.
194
+ bot.config.usageDisplay = (patch.usageDisplay && patch.usageDisplay !== DEFAULT_USAGE_DISPLAY)
195
+ ? patch.usageDisplay
196
+ : undefined;
197
+ }
173
198
  if (patch.disableStreamingCard !== undefined) {
174
199
  bot.config.disableStreamingCard = patch.disableStreamingCard || undefined;
175
200
  }
@@ -214,7 +239,8 @@ export async function updateBotCardPrefs(larkAppId, patch) {
214
239
  if (patch.docSubscribeDefaultMode !== undefined) {
215
240
  bot.config.docSubscribeDefaultMode = patch.docSubscribeDefaultMode === 'all' ? 'all' : undefined;
216
241
  }
217
- logger.info(`[card-prefs:${larkAppId}] disableStreamingCard=${r.result.disableStreamingCard} ` +
242
+ logger.info(`[card-prefs:${larkAppId}] usageDisplay=${r.result.usageDisplay} ` +
243
+ `disableStreamingCard=${r.result.disableStreamingCard} ` +
218
244
  `silentTurnReactions=${r.result.silentTurnReactions} ` +
219
245
  `codexAppCleanInput=${r.result.codexAppCleanInput} ` +
220
246
  `writableTerminalLinkInCard=${r.result.writableTerminalLinkInCard} privateCard=${r.result.privateCard} ` +
@@ -1 +1 @@
1
- {"version":3,"file":"card-prefs-store.js","sourceRoot":"","sources":["../../src/services/card-prefs-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"card-prefs-store.js","sourceRoot":"","sources":["../../src/services/card-prefs-store.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,15 @@ export interface CodexAppFinalMarker {
17
17
  replyTurnId?: string;
18
18
  /** Pre-steer Codex App and Mira markers used one id for both domains. */
19
19
  legacyTurnId?: string;
20
+ /** Per-turn token usage (four mutually-exclusive buckets), when the turn's
21
+ * thread/tokenUsage/updated notifications yielded a coherent total. Omitted
22
+ * when no usage was observed / a protocol anomaly was detected. */
23
+ usage?: {
24
+ inputTokens: number;
25
+ outputTokens: number;
26
+ cacheReadTokens: number;
27
+ cacheCreateTokens: number;
28
+ };
20
29
  }
21
30
  interface CodexAppLifecycleBase {
22
31
  atMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"codex-app-runner-protocol.d.ts","sourceRoot":"","sources":["../../src/services/codex-app-runner-protocol.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,0BAA0B,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,yBAAyB,GACjC,oBAAoB,GACpB,iBAAiB,GACjB,WAAW,GACX,KAAK,GACL,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAC9B,CAAC,qBAAqB,GAAG;IACzB,IAAI,EAAE,cAAc,GAAG,oBAAoB,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,GACA,CAAC,qBAAqB,GAAG;IACzB,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,GACA,CAAC,qBAAqB,GAAG;IACzB,IAAI,EAAE,yBAAyB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC,GACA,CAAC,qBAAqB,GAAG;IACzB,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC,GACA,CAAC,qBAAqB,GAAG;IACzB,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,YAAY,GAAG,YAAY,CAAC;IACvC,QAAQ,EAAE,WAAW,GAAG,KAAK,GAAG,UAAU,CAAC;CAC5C,CAAC,GACA,CAAC,qBAAqB,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,0BAA0B,CAAC;IACtC,QAAQ,EAAE,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;CACxD,CAAC,CAAC;AAEL,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAwBD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAkCvF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CAU/F;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CA2FpG;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,mBAAmB,EAAE,MAAM,GAC1B,iBAAiB,CASnB"}
1
+ {"version":3,"file":"codex-app-runner-protocol.d.ts","sourceRoot":"","sources":["../../src/services/codex-app-runner-protocol.ts"],"names":[],"mappings":"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"}
@@ -65,8 +65,25 @@ export function normalizeAppRunnerFinalMarker(payload) {
65
65
  appTurnId: optionalNonEmptyString(payload.appTurnId),
66
66
  replyTurnId: optionalNonEmptyString(payload.replyTurnId),
67
67
  legacyTurnId: optionalNonEmptyString(payload.turnId),
68
+ usage: normalizeFinalUsage(payload.usage),
68
69
  };
69
70
  }
71
+ /** Accept the four-bucket usage only when every field is a non-negative integer
72
+ * (a token count), else drop it (daemon omits usage rather than persisting a
73
+ * negative/fractional/partial value that a compromised or buggy runner sent). */
74
+ function normalizeFinalUsage(raw) {
75
+ if (!isRecord(raw))
76
+ return undefined;
77
+ const keys = ['inputTokens', 'outputTokens', 'cacheReadTokens', 'cacheCreateTokens'];
78
+ const out = {};
79
+ for (const k of keys) {
80
+ const v = raw[k];
81
+ if (typeof v !== 'number' || !Number.isInteger(v) || v < 0)
82
+ return undefined;
83
+ out[k] = v;
84
+ }
85
+ return out;
86
+ }
70
87
  export function normalizeCodexAppLifecycleEvent(payload) {
71
88
  if (!isRecord(payload) || typeof payload.kind !== 'string')
72
89
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"codex-app-runner-protocol.js","sourceRoot":"","sources":["../../src/services/codex-app-runner-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-app-runner-protocol.js","sourceRoot":"","sources":["../../src/services/codex-app-runner-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Per-turn token-usage accumulator for the codex app-server protocol.
3
+ *
4
+ * codex emits token usage via `thread/tokenUsage/updated` notifications, NOT on
5
+ * `turn/completed` (whose Turn object carries no usage). A single codex turn can
6
+ * produce MANY upstream completions (tool-call loops), so the notification's
7
+ * `tokenUsage.last` is only the LAST completion's usage — never the whole turn.
8
+ * The authoritative per-turn figure is a delta of the cumulative `total`:
9
+ *
10
+ * - on the first notification for a turn, derive baseline = total - last
11
+ * (per field), so a resumed session needs no prior session-total knowledge;
12
+ * - the turn's usage so far = latestTotal - baseline (per field);
13
+ * - later notifications only advance latestTotal (total-delta is idempotent
14
+ * against duplicate notifications — never sum `last`, never overwrite).
15
+ *
16
+ * Fail-closed: if `total` regresses or any derived field goes negative, the
17
+ * usage is dropped (returns null) and the caller logs a protocol warning rather
18
+ * than reporting corrupt numbers.
19
+ *
20
+ * Ref: codex protocol TokenUsageInfo::append_last_usage (total += last; last =
21
+ * this completion) and app-server ThreadTokenUsageUpdatedNotification /
22
+ * TokenUsageBreakdown (0.145 generated types).
23
+ */
24
+ /** codex TokenUsageBreakdown (0.145). All numbers; cumulative on `total`. */
25
+ export interface CodexTokenBreakdown {
26
+ totalTokens: number;
27
+ inputTokens: number;
28
+ cachedInputTokens: number;
29
+ cacheWriteInputTokens: number;
30
+ outputTokens: number;
31
+ reasoningOutputTokens: number;
32
+ }
33
+ /** riff-facing four-bucket usage (mutually exclusive input buckets). */
34
+ export interface TurnTokenUsage {
35
+ inputTokens: number;
36
+ outputTokens: number;
37
+ cacheReadTokens: number;
38
+ cacheCreateTokens: number;
39
+ }
40
+ /** Validate a raw notification payload's breakdown into a typed one, or null.
41
+ * 0.145 fields are REQUIRED except `cacheWriteInputTokens` (added later, so a
42
+ * compat default of 0 is honest for it only). Any other missing/non-numeric
43
+ * field returns null — defaulting them to 0 would misreport a protocol gap as a
44
+ * real 0.
45
+ *
46
+ * NOTE: when `total` and `last` are consumed together (the accumulator), prefer
47
+ * `parseTokenUsagePair` — it additionally enforces that the back-compat
48
+ * cacheWrite default is only honored when BOTH sides omit the field. A lone
49
+ * breakdown parsed here cannot see its counterpart, so a `cacheWrite=0` default
50
+ * here is provisional until the pair check confirms symmetry. */
51
+ export declare function parseCodexTokenBreakdown(raw: unknown): CodexTokenBreakdown | null;
52
+ /** Parse the `{ total, last }` pair from one notification, enforcing the
53
+ * cross-breakdown invariant the single parser can't see: the back-compat
54
+ * `cacheWriteInputTokens → 0` default is honest ONLY when BOTH breakdowns omit
55
+ * the field (a genuinely old codex). If exactly one side carries it, the two
56
+ * disagree (version skew / corruption): silently defaulting the missing side to
57
+ * 0 would misattribute real cache-create tokens into fresh input AND poison the
58
+ * baseline for later completions with a plausible-looking undercount. Return
59
+ * null so the caller poisons the turn instead of emitting corrupt buckets. */
60
+ export declare function parseTokenUsagePair(rawTotal: unknown, rawLast: unknown): {
61
+ total: CodexTokenBreakdown;
62
+ last: CodexTokenBreakdown;
63
+ } | null;
64
+ /** Map a cumulative-delta codex breakdown to riff's four mutually-exclusive
65
+ * buckets. codex `inputTokens` INCLUDES cached-read + cache-write, so the
66
+ * fresh-input bucket subtracts both. Returns null if the split is incoherent
67
+ * (buckets exceed input) — caller drops usage + warns rather than emit garbage. */
68
+ export declare function toFourBucket(d: CodexTokenBreakdown): TurnTokenUsage | null;
69
+ /** Accumulates per-turn usage from `thread/tokenUsage/updated` notifications for
70
+ * ONE appTurnId, using the total-delta algorithm. */
71
+ export declare class TurnTokenUsageAccumulator {
72
+ private baseline;
73
+ private latestTotal;
74
+ private protocolWarning;
75
+ /** Feed a notification's `tokenUsage` = { total, last, ... }. `total` is
76
+ * cumulative; `last` is the most recent completion's usage. */
77
+ update(total: CodexTokenBreakdown, last: CodexTokenBreakdown): void;
78
+ /** Mark this turn's usage as unusable (sticky). Called when a notification for
79
+ * the turn arrives but its breakdown is malformed: skipping it silently would
80
+ * let a LATER valid notification rebuild a fresh baseline and report only the
81
+ * last completion — a plausible-looking undercount. Poisoning makes result()
82
+ * omit + warn instead. */
83
+ poison(reason: string): void;
84
+ /** The turn's usage so far as four buckets, or null if no usage seen / a
85
+ * protocol anomaly was detected / the bucket split is incoherent. When usage
86
+ * is dropped for an incoherent delta or bucket split (as opposed to simply
87
+ * never having seen a notification), a warning is recorded so the caller can
88
+ * surface the omission rather than dropping it silently. */
89
+ result(): TurnTokenUsage | null;
90
+ /** Non-null when the accumulator gave up on usage for a protocol reason. */
91
+ get warning(): string | undefined;
92
+ }
93
+ //# sourceMappingURL=codex-app-token-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-app-token-usage.d.ts","sourceRoot":"","sources":["../../src/services/codex-app-token-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAYD;;;;;;;;;;kEAUkE;AAClE,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAgBjF;AAUD;;;;;;;+EAO+E;AAC/E,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,GACf;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAAG,IAAI,CAQlE;AAED;;;oFAGoF;AACpF,wBAAgB,YAAY,CAAC,CAAC,EAAE,mBAAmB,GAAG,cAAc,GAAG,IAAI,CAO1E;AAED;sDACsD;AACtD,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,eAAe,CAAqB;IAE5C;oEACgE;IAChE,MAAM,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAuBnE;;;;+BAI2B;IAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B;;;;iEAI6D;IAC7D,MAAM,IAAI,cAAc,GAAG,IAAI;IAe/B,4EAA4E;IAC5E,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAAiC;CACnE"}