@opengeni/react 6.8.0 → 6.9.1-canary.41937124785001

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 (719) hide show
  1. package/dist/app/app-state.js +8 -8
  2. package/dist/app/components/Composer.js +18 -18
  3. package/dist/app/components/agent/agent-capability-picker.js +6 -6
  4. package/dist/app/components/artifacts/artifact-library.js +6 -6
  5. package/dist/app/components/artifacts/artifact-viewer.js +18 -18
  6. package/dist/app/components/artifacts/chat-interactive-block.js +11 -11
  7. package/dist/app/components/artifacts/file-reach-dialog.js +6 -6
  8. package/dist/app/components/artifacts/inline-chat-image.js +19 -19
  9. package/dist/app/components/artifacts/retained-file-preview.js +20 -20
  10. package/dist/app/components/artifacts/retained-text-preview.js +3 -3
  11. package/dist/app/components/artifacts/site-audience.js +3 -3
  12. package/dist/app/components/artifacts/site-conversations.js +9 -9
  13. package/dist/app/components/artifacts/site-data.js +10 -10
  14. package/dist/app/components/artifacts/site-publishing-page.js +25 -25
  15. package/dist/app/components/artifacts/site-publishing.js +22 -22
  16. package/dist/app/components/artifacts/site-settings.js +24 -24
  17. package/dist/app/components/artifacts/site-version-menu.js +3 -3
  18. package/dist/app/components/billing-class-mark.js +3 -3
  19. package/dist/app/components/bots/bot-launch-strip.js +20 -20
  20. package/dist/app/components/bots/bot-template-dialog.js +26 -26
  21. package/dist/app/components/bots/bot-template-shortcuts.js +20 -20
  22. package/dist/app/components/bots/bot-templates-page.js +30 -30
  23. package/dist/app/components/capabilities/capability-detail-sheet.js +6 -6
  24. package/dist/app/components/capabilities/capability-logo-source.js +13 -13
  25. package/dist/app/components/capabilities/connector-tool-permissions.js +4 -4
  26. package/dist/app/components/capabilities/native-connect-setup.js +13 -13
  27. package/dist/app/components/capabilities/own-logins-shared-heads-up.js +3 -3
  28. package/dist/app/components/capabilities/prepared-mcp-setup-card.js +15 -15
  29. package/dist/app/components/capabilities/session-capability-card.js +52 -52
  30. package/dist/app/components/capabilities/session-chrome-card.js +20 -20
  31. package/dist/app/components/capabilities/session-custom-mcp-card.js +16 -16
  32. package/dist/app/components/capabilities/session-github-card.js +16 -16
  33. package/dist/app/components/capabilities/session-machine-card.js +19 -19
  34. package/dist/app/components/capabilities/session-personal-github-card.js +14 -14
  35. package/dist/app/components/capabilities/session-plugin-card.js +8 -8
  36. package/dist/app/components/command-menu/chat-status.js +15 -15
  37. package/dist/app/components/command-menu/chat-switcher.js +35 -35
  38. package/dist/app/components/command-menu/command-menu.js +39 -39
  39. package/dist/app/components/command-menu/shortcut-sheet.js +8 -8
  40. package/dist/app/components/composer-capabilities-menu-body.js +4 -4
  41. package/dist/app/components/composer-mobile-plus-panel.js +8 -8
  42. package/dist/app/components/composer-mobile-plus.js +1 -1
  43. package/dist/app/components/desktop/app-shots.js +6 -6
  44. package/dist/app/components/desktop/computer-use.js +2 -2
  45. package/dist/app/components/desktop/this-computer.js +5 -5
  46. package/dist/app/components/feedback.js +3 -3
  47. package/dist/app/components/github-app-connect-launcher.js +1 -1
  48. package/dist/app/components/machines/connect-machine-dialog.js +11 -11
  49. package/dist/app/components/markdown.js +6 -6
  50. package/dist/app/components/models/models-ui.js +5 -5
  51. package/dist/app/components/models/subscription-usage.d.ts +34 -0
  52. package/dist/app/components/models/subscription-usage.js +24 -0
  53. package/dist/app/components/my-things.js +4 -4
  54. package/dist/app/components/own-where-it-works.js +3 -3
  55. package/dist/app/components/personal-resource-attachment-surface.js +4 -4
  56. package/dist/app/components/pickers.js +5 -5
  57. package/dist/app/components/rail/channel-create-dialog.js +3 -3
  58. package/dist/app/components/rail/project-glyph.js +20 -20
  59. package/dist/app/components/rail/project-profile.js +27 -27
  60. package/dist/app/components/rail/rail-context.js +1 -1
  61. package/dist/app/components/rail/rail-sections.js +55 -55
  62. package/dist/app/components/rail/session-header.js +47 -47
  63. package/dist/app/components/rail/session-list.js +53 -53
  64. package/dist/app/components/rail/session-row-content.js +4 -4
  65. package/dist/app/components/rail/session-row-hover-details.js +14 -14
  66. package/dist/app/components/rail/session-shell.js +76 -73
  67. package/dist/app/components/rail/site-session-group-heading.js +8 -8
  68. package/dist/app/components/session/agent-configuration-panel.js +12 -12
  69. package/dist/app/components/session/banners.js +8 -8
  70. package/dist/app/components/session/console-new-conversation.js +39 -39
  71. package/dist/app/components/session/descendant-requests.js +36 -36
  72. package/dist/app/components/session/editable-artifacts-workspace.js +16 -16
  73. package/dist/app/components/session/failed-session-banner.js +6 -6
  74. package/dist/app/components/session/failure-recovery-boundary.js +3 -3
  75. package/dist/app/components/session/human-input-delegation-record.js +2 -2
  76. package/dist/app/components/session/human-input.js +33 -33
  77. package/dist/app/components/session/inspector.js +43 -43
  78. package/dist/app/components/session/message-actions.js +3 -3
  79. package/dist/app/components/session/message-resource-attachments.js +10 -10
  80. package/dist/app/components/session/model-recovery-notice.js +3 -3
  81. package/dist/app/components/session/new-session-settings-menu.js +6 -6
  82. package/dist/app/components/session/new-session-setup-strip.js +21 -21
  83. package/dist/app/components/session/sandbox-recovery-actions.js +3 -3
  84. package/dist/app/components/session/sandbox-switcher.js +7 -7
  85. package/dist/app/components/session/sandbox-workspace.js +48 -48
  86. package/dist/app/components/session/search-markdown-highlight.js +7 -7
  87. package/dist/app/components/session/search-results-view.js +8 -8
  88. package/dist/app/components/session/session-admin-access.js +4 -4
  89. package/dist/app/components/session/session-admission-notice.js +4 -4
  90. package/dist/app/components/session/session-avatar-picker.js +21 -21
  91. package/dist/app/components/session/session-avatar.js +19 -19
  92. package/dist/app/components/session/session-machine-access-notice.js +4 -4
  93. package/dist/app/components/session/session-profile-dialog.js +25 -25
  94. package/dist/app/components/session/session-profile-editor.js +26 -26
  95. package/dist/app/components/session/session-retention.js +3 -3
  96. package/dist/app/components/session/session-search-dialog.js +8 -8
  97. package/dist/app/components/session/session-tenancy-control.js +2 -2
  98. package/dist/app/components/session/session-usage-limit-section.js +4 -4
  99. package/dist/app/components/session/share-chat-dialog.js +5 -5
  100. package/dist/app/components/session/subagents.js +8 -8
  101. package/dist/app/components/session/subscription-account-indicator.js +12 -7
  102. package/dist/app/components/session/subscription-account-menu.d.ts +15 -15
  103. package/dist/app/components/session/subscription-account-menu.js +6 -1
  104. package/dist/app/components/session/subscription-account.d.ts +16 -9
  105. package/dist/app/components/settings/row-select.js +4 -4
  106. package/dist/app/components/transcription-settings.js +6 -6
  107. package/dist/app/components/ui/destructive-confirm.js +5 -5
  108. package/dist/app/components/usage/usage-entry.js +3 -3
  109. package/dist/app/components/window-bar.js +9 -9
  110. package/dist/app/components/workspace-composer-plus.js +16 -16
  111. package/dist/app/components/workspace-reach.js +4 -4
  112. package/dist/app/embed/session-app.js +160 -157
  113. package/dist/app/lib/actions/actions-provider.js +8 -8
  114. package/dist/app/lib/agent-capabilities.d.ts +12 -2
  115. package/dist/app/lib/agent-capabilities.js +3 -3
  116. package/dist/app/lib/codex-usage-query.js +2 -2
  117. package/dist/app/lib/composer-connectors.js +14 -14
  118. package/dist/app/lib/console-site.js +2 -2
  119. package/dist/app/lib/console-text.js +2 -2
  120. package/dist/app/lib/events.js +12 -12
  121. package/dist/app/lib/failed-session-copy.js +3 -3
  122. package/dist/app/lib/model-access-onboarding.js +3 -3
  123. package/dist/app/lib/move-chat-to-machine.js +3 -3
  124. package/dist/app/lib/session-branch-cache.js +8 -8
  125. package/dist/app/lib/session-create.js +4 -4
  126. package/dist/app/lib/session-group-pagination.js +8 -8
  127. package/dist/app/lib/session-hover-facts.js +13 -13
  128. package/dist/app/lib/session-model.js +2 -2
  129. package/dist/app/lib/session-pins.js +1 -1
  130. package/dist/app/lib/session-rail.js +5 -5
  131. package/dist/app/lib/session-rename.js +3 -3
  132. package/dist/app/lib/sessions-group.d.ts +5 -3
  133. package/dist/app/lib/sessions-group.js +7 -7
  134. package/dist/app/lib/site-tool-consent-dialog.js +7 -7
  135. package/dist/app/lib/site-tool-consent.js +1 -1
  136. package/dist/app/lib/subscription-accounts.d.ts +79 -0
  137. package/dist/app/lib/subscription-accounts.js +18 -0
  138. package/dist/app/lib/turn-failure-analytics.js +4 -4
  139. package/dist/app/lib/use-follow-up-repositories.js +3 -3
  140. package/dist/app/lib/use-workspace-machines.js +4 -4
  141. package/dist/app/lib/use-workspace-model-catalog.js +3 -3
  142. package/dist/app/lib/use-workspace-rigs.js +2 -2
  143. package/dist/app/lib/workspace-navigation-preference.js +4 -4
  144. package/dist/app/lib/workspace-scope-context.js +3 -3
  145. package/dist/app/routes/artifacts.js +48 -48
  146. package/dist/app/routes/retained-artifact.js +32 -32
  147. package/dist/app/routes/session.js +96 -96
  148. package/dist/app/routes/sessions-index-hydration.js +5 -5
  149. package/dist/app/routes/sessions-index.js +76 -76
  150. package/dist/app/routes/site-view.js +55 -55
  151. package/dist/artifacts-document.js +4 -4
  152. package/dist/artifacts-presentation.js +4 -4
  153. package/dist/artifacts-spreadsheet.js +4 -4
  154. package/dist/artifacts.js +10 -10
  155. package/dist/automations.js +10 -10
  156. package/dist/{browser-viewer-ZHQDVHZ2.js → browser-viewer-F4FL7JKB.js} +4 -4
  157. package/dist/{chat-interactive-block-VSDD6X3M.js → chat-interactive-block-4U5JWRSY.js} +5 -5
  158. package/dist/{chunk-4K64EKM7.js → chunk-22YIIM3X.js} +4 -4
  159. package/dist/{chunk-3NNAC43A.js → chunk-2N7ACQ7M.js} +2 -2
  160. package/dist/{chunk-7Z76QP64.js → chunk-2PY5XD3F.js} +35 -5
  161. package/dist/chunk-2PY5XD3F.js.map +1 -0
  162. package/dist/{chunk-WDASYY4S.js → chunk-2TEYUDJD.js} +8 -8
  163. package/dist/{chunk-OTW25A6I.js → chunk-37JJQNZB.js} +3 -3
  164. package/dist/{chunk-VCJQQYRE.js → chunk-3DWQPURZ.js} +4 -4
  165. package/dist/{chunk-GTRAH4FG.js → chunk-3GWC3FU3.js} +2 -2
  166. package/dist/{chunk-AB5IW227.js → chunk-3ICY6LP3.js} +3 -3
  167. package/dist/{chunk-WIFDNUKD.js → chunk-3OCU5RX5.js} +3 -3
  168. package/dist/{chunk-UBRQ3PQD.js → chunk-3SPDJLOR.js} +2 -2
  169. package/dist/{chunk-IZXYFWA4.js → chunk-3WVLR7UA.js} +12 -12
  170. package/dist/{chunk-DEHLWZSI.js → chunk-3XMB3L57.js} +4 -4
  171. package/dist/{chunk-AJBDAVX3.js → chunk-4IUOBO2H.js} +7 -7
  172. package/dist/{chunk-NFCS5WYC.js → chunk-4KQ3A3EO.js} +3 -3
  173. package/dist/{chunk-LIJNVIT3.js → chunk-4L5B5AZT.js} +3 -3
  174. package/dist/{chunk-EDDKPIIV.js → chunk-4NB3TPNE.js} +2 -2
  175. package/dist/{chunk-PSM3CU7N.js → chunk-4TDKXHCD.js} +46 -39
  176. package/dist/chunk-4TDKXHCD.js.map +1 -0
  177. package/dist/{chunk-OJWDNNW3.js → chunk-4TPTGBIO.js} +5 -5
  178. package/dist/{chunk-J2WY42FA.js → chunk-4UHGW6WF.js} +2 -2
  179. package/dist/{chunk-7NLF35YL.js → chunk-4YN2JLYK.js} +4 -4
  180. package/dist/{chunk-OOOSGPJL.js → chunk-53MYEEMA.js} +1 -1
  181. package/dist/{chunk-467WDSOK.js → chunk-5HYWXPMA.js} +2 -2
  182. package/dist/{chunk-XMBOLFFS.js → chunk-5IMNL6IV.js} +2 -2
  183. package/dist/{chunk-4Z5X7PLC.js → chunk-5MLM5T5C.js} +3 -3
  184. package/dist/{chunk-YMI27QPF.js → chunk-5NKQZVXP.js} +2 -2
  185. package/dist/{chunk-ZW5YTIH3.js → chunk-5PB46DAA.js} +1 -1
  186. package/dist/{chunk-ZW5YTIH3.js.map → chunk-5PB46DAA.js.map} +1 -1
  187. package/dist/{chunk-CYDXCILL.js → chunk-5SODSGW7.js} +7 -7
  188. package/dist/{chunk-Q5EZNBPI.js → chunk-5YAJASCO.js} +3 -3
  189. package/dist/{chunk-M3FDGRB4.js → chunk-62XAL5BA.js} +3 -3
  190. package/dist/{chunk-SGH7I7OY.js → chunk-67R6NAFI.js} +2 -2
  191. package/dist/{chunk-Q5K2J5GG.js → chunk-6BN3RU7T.js} +13 -3
  192. package/dist/chunk-6BN3RU7T.js.map +1 -0
  193. package/dist/{chunk-PYB4BFEC.js → chunk-6BQLDL6R.js} +3 -3
  194. package/dist/{chunk-YJSCLGAW.js → chunk-6EZYHJTL.js} +3 -3
  195. package/dist/{chunk-OWET7EY2.js → chunk-6GW7NJMK.js} +19 -13
  196. package/dist/{chunk-OWET7EY2.js.map → chunk-6GW7NJMK.js.map} +1 -1
  197. package/dist/{chunk-G5UQBTXY.js → chunk-6LXIL3Q3.js} +2 -2
  198. package/dist/{chunk-T67LTMSW.js → chunk-6LYVAJFZ.js} +10 -10
  199. package/dist/{chunk-3L465FBR.js → chunk-6WB5UXMZ.js} +6 -6
  200. package/dist/{chunk-EKJHOWTZ.js → chunk-74UGYVCA.js} +4 -4
  201. package/dist/{chunk-PWUSSSSL.js → chunk-7BTNYZC7.js} +2 -2
  202. package/dist/{chunk-NQ2CPQJF.js → chunk-7D3WIDKK.js} +26 -3
  203. package/dist/chunk-7D3WIDKK.js.map +1 -0
  204. package/dist/{chunk-ESXAECZ3.js → chunk-7KZFGA25.js} +2 -2
  205. package/dist/{chunk-EGKARC53.js → chunk-7MGDX2TD.js} +2 -2
  206. package/dist/{chunk-Y3XZEKDQ.js → chunk-7N3GFGB6.js} +2 -2
  207. package/dist/{chunk-AH3DGOTK.js → chunk-7SFSN6AX.js} +2 -2
  208. package/dist/{chunk-QPQ7R77C.js → chunk-7SU4YVZ5.js} +5 -1
  209. package/dist/chunk-7SU4YVZ5.js.map +1 -0
  210. package/dist/{chunk-6QK65ZWM.js → chunk-7TGUHFGO.js} +3 -3
  211. package/dist/{chunk-QURYQFDN.js → chunk-7ZIWO65F.js} +2 -2
  212. package/dist/{chunk-OYCK4JRS.js → chunk-AJHLEJTK.js} +2 -2
  213. package/dist/{chunk-3PZ3LRPV.js → chunk-AN4U7EPH.js} +3 -3
  214. package/dist/{chunk-77BHKC43.js → chunk-APG6CEG7.js} +1 -1
  215. package/dist/{chunk-FSDQQQIA.js → chunk-APHLXQNP.js} +3 -3
  216. package/dist/{chunk-SN2WENRP.js → chunk-AXHQ7QXV.js} +3 -3
  217. package/dist/{chunk-54U6ZBEX.js → chunk-AYTLSPF6.js} +3 -3
  218. package/dist/{chunk-WYGTAQMX.js → chunk-AZFVRPQM.js} +76 -22
  219. package/dist/chunk-AZFVRPQM.js.map +1 -0
  220. package/dist/{chunk-R33SBMB7.js → chunk-BBSKKBMV.js} +3 -3
  221. package/dist/{chunk-2GCHGWNE.js → chunk-BGH6TU2P.js} +3 -3
  222. package/dist/{chunk-D3PTVN2I.js → chunk-BGIYL26H.js} +2 -2
  223. package/dist/{chunk-BQYRZIZ7.js → chunk-BL7UQUC3.js} +2 -2
  224. package/dist/{chunk-EBTUPRRQ.js → chunk-BOUHCYL6.js} +4 -4
  225. package/dist/{chunk-MKDFYE2E.js → chunk-BVNGDFBC.js} +2 -2
  226. package/dist/{chunk-ICAMYP5M.js → chunk-BWJK64CP.js} +2 -2
  227. package/dist/{chunk-RHXYO4H2.js → chunk-BZ2GTCQV.js} +2 -2
  228. package/dist/{chunk-GIWFLWXG.js → chunk-C2KASMJK.js} +4 -4
  229. package/dist/{chunk-KO3OHHY2.js → chunk-CAZDRDQT.js} +2 -2
  230. package/dist/{chunk-OK7BQMCI.js → chunk-CBJRZKZB.js} +9 -9
  231. package/dist/{chunk-OYOFPNLC.js → chunk-CF6NYG7J.js} +4 -4
  232. package/dist/{chunk-MT2R57SF.js → chunk-COITN7WN.js} +2 -2
  233. package/dist/{chunk-OCXTTKVA.js → chunk-CPVOXM2Q.js} +2 -2
  234. package/dist/{chunk-HYEIA25Y.js → chunk-CTZRCBKH.js} +2 -2
  235. package/dist/{chunk-OCXEY7HE.js → chunk-CWL27YTB.js} +2 -2
  236. package/dist/{chunk-K4DQS2ML.js → chunk-D2I33V5P.js} +4 -4
  237. package/dist/{chunk-736RUNIA.js → chunk-DF7WI4JH.js} +4 -4
  238. package/dist/{chunk-KUE5BOQE.js → chunk-DKZYCJCO.js} +4 -4
  239. package/dist/{chunk-74CBR5YE.js → chunk-DQ32FKFQ.js} +2 -2
  240. package/dist/{chunk-4O2XWOLZ.js → chunk-DTKG2YUF.js} +3 -3
  241. package/dist/{chunk-GMHIOYB7.js → chunk-DUDA4V5R.js} +4 -4
  242. package/dist/{chunk-XUOYNJPB.js → chunk-ECROT4M5.js} +24 -24
  243. package/dist/{chunk-PVB4YVDP.js → chunk-EOXV5XGY.js} +2 -2
  244. package/dist/{chunk-U6552Q3T.js → chunk-EQQOZ6DD.js} +2 -2
  245. package/dist/{chunk-G6ICCGJ3.js → chunk-EY6W5H4B.js} +2 -2
  246. package/dist/{chunk-HWVPLFIW.js → chunk-EYRFEWXJ.js} +2 -2
  247. package/dist/{chunk-7YTR3UFO.js → chunk-FB4JWUVJ.js} +8 -5
  248. package/dist/chunk-FB4JWUVJ.js.map +1 -0
  249. package/dist/{chunk-U4LTPFD2.js → chunk-FKK2PD7K.js} +2 -2
  250. package/dist/{chunk-PUUEI4W3.js → chunk-FPHHIC5K.js} +5 -5
  251. package/dist/{chunk-SP44O3OU.js → chunk-FQM6L22H.js} +2 -2
  252. package/dist/{chunk-2J77TWGH.js → chunk-FW22IREV.js} +3 -3
  253. package/dist/{chunk-EBIVTDEG.js → chunk-G4M6AYDB.js} +2 -2
  254. package/dist/{chunk-O4JOE3R7.js → chunk-G55NAU5M.js} +60 -74
  255. package/dist/chunk-G55NAU5M.js.map +1 -0
  256. package/dist/{chunk-BASI553K.js → chunk-G6AZ2WIU.js} +4 -4
  257. package/dist/{chunk-SJYTQLN3.js → chunk-GJ5IDSAX.js} +3 -3
  258. package/dist/{chunk-TDTD66BK.js → chunk-GRDSEZWZ.js} +2 -2
  259. package/dist/{chunk-MV2CLIO6.js → chunk-HBVJIGY2.js} +6 -6
  260. package/dist/{chunk-R4JA5JFI.js → chunk-HCWQLIOE.js} +3 -3
  261. package/dist/{chunk-MZY3VKKM.js → chunk-HEVD4A5G.js} +2 -2
  262. package/dist/{chunk-DLVIRJGK.js → chunk-HNDHSEVJ.js} +2 -2
  263. package/dist/{chunk-LPKJ77EK.js → chunk-HNTZ7B7M.js} +2 -2
  264. package/dist/{chunk-QQIZMVAJ.js → chunk-HQ7GTMII.js} +59 -57
  265. package/dist/chunk-HQ7GTMII.js.map +1 -0
  266. package/dist/{chunk-IN3VQFKS.js → chunk-I2FC7CAI.js} +2 -2
  267. package/dist/{chunk-SK5S2PCK.js → chunk-I7BGHBOM.js} +14 -14
  268. package/dist/chunk-I7BGHBOM.js.map +1 -0
  269. package/dist/{chunk-ZBHGNE2J.js → chunk-IEHZFYMH.js} +3 -3
  270. package/dist/{chunk-DWJ6J3YW.js → chunk-IXISEVD7.js} +4 -4
  271. package/dist/{chunk-TK5FWVZR.js → chunk-IZEDVQUD.js} +3 -3
  272. package/dist/{chunk-HEGV4QMS.js → chunk-J42QE4VO.js} +2 -2
  273. package/dist/{chunk-PRT4J2DL.js → chunk-J555XSUM.js} +2 -2
  274. package/dist/{chunk-SBXSKRFA.js → chunk-JNMHFSDF.js} +3 -3
  275. package/dist/{chunk-KI46GKMD.js → chunk-JTBAOPYO.js} +7 -7
  276. package/dist/{chunk-JHZRAYI4.js → chunk-JWSRFXRN.js} +2 -2
  277. package/dist/chunk-JWSRFXRN.js.map +1 -0
  278. package/dist/{chunk-SXGJL7UT.js → chunk-K376MPJH.js} +14 -14
  279. package/dist/{chunk-OSJ366KR.js → chunk-KEBVT55V.js} +30 -30
  280. package/dist/{chunk-U5UGM5XD.js → chunk-KFIZAXHI.js} +5 -5
  281. package/dist/{chunk-KFNZZ2N6.js → chunk-KKGRDBMK.js} +2 -2
  282. package/dist/{chunk-PLYVGZIN.js → chunk-KKIG6DN5.js} +1 -1
  283. package/dist/{chunk-3OK7Y6ES.js → chunk-KKQO2GAA.js} +2 -2
  284. package/dist/{chunk-DQPIEQGP.js → chunk-KO753ZCZ.js} +2 -2
  285. package/dist/{chunk-YNTLWCF4.js → chunk-KYIRWU65.js} +3 -3
  286. package/dist/{chunk-JKL5S7UQ.js → chunk-L6V63DVI.js} +6 -6
  287. package/dist/{chunk-M5IQVMLR.js → chunk-LAZ2QZTJ.js} +11 -4
  288. package/dist/chunk-LAZ2QZTJ.js.map +1 -0
  289. package/dist/{chunk-CV4VVLPZ.js → chunk-LCNJ2KNS.js} +2 -2
  290. package/dist/{chunk-D74Z2N4K.js → chunk-LE7YKMTU.js} +2 -2
  291. package/dist/{chunk-D5TIVCXG.js → chunk-LEBEOMVT.js} +2 -2
  292. package/dist/chunk-LKLQVANM.js +2 -0
  293. package/dist/{chunk-2OXSB2OL.js → chunk-LKWVBUH6.js} +3 -2
  294. package/dist/chunk-LKWVBUH6.js.map +1 -0
  295. package/dist/{chunk-WXF2RTS4.js → chunk-M6URPYUB.js} +2 -2
  296. package/dist/{chunk-H6BX6WOW.js → chunk-MDHFMRBC.js} +3 -3
  297. package/dist/{chunk-3CDJSKDW.js → chunk-MGZO7CHI.js} +3 -3
  298. package/dist/{chunk-DCEQCGVN.js → chunk-MIWU52TW.js} +2 -2
  299. package/dist/{chunk-PF2WU2IL.js → chunk-ND4IQJUM.js} +120 -17
  300. package/dist/chunk-ND4IQJUM.js.map +1 -0
  301. package/dist/{chunk-3PM3M2Q6.js → chunk-NDXBF3RW.js} +27 -11
  302. package/dist/chunk-NDXBF3RW.js.map +1 -0
  303. package/dist/{chunk-LVELUUK6.js → chunk-NF6QVVMP.js} +2 -2
  304. package/dist/{chunk-UMX6DZME.js → chunk-NTZ5ZNVK.js} +2 -2
  305. package/dist/{chunk-FBA2NXYH.js → chunk-NWLRABUR.js} +3 -3
  306. package/dist/{chunk-TNSJFZ6Q.js → chunk-O2H2U7YS.js} +4 -4
  307. package/dist/{chunk-BFFNINCC.js → chunk-OAL2PPX4.js} +3 -3
  308. package/dist/{chunk-WTSQUCHB.js → chunk-OCYTHZ4A.js} +3 -3
  309. package/dist/{chunk-ZAX4XQLN.js → chunk-OEDTCIXF.js} +2 -2
  310. package/dist/{chunk-CHU3RDV4.js → chunk-OLVSYB3P.js} +3 -3
  311. package/dist/{chunk-PZKHST7A.js → chunk-OQ6QOPK6.js} +10 -3
  312. package/dist/chunk-OQ6QOPK6.js.map +1 -0
  313. package/dist/{chunk-IFSXVU2S.js → chunk-OQHTFOCA.js} +2 -2
  314. package/dist/{chunk-OXQ2SXVC.js → chunk-P56AVROH.js} +2 -2
  315. package/dist/{chunk-CXAN2FHF.js → chunk-PCEJHHGP.js} +6 -6
  316. package/dist/{chunk-5MIBQ4P5.js → chunk-PHGQGVVL.js} +2 -2
  317. package/dist/{chunk-FLWQJDJ5.js → chunk-PUZRHEQI.js} +6 -6
  318. package/dist/{chunk-OP2GD6QW.js → chunk-PV7U6OOJ.js} +2 -2
  319. package/dist/{chunk-SPD4ULVB.js → chunk-PYMROAWS.js} +2 -1
  320. package/dist/chunk-PYMROAWS.js.map +1 -0
  321. package/dist/{chunk-X2QJXDE4.js → chunk-PZQACDH5.js} +8 -8
  322. package/dist/{chunk-CH4UQ4NO.js → chunk-PZTS4O6E.js} +5 -5
  323. package/dist/{chunk-TKQL7EDB.js → chunk-Q42QHUAQ.js} +2 -2
  324. package/dist/{chunk-MRECRNVU.js → chunk-QCYGB6TZ.js} +5 -5
  325. package/dist/{chunk-GSCGKJNK.js → chunk-QECMETOF.js} +2 -2
  326. package/dist/{chunk-RMCLFSMX.js → chunk-QGX3LE6H.js} +2 -2
  327. package/dist/{chunk-HTMQGS63.js → chunk-QI3NDQFP.js} +8 -8
  328. package/dist/{chunk-UU5FBVRX.js → chunk-QZE4BTLA.js} +6 -5
  329. package/dist/chunk-QZE4BTLA.js.map +1 -0
  330. package/dist/{chunk-R5QAL43H.js → chunk-RA3Q52O2.js} +2 -2
  331. package/dist/chunk-RBOHWUSN.js +151 -0
  332. package/dist/chunk-RBOHWUSN.js.map +1 -0
  333. package/dist/{chunk-AJDGP2N4.js → chunk-RJNOQEJJ.js} +20 -20
  334. package/dist/{chunk-477DTTMH.js → chunk-RSFOFUR7.js} +3 -3
  335. package/dist/{chunk-JV5ULONH.js → chunk-RXR6PMSH.js} +39 -39
  336. package/dist/{chunk-J2BTILRR.js → chunk-SM7HFCGC.js} +2 -2
  337. package/dist/{chunk-UTRNLNCW.js → chunk-SN6ZWYOP.js} +69 -97
  338. package/dist/chunk-SN6ZWYOP.js.map +1 -0
  339. package/dist/{chunk-OBGOLHCP.js → chunk-T4HK4XCI.js} +3 -3
  340. package/dist/{chunk-XVLEBB4Y.js → chunk-TBWL6YWL.js} +2 -2
  341. package/dist/{chunk-AAS7OWV6.js → chunk-TIDXYWFX.js} +3 -3
  342. package/dist/{chunk-N3FM4BNA.js → chunk-TKHRGY2P.js} +2 -2
  343. package/dist/{chunk-GU7T2S5N.js → chunk-TU2GSZL7.js} +2 -2
  344. package/dist/{chunk-OI6VI6SU.js → chunk-U6HGJXXQ.js} +8 -8
  345. package/dist/{chunk-4BWMAGJJ.js → chunk-UGRW6RTR.js} +3 -3
  346. package/dist/{chunk-AVXDIRRW.js → chunk-UMRUDYUK.js} +2 -2
  347. package/dist/{chunk-FNXCFIPW.js → chunk-UOT2R5ZD.js} +2 -2
  348. package/dist/{chunk-DIP7YALH.js → chunk-USURKJVT.js} +2 -2
  349. package/dist/{chunk-S27VZ5DO.js → chunk-UU6Q67XM.js} +6 -6
  350. package/dist/{chunk-LTJFV2JI.js → chunk-UZ7NP5CW.js} +2 -2
  351. package/dist/{chunk-H6MJFMHZ.js → chunk-V4FO7UOE.js} +3 -3
  352. package/dist/{chunk-RGR57NYY.js → chunk-V4ZOZRCW.js} +2 -2
  353. package/dist/{chunk-LQKVNREV.js → chunk-V57YMKQZ.js} +3 -3
  354. package/dist/{chunk-XZCCEKPW.js → chunk-VOIWZBY6.js} +6 -6
  355. package/dist/{chunk-E5KOWRDU.js → chunk-VPHPLPDA.js} +2 -2
  356. package/dist/{chunk-OGU73VUN.js → chunk-VUL4KPUU.js} +2 -2
  357. package/dist/{chunk-SFIXTOOJ.js → chunk-VWF6ILAR.js} +3 -3
  358. package/dist/{chunk-FER6EVIY.js → chunk-W54BHJO7.js} +2 -2
  359. package/dist/{chunk-34NV52R3.js → chunk-WCYE4BLC.js} +4 -4
  360. package/dist/{chunk-RISUROBM.js → chunk-WTV25ELY.js} +4 -4
  361. package/dist/{chunk-UO35OEOX.js → chunk-WZYGH7CN.js} +3 -3
  362. package/dist/{chunk-CEMSIU4Z.js → chunk-XG2RWUF7.js} +5 -5
  363. package/dist/chunk-XK72HZ4C.js +147 -0
  364. package/dist/chunk-XK72HZ4C.js.map +1 -0
  365. package/dist/{chunk-K3D7IQQP.js → chunk-XV7QOT7W.js} +6 -6
  366. package/dist/{chunk-GOCODNQS.js → chunk-XWECT3GX.js} +2 -2
  367. package/dist/{chunk-5MHMCE2G.js → chunk-XZQK2ZLW.js} +3 -3
  368. package/dist/{chunk-JV3UI7BH.js → chunk-Y5BR66OH.js} +3 -3
  369. package/dist/{chunk-VXORMNU4.js → chunk-YBHAAULA.js} +67 -2
  370. package/dist/chunk-YBHAAULA.js.map +1 -0
  371. package/dist/{chunk-4F3AEJI6.js → chunk-YD6XU6FY.js} +4 -4
  372. package/dist/{chunk-VATYK3JQ.js → chunk-YFE47G3C.js} +3 -3
  373. package/dist/{chunk-ZR5EKJT6.js → chunk-YG6TWPP7.js} +2 -2
  374. package/dist/{chunk-44JWVYJB.js → chunk-YH3ARKBB.js} +2 -2
  375. package/dist/{chunk-752WXSDN.js → chunk-YI66STKJ.js} +2 -2
  376. package/dist/{chunk-QRECBCJM.js → chunk-YMVPYMKB.js} +2 -2
  377. package/dist/{chunk-77SYIH6O.js → chunk-YPIXBAF6.js} +2 -2
  378. package/dist/{chunk-WRMUXZ7C.js → chunk-YSWPNY6G.js} +3 -3
  379. package/dist/{chunk-GTHCHCWW.js → chunk-YWNNMBZG.js} +3 -3
  380. package/dist/{chunk-3DRLCX5V.js → chunk-Z3HYM2JT.js} +2 -2
  381. package/dist/{chunk-M3HGBO2Y.js → chunk-ZAC7YPRA.js} +1 -1
  382. package/dist/{chunk-2VJOSU4H.js → chunk-ZENESDAF.js} +2 -2
  383. package/dist/{chunk-4JXPLTWV.js → chunk-ZHAPMETO.js} +2 -2
  384. package/dist/{chunk-IJR6VOLU.js → chunk-ZVR6DUZH.js} +2 -2
  385. package/dist/components/message-timeline.d.ts +10 -2
  386. package/dist/composer.js +8 -8
  387. package/dist/{computer-viewer-5LKRCEVQ.js → computer-viewer-FOIOZUF5.js} +5 -5
  388. package/dist/connect.js +12 -12
  389. package/dist/desktop-dictation.js +8 -8
  390. package/dist/desktop.js +2 -2
  391. package/dist/editor.js +2 -2
  392. package/dist/{embedded-new-voice-GHJRY3YL.js → embedded-new-voice-WTXAJNGO.js} +5 -5
  393. package/dist/{embedded-voice-ASQXBSTX.js → embedded-voice-SIJOPN2G.js} +5 -5
  394. package/dist/{fleet-decision-row-U7LDVBEM.js → fleet-decision-row-XKQ3GMYT.js} +2 -2
  395. package/dist/hooks/use-recordings.d.ts +4 -2
  396. package/dist/in-chat-connect-model.js +5 -5
  397. package/dist/index.d.ts +2 -2
  398. package/dist/index.js +66 -60
  399. package/dist/interaction.js +5 -5
  400. package/dist/{latest-question-RNVF262Q.js → latest-question-KA7AQYVI.js} +2 -2
  401. package/dist/machines.js +3 -3
  402. package/dist/meetings/recorder-context.d.ts +6 -1
  403. package/dist/meetings/recorder-panel.d.ts +2 -5
  404. package/dist/meetings-recorder.js +1 -1
  405. package/dist/meetings.js +25 -23
  406. package/dist/meetings.js.map +1 -1
  407. package/dist/messages/en.d.ts +4 -0
  408. package/dist/messages.js +1 -1
  409. package/dist/{model-policy-picker-menu-E6XKMFTA.js → model-policy-picker-menu-6N2G7VGX.js} +4 -4
  410. package/dist/{payment-page-card-DJDKV2LW.js → payment-page-card-IJFZHQ52.js} +4 -4
  411. package/dist/{platform-activity-row-MSDCSMET.js → platform-activity-row-MFCMGI43.js} +2 -2
  412. package/dist/{queue-surface-implementation-GUAIG6TK.js → queue-surface-implementation-BBCDWWOP.js} +5 -5
  413. package/dist/realtime.js +4 -4
  414. package/dist/{recorder-host-2MYDJPQW.js → recorder-host-LDYYOKG7.js} +5 -5
  415. package/dist/recordings.js +4 -4
  416. package/dist/{sandbox-files-W5W2LW4K.js → sandbox-files-VYRBIXJY.js} +6 -6
  417. package/dist/session-app.js +160 -157
  418. package/dist/{session-connect-cards-HPH7JOZP.js → session-connect-cards-GBPSL6OT.js} +9 -9
  419. package/dist/session-connect-cards-GBPSL6OT.js.map +1 -0
  420. package/dist/session-list-model.js +2 -2
  421. package/dist/{session-realtime-SDTKFFIR.js → session-realtime-QGU57TND.js} +3 -3
  422. package/dist/session-realtime-QGU57TND.js.map +1 -0
  423. package/dist/session-realtime.js +2 -2
  424. package/dist/session-ui.js +33 -33
  425. package/dist/session.d.ts +3 -2
  426. package/dist/session.js +16 -10
  427. package/dist/sites.js +2 -2
  428. package/dist/terminal.js +2 -2
  429. package/dist/this-computer.js +3 -3
  430. package/dist/timeline/index.d.ts +3 -2
  431. package/dist/timeline/projection.d.ts +52 -0
  432. package/dist/timeline/turn-summary-model.d.ts +4 -3
  433. package/dist/timeline/types.d.ts +8 -2
  434. package/dist/timeline/use-timeline-pauses.d.ts +12 -0
  435. package/dist/timeline/work-presentation.d.ts +4 -3
  436. package/dist/{timeline-annotation-markers-FNILLWNU.js → timeline-annotation-markers-LL6ZVBZH.js} +2 -2
  437. package/dist/{timeline-annotation-selection-MBCIDO2Q.js → timeline-annotation-selection-WQA76WYC.js} +2 -2
  438. package/dist/{timeline-annotations-dialog-JPNKLOTE.js → timeline-annotations-dialog-HHETAEZA.js} +3 -3
  439. package/dist/timeline-model.js +2 -2
  440. package/dist/ui/access-list.js +5 -5
  441. package/dist/ui/cadence-picker.js +4 -4
  442. package/dist/ui/choice-cards.js +3 -3
  443. package/dist/ui/confirm-dialog.js +2 -2
  444. package/dist/ui/copy-field.js +3 -3
  445. package/dist/ui/detail-page.js +2 -2
  446. package/dist/ui/detail-sheet.js +2 -2
  447. package/dist/ui/disclosure.js +3 -3
  448. package/dist/ui/email-chips-input.js +3 -3
  449. package/dist/ui/field.js +2 -2
  450. package/dist/ui/flush-form-page.js +3 -3
  451. package/dist/ui/form-dialog.js +2 -2
  452. package/dist/ui/list-row.js +3 -3
  453. package/dist/ui/relative-time.js +2 -2
  454. package/dist/ui/revision-history.js +4 -4
  455. package/dist/ui/role-select.js +5 -5
  456. package/dist/ui/select-menu.js +3 -3
  457. package/dist/ui/usage-meter.d.ts +8 -2
  458. package/dist/ui/usage-meter.js +5 -3
  459. package/dist/usage.js +2 -2
  460. package/dist/workbench.js +4 -4
  461. package/package.json +6 -5
  462. package/src/app/components/agent/agent-capability-picker.test.tsx +1 -1
  463. package/src/app/components/models/subscription-usage.tsx +178 -0
  464. package/src/app/components/rail/session-row-content.tsx +27 -0
  465. package/src/app/components/session/subscription-account-indicator.test.ts +78 -18
  466. package/src/app/components/session/subscription-account-indicator.tsx +16 -31
  467. package/src/app/components/session/subscription-account-menu.tsx +79 -101
  468. package/src/app/components/session/subscription-account.test.ts +161 -54
  469. package/src/app/components/session/subscription-account.ts +106 -117
  470. package/src/app/lib/agent-capabilities.tsx +34 -7
  471. package/src/app/lib/session-branch-cache.tsx +1 -0
  472. package/src/app/lib/session-pins.tsx +1 -0
  473. package/src/app/lib/session-row-paused.test.tsx +183 -0
  474. package/src/app/lib/sessions-group-channels.test.ts +4 -4
  475. package/src/app/lib/sessions-group.tsx +62 -4
  476. package/src/app/lib/subscription-accounts.tsx +283 -0
  477. package/src/app/routes/session.tsx +2 -0
  478. package/src/components/message-timeline.tsx +14 -2
  479. package/src/components/session-conversation.tsx +2 -1
  480. package/src/components/timeline-annotations.tsx +4 -1
  481. package/src/components/timeline-settlement.ts +1 -1
  482. package/src/hooks/use-composer.ts +104 -25
  483. package/src/hooks/use-recordings.ts +5 -0
  484. package/src/index.ts +5 -0
  485. package/src/meetings/meeting-detail-page.tsx +4 -2
  486. package/src/meetings/meetings-pages.test.tsx +38 -0
  487. package/src/meetings/recorder-context.tsx +28 -5
  488. package/src/meetings/recorder-panel.tsx +13 -5
  489. package/src/meetings/recorder-workspace.test.tsx +57 -8
  490. package/src/messages/en.ts +5 -0
  491. package/src/recordings-model.ts +7 -0
  492. package/src/session.ts +8 -1
  493. package/src/timeline/index.ts +4 -1
  494. package/src/timeline/projection.ts +228 -16
  495. package/src/timeline/turn-summary-model.ts +4 -3
  496. package/src/timeline/turn-summary.tsx +15 -2
  497. package/src/timeline/types.ts +8 -2
  498. package/src/timeline/use-timeline-pauses.ts +105 -0
  499. package/src/timeline/work-presentation.ts +13 -4
  500. package/src/ui/usage-meter.tsx +10 -7
  501. package/styles/compiled.css +3 -0
  502. package/dist/chunk-2OXSB2OL.js.map +0 -1
  503. package/dist/chunk-3PM3M2Q6.js.map +0 -1
  504. package/dist/chunk-7YTR3UFO.js.map +0 -1
  505. package/dist/chunk-7Z76QP64.js.map +0 -1
  506. package/dist/chunk-JHZRAYI4.js.map +0 -1
  507. package/dist/chunk-M5IQVMLR.js.map +0 -1
  508. package/dist/chunk-NQ2CPQJF.js.map +0 -1
  509. package/dist/chunk-O2UPPN5M.js +0 -2
  510. package/dist/chunk-O4JOE3R7.js.map +0 -1
  511. package/dist/chunk-PF2WU2IL.js.map +0 -1
  512. package/dist/chunk-PSM3CU7N.js.map +0 -1
  513. package/dist/chunk-PZKHST7A.js.map +0 -1
  514. package/dist/chunk-Q5K2J5GG.js.map +0 -1
  515. package/dist/chunk-QPQ7R77C.js.map +0 -1
  516. package/dist/chunk-QQIZMVAJ.js.map +0 -1
  517. package/dist/chunk-SK5S2PCK.js.map +0 -1
  518. package/dist/chunk-SPD4ULVB.js.map +0 -1
  519. package/dist/chunk-UTRNLNCW.js.map +0 -1
  520. package/dist/chunk-UU5FBVRX.js.map +0 -1
  521. package/dist/chunk-VXORMNU4.js.map +0 -1
  522. package/dist/chunk-WYGTAQMX.js.map +0 -1
  523. /package/dist/{browser-viewer-ZHQDVHZ2.js.map → app/components/models/subscription-usage.js.map} +0 -0
  524. /package/dist/{chat-interactive-block-VSDD6X3M.js.map → app/lib/subscription-accounts.js.map} +0 -0
  525. /package/dist/{chunk-O2UPPN5M.js.map → browser-viewer-F4FL7JKB.js.map} +0 -0
  526. /package/dist/{computer-viewer-5LKRCEVQ.js.map → chat-interactive-block-4U5JWRSY.js.map} +0 -0
  527. /package/dist/{chunk-4K64EKM7.js.map → chunk-22YIIM3X.js.map} +0 -0
  528. /package/dist/{chunk-3NNAC43A.js.map → chunk-2N7ACQ7M.js.map} +0 -0
  529. /package/dist/{chunk-WDASYY4S.js.map → chunk-2TEYUDJD.js.map} +0 -0
  530. /package/dist/{chunk-OTW25A6I.js.map → chunk-37JJQNZB.js.map} +0 -0
  531. /package/dist/{chunk-VCJQQYRE.js.map → chunk-3DWQPURZ.js.map} +0 -0
  532. /package/dist/{chunk-GTRAH4FG.js.map → chunk-3GWC3FU3.js.map} +0 -0
  533. /package/dist/{chunk-AB5IW227.js.map → chunk-3ICY6LP3.js.map} +0 -0
  534. /package/dist/{chunk-WIFDNUKD.js.map → chunk-3OCU5RX5.js.map} +0 -0
  535. /package/dist/{chunk-UBRQ3PQD.js.map → chunk-3SPDJLOR.js.map} +0 -0
  536. /package/dist/{chunk-IZXYFWA4.js.map → chunk-3WVLR7UA.js.map} +0 -0
  537. /package/dist/{chunk-DEHLWZSI.js.map → chunk-3XMB3L57.js.map} +0 -0
  538. /package/dist/{chunk-AJBDAVX3.js.map → chunk-4IUOBO2H.js.map} +0 -0
  539. /package/dist/{chunk-NFCS5WYC.js.map → chunk-4KQ3A3EO.js.map} +0 -0
  540. /package/dist/{chunk-LIJNVIT3.js.map → chunk-4L5B5AZT.js.map} +0 -0
  541. /package/dist/{chunk-EDDKPIIV.js.map → chunk-4NB3TPNE.js.map} +0 -0
  542. /package/dist/{chunk-OJWDNNW3.js.map → chunk-4TPTGBIO.js.map} +0 -0
  543. /package/dist/{chunk-J2WY42FA.js.map → chunk-4UHGW6WF.js.map} +0 -0
  544. /package/dist/{chunk-7NLF35YL.js.map → chunk-4YN2JLYK.js.map} +0 -0
  545. /package/dist/{chunk-OOOSGPJL.js.map → chunk-53MYEEMA.js.map} +0 -0
  546. /package/dist/{chunk-467WDSOK.js.map → chunk-5HYWXPMA.js.map} +0 -0
  547. /package/dist/{chunk-XMBOLFFS.js.map → chunk-5IMNL6IV.js.map} +0 -0
  548. /package/dist/{chunk-4Z5X7PLC.js.map → chunk-5MLM5T5C.js.map} +0 -0
  549. /package/dist/{chunk-YMI27QPF.js.map → chunk-5NKQZVXP.js.map} +0 -0
  550. /package/dist/{chunk-CYDXCILL.js.map → chunk-5SODSGW7.js.map} +0 -0
  551. /package/dist/{chunk-Q5EZNBPI.js.map → chunk-5YAJASCO.js.map} +0 -0
  552. /package/dist/{chunk-M3FDGRB4.js.map → chunk-62XAL5BA.js.map} +0 -0
  553. /package/dist/{chunk-SGH7I7OY.js.map → chunk-67R6NAFI.js.map} +0 -0
  554. /package/dist/{chunk-PYB4BFEC.js.map → chunk-6BQLDL6R.js.map} +0 -0
  555. /package/dist/{chunk-YJSCLGAW.js.map → chunk-6EZYHJTL.js.map} +0 -0
  556. /package/dist/{chunk-G5UQBTXY.js.map → chunk-6LXIL3Q3.js.map} +0 -0
  557. /package/dist/{chunk-T67LTMSW.js.map → chunk-6LYVAJFZ.js.map} +0 -0
  558. /package/dist/{chunk-3L465FBR.js.map → chunk-6WB5UXMZ.js.map} +0 -0
  559. /package/dist/{chunk-EKJHOWTZ.js.map → chunk-74UGYVCA.js.map} +0 -0
  560. /package/dist/{chunk-PWUSSSSL.js.map → chunk-7BTNYZC7.js.map} +0 -0
  561. /package/dist/{chunk-ESXAECZ3.js.map → chunk-7KZFGA25.js.map} +0 -0
  562. /package/dist/{chunk-EGKARC53.js.map → chunk-7MGDX2TD.js.map} +0 -0
  563. /package/dist/{chunk-Y3XZEKDQ.js.map → chunk-7N3GFGB6.js.map} +0 -0
  564. /package/dist/{chunk-AH3DGOTK.js.map → chunk-7SFSN6AX.js.map} +0 -0
  565. /package/dist/{chunk-6QK65ZWM.js.map → chunk-7TGUHFGO.js.map} +0 -0
  566. /package/dist/{chunk-QURYQFDN.js.map → chunk-7ZIWO65F.js.map} +0 -0
  567. /package/dist/{chunk-OYCK4JRS.js.map → chunk-AJHLEJTK.js.map} +0 -0
  568. /package/dist/{chunk-3PZ3LRPV.js.map → chunk-AN4U7EPH.js.map} +0 -0
  569. /package/dist/{chunk-77BHKC43.js.map → chunk-APG6CEG7.js.map} +0 -0
  570. /package/dist/{chunk-FSDQQQIA.js.map → chunk-APHLXQNP.js.map} +0 -0
  571. /package/dist/{chunk-SN2WENRP.js.map → chunk-AXHQ7QXV.js.map} +0 -0
  572. /package/dist/{chunk-54U6ZBEX.js.map → chunk-AYTLSPF6.js.map} +0 -0
  573. /package/dist/{chunk-R33SBMB7.js.map → chunk-BBSKKBMV.js.map} +0 -0
  574. /package/dist/{chunk-2GCHGWNE.js.map → chunk-BGH6TU2P.js.map} +0 -0
  575. /package/dist/{chunk-D3PTVN2I.js.map → chunk-BGIYL26H.js.map} +0 -0
  576. /package/dist/{chunk-BQYRZIZ7.js.map → chunk-BL7UQUC3.js.map} +0 -0
  577. /package/dist/{chunk-EBTUPRRQ.js.map → chunk-BOUHCYL6.js.map} +0 -0
  578. /package/dist/{chunk-MKDFYE2E.js.map → chunk-BVNGDFBC.js.map} +0 -0
  579. /package/dist/{chunk-ICAMYP5M.js.map → chunk-BWJK64CP.js.map} +0 -0
  580. /package/dist/{chunk-RHXYO4H2.js.map → chunk-BZ2GTCQV.js.map} +0 -0
  581. /package/dist/{chunk-GIWFLWXG.js.map → chunk-C2KASMJK.js.map} +0 -0
  582. /package/dist/{chunk-KO3OHHY2.js.map → chunk-CAZDRDQT.js.map} +0 -0
  583. /package/dist/{chunk-OK7BQMCI.js.map → chunk-CBJRZKZB.js.map} +0 -0
  584. /package/dist/{chunk-OYOFPNLC.js.map → chunk-CF6NYG7J.js.map} +0 -0
  585. /package/dist/{chunk-MT2R57SF.js.map → chunk-COITN7WN.js.map} +0 -0
  586. /package/dist/{chunk-OCXTTKVA.js.map → chunk-CPVOXM2Q.js.map} +0 -0
  587. /package/dist/{chunk-HYEIA25Y.js.map → chunk-CTZRCBKH.js.map} +0 -0
  588. /package/dist/{chunk-OCXEY7HE.js.map → chunk-CWL27YTB.js.map} +0 -0
  589. /package/dist/{chunk-K4DQS2ML.js.map → chunk-D2I33V5P.js.map} +0 -0
  590. /package/dist/{chunk-736RUNIA.js.map → chunk-DF7WI4JH.js.map} +0 -0
  591. /package/dist/{chunk-KUE5BOQE.js.map → chunk-DKZYCJCO.js.map} +0 -0
  592. /package/dist/{chunk-74CBR5YE.js.map → chunk-DQ32FKFQ.js.map} +0 -0
  593. /package/dist/{chunk-4O2XWOLZ.js.map → chunk-DTKG2YUF.js.map} +0 -0
  594. /package/dist/{chunk-GMHIOYB7.js.map → chunk-DUDA4V5R.js.map} +0 -0
  595. /package/dist/{chunk-XUOYNJPB.js.map → chunk-ECROT4M5.js.map} +0 -0
  596. /package/dist/{chunk-PVB4YVDP.js.map → chunk-EOXV5XGY.js.map} +0 -0
  597. /package/dist/{chunk-U6552Q3T.js.map → chunk-EQQOZ6DD.js.map} +0 -0
  598. /package/dist/{chunk-G6ICCGJ3.js.map → chunk-EY6W5H4B.js.map} +0 -0
  599. /package/dist/{chunk-HWVPLFIW.js.map → chunk-EYRFEWXJ.js.map} +0 -0
  600. /package/dist/{chunk-U4LTPFD2.js.map → chunk-FKK2PD7K.js.map} +0 -0
  601. /package/dist/{chunk-PUUEI4W3.js.map → chunk-FPHHIC5K.js.map} +0 -0
  602. /package/dist/{chunk-SP44O3OU.js.map → chunk-FQM6L22H.js.map} +0 -0
  603. /package/dist/{chunk-2J77TWGH.js.map → chunk-FW22IREV.js.map} +0 -0
  604. /package/dist/{chunk-EBIVTDEG.js.map → chunk-G4M6AYDB.js.map} +0 -0
  605. /package/dist/{chunk-BASI553K.js.map → chunk-G6AZ2WIU.js.map} +0 -0
  606. /package/dist/{chunk-SJYTQLN3.js.map → chunk-GJ5IDSAX.js.map} +0 -0
  607. /package/dist/{chunk-TDTD66BK.js.map → chunk-GRDSEZWZ.js.map} +0 -0
  608. /package/dist/{chunk-MV2CLIO6.js.map → chunk-HBVJIGY2.js.map} +0 -0
  609. /package/dist/{chunk-R4JA5JFI.js.map → chunk-HCWQLIOE.js.map} +0 -0
  610. /package/dist/{chunk-MZY3VKKM.js.map → chunk-HEVD4A5G.js.map} +0 -0
  611. /package/dist/{chunk-DLVIRJGK.js.map → chunk-HNDHSEVJ.js.map} +0 -0
  612. /package/dist/{chunk-LPKJ77EK.js.map → chunk-HNTZ7B7M.js.map} +0 -0
  613. /package/dist/{chunk-IN3VQFKS.js.map → chunk-I2FC7CAI.js.map} +0 -0
  614. /package/dist/{chunk-ZBHGNE2J.js.map → chunk-IEHZFYMH.js.map} +0 -0
  615. /package/dist/{chunk-DWJ6J3YW.js.map → chunk-IXISEVD7.js.map} +0 -0
  616. /package/dist/{chunk-TK5FWVZR.js.map → chunk-IZEDVQUD.js.map} +0 -0
  617. /package/dist/{chunk-HEGV4QMS.js.map → chunk-J42QE4VO.js.map} +0 -0
  618. /package/dist/{chunk-PRT4J2DL.js.map → chunk-J555XSUM.js.map} +0 -0
  619. /package/dist/{chunk-SBXSKRFA.js.map → chunk-JNMHFSDF.js.map} +0 -0
  620. /package/dist/{chunk-KI46GKMD.js.map → chunk-JTBAOPYO.js.map} +0 -0
  621. /package/dist/{chunk-SXGJL7UT.js.map → chunk-K376MPJH.js.map} +0 -0
  622. /package/dist/{chunk-OSJ366KR.js.map → chunk-KEBVT55V.js.map} +0 -0
  623. /package/dist/{chunk-U5UGM5XD.js.map → chunk-KFIZAXHI.js.map} +0 -0
  624. /package/dist/{chunk-KFNZZ2N6.js.map → chunk-KKGRDBMK.js.map} +0 -0
  625. /package/dist/{chunk-PLYVGZIN.js.map → chunk-KKIG6DN5.js.map} +0 -0
  626. /package/dist/{chunk-3OK7Y6ES.js.map → chunk-KKQO2GAA.js.map} +0 -0
  627. /package/dist/{chunk-DQPIEQGP.js.map → chunk-KO753ZCZ.js.map} +0 -0
  628. /package/dist/{chunk-YNTLWCF4.js.map → chunk-KYIRWU65.js.map} +0 -0
  629. /package/dist/{chunk-JKL5S7UQ.js.map → chunk-L6V63DVI.js.map} +0 -0
  630. /package/dist/{chunk-CV4VVLPZ.js.map → chunk-LCNJ2KNS.js.map} +0 -0
  631. /package/dist/{chunk-D74Z2N4K.js.map → chunk-LE7YKMTU.js.map} +0 -0
  632. /package/dist/{chunk-D5TIVCXG.js.map → chunk-LEBEOMVT.js.map} +0 -0
  633. /package/dist/{embedded-new-voice-GHJRY3YL.js.map → chunk-LKLQVANM.js.map} +0 -0
  634. /package/dist/{chunk-WXF2RTS4.js.map → chunk-M6URPYUB.js.map} +0 -0
  635. /package/dist/{chunk-H6BX6WOW.js.map → chunk-MDHFMRBC.js.map} +0 -0
  636. /package/dist/{chunk-3CDJSKDW.js.map → chunk-MGZO7CHI.js.map} +0 -0
  637. /package/dist/{chunk-DCEQCGVN.js.map → chunk-MIWU52TW.js.map} +0 -0
  638. /package/dist/{chunk-LVELUUK6.js.map → chunk-NF6QVVMP.js.map} +0 -0
  639. /package/dist/{chunk-UMX6DZME.js.map → chunk-NTZ5ZNVK.js.map} +0 -0
  640. /package/dist/{chunk-FBA2NXYH.js.map → chunk-NWLRABUR.js.map} +0 -0
  641. /package/dist/{chunk-TNSJFZ6Q.js.map → chunk-O2H2U7YS.js.map} +0 -0
  642. /package/dist/{chunk-BFFNINCC.js.map → chunk-OAL2PPX4.js.map} +0 -0
  643. /package/dist/{chunk-WTSQUCHB.js.map → chunk-OCYTHZ4A.js.map} +0 -0
  644. /package/dist/{chunk-ZAX4XQLN.js.map → chunk-OEDTCIXF.js.map} +0 -0
  645. /package/dist/{chunk-CHU3RDV4.js.map → chunk-OLVSYB3P.js.map} +0 -0
  646. /package/dist/{chunk-IFSXVU2S.js.map → chunk-OQHTFOCA.js.map} +0 -0
  647. /package/dist/{chunk-OXQ2SXVC.js.map → chunk-P56AVROH.js.map} +0 -0
  648. /package/dist/{chunk-CXAN2FHF.js.map → chunk-PCEJHHGP.js.map} +0 -0
  649. /package/dist/{chunk-5MIBQ4P5.js.map → chunk-PHGQGVVL.js.map} +0 -0
  650. /package/dist/{chunk-FLWQJDJ5.js.map → chunk-PUZRHEQI.js.map} +0 -0
  651. /package/dist/{chunk-OP2GD6QW.js.map → chunk-PV7U6OOJ.js.map} +0 -0
  652. /package/dist/{chunk-X2QJXDE4.js.map → chunk-PZQACDH5.js.map} +0 -0
  653. /package/dist/{chunk-CH4UQ4NO.js.map → chunk-PZTS4O6E.js.map} +0 -0
  654. /package/dist/{chunk-TKQL7EDB.js.map → chunk-Q42QHUAQ.js.map} +0 -0
  655. /package/dist/{chunk-MRECRNVU.js.map → chunk-QCYGB6TZ.js.map} +0 -0
  656. /package/dist/{chunk-GSCGKJNK.js.map → chunk-QECMETOF.js.map} +0 -0
  657. /package/dist/{chunk-RMCLFSMX.js.map → chunk-QGX3LE6H.js.map} +0 -0
  658. /package/dist/{chunk-HTMQGS63.js.map → chunk-QI3NDQFP.js.map} +0 -0
  659. /package/dist/{chunk-R5QAL43H.js.map → chunk-RA3Q52O2.js.map} +0 -0
  660. /package/dist/{chunk-AJDGP2N4.js.map → chunk-RJNOQEJJ.js.map} +0 -0
  661. /package/dist/{chunk-477DTTMH.js.map → chunk-RSFOFUR7.js.map} +0 -0
  662. /package/dist/{chunk-JV5ULONH.js.map → chunk-RXR6PMSH.js.map} +0 -0
  663. /package/dist/{chunk-J2BTILRR.js.map → chunk-SM7HFCGC.js.map} +0 -0
  664. /package/dist/{chunk-OBGOLHCP.js.map → chunk-T4HK4XCI.js.map} +0 -0
  665. /package/dist/{chunk-XVLEBB4Y.js.map → chunk-TBWL6YWL.js.map} +0 -0
  666. /package/dist/{chunk-AAS7OWV6.js.map → chunk-TIDXYWFX.js.map} +0 -0
  667. /package/dist/{chunk-N3FM4BNA.js.map → chunk-TKHRGY2P.js.map} +0 -0
  668. /package/dist/{chunk-GU7T2S5N.js.map → chunk-TU2GSZL7.js.map} +0 -0
  669. /package/dist/{chunk-OI6VI6SU.js.map → chunk-U6HGJXXQ.js.map} +0 -0
  670. /package/dist/{chunk-4BWMAGJJ.js.map → chunk-UGRW6RTR.js.map} +0 -0
  671. /package/dist/{chunk-AVXDIRRW.js.map → chunk-UMRUDYUK.js.map} +0 -0
  672. /package/dist/{chunk-FNXCFIPW.js.map → chunk-UOT2R5ZD.js.map} +0 -0
  673. /package/dist/{chunk-DIP7YALH.js.map → chunk-USURKJVT.js.map} +0 -0
  674. /package/dist/{chunk-S27VZ5DO.js.map → chunk-UU6Q67XM.js.map} +0 -0
  675. /package/dist/{chunk-LTJFV2JI.js.map → chunk-UZ7NP5CW.js.map} +0 -0
  676. /package/dist/{chunk-H6MJFMHZ.js.map → chunk-V4FO7UOE.js.map} +0 -0
  677. /package/dist/{chunk-RGR57NYY.js.map → chunk-V4ZOZRCW.js.map} +0 -0
  678. /package/dist/{chunk-LQKVNREV.js.map → chunk-V57YMKQZ.js.map} +0 -0
  679. /package/dist/{chunk-XZCCEKPW.js.map → chunk-VOIWZBY6.js.map} +0 -0
  680. /package/dist/{chunk-E5KOWRDU.js.map → chunk-VPHPLPDA.js.map} +0 -0
  681. /package/dist/{chunk-OGU73VUN.js.map → chunk-VUL4KPUU.js.map} +0 -0
  682. /package/dist/{chunk-SFIXTOOJ.js.map → chunk-VWF6ILAR.js.map} +0 -0
  683. /package/dist/{chunk-FER6EVIY.js.map → chunk-W54BHJO7.js.map} +0 -0
  684. /package/dist/{chunk-34NV52R3.js.map → chunk-WCYE4BLC.js.map} +0 -0
  685. /package/dist/{chunk-RISUROBM.js.map → chunk-WTV25ELY.js.map} +0 -0
  686. /package/dist/{chunk-UO35OEOX.js.map → chunk-WZYGH7CN.js.map} +0 -0
  687. /package/dist/{chunk-CEMSIU4Z.js.map → chunk-XG2RWUF7.js.map} +0 -0
  688. /package/dist/{chunk-K3D7IQQP.js.map → chunk-XV7QOT7W.js.map} +0 -0
  689. /package/dist/{chunk-GOCODNQS.js.map → chunk-XWECT3GX.js.map} +0 -0
  690. /package/dist/{chunk-5MHMCE2G.js.map → chunk-XZQK2ZLW.js.map} +0 -0
  691. /package/dist/{chunk-JV3UI7BH.js.map → chunk-Y5BR66OH.js.map} +0 -0
  692. /package/dist/{chunk-4F3AEJI6.js.map → chunk-YD6XU6FY.js.map} +0 -0
  693. /package/dist/{chunk-VATYK3JQ.js.map → chunk-YFE47G3C.js.map} +0 -0
  694. /package/dist/{chunk-ZR5EKJT6.js.map → chunk-YG6TWPP7.js.map} +0 -0
  695. /package/dist/{chunk-44JWVYJB.js.map → chunk-YH3ARKBB.js.map} +0 -0
  696. /package/dist/{chunk-752WXSDN.js.map → chunk-YI66STKJ.js.map} +0 -0
  697. /package/dist/{chunk-QRECBCJM.js.map → chunk-YMVPYMKB.js.map} +0 -0
  698. /package/dist/{chunk-77SYIH6O.js.map → chunk-YPIXBAF6.js.map} +0 -0
  699. /package/dist/{chunk-WRMUXZ7C.js.map → chunk-YSWPNY6G.js.map} +0 -0
  700. /package/dist/{chunk-GTHCHCWW.js.map → chunk-YWNNMBZG.js.map} +0 -0
  701. /package/dist/{chunk-3DRLCX5V.js.map → chunk-Z3HYM2JT.js.map} +0 -0
  702. /package/dist/{chunk-M3HGBO2Y.js.map → chunk-ZAC7YPRA.js.map} +0 -0
  703. /package/dist/{chunk-2VJOSU4H.js.map → chunk-ZENESDAF.js.map} +0 -0
  704. /package/dist/{chunk-4JXPLTWV.js.map → chunk-ZHAPMETO.js.map} +0 -0
  705. /package/dist/{chunk-IJR6VOLU.js.map → chunk-ZVR6DUZH.js.map} +0 -0
  706. /package/dist/{embedded-voice-ASQXBSTX.js.map → computer-viewer-FOIOZUF5.js.map} +0 -0
  707. /package/dist/{model-policy-picker-menu-E6XKMFTA.js.map → embedded-new-voice-WTXAJNGO.js.map} +0 -0
  708. /package/dist/{sandbox-files-W5W2LW4K.js.map → embedded-voice-SIJOPN2G.js.map} +0 -0
  709. /package/dist/{fleet-decision-row-U7LDVBEM.js.map → fleet-decision-row-XKQ3GMYT.js.map} +0 -0
  710. /package/dist/{latest-question-RNVF262Q.js.map → latest-question-KA7AQYVI.js.map} +0 -0
  711. /package/dist/{session-connect-cards-HPH7JOZP.js.map → model-policy-picker-menu-6N2G7VGX.js.map} +0 -0
  712. /package/dist/{payment-page-card-DJDKV2LW.js.map → payment-page-card-IJFZHQ52.js.map} +0 -0
  713. /package/dist/{platform-activity-row-MSDCSMET.js.map → platform-activity-row-MFCMGI43.js.map} +0 -0
  714. /package/dist/{queue-surface-implementation-GUAIG6TK.js.map → queue-surface-implementation-BBCDWWOP.js.map} +0 -0
  715. /package/dist/{recorder-host-2MYDJPQW.js.map → recorder-host-LDYYOKG7.js.map} +0 -0
  716. /package/dist/{session-realtime-SDTKFFIR.js.map → sandbox-files-VYRBIXJY.js.map} +0 -0
  717. /package/dist/{timeline-annotation-markers-FNILLWNU.js.map → timeline-annotation-markers-LL6ZVBZH.js.map} +0 -0
  718. /package/dist/{timeline-annotation-selection-MBCIDO2Q.js.map → timeline-annotation-selection-WQA76WYC.js.map} +0 -0
  719. /package/dist/{timeline-annotations-dialog-JPNKLOTE.js.map → timeline-annotations-dialog-HHETAEZA.js.map} +0 -0
@@ -1,22 +1,22 @@
1
1
  "use client";
2
- import {
3
- ComposerUsageNotice
4
- } from "./chunk-HWVPLFIW.js";
5
2
  import {
6
3
  useAppShotTarget
7
- } from "./chunk-D74Z2N4K.js";
4
+ } from "./chunk-LE7YKMTU.js";
5
+ import {
6
+ ComposerUsageNotice
7
+ } from "./chunk-EYRFEWXJ.js";
8
8
  import {
9
9
  MessageContextPills
10
10
  } from "./chunk-GOXSTJPA.js";
11
11
  import {
12
12
  t
13
- } from "./chunk-HEGV4QMS.js";
13
+ } from "./chunk-J42QE4VO.js";
14
14
  import {
15
15
  useAppContext
16
16
  } from "./chunk-JDFDPMKX.js";
17
17
  import {
18
18
  ChatComposer
19
- } from "./chunk-6QK65ZWM.js";
19
+ } from "./chunk-7TGUHFGO.js";
20
20
  import {
21
21
  useFileAttachments
22
22
  } from "./chunk-I6FIXEL4.js";
@@ -100,4 +100,4 @@ export {
100
100
  composerTranscription,
101
101
  ConsoleComposer
102
102
  };
103
- //# sourceMappingURL=chunk-CYDXCILL.js.map
103
+ //# sourceMappingURL=chunk-5SODSGW7.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-FSOQDUCG.js";
5
5
  import {
6
6
  useSessionStart
7
- } from "./chunk-4BWMAGJJ.js";
7
+ } from "./chunk-UGRW6RTR.js";
8
8
  import {
9
9
  personalMachineCopy,
10
10
  runSavedMessageOnMachine,
@@ -27,7 +27,7 @@ import {
27
27
  } from "./chunk-7QQN3KNP.js";
28
28
  import {
29
29
  useOpenGeniText
30
- } from "./chunk-QPQ7R77C.js";
30
+ } from "./chunk-7SU4YVZ5.js";
31
31
 
32
32
  // src/components/session-admission-notice.tsx
33
33
  import { InfoIcon } from "lucide-react";
@@ -471,4 +471,4 @@ export {
471
471
  SessionMachineChoices,
472
472
  SessionStartNotice
473
473
  };
474
- //# sourceMappingURL=chunk-Q5EZNBPI.js.map
474
+ //# sourceMappingURL=chunk-5YAJASCO.js.map
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  attemptHint,
4
4
  useConnect
5
- } from "./chunk-HYEIA25Y.js";
5
+ } from "./chunk-CTZRCBKH.js";
6
6
  import {
7
7
  attachSessionCapability
8
8
  } from "./chunk-52Y2X66Q.js";
9
9
  import {
10
10
  useOpenGeniText
11
- } from "./chunk-QPQ7R77C.js";
11
+ } from "./chunk-7SU4YVZ5.js";
12
12
 
13
13
  // src/components/integration-capability-connect-flow.ts
14
14
  import {
@@ -350,4 +350,4 @@ export {
350
350
  reconnectCandidate,
351
351
  useIntegrationCapabilityConnect
352
352
  };
353
- //# sourceMappingURL=chunk-M3FDGRB4.js.map
353
+ //# sourceMappingURL=chunk-62XAL5BA.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-IOYHDEP3.js";
5
5
  import {
6
6
  useOpenGeniText
7
- } from "./chunk-QPQ7R77C.js";
7
+ } from "./chunk-7SU4YVZ5.js";
8
8
 
9
9
  // src/components/artifacts/published-html-artifact-frame.tsx
10
10
  import {
@@ -411,4 +411,4 @@ export {
411
411
  SiteList,
412
412
  SiteDetail
413
413
  };
414
- //# sourceMappingURL=chunk-SGH7I7OY.js.map
414
+ //# sourceMappingURL=chunk-67R6NAFI.js.map
@@ -72,7 +72,7 @@ function createMeetingRecorderStore(onActivate = () => {
72
72
  }
73
73
  var MeetingRecorderContext = createContext(null);
74
74
  var MeetingRecorderStoreProvider = MeetingRecorderContext.Provider;
75
- var LazyRecorderHost = lazy(() => import("./recorder-host-2MYDJPQW.js"));
75
+ var LazyRecorderHost = lazy(() => import("./recorder-host-LDYYOKG7.js"));
76
76
  var RECORDING_DATABASE = "opengeni-recordings";
77
77
  async function hasLocalRecordings() {
78
78
  if (typeof indexedDB === "undefined" || typeof indexedDB.databases !== "function") return false;
@@ -164,8 +164,18 @@ function useDesktopMeetingRequests(store, navigation) {
164
164
  const recorder = store.get();
165
165
  if (request.kind === "record") {
166
166
  if (latest.current.signedOut) return;
167
+ const start = {
168
+ title: request.title,
169
+ titleSource: "app",
170
+ ...request.calendarEvent ? { calendarEvent: request.calendarEvent } : {}
171
+ };
167
172
  if (canStartRecording(recorder?.state)) {
168
- store.requestStart({ title: request.title, titleSource: "app" });
173
+ store.requestStart(start);
174
+ } else if (request.replace === true && recorder && (recorder.state === "recording" || recorder.state === "paused")) {
175
+ void recorder.stop().then(
176
+ () => store.requestStart(start),
177
+ () => void 0
178
+ );
169
179
  }
170
180
  latest.current.onOpenMeetings?.();
171
181
  return;
@@ -280,4 +290,4 @@ export {
280
290
  useMeetingRecorderState,
281
291
  useMeetingRecorderControls
282
292
  };
283
- //# sourceMappingURL=chunk-Q5K2J5GG.js.map
293
+ //# sourceMappingURL=chunk-6BN3RU7T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/meetings/recorder-context.tsx","../src/meetings/recorder-state.ts"],"sourcesContent":["/**\n * The workspace's one meeting recorder, held above the routes so a recording\n * keeps going while the person moves around the app.\n *\n * The capture code (MediaRecorder, IndexedDB, the uploader) loads lazily: the\n * host mounts the first time someone opens Meetings, or at startup when this\n * browser still holds a recording that hasn't finished uploading. The live\n * snapshot changes several times a second while recording, so it lives in an\n * external store; only the components that read it re-render.\n *\n * In the desktop app, the provider also carries out the call notifications'\n * choices; the host says where Meetings and a meeting are with\n * `onOpenMeetings` and `onOpenMeeting`.\n *\n * A recording belongs to the workspace it started in and keeps going when the\n * person moves to another workspace: the recorder follows the host's current\n * workspace only while nothing is being captured. It belongs to the person\n * too: a host that signs people in passes them as `scope`, and a recording\n * ends at once when they sign out or someone else signs in.\n */\nimport {\n createContext,\n lazy,\n Suspense,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n type ReactNode,\n} from \"react\";\nimport { getDesktopMeetingDetection } from \"@opengeni/sdk/desktop-bridge\";\nimport type { UseRecorderResult } from \"../recordings\";\nimport { canStartRecording, capturing } from \"./recorder-state\";\n\nexport { canStartRecording } from \"./recorder-state\";\n\nexport type MeetingRecorder = UseRecorderResult;\n\n/**\n * A recording someone asked for outside the recorder, such as from a desktop\n * call notification. An empty title leaves the name to Opengeni; `app` marks\n * a title the app guessed (the call app's name), which a calendar event or\n * the conversation replaces. `calendarEvent` is the owner's calendar event\n * the meeting is of, such as one joined from a reminder; it names the meeting.\n */\nexport type MeetingStartRequest = {\n title: string;\n titleSource?: \"person\" | \"app\";\n calendarEvent?: { provider: \"google\" | \"microsoft\"; id: string };\n};\n\nexport type MeetingRecorderStore = {\n get: () => MeetingRecorder | null;\n subscribe: (listener: () => void) => () => void;\n /** Publish the recorder, and the workspace its recordings go to. */\n set: (recorder: MeetingRecorder | null, workspaceId?: string | null) => void;\n /** Recordings whose upload finished in this tab, newest last. */\n finished: () => readonly string[];\n markFinished: (recordingId: string) => void;\n /** A start the recorder panel should make as soon as it can, or null. */\n pendingStart: () => MeetingStartRequest | null;\n requestStart: (request: MeetingStartRequest) => void;\n /** Take the pending start, so it happens once. */\n takeStart: () => MeetingStartRequest | null;\n /** Load the capture code. Idempotent. */\n activate: () => void;\n /**\n * The workspace the recorder's recordings go to: while one records, the\n * workspace it started in, even after the person moved to another one.\n * Absent from stores made before it existed.\n */\n workspaceId?: () => string | null;\n /**\n * Open a recorded meeting in its own workspace, through the host's\n * `onOpenMeeting`. False when the host gave no way to.\n */\n openMeeting?: (recordingId: string, workspaceId: string) => boolean;\n};\n\nexport function createMeetingRecorderStore(\n onActivate: () => void = () => {},\n onOpenMeeting: (recordingId: string, workspaceId: string) => boolean = () => false,\n): MeetingRecorderStore {\n let current: MeetingRecorder | null = null;\n let currentWorkspaceId: string | null = null;\n let finished: string[] = [];\n let pending: MeetingStartRequest | null = null;\n const listeners = new Set<() => void>();\n const notify = () => {\n for (const listener of listeners) listener();\n };\n return {\n get: () => current,\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n set: (recorder, workspaceId = null) => {\n current = recorder;\n currentWorkspaceId = recorder ? workspaceId : null;\n // A recording that started some other way (the Start button) uses up a\n // start still waiting, so it can't begin a second one after Stop.\n if (pending && capturing(recorder?.state)) pending = null;\n notify();\n },\n workspaceId: () => currentWorkspaceId,\n finished: () => finished,\n markFinished: (recordingId) => {\n finished = [...finished.filter((id) => id !== recordingId), recordingId];\n notify();\n },\n pendingStart: () => pending,\n requestStart: (request) => {\n pending = request;\n onActivate();\n notify();\n },\n takeStart: () => {\n const request = pending;\n if (request) {\n pending = null;\n notify();\n }\n return request;\n },\n activate: onActivate,\n openMeeting: (recordingId, workspaceId) => onOpenMeeting(recordingId, workspaceId),\n };\n}\n\nconst MeetingRecorderContext = createContext<MeetingRecorderStore | null>(null);\n\nexport const MeetingRecorderStoreProvider = MeetingRecorderContext.Provider;\n\nconst LazyRecorderHost = lazy(() => import(\"./recorder-host\"));\n\nconst RECORDING_DATABASE = \"opengeni-recordings\";\n\n/** True when this browser still holds recording chunks from an earlier visit. */\nasync function hasLocalRecordings(): Promise<boolean> {\n if (typeof indexedDB === \"undefined\" || typeof indexedDB.databases !== \"function\") return false;\n try {\n const databases = await indexedDB.databases();\n return databases.some((database) => database.name === RECORDING_DATABASE);\n } catch {\n return false;\n }\n}\n\nexport function MeetingRecorderProvider({\n workspaceId,\n scope,\n client,\n onOpenMeetings,\n onOpenMeeting,\n children,\n}: {\n /** The workspace recordings go to; null while the host is still finding it. */\n workspaceId: string | null;\n /**\n * Who records, such as the signed-in person's id, for a host that mounts\n * this above sign-in. A new value ends a recording at once and starts a\n * fresh recorder; null means nobody is signed in, so there is no recorder.\n * Omit it when the host remounts the provider when the person changes.\n */\n scope?: string | null | undefined;\n /**\n * The SDK client the recorder uploads with, for a host that mounts this\n * above its routes without an <OpenGeniProvider> there. The provider's\n * client otherwise.\n */\n client?: object | undefined;\n /** Show the Meetings page, where a desktop call notification's recording starts. */\n onOpenMeetings?: (() => void) | undefined;\n /**\n * Show one meeting, after a desktop call notification stopped its recording\n * or a recording made in another workspace stopped. `workspaceId` is the\n * workspace the meeting is in, which may not be the one shown.\n */\n onOpenMeeting?: ((recordingId: string, workspaceId: string) => void) | undefined;\n children: ReactNode;\n}) {\n const [active, setActive] = useState(false);\n const openMeeting = useRef(onOpenMeeting);\n useEffect(() => {\n openMeeting.current = onOpenMeeting;\n });\n const store = useMemo(\n () =>\n createMeetingRecorderStore(\n () => setActive(true),\n (recordingId, recordingWorkspaceId) => {\n if (!openMeeting.current) return false;\n openMeeting.current(recordingId, recordingWorkspaceId);\n return true;\n },\n ),\n [],\n );\n useEffect(() => {\n let cancelled = false;\n void hasLocalRecordings().then((found) => {\n if (found && !cancelled) setActive(true);\n });\n return () => {\n cancelled = true;\n };\n }, []);\n // Leaving a workspace must not end a recording made in it: the host, and\n // with it the capture, stays in the recording's workspace until it stops,\n // then follows the host's current workspace. Another person (scope) gets a\n // fresh host at once, which ends the capture.\n const busy = useSyncExternalStore(\n store.subscribe,\n () => capturing(store.get()?.state),\n () => false,\n );\n useDesktopMeetingRequests(store, {\n // The desktop app asks about calls only while a page can record them:\n // someone signed in, with a workspace to record to, or a recording going.\n canRecord: scope !== null && (workspaceId !== null || busy),\n signedOut: scope === null,\n onOpenMeetings,\n });\n // A start someone asked for belongs to who was signed in then.\n useEffect(() => {\n store.takeStart();\n }, [store, scope]);\n const [host, setHost] = useState({ scope, workspaceId });\n if (host.scope !== scope || (!busy && host.workspaceId !== workspaceId)) {\n setHost({ scope, workspaceId });\n }\n const hostWorkspaceId = host.scope === scope ? host.workspaceId : workspaceId;\n return (\n <MeetingRecorderContext.Provider value={store}>\n {children}\n {active && scope !== null && hostWorkspaceId ? (\n <Suspense fallback={null}>\n <LazyRecorderHost\n key={`${scope ?? \"\"}:${hostWorkspaceId}`}\n store={store}\n workspaceId={hostWorkspaceId}\n client={client}\n />\n </Suspense>\n ) : null}\n </MeetingRecorderContext.Provider>\n );\n}\n\nconst NO_FINISHED: readonly string[] = [];\n\n/**\n * The desktop app's meeting card: \"Record\" opens Meetings and starts\n * recording the call; \"Stop recording\" (the call ended) stops and opens the\n * meeting.\n */\nfunction useDesktopMeetingRequests(\n store: MeetingRecorderStore,\n navigation: {\n canRecord: boolean;\n signedOut: boolean;\n onOpenMeetings?: (() => void) | undefined;\n },\n): void {\n const latest = useRef(navigation);\n useEffect(() => {\n latest.current = navigation;\n });\n const canRecord = navigation.canRecord;\n useEffect(() => {\n // Taking choices tells the app this page can record; stopping while the\n // page stays (signed out, no workspace) tells it nobody can.\n if (!canRecord) return;\n // The bridge itself, not the app layer's helper, which would bring every\n // contract into this module, mounted above a host's routes. Any Electron\n // app that embeds these pages can offer it, not only the Opengeni app.\n const detection = getDesktopMeetingDetection();\n if (!detection) return;\n return detection.onRequest((request) => {\n const recorder = store.get();\n if (request.kind === \"record\") {\n // Nobody signed in: a start kept for later would record, for whoever\n // signs in next, a call that may be long over.\n if (latest.current.signedOut) return;\n // The call app's name is only a guess at the meeting's; the calendar\n // event a reminder joined names it.\n const start: MeetingStartRequest = {\n title: request.title,\n titleSource: \"app\",\n ...(request.calendarEvent ? { calendarEvent: request.calendarEvent } : {}),\n };\n // Already recording shows that recording rather than start a second\n // one, unless the person chose to switch to recording the next meeting:\n // this one stops and is kept, then the next starts.\n if (canStartRecording(recorder?.state)) {\n store.requestStart(start);\n } else if (\n request.replace === true &&\n recorder &&\n (recorder.state === \"recording\" || recorder.state === \"paused\")\n ) {\n // A stop that fails leaves that recording showing its error, and starts nothing.\n void recorder.stop().then(\n () => store.requestStart(start),\n () => undefined,\n );\n }\n latest.current.onOpenMeetings?.();\n return;\n }\n const recordingId = recorder?.recordingId ?? null;\n const recordingWorkspaceId = store.workspaceId?.() ?? null;\n if (request.kind === \"open\") {\n // The app's menu: show the meeting this page records, its live transcript.\n const opened =\n recordingId && recordingWorkspaceId && capturing(recorder?.state)\n ? store.openMeeting?.(recordingId, recordingWorkspaceId)\n : false;\n if (!opened) latest.current.onOpenMeetings?.();\n return;\n }\n if (request.kind !== \"stop\") return;\n if (!recorder || (recorder.state !== \"recording\" && recorder.state !== \"paused\")) return;\n void recorder.stop().then(() => {\n if (recordingId && recordingWorkspaceId) {\n store.openMeeting?.(recordingId, recordingWorkspaceId);\n }\n });\n });\n }, [store, canRecord]);\n}\n\n/** The start a desktop notification asked for, until the recorder panel takes it. */\nexport function usePendingMeetingStart(): {\n request: MeetingStartRequest | null;\n take: () => MeetingStartRequest | null;\n} {\n const store = useContext(MeetingRecorderContext);\n const request = useSyncExternalStore(\n store?.subscribe ?? noopSubscribe,\n store?.pendingStart ?? nullSnapshot,\n nullSnapshot,\n );\n return { request, take: store?.takeStart ?? nullSnapshot };\n}\n\n/** The live recorder, loading it on first use. Null until the capture code is ready. */\nexport function useMeetingRecorder(): {\n recorder: MeetingRecorder | null;\n finished: readonly string[];\n /** The workspace the recorder's recording is in; may differ from the one shown. */\n workspaceId: string | null;\n /**\n * Open a meeting the recorder made in its own workspace. False when the\n * host gave no way to, so the caller opens it as usual.\n */\n openMeeting: (recordingId: string, workspaceId: string) => boolean;\n} {\n const store = useContext(MeetingRecorderContext);\n useEffect(() => store?.activate(), [store]);\n const recorder = useSyncExternalStore(\n store?.subscribe ?? noopSubscribe,\n store?.get ?? nullSnapshot,\n nullSnapshot,\n );\n const finished = useSyncExternalStore(\n store?.subscribe ?? noopSubscribe,\n store?.finished ?? (() => NO_FINISHED),\n () => NO_FINISHED,\n );\n const workspaceId = useSyncExternalStore(\n store?.subscribe ?? noopSubscribe,\n store?.workspaceId ?? nullSnapshot,\n nullSnapshot,\n );\n return { recorder, finished, workspaceId, openMeeting: store?.openMeeting ?? neverOpens };\n}\n\n/** Only the recorder's state word, for the rail: re-renders on state changes, not on every tick. */\nexport function useMeetingRecorderState(): MeetingRecorder[\"state\"] | null {\n const store = useContext(MeetingRecorderContext);\n return useSyncExternalStore(\n store?.subscribe ?? noopSubscribe,\n () => store?.get()?.state ?? null,\n () => null,\n );\n}\n\n/**\n * The recorder's Start and Stop, for the app's actions (⌘K, keys, the desktop\n * menu bar). Null without a recorder provider. Re-renders on state changes,\n * not on every tick.\n */\nexport type MeetingRecorderControls = {\n /** The recorder's state; null until its capture code loads. */\n state: MeetingRecorder[\"state\"] | null;\n /** Whether this browser can record; null until the capture code loads. */\n supported: boolean | null;\n /**\n * Start recording as the Meetings page's Start recording button does, once\n * that page's recorder is ready; the caller shows Meetings next. Does\n * nothing while a recording is going.\n */\n requestStart: () => void;\n /** Stop the recording and open it, as a desktop call notification's Stop does. */\n stop: () => Promise<StoppedMeeting | null>;\n};\n\n/** The meeting a Stop ended; `opened` is false when the host gave no way to open it. */\nexport type StoppedMeeting = { recordingId: string; workspaceId: string; opened: boolean };\n\nexport function useMeetingRecorderControls(): MeetingRecorderControls | null {\n const store = useContext(MeetingRecorderContext);\n const state = useSyncExternalStore(\n store?.subscribe ?? noopSubscribe,\n () => store?.get()?.state ?? null,\n () => null,\n );\n const supported = useSyncExternalStore(\n store?.subscribe ?? noopSubscribe,\n () => store?.get()?.supported ?? null,\n () => null,\n );\n return useMemo(() => {\n if (!store) return null;\n return {\n state,\n supported,\n requestStart: () => {\n if (canStartRecording(store.get()?.state)) store.requestStart({ title: \"\" });\n },\n stop: async () => {\n const recorder = store.get();\n if (!recorder || (recorder.state !== \"recording\" && recorder.state !== \"paused\")) {\n return null;\n }\n const recordingId = recorder.recordingId;\n const recordingWorkspaceId = store.workspaceId?.() ?? null;\n await recorder.stop();\n if (!recordingId || !recordingWorkspaceId) return null;\n const opened = store.openMeeting?.(recordingId, recordingWorkspaceId) ?? false;\n return { recordingId, workspaceId: recordingWorkspaceId, opened };\n },\n };\n }, [store, state, supported]);\n}\n\nfunction noopSubscribe(): () => void {\n return () => {};\n}\n\nfunction nullSnapshot(): null {\n return null;\n}\n\nfunction neverOpens(): boolean {\n return false;\n}\n","/**\n * What the recorder's state word means for starting and keeping a recording.\n * Pure, so the app's action registry can read it without the recorder's\n * React context.\n */\nimport type { RecorderState } from \"@opengeni/sdk/recordings\";\n\n/** States in which the recorder holds a capture that unmounting its host would end. */\nexport function capturing(state: RecorderState | null | undefined): boolean {\n return (\n state === \"starting\" || state === \"recording\" || state === \"paused\" || state === \"stopping\"\n );\n}\n\n/**\n * States in which Start recording starts a new recording: nothing recorded\n * yet, the last one stopped, or the last start failed. Null is a recorder\n * whose capture code hasn't loaded yet.\n */\nexport function canStartRecording(state: RecorderState | null | undefined): boolean {\n return !capturing(state);\n}\n"],"mappings":";;;AAoBA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,kCAAkC;;;ACxBpC,SAAS,UAAU,OAAkD;AAC1E,SACE,UAAU,cAAc,UAAU,eAAe,UAAU,YAAY,UAAU;AAErF;AAOO,SAAS,kBAAkB,OAAkD;AAClF,SAAO,CAAC,UAAU,KAAK;AACzB;;;ADuNI,SAIM,KAJN;AA3JG,SAAS,2BACd,aAAyB,MAAM;AAAC,GAChC,gBAAuE,MAAM,OACvD;AACtB,MAAI,UAAkC;AACtC,MAAI,qBAAoC;AACxC,MAAI,WAAqB,CAAC;AAC1B,MAAI,UAAsC;AAC1C,QAAM,YAAY,oBAAI,IAAgB;AACtC,QAAM,SAAS,MAAM;AACnB,eAAW,YAAY,UAAW,UAAS;AAAA,EAC7C;AACA,SAAO;AAAA,IACL,KAAK,MAAM;AAAA,IACX,WAAW,CAAC,aAAa;AACvB,gBAAU,IAAI,QAAQ;AACtB,aAAO,MAAM,UAAU,OAAO,QAAQ;AAAA,IACxC;AAAA,IACA,KAAK,CAAC,UAAU,cAAc,SAAS;AACrC,gBAAU;AACV,2BAAqB,WAAW,cAAc;AAG9C,UAAI,WAAW,UAAU,UAAU,KAAK,EAAG,WAAU;AACrD,aAAO;AAAA,IACT;AAAA,IACA,aAAa,MAAM;AAAA,IACnB,UAAU,MAAM;AAAA,IAChB,cAAc,CAAC,gBAAgB;AAC7B,iBAAW,CAAC,GAAG,SAAS,OAAO,CAAC,OAAO,OAAO,WAAW,GAAG,WAAW;AACvE,aAAO;AAAA,IACT;AAAA,IACA,cAAc,MAAM;AAAA,IACpB,cAAc,CAAC,YAAY;AACzB,gBAAU;AACV,iBAAW;AACX,aAAO;AAAA,IACT;AAAA,IACA,WAAW,MAAM;AACf,YAAM,UAAU;AAChB,UAAI,SAAS;AACX,kBAAU;AACV,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,IACV,aAAa,CAAC,aAAa,gBAAgB,cAAc,aAAa,WAAW;AAAA,EACnF;AACF;AAEA,IAAM,yBAAyB,cAA2C,IAAI;AAEvE,IAAM,+BAA+B,uBAAuB;AAEnE,IAAM,mBAAmB,KAAK,MAAM,OAAO,6BAAiB,CAAC;AAE7D,IAAM,qBAAqB;AAG3B,eAAe,qBAAuC;AACpD,MAAI,OAAO,cAAc,eAAe,OAAO,UAAU,cAAc,WAAY,QAAO;AAC1F,MAAI;AACF,UAAM,YAAY,MAAM,UAAU,UAAU;AAC5C,WAAO,UAAU,KAAK,CAAC,aAAa,SAAS,SAAS,kBAAkB;AAAA,EAC1E,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAyBG;AACD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,QAAM,cAAc,OAAO,aAAa;AACxC,YAAU,MAAM;AACd,gBAAY,UAAU;AAAA,EACxB,CAAC;AACD,QAAM,QAAQ;AAAA,IACZ,MACE;AAAA,MACE,MAAM,UAAU,IAAI;AAAA,MACpB,CAAC,aAAa,yBAAyB;AACrC,YAAI,CAAC,YAAY,QAAS,QAAO;AACjC,oBAAY,QAAQ,aAAa,oBAAoB;AACrD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,YAAU,MAAM;AACd,QAAI,YAAY;AAChB,SAAK,mBAAmB,EAAE,KAAK,CAAC,UAAU;AACxC,UAAI,SAAS,CAAC,UAAW,WAAU,IAAI;AAAA,IACzC,CAAC;AACD,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,CAAC;AAKL,QAAM,OAAO;AAAA,IACX,MAAM;AAAA,IACN,MAAM,UAAU,MAAM,IAAI,GAAG,KAAK;AAAA,IAClC,MAAM;AAAA,EACR;AACA,4BAA0B,OAAO;AAAA;AAAA;AAAA,IAG/B,WAAW,UAAU,SAAS,gBAAgB,QAAQ;AAAA,IACtD,WAAW,UAAU;AAAA,IACrB;AAAA,EACF,CAAC;AAED,YAAU,MAAM;AACd,UAAM,UAAU;AAAA,EAClB,GAAG,CAAC,OAAO,KAAK,CAAC;AACjB,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,EAAE,OAAO,YAAY,CAAC;AACvD,MAAI,KAAK,UAAU,SAAU,CAAC,QAAQ,KAAK,gBAAgB,aAAc;AACvE,YAAQ,EAAE,OAAO,YAAY,CAAC;AAAA,EAChC;AACA,QAAM,kBAAkB,KAAK,UAAU,QAAQ,KAAK,cAAc;AAClE,SACE,qBAAC,uBAAuB,UAAvB,EAAgC,OAAO,OACrC;AAAA;AAAA,IACA,UAAU,UAAU,QAAQ,kBAC3B,oBAAC,YAAS,UAAU,MAClB;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,aAAa;AAAA,QACb;AAAA;AAAA,MAHK,GAAG,SAAS,EAAE,IAAI,eAAe;AAAA,IAIxC,GACF,IACE;AAAA,KACN;AAEJ;AAEA,IAAM,cAAiC,CAAC;AAOxC,SAAS,0BACP,OACA,YAKM;AACN,QAAM,SAAS,OAAO,UAAU;AAChC,YAAU,MAAM;AACd,WAAO,UAAU;AAAA,EACnB,CAAC;AACD,QAAM,YAAY,WAAW;AAC7B,YAAU,MAAM;AAGd,QAAI,CAAC,UAAW;AAIhB,UAAM,YAAY,2BAA2B;AAC7C,QAAI,CAAC,UAAW;AAChB,WAAO,UAAU,UAAU,CAAC,YAAY;AACtC,YAAM,WAAW,MAAM,IAAI;AAC3B,UAAI,QAAQ,SAAS,UAAU;AAG7B,YAAI,OAAO,QAAQ,UAAW;AAG9B,cAAM,QAA6B;AAAA,UACjC,OAAO,QAAQ;AAAA,UACf,aAAa;AAAA,UACb,GAAI,QAAQ,gBAAgB,EAAE,eAAe,QAAQ,cAAc,IAAI,CAAC;AAAA,QAC1E;AAIA,YAAI,kBAAkB,UAAU,KAAK,GAAG;AACtC,gBAAM,aAAa,KAAK;AAAA,QAC1B,WACE,QAAQ,YAAY,QACpB,aACC,SAAS,UAAU,eAAe,SAAS,UAAU,WACtD;AAEA,eAAK,SAAS,KAAK,EAAE;AAAA,YACnB,MAAM,MAAM,aAAa,KAAK;AAAA,YAC9B,MAAM;AAAA,UACR;AAAA,QACF;AACA,eAAO,QAAQ,iBAAiB;AAChC;AAAA,MACF;AACA,YAAM,cAAc,UAAU,eAAe;AAC7C,YAAM,uBAAuB,MAAM,cAAc,KAAK;AACtD,UAAI,QAAQ,SAAS,QAAQ;AAE3B,cAAM,SACJ,eAAe,wBAAwB,UAAU,UAAU,KAAK,IAC5D,MAAM,cAAc,aAAa,oBAAoB,IACrD;AACN,YAAI,CAAC,OAAQ,QAAO,QAAQ,iBAAiB;AAC7C;AAAA,MACF;AACA,UAAI,QAAQ,SAAS,OAAQ;AAC7B,UAAI,CAAC,YAAa,SAAS,UAAU,eAAe,SAAS,UAAU,SAAW;AAClF,WAAK,SAAS,KAAK,EAAE,KAAK,MAAM;AAC9B,YAAI,eAAe,sBAAsB;AACvC,gBAAM,cAAc,aAAa,oBAAoB;AAAA,QACvD;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH,GAAG,CAAC,OAAO,SAAS,CAAC;AACvB;AAGO,SAAS,yBAGd;AACA,QAAM,QAAQ,WAAW,sBAAsB;AAC/C,QAAM,UAAU;AAAA,IACd,OAAO,aAAa;AAAA,IACpB,OAAO,gBAAgB;AAAA,IACvB;AAAA,EACF;AACA,SAAO,EAAE,SAAS,MAAM,OAAO,aAAa,aAAa;AAC3D;AAGO,SAAS,qBAUd;AACA,QAAM,QAAQ,WAAW,sBAAsB;AAC/C,YAAU,MAAM,OAAO,SAAS,GAAG,CAAC,KAAK,CAAC;AAC1C,QAAM,WAAW;AAAA,IACf,OAAO,aAAa;AAAA,IACpB,OAAO,OAAO;AAAA,IACd;AAAA,EACF;AACA,QAAM,WAAW;AAAA,IACf,OAAO,aAAa;AAAA,IACpB,OAAO,aAAa,MAAM;AAAA,IAC1B,MAAM;AAAA,EACR;AACA,QAAM,cAAc;AAAA,IAClB,OAAO,aAAa;AAAA,IACpB,OAAO,eAAe;AAAA,IACtB;AAAA,EACF;AACA,SAAO,EAAE,UAAU,UAAU,aAAa,aAAa,OAAO,eAAe,WAAW;AAC1F;AAGO,SAAS,0BAA2D;AACzE,QAAM,QAAQ,WAAW,sBAAsB;AAC/C,SAAO;AAAA,IACL,OAAO,aAAa;AAAA,IACpB,MAAM,OAAO,IAAI,GAAG,SAAS;AAAA,IAC7B,MAAM;AAAA,EACR;AACF;AAyBO,SAAS,6BAA6D;AAC3E,QAAM,QAAQ,WAAW,sBAAsB;AAC/C,QAAM,QAAQ;AAAA,IACZ,OAAO,aAAa;AAAA,IACpB,MAAM,OAAO,IAAI,GAAG,SAAS;AAAA,IAC7B,MAAM;AAAA,EACR;AACA,QAAM,YAAY;AAAA,IAChB,OAAO,aAAa;AAAA,IACpB,MAAM,OAAO,IAAI,GAAG,aAAa;AAAA,IACjC,MAAM;AAAA,EACR;AACA,SAAO,QAAQ,MAAM;AACnB,QAAI,CAAC,MAAO,QAAO;AACnB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,cAAc,MAAM;AAClB,YAAI,kBAAkB,MAAM,IAAI,GAAG,KAAK,EAAG,OAAM,aAAa,EAAE,OAAO,GAAG,CAAC;AAAA,MAC7E;AAAA,MACA,MAAM,YAAY;AAChB,cAAM,WAAW,MAAM,IAAI;AAC3B,YAAI,CAAC,YAAa,SAAS,UAAU,eAAe,SAAS,UAAU,UAAW;AAChF,iBAAO;AAAA,QACT;AACA,cAAM,cAAc,SAAS;AAC7B,cAAM,uBAAuB,MAAM,cAAc,KAAK;AACtD,cAAM,SAAS,KAAK;AACpB,YAAI,CAAC,eAAe,CAAC,qBAAsB,QAAO;AAClD,cAAM,SAAS,MAAM,cAAc,aAAa,oBAAoB,KAAK;AACzE,eAAO,EAAE,aAAa,aAAa,sBAAsB,OAAO;AAAA,MAClE;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,OAAO,SAAS,CAAC;AAC9B;AAEA,SAAS,gBAA4B;AACnC,SAAO,MAAM;AAAA,EAAC;AAChB;AAEA,SAAS,eAAqB;AAC5B,SAAO;AACT;AAEA,SAAS,aAAsB;AAC7B,SAAO;AACT;","names":[]}
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  SessionProfileDialog
4
- } from "./chunk-3L465FBR.js";
4
+ } from "./chunk-6WB5UXMZ.js";
5
5
  import {
6
6
  CHANNEL_NAME_MAX_LENGTH
7
- } from "./chunk-74CBR5YE.js";
7
+ } from "./chunk-DQ32FKFQ.js";
8
8
 
9
9
  // src/app/components/rail/project-profile.tsx
10
10
  import { FolderIcon } from "lucide-react";
@@ -62,4 +62,4 @@ export {
62
62
  sameProjectAvatar,
63
63
  ProjectProfileDialog
64
64
  };
65
- //# sourceMappingURL=chunk-PYB4BFEC.js.map
65
+ //# sourceMappingURL=chunk-6BQLDL6R.js.map
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  useConnectSetupFlow
4
- } from "./chunk-SFIXTOOJ.js";
4
+ } from "./chunk-VWF6ILAR.js";
5
5
  import {
6
6
  copyTextToClipboard
7
7
  } from "./chunk-PEHTX3V7.js";
8
8
  import {
9
9
  useOpenGeniText
10
- } from "./chunk-QPQ7R77C.js";
10
+ } from "./chunk-7SU4YVZ5.js";
11
11
 
12
12
  // src/connect-setup.tsx
13
13
  import { useState } from "react";
@@ -306,4 +306,4 @@ export {
306
306
  accountServiceCapability,
307
307
  isServiceConnectProvider
308
308
  };
309
- //# sourceMappingURL=chunk-YJSCLGAW.js.map
309
+ //# sourceMappingURL=chunk-6EZYHJTL.js.map
@@ -34,19 +34,19 @@ import {
34
34
  turnSummaryFallbackLabel,
35
35
  webSearchPresentation,
36
36
  writeStdinPresentation
37
- } from "./chunk-ZW5YTIH3.js";
37
+ } from "./chunk-5PB46DAA.js";
38
38
  import {
39
39
  reviewFacts
40
40
  } from "./chunk-TZIACM2P.js";
41
41
  import {
42
42
  approvalsFromRequiresAction
43
- } from "./chunk-VXORMNU4.js";
43
+ } from "./chunk-YBHAAULA.js";
44
44
  import {
45
45
  learningRefusalBody,
46
46
  learningRefusalPlace,
47
47
  learningRefusalPlaceLabel,
48
48
  learningRefusalTitle
49
- } from "./chunk-PF2WU2IL.js";
49
+ } from "./chunk-ND4IQJUM.js";
50
50
  import {
51
51
  invokedToolCall
52
52
  } from "./chunk-5FLYHX5R.js";
@@ -63,7 +63,7 @@ import {
63
63
  Markdown,
64
64
  decisionCardClass,
65
65
  decisionCardPad
66
- } from "./chunk-EKJHOWTZ.js";
66
+ } from "./chunk-74UGYVCA.js";
67
67
  import {
68
68
  ActivityDisclosure,
69
69
  BodyNote,
@@ -79,14 +79,14 @@ import {
79
79
  ToolOutputPreviewProvider,
80
80
  useForcedDefaultOpen,
81
81
  useTimelineSearchReveal
82
- } from "./chunk-OBGOLHCP.js";
82
+ } from "./chunk-T4HK4XCI.js";
83
83
  import {
84
84
  useToolDetails
85
85
  } from "./chunk-RZLBICR5.js";
86
86
  import {
87
87
  LoadFailureNotice,
88
88
  isChunkLoadError
89
- } from "./chunk-LPKJ77EK.js";
89
+ } from "./chunk-HNTZ7B7M.js";
90
90
  import {
91
91
  redactDeep,
92
92
  redactToolCall,
@@ -95,7 +95,7 @@ import {
95
95
  import {
96
96
  PatchApplyCommand,
97
97
  useRetainedImageObjectUrl
98
- } from "./chunk-OCXEY7HE.js";
98
+ } from "./chunk-CWL27YTB.js";
99
99
  import {
100
100
  isPatchFilename,
101
101
  isRetainedImageContentType,
@@ -119,7 +119,7 @@ import {
119
119
  } from "./chunk-NPNX7LTL.js";
120
120
  import {
121
121
  ShimmerText
122
- } from "./chunk-XVLEBB4Y.js";
122
+ } from "./chunk-TBWL6YWL.js";
123
123
  import {
124
124
  formatBytes,
125
125
  truncate,
@@ -135,7 +135,7 @@ import {
135
135
  } from "./chunk-TXS65BB2.js";
136
136
  import {
137
137
  useOpenGeniText
138
- } from "./chunk-QPQ7R77C.js";
138
+ } from "./chunk-7SU4YVZ5.js";
139
139
 
140
140
  // src/components/tool-action-review.tsx
141
141
  import {
@@ -2730,7 +2730,7 @@ function ReviewedGenericRenderer(props) {
2730
2730
  );
2731
2731
  }
2732
2732
  var LazyPaymentPageCard = lazy2(
2733
- () => import("./payment-page-card-DJDKV2LW.js").then((module) => ({ default: module.PaymentPageCard }))
2733
+ () => import("./payment-page-card-IJFZHQ52.js").then((module) => ({ default: module.PaymentPageCard }))
2734
2734
  );
2735
2735
  function AppActionCallRenderer(props) {
2736
2736
  const page = paymentPageOf(props.item);
@@ -3276,8 +3276,8 @@ function useSeenActivityIds() {
3276
3276
 
3277
3277
  // src/timeline/activity-rail.tsx
3278
3278
  import { Fragment as Fragment5, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
3279
- var LazyFleetDecisionRow = lazy3(() => import("./fleet-decision-row-U7LDVBEM.js"));
3280
- var LazyPlatformActivityRow = lazy3(() => import("./platform-activity-row-MSDCSMET.js"));
3279
+ var LazyFleetDecisionRow = lazy3(() => import("./fleet-decision-row-XKQ3GMYT.js"));
3280
+ var LazyPlatformActivityRow = lazy3(() => import("./platform-activity-row-MFCMGI43.js"));
3281
3281
  function familyOf(item) {
3282
3282
  if (item.kind === "tool-call") {
3283
3283
  return item.name === "exec_command" || item.name === "write_stdin" ? "terminal" : item.name;
@@ -4043,6 +4043,12 @@ function turnSummaryStatusLine(t, status) {
4043
4043
  formatElapsed(t, status.durationMs)
4044
4044
  ] }) : null;
4045
4045
  }
4046
+ if (status.kind === "paused") {
4047
+ return /* @__PURE__ */ jsxs9("span", { "data-og-exchange-status": "paused", children: [
4048
+ status.label ?? t("timeline.turnSummary.paused"),
4049
+ status.durationMs !== void 0 && Number.isFinite(status.durationMs) && status.durationMs >= 1e3 ? /* @__PURE__ */ jsx14("span", { className: "tabular-nums", children: ` \xB7 ${formatElapsed(t, status.durationMs)}` }) : null
4050
+ ] });
4051
+ }
4046
4052
  const label = status.label ?? (status.kind === "working" ? t("timeline.turnSummary.working") : t("timeline.turnSummary.waiting"));
4047
4053
  return /* @__PURE__ */ jsxs9("span", { "data-og-exchange-status": status.kind, children: [
4048
4054
  status.kind === "working" ? /* @__PURE__ */ jsx14(ShimmerText, { children: label }) : /* @__PURE__ */ jsx14("span", { children: label }),
@@ -4156,4 +4162,4 @@ export {
4156
4162
  LearningRefusalActionsProvider,
4157
4163
  LearningRefusalRow
4158
4164
  };
4159
- //# sourceMappingURL=chunk-OWET7EY2.js.map
4165
+ //# sourceMappingURL=chunk-6GW7NJMK.js.map