@opengeni/react 4.3.3-canary.39786771332001 → 4.5.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 (710) hide show
  1. package/dist/app/app-state.js +29 -29
  2. package/dist/app/components/Composer.js +27 -27
  3. package/dist/app/components/agent/agent-capability-picker.js +4 -4
  4. package/dist/app/components/artifacts/artifact-browse-controls.js +2 -2
  5. package/dist/app/components/artifacts/artifact-library.js +19 -19
  6. package/dist/app/components/artifacts/artifact-page-chrome.js +2 -2
  7. package/dist/app/components/artifacts/chat-interactive-block.js +16 -16
  8. package/dist/app/components/artifacts/inline-chat-image.js +31 -30
  9. package/dist/app/components/artifacts/retained-file-preview.js +35 -34
  10. package/dist/app/components/artifacts/retained-text-preview.js +5 -5
  11. package/dist/app/components/artifacts/site-audience.js +4 -4
  12. package/dist/app/components/artifacts/site-conversations.js +22 -21
  13. package/dist/app/components/artifacts/site-data.js +19 -19
  14. package/dist/app/components/artifacts/site-publishing.js +41 -41
  15. package/dist/app/components/artifacts/site-settings.js +50 -50
  16. package/dist/app/components/billing-class-mark.js +5 -5
  17. package/dist/app/components/capabilities/capability-detail-sheet.js +9 -9
  18. package/dist/app/components/capabilities/capability-logo-source.js +12 -12
  19. package/dist/app/components/capabilities/connector-tool-permissions.js +3 -3
  20. package/dist/app/components/capabilities/native-connect-setup.js +14 -14
  21. package/dist/app/components/capabilities/perform-capability-action.js +1 -1
  22. package/dist/app/components/capabilities/prepared-mcp-setup-card.js +16 -16
  23. package/dist/app/components/capabilities/session-capability-card.js +94 -76
  24. package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
  25. package/dist/app/components/capabilities/session-chrome-card.css +1023 -0
  26. package/dist/app/components/capabilities/session-chrome-card.css.map +1 -0
  27. package/dist/app/components/capabilities/session-chrome-card.d.ts +18 -0
  28. package/dist/app/components/capabilities/session-chrome-card.js +72 -0
  29. package/dist/app/components/capabilities/session-custom-mcp-card.js +20 -20
  30. package/dist/app/components/capabilities/session-github-card.js +24 -24
  31. package/dist/app/components/capabilities/session-machine-card.d.ts +27 -1
  32. package/dist/app/components/capabilities/session-machine-card.js +40 -36
  33. package/dist/app/components/capabilities/use-capabilities-catalog.js +3 -3
  34. package/dist/app/components/capabilities/use-connection-accounts.js +1 -1
  35. package/dist/app/components/command-menu/chat-status.js +18 -17
  36. package/dist/app/components/command-menu/chat-switcher.js +19 -18
  37. package/dist/app/components/command-menu/chat-switcher.js.map +1 -1
  38. package/dist/app/components/command-menu/command-menu.js +36 -114
  39. package/dist/app/components/command-menu/command-menu.js.map +1 -1
  40. package/dist/app/components/command-menu/shortcut-sheet.js +17 -17
  41. package/dist/app/components/composer-capabilities-menu-body.js +3 -3
  42. package/dist/app/components/composer-mobile-plus-panel.js +20 -20
  43. package/dist/app/components/composer-mobile-plus.js +1 -1
  44. package/dist/app/components/credit-required-gate.js +1 -1
  45. package/dist/app/components/credit-required-prompt.js +12 -12
  46. package/dist/app/components/credits/coupon-redeem.js +2 -2
  47. package/dist/app/components/credits/credit-refusal-notice.js +2 -2
  48. package/dist/app/components/desktop/app-shots.js +7 -7
  49. package/dist/app/components/desktop/this-computer.js +4 -4
  50. package/dist/app/components/feedback.js +4 -4
  51. package/dist/app/components/follow-up-repository-menu-body.js +5 -5
  52. package/dist/app/components/follow-up-repository-picker.js +1 -1
  53. package/dist/app/components/github-app-connect-launcher.js +2 -2
  54. package/dist/app/components/in-app-help-link.js +2 -2
  55. package/dist/app/components/knowledge/agent-learning-settings.js +3 -3
  56. package/dist/app/components/machines/connect-machine-dialog.js +18 -18
  57. package/dist/app/components/markdown.js +9 -9
  58. package/dist/app/components/message-context-pills.js +2 -2
  59. package/dist/app/components/models/models-ui.js +8 -8
  60. package/dist/app/components/new-session-starters.js +2 -2
  61. package/dist/app/components/pickers.js +9 -9
  62. package/dist/app/components/rail/rail-context.js +2 -2
  63. package/dist/app/components/rail/rail-sections.js +69 -66
  64. package/dist/app/components/rail/session-header.js +49 -48
  65. package/dist/app/components/rail/session-list.js +68 -65
  66. package/dist/app/components/rail/session-row-content.d.ts +6 -2
  67. package/dist/app/components/rail/session-row-content.js +1 -1
  68. package/dist/app/components/rail/session-row-hover-details.js +24 -23
  69. package/dist/app/components/rail/session-shell.js +107 -104
  70. package/dist/app/components/rail/site-session-group-heading.d.ts +7 -1
  71. package/dist/app/components/rail/site-session-group-heading.js +20 -3
  72. package/dist/app/components/repository-picker.js +5 -5
  73. package/dist/app/components/secrets/session-secrets-panel.js +3 -3
  74. package/dist/app/components/session/agent-configuration-panel.js +38 -38
  75. package/dist/app/components/session/artifact-link-boundary.js +2 -2
  76. package/dist/app/components/session/artifact-session-page.js +4 -4
  77. package/dist/app/components/session/banners.js +11 -11
  78. package/dist/app/components/session/codex-account-indicator.js +12 -12
  79. package/dist/app/components/session/editable-artifacts-workspace.js +45 -45
  80. package/dist/app/components/session/failed-session-banner.js +11 -11
  81. package/dist/app/components/session/human-input.js +59 -55
  82. package/dist/app/components/session/inspector.js +91 -87
  83. package/dist/app/components/session/inspector.js.map +1 -1
  84. package/dist/app/components/session/message-actions.js +4 -4
  85. package/dist/app/components/session/message-resource-attachments.js +21 -20
  86. package/dist/app/components/session/message-resource-attachments.js.map +1 -1
  87. package/dist/app/components/session/model-account-indicator.js +11 -11
  88. package/dist/app/components/session/model-context-inspector.js +2 -2
  89. package/dist/app/components/session/model-recovery-notice.js +3 -3
  90. package/dist/app/components/session/new-session-settings-menu.js +12 -12
  91. package/dist/app/components/session/sandbox-switcher.js +16 -16
  92. package/dist/app/components/session/sandbox-workspace.js +83 -79
  93. package/dist/app/components/session/search-markdown-highlight.js +10 -10
  94. package/dist/app/components/session/search-results-view.js +11 -11
  95. package/dist/app/components/session/session-admin-access.js +9 -9
  96. package/dist/app/components/session/session-admission-notice.js +6 -6
  97. package/dist/app/components/session/session-machine-access-notice.js +6 -6
  98. package/dist/app/components/session/session-retention.js +4 -4
  99. package/dist/app/components/session/session-search-dialog.js +12 -12
  100. package/dist/app/components/session/session-skill-reviews.js +1 -1
  101. package/dist/app/components/session/session-tenancy-control.d.ts +2 -0
  102. package/dist/app/components/session/session-tenancy-control.js +41 -26
  103. package/dist/app/components/session/session-tenancy-control.js.map +1 -1
  104. package/dist/app/components/session/session-usage-limit-section.js +11 -11
  105. package/dist/app/components/session/session-wait-status.js +10 -9
  106. package/dist/app/components/session/session-wait-status.js.map +1 -1
  107. package/dist/app/components/session/site-origin-link.d.ts +1 -0
  108. package/dist/app/components/session/site-origin-link.js +2 -2
  109. package/dist/app/components/session/subagents.js +17 -16
  110. package/dist/app/components/session-connectors-menu-body.js +5 -5
  111. package/dist/app/components/settings/row-select.js +1 -1
  112. package/dist/app/components/transcription-settings.js +2 -2
  113. package/dist/app/components/ui/destructive-confirm.js +6 -6
  114. package/dist/app/components/usage/usage-entry.js +8 -8
  115. package/dist/app/components/workspace-composer-plus.js +22 -22
  116. package/dist/app/embed/memory-navigation.js +2 -2
  117. package/dist/app/embed/session-app.js +275 -269
  118. package/dist/app/lib/actions/actions-provider.js +14 -14
  119. package/dist/app/lib/actions/held-modifier.d.ts +11 -0
  120. package/dist/app/lib/app-surfaces.js +2 -2
  121. package/dist/app/lib/codex-usage-query.js +6 -6
  122. package/dist/app/lib/composer-connectors.js +13 -13
  123. package/dist/app/lib/console-site.d.ts +6 -0
  124. package/dist/app/lib/console-site.js +14 -0
  125. package/dist/app/lib/console-text.js +2 -2
  126. package/dist/app/lib/events.js +18 -17
  127. package/dist/app/lib/failed-session-copy.js +3 -3
  128. package/dist/app/lib/model-access-onboarding.js +3 -3
  129. package/dist/app/lib/move-chat-to-machine.js +3 -3
  130. package/dist/app/lib/navigation.d.ts +5 -0
  131. package/dist/app/lib/navigation.js +1 -1
  132. package/dist/app/lib/routes.d.ts +17 -0
  133. package/dist/app/lib/routes.js +9 -3
  134. package/dist/app/lib/session-branch-cache.js +14 -13
  135. package/dist/app/lib/session-create.js +2 -2
  136. package/dist/app/lib/session-deep-link.js +2 -2
  137. package/dist/app/lib/session-failure-toasts.d.ts +8 -0
  138. package/dist/app/lib/session-group-pagination.js +14 -13
  139. package/dist/app/lib/session-hover-facts.js +15 -14
  140. package/dist/app/lib/session-model.js +3 -3
  141. package/dist/app/lib/session-rail.js +10 -9
  142. package/dist/app/lib/session-rename.js +3 -3
  143. package/dist/app/lib/session-ui-features.d.ts +6 -1
  144. package/dist/app/lib/session-ui-features.js +1 -1
  145. package/dist/app/lib/sessions-group.d.ts +43 -3
  146. package/dist/app/lib/sessions-group.js +22 -15
  147. package/dist/app/lib/shared-query.js +3 -3
  148. package/dist/app/lib/site-opened.d.ts +6 -0
  149. package/dist/app/lib/site-opened.js +10 -0
  150. package/dist/app/lib/turn-failure-analytics.js +5 -5
  151. package/dist/app/lib/use-duplicate-site.js +3 -3
  152. package/dist/app/lib/use-follow-up-repositories.js +4 -4
  153. package/dist/app/lib/use-session-list-hint-refresh.d.ts +20 -2
  154. package/dist/app/lib/use-session-list-hint-refresh.js +5 -1
  155. package/dist/app/lib/use-workspace-machines.js +6 -6
  156. package/dist/app/lib/use-workspace-model-catalog.js +8 -8
  157. package/dist/app/lib/use-workspace-rigs.js +8 -8
  158. package/dist/app/lib/workspace-navigation-preference.js +5 -5
  159. package/dist/app/lib/workspace-scope-context.js +4 -4
  160. package/dist/app/routes/artifacts.js +136 -153
  161. package/dist/app/routes/artifacts.js.map +1 -1
  162. package/dist/app/routes/retained-artifact.js +63 -62
  163. package/dist/app/routes/retained-artifact.js.map +1 -1
  164. package/dist/app/routes/session-unavailable.js +7 -5
  165. package/dist/app/routes/session.js +177 -173
  166. package/dist/app/routes/sessions-index-hydration.js +3 -3
  167. package/dist/app/routes/sessions-index.js +123 -121
  168. package/dist/app/routes/site-view.d.ts +11 -0
  169. package/dist/app/routes/site-view.js +597 -0
  170. package/dist/app/routes/site-view.js.map +1 -0
  171. package/dist/artifacts-document.js +4 -4
  172. package/dist/artifacts-presentation.js +4 -4
  173. package/dist/artifacts-spreadsheet.js +4 -4
  174. package/dist/artifacts.js +39 -39
  175. package/dist/{browser-viewer-RYYQSRTC.js → browser-viewer-QMCNV4RI.js} +9 -7
  176. package/dist/{chat-interactive-block-ABCRKXJ4.js → chat-interactive-block-PMIAUXSO.js} +6 -6
  177. package/dist/{chunk-GIZGNFIX.js → chunk-22FFOHPT.js} +11 -11
  178. package/dist/chunk-22GTC4MZ.js +15 -0
  179. package/dist/chunk-22GTC4MZ.js.map +1 -0
  180. package/dist/{chunk-Z5WMLJKI.js → chunk-22JFMNMF.js} +92 -4
  181. package/dist/chunk-22JFMNMF.js.map +1 -0
  182. package/dist/{chunk-UHFWF6ZU.js → chunk-2FPS5H2D.js} +2 -2
  183. package/dist/{chunk-NAWXARTY.js → chunk-2KO2G3RI.js} +72 -6
  184. package/dist/chunk-2KO2G3RI.js.map +1 -0
  185. package/dist/{chunk-5POTDNQT.js → chunk-2NC7NZCE.js} +6 -6
  186. package/dist/{chunk-ZKYYZH6L.js → chunk-2QBYDGWO.js} +9 -9
  187. package/dist/{chunk-TWXIFWBD.js → chunk-34EU25RL.js} +2 -2
  188. package/dist/{chunk-LQKKSUCR.js → chunk-35BC2FU2.js} +19 -19
  189. package/dist/{chunk-PTGRFAMH.js → chunk-3ABPIUCK.js} +2 -2
  190. package/dist/{chunk-S4SC5SSV.js → chunk-3GU7AWG7.js} +18 -18
  191. package/dist/{chunk-722UO6YQ.js → chunk-3PEXVG4D.js} +2 -2
  192. package/dist/{chunk-OQAAI33Y.js → chunk-3RMKPHBL.js} +3 -3
  193. package/dist/{chunk-6JKZILLF.js → chunk-3RQUWFZT.js} +67 -67
  194. package/dist/{chunk-6JKZILLF.js.map → chunk-3RQUWFZT.js.map} +1 -1
  195. package/dist/{chunk-GCGTYXJJ.js → chunk-3STBLX4O.js} +9 -9
  196. package/dist/{chunk-YXIW7H4N.js → chunk-3X5FKDYQ.js} +28 -28
  197. package/dist/{chunk-KTRKZRID.js → chunk-4GLLWX33.js} +11 -11
  198. package/dist/{chunk-ROQOVH4N.js → chunk-4HEXNAFI.js} +20 -20
  199. package/dist/chunk-4HEXNAFI.js.map +1 -0
  200. package/dist/{chunk-SD2K5ZN5.js → chunk-4LPA25NQ.js} +4 -4
  201. package/dist/{chunk-DKCX643S.js → chunk-4RMN4E2Y.js} +13 -13
  202. package/dist/{chunk-E5FCEDMU.js → chunk-4SAGYEVB.js} +2 -2
  203. package/dist/{chunk-HTT3FB7T.js → chunk-4VK2R5QC.js} +3 -3
  204. package/dist/{chunk-CKG2EG62.js → chunk-4XQC7VLT.js} +14 -14
  205. package/dist/{chunk-IVOA3DXA.js → chunk-4YXAQMTD.js} +12 -12
  206. package/dist/{chunk-HOJGAJAB.js → chunk-52WK2GGK.js} +8 -8
  207. package/dist/{chunk-NYZQ7LO7.js → chunk-552UYIQ7.js} +20 -20
  208. package/dist/{chunk-LEXPBQ56.js → chunk-5DSKMG2I.js} +4 -4
  209. package/dist/{chunk-WNG757ID.js → chunk-5FA455GR.js} +4 -4
  210. package/dist/{chunk-MNWQAYY3.js → chunk-5FEN3KYH.js} +11 -11
  211. package/dist/{chunk-OSVHU2WU.js → chunk-5JHRMUAZ.js} +12 -12
  212. package/dist/{chunk-PM3OSANE.js → chunk-5MJHH72T.js} +14 -3
  213. package/dist/chunk-5MJHH72T.js.map +1 -0
  214. package/dist/{chunk-RKB2Z457.js → chunk-5VGJXWQ2.js} +2 -2
  215. package/dist/{chunk-GFUUFM2O.js → chunk-5W6ZDKRR.js} +6 -6
  216. package/dist/{chunk-NDETTZQA.js → chunk-5W7KJ5NQ.js} +37 -37
  217. package/dist/{chunk-Q35YZVDZ.js → chunk-5Y2FPLZE.js} +9 -9
  218. package/dist/{chunk-6W3LF3DB.js → chunk-5YFY4SFC.js} +2 -12
  219. package/dist/chunk-5YFY4SFC.js.map +1 -0
  220. package/dist/{chunk-F3NERYBQ.js → chunk-62VER7O4.js} +6 -6
  221. package/dist/{chunk-FBMU3VK5.js → chunk-6DCEDIF6.js} +2 -2
  222. package/dist/{chunk-WUHB422G.js → chunk-73WI7FL2.js} +18 -18
  223. package/dist/chunk-756MKA2J.js +45 -0
  224. package/dist/chunk-756MKA2J.js.map +1 -0
  225. package/dist/{chunk-QECZVL7S.js → chunk-7FJMRJDG.js} +2 -2
  226. package/dist/{chunk-7KGKDWWR.js → chunk-7HFLYNWN.js} +2 -2
  227. package/dist/{chunk-XVM566II.js → chunk-7KIENXRE.js} +2 -2
  228. package/dist/{chunk-CBY5CXBD.js → chunk-7NPCEBZE.js} +5 -5
  229. package/dist/{chunk-46VBQG2D.js → chunk-7P4AQMGA.js} +13 -13
  230. package/dist/{chunk-CKZW7A5S.js → chunk-7TCT7KPQ.js} +742 -644
  231. package/dist/chunk-7TCT7KPQ.js.map +1 -0
  232. package/dist/{chunk-O77Q4NG2.js → chunk-7XO7YKPC.js} +283 -1038
  233. package/dist/chunk-7XO7YKPC.js.map +1 -0
  234. package/dist/{chunk-S7PVL7XH.js → chunk-A4BD4ZVB.js} +4 -4
  235. package/dist/{chunk-VSQHDBHU.js → chunk-ACL2V2KE.js} +68 -35
  236. package/dist/chunk-ACL2V2KE.js.map +1 -0
  237. package/dist/{chunk-73SOCVLS.js → chunk-AIEXYO2X.js} +3 -3
  238. package/dist/{chunk-U7TC2XJQ.js → chunk-AJPW3SV4.js} +3 -3
  239. package/dist/{chunk-HRJQAFKR.js → chunk-AX6YJA5U.js} +2 -2
  240. package/dist/{chunk-P5WABK2H.js → chunk-BCM7C3MJ.js} +9 -9
  241. package/dist/{chunk-DT7BORXG.js → chunk-BMJTNPWK.js} +2 -2
  242. package/dist/{chunk-HIHO2QE7.js → chunk-BT2MVGHT.js} +2 -2
  243. package/dist/{chunk-3XOISKZC.js → chunk-BXQYAAVE.js} +4 -4
  244. package/dist/{chunk-IBTXYLBW.js → chunk-CCFWY4GF.js} +2 -2
  245. package/dist/{chunk-ZOC3OP6F.js → chunk-CCR33J7L.js} +2 -2
  246. package/dist/{chunk-GTQ3SNEI.js → chunk-CD3MO3IC.js} +2 -2
  247. package/dist/{chunk-WSMYOLHG.js → chunk-CDEXRJB6.js} +5 -5
  248. package/dist/{chunk-3GLAPCVI.js → chunk-CFFNT2OY.js} +8 -8
  249. package/dist/{chunk-FUSFVUIJ.js → chunk-CMLJSF2F.js} +12 -12
  250. package/dist/{chunk-O4DYOSOL.js → chunk-CP7ZQHBW.js} +13 -13
  251. package/dist/{chunk-IOKSNX74.js → chunk-D5OWJZQR.js} +2 -2
  252. package/dist/{chunk-SQGXMHJO.js → chunk-DGLRZMXL.js} +3 -3
  253. package/dist/{chunk-GNEHAPKV.js → chunk-DJFTH2DI.js} +3 -3
  254. package/dist/{chunk-HQG4SLTE.js → chunk-DYJGYGPB.js} +2 -2
  255. package/dist/{chunk-4EAF3HSD.js → chunk-EJ7WARW7.js} +2 -2
  256. package/dist/{chunk-3AA6RNGE.js → chunk-ENS6E4RZ.js} +2 -2
  257. package/dist/{chunk-OOEO4MKY.js → chunk-EPWD4KRA.js} +2 -2
  258. package/dist/{chunk-V5RJAWRP.js → chunk-EQE3MNQN.js} +5 -5
  259. package/dist/{chunk-TSBE4KOQ.js → chunk-EWL6NDOO.js} +3 -3
  260. package/dist/{chunk-OO2T63BY.js → chunk-EYS4ZOF5.js} +2 -2
  261. package/dist/{chunk-IC7KNOBB.js → chunk-FDAV72IX.js} +7 -7
  262. package/dist/{chunk-AG7VGUIW.js → chunk-FFNPUSVO.js} +7 -7
  263. package/dist/{chunk-P5T36BA3.js → chunk-FRP64DEK.js} +2 -2
  264. package/dist/{chunk-KBF3SE7G.js → chunk-FSP334UU.js} +2 -2
  265. package/dist/{chunk-ZHFKMMOT.js → chunk-FTX5CNHA.js} +6 -6
  266. package/dist/{chunk-KYBALSWW.js → chunk-FWOBNL2A.js} +1 -1
  267. package/dist/{chunk-HJ5XWW62.js → chunk-FWYEZ3LE.js} +34 -34
  268. package/dist/{chunk-WSLPZ43N.js → chunk-G4HQUBO4.js} +12 -12
  269. package/dist/{chunk-CSHBR2IZ.js → chunk-GDLDBR6B.js} +2 -2
  270. package/dist/chunk-GGV4NSG3.js +792 -0
  271. package/dist/chunk-GGV4NSG3.js.map +1 -0
  272. package/dist/{chunk-G3S2F35T.js → chunk-GHHM6WN4.js} +3 -3
  273. package/dist/{chunk-OANSIX34.js → chunk-GRSODLVO.js} +4 -4
  274. package/dist/{chunk-DDIBZA4X.js → chunk-GT7JFQ4E.js} +405 -148
  275. package/dist/chunk-GT7JFQ4E.js.map +1 -0
  276. package/dist/{chunk-EU6XSQFM.js → chunk-GXW2I2M2.js} +2 -2
  277. package/dist/{chunk-4246UYVG.js → chunk-GZS37O3G.js} +1 -1
  278. package/dist/{chunk-XFNLU7EW.js → chunk-H5M33DAL.js} +15 -6
  279. package/dist/chunk-H5M33DAL.js.map +1 -0
  280. package/dist/{chunk-Y7WMW74G.js → chunk-HQWVDQXW.js} +7 -7
  281. package/dist/{chunk-YTZQV2DD.js → chunk-HU6JTNWF.js} +2 -2
  282. package/dist/{chunk-QRVNI5V6.js → chunk-I6KIQKU6.js} +3 -3
  283. package/dist/{chunk-Q262Y2YX.js → chunk-IBA5FMRE.js} +141 -137
  284. package/dist/chunk-IBA5FMRE.js.map +1 -0
  285. package/dist/{chunk-BNUPYHHZ.js → chunk-IDXTASGN.js} +4 -4
  286. package/dist/{chunk-KF3MF6FP.js → chunk-IECRGM6K.js} +3 -2
  287. package/dist/chunk-IECRGM6K.js.map +1 -0
  288. package/dist/chunk-IJYL5BZM.js +38 -0
  289. package/dist/chunk-IJYL5BZM.js.map +1 -0
  290. package/dist/{chunk-L6RXRRN3.js → chunk-ILDOW2IQ.js} +3 -3
  291. package/dist/{chunk-VUHPA3XQ.js → chunk-ITX2TB4K.js} +6 -6
  292. package/dist/{chunk-ETCB6SUJ.js → chunk-J22HD2PB.js} +6 -6
  293. package/dist/{chunk-U47YDYLQ.js → chunk-J5MEDX7C.js} +8 -8
  294. package/dist/{chunk-6VQTHC4W.js → chunk-J7FBBLHF.js} +36 -36
  295. package/dist/{chunk-5JZYPZ72.js → chunk-JFK7NTEA.js} +4 -4
  296. package/dist/chunk-JFK7NTEA.js.map +1 -0
  297. package/dist/{chunk-QZRDCFHI.js → chunk-JM4HQPAI.js} +5 -5
  298. package/dist/{chunk-PIVGX42P.js → chunk-JNY5MT3I.js} +2 -2
  299. package/dist/{chunk-XWWXIZFP.js → chunk-JO6R5EXF.js} +7 -7
  300. package/dist/{chunk-MM7OKOTE.js → chunk-JQCGPTZ6.js} +9 -9
  301. package/dist/chunk-JRSNCSZN.js +37 -0
  302. package/dist/chunk-JRSNCSZN.js.map +1 -0
  303. package/dist/{chunk-KNFDWNCH.js → chunk-JXT5QDJC.js} +5 -5
  304. package/dist/{chunk-OR37STQZ.js → chunk-KEXYBG7Q.js} +3 -3
  305. package/dist/{chunk-AZVANYMB.js → chunk-KUNFUSZ7.js} +2 -2
  306. package/dist/{chunk-DXZNDKQD.js → chunk-LEEJBZ5B.js} +2 -2
  307. package/dist/{chunk-STUCI6QA.js → chunk-LEKBNKLD.js} +1 -1
  308. package/dist/{chunk-STUCI6QA.js.map → chunk-LEKBNKLD.js.map} +1 -1
  309. package/dist/{chunk-C535KSTY.js → chunk-LF5CBAOS.js} +4 -4
  310. package/dist/{chunk-BJIZ7PL7.js → chunk-LHLK7FUA.js} +145 -29
  311. package/dist/chunk-LHLK7FUA.js.map +1 -0
  312. package/dist/{chunk-RIMKJBCD.js → chunk-LMPTC4CX.js} +2 -2
  313. package/dist/{chunk-3KVWXKD6.js → chunk-LQ47YL6E.js} +2 -2
  314. package/dist/{chunk-H5WGWAYX.js → chunk-LT4J7RHI.js} +13 -13
  315. package/dist/{chunk-DSGMYES6.js → chunk-MCTTONOW.js} +28 -28
  316. package/dist/{chunk-IGHELZI7.js → chunk-MIECLOQC.js} +9 -9
  317. package/dist/{chunk-FM4OUCC2.js → chunk-MOKYT3X3.js} +3 -3
  318. package/dist/{chunk-GZ64CASI.js → chunk-MVZYNZXE.js} +5 -4
  319. package/dist/chunk-MVZYNZXE.js.map +1 -0
  320. package/dist/{chunk-RKILMLA7.js → chunk-MXLKI7BI.js} +3 -3
  321. package/dist/{chunk-45WYYFP6.js → chunk-N3ZP4IDU.js} +2 -2
  322. package/dist/{chunk-XRRSFQEV.js → chunk-NAZZLAWX.js} +2 -2
  323. package/dist/{chunk-UWJ5P5CU.js → chunk-NEK4WB5P.js} +3 -3
  324. package/dist/{chunk-6L7U46Y2.js → chunk-NKNVIO66.js} +2 -2
  325. package/dist/{chunk-JKUICTLM.js → chunk-NLAFNMPK.js} +2 -2
  326. package/dist/{chunk-4LKNIGHB.js → chunk-O2SBHS2N.js} +2 -2
  327. package/dist/{chunk-D3RK3NGM.js → chunk-PCFK7HKD.js} +17 -17
  328. package/dist/{chunk-VVCDB2T7.js → chunk-PCJLH45G.js} +3 -3
  329. package/dist/{chunk-PZ24CYDO.js → chunk-PFAUGEV5.js} +2 -2
  330. package/dist/{chunk-HGMWMK5K.js → chunk-PO3BH3KQ.js} +2 -2
  331. package/dist/{chunk-B74GSYR6.js → chunk-PUTS4DYW.js} +2 -2
  332. package/dist/{chunk-JSIDLTTG.js → chunk-PZ2V2XIK.js} +2 -2
  333. package/dist/{chunk-TMEQPODK.js → chunk-PZ37VDB5.js} +2 -2
  334. package/dist/{chunk-QIYBOFUV.js → chunk-QFMLAT7L.js} +246 -237
  335. package/dist/chunk-QFMLAT7L.js.map +1 -0
  336. package/dist/{chunk-LVONK3YQ.js → chunk-QRKTESVE.js} +2 -2
  337. package/dist/{chunk-HT5WSUC7.js → chunk-QXEDIDBZ.js} +3 -3
  338. package/dist/{chunk-WURSS6MP.js → chunk-R66YMYJU.js} +2 -2
  339. package/dist/{chunk-HDHK3SXK.js → chunk-RFLYID6H.js} +5 -5
  340. package/dist/{chunk-V77JK73U.js → chunk-RIYZFKIM.js} +37 -35
  341. package/dist/chunk-RIYZFKIM.js.map +1 -0
  342. package/dist/{chunk-VMFID36H.js → chunk-RQNZDTKT.js} +19 -19
  343. package/dist/{chunk-EHCUFCXM.js → chunk-RYSRFAHN.js} +32 -22
  344. package/dist/chunk-RYSRFAHN.js.map +1 -0
  345. package/dist/{chunk-I6VUUEXH.js → chunk-S2U4CDAC.js} +150 -150
  346. package/dist/chunk-S2U4CDAC.js.map +1 -0
  347. package/dist/chunk-S37GP7LX.js +204 -0
  348. package/dist/chunk-S37GP7LX.js.map +1 -0
  349. package/dist/{chunk-A2EWJQXX.js → chunk-SM5QX6UK.js} +4 -4
  350. package/dist/{chunk-FBE6AIIW.js → chunk-SOKNCW5U.js} +2 -2
  351. package/dist/{chunk-Q4NM77K7.js → chunk-SSOO4GWN.js} +193 -194
  352. package/dist/chunk-SSOO4GWN.js.map +1 -0
  353. package/dist/{chunk-PFKTGZKE.js → chunk-SY2AAZNB.js} +2 -2
  354. package/dist/{chunk-DFZMKCVP.js → chunk-TIQPKOFW.js} +4 -4
  355. package/dist/{chunk-HPPKLBTJ.js → chunk-TJQDL3JH.js} +2 -2
  356. package/dist/chunk-TL7BOFFL.js +89 -0
  357. package/dist/chunk-TL7BOFFL.js.map +1 -0
  358. package/dist/{chunk-FD4Q5KFL.js → chunk-TLL22FFO.js} +2 -2
  359. package/dist/{chunk-QM5H4FPT.js → chunk-TV6BWONY.js} +3 -3
  360. package/dist/{chunk-EDFJBX3V.js → chunk-U6MPB3K6.js} +9 -9
  361. package/dist/{chunk-TZD3U2S5.js → chunk-ULJAOMJA.js} +4 -4
  362. package/dist/chunk-ULYQEFNH.js +529 -0
  363. package/dist/chunk-ULYQEFNH.js.map +1 -0
  364. package/dist/{chunk-H5EVWF6L.js → chunk-UNNJUJVD.js} +2 -2
  365. package/dist/{chunk-324X6T6G.js → chunk-UP7I3W6O.js} +57 -55
  366. package/dist/chunk-UP7I3W6O.js.map +1 -0
  367. package/dist/{chunk-VU2EWALC.js → chunk-UUGR3X5I.js} +19 -12
  368. package/dist/chunk-UUGR3X5I.js.map +1 -0
  369. package/dist/{chunk-Z6DKXQG7.js → chunk-UXXFMF4X.js} +2 -2
  370. package/dist/{chunk-OBQVTCTW.js → chunk-UYNCMZX5.js} +4 -4
  371. package/dist/{chunk-RGPYMHKI.js → chunk-V3K4RQO7.js} +9 -3
  372. package/dist/chunk-V3K4RQO7.js.map +1 -0
  373. package/dist/{chunk-KZHW27BV.js → chunk-V4QZ7UBK.js} +2 -2
  374. package/dist/{chunk-NEVRLD77.js → chunk-VH5EGTH2.js} +3 -3
  375. package/dist/{chunk-MYNUBDU7.js → chunk-VYKW6TB2.js} +1 -1
  376. package/dist/chunk-VYKW6TB2.js.map +1 -0
  377. package/dist/{chunk-QEJTQTF5.js → chunk-W6T5HR3Z.js} +3 -3
  378. package/dist/{chunk-H6WWEKEV.js → chunk-WCMG4HYI.js} +10 -10
  379. package/dist/{chunk-GZLLDA6P.js → chunk-WEFN327U.js} +2 -2
  380. package/dist/{chunk-VW3BBTMA.js → chunk-WKHUZIOW.js} +1 -1
  381. package/dist/{chunk-ANHUMDJX.js → chunk-WNDTLK44.js} +2 -2
  382. package/dist/{chunk-2DS4UOYQ.js → chunk-WSZQNTVN.js} +2 -2
  383. package/dist/{chunk-Z2DAWUO3.js → chunk-XMNUZUUA.js} +6 -6
  384. package/dist/{chunk-GAIM5RNE.js → chunk-XN7NSPE6.js} +3 -3
  385. package/dist/chunk-XV6ZYRHK.js +59 -0
  386. package/dist/chunk-XV6ZYRHK.js.map +1 -0
  387. package/dist/{chunk-FLGUVRR7.js → chunk-Y5BSA3I7.js} +5 -5
  388. package/dist/{chunk-WRLWLGEF.js → chunk-Y5E3XQ2S.js} +25 -2
  389. package/dist/{chunk-WRLWLGEF.js.map → chunk-Y5E3XQ2S.js.map} +1 -1
  390. package/dist/{chunk-QILLL4JE.js → chunk-YEROLKOA.js} +16 -16
  391. package/dist/{chunk-NDF3SH3X.js → chunk-YJPKDRI2.js} +15 -15
  392. package/dist/{chunk-TQGJN5UZ.js → chunk-YV56F4UP.js} +318 -700
  393. package/dist/chunk-YV56F4UP.js.map +1 -0
  394. package/dist/{chunk-VAIESMPY.js → chunk-YVBHGMKC.js} +4 -4
  395. package/dist/{chunk-AD22P5X3.js → chunk-YXA2EKV3.js} +3 -3
  396. package/dist/{chunk-FDNJVZRE.js → chunk-YYCOSTUU.js} +17 -17
  397. package/dist/{chunk-NLMTNEWW.js → chunk-Z6E6TUAE.js} +2 -2
  398. package/dist/{chunk-BJW7G6EF.js → chunk-Z7IGO5EA.js} +3 -3
  399. package/dist/{chunk-N7JKT4ZU.js → chunk-ZEIFJ6PX.js} +7 -7
  400. package/dist/{chunk-Q4OHNGGB.js → chunk-ZS2UQ3DV.js} +68 -11
  401. package/dist/chunk-ZS2UQ3DV.js.map +1 -0
  402. package/dist/{chunk-VRGOOVDB.js → chunk-ZVVT72MT.js} +2 -2
  403. package/dist/components/browser-viewer.d.ts +1 -1
  404. package/dist/composer.js +14 -14
  405. package/dist/{computer-viewer-KEDVLD42.js → computer-viewer-25AJIDYA.js} +9 -9
  406. package/dist/connect.js +11 -11
  407. package/dist/desktop.js +2 -2
  408. package/dist/editor.js +2 -2
  409. package/dist/{embedded-new-voice-5PYRDZ6T.js → embedded-new-voice-RZZEJT6M.js} +8 -8
  410. package/dist/{embedded-voice-PABC5NBD.js → embedded-voice-6OKSSPLW.js} +8 -8
  411. package/dist/{fleet-decision-row-QNSTP3VX.js → fleet-decision-row-NN2HXDX3.js} +2 -2
  412. package/dist/hooks/internal.d.ts +38 -0
  413. package/dist/hooks/use-client-config-flags.d.ts +12 -0
  414. package/dist/hooks/use-workspace-sessions.d.ts +10 -1
  415. package/dist/index.js +233 -227
  416. package/dist/interaction.js +11 -9
  417. package/dist/interaction.js.map +1 -1
  418. package/dist/{latest-question-5LIRVG4G.js → latest-question-2PFWQSSG.js} +4 -3
  419. package/dist/{latest-question-5LIRVG4G.js.map → latest-question-2PFWQSSG.js.map} +1 -1
  420. package/dist/machines.js +5 -5
  421. package/dist/messages/en.d.ts +3 -3
  422. package/dist/messages.js +1 -1
  423. package/dist/{model-policy-picker-menu-CURJ247L.js → model-policy-picker-menu-VVFGGAI6.js} +6 -6
  424. package/dist/model-policy-picker-menu-VVFGGAI6.js.map +1 -0
  425. package/dist/native-previews.js +3 -3
  426. package/dist/{platform-activity-row-BMXXNZKX.js → platform-activity-row-ENQVIFTL.js} +2 -2
  427. package/dist/{queue-surface-implementation-2X5AXB6I.js → queue-surface-implementation-4SHOQPQQ.js} +10 -8
  428. package/dist/{queue-surface-implementation-2X5AXB6I.js.map → queue-surface-implementation-4SHOQPQQ.js.map} +1 -1
  429. package/dist/realtime.js +7 -7
  430. package/dist/{sandbox-files-4FBG3GS2.js → sandbox-files-CCOTGXXA.js} +11 -11
  431. package/dist/sandbox-files-CCOTGXXA.js.map +1 -0
  432. package/dist/session-app.js +277 -271
  433. package/dist/session-list-model.d.ts +1 -0
  434. package/dist/session-list-model.js +8 -2
  435. package/dist/{session-realtime-2XIB254N.js → session-realtime-JNKDSGH7.js} +3 -3
  436. package/dist/session-realtime-JNKDSGH7.js.map +1 -0
  437. package/dist/session-realtime.js +2 -2
  438. package/dist/session-ui.js +77 -72
  439. package/dist/session.js +27 -25
  440. package/dist/sites.js +2 -2
  441. package/dist/terminal.js +2 -2
  442. package/dist/this-computer.js +3 -3
  443. package/dist/timeline/invoked-tool.d.ts +5 -0
  444. package/dist/timeline/tool-display-name.d.ts +2 -2
  445. package/dist/timeline/tool-icon.d.ts +14 -0
  446. package/dist/timeline/tool-presentation.d.ts +8 -3
  447. package/dist/timeline/types.d.ts +2 -0
  448. package/dist/{timeline-annotation-markers-X4K2IEOO.js → timeline-annotation-markers-KHNYNY2J.js} +5 -5
  449. package/dist/{timeline-annotation-selection-MEHBW676.js → timeline-annotation-selection-AXEDJHBP.js} +7 -7
  450. package/dist/{timeline-annotations-dialog-U2FPQ3UY.js → timeline-annotations-dialog-AV4ZBXRC.js} +9 -9
  451. package/dist/timeline-model.js +28 -26
  452. package/dist/ui/access-list.js +20 -20
  453. package/dist/ui/choice-cards.js +2 -2
  454. package/dist/ui/detail-page.js +2 -2
  455. package/dist/ui/detail-sheet.js +2 -2
  456. package/dist/ui/diff-view.js +2 -2
  457. package/dist/ui/disclosure.js +4 -4
  458. package/dist/ui/flush-form-page.js +3 -3
  459. package/dist/ui/form-dialog.js +2 -2
  460. package/dist/ui/list-row.js +5 -5
  461. package/dist/ui/revision-history.js +11 -11
  462. package/dist/ui/role-select.js +6 -6
  463. package/dist/ui/settings-nav.js +3 -3
  464. package/dist/usage.js +3 -3
  465. package/dist/workbench.js +11 -11
  466. package/package.json +4 -4
  467. package/src/app/app-state.tsx +3 -1
  468. package/src/app/components/capabilities/session-capability-card.tsx +14 -1
  469. package/src/app/components/capabilities/session-chrome-card.dom-fixture.tsx +377 -0
  470. package/src/app/components/capabilities/session-chrome-card.test.tsx +18 -0
  471. package/src/app/components/capabilities/session-chrome-card.tsx +243 -0
  472. package/src/app/components/capabilities/session-machine-card.dom-fixture.tsx +2 -0
  473. package/src/app/components/capabilities/session-machine-card.tsx +74 -16
  474. package/src/app/components/rail/session-list.tsx +254 -44
  475. package/src/app/components/rail/session-row-content.tsx +24 -2
  476. package/src/app/components/rail/session-shell.tsx +14 -9
  477. package/src/app/components/rail/site-session-group-heading.tsx +59 -20
  478. package/src/app/components/session/session-tenancy-control.tsx +18 -0
  479. package/src/app/components/session/site-origin-link.test.tsx +73 -0
  480. package/src/app/components/session/site-origin-link.tsx +4 -2
  481. package/src/app/embed/memory-navigation.tsx +1 -0
  482. package/src/app/lib/actions/held-modifier.test.ts +101 -0
  483. package/src/app/lib/actions/held-modifier.ts +108 -0
  484. package/src/app/lib/console-site.tsx +38 -0
  485. package/src/app/lib/navigation.tsx +4 -0
  486. package/src/app/lib/routes.tsx +42 -0
  487. package/src/app/lib/session-failure-toasts.ts +26 -0
  488. package/src/app/lib/session-ui-features.tsx +18 -4
  489. package/src/app/lib/sessions-group.tsx +219 -30
  490. package/src/app/lib/site-opened.tsx +48 -0
  491. package/src/app/lib/site-session-groups.test.ts +173 -6
  492. package/src/app/lib/site-view-routes.test.ts +55 -0
  493. package/src/app/lib/use-session-list-hint-refresh.tsx +44 -4
  494. package/src/app/routes/artifacts.tsx +2 -29
  495. package/src/app/routes/session-transient-failures.test.tsx +343 -0
  496. package/src/app/routes/session-unavailable.tsx +74 -3
  497. package/src/app/routes/session.tsx +4 -13
  498. package/src/app/routes/sessions-index.tsx +13 -9
  499. package/src/app/routes/site-view.test.tsx +476 -0
  500. package/src/app/routes/site-view.tsx +583 -0
  501. package/src/components/browser-viewer.tsx +16 -2
  502. package/src/hooks/internal.ts +129 -6
  503. package/src/hooks/use-client-config-flags.ts +8 -0
  504. package/src/hooks/use-session-events.ts +83 -9
  505. package/src/hooks/use-workspace-sessions.ts +21 -1
  506. package/src/messages/en.ts +3 -3
  507. package/src/session-list-model.ts +4 -0
  508. package/src/timeline/activity-rail.tsx +3 -2
  509. package/src/timeline/invoked-tool.ts +14 -4
  510. package/src/timeline/projection.ts +15 -8
  511. package/src/timeline/rolling-activity.tsx +6 -2
  512. package/src/timeline/tool-display-name.ts +2 -2
  513. package/src/timeline/tool-icon.tsx +165 -0
  514. package/src/timeline/tool-presentation.ts +207 -48
  515. package/src/timeline/tool-renderers.tsx +1 -70
  516. package/src/timeline/types.ts +2 -0
  517. package/styles/compiled.css +38 -0
  518. package/dist/chunk-22ZBT6CN.js +0 -50
  519. package/dist/chunk-22ZBT6CN.js.map +0 -1
  520. package/dist/chunk-324X6T6G.js.map +0 -1
  521. package/dist/chunk-5JZYPZ72.js.map +0 -1
  522. package/dist/chunk-6W3LF3DB.js.map +0 -1
  523. package/dist/chunk-BJIZ7PL7.js.map +0 -1
  524. package/dist/chunk-CKZW7A5S.js.map +0 -1
  525. package/dist/chunk-DDIBZA4X.js.map +0 -1
  526. package/dist/chunk-EHCUFCXM.js.map +0 -1
  527. package/dist/chunk-GZ64CASI.js.map +0 -1
  528. package/dist/chunk-I6VUUEXH.js.map +0 -1
  529. package/dist/chunk-KF3MF6FP.js.map +0 -1
  530. package/dist/chunk-MYNUBDU7.js.map +0 -1
  531. package/dist/chunk-NAWXARTY.js.map +0 -1
  532. package/dist/chunk-O77Q4NG2.js.map +0 -1
  533. package/dist/chunk-PM3OSANE.js.map +0 -1
  534. package/dist/chunk-Q262Y2YX.js.map +0 -1
  535. package/dist/chunk-Q4NM77K7.js.map +0 -1
  536. package/dist/chunk-Q4OHNGGB.js.map +0 -1
  537. package/dist/chunk-QIYBOFUV.js.map +0 -1
  538. package/dist/chunk-R25ZKOZR.js +0 -24
  539. package/dist/chunk-R25ZKOZR.js.map +0 -1
  540. package/dist/chunk-RGPYMHKI.js.map +0 -1
  541. package/dist/chunk-ROQOVH4N.js.map +0 -1
  542. package/dist/chunk-TQGJN5UZ.js.map +0 -1
  543. package/dist/chunk-V77JK73U.js.map +0 -1
  544. package/dist/chunk-VSQHDBHU.js.map +0 -1
  545. package/dist/chunk-VU2EWALC.js.map +0 -1
  546. package/dist/chunk-XFNLU7EW.js.map +0 -1
  547. package/dist/chunk-Z5WMLJKI.js.map +0 -1
  548. /package/dist/{browser-viewer-RYYQSRTC.js.map → app/components/capabilities/session-chrome-card.js.map} +0 -0
  549. /package/dist/{chat-interactive-block-ABCRKXJ4.js.map → app/lib/console-site.js.map} +0 -0
  550. /package/dist/{computer-viewer-KEDVLD42.js.map → app/lib/site-opened.js.map} +0 -0
  551. /package/dist/{embedded-new-voice-5PYRDZ6T.js.map → browser-viewer-QMCNV4RI.js.map} +0 -0
  552. /package/dist/{embedded-voice-PABC5NBD.js.map → chat-interactive-block-PMIAUXSO.js.map} +0 -0
  553. /package/dist/{chunk-GIZGNFIX.js.map → chunk-22FFOHPT.js.map} +0 -0
  554. /package/dist/{chunk-UHFWF6ZU.js.map → chunk-2FPS5H2D.js.map} +0 -0
  555. /package/dist/{chunk-5POTDNQT.js.map → chunk-2NC7NZCE.js.map} +0 -0
  556. /package/dist/{chunk-ZKYYZH6L.js.map → chunk-2QBYDGWO.js.map} +0 -0
  557. /package/dist/{chunk-TWXIFWBD.js.map → chunk-34EU25RL.js.map} +0 -0
  558. /package/dist/{chunk-LQKKSUCR.js.map → chunk-35BC2FU2.js.map} +0 -0
  559. /package/dist/{chunk-PTGRFAMH.js.map → chunk-3ABPIUCK.js.map} +0 -0
  560. /package/dist/{chunk-S4SC5SSV.js.map → chunk-3GU7AWG7.js.map} +0 -0
  561. /package/dist/{chunk-722UO6YQ.js.map → chunk-3PEXVG4D.js.map} +0 -0
  562. /package/dist/{chunk-OQAAI33Y.js.map → chunk-3RMKPHBL.js.map} +0 -0
  563. /package/dist/{chunk-GCGTYXJJ.js.map → chunk-3STBLX4O.js.map} +0 -0
  564. /package/dist/{chunk-YXIW7H4N.js.map → chunk-3X5FKDYQ.js.map} +0 -0
  565. /package/dist/{chunk-KTRKZRID.js.map → chunk-4GLLWX33.js.map} +0 -0
  566. /package/dist/{chunk-SD2K5ZN5.js.map → chunk-4LPA25NQ.js.map} +0 -0
  567. /package/dist/{chunk-DKCX643S.js.map → chunk-4RMN4E2Y.js.map} +0 -0
  568. /package/dist/{chunk-E5FCEDMU.js.map → chunk-4SAGYEVB.js.map} +0 -0
  569. /package/dist/{chunk-HTT3FB7T.js.map → chunk-4VK2R5QC.js.map} +0 -0
  570. /package/dist/{chunk-CKG2EG62.js.map → chunk-4XQC7VLT.js.map} +0 -0
  571. /package/dist/{chunk-IVOA3DXA.js.map → chunk-4YXAQMTD.js.map} +0 -0
  572. /package/dist/{chunk-HOJGAJAB.js.map → chunk-52WK2GGK.js.map} +0 -0
  573. /package/dist/{chunk-NYZQ7LO7.js.map → chunk-552UYIQ7.js.map} +0 -0
  574. /package/dist/{chunk-LEXPBQ56.js.map → chunk-5DSKMG2I.js.map} +0 -0
  575. /package/dist/{chunk-WNG757ID.js.map → chunk-5FA455GR.js.map} +0 -0
  576. /package/dist/{chunk-MNWQAYY3.js.map → chunk-5FEN3KYH.js.map} +0 -0
  577. /package/dist/{chunk-OSVHU2WU.js.map → chunk-5JHRMUAZ.js.map} +0 -0
  578. /package/dist/{chunk-RKB2Z457.js.map → chunk-5VGJXWQ2.js.map} +0 -0
  579. /package/dist/{chunk-GFUUFM2O.js.map → chunk-5W6ZDKRR.js.map} +0 -0
  580. /package/dist/{chunk-NDETTZQA.js.map → chunk-5W7KJ5NQ.js.map} +0 -0
  581. /package/dist/{chunk-Q35YZVDZ.js.map → chunk-5Y2FPLZE.js.map} +0 -0
  582. /package/dist/{chunk-F3NERYBQ.js.map → chunk-62VER7O4.js.map} +0 -0
  583. /package/dist/{chunk-FBMU3VK5.js.map → chunk-6DCEDIF6.js.map} +0 -0
  584. /package/dist/{chunk-WUHB422G.js.map → chunk-73WI7FL2.js.map} +0 -0
  585. /package/dist/{chunk-QECZVL7S.js.map → chunk-7FJMRJDG.js.map} +0 -0
  586. /package/dist/{chunk-7KGKDWWR.js.map → chunk-7HFLYNWN.js.map} +0 -0
  587. /package/dist/{chunk-XVM566II.js.map → chunk-7KIENXRE.js.map} +0 -0
  588. /package/dist/{chunk-CBY5CXBD.js.map → chunk-7NPCEBZE.js.map} +0 -0
  589. /package/dist/{chunk-46VBQG2D.js.map → chunk-7P4AQMGA.js.map} +0 -0
  590. /package/dist/{chunk-S7PVL7XH.js.map → chunk-A4BD4ZVB.js.map} +0 -0
  591. /package/dist/{chunk-73SOCVLS.js.map → chunk-AIEXYO2X.js.map} +0 -0
  592. /package/dist/{chunk-U7TC2XJQ.js.map → chunk-AJPW3SV4.js.map} +0 -0
  593. /package/dist/{chunk-HRJQAFKR.js.map → chunk-AX6YJA5U.js.map} +0 -0
  594. /package/dist/{chunk-P5WABK2H.js.map → chunk-BCM7C3MJ.js.map} +0 -0
  595. /package/dist/{chunk-DT7BORXG.js.map → chunk-BMJTNPWK.js.map} +0 -0
  596. /package/dist/{chunk-HIHO2QE7.js.map → chunk-BT2MVGHT.js.map} +0 -0
  597. /package/dist/{chunk-3XOISKZC.js.map → chunk-BXQYAAVE.js.map} +0 -0
  598. /package/dist/{chunk-IBTXYLBW.js.map → chunk-CCFWY4GF.js.map} +0 -0
  599. /package/dist/{chunk-ZOC3OP6F.js.map → chunk-CCR33J7L.js.map} +0 -0
  600. /package/dist/{chunk-GTQ3SNEI.js.map → chunk-CD3MO3IC.js.map} +0 -0
  601. /package/dist/{chunk-WSMYOLHG.js.map → chunk-CDEXRJB6.js.map} +0 -0
  602. /package/dist/{chunk-3GLAPCVI.js.map → chunk-CFFNT2OY.js.map} +0 -0
  603. /package/dist/{chunk-FUSFVUIJ.js.map → chunk-CMLJSF2F.js.map} +0 -0
  604. /package/dist/{chunk-O4DYOSOL.js.map → chunk-CP7ZQHBW.js.map} +0 -0
  605. /package/dist/{chunk-IOKSNX74.js.map → chunk-D5OWJZQR.js.map} +0 -0
  606. /package/dist/{chunk-SQGXMHJO.js.map → chunk-DGLRZMXL.js.map} +0 -0
  607. /package/dist/{chunk-GNEHAPKV.js.map → chunk-DJFTH2DI.js.map} +0 -0
  608. /package/dist/{chunk-HQG4SLTE.js.map → chunk-DYJGYGPB.js.map} +0 -0
  609. /package/dist/{chunk-4EAF3HSD.js.map → chunk-EJ7WARW7.js.map} +0 -0
  610. /package/dist/{chunk-3AA6RNGE.js.map → chunk-ENS6E4RZ.js.map} +0 -0
  611. /package/dist/{chunk-OOEO4MKY.js.map → chunk-EPWD4KRA.js.map} +0 -0
  612. /package/dist/{chunk-V5RJAWRP.js.map → chunk-EQE3MNQN.js.map} +0 -0
  613. /package/dist/{chunk-TSBE4KOQ.js.map → chunk-EWL6NDOO.js.map} +0 -0
  614. /package/dist/{chunk-OO2T63BY.js.map → chunk-EYS4ZOF5.js.map} +0 -0
  615. /package/dist/{chunk-IC7KNOBB.js.map → chunk-FDAV72IX.js.map} +0 -0
  616. /package/dist/{chunk-AG7VGUIW.js.map → chunk-FFNPUSVO.js.map} +0 -0
  617. /package/dist/{chunk-P5T36BA3.js.map → chunk-FRP64DEK.js.map} +0 -0
  618. /package/dist/{chunk-KBF3SE7G.js.map → chunk-FSP334UU.js.map} +0 -0
  619. /package/dist/{chunk-ZHFKMMOT.js.map → chunk-FTX5CNHA.js.map} +0 -0
  620. /package/dist/{chunk-KYBALSWW.js.map → chunk-FWOBNL2A.js.map} +0 -0
  621. /package/dist/{chunk-HJ5XWW62.js.map → chunk-FWYEZ3LE.js.map} +0 -0
  622. /package/dist/{chunk-WSLPZ43N.js.map → chunk-G4HQUBO4.js.map} +0 -0
  623. /package/dist/{chunk-CSHBR2IZ.js.map → chunk-GDLDBR6B.js.map} +0 -0
  624. /package/dist/{chunk-G3S2F35T.js.map → chunk-GHHM6WN4.js.map} +0 -0
  625. /package/dist/{chunk-OANSIX34.js.map → chunk-GRSODLVO.js.map} +0 -0
  626. /package/dist/{chunk-EU6XSQFM.js.map → chunk-GXW2I2M2.js.map} +0 -0
  627. /package/dist/{chunk-4246UYVG.js.map → chunk-GZS37O3G.js.map} +0 -0
  628. /package/dist/{chunk-Y7WMW74G.js.map → chunk-HQWVDQXW.js.map} +0 -0
  629. /package/dist/{chunk-YTZQV2DD.js.map → chunk-HU6JTNWF.js.map} +0 -0
  630. /package/dist/{chunk-QRVNI5V6.js.map → chunk-I6KIQKU6.js.map} +0 -0
  631. /package/dist/{chunk-BNUPYHHZ.js.map → chunk-IDXTASGN.js.map} +0 -0
  632. /package/dist/{chunk-L6RXRRN3.js.map → chunk-ILDOW2IQ.js.map} +0 -0
  633. /package/dist/{chunk-VUHPA3XQ.js.map → chunk-ITX2TB4K.js.map} +0 -0
  634. /package/dist/{chunk-ETCB6SUJ.js.map → chunk-J22HD2PB.js.map} +0 -0
  635. /package/dist/{chunk-U47YDYLQ.js.map → chunk-J5MEDX7C.js.map} +0 -0
  636. /package/dist/{chunk-6VQTHC4W.js.map → chunk-J7FBBLHF.js.map} +0 -0
  637. /package/dist/{chunk-QZRDCFHI.js.map → chunk-JM4HQPAI.js.map} +0 -0
  638. /package/dist/{chunk-PIVGX42P.js.map → chunk-JNY5MT3I.js.map} +0 -0
  639. /package/dist/{chunk-XWWXIZFP.js.map → chunk-JO6R5EXF.js.map} +0 -0
  640. /package/dist/{chunk-MM7OKOTE.js.map → chunk-JQCGPTZ6.js.map} +0 -0
  641. /package/dist/{chunk-KNFDWNCH.js.map → chunk-JXT5QDJC.js.map} +0 -0
  642. /package/dist/{chunk-OR37STQZ.js.map → chunk-KEXYBG7Q.js.map} +0 -0
  643. /package/dist/{chunk-AZVANYMB.js.map → chunk-KUNFUSZ7.js.map} +0 -0
  644. /package/dist/{chunk-DXZNDKQD.js.map → chunk-LEEJBZ5B.js.map} +0 -0
  645. /package/dist/{chunk-C535KSTY.js.map → chunk-LF5CBAOS.js.map} +0 -0
  646. /package/dist/{chunk-RIMKJBCD.js.map → chunk-LMPTC4CX.js.map} +0 -0
  647. /package/dist/{chunk-3KVWXKD6.js.map → chunk-LQ47YL6E.js.map} +0 -0
  648. /package/dist/{chunk-H5WGWAYX.js.map → chunk-LT4J7RHI.js.map} +0 -0
  649. /package/dist/{chunk-DSGMYES6.js.map → chunk-MCTTONOW.js.map} +0 -0
  650. /package/dist/{chunk-IGHELZI7.js.map → chunk-MIECLOQC.js.map} +0 -0
  651. /package/dist/{chunk-FM4OUCC2.js.map → chunk-MOKYT3X3.js.map} +0 -0
  652. /package/dist/{chunk-RKILMLA7.js.map → chunk-MXLKI7BI.js.map} +0 -0
  653. /package/dist/{chunk-45WYYFP6.js.map → chunk-N3ZP4IDU.js.map} +0 -0
  654. /package/dist/{chunk-XRRSFQEV.js.map → chunk-NAZZLAWX.js.map} +0 -0
  655. /package/dist/{chunk-UWJ5P5CU.js.map → chunk-NEK4WB5P.js.map} +0 -0
  656. /package/dist/{chunk-6L7U46Y2.js.map → chunk-NKNVIO66.js.map} +0 -0
  657. /package/dist/{chunk-JKUICTLM.js.map → chunk-NLAFNMPK.js.map} +0 -0
  658. /package/dist/{chunk-4LKNIGHB.js.map → chunk-O2SBHS2N.js.map} +0 -0
  659. /package/dist/{chunk-D3RK3NGM.js.map → chunk-PCFK7HKD.js.map} +0 -0
  660. /package/dist/{chunk-VVCDB2T7.js.map → chunk-PCJLH45G.js.map} +0 -0
  661. /package/dist/{chunk-PZ24CYDO.js.map → chunk-PFAUGEV5.js.map} +0 -0
  662. /package/dist/{chunk-HGMWMK5K.js.map → chunk-PO3BH3KQ.js.map} +0 -0
  663. /package/dist/{chunk-B74GSYR6.js.map → chunk-PUTS4DYW.js.map} +0 -0
  664. /package/dist/{chunk-JSIDLTTG.js.map → chunk-PZ2V2XIK.js.map} +0 -0
  665. /package/dist/{chunk-TMEQPODK.js.map → chunk-PZ37VDB5.js.map} +0 -0
  666. /package/dist/{chunk-LVONK3YQ.js.map → chunk-QRKTESVE.js.map} +0 -0
  667. /package/dist/{chunk-HT5WSUC7.js.map → chunk-QXEDIDBZ.js.map} +0 -0
  668. /package/dist/{chunk-WURSS6MP.js.map → chunk-R66YMYJU.js.map} +0 -0
  669. /package/dist/{chunk-HDHK3SXK.js.map → chunk-RFLYID6H.js.map} +0 -0
  670. /package/dist/{chunk-VMFID36H.js.map → chunk-RQNZDTKT.js.map} +0 -0
  671. /package/dist/{chunk-A2EWJQXX.js.map → chunk-SM5QX6UK.js.map} +0 -0
  672. /package/dist/{chunk-FBE6AIIW.js.map → chunk-SOKNCW5U.js.map} +0 -0
  673. /package/dist/{chunk-PFKTGZKE.js.map → chunk-SY2AAZNB.js.map} +0 -0
  674. /package/dist/{chunk-DFZMKCVP.js.map → chunk-TIQPKOFW.js.map} +0 -0
  675. /package/dist/{chunk-HPPKLBTJ.js.map → chunk-TJQDL3JH.js.map} +0 -0
  676. /package/dist/{chunk-FD4Q5KFL.js.map → chunk-TLL22FFO.js.map} +0 -0
  677. /package/dist/{chunk-QM5H4FPT.js.map → chunk-TV6BWONY.js.map} +0 -0
  678. /package/dist/{chunk-EDFJBX3V.js.map → chunk-U6MPB3K6.js.map} +0 -0
  679. /package/dist/{chunk-TZD3U2S5.js.map → chunk-ULJAOMJA.js.map} +0 -0
  680. /package/dist/{chunk-H5EVWF6L.js.map → chunk-UNNJUJVD.js.map} +0 -0
  681. /package/dist/{chunk-Z6DKXQG7.js.map → chunk-UXXFMF4X.js.map} +0 -0
  682. /package/dist/{chunk-OBQVTCTW.js.map → chunk-UYNCMZX5.js.map} +0 -0
  683. /package/dist/{chunk-KZHW27BV.js.map → chunk-V4QZ7UBK.js.map} +0 -0
  684. /package/dist/{chunk-NEVRLD77.js.map → chunk-VH5EGTH2.js.map} +0 -0
  685. /package/dist/{chunk-QEJTQTF5.js.map → chunk-W6T5HR3Z.js.map} +0 -0
  686. /package/dist/{chunk-H6WWEKEV.js.map → chunk-WCMG4HYI.js.map} +0 -0
  687. /package/dist/{chunk-GZLLDA6P.js.map → chunk-WEFN327U.js.map} +0 -0
  688. /package/dist/{chunk-VW3BBTMA.js.map → chunk-WKHUZIOW.js.map} +0 -0
  689. /package/dist/{chunk-ANHUMDJX.js.map → chunk-WNDTLK44.js.map} +0 -0
  690. /package/dist/{chunk-2DS4UOYQ.js.map → chunk-WSZQNTVN.js.map} +0 -0
  691. /package/dist/{chunk-Z2DAWUO3.js.map → chunk-XMNUZUUA.js.map} +0 -0
  692. /package/dist/{chunk-GAIM5RNE.js.map → chunk-XN7NSPE6.js.map} +0 -0
  693. /package/dist/{chunk-FLGUVRR7.js.map → chunk-Y5BSA3I7.js.map} +0 -0
  694. /package/dist/{chunk-QILLL4JE.js.map → chunk-YEROLKOA.js.map} +0 -0
  695. /package/dist/{chunk-NDF3SH3X.js.map → chunk-YJPKDRI2.js.map} +0 -0
  696. /package/dist/{chunk-VAIESMPY.js.map → chunk-YVBHGMKC.js.map} +0 -0
  697. /package/dist/{chunk-AD22P5X3.js.map → chunk-YXA2EKV3.js.map} +0 -0
  698. /package/dist/{chunk-FDNJVZRE.js.map → chunk-YYCOSTUU.js.map} +0 -0
  699. /package/dist/{chunk-NLMTNEWW.js.map → chunk-Z6E6TUAE.js.map} +0 -0
  700. /package/dist/{chunk-BJW7G6EF.js.map → chunk-Z7IGO5EA.js.map} +0 -0
  701. /package/dist/{chunk-N7JKT4ZU.js.map → chunk-ZEIFJ6PX.js.map} +0 -0
  702. /package/dist/{chunk-VRGOOVDB.js.map → chunk-ZVVT72MT.js.map} +0 -0
  703. /package/dist/{model-policy-picker-menu-CURJ247L.js.map → computer-viewer-25AJIDYA.js.map} +0 -0
  704. /package/dist/{sandbox-files-4FBG3GS2.js.map → embedded-new-voice-RZZEJT6M.js.map} +0 -0
  705. /package/dist/{session-realtime-2XIB254N.js.map → embedded-voice-6OKSSPLW.js.map} +0 -0
  706. /package/dist/{fleet-decision-row-QNSTP3VX.js.map → fleet-decision-row-NN2HXDX3.js.map} +0 -0
  707. /package/dist/{platform-activity-row-BMXXNZKX.js.map → platform-activity-row-ENQVIFTL.js.map} +0 -0
  708. /package/dist/{timeline-annotation-markers-X4K2IEOO.js.map → timeline-annotation-markers-KHNYNY2J.js.map} +0 -0
  709. /package/dist/{timeline-annotation-selection-MEHBW676.js.map → timeline-annotation-selection-AXEDJHBP.js.map} +0 -0
  710. /package/dist/{timeline-annotations-dialog-U2FPQ3UY.js.map → timeline-annotations-dialog-AV4ZBXRC.js.map} +0 -0
@@ -1,11 +1,10 @@
1
1
  "use client";
2
2
  import {
3
- EmptyQueueStateSurface,
4
3
  requestQueueDraftEdit
5
- } from "./chunk-6W3LF3DB.js";
4
+ } from "./chunk-22GTC4MZ.js";
6
5
  import {
7
6
  ProviderRecoveryNotice
8
- } from "./chunk-P5T36BA3.js";
7
+ } from "./chunk-FRP64DEK.js";
9
8
  import {
10
9
  MessageSenderContext,
11
10
  MessageSenderSlot
@@ -13,17 +12,24 @@ import {
13
12
  import {
14
13
  UserMessageBody,
15
14
  UserMessageDisclosureProvider
16
- } from "./chunk-RKILMLA7.js";
15
+ } from "./chunk-MXLKI7BI.js";
17
16
  import {
18
17
  SESSION_STATUS_META,
19
18
  StatusDot
20
- } from "./chunk-3AA6RNGE.js";
19
+ } from "./chunk-ENS6E4RZ.js";
21
20
  import {
22
- useWorkspaceSessions
23
- } from "./chunk-RGPYMHKI.js";
21
+ ChatComposer
22
+ } from "./chunk-YXA2EKV3.js";
23
+ import {
24
+ TimelineAnnotationCards,
25
+ TimelineAnnotationsChip
26
+ } from "./chunk-IDXTASGN.js";
27
+ import {
28
+ TimelineAnnotationSourceRootContext
29
+ } from "./chunk-LMPTC4CX.js";
24
30
  import {
25
31
  OpenGeniProvider
26
- } from "./chunk-XWWXIZFP.js";
32
+ } from "./chunk-JO6R5EXF.js";
27
33
  import {
28
34
  ActivityNoteTextContext,
29
35
  ActivityRail,
@@ -42,6 +48,7 @@ import {
42
48
  TimelineComputeLabelProvider,
43
49
  ToolActionReviewCard,
44
50
  ToolActionReviewDetails,
51
+ ToolKindIcon,
45
52
  ToolReviewFrame,
46
53
  TurnSummary,
47
54
  UNRECOVERABLE_TEXT,
@@ -57,43 +64,7 @@ import {
57
64
  useFoldMemory,
58
65
  useStartupDetails,
59
66
  useTurnSettleOpen
60
- } from "./chunk-CKZW7A5S.js";
61
- import {
62
- ChatComposer
63
- } from "./chunk-AD22P5X3.js";
64
- import {
65
- TimelineAnnotationCards,
66
- TimelineAnnotationsChip
67
- } from "./chunk-BNUPYHHZ.js";
68
- import {
69
- TimelineAnnotationSourceRootContext
70
- } from "./chunk-RIMKJBCD.js";
71
- import {
72
- invokeOlderHistoryLoaderWithReceiptCapture,
73
- useClientConfigFlags,
74
- useGoal,
75
- useNewConversation,
76
- useSessionConversation,
77
- useSessionReadAcknowledgement
78
- } from "./chunk-Q4NM77K7.js";
79
- import {
80
- buildTimeline,
81
- compactionFailureDetails,
82
- compactionSkipSubtitle,
83
- compactionSkipTitle,
84
- groupTimeline
85
- } from "./chunk-VU2EWALC.js";
86
- import {
87
- forgetHumanInputDraft,
88
- readHumanInputDraft,
89
- writeHumanInputDraft
90
- } from "./chunk-ZOARMQY2.js";
91
- import {
92
- joinClientConfigRead
93
- } from "./chunk-IGVL3ELX.js";
94
- import {
95
- markClassicScrollbars
96
- } from "./chunk-MK2TQO4Y.js";
67
+ } from "./chunk-7TCT7KPQ.js";
97
68
  import {
98
69
  CompactActivityContext,
99
70
  CopyHoverFrame,
@@ -104,7 +75,7 @@ import {
104
75
  isTimelineSearchTarget,
105
76
  useSecretsUi,
106
77
  useTimelineSearchNavigation
107
- } from "./chunk-LQKKSUCR.js";
78
+ } from "./chunk-35BC2FU2.js";
108
79
  import {
109
80
  prefersReducedMotion
110
81
  } from "./chunk-OYQQJL3J.js";
@@ -124,6 +95,39 @@ import {
124
95
  queueNeighborAnchors,
125
96
  queuedTurnPresentation
126
97
  } from "./chunk-7N5AD2TC.js";
98
+ import {
99
+ ThisComputerCard
100
+ } from "./chunk-O2SBHS2N.js";
101
+ import {
102
+ LightboxProvider,
103
+ ShimmerText,
104
+ Tooltip,
105
+ TooltipContent,
106
+ TooltipProvider,
107
+ TooltipTrigger
108
+ } from "./chunk-UYNCMZX5.js";
109
+ import {
110
+ ModelPolicyPicker
111
+ } from "./chunk-FFNPUSVO.js";
112
+ import {
113
+ invokeOlderHistoryLoaderWithReceiptCapture,
114
+ useGoal,
115
+ useNewConversation,
116
+ useSessionConversation,
117
+ useSessionReadAcknowledgement
118
+ } from "./chunk-SSOO4GWN.js";
119
+ import {
120
+ buildTimeline,
121
+ compactionFailureDetails,
122
+ compactionSkipSubtitle,
123
+ compactionSkipTitle,
124
+ groupTimeline
125
+ } from "./chunk-UUGR3X5I.js";
126
+ import {
127
+ forgetHumanInputDraft,
128
+ readHumanInputDraft,
129
+ writeHumanInputDraft
130
+ } from "./chunk-ZOARMQY2.js";
127
131
  import {
128
132
  DEFAULT_SESSION_USAGE_LIMIT_LABELS,
129
133
  allowanceLabels,
@@ -131,8 +135,14 @@ import {
131
135
  formatAllowanceInstant
132
136
  } from "./chunk-4U7SHFQ2.js";
133
137
  import {
134
- ThisComputerCard
135
- } from "./chunk-4LKNIGHB.js";
138
+ joinClientConfigRead
139
+ } from "./chunk-IGVL3ELX.js";
140
+ import {
141
+ useErrorMessage
142
+ } from "./chunk-CM7LVUKC.js";
143
+ import {
144
+ markClassicScrollbars
145
+ } from "./chunk-MK2TQO4Y.js";
136
146
  import {
137
147
  QUESTION_NAV_MARGIN_PX,
138
148
  answersFromDrafts,
@@ -164,16 +174,17 @@ import {
164
174
  secretPatternMismatch,
165
175
  secretVaultForTarget,
166
176
  timelineGroupIndexAtSequence
167
- } from "./chunk-I6VUUEXH.js";
177
+ } from "./chunk-S2U4CDAC.js";
168
178
  import {
169
- formatElapsed
170
- } from "./chunk-TQGJN5UZ.js";
179
+ formatElapsed,
180
+ genericToolIconKind
181
+ } from "./chunk-YV56F4UP.js";
171
182
  import {
172
183
  namedAgentTitle
173
184
  } from "./chunk-HEVQKE27.js";
174
185
  import {
175
186
  timelineGroupContainsPresentedImage
176
- } from "./chunk-ANHUMDJX.js";
187
+ } from "./chunk-WNDTLK44.js";
177
188
  import {
178
189
  isActionableHumanInputRequest
179
190
  } from "./chunk-IZV5FTJC.js";
@@ -181,30 +192,7 @@ import {
181
192
  builtInToolStep,
182
193
  toolDisplayName,
183
194
  toolStepPhase
184
- } from "./chunk-STUCI6QA.js";
185
- import {
186
- notifyObserver
187
- } from "./chunk-GNEHAPKV.js";
188
- import {
189
- ModelPolicyPicker
190
- } from "./chunk-AG7VGUIW.js";
191
- import {
192
- LightboxProvider,
193
- ShimmerText,
194
- Tooltip,
195
- TooltipContent,
196
- TooltipProvider,
197
- TooltipTrigger
198
- } from "./chunk-OBQVTCTW.js";
199
- import {
200
- usePolledValue
201
- } from "./chunk-NAWXARTY.js";
202
- import {
203
- useErrorMessage
204
- } from "./chunk-CM7LVUKC.js";
205
- import {
206
- useOpenGeni
207
- } from "./chunk-TVQCDDSZ.js";
195
+ } from "./chunk-LEKBNKLD.js";
208
196
  import {
209
197
  formatClockTime,
210
198
  formatRelativeTime,
@@ -219,7 +207,7 @@ import {
219
207
  import {
220
208
  SingleSendWording,
221
209
  useOpenGeniText
222
- } from "./chunk-5JZYPZ72.js";
210
+ } from "./chunk-JFK7NTEA.js";
223
211
 
224
212
  // src/components/human-input-form.tsx
225
213
  import { ChevronDownIcon, ChevronUpIcon, MessageCircleQuestionIcon } from "lucide-react";
@@ -1884,7 +1872,6 @@ function GeneratedVideoPlayer({
1884
1872
 
1885
1873
  // src/timeline/rolling-activity.tsx
1886
1874
  import { AnimatePresence, motion, useReducedMotion } from "motion/react";
1887
- import { WrenchIcon } from "lucide-react";
1888
1875
  import { Suspense, useEffect as useEffect6, useState as useState5 } from "react";
1889
1876
  import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
1890
1877
  function RollingActivity({
@@ -1901,7 +1888,13 @@ function RollingActivity({
1901
1888
  if (!selected) return null;
1902
1889
  const { item, earlierCount } = selected;
1903
1890
  const fallback = /* @__PURE__ */ jsxs4("span", { className: "og-rolling-label", children: [
1904
- /* @__PURE__ */ jsx7(WrenchIcon, { className: "size-3.5" }),
1891
+ /* @__PURE__ */ jsx7(
1892
+ ToolKindIcon,
1893
+ {
1894
+ kind: item.kind === "tool-call" ? genericToolIconKind(item.name) : "wrench",
1895
+ className: "size-3.5"
1896
+ }
1897
+ ),
1905
1898
  /* @__PURE__ */ jsx7("span", { children: item.kind === "tool-call" ? toolDisplayName(t, item.name, item.display, toolStepPhase(item.status)) : t("timeline.rollingActivity.working") })
1906
1899
  ] });
1907
1900
  return /* @__PURE__ */ jsxs4("span", { className: "og-rolling-status", "data-running": selected.running ? "true" : void 0, children: [
@@ -2866,8 +2859,8 @@ function SessionUsageLimitRow({ stop }) {
2866
2859
 
2867
2860
  // src/components/message-timeline.tsx
2868
2861
  import { Fragment as Fragment5, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
2869
- var TimelineAnnotationSelection = lazy(() => import("./timeline-annotation-selection-MEHBW676.js"));
2870
- var TimelineAnnotationMarkers = lazy(() => import("./timeline-annotation-markers-X4K2IEOO.js"));
2862
+ var TimelineAnnotationSelection = lazy(() => import("./timeline-annotation-selection-AXEDJHBP.js"));
2863
+ var TimelineAnnotationMarkers = lazy(() => import("./timeline-annotation-markers-KHNYNY2J.js"));
2871
2864
  var PIN_THRESHOLD_PX = 48;
2872
2865
  var JUMP_TO_LATEST_CATCHUP_DEBT_PX = 240;
2873
2866
  var NAV_BUTTON_CLASS = "pointer-events-auto relative inline-flex size-8 items-center justify-center rounded-full border border-og-border bg-og-surface-3/90 text-og-fg-muted shadow-og-md backdrop-blur hover:border-og-border-strong hover:text-og-fg focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-og-accent pointer-coarse:before:absolute pointer-coarse:before:-inset-1.5 pointer-coarse:before:content-['']";
@@ -6491,48 +6484,6 @@ function authReasonLine(t, reason) {
6491
6484
  }
6492
6485
  }
6493
6486
 
6494
- // src/components/queue-surface.tsx
6495
- import { Loader2Icon } from "lucide-react";
6496
- import { lazy as lazy2, Suspense as Suspense3 } from "react";
6497
- import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
6498
- var loadQueueSurface = () => import("./queue-surface-implementation-2X5AXB6I.js");
6499
- var QueueSurface = createQueueSurface(loadQueueSurface);
6500
- function createQueueSurface(loadImplementation) {
6501
- const LazyQueueSurface = lazy2(async () => ({
6502
- default: (await loadImplementation()).QueueSurface
6503
- }));
6504
- return function QueueSurfaceBoundary(props) {
6505
- const { queue } = props;
6506
- if (queue.queue.length + queue.pendingInputs.length === 0) {
6507
- if (!queue.stoppingPreviousAttempt && !queue.error && !queue.mutationError) return null;
6508
- return /* @__PURE__ */ jsx13(EmptyQueueStateSurface, { queue });
6509
- }
6510
- return /* @__PURE__ */ jsx13(Suspense3, { fallback: /* @__PURE__ */ jsx13(QueueSurfaceFallback, {}), children: /* @__PURE__ */ jsx13(LazyQueueSurface, { ...props }) });
6511
- };
6512
- }
6513
- function QueueSurfaceFallback() {
6514
- const t = useOpenGeniText();
6515
- return /* @__PURE__ */ jsx13(
6516
- "div",
6517
- {
6518
- "aria-live": "polite",
6519
- className: "og-root mx-auto mb-2 w-full max-w-3xl shrink-0 px-4 sm:px-6",
6520
- "data-testid": "queue-surface-loading",
6521
- role: "status",
6522
- children: /* @__PURE__ */ jsx13("div", { className: "overflow-hidden rounded-lg border border-border bg-surface/80 shadow-sm", children: /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 px-3 py-2 text-og-control text-fg-muted pointer-coarse:min-h-[44px]", children: [
6523
- /* @__PURE__ */ jsx13(
6524
- Loader2Icon,
6525
- {
6526
- "aria-hidden": "true",
6527
- className: "size-3.5 shrink-0 animate-spin motion-reduce:animate-none"
6528
- }
6529
- ),
6530
- t("queueSurface.loadingInputs")
6531
- ] }) })
6532
- }
6533
- );
6534
- }
6535
-
6536
6487
  // src/components/session-chrome.tsx
6537
6488
  import {
6538
6489
  ActivityIcon,
@@ -6543,7 +6494,7 @@ import {
6543
6494
  CheckIcon as CheckIcon2,
6544
6495
  InboxIcon,
6545
6496
  ListOrderedIcon,
6546
- Loader2Icon as Loader2Icon2,
6497
+ Loader2Icon,
6547
6498
  PauseIcon as PauseIcon2,
6548
6499
  PencilIcon,
6549
6500
  PlayIcon as PlayIcon2,
@@ -6556,7 +6507,7 @@ import {
6556
6507
  } from "lucide-react";
6557
6508
  import { AnimatePresence as AnimatePresence3, motion as motion3, useReducedMotion as useReducedMotion3 } from "motion/react";
6558
6509
  import { useEffect as useEffect9, useId as useId3, useMemo as useMemo7, useRef as useRef8, useState as useState9 } from "react";
6559
- import { Fragment as Fragment6, jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
6510
+ import { Fragment as Fragment6, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
6560
6511
  var GOAL_LABEL = (t) => ({
6561
6512
  pursuing: t("sessionChrome.pursuing"),
6562
6513
  waiting: t("sessionChrome.waiting"),
@@ -6731,7 +6682,7 @@ function toneClass(tone, selected) {
6731
6682
  }
6732
6683
  }
6733
6684
  function SessionChrome(props) {
6734
- return /* @__PURE__ */ jsx14(SingleSendWording, { enabled: props.composer?.singleSend === true, children: /* @__PURE__ */ jsx14(SessionChromeView, { ...props }) });
6685
+ return /* @__PURE__ */ jsx13(SingleSendWording, { enabled: props.composer?.singleSend === true, children: /* @__PURE__ */ jsx13(SessionChromeView, { ...props }) });
6735
6686
  }
6736
6687
  function SessionChromeView({
6737
6688
  sessionStatus,
@@ -6855,7 +6806,7 @@ function SessionChromeView({
6855
6806
  tone: incoming.some(
6856
6807
  (item) => item.classification === "action_required" || item.classification === "failure"
6857
6808
  ) ? "waiting" : "neutral",
6858
- icon: /* @__PURE__ */ jsx14(InboxIcon, { className: "size-3" })
6809
+ icon: /* @__PURE__ */ jsx13(InboxIcon, { className: "size-3" })
6859
6810
  });
6860
6811
  }
6861
6812
  const queuedCount = queuedTurns.length + optimisticQueued.length;
@@ -6872,7 +6823,7 @@ function SessionChromeView({
6872
6823
  label: queueProblem ? queuedCount > 0 ? t("sessionChrome.queuedcountQueuedNeedsAttention", { queuedCount }) : t("sessionChrome.queueNeedsAttention") : allVoiceRequests ? queuedCount === 1 ? t("sessionChrome.voiceRequestQueued") : t("sessionChrome.queuedcountVoiceRequestsQueued", { queuedCount }) : onlyVoiceHandoff ? t("sessionChrome.voiceHandoffQueued") : t("sessionChrome.queuedPromptCount", { count: queuedCount }),
6873
6824
  ...detail ? { detail } : {},
6874
6825
  tone: queueProblem ? "waiting" : "neutral",
6875
- icon: queueProblem ? /* @__PURE__ */ jsx14(TriangleAlertIcon3, { className: "size-3" }) : voiceOnly ? /* @__PURE__ */ jsx14(AudioLinesIcon, { className: "size-3" }) : /* @__PURE__ */ jsx14(ListOrderedIcon, { className: "size-3" })
6826
+ icon: queueProblem ? /* @__PURE__ */ jsx13(TriangleAlertIcon3, { className: "size-3" }) : voiceOnly ? /* @__PURE__ */ jsx13(AudioLinesIcon, { className: "size-3" }) : /* @__PURE__ */ jsx13(ListOrderedIcon, { className: "size-3" })
6876
6827
  });
6877
6828
  }
6878
6829
  if (record && goalState) {
@@ -6884,7 +6835,7 @@ function SessionChromeView({
6884
6835
  detail: elapsed ? `${elapsed} \xB7 ${record.text}` : record.text,
6885
6836
  ...explanation ? { title: explanation } : {},
6886
6837
  tone: waiting ? "waiting" : goalState === "pursuing" || goalState === "scheduled" ? "accent" : "neutral",
6887
- icon: /* @__PURE__ */ jsx14(TargetIcon2, { className: "size-3" })
6838
+ icon: /* @__PURE__ */ jsx13(TargetIcon2, { className: "size-3" })
6888
6839
  });
6889
6840
  }
6890
6841
  if (agentsSignal && agentsSignal.count > 0) {
@@ -6894,7 +6845,7 @@ function SessionChromeView({
6894
6845
  label: t("counts.agents", { count: agentsSignal.count }),
6895
6846
  ...detail ? { detail } : {},
6896
6847
  tone: agentsSignal.tone ?? "neutral",
6897
- icon: /* @__PURE__ */ jsx14(BotIcon2, { className: "size-3" })
6848
+ icon: /* @__PURE__ */ jsx13(BotIcon2, { className: "size-3" })
6898
6849
  });
6899
6850
  }
6900
6851
  if (commandsCount > 0 || active === "commands" && hasCommandsPanel) {
@@ -6902,7 +6853,7 @@ function SessionChromeView({
6902
6853
  id: "commands",
6903
6854
  label: commandsCount > 0 ? t("counts.commands", { count: commandsCount }) : t("sessionChrome.commands2"),
6904
6855
  tone: commandsCount > 0 ? "running" : "neutral",
6905
- icon: /* @__PURE__ */ jsx14(TerminalIcon, { className: "size-3" })
6856
+ icon: /* @__PURE__ */ jsx13(TerminalIcon, { className: "size-3" })
6906
6857
  });
6907
6858
  }
6908
6859
  return rows;
@@ -7029,14 +6980,14 @@ function SessionChromeView({
7029
6980
  const shellDuration = reduceMotion ? 0 : 0.22;
7030
6981
  const crossfadeDuration = reduceMotion ? 0 : 0.18;
7031
6982
  const ease = [0.22, 1, 0.36, 1];
7032
- const panelBody = active === "incoming" ? /* @__PURE__ */ jsx14(
6983
+ const panelBody = active === "incoming" ? /* @__PURE__ */ jsx13(
7033
6984
  IncomingPanel,
7034
6985
  {
7035
6986
  inputs: incoming,
7036
6987
  onDismiss: onDismissIncoming,
7037
6988
  onOpenSession
7038
6989
  }
7039
- ) : active === "queue" ? /* @__PURE__ */ jsx14(
6990
+ ) : active === "queue" ? /* @__PURE__ */ jsx13(
7040
6991
  QueuePanel,
7041
6992
  {
7042
6993
  turns: queuedTurns,
@@ -7094,8 +7045,8 @@ function SessionChromeView({
7094
7045
  void queue.moveTurn(turnId, beforeTurnId);
7095
7046
  } : void 0
7096
7047
  }
7097
- ) : active === "goal" && record && goalState && goal ? /* @__PURE__ */ jsx14(GoalPanel, { goal, state: goalState, elapsed, readOnly }) : active === "commands" ? /* @__PURE__ */ jsx14("div", { "data-og-session-chrome-panel": "commands", children: commandsPanel }) : active === "agents" ? /* @__PURE__ */ jsx14("div", { "data-og-session-chrome-panel": "agents", children: agentsPanel ?? /* @__PURE__ */ jsx14("p", { className: "text-og-xs text-og-fg-muted", children: t("sessionChrome.noAgentDetails") }) }) : null;
7098
- return /* @__PURE__ */ jsx14(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ jsx14(
7048
+ ) : active === "goal" && record && goalState && goal ? /* @__PURE__ */ jsx13(GoalPanel, { goal, state: goalState, elapsed, readOnly }) : active === "commands" ? /* @__PURE__ */ jsx13("div", { "data-og-session-chrome-panel": "commands", children: commandsPanel }) : active === "agents" ? /* @__PURE__ */ jsx13("div", { "data-og-session-chrome-panel": "agents", children: agentsPanel ?? /* @__PURE__ */ jsx13("p", { className: "text-og-xs text-og-fg-muted", children: t("sessionChrome.noAgentDetails") }) }) : null;
7049
+ return /* @__PURE__ */ jsx13(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ jsx13(
7099
7050
  "div",
7100
7051
  {
7101
7052
  className: cn("og-session-chrome og-root w-full", className),
@@ -7103,7 +7054,7 @@ function SessionChromeView({
7103
7054
  ref: rootRef,
7104
7055
  "data-og-session-chrome": "",
7105
7056
  "data-og-session-chrome-open": open ? "true" : "false",
7106
- children: /* @__PURE__ */ jsxs10(
7057
+ children: /* @__PURE__ */ jsxs9(
7107
7058
  "div",
7108
7059
  {
7109
7060
  className: cn(
@@ -7119,7 +7070,7 @@ function SessionChromeView({
7119
7070
  transitionTimingFunction: "var(--_og-session-chrome-ease)"
7120
7071
  },
7121
7072
  children: [
7122
- /* @__PURE__ */ jsx14(
7073
+ /* @__PURE__ */ jsx13(
7123
7074
  "div",
7124
7075
  {
7125
7076
  className: "relative",
@@ -7129,7 +7080,7 @@ function SessionChromeView({
7129
7080
  paddingLeft: "var(--og-session-chrome-rail-pad)",
7130
7081
  paddingRight: "var(--og-session-chrome-rail-pad)"
7131
7082
  },
7132
- children: /* @__PURE__ */ jsxs10(
7083
+ children: /* @__PURE__ */ jsxs9(
7133
7084
  "div",
7134
7085
  {
7135
7086
  ref: railRef,
@@ -7138,7 +7089,7 @@ function SessionChromeView({
7138
7089
  gap: "10px"
7139
7090
  },
7140
7091
  children: [
7141
- /* @__PURE__ */ jsx14(
7092
+ /* @__PURE__ */ jsx13(
7142
7093
  motion3.div,
7143
7094
  {
7144
7095
  "aria-hidden": true,
@@ -7160,7 +7111,7 @@ function SessionChromeView({
7160
7111
  ),
7161
7112
  signals.filter((signal) => !["incoming", "agents", "commands"].includes(signal.id)).map((signal) => {
7162
7113
  const selected = active === signal.id;
7163
- return /* @__PURE__ */ jsxs10(
7114
+ return /* @__PURE__ */ jsxs9(
7164
7115
  "div",
7165
7116
  {
7166
7117
  role: "group",
@@ -7171,7 +7122,7 @@ function SessionChromeView({
7171
7122
  selected && "bg-og-surface-3"
7172
7123
  ),
7173
7124
  children: [
7174
- /* @__PURE__ */ jsxs10(
7125
+ /* @__PURE__ */ jsxs9(
7175
7126
  "button",
7176
7127
  {
7177
7128
  type: "button",
@@ -7202,7 +7153,7 @@ function SessionChromeView({
7202
7153
  paddingInline: "var(--og-session-chrome-chip-pad-x)"
7203
7154
  },
7204
7155
  children: [
7205
- signal.id === "queue" && queueArrivalNonce > 0 && !reduceMotion ? /* @__PURE__ */ jsx14(
7156
+ signal.id === "queue" && queueArrivalNonce > 0 && !reduceMotion ? /* @__PURE__ */ jsx13(
7206
7157
  motion3.span,
7207
7158
  {
7208
7159
  "aria-hidden": "true",
@@ -7214,8 +7165,8 @@ function SessionChromeView({
7214
7165
  },
7215
7166
  queueArrivalNonce
7216
7167
  ) : null,
7217
- /* @__PURE__ */ jsx14("span", { className: cn("shrink-0", toneClass(signal.tone, selected)), children: signal.icon }),
7218
- /* @__PURE__ */ jsxs10(
7168
+ /* @__PURE__ */ jsx13("span", { className: cn("shrink-0", toneClass(signal.tone, selected)), children: signal.icon }),
7169
+ /* @__PURE__ */ jsxs9(
7219
7170
  "span",
7220
7171
  {
7221
7172
  className: cn(
@@ -7230,7 +7181,7 @@ function SessionChromeView({
7230
7181
  ]
7231
7182
  }
7232
7183
  ),
7233
- signal.id === "queue" && queuePeek?.text && !selected ? /* @__PURE__ */ jsx14(AnimatePresence3, { initial: false, mode: "popLayout", children: /* @__PURE__ */ jsx14(
7184
+ signal.id === "queue" && queuePeek?.text && !selected ? /* @__PURE__ */ jsx13(AnimatePresence3, { initial: false, mode: "popLayout", children: /* @__PURE__ */ jsx13(
7234
7185
  motion3.span,
7235
7186
  {
7236
7187
  "data-testid": "session-chrome-queue-peek",
@@ -7246,18 +7197,18 @@ function SessionChromeView({
7246
7197
  ]
7247
7198
  }
7248
7199
  ),
7249
- signal.id === "goal" && goal && record && !readOnly ? /* @__PURE__ */ jsxs10("div", { className: "flex shrink-0 items-center pr-1 pl-0.5", children: [
7250
- record.status === "active" || record.status === "paused" ? /* @__PURE__ */ jsx14(
7200
+ signal.id === "goal" && goal && record && !readOnly ? /* @__PURE__ */ jsxs9("div", { className: "flex shrink-0 items-center pr-1 pl-0.5", children: [
7201
+ record.status === "active" || record.status === "paused" ? /* @__PURE__ */ jsx13(
7251
7202
  IconAction,
7252
7203
  {
7253
7204
  label: record.status === "paused" ? t("sessionChrome.resumeGoal") : t("sessionChrome.pauseGoal"),
7254
7205
  tip: record.status === "paused" ? t("sessionChrome.resumeGoal") : t("sessionChrome.pauseGoal"),
7255
7206
  disabled: goal.updating,
7256
7207
  onClick: () => void (record.status === "paused" ? goal.resume() : goal.pause("Paused from session chrome")),
7257
- children: goal.updating ? /* @__PURE__ */ jsx14(Loader2Icon2, { className: "size-3 animate-og-spin" }) : record.status === "paused" ? /* @__PURE__ */ jsx14(PlayIcon2, { className: "size-3" }) : /* @__PURE__ */ jsx14(PauseIcon2, { className: "size-3" })
7208
+ children: goal.updating ? /* @__PURE__ */ jsx13(Loader2Icon, { className: "size-3 animate-og-spin" }) : record.status === "paused" ? /* @__PURE__ */ jsx13(PlayIcon2, { className: "size-3" }) : /* @__PURE__ */ jsx13(PauseIcon2, { className: "size-3" })
7258
7209
  }
7259
7210
  ) : null,
7260
- /* @__PURE__ */ jsx14(
7211
+ /* @__PURE__ */ jsx13(
7261
7212
  IconAction,
7262
7213
  {
7263
7214
  label: t("sessionChrome.clearGoal"),
@@ -7265,21 +7216,21 @@ function SessionChromeView({
7265
7216
  danger: true,
7266
7217
  disabled: goal.updating,
7267
7218
  onClick: () => void goal.deleteGoal(),
7268
- children: /* @__PURE__ */ jsx14(Trash2Icon2, { className: "size-3" })
7219
+ children: /* @__PURE__ */ jsx13(Trash2Icon2, { className: "size-3" })
7269
7220
  }
7270
7221
  )
7271
- ] }) : signal.id === "queue" && canSteerQueued && queuePeek && !selected ? /* @__PURE__ */ jsx14("div", { className: "flex shrink-0 items-center pr-1 pl-0.5", children: /* @__PURE__ */ jsx14(
7222
+ ] }) : signal.id === "queue" && canSteerQueued && queuePeek && !selected ? /* @__PURE__ */ jsx13("div", { className: "flex shrink-0 items-center pr-1 pl-0.5", children: /* @__PURE__ */ jsx13(
7272
7223
  IconAction,
7273
7224
  {
7274
7225
  label: t("sessionChrome.steerLatestQueuedMessage"),
7275
7226
  analyticsAction: "steer",
7276
7227
  text: t("sessionChrome.steer"),
7277
- tip: /* @__PURE__ */ jsx14(QueueSteerTip, {}),
7228
+ tip: /* @__PURE__ */ jsx13(QueueSteerTip, {}),
7278
7229
  disabled: !queuePeek.turnId || queue.mutating || Boolean(queue.mutationFor(queuePeek.turnId)),
7279
7230
  onClick: () => {
7280
7231
  if (queuePeek.turnId) void queue.steerTurn(queuePeek.turnId);
7281
7232
  },
7282
- children: queuePeek.turnId && queue.mutationFor(queuePeek.turnId) === "steer" ? /* @__PURE__ */ jsx14(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx14(CornerDownRightIcon2, { className: "size-3" })
7233
+ children: queuePeek.turnId && queue.mutationFor(queuePeek.turnId) === "steer" ? /* @__PURE__ */ jsx13(Loader2Icon, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx13(CornerDownRightIcon2, { className: "size-3" })
7283
7234
  }
7284
7235
  ) }) : null
7285
7236
  ]
@@ -7287,7 +7238,7 @@ function SessionChromeView({
7287
7238
  signal.id
7288
7239
  );
7289
7240
  }),
7290
- signals.some((signal) => ["incoming", "agents", "commands"].includes(signal.id)) ? /* @__PURE__ */ jsxs10(
7241
+ signals.some((signal) => ["incoming", "agents", "commands"].includes(signal.id)) ? /* @__PURE__ */ jsxs9(
7291
7242
  "button",
7292
7243
  {
7293
7244
  type: "button",
@@ -7309,23 +7260,23 @@ function SessionChromeView({
7309
7260
  activityOpen ? "bg-og-surface-3 text-og-fg" : "text-og-fg-muted hover:bg-og-surface-2 hover:text-og-fg"
7310
7261
  ),
7311
7262
  children: [
7312
- /* @__PURE__ */ jsx14(ActivityIcon, { className: "size-3.5" }),
7313
- /* @__PURE__ */ jsx14("span", { className: "sr-only", children: t("sessionChrome.activity") }),
7314
- commandsCount > 0 ? /* @__PURE__ */ jsxs10(Fragment6, { children: [
7315
- /* @__PURE__ */ jsx14(
7263
+ /* @__PURE__ */ jsx13(ActivityIcon, { className: "size-3.5" }),
7264
+ /* @__PURE__ */ jsx13("span", { className: "sr-only", children: t("sessionChrome.activity") }),
7265
+ commandsCount > 0 ? /* @__PURE__ */ jsxs9(Fragment6, { children: [
7266
+ /* @__PURE__ */ jsx13(
7316
7267
  "span",
7317
7268
  {
7318
7269
  "aria-hidden": "true",
7319
7270
  className: "size-1.5 shrink-0 animate-og-pulse rounded-full bg-og-fg-muted motion-reduce:animate-none"
7320
7271
  }
7321
7272
  ),
7322
- /* @__PURE__ */ jsx14("span", { id: `${panelId}-commands-count`, children: t("sessionChrome.commands", { count: commandsCount }) })
7273
+ /* @__PURE__ */ jsx13("span", { id: `${panelId}-commands-count`, children: t("sessionChrome.commands", { count: commandsCount }) })
7323
7274
  ] }) : null,
7324
- incoming.length > 0 ? /* @__PURE__ */ jsx14("span", { className: "size-1.5 rounded-full bg-og-accent" }) : null
7275
+ incoming.length > 0 ? /* @__PURE__ */ jsx13("span", { className: "size-1.5 rounded-full bg-og-accent" }) : null
7325
7276
  ]
7326
7277
  }
7327
7278
  ) : null,
7328
- stopping ? /* @__PURE__ */ jsxs10(
7279
+ stopping ? /* @__PURE__ */ jsxs9(
7329
7280
  "span",
7330
7281
  {
7331
7282
  role: "status",
@@ -7333,8 +7284,8 @@ function SessionChromeView({
7333
7284
  className: "inline-flex min-h-[var(--og-session-chrome-chip-min-height)] items-center gap-1.5 px-1.5 text-og-xs text-og-fg-muted",
7334
7285
  "data-testid": "session-chrome-stopping",
7335
7286
  children: [
7336
- /* @__PURE__ */ jsx14(
7337
- Loader2Icon2,
7287
+ /* @__PURE__ */ jsx13(
7288
+ Loader2Icon,
7338
7289
  {
7339
7290
  "aria-hidden": "true",
7340
7291
  className: "size-3 animate-og-spin motion-reduce:animate-none"
@@ -7349,7 +7300,7 @@ function SessionChromeView({
7349
7300
  )
7350
7301
  }
7351
7302
  ),
7352
- /* @__PURE__ */ jsx14(AnimatePresence3, { initial: false, children: activityOpen ? /* @__PURE__ */ jsx14(
7303
+ /* @__PURE__ */ jsx13(AnimatePresence3, { initial: false, children: activityOpen ? /* @__PURE__ */ jsx13(
7353
7304
  motion3.div,
7354
7305
  {
7355
7306
  initial: { height: 0, opacity: 0 },
@@ -7357,7 +7308,7 @@ function SessionChromeView({
7357
7308
  exit: { height: 0, opacity: 0 },
7358
7309
  transition: { duration: shellDuration, ease },
7359
7310
  style: { overflow: "hidden" },
7360
- children: /* @__PURE__ */ jsx14("div", { className: "mt-1 flex items-center gap-1 rounded-t-og-lg bg-og-surface-2/50 px-2 py-1", children: signals.filter((signal) => ["incoming", "agents", "commands"].includes(signal.id)).map((signal) => /* @__PURE__ */ jsxs10(
7311
+ children: /* @__PURE__ */ jsx13("div", { className: "mt-1 flex items-center gap-1 rounded-t-og-lg bg-og-surface-2/50 px-2 py-1", children: signals.filter((signal) => ["incoming", "agents", "commands"].includes(signal.id)).map((signal) => /* @__PURE__ */ jsxs9(
7361
7312
  "button",
7362
7313
  {
7363
7314
  type: "button",
@@ -7379,10 +7330,10 @@ function SessionChromeView({
7379
7330
  },
7380
7331
  "activity-tabs"
7381
7332
  ) : null }),
7382
- goal?.mutationError ? /* @__PURE__ */ jsx14("p", { role: "alert", className: "px-3 pb-2 text-og-xs text-og-danger", children: t("sessionChrome.goalActionNotConfirmedError", {
7333
+ goal?.mutationError ? /* @__PURE__ */ jsx13("p", { role: "alert", className: "px-3 pb-2 text-og-xs text-og-danger", children: t("sessionChrome.goalActionNotConfirmedError", {
7383
7334
  error: formatError(goal.mutationError)
7384
7335
  }) }) : null,
7385
- /* @__PURE__ */ jsx14(
7336
+ /* @__PURE__ */ jsx13(
7386
7337
  "div",
7387
7338
  {
7388
7339
  id: panelId,
@@ -7398,7 +7349,7 @@ function SessionChromeView({
7398
7349
  transitionDuration: "var(--og-session-chrome-duration)",
7399
7350
  transitionTimingFunction: "var(--_og-session-chrome-ease)"
7400
7351
  },
7401
- children: /* @__PURE__ */ jsx14("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ jsxs10(
7352
+ children: /* @__PURE__ */ jsx13("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ jsxs9(
7402
7353
  "div",
7403
7354
  {
7404
7355
  className: cn(
@@ -7411,7 +7362,7 @@ function SessionChromeView({
7411
7362
  paddingBlock: "var(--og-session-chrome-panel-pad-y)"
7412
7363
  },
7413
7364
  children: [
7414
- /* @__PURE__ */ jsx14(AnimatePresence3, { initial: false, children: active && active !== "commands" && panelBody ? /* @__PURE__ */ jsx14(
7365
+ /* @__PURE__ */ jsx13(AnimatePresence3, { initial: false, children: active && active !== "commands" && panelBody ? /* @__PURE__ */ jsx13(
7415
7366
  motion3.div,
7416
7367
  {
7417
7368
  "data-og-session-chrome-panel-frame": active,
@@ -7429,7 +7380,7 @@ function SessionChromeView({
7429
7380
  },
7430
7381
  active
7431
7382
  ) : null }),
7432
- active === "commands" ? /* @__PURE__ */ jsx14(
7383
+ active === "commands" ? /* @__PURE__ */ jsx13(
7433
7384
  motion3.div,
7434
7385
  {
7435
7386
  initial: reduceMotion ? false : { opacity: 0 },
@@ -7461,21 +7412,21 @@ function IncomingPanel({
7461
7412
  lostWithSandbox.length >= 2 ? lostWithSandbox.map((input) => input.id) : []
7462
7413
  );
7463
7414
  const firstGrouped = lostWithSandbox.length >= 2 ? lostWithSandbox[0].id : null;
7464
- return /* @__PURE__ */ jsxs10("div", { children: [
7465
- /* @__PURE__ */ jsx14("p", { className: "mb-2 text-og-xs text-og-fg-subtle", children: t("sessionChrome.waitingToBeIncludedIn") }),
7466
- /* @__PURE__ */ jsx14(
7415
+ return /* @__PURE__ */ jsxs9("div", { children: [
7416
+ /* @__PURE__ */ jsx13("p", { className: "mb-2 text-og-xs text-og-fg-subtle", children: t("sessionChrome.waitingToBeIncludedIn") }),
7417
+ /* @__PURE__ */ jsx13(
7467
7418
  "ul",
7468
7419
  {
7469
7420
  className: "flex flex-col gap-0.5",
7470
7421
  "aria-label": t("sessionChrome.incomingUpdates"),
7471
7422
  "data-og-session-chrome-panel": "incoming",
7472
7423
  children: inputs.map(
7473
- (input) => grouped.has(input.id) ? input.id === firstGrouped ? /* @__PURE__ */ jsx14(CommandResultsRow, { inputs: lostWithSandbox, onDismiss }, input.id) : null : /* @__PURE__ */ jsxs10(
7424
+ (input) => grouped.has(input.id) ? input.id === firstGrouped ? /* @__PURE__ */ jsx13(CommandResultsRow, { inputs: lostWithSandbox, onDismiss }, input.id) : null : /* @__PURE__ */ jsxs9(
7474
7425
  "li",
7475
7426
  {
7476
7427
  className: "group flex items-start gap-1.5 rounded-og-sm px-1.5 py-1 transition-colors hover:bg-[var(--_og-session-chrome-row-hover)]",
7477
7428
  children: [
7478
- /* @__PURE__ */ jsx14(
7429
+ /* @__PURE__ */ jsx13(
7479
7430
  "span",
7480
7431
  {
7481
7432
  className: cn(
@@ -7485,9 +7436,9 @@ function IncomingPanel({
7485
7436
  children: pendingKindLabel(t, input.kind)
7486
7437
  }
7487
7438
  ),
7488
- /* @__PURE__ */ jsxs10("div", { className: "min-w-0 flex-1", children: [
7489
- /* @__PURE__ */ jsx14("p", { className: "break-words text-og-xs leading-4 text-og-fg", children: input.summary }),
7490
- /* @__PURE__ */ jsx14(
7439
+ /* @__PURE__ */ jsxs9("div", { className: "min-w-0 flex-1", children: [
7440
+ /* @__PURE__ */ jsx13("p", { className: "break-words text-og-xs leading-4 text-og-fg", children: input.summary }),
7441
+ /* @__PURE__ */ jsx13(
7491
7442
  ChildSessionLink,
7492
7443
  {
7493
7444
  kind: input.kind,
@@ -7496,7 +7447,7 @@ function IncomingPanel({
7496
7447
  }
7497
7448
  )
7498
7449
  ] }),
7499
- onDismiss ? /* @__PURE__ */ jsx14("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: /* @__PURE__ */ jsx14(
7450
+ onDismiss ? /* @__PURE__ */ jsx13("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: /* @__PURE__ */ jsx13(
7500
7451
  IconAction,
7501
7452
  {
7502
7453
  label: t("sessionChrome.dismissIncomingPendingkindlabel", {
@@ -7505,7 +7456,7 @@ function IncomingPanel({
7505
7456
  tip: "Dismiss",
7506
7457
  onClick: () => onDismiss(input.id),
7507
7458
  danger: true,
7508
- children: /* @__PURE__ */ jsx14(Trash2Icon2, { className: "size-3" })
7459
+ children: /* @__PURE__ */ jsx13(Trash2Icon2, { className: "size-3" })
7509
7460
  }
7510
7461
  ) }) : null
7511
7462
  ]
@@ -7528,15 +7479,15 @@ function CommandResultsRow({
7528
7479
  onDismiss
7529
7480
  }) {
7530
7481
  const t = useOpenGeniText();
7531
- return /* @__PURE__ */ jsxs10(
7482
+ return /* @__PURE__ */ jsxs9(
7532
7483
  "li",
7533
7484
  {
7534
7485
  className: "group flex items-start gap-1.5 rounded-og-sm px-1.5 py-1 transition-colors hover:bg-[var(--_og-session-chrome-row-hover)]",
7535
7486
  "data-og-session-chrome-command-results": inputs.length,
7536
7487
  children: [
7537
- /* @__PURE__ */ jsx14("span", { className: "mt-px shrink-0 rounded bg-og-status-waiting/12 px-1 py-px text-[10px] font-medium leading-4 text-og-status-waiting", children: t("sessionChrome.commandResults") }),
7538
- /* @__PURE__ */ jsx14("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx14("p", { className: "break-words text-og-xs leading-4 text-og-fg", children: commandResultsSummary(t, inputs) }) }),
7539
- onDismiss ? /* @__PURE__ */ jsx14("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: /* @__PURE__ */ jsx14(
7488
+ /* @__PURE__ */ jsx13("span", { className: "mt-px shrink-0 rounded bg-og-status-waiting/12 px-1 py-px text-[10px] font-medium leading-4 text-og-status-waiting", children: t("sessionChrome.commandResults") }),
7489
+ /* @__PURE__ */ jsx13("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx13("p", { className: "break-words text-og-xs leading-4 text-og-fg", children: commandResultsSummary(t, inputs) }) }),
7490
+ onDismiss ? /* @__PURE__ */ jsx13("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: /* @__PURE__ */ jsx13(
7540
7491
  IconAction,
7541
7492
  {
7542
7493
  label: t("sessionChrome.dismissIncomingCommandResults"),
@@ -7545,7 +7496,7 @@ function CommandResultsRow({
7545
7496
  for (const input of inputs) onDismiss(input.id);
7546
7497
  },
7547
7498
  danger: true,
7548
- children: /* @__PURE__ */ jsx14(Trash2Icon2, { className: "size-3" })
7499
+ children: /* @__PURE__ */ jsx13(Trash2Icon2, { className: "size-3" })
7549
7500
  }
7550
7501
  ) }) : null
7551
7502
  ]
@@ -7591,7 +7542,7 @@ function QueuePanel({
7591
7542
  );
7592
7543
  return () => clearTimeout(timer);
7593
7544
  }, [reduceMotion, turnIdsKey]);
7594
- return /* @__PURE__ */ jsxs10(
7545
+ return /* @__PURE__ */ jsxs9(
7595
7546
  "ol",
7596
7547
  {
7597
7548
  className: "flex flex-col gap-0.5",
@@ -7606,63 +7557,63 @@ function QueuePanel({
7606
7557
  const { beforeUp, beforeDown } = queueNeighborAnchors(turns, index);
7607
7558
  const showActions = !readOnly && (onEdit || onSteer || onRemove || onMove);
7608
7559
  const confirmingReplace = replaceDraftFor === turn.id;
7609
- return /* @__PURE__ */ jsxs10(
7560
+ return /* @__PURE__ */ jsxs9(
7610
7561
  "li",
7611
7562
  {
7612
7563
  "data-queue-turn-id": turn.id,
7613
7564
  tabIndex: -1,
7614
7565
  className: "group flex flex-col gap-1 rounded-og-sm px-1.5 py-1 transition-colors hover:bg-[var(--_og-session-chrome-row-hover)]",
7615
7566
  children: [
7616
- /* @__PURE__ */ jsxs10("div", { className: "flex items-start gap-1.5", children: [
7617
- voice ? /* @__PURE__ */ jsx14(
7567
+ /* @__PURE__ */ jsxs9("div", { className: "flex items-start gap-1.5", children: [
7568
+ voice ? /* @__PURE__ */ jsx13(
7618
7569
  AudioLinesIcon,
7619
7570
  {
7620
7571
  "aria-hidden": "true",
7621
7572
  className: "mt-0.5 size-3 shrink-0 text-og-accent"
7622
7573
  }
7623
- ) : /* @__PURE__ */ jsx14("span", { className: "mt-px shrink-0 font-og-mono text-[10px] leading-4 text-og-fg-subtle", children: index + 1 }),
7624
- /* @__PURE__ */ jsx14(
7574
+ ) : /* @__PURE__ */ jsx13("span", { className: "mt-px shrink-0 font-og-mono text-[10px] leading-4 text-og-fg-subtle", children: index + 1 }),
7575
+ /* @__PURE__ */ jsx13(
7625
7576
  CompactQueueItemContent,
7626
7577
  {
7627
7578
  text: presentation.text,
7628
7579
  annotations: turn.annotations ?? []
7629
7580
  }
7630
7581
  ),
7631
- showActions ? /* @__PURE__ */ jsxs10("div", { className: "flex shrink-0 items-center gap-0.5", children: [
7632
- /* @__PURE__ */ jsxs10("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: [
7633
- onMove && turns.length > 1 ? /* @__PURE__ */ jsxs10(Fragment6, { children: [
7634
- /* @__PURE__ */ jsx14(
7582
+ showActions ? /* @__PURE__ */ jsxs9("div", { className: "flex shrink-0 items-center gap-0.5", children: [
7583
+ /* @__PURE__ */ jsxs9("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: [
7584
+ onMove && turns.length > 1 ? /* @__PURE__ */ jsxs9(Fragment6, { children: [
7585
+ /* @__PURE__ */ jsx13(
7635
7586
  IconAction,
7636
7587
  {
7637
7588
  label: t("sessionChrome.moveQueuedPromptIndexUp", { index: index + 1 }),
7638
7589
  tip: t("sessionChrome.moveUp"),
7639
7590
  disabled: settling || pending !== null || index === 0,
7640
7591
  onClick: () => onMove(turn.id, beforeUp),
7641
- children: /* @__PURE__ */ jsx14(ArrowUpIcon2, { className: "size-3" })
7592
+ children: /* @__PURE__ */ jsx13(ArrowUpIcon2, { className: "size-3" })
7642
7593
  }
7643
7594
  ),
7644
- /* @__PURE__ */ jsx14(
7595
+ /* @__PURE__ */ jsx13(
7645
7596
  IconAction,
7646
7597
  {
7647
7598
  label: t("sessionChrome.moveQueuedPromptIndexDown", { index: index + 1 }),
7648
7599
  tip: t("sessionChrome.moveDown"),
7649
7600
  disabled: settling || pending !== null || index >= turns.length - 1,
7650
7601
  onClick: () => onMove(turn.id, beforeDown),
7651
- children: /* @__PURE__ */ jsx14(ArrowDownIcon2, { className: "size-3" })
7602
+ children: /* @__PURE__ */ jsx13(ArrowDownIcon2, { className: "size-3" })
7652
7603
  }
7653
7604
  )
7654
7605
  ] }) : null,
7655
- onEdit ? /* @__PURE__ */ jsx14(
7606
+ onEdit ? /* @__PURE__ */ jsx13(
7656
7607
  IconAction,
7657
7608
  {
7658
7609
  label: t("sessionChrome.editQueuedPromptIndex", { index: index + 1 }),
7659
7610
  tip: QUEUE_EDIT_TIP(t),
7660
7611
  disabled: settling || pending !== null,
7661
7612
  onClick: () => onEdit(turn),
7662
- children: pending === "edit" ? /* @__PURE__ */ jsx14(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx14(PencilIcon, { className: "size-3" })
7613
+ children: pending === "edit" ? /* @__PURE__ */ jsx13(Loader2Icon, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx13(PencilIcon, { className: "size-3" })
7663
7614
  }
7664
7615
  ) : null,
7665
- onRemove ? /* @__PURE__ */ jsx14(
7616
+ onRemove ? /* @__PURE__ */ jsx13(
7666
7617
  IconAction,
7667
7618
  {
7668
7619
  label: t("sessionChrome.removeQueuedPromptIndex", { index: index + 1 }),
@@ -7670,29 +7621,29 @@ function QueuePanel({
7670
7621
  disabled: settling || pending !== null,
7671
7622
  onClick: () => onRemove(turn.id),
7672
7623
  danger: true,
7673
- children: pending === "delete" ? /* @__PURE__ */ jsx14(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx14(Trash2Icon2, { className: "size-3" })
7624
+ children: pending === "delete" ? /* @__PURE__ */ jsx13(Loader2Icon, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx13(Trash2Icon2, { className: "size-3" })
7674
7625
  }
7675
7626
  ) : null
7676
7627
  ] }),
7677
- onSteer ? /* @__PURE__ */ jsx14(
7628
+ onSteer ? /* @__PURE__ */ jsx13(
7678
7629
  IconAction,
7679
7630
  {
7680
7631
  label: t("sessionChrome.steerQueuedPromptIndex", { index: index + 1 }),
7681
7632
  analyticsAction: "steer",
7682
7633
  text: t("sessionChrome.steer"),
7683
- tip: /* @__PURE__ */ jsx14(QueueSteerTip, {}),
7634
+ tip: /* @__PURE__ */ jsx13(QueueSteerTip, {}),
7684
7635
  disabled: settling || pending !== null,
7685
7636
  onClick: () => onSteer(turn.id),
7686
- children: pending === "steer" ? /* @__PURE__ */ jsx14(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx14(CornerDownRightIcon2, { className: "size-3" })
7637
+ children: pending === "steer" ? /* @__PURE__ */ jsx13(Loader2Icon, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx13(CornerDownRightIcon2, { className: "size-3" })
7687
7638
  }
7688
7639
  ) : null
7689
7640
  ] }) : null
7690
7641
  ] }),
7691
- confirmingReplace ? /* @__PURE__ */ jsxs10("div", { className: "rounded-og-sm border border-og-status-waiting/30 bg-og-status-waiting/10 p-2 text-og-xs text-og-fg", children: [
7692
- /* @__PURE__ */ jsx14("p", { children: QUEUE_REPLACE_DRAFT_COPY(t).title }),
7693
- /* @__PURE__ */ jsx14("p", { className: "mt-0.5 text-og-fg-muted", children: QUEUE_REPLACE_DRAFT_COPY(t).detail }),
7694
- /* @__PURE__ */ jsxs10("div", { className: "mt-2 flex justify-end gap-1.5", children: [
7695
- /* @__PURE__ */ jsx14(
7642
+ confirmingReplace ? /* @__PURE__ */ jsxs9("div", { className: "rounded-og-sm border border-og-status-waiting/30 bg-og-status-waiting/10 p-2 text-og-xs text-og-fg", children: [
7643
+ /* @__PURE__ */ jsx13("p", { children: QUEUE_REPLACE_DRAFT_COPY(t).title }),
7644
+ /* @__PURE__ */ jsx13("p", { className: "mt-0.5 text-og-fg-muted", children: QUEUE_REPLACE_DRAFT_COPY(t).detail }),
7645
+ /* @__PURE__ */ jsxs9("div", { className: "mt-2 flex justify-end gap-1.5", children: [
7646
+ /* @__PURE__ */ jsx13(
7696
7647
  "button",
7697
7648
  {
7698
7649
  type: "button",
@@ -7701,7 +7652,7 @@ function QueuePanel({
7701
7652
  children: QUEUE_REPLACE_DRAFT_COPY(t).keep
7702
7653
  }
7703
7654
  ),
7704
- /* @__PURE__ */ jsx14(
7655
+ /* @__PURE__ */ jsx13(
7705
7656
  "button",
7706
7657
  {
7707
7658
  type: "button",
@@ -7717,7 +7668,7 @@ function QueuePanel({
7717
7668
  turn.id
7718
7669
  );
7719
7670
  }),
7720
- /* @__PURE__ */ jsx14(AnimatePresence3, { initial: false, children: optimistic.map((message, index) => /* @__PURE__ */ jsxs10(
7671
+ /* @__PURE__ */ jsx13(AnimatePresence3, { initial: false, children: optimistic.map((message, index) => /* @__PURE__ */ jsxs9(
7721
7672
  motion3.li,
7722
7673
  {
7723
7674
  "aria-live": "polite",
@@ -7730,14 +7681,14 @@ function QueuePanel({
7730
7681
  message.state === "failed" ? "bg-og-danger/8 text-og-danger" : "bg-og-accent-soft/45"
7731
7682
  ),
7732
7683
  children: [
7733
- /* @__PURE__ */ jsx14("span", { className: "shrink-0 font-og-mono text-[10px] leading-4 text-og-fg-subtle", children: turns.length + index + 1 }),
7734
- /* @__PURE__ */ jsxs10("div", { className: "min-w-0 flex-1", children: [
7735
- /* @__PURE__ */ jsx14(CompactQueueItemContent, { text: message.text, annotations: message.annotations }),
7736
- message.state === "failed" && message.error ? /* @__PURE__ */ jsx14("p", { className: "break-words text-og-xs", children: message.error }) : null
7684
+ /* @__PURE__ */ jsx13("span", { className: "shrink-0 font-og-mono text-[10px] leading-4 text-og-fg-subtle", children: turns.length + index + 1 }),
7685
+ /* @__PURE__ */ jsxs9("div", { className: "min-w-0 flex-1", children: [
7686
+ /* @__PURE__ */ jsx13(CompactQueueItemContent, { text: message.text, annotations: message.annotations }),
7687
+ message.state === "failed" && message.error ? /* @__PURE__ */ jsx13("p", { className: "break-words text-og-xs", children: message.error }) : null
7737
7688
  ] }),
7738
- /* @__PURE__ */ jsx14("span", { className: "sr-only", children: message.state === "failed" ? message.outcomeUnknown ? t("sessionChrome.notConfirmed") : t("sessionChrome.messageNotSent") : message.state === "sending" ? t("sessionChrome.placingInQueue") : t("sessionChrome.queued") }),
7739
- message.state === "failed" ? /* @__PURE__ */ jsxs10("div", { className: "flex shrink-0 items-center gap-1 text-[10px]", children: [
7740
- message.retryable !== false && onRetryOptimistic ? /* @__PURE__ */ jsx14(
7689
+ /* @__PURE__ */ jsx13("span", { className: "sr-only", children: message.state === "failed" ? message.outcomeUnknown ? t("sessionChrome.notConfirmed") : t("sessionChrome.messageNotSent") : message.state === "sending" ? t("sessionChrome.placingInQueue") : t("sessionChrome.queued") }),
7690
+ message.state === "failed" ? /* @__PURE__ */ jsxs9("div", { className: "flex shrink-0 items-center gap-1 text-[10px]", children: [
7691
+ message.retryable !== false && onRetryOptimistic ? /* @__PURE__ */ jsx13(
7741
7692
  "button",
7742
7693
  {
7743
7694
  type: "button",
@@ -7746,7 +7697,7 @@ function QueuePanel({
7746
7697
  children: t("sessionChrome.retry")
7747
7698
  }
7748
7699
  ) : null,
7749
- message.retryable === false && onRestoreOptimistic ? /* @__PURE__ */ jsx14(
7700
+ message.retryable === false && onRestoreOptimistic ? /* @__PURE__ */ jsx13(
7750
7701
  "button",
7751
7702
  {
7752
7703
  type: "button",
@@ -7755,36 +7706,36 @@ function QueuePanel({
7755
7706
  children: t("sessionChrome.editMessage")
7756
7707
  }
7757
7708
  ) : null,
7758
- onRemoveOptimistic ? /* @__PURE__ */ jsx14(
7709
+ onRemoveOptimistic ? /* @__PURE__ */ jsx13(
7759
7710
  "button",
7760
7711
  {
7761
7712
  type: "button",
7762
7713
  "aria-label": t("sessionChrome.dismissUnconfirmedQueuedPrompt"),
7763
7714
  className: "rounded-og-sm p-1 text-og-fg-muted hover:bg-og-surface-2 hover:text-og-fg pointer-coarse:min-h-11 pointer-coarse:min-w-11",
7764
7715
  onClick: () => onRemoveOptimistic(message.clientEventId),
7765
- children: /* @__PURE__ */ jsx14(XIcon, { className: "size-3" })
7716
+ children: /* @__PURE__ */ jsx13(XIcon, { className: "size-3" })
7766
7717
  }
7767
7718
  ) : null
7768
- ] }) : message.state === "sending" ? /* @__PURE__ */ jsx14(
7769
- Loader2Icon2,
7719
+ ] }) : message.state === "sending" ? /* @__PURE__ */ jsx13(
7720
+ Loader2Icon,
7770
7721
  {
7771
7722
  "aria-hidden": "true",
7772
7723
  className: "size-3 shrink-0 animate-og-spin text-og-accent motion-reduce:animate-none"
7773
7724
  }
7774
- ) : /* @__PURE__ */ jsx14(CheckIcon2, { "aria-hidden": "true", className: "size-3 shrink-0 text-og-accent" })
7725
+ ) : /* @__PURE__ */ jsx13(CheckIcon2, { "aria-hidden": "true", className: "size-3 shrink-0 text-og-accent" })
7775
7726
  ]
7776
7727
  },
7777
7728
  message.clientEventId
7778
7729
  )) }),
7779
- loadError ? /* @__PURE__ */ jsxs10(
7730
+ loadError ? /* @__PURE__ */ jsxs9(
7780
7731
  "li",
7781
7732
  {
7782
7733
  role: "alert",
7783
7734
  className: "flex items-center gap-1.5 rounded-og-sm bg-og-danger/8 px-1.5 py-1 text-og-xs text-og-danger",
7784
7735
  children: [
7785
- /* @__PURE__ */ jsx14(TriangleAlertIcon3, { className: "size-3 shrink-0" }),
7786
- /* @__PURE__ */ jsx14("span", { className: "min-w-0 flex-1", children: t("sessionChrome.queueUnavailable") }),
7787
- /* @__PURE__ */ jsx14(
7736
+ /* @__PURE__ */ jsx13(TriangleAlertIcon3, { className: "size-3 shrink-0" }),
7737
+ /* @__PURE__ */ jsx13("span", { className: "min-w-0 flex-1", children: t("sessionChrome.queueUnavailable") }),
7738
+ /* @__PURE__ */ jsx13(
7788
7739
  "button",
7789
7740
  {
7790
7741
  type: "button",
@@ -7796,15 +7747,15 @@ function QueuePanel({
7796
7747
  ]
7797
7748
  }
7798
7749
  ) : null,
7799
- mutationError ? /* @__PURE__ */ jsxs10(
7750
+ mutationError ? /* @__PURE__ */ jsxs9(
7800
7751
  "li",
7801
7752
  {
7802
7753
  role: "alert",
7803
7754
  className: "flex items-center gap-1.5 rounded-og-sm bg-og-danger/8 px-1.5 py-1 text-og-xs text-og-danger",
7804
7755
  children: [
7805
- /* @__PURE__ */ jsx14(TriangleAlertIcon3, { className: "size-3 shrink-0" }),
7806
- /* @__PURE__ */ jsx14("span", { className: "min-w-0 flex-1", children: t("sessionChrome.notConfirmedCheckTheQueue") }),
7807
- /* @__PURE__ */ jsx14(
7756
+ /* @__PURE__ */ jsx13(TriangleAlertIcon3, { className: "size-3 shrink-0" }),
7757
+ /* @__PURE__ */ jsx13("span", { className: "min-w-0 flex-1", children: t("sessionChrome.notConfirmedCheckTheQueue") }),
7758
+ /* @__PURE__ */ jsx13(
7808
7759
  "button",
7809
7760
  {
7810
7761
  type: "button",
@@ -7826,9 +7777,9 @@ function CompactQueueItemContent({
7826
7777
  }) {
7827
7778
  const t = useOpenGeniText();
7828
7779
  const content = queueItemContent(text, annotations.length);
7829
- return /* @__PURE__ */ jsxs10("div", { className: "flex min-w-0 flex-1 items-center gap-1.5", children: [
7830
- content === "text" ? /* @__PURE__ */ jsx14("p", { className: "min-w-0 flex-1 truncate text-og-xs leading-4 text-og-fg", children: text }) : content === "unavailable" ? /* @__PURE__ */ jsx14("p", { className: "min-w-0 flex-1 truncate text-og-xs leading-4 text-og-fg-muted italic", children: QUEUE_ITEM_CONTENT_UNAVAILABLE(t) }) : null,
7831
- annotations.length > 0 ? /* @__PURE__ */ jsx14(TimelineAnnotationsChip, { annotations, className: "shrink-0", compact: true }) : null
7780
+ return /* @__PURE__ */ jsxs9("div", { className: "flex min-w-0 flex-1 items-center gap-1.5", children: [
7781
+ content === "text" ? /* @__PURE__ */ jsx13("p", { className: "min-w-0 flex-1 truncate text-og-xs leading-4 text-og-fg", children: text }) : content === "unavailable" ? /* @__PURE__ */ jsx13("p", { className: "min-w-0 flex-1 truncate text-og-xs leading-4 text-og-fg-muted italic", children: QUEUE_ITEM_CONTENT_UNAVAILABLE(t) }) : null,
7782
+ annotations.length > 0 ? /* @__PURE__ */ jsx13(TimelineAnnotationsChip, { annotations, className: "shrink-0", compact: true }) : null
7832
7783
  ] });
7833
7784
  }
7834
7785
  function GoalPanel({
@@ -7843,22 +7794,22 @@ function GoalPanel({
7843
7794
  if (!record) return null;
7844
7795
  const canToggle = !readOnly && (record.status === "active" || record.status === "paused");
7845
7796
  const explanation = sessionChromeGoalPillExplanation(t, state, record);
7846
- return /* @__PURE__ */ jsxs10("div", { className: "space-y-1.5", "data-og-session-chrome-panel": "goal", children: [
7847
- /* @__PURE__ */ jsxs10("div", { className: "flex flex-wrap items-center gap-1.5 text-[10px] font-medium uppercase tracking-wider text-og-fg-subtle", children: [
7848
- /* @__PURE__ */ jsx14("span", { children: sessionChromeGoalPillLabel(t, state, record) }),
7849
- elapsed ? /* @__PURE__ */ jsx14("span", { className: "tabular-nums normal-case tracking-normal text-og-fg-muted", children: t("sessionChrome.createdElapsedAgo", { elapsed }) }) : null,
7850
- /* @__PURE__ */ jsxs10("span", { className: "normal-case tracking-normal text-og-fg-muted", children: [
7797
+ return /* @__PURE__ */ jsxs9("div", { className: "space-y-1.5", "data-og-session-chrome-panel": "goal", children: [
7798
+ /* @__PURE__ */ jsxs9("div", { className: "flex flex-wrap items-center gap-1.5 text-[10px] font-medium uppercase tracking-wider text-og-fg-subtle", children: [
7799
+ /* @__PURE__ */ jsx13("span", { children: sessionChromeGoalPillLabel(t, state, record) }),
7800
+ elapsed ? /* @__PURE__ */ jsx13("span", { className: "tabular-nums normal-case tracking-normal text-og-fg-muted", children: t("sessionChrome.createdElapsedAgo", { elapsed }) }) : null,
7801
+ /* @__PURE__ */ jsxs9("span", { className: "normal-case tracking-normal text-og-fg-muted", children: [
7851
7802
  "\xB7 v",
7852
7803
  record.version
7853
7804
  ] })
7854
7805
  ] }),
7855
- /* @__PURE__ */ jsx14("p", { className: "text-og-sm leading-5 text-og-fg", children: record.text }),
7856
- record.successCriteria ? /* @__PURE__ */ jsxs10("p", { className: "text-og-xs leading-4 text-og-fg-muted", children: [
7857
- /* @__PURE__ */ jsx14("span", { className: "font-medium text-og-fg", children: t("sessionChrome.doneWhen") }),
7806
+ /* @__PURE__ */ jsx13("p", { className: "text-og-sm leading-5 text-og-fg", children: record.text }),
7807
+ record.successCriteria ? /* @__PURE__ */ jsxs9("p", { className: "text-og-xs leading-4 text-og-fg-muted", children: [
7808
+ /* @__PURE__ */ jsx13("span", { className: "font-medium text-og-fg", children: t("sessionChrome.doneWhen") }),
7858
7809
  " ",
7859
7810
  record.successCriteria
7860
7811
  ] }) : null,
7861
- explanation ? /* @__PURE__ */ jsx14(
7812
+ explanation ? /* @__PURE__ */ jsx13(
7862
7813
  "p",
7863
7814
  {
7864
7815
  "data-og-session-chrome-goal-explanation": true,
@@ -7866,18 +7817,18 @@ function GoalPanel({
7866
7817
  children: explanation
7867
7818
  }
7868
7819
  ) : null,
7869
- record.continuation?.lastError ? /* @__PURE__ */ jsx14("p", { className: "rounded-og-sm bg-og-status-waiting/10 px-1.5 py-1 text-og-xs leading-4 text-og-status-waiting", children: formatError(record.continuation.lastError) }) : null,
7870
- /* @__PURE__ */ jsxs10("div", { className: "flex flex-wrap items-center justify-between gap-1.5 pt-0.5", children: [
7871
- /* @__PURE__ */ jsxs10("div", { className: "flex flex-wrap gap-1 text-[10px] text-og-fg-muted", children: [
7872
- /* @__PURE__ */ jsx14("span", { className: "rounded bg-og-surface-3/70 px-1 py-px", children: t("sessionChrome.autocontinuationsConsecutiveUnattendedContinues", {
7820
+ record.continuation?.lastError ? /* @__PURE__ */ jsx13("p", { className: "rounded-og-sm bg-og-status-waiting/10 px-1.5 py-1 text-og-xs leading-4 text-og-status-waiting", children: formatError(record.continuation.lastError) }) : null,
7821
+ /* @__PURE__ */ jsxs9("div", { className: "flex flex-wrap items-center justify-between gap-1.5 pt-0.5", children: [
7822
+ /* @__PURE__ */ jsxs9("div", { className: "flex flex-wrap gap-1 text-[10px] text-og-fg-muted", children: [
7823
+ /* @__PURE__ */ jsx13("span", { className: "rounded bg-og-surface-3/70 px-1 py-px", children: t("sessionChrome.autocontinuationsConsecutiveUnattendedContinues", {
7873
7824
  autoContinuations: record.autoContinuations
7874
7825
  }) }),
7875
- /* @__PURE__ */ jsx14("span", { className: "rounded bg-og-surface-3/70 px-1 py-px", children: t("sessionChrome.noprogressstreakStalled", {
7826
+ /* @__PURE__ */ jsx13("span", { className: "rounded bg-og-surface-3/70 px-1 py-px", children: t("sessionChrome.noprogressstreakStalled", {
7876
7827
  noProgressStreak: record.noProgressStreak
7877
7828
  }) })
7878
7829
  ] }),
7879
- !readOnly ? /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-0.5", children: [
7880
- canToggle ? /* @__PURE__ */ jsxs10(
7830
+ !readOnly ? /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-0.5", children: [
7831
+ canToggle ? /* @__PURE__ */ jsxs9(
7881
7832
  "button",
7882
7833
  {
7883
7834
  type: "button",
@@ -7885,12 +7836,12 @@ function GoalPanel({
7885
7836
  onClick: () => void (record.status === "paused" ? goal.resume() : goal.pause("Paused from session chrome")),
7886
7837
  className: "inline-flex h-6 items-center gap-1 rounded-og-sm px-1.5 text-og-xs font-medium text-og-fg-muted outline-hidden transition-colors hover:bg-og-surface-3/70 hover:text-og-fg focus-visible:ring-2 focus-visible:ring-og-accent/40 disabled:opacity-50",
7887
7838
  children: [
7888
- goal.updating ? /* @__PURE__ */ jsx14(Loader2Icon2, { className: "size-3 animate-og-spin" }) : record.status === "paused" ? /* @__PURE__ */ jsx14(PlayIcon2, { className: "size-3" }) : /* @__PURE__ */ jsx14(PauseIcon2, { className: "size-3" }),
7839
+ goal.updating ? /* @__PURE__ */ jsx13(Loader2Icon, { className: "size-3 animate-og-spin" }) : record.status === "paused" ? /* @__PURE__ */ jsx13(PlayIcon2, { className: "size-3" }) : /* @__PURE__ */ jsx13(PauseIcon2, { className: "size-3" }),
7889
7840
  record.status === "paused" ? t("sessionChrome.resume") : t("sessionChrome.pause")
7890
7841
  ]
7891
7842
  }
7892
7843
  ) : null,
7893
- /* @__PURE__ */ jsxs10(
7844
+ /* @__PURE__ */ jsxs9(
7894
7845
  "button",
7895
7846
  {
7896
7847
  type: "button",
@@ -7898,7 +7849,7 @@ function GoalPanel({
7898
7849
  onClick: () => void goal.deleteGoal(),
7899
7850
  className: "inline-flex h-6 items-center gap-1 rounded-og-sm px-1.5 text-og-xs font-medium text-og-fg-subtle outline-hidden transition-colors hover:bg-og-surface-3/70 hover:text-og-danger focus-visible:ring-2 focus-visible:ring-og-accent/40 disabled:opacity-50",
7900
7851
  children: [
7901
- /* @__PURE__ */ jsx14(Trash2Icon2, { className: "size-3" }),
7852
+ /* @__PURE__ */ jsx13(Trash2Icon2, { className: "size-3" }),
7902
7853
  t("sessionChrome.clear")
7903
7854
  ]
7904
7855
  }
@@ -7909,9 +7860,9 @@ function GoalPanel({
7909
7860
  }
7910
7861
  function QueueSteerTip() {
7911
7862
  const t = useOpenGeniText();
7912
- return /* @__PURE__ */ jsxs10("span", { className: "flex flex-col gap-0.5 text-left", children: [
7913
- /* @__PURE__ */ jsx14("span", { className: "font-medium", children: t("sessionChrome.steer") }),
7914
- /* @__PURE__ */ jsx14("span", { className: "opacity-80", children: t("sessionChrome.steerTip") })
7863
+ return /* @__PURE__ */ jsxs9("span", { className: "flex flex-col gap-0.5 text-left", children: [
7864
+ /* @__PURE__ */ jsx13("span", { className: "font-medium", children: t("sessionChrome.steer") }),
7865
+ /* @__PURE__ */ jsx13("span", { className: "opacity-80", children: t("sessionChrome.steerTip") })
7915
7866
  ] });
7916
7867
  }
7917
7868
  var QUEUE_EDIT_TIP = (t) => t("sessionChrome.editInComposer");
@@ -7926,8 +7877,8 @@ function IconAction({
7926
7877
  danger,
7927
7878
  children
7928
7879
  }) {
7929
- return /* @__PURE__ */ jsxs10(Tooltip, { children: [
7930
- /* @__PURE__ */ jsx14(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs10(
7880
+ return /* @__PURE__ */ jsxs9(Tooltip, { children: [
7881
+ /* @__PURE__ */ jsx13(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs9(
7931
7882
  "button",
7932
7883
  {
7933
7884
  type: "button",
@@ -7949,7 +7900,7 @@ function IconAction({
7949
7900
  ]
7950
7901
  }
7951
7902
  ) }),
7952
- /* @__PURE__ */ jsx14(TooltipContent, { side: "top", children: tip })
7903
+ /* @__PURE__ */ jsx13(TooltipContent, { side: "top", children: tip })
7953
7904
  ] });
7954
7905
  }
7955
7906
 
@@ -7959,8 +7910,8 @@ import {
7959
7910
  SESSION_SCOPE_HEADER
7960
7911
  } from "@opengeni/sdk";
7961
7912
  import {
7962
- lazy as lazy3,
7963
- Suspense as Suspense4,
7913
+ lazy as lazy2,
7914
+ Suspense as Suspense3,
7964
7915
  useCallback as useCallback6,
7965
7916
  useEffect as useEffect14,
7966
7917
  useMemo as useMemo9,
@@ -7970,13 +7921,13 @@ import {
7970
7921
 
7971
7922
  // src/components/conversation-render-boundary.tsx
7972
7923
  import { Component as Component3, useState as useState10 } from "react";
7973
- import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
7924
+ import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
7974
7925
  function ConversationRenderBoundary({
7975
7926
  resetKey,
7976
7927
  children
7977
7928
  }) {
7978
7929
  const [attempt, setAttempt] = useState10(0);
7979
- return /* @__PURE__ */ jsx15(Boundary, { resetKey: `${resetKey}:${attempt}`, onRetry: () => setAttempt((value) => value + 1), children });
7930
+ return /* @__PURE__ */ jsx14(Boundary, { resetKey: `${resetKey}:${attempt}`, onRetry: () => setAttempt((value) => value + 1), children });
7980
7931
  }
7981
7932
  var Boundary = class extends Component3 {
7982
7933
  state = { failed: false, resetKey: this.props.resetKey };
@@ -7990,20 +7941,20 @@ var Boundary = class extends Component3 {
7990
7941
  console.error("Opengeni chat failed to render", error, info.componentStack);
7991
7942
  }
7992
7943
  render() {
7993
- return this.state.failed ? /* @__PURE__ */ jsx15(ConversationRenderError, { onRetry: this.props.onRetry }) : this.props.children;
7944
+ return this.state.failed ? /* @__PURE__ */ jsx14(ConversationRenderError, { onRetry: this.props.onRetry }) : this.props.children;
7994
7945
  }
7995
7946
  };
7996
7947
  function ConversationRenderError({ onRetry }) {
7997
7948
  const t = useOpenGeniText();
7998
- return /* @__PURE__ */ jsxs11(
7949
+ return /* @__PURE__ */ jsxs10(
7999
7950
  "div",
8000
7951
  {
8001
7952
  role: "alert",
8002
7953
  "data-og-conversation-render-error": "",
8003
7954
  className: "flex min-h-0 flex-1 flex-col items-center justify-center gap-3 px-6 py-8 text-center",
8004
7955
  children: [
8005
- /* @__PURE__ */ jsx15("p", { className: "max-w-sm text-og-base text-og-fg-muted", children: t("conversationRenderBoundary.chatUnavailable") }),
8006
- /* @__PURE__ */ jsx15(
7956
+ /* @__PURE__ */ jsx14("p", { className: "max-w-sm text-og-base text-og-fg-muted", children: t("conversationRenderBoundary.chatUnavailable") }),
7957
+ /* @__PURE__ */ jsx14(
8007
7958
  "button",
8008
7959
  {
8009
7960
  type: "button",
@@ -8077,7 +8028,7 @@ function useRealtimeVoiceModels(client, workspaceId, enabled) {
8077
8028
  useEffect11(() => {
8078
8029
  if (!enabled || !workspaceId) return;
8079
8030
  const controller = new AbortController();
8080
- void import("./session-realtime-2XIB254N.js").then(async ({ loadRealtimeModelCatalog }) => {
8031
+ void import("./session-realtime-JNKDSGH7.js").then(async ({ loadRealtimeModelCatalog }) => {
8081
8032
  const models = await loadRealtimeModelCatalog(
8082
8033
  client,
8083
8034
  workspaceId,
@@ -8103,7 +8054,7 @@ import {
8103
8054
  OpenGeniBrowserClient
8104
8055
  } from "@opengeni/sdk/browser";
8105
8056
  import { useEffect as useEffect12, useMemo as useMemo8, useRef as useRef10, useState as useState13 } from "react";
8106
- import { jsx as jsx16 } from "react/jsx-runtime";
8057
+ import { jsx as jsx15 } from "react/jsx-runtime";
8107
8058
  function proxyLoadErrorMessage(t, error) {
8108
8059
  if (error instanceof OpenGeniApiError2 && error.status === 401 && error.code === "unauthenticated") {
8109
8060
  const message = t("sessionProxyScope.chatIsUnavailableRightNow");
@@ -8176,12 +8127,12 @@ function SessionProxyScope({
8176
8127
  };
8177
8128
  }, [client, workspaceId, t]);
8178
8129
  if (state.status === "error") {
8179
- return /* @__PURE__ */ jsx16("div", { role: "alert", className: "og-root p-3 text-og-sm text-og-danger", "data-og-proxy-error": "", children: state.message });
8130
+ return /* @__PURE__ */ jsx15("div", { role: "alert", className: "og-root p-3 text-og-sm text-og-danger", "data-og-proxy-error": "", children: state.message });
8180
8131
  }
8181
8132
  if (state.status === "loading") {
8182
- return /* @__PURE__ */ jsx16("div", { className: "og-root", "aria-busy": "true", "data-og-proxy-loading": "" });
8133
+ return /* @__PURE__ */ jsx15("div", { className: "og-root", "aria-busy": "true", "data-og-proxy-loading": "" });
8183
8134
  }
8184
- return /* @__PURE__ */ jsx16(OpenGeniProvider, { client, workspaceId: state.workspaceId, children });
8135
+ return /* @__PURE__ */ jsx15(OpenGeniProvider, { client, workspaceId: state.workspaceId, children });
8185
8136
  }
8186
8137
 
8187
8138
  // src/lib/host-theme.ts
@@ -8528,7 +8479,7 @@ function useHostTheme(ref, options) {
8528
8479
  }
8529
8480
 
8530
8481
  // src/components/session-conversation.tsx
8531
- import { Fragment as Fragment7, jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
8482
+ import { Fragment as Fragment7, jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
8532
8483
  var DEFAULT_CONVERSATION_LABELS = (t) => ({
8533
8484
  retry: t("sessionConversation.retry"),
8534
8485
  tryAgain: t("sessionConversation.tryAgain"),
@@ -8552,9 +8503,9 @@ function SessionConversation({
8552
8503
  }) {
8553
8504
  const resetKey = useConversationIdentity(props.workspaceId, props.sessionId);
8554
8505
  if (baseUrl === void 0)
8555
- return /* @__PURE__ */ jsx17(ConversationRenderBoundary, { resetKey, children: /* @__PURE__ */ jsx17(RetryingConversation, { ...props }) });
8506
+ return /* @__PURE__ */ jsx16(ConversationRenderBoundary, { resetKey, children: /* @__PURE__ */ jsx16(RetryingConversation, { ...props }) });
8556
8507
  const { client, workspaceId, ...rest } = props;
8557
- return /* @__PURE__ */ jsx17(ConversationRenderBoundary, { resetKey, children: /* @__PURE__ */ jsx17(
8508
+ return /* @__PURE__ */ jsx16(ConversationRenderBoundary, { resetKey, children: /* @__PURE__ */ jsx16(
8558
8509
  SessionProxyScope,
8559
8510
  {
8560
8511
  baseUrl,
@@ -8562,14 +8513,14 @@ function SessionConversation({
8562
8513
  client,
8563
8514
  headers,
8564
8515
  fetch,
8565
- children: /* @__PURE__ */ jsx17(RetryingConversation, { ...rest })
8516
+ children: /* @__PURE__ */ jsx16(RetryingConversation, { ...rest })
8566
8517
  }
8567
8518
  ) });
8568
8519
  }
8569
8520
  function RetryingConversation(props) {
8570
8521
  const [attempt, setAttempt] = useState15(0);
8571
8522
  const identity = useConversationIdentity(props.workspaceId, props.sessionId);
8572
- return /* @__PURE__ */ jsx17(
8523
+ return /* @__PURE__ */ jsx16(
8573
8524
  Conversation,
8574
8525
  {
8575
8526
  ...props,
@@ -8580,14 +8531,14 @@ function RetryingConversation(props) {
8580
8531
  }
8581
8532
  function Conversation(props) {
8582
8533
  const conversation = useSessionConversation(props.sessionId, props);
8583
- return /* @__PURE__ */ jsx17(ConversationView, { ...props, conversation });
8534
+ return /* @__PURE__ */ jsx16(ConversationView, { ...props, conversation });
8584
8535
  }
8585
8536
  function SessionConversationView(props) {
8586
8537
  const identity = useConversationIdentity(
8587
8538
  props.conversation.workspaceId,
8588
8539
  props.conversation.sessionId
8589
8540
  );
8590
- return /* @__PURE__ */ jsx17(ConversationView, { ...props, onRetry: () => void props.conversation.retry() }, identity);
8541
+ return /* @__PURE__ */ jsx16(ConversationView, { ...props, onRetry: () => void props.conversation.retry() }, identity);
8591
8542
  }
8592
8543
  function ConversationView({
8593
8544
  conversation,
@@ -8728,7 +8679,7 @@ function ConversationView({
8728
8679
  [notifyVoiceActive]
8729
8680
  );
8730
8681
  const voiceControl = composer.effectiveControl ?? queue.effectiveControl ?? detail.session?.effectiveControl;
8731
- const voice = sessionId && voiceModels.length > 0 && status && !terminal && voiceControl ? /* @__PURE__ */ jsx17(Suspense4, { fallback: null, children: /* @__PURE__ */ jsx17(
8682
+ const voice = sessionId && voiceModels.length > 0 && status && !terminal && voiceControl ? /* @__PURE__ */ jsx16(Suspense3, { fallback: null, children: /* @__PURE__ */ jsx16(
8732
8683
  LazyEmbeddedRealtimeVoice,
8733
8684
  {
8734
8685
  ...realtimeVoiceProps,
@@ -8744,7 +8695,7 @@ function ConversationView({
8744
8695
  onVoiceActiveChange
8745
8696
  }
8746
8697
  ) }) : null;
8747
- return /* @__PURE__ */ jsx17(SingleSendWording, { enabled: composer.singleSend === true, children: /* @__PURE__ */ jsxs12(
8698
+ return /* @__PURE__ */ jsx16(SingleSendWording, { enabled: composer.singleSend === true, children: /* @__PURE__ */ jsxs11(
8748
8699
  "div",
8749
8700
  {
8750
8701
  className: cn(
@@ -8757,15 +8708,15 @@ function ConversationView({
8757
8708
  "data-og-host-theme": "",
8758
8709
  "data-og-conversation": "",
8759
8710
  children: [
8760
- error && !loadFailed ? /* @__PURE__ */ jsxs12(
8711
+ error && !loadFailed ? /* @__PURE__ */ jsxs11(
8761
8712
  "div",
8762
8713
  {
8763
8714
  role: "alert",
8764
8715
  className: "mx-auto flex w-full max-w-3xl shrink-0 items-center gap-3 rounded-og-md border border-og-status-failed/30 bg-og-status-failed/10 px-3 py-2 text-og-sm text-og-fg",
8765
8716
  "data-og-conversation-error": "",
8766
8717
  children: [
8767
- /* @__PURE__ */ jsx17("span", { className: "min-w-0 flex-1", children: formatError(error) }),
8768
- /* @__PURE__ */ jsx17(
8718
+ /* @__PURE__ */ jsx16("span", { className: "min-w-0 flex-1", children: formatError(error) }),
8719
+ /* @__PURE__ */ jsx16(
8769
8720
  "button",
8770
8721
  {
8771
8722
  type: "button",
@@ -8777,15 +8728,15 @@ function ConversationView({
8777
8728
  ]
8778
8729
  }
8779
8730
  ) : null,
8780
- loadFailed ? /* @__PURE__ */ jsxs12(
8731
+ loadFailed ? /* @__PURE__ */ jsxs11(
8781
8732
  "div",
8782
8733
  {
8783
8734
  role: "alert",
8784
8735
  className: "flex min-h-0 flex-1 flex-col items-center justify-center gap-3 px-6 text-center",
8785
8736
  "data-og-conversation-error": "",
8786
8737
  children: [
8787
- /* @__PURE__ */ jsx17("p", { className: "max-w-sm text-og-base text-og-fg-muted", children: formatError(feed.error) }),
8788
- /* @__PURE__ */ jsx17(
8738
+ /* @__PURE__ */ jsx16("p", { className: "max-w-sm text-og-base text-og-fg-muted", children: formatError(feed.error) }),
8739
+ /* @__PURE__ */ jsx16(
8789
8740
  "button",
8790
8741
  {
8791
8742
  type: "button",
@@ -8796,7 +8747,7 @@ function ConversationView({
8796
8747
  )
8797
8748
  ]
8798
8749
  }
8799
- ) : /* @__PURE__ */ jsx17(
8750
+ ) : /* @__PURE__ */ jsx16(
8800
8751
  MessageTimeline,
8801
8752
  {
8802
8753
  renderMessageText,
@@ -8814,7 +8765,7 @@ function ConversationView({
8814
8765
  events: feed.events,
8815
8766
  items: conversation.timeline,
8816
8767
  turnSummary: timelineProps?.turnSummary ?? { rolling: true },
8817
- renderAuthNeeded: (item) => timelineProps?.renderAuthNeeded?.(item) ?? (item.capability?.id === "api:connected-machine" && computerConnection ? /* @__PURE__ */ jsx17(ThisComputerCard, { ...computerConnection, rationale: item.capability.rationale }) : void 0),
8768
+ renderAuthNeeded: (item) => timelineProps?.renderAuthNeeded?.(item) ?? (item.capability?.id === "api:connected-machine" && computerConnection ? /* @__PURE__ */ jsx16(ThisComputerCard, { ...computerConnection, rationale: item.capability.rationale }) : void 0),
8818
8769
  emptyState: timelineProps?.emptyState,
8819
8770
  renderMessageSender: timelineProps?.renderMessageSender,
8820
8771
  status,
@@ -8833,14 +8784,14 @@ function ConversationView({
8833
8784
  questionNavMinViewportHeight: 320
8834
8785
  }
8835
8786
  ),
8836
- importedArchive ? /* @__PURE__ */ jsx17("p", { className: "shrink-0 px-4 py-2 text-center text-sm text-og-muted", role: "status", children: t("sessionConversation.archivedConversationReadOnly") }) : /* @__PURE__ */ jsxs12(Fragment7, { children: [
8837
- /* @__PURE__ */ jsxs12(
8787
+ importedArchive ? /* @__PURE__ */ jsx16("p", { className: "shrink-0 px-4 py-2 text-center text-sm text-og-muted", role: "status", children: t("sessionConversation.archivedConversationReadOnly") }) : /* @__PURE__ */ jsxs11(Fragment7, { children: [
8788
+ /* @__PURE__ */ jsxs11(
8838
8789
  "div",
8839
8790
  {
8840
8791
  className: "relative z-20 min-h-0 max-h-[40%] shrink-0 overflow-y-auto empty:hidden",
8841
8792
  "data-og-conversation-inputs": "",
8842
8793
  children: [
8843
- approvals.length > 0 && !terminal ? /* @__PURE__ */ jsx17(
8794
+ approvals.length > 0 && !terminal ? /* @__PURE__ */ jsx16(
8844
8795
  ApprovalSurface,
8845
8796
  {
8846
8797
  className: "mx-auto max-w-3xl",
@@ -8856,14 +8807,14 @@ function ConversationView({
8856
8807
  error: control.error
8857
8808
  }
8858
8809
  ) : null,
8859
- /* @__PURE__ */ jsx17(
8810
+ /* @__PURE__ */ jsx16(
8860
8811
  ProviderRecoveryNotice,
8861
8812
  {
8862
8813
  className: "mx-auto max-w-3xl px-1",
8863
8814
  recovery: providerRecovery
8864
8815
  }
8865
8816
  ),
8866
- /* @__PURE__ */ jsx17(
8817
+ /* @__PURE__ */ jsx16(
8867
8818
  HumanInputSurface,
8868
8819
  {
8869
8820
  className: "mx-auto max-w-3xl",
@@ -8881,7 +8832,7 @@ function ConversationView({
8881
8832
  error: human.mutationError ? formatError(human.mutationError) : null
8882
8833
  }
8883
8834
  ),
8884
- /* @__PURE__ */ jsx17(
8835
+ /* @__PURE__ */ jsx16(
8885
8836
  ConversationChrome,
8886
8837
  {
8887
8838
  sessionId,
@@ -8907,19 +8858,19 @@ function ConversationView({
8907
8858
  ]
8908
8859
  }
8909
8860
  ),
8910
- /* @__PURE__ */ jsx17(
8861
+ /* @__PURE__ */ jsx16(
8911
8862
  "div",
8912
8863
  {
8913
8864
  className: "relative z-20 mx-auto w-full max-w-3xl shrink-0",
8914
8865
  "data-og-conversation-composer": "",
8915
- children: /* @__PURE__ */ jsx17(
8866
+ children: /* @__PURE__ */ jsx16(
8916
8867
  ChatComposer,
8917
8868
  {
8918
8869
  runControl: "stop",
8919
8870
  running,
8920
8871
  ...composerProps,
8921
8872
  ...transcription && composerProps?.transcription === void 0 ? { transcription } : {},
8922
- actionsStart: voice ? /* @__PURE__ */ jsxs12(Fragment7, { children: [
8873
+ actionsStart: voice ? /* @__PURE__ */ jsxs11(Fragment7, { children: [
8923
8874
  composerProps?.actionsStart,
8924
8875
  voice
8925
8876
  ] }) : composerProps?.actionsStart,
@@ -8927,7 +8878,7 @@ function ConversationView({
8927
8878
  composer,
8928
8879
  attachments: uploadsEnabled ? files : void 0,
8929
8880
  disabled: sessionId === null || terminal || composerProps?.disabled,
8930
- controlsStart: composerProps?.controlsStart ?? (showModelPicker && composer.policy && /* @__PURE__ */ jsx17(
8881
+ controlsStart: composerProps?.controlsStart ?? (showModelPicker && composer.policy && /* @__PURE__ */ jsx16(
8931
8882
  ModelPolicyPicker,
8932
8883
  {
8933
8884
  groupPresentation: modelPickerProps?.groupPresentation,
@@ -8973,7 +8924,7 @@ function embeddedGenieLoading(t, options) {
8973
8924
  function ConversationChrome(props) {
8974
8925
  const goals = props.client;
8975
8926
  const canReachGoals = typeof goals.getGoal === "function" && typeof goals.updateGoal === "function" && typeof goals.deleteGoal === "function";
8976
- return canReachGoals && props.sessionId ? /* @__PURE__ */ jsx17(GoalChrome, { ...props, sessionId: props.sessionId }) : /* @__PURE__ */ jsx17(SessionChrome, { ...props.chrome });
8927
+ return canReachGoals && props.sessionId ? /* @__PURE__ */ jsx16(GoalChrome, { ...props, sessionId: props.sessionId }) : /* @__PURE__ */ jsx16(SessionChrome, { ...props.chrome });
8977
8928
  }
8978
8929
  function GoalChrome({
8979
8930
  sessionId,
@@ -8987,11 +8938,11 @@ function GoalChrome({
8987
8938
  workspaceId,
8988
8939
  events
8989
8940
  });
8990
- return /* @__PURE__ */ jsx17(SessionChrome, { ...chrome, goal });
8941
+ return /* @__PURE__ */ jsx16(SessionChrome, { ...chrome, goal });
8991
8942
  }
8992
- var LazyEmbeddedRealtimeVoice = lazy3(() => import("./embedded-voice-PABC5NBD.js"));
8993
- var LazyChatInteractiveBlock = lazy3(
8994
- () => import("./chat-interactive-block-ABCRKXJ4.js").then((module) => ({
8943
+ var LazyEmbeddedRealtimeVoice = lazy2(() => import("./embedded-voice-6OKSSPLW.js"));
8944
+ var LazyChatInteractiveBlock = lazy2(
8945
+ () => import("./chat-interactive-block-PMIAUXSO.js").then((module) => ({
8995
8946
  default: module.ChatInteractiveBlock
8996
8947
  }))
8997
8948
  );
@@ -9018,7 +8969,7 @@ function useDefaultInteractiveBlock(client, workspaceId, sessionId, sitesAvailab
9018
8969
  (block) => block.kind === "site" && !sitesAvailable ? (
9019
8970
  // The proxy does not serve Sites: say so instead of offering a load
9020
8971
  // that can only fail.
9021
- /* @__PURE__ */ jsx17(
8972
+ /* @__PURE__ */ jsx16(
9022
8973
  "div",
9023
8974
  {
9024
8975
  className: "rounded-og-md border border-og-border bg-og-surface-1 px-3 py-2 text-og-sm text-og-fg-muted",
@@ -9026,7 +8977,7 @@ function useDefaultInteractiveBlock(client, workspaceId, sessionId, sitesAvailab
9026
8977
  children: sitePreviewUnavailable
9027
8978
  }
9028
8979
  )
9029
- ) : /* @__PURE__ */ jsx17(Suspense4, { fallback: /* @__PURE__ */ jsx17("span", { role: "status", children: t("sessionConversation.loadingPreview") }), children: /* @__PURE__ */ jsx17(LazyChatInteractiveBlock, { workspaceId, client: scoped, ...block }) }),
8980
+ ) : /* @__PURE__ */ jsx16(Suspense3, { fallback: /* @__PURE__ */ jsx16("span", { role: "status", children: t("sessionConversation.loadingPreview") }), children: /* @__PURE__ */ jsx16(LazyChatInteractiveBlock, { workspaceId, client: scoped, ...block }) }),
9030
8981
  [scoped, workspaceId, sitesAvailable, sitePreviewUnavailable, t]
9031
8982
  );
9032
8983
  }
@@ -9099,9 +9050,9 @@ function useComposerTranscription(client, workspaceId, capability) {
9099
9050
 
9100
9051
  // src/components/new-conversation.tsx
9101
9052
  import { OpenGeniApiError as OpenGeniApiError3 } from "@opengeni/sdk";
9102
- import { lazy as lazy4, Suspense as Suspense5, useRef as useRef12 } from "react";
9103
- import { Fragment as Fragment8, jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
9104
- var LazyNewVoice = lazy4(() => import("./embedded-new-voice-5PYRDZ6T.js"));
9053
+ import { lazy as lazy3, Suspense as Suspense4, useRef as useRef12 } from "react";
9054
+ import { Fragment as Fragment8, jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
9055
+ var LazyNewVoice = lazy3(() => import("./embedded-new-voice-RZZEJT6M.js"));
9105
9056
  var DEFAULT_LABELS = (t) => ({
9106
9057
  title: t("newConversation.howCanIHelp"),
9107
9058
  placeholder: t("newConversation.askAnything"),
@@ -9114,9 +9065,9 @@ var DEFAULT_LABELS = (t) => ({
9114
9065
  function NewConversation({ baseUrl, headers, fetch, ...props }) {
9115
9066
  const resetKey = props.workspaceId ?? "";
9116
9067
  if (baseUrl === void 0)
9117
- return /* @__PURE__ */ jsx18(ConversationRenderBoundary, { resetKey, children: /* @__PURE__ */ jsx18(NewConversationRuntime, { ...props }) });
9068
+ return /* @__PURE__ */ jsx17(ConversationRenderBoundary, { resetKey, children: /* @__PURE__ */ jsx17(NewConversationRuntime, { ...props }) });
9118
9069
  const { client, workspaceId, ...rest } = props;
9119
- return /* @__PURE__ */ jsx18(ConversationRenderBoundary, { resetKey, children: /* @__PURE__ */ jsx18(
9070
+ return /* @__PURE__ */ jsx17(ConversationRenderBoundary, { resetKey, children: /* @__PURE__ */ jsx17(
9120
9071
  SessionProxyScope,
9121
9072
  {
9122
9073
  baseUrl,
@@ -9124,13 +9075,13 @@ function NewConversation({ baseUrl, headers, fetch, ...props }) {
9124
9075
  fetch,
9125
9076
  client,
9126
9077
  workspaceId,
9127
- children: /* @__PURE__ */ jsx18(NewConversationRuntime, { ...rest })
9078
+ children: /* @__PURE__ */ jsx17(NewConversationRuntime, { ...rest })
9128
9079
  }
9129
9080
  ) });
9130
9081
  }
9131
9082
  function NewConversationRuntime(props) {
9132
9083
  const creation = useNewConversation(props);
9133
- return /* @__PURE__ */ jsx18(NewConversationView, { ...props, creation });
9084
+ return /* @__PURE__ */ jsx17(NewConversationView, { ...props, creation });
9134
9085
  }
9135
9086
  function NewConversationView({
9136
9087
  creation,
@@ -9160,7 +9111,7 @@ function NewConversationView({
9160
9111
  creation.workspaceId,
9161
9112
  creation.realtimeVoiceEnabled && available
9162
9113
  );
9163
- const voice = models.length ? /* @__PURE__ */ jsx18(Suspense5, { fallback: null, children: /* @__PURE__ */ jsx18(
9114
+ const voice = models.length ? /* @__PURE__ */ jsx17(Suspense4, { fallback: null, children: /* @__PURE__ */ jsx17(
9164
9115
  LazyNewVoice,
9165
9116
  {
9166
9117
  client: creation.client,
@@ -9171,7 +9122,7 @@ function NewConversationView({
9171
9122
  onStart: creation.startRealtime
9172
9123
  }
9173
9124
  ) }) : null;
9174
- return /* @__PURE__ */ jsxs13(
9125
+ return /* @__PURE__ */ jsxs12(
9175
9126
  "form",
9176
9127
  {
9177
9128
  onSubmit: (event) => {
@@ -9188,9 +9139,9 @@ function NewConversationView({
9188
9139
  "data-og-host-theme": "",
9189
9140
  "data-og-new-chat-composer": "",
9190
9141
  children: [
9191
- /* @__PURE__ */ jsx18("div", { "aria-hidden": true, className: "min-h-0 flex-[2]" }),
9192
- labels.title ? /* @__PURE__ */ jsx18("p", { className: "text-center text-og-md font-medium text-og-fg", children: labels.title }) : null,
9193
- /* @__PURE__ */ jsx18(
9142
+ /* @__PURE__ */ jsx17("div", { "aria-hidden": true, className: "min-h-0 flex-[2]" }),
9143
+ labels.title ? /* @__PURE__ */ jsx17("p", { className: "text-center text-og-md font-medium text-og-fg", children: labels.title }) : null,
9144
+ /* @__PURE__ */ jsx17(
9194
9145
  ChatComposer,
9195
9146
  {
9196
9147
  ...composerProps,
@@ -9203,11 +9154,11 @@ function NewConversationView({
9203
9154
  placeholder: overrides?.placeholder ?? composerProps?.placeholder ?? labels.placeholder,
9204
9155
  inputProps: { "aria-label": labels.placeholder, ...composerProps?.inputProps },
9205
9156
  messages: { sendMessageAriaLabel: labels.send, ...composerProps?.messages },
9206
- actionsStart: voice ? /* @__PURE__ */ jsxs13(Fragment8, { children: [
9157
+ actionsStart: voice ? /* @__PURE__ */ jsxs12(Fragment8, { children: [
9207
9158
  composerProps?.actionsStart,
9208
9159
  voice
9209
9160
  ] }) : composerProps?.actionsStart,
9210
- controlsStart: composerProps?.controlsStart ?? (composer.policy ? /* @__PURE__ */ jsx18(
9161
+ controlsStart: composerProps?.controlsStart ?? (composer.policy ? /* @__PURE__ */ jsx17(
9211
9162
  ModelPolicyPicker,
9212
9163
  {
9213
9164
  groupPresentation: modelPickerProps?.groupPresentation,
@@ -9231,13 +9182,13 @@ function NewConversationView({
9231
9182
  responsiveBasis: composerProps?.responsiveBasis ?? "container"
9232
9183
  }
9233
9184
  ),
9234
- !available ? /* @__PURE__ */ jsx18("p", { className: "text-center text-og-sm text-og-fg-muted", "data-og-new-chat-unavailable": "", children: labels.unavailable }) : error ? /* @__PURE__ */ jsx18("p", { role: "alert", className: "text-center text-og-sm text-og-status-failed", children: formatError(
9185
+ !available ? /* @__PURE__ */ jsx17("p", { className: "text-center text-og-sm text-og-fg-muted", "data-og-new-chat-unavailable": "", children: labels.unavailable }) : error ? /* @__PURE__ */ jsx17("p", { role: "alert", className: "text-center text-og-sm text-og-status-failed", children: formatError(
9235
9186
  error.cause,
9236
9187
  error.cause instanceof OpenGeniApiError3 && error.cause.code === "route_not_allowed" ? labels.unavailable : void 0
9237
9188
  ) }) : null,
9238
- pending ? /* @__PURE__ */ jsxs13("div", { className: "text-center text-og-sm text-og-fg-muted", children: [
9239
- /* @__PURE__ */ jsx18("p", { role: "status", children: labels.pending }),
9240
- /* @__PURE__ */ jsx18(
9189
+ pending ? /* @__PURE__ */ jsxs12("div", { className: "text-center text-og-sm text-og-fg-muted", children: [
9190
+ /* @__PURE__ */ jsx17("p", { role: "status", children: labels.pending }),
9191
+ /* @__PURE__ */ jsx17(
9241
9192
  "button",
9242
9193
  {
9243
9194
  type: "button",
@@ -9250,714 +9201,13 @@ function NewConversationView({
9250
9201
  }
9251
9202
  )
9252
9203
  ] }) : null,
9253
- creation.finishingUploads ? /* @__PURE__ */ jsx18("p", { role: "status", className: "text-center text-og-sm text-og-fg-muted", children: labels.finishingUploads }) : null,
9254
- /* @__PURE__ */ jsx18("div", { "aria-hidden": true, className: "min-h-0 flex-[3]" })
9255
- ]
9256
- }
9257
- );
9258
- }
9259
-
9260
- // src/components/session-list.tsx
9261
- import { deriveSessionDisplayTitle } from "@opengeni/sdk";
9262
- import { ArchiveIcon, PencilIcon as PencilIcon2, PlusIcon } from "lucide-react";
9263
- import { useEffect as useEffect15, useRef as useRef13, useState as useState16 } from "react";
9264
- import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
9265
- var DEFAULT_LABELS2 = (t) => ({
9266
- heading: t("sessionList.chats"),
9267
- newChat: t("sessionList.newChat"),
9268
- empty: t("sessionList.noChatsYet"),
9269
- loading: t("sessionList.loadingChats"),
9270
- loadMore: t("sessionList.showMore"),
9271
- rename: t("sessionList.rename"),
9272
- archive: t("sessionList.archive"),
9273
- save: t("sessionList.save"),
9274
- cancel: t("sessionList.cancel")
9275
- });
9276
- function SessionList({
9277
- client,
9278
- workspaceId,
9279
- selectedSessionId,
9280
- onSelect,
9281
- onNewChat,
9282
- rename = true,
9283
- archive = true,
9284
- onArchived,
9285
- pageSize = 30,
9286
- refreshKey,
9287
- labels: labelOverrides,
9288
- className
9289
- }) {
9290
- const t = useOpenGeniText();
9291
- const labels = { ...DEFAULT_LABELS2(t), ...labelOverrides };
9292
- const scope = { client, workspaceId };
9293
- const context = useOpenGeni(scope);
9294
- const [limit, setLimit] = useState16(pageSize);
9295
- const list = useWorkspaceSessions({
9296
- ...scope,
9297
- parentSessionId: null,
9298
- archiveStatus: "active",
9299
- sortBy: "updatedAt",
9300
- limit
9301
- });
9302
- const refresh = list.refresh;
9303
- const firstRefreshKey = useRef13(refreshKey);
9304
- useEffect15(() => {
9305
- if (Object.is(refreshKey, firstRefreshKey.current)) return;
9306
- firstRefreshKey.current = refreshKey;
9307
- void refresh();
9308
- }, [refresh, refreshKey]);
9309
- const [editing, setEditing] = useState16(null);
9310
- const [busy, setBusy] = useState16(null);
9311
- const [error, setError] = useState16(null);
9312
- const formatError = useErrorMessage();
9313
- const archiveClient = context.client;
9314
- const config = useClientConfigFlags(context.client);
9315
- const canArchive = archive && config.archive && typeof archiveClient.updateSessionArchive === "function";
9316
- const run = async (id, action) => {
9317
- setBusy(id);
9318
- setError(null);
9319
- try {
9320
- await action();
9321
- await list.refresh();
9322
- } catch (cause) {
9323
- setError({ cause });
9324
- } finally {
9325
- setBusy(null);
9326
- }
9327
- };
9328
- const saveTitle = (event) => {
9329
- event.preventDefault();
9330
- const current = editing;
9331
- if (!current) return;
9332
- const title = current.title.trim();
9333
- setEditing(null);
9334
- if (!title) return;
9335
- void run(
9336
- current.id,
9337
- () => context.client.updateSession(context.workspaceId, current.id, { title })
9338
- );
9339
- };
9340
- const archiveSession = (session) => void run(session.id, async () => {
9341
- await archiveClient.updateSessionArchive(context.workspaceId, session.id, {
9342
- archived: true
9343
- });
9344
- onArchived?.(session.id);
9345
- });
9346
- const sessions = list.sessions;
9347
- return /* @__PURE__ */ jsxs14(
9348
- "nav",
9349
- {
9350
- className: cn("flex min-h-0 min-w-0 flex-col gap-1 text-og-fg", className),
9351
- "aria-label": labels.heading,
9352
- "data-og-session-list": "",
9353
- children: [
9354
- /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-between gap-2 px-2 pb-1 pt-2", children: [
9355
- /* @__PURE__ */ jsx19("h2", { className: "text-og-sm font-semibold text-og-fg-muted", children: labels.heading }),
9356
- onNewChat ? /* @__PURE__ */ jsxs14(
9357
- "button",
9358
- {
9359
- type: "button",
9360
- onClick: onNewChat,
9361
- className: "inline-flex items-center gap-1 rounded-md px-2 py-1 text-og-control text-og-fg hover:bg-og-surface-2",
9362
- "data-og-new-chat": "",
9363
- children: [
9364
- /* @__PURE__ */ jsx19(PlusIcon, { className: "size-3.5", "aria-hidden": true }),
9365
- labels.newChat
9366
- ]
9367
- }
9368
- ) : null
9369
- ] }),
9370
- error || list.error ? /* @__PURE__ */ jsx19("p", { role: "alert", className: "px-2 text-og-xs text-og-status-failed", children: formatError(error ? error.cause : list.error) }) : null,
9371
- /* @__PURE__ */ jsxs14("ul", { className: "flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto px-1 pb-2", children: [
9372
- list.loading && sessions.length === 0 ? /* @__PURE__ */ jsx19("li", { className: "px-2 py-2 text-og-xs text-og-fg-subtle", children: labels.loading }) : null,
9373
- !list.loading && !list.error && sessions.length === 0 ? /* @__PURE__ */ jsx19("li", { className: "px-2 py-2 text-og-xs text-og-fg-subtle", children: labels.empty }) : null,
9374
- sessions.map((session) => {
9375
- const selected = session.id === selectedSessionId;
9376
- const title = deriveSessionDisplayTitle(session);
9377
- if (editing?.id === session.id) {
9378
- return /* @__PURE__ */ jsx19("li", { children: /* @__PURE__ */ jsxs14("form", { onSubmit: saveTitle, className: "flex items-center gap-1 px-1 py-1", children: [
9379
- /* @__PURE__ */ jsx19(
9380
- "input",
9381
- {
9382
- "aria-label": labels.rename,
9383
- value: editing.title,
9384
- maxLength: 200,
9385
- autoFocus: true,
9386
- onChange: (event) => setEditing({ id: session.id, title: event.target.value }),
9387
- onKeyDown: (event) => {
9388
- if (event.key === "Escape") setEditing(null);
9389
- },
9390
- className: "min-w-0 flex-1 rounded-md border border-og-border bg-og-bg px-2 py-1 text-og-sm text-og-fg"
9391
- }
9392
- ),
9393
- /* @__PURE__ */ jsx19(
9394
- "button",
9395
- {
9396
- type: "submit",
9397
- className: "rounded-md px-2 py-1 text-og-xs text-og-fg hover:bg-og-surface-2",
9398
- children: labels.save
9399
- }
9400
- )
9401
- ] }) }, session.id);
9402
- }
9403
- return /* @__PURE__ */ jsxs14("li", { className: "group relative", children: [
9404
- /* @__PURE__ */ jsxs14(
9405
- "button",
9406
- {
9407
- type: "button",
9408
- onClick: () => onSelect(session.id),
9409
- "aria-current": selected ? "true" : void 0,
9410
- disabled: busy === session.id,
9411
- className: cn(
9412
- "flex w-full min-w-0 flex-col items-start rounded-md px-2 py-1.5 text-left",
9413
- selected ? "bg-og-surface-2" : "hover:bg-og-surface-1"
9414
- ),
9415
- "data-og-session-row": "",
9416
- children: [
9417
- /* @__PURE__ */ jsx19("span", { className: "w-full truncate pr-12 text-og-sm text-og-fg", children: title }),
9418
- /* @__PURE__ */ jsx19("span", { className: "text-og-xs text-og-fg-subtle", children: formatRelativeTime(t, session.updatedAt) })
9419
- ]
9420
- }
9421
- ),
9422
- /* @__PURE__ */ jsxs14("span", { className: "absolute right-1 top-1.5 hidden gap-0.5 group-focus-within:flex group-hover:flex pointer-coarse:flex", children: [
9423
- rename ? /* @__PURE__ */ jsx19(
9424
- "button",
9425
- {
9426
- type: "button",
9427
- "aria-label": `${labels.rename}: ${title}`,
9428
- onClick: () => setEditing({ id: session.id, title: session.title ?? title }),
9429
- className: "rounded p-1 text-og-fg-subtle hover:bg-og-surface-3 hover:text-og-fg",
9430
- children: /* @__PURE__ */ jsx19(PencilIcon2, { className: "size-3.5", "aria-hidden": true })
9431
- }
9432
- ) : null,
9433
- canArchive ? /* @__PURE__ */ jsx19(
9434
- "button",
9435
- {
9436
- type: "button",
9437
- "aria-label": `${labels.archive}: ${title}`,
9438
- onClick: () => archiveSession(session),
9439
- className: "rounded p-1 text-og-fg-subtle hover:bg-og-surface-3 hover:text-og-fg",
9440
- children: /* @__PURE__ */ jsx19(ArchiveIcon, { className: "size-3.5", "aria-hidden": true })
9441
- }
9442
- ) : null
9443
- ] })
9444
- ] }, session.id);
9445
- }),
9446
- list.nextCursor ? /* @__PURE__ */ jsx19("li", { children: /* @__PURE__ */ jsx19(
9447
- "button",
9448
- {
9449
- type: "button",
9450
- onClick: () => setLimit((current) => current + pageSize),
9451
- className: "w-full rounded-md px-2 py-1.5 text-left text-og-xs text-og-fg-muted hover:bg-og-surface-1",
9452
- children: labels.loadMore
9453
- }
9454
- ) }) : null
9455
- ] })
9456
- ]
9457
- }
9458
- );
9459
- }
9460
-
9461
- // src/components/open-geni-chat.tsx
9462
- import { MenuIcon, XIcon as XIcon2 } from "lucide-react";
9463
- import { useCallback as useCallback7, useEffect as useEffect16, useRef as useRef14, useState as useState17 } from "react";
9464
- import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
9465
- var DEFAULT_LABELS3 = (t) => ({
9466
- openChats: t("openGeniChat.openChats"),
9467
- closeChats: t("openGeniChat.closeChats"),
9468
- newChatPlaceholder: t("openGeniChat.askAnything"),
9469
- newChatTitle: t("openGeniChat.howCanIHelp"),
9470
- send: t("openGeniChat.send"),
9471
- newChatUnavailable: t("openGeniChat.newChatsAreNotEnabled")
9472
- });
9473
- function OpenGeniChat({ baseUrl, headers, fetch, ...props }) {
9474
- if (baseUrl === void 0) return /* @__PURE__ */ jsx20(Chat, { ...props });
9475
- const { client, workspaceId, ...rest } = props;
9476
- return /* @__PURE__ */ jsx20(
9477
- SessionProxyScope,
9478
- {
9479
- baseUrl,
9480
- workspaceId,
9481
- client,
9482
- headers,
9483
- fetch,
9484
- children: /* @__PURE__ */ jsx20(Chat, { ...rest })
9485
- }
9486
- );
9487
- }
9488
- function Chat({
9489
- client,
9490
- workspaceId,
9491
- sessionId: controlledSessionId,
9492
- defaultSessionId = null,
9493
- onSessionChange,
9494
- createSession,
9495
- newChat = true,
9496
- conversationProps,
9497
- listProps,
9498
- labels: labelOverrides,
9499
- className,
9500
- height = "100%",
9501
- theme,
9502
- surface
9503
- }) {
9504
- const t = useOpenGeniText();
9505
- const labels = { ...DEFAULT_LABELS3(t), ...labelOverrides };
9506
- const scope = { client, workspaceId };
9507
- const context = useOpenGeni(scope);
9508
- const [uncontrolled, setUncontrolled] = useState17(defaultSessionId);
9509
- const selected = controlledSessionId !== void 0 ? controlledSessionId : uncontrolled;
9510
- const [drawerOpen, setDrawerOpen] = useState17(false);
9511
- const [listRevision, setListRevision] = useState17(0);
9512
- const [handoff, setHandoff] = useState17(null);
9513
- const root = useRef14(null);
9514
- const hostTheme = useHostTheme(root, { theme, surface });
9515
- const config = useClientConfigFlags(context.client);
9516
- const canCreate = createSession !== void 0 || config.sessionCreation;
9517
- const select = useCallback7(
9518
- (next) => {
9519
- setHandoff(null);
9520
- if (controlledSessionId === void 0) setUncontrolled(next);
9521
- notifyObserver(onSessionChange, next);
9522
- setDrawerOpen(false);
9523
- },
9524
- [controlledSessionId, onSessionChange]
9525
- );
9526
- useEffect16(() => {
9527
- if (!handoff) return;
9528
- if (selected === handoff.sessionId && !handoff.realtimeModel) setHandoff(null);
9529
- else if (selected !== null && selected !== handoff.sessionId) setHandoff(null);
9530
- }, [handoff, selected]);
9531
- const list = /* @__PURE__ */ jsx20(
9532
- SessionList,
9533
- {
9534
- ...scope,
9535
- ...listProps,
9536
- labels,
9537
- selectedSessionId: selected,
9538
- onSelect: select,
9539
- onNewChat: newChat && canCreate ? () => select(null) : void 0,
9540
- onArchived: (archivedId) => {
9541
- if (archivedId === selected) select(null);
9542
- },
9543
- refreshKey: listRevision,
9544
- className: "h-full"
9545
- }
9546
- );
9547
- return /* @__PURE__ */ jsxs15(
9548
- "div",
9549
- {
9550
- ref: root,
9551
- className: cn(
9552
- "og-root og-chat relative flex min-h-0 min-w-0 bg-og-bg text-og-base text-og-fg",
9553
- className
9554
- ),
9555
- style: { ...hostTheme.style, height },
9556
- "data-og-theme": hostTheme.attribute,
9557
- "data-og-host-theme": "",
9558
- "data-og-chat": "",
9559
- children: [
9560
- /* @__PURE__ */ jsx20(
9561
- "aside",
9562
- {
9563
- className: "og-chat-sidebar min-h-0 w-64 shrink-0 flex-col border-r border-og-border",
9564
- "data-og-chat-sidebar": "",
9565
- children: list
9566
- }
9567
- ),
9568
- drawerOpen ? /* @__PURE__ */ jsxs15("div", { className: "og-chat-drawer absolute inset-0 z-30 flex", "data-og-chat-drawer": "", children: [
9569
- /* @__PURE__ */ jsxs15("div", { className: "flex h-full w-[min(20rem,85%)] flex-col border-r border-og-border bg-og-bg shadow-og-lg", children: [
9570
- /* @__PURE__ */ jsx20("div", { className: "flex justify-end p-1", children: /* @__PURE__ */ jsx20(
9571
- "button",
9572
- {
9573
- type: "button",
9574
- "aria-label": labels.closeChats,
9575
- onClick: () => setDrawerOpen(false),
9576
- className: "rounded p-1.5 text-og-fg-muted hover:bg-og-surface-2",
9577
- children: /* @__PURE__ */ jsx20(XIcon2, { className: "size-4", "aria-hidden": true })
9578
- }
9579
- ) }),
9580
- /* @__PURE__ */ jsx20("div", { className: "min-h-0 flex-1", children: list })
9581
- ] }),
9582
- /* @__PURE__ */ jsx20(
9583
- "button",
9584
- {
9585
- type: "button",
9586
- "aria-label": labels.closeChats,
9587
- className: "flex-1 bg-black/25",
9588
- onClick: () => setDrawerOpen(false)
9589
- }
9590
- )
9591
- ] }) : null,
9592
- /* @__PURE__ */ jsxs15("main", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: [
9593
- /* @__PURE__ */ jsxs15("div", { className: "og-chat-menu flex items-center gap-2 px-2 py-1", children: [
9594
- /* @__PURE__ */ jsx20(
9595
- "button",
9596
- {
9597
- type: "button",
9598
- "aria-label": labels.openChats,
9599
- "aria-expanded": drawerOpen,
9600
- onClick: () => setDrawerOpen(true),
9601
- className: "rounded p-1.5 text-og-fg-muted hover:bg-og-surface-2",
9602
- "data-og-chat-menu": "",
9603
- children: /* @__PURE__ */ jsx20(MenuIcon, { className: "size-4", "aria-hidden": true })
9604
- }
9605
- ),
9606
- /* @__PURE__ */ jsx20("span", { className: "text-og-sm font-semibold text-og-fg-muted", children: labels.heading })
9607
- ] }),
9608
- /* @__PURE__ */ jsx20("div", { className: "og-chat-main min-h-0 flex-1 px-3 pb-3 pt-1", children: selected ? /* @__PURE__ */ jsx20(
9609
- SessionConversation,
9610
- {
9611
- ...conversationProps,
9612
- ...handoff?.sessionId === selected && handoff.initialMessage ? { pendingPrompt: { text: handoff.initialMessage, sentAt: handoff.sentAt } } : {},
9613
- composerOptions: {
9614
- ...conversationProps?.composerOptions,
9615
- ...handoff?.sessionId === selected ? { initialDraft: handoff.draft } : {}
9616
- },
9617
- realtimeVoiceProps: {
9618
- ...conversationProps?.realtimeVoiceProps,
9619
- ...handoff?.sessionId === selected && handoff.realtimeModel ? {
9620
- realtimeAutostartModel: handoff.realtimeModel,
9621
- onRealtimeAutostartConsumed: () => {
9622
- setHandoff(null);
9623
- notifyObserver(
9624
- conversationProps?.realtimeVoiceProps?.onRealtimeAutostartConsumed
9625
- );
9626
- }
9627
- } : {}
9628
- },
9629
- onOpenSession: conversationProps?.onOpenSession ?? select,
9630
- ...scope,
9631
- sessionId: selected,
9632
- height: "100%"
9633
- }
9634
- ) : /* @__PURE__ */ jsx20(
9635
- NewConversation,
9636
- {
9637
- ...scope,
9638
- attachments: conversationProps?.attachments,
9639
- modelPicker: conversationProps?.modelPicker,
9640
- modelPickerProps: conversationProps?.modelPickerProps,
9641
- composerProps: conversationProps?.composerProps,
9642
- voiceInput: conversationProps?.voiceInput,
9643
- realtimeVoice: conversationProps?.realtimeVoice,
9644
- realtimeVoiceProps: conversationProps?.realtimeVoiceProps,
9645
- labels: {
9646
- ...labels.newChatRetry ? { retry: labels.newChatRetry } : {},
9647
- ...labels.newChatPending ? { pending: labels.newChatPending } : {},
9648
- ...labels.newChatFinishingUploads ? { finishingUploads: labels.newChatFinishingUploads } : {},
9649
- title: labels.newChatTitle,
9650
- send: labels.send,
9651
- unavailable: labels.newChatUnavailable,
9652
- placeholder: labelOverrides?.newChatPlaceholder ?? conversationProps?.composerProps?.placeholder ?? labels.newChatPlaceholder
9653
- },
9654
- enabled: canCreate,
9655
- createSession,
9656
- onCreated: (created) => {
9657
- setListRevision((revision) => revision + 1);
9658
- select(created.sessionId);
9659
- setHandoff(created);
9660
- }
9661
- }
9662
- ) })
9663
- ] })
9204
+ creation.finishingUploads ? /* @__PURE__ */ jsx17("p", { role: "status", className: "text-center text-og-sm text-og-fg-muted", children: labels.finishingUploads }) : null,
9205
+ /* @__PURE__ */ jsx17("div", { "aria-hidden": true, className: "min-h-0 flex-[3]" })
9664
9206
  ]
9665
9207
  }
9666
9208
  );
9667
9209
  }
9668
9210
 
9669
- // src/components/session-commands-panel.tsx
9670
- import { ChevronRightIcon as ChevronRightIcon3, Loader2Icon as Loader2Icon3, SquareIcon } from "lucide-react";
9671
- import { useState as useState18 } from "react";
9672
- import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
9673
- function SessionCommandsPanel({
9674
- commands: state,
9675
- readOnly = false,
9676
- renderMetadata,
9677
- compact = true
9678
- }) {
9679
- const t = useOpenGeniText();
9680
- const formatError = useErrorMessage();
9681
- const [pending, setPending] = useState18(null);
9682
- const [error, setError] = useState18(null);
9683
- const active = state.commands.filter(
9684
- (command) => command.state === "running" || command.state === "stopping"
9685
- );
9686
- const stop = async (id) => {
9687
- setPending(id);
9688
- setError(null);
9689
- try {
9690
- await state.cancel(id);
9691
- } catch (cause) {
9692
- setError(formatError(cause));
9693
- } finally {
9694
- setPending(null);
9695
- }
9696
- };
9697
- return /* @__PURE__ */ jsxs16(
9698
- "div",
9699
- {
9700
- className: `space-y-2 ${compact ? "text-og-xs" : "text-og-sm"}`,
9701
- "data-og-session-commands": "",
9702
- children: [
9703
- state.loading && active.length === 0 ? /* @__PURE__ */ jsx21("p", { role: "status", className: "text-og-fg-muted", children: t("sessionCommandsPanel.loadingCommands") }) : null,
9704
- state.error ? /* @__PURE__ */ jsxs16("div", { role: "alert", className: "flex items-center justify-between gap-2 text-og-danger", children: [
9705
- /* @__PURE__ */ jsx21("span", { children: t("sessionCommandsPanel.commandsUnavailable") }),
9706
- /* @__PURE__ */ jsx21(
9707
- "button",
9708
- {
9709
- type: "button",
9710
- className: "underline outline-hidden focus-visible:ring-2 focus-visible:ring-og-accent/40",
9711
- onClick: () => void state.refresh(),
9712
- children: t("sessionCommandsPanel.retry")
9713
- }
9714
- )
9715
- ] }) : null,
9716
- !state.loading && !state.error && active.length === 0 ? /* @__PURE__ */ jsx21("p", { role: "status", className: "text-og-fg-muted", children: t("sessionCommandsPanel.noBackgroundCommandsRunning") }) : null,
9717
- active.length > 0 ? /* @__PURE__ */ jsx21(
9718
- "ul",
9719
- {
9720
- className: `${compact ? "max-h-64 overflow-y-auto overscroll-contain" : ""} divide-y divide-og-border/40`,
9721
- children: active.map((command) => /* @__PURE__ */ jsxs16("li", { className: "flex items-start gap-3 py-2 first:pt-0 last:pb-0", children: [
9722
- /* @__PURE__ */ jsxs16("div", { className: "min-w-0 flex-1", children: [
9723
- renderMetadata?.(command),
9724
- /* @__PURE__ */ jsxs16("details", { className: "group/command", children: [
9725
- /* @__PURE__ */ jsxs16(
9726
- "summary",
9727
- {
9728
- className: "flex cursor-pointer list-none items-center gap-1.5 rounded-og-sm font-mono text-og-fg outline-hidden focus-visible:ring-2 focus-visible:ring-og-accent/40",
9729
- title: t("sessionCommandsPanel.expandCommand"),
9730
- children: [
9731
- /* @__PURE__ */ jsx21(ChevronRightIcon3, { className: "size-3 shrink-0 text-og-fg-subtle transition-transform group-open/command:rotate-90" }),
9732
- /* @__PURE__ */ jsx21(
9733
- "span",
9734
- {
9735
- className: "min-w-0 truncate",
9736
- title: command.commandText ?? (command.commandPreview || t("sessionCommandsPanel.backgroundCommand")),
9737
- children: command.commandText ?? (command.commandPreview || t("sessionCommandsPanel.backgroundCommand"))
9738
- }
9739
- )
9740
- ]
9741
- }
9742
- ),
9743
- /* @__PURE__ */ jsxs16("div", { className: "mt-2 space-y-1", children: [
9744
- /* @__PURE__ */ jsx21("p", { className: "whitespace-pre-wrap break-all font-mono text-og-fg-muted", children: command.commandText ?? (command.commandPreview || t("sessionCommandsPanel.backgroundCommand")) }),
9745
- /* @__PURE__ */ jsx21(
9746
- "time",
9747
- {
9748
- className: "block text-og-fg-subtle",
9749
- dateTime: command.startedAt,
9750
- title: new Date(command.startedAt).toLocaleString(t.locale),
9751
- children: t("sessionCommandsPanel.startedClocktime", {
9752
- clockTime: formatClockTime(t, command.startedAt)
9753
- })
9754
- }
9755
- )
9756
- ] })
9757
- ] }),
9758
- /* @__PURE__ */ jsx21("p", { className: "mt-1 text-og-fg-subtle", children: command.observationStatus === "unavailable" ? command.state === "stopping" ? t("sessionCommandsPanel.stopRequestedStatusUnavailable") : t("sessionCommandsPanel.commandStatusUnavailable") : command.state === "stopping" ? t("sessionCommandsPanel.stopping") : t("sessionCommandsPanel.running") })
9759
- ] }),
9760
- !readOnly ? /* @__PURE__ */ jsxs16(
9761
- "button",
9762
- {
9763
- type: "button",
9764
- "aria-label": t("sessionCommandsPanel.stopCommandpreview", {
9765
- commandPreview: command.commandPreview || t("sessionCommandsPanel.backgroundCommand2")
9766
- }),
9767
- disabled: pending !== null || command.state === "stopping",
9768
- onClick: () => void stop(command.id),
9769
- className: "inline-flex min-h-7 shrink-0 items-center gap-1 rounded-og-sm px-2 text-og-fg-muted outline-hidden hover:bg-og-surface-3/70 hover:text-og-fg focus-visible:ring-2 focus-visible:ring-og-accent/40 disabled:opacity-50 pointer-coarse:min-h-11",
9770
- children: [
9771
- pending === command.id || command.state === "stopping" ? /* @__PURE__ */ jsx21(Loader2Icon3, { className: "size-3 animate-og-spin motion-reduce:animate-none" }) : /* @__PURE__ */ jsx21(SquareIcon, { className: "size-3" }),
9772
- t("sessionCommandsPanel.stop")
9773
- ]
9774
- }
9775
- ) : null
9776
- ] }, command.id))
9777
- }
9778
- ) : null,
9779
- error ? /* @__PURE__ */ jsx21("p", { role: "alert", className: "text-og-danger", children: error }) : null
9780
- ]
9781
- }
9782
- );
9783
- }
9784
-
9785
- // src/hooks/use-session-background-commands.ts
9786
- import { useCallback as useCallback8, useEffect as useEffect17, useRef as useRef15 } from "react";
9787
- function useSessionBackgroundCommands(sessionId, options = {}) {
9788
- const { client, workspaceId } = useOpenGeni(options);
9789
- const enabled = (options.enabled ?? true) && Boolean(sessionId);
9790
- const load = useCallback8(
9791
- async (signal) => {
9792
- if (!sessionId) return { commands: [] };
9793
- if (!client.listSessionBackgroundCommands) {
9794
- throw new Error("The configured Opengeni client does not support background commands");
9795
- }
9796
- return await client.listSessionBackgroundCommands(workspaceId, sessionId, { signal });
9797
- },
9798
- [client, workspaceId, sessionId]
9799
- );
9800
- const state = usePolledValue(load, {
9801
- enabled,
9802
- pollIntervalMs: options.pollIntervalMs
9803
- });
9804
- const refresh = state.refresh;
9805
- const generation = useRef15(0);
9806
- useEffect17(() => {
9807
- generation.current += 1;
9808
- return () => {
9809
- generation.current += 1;
9810
- };
9811
- }, [client, workspaceId, sessionId, enabled]);
9812
- const cancel = useCallback8(
9813
- async (commandId) => {
9814
- if (!sessionId) return;
9815
- if (!client.cancelSessionBackgroundCommand) {
9816
- throw new Error("The configured Opengeni client does not support background commands");
9817
- }
9818
- const ticket = generation.current;
9819
- await client.cancelSessionBackgroundCommand(workspaceId, sessionId, commandId);
9820
- if (enabled && ticket === generation.current) await refresh();
9821
- },
9822
- [client, workspaceId, sessionId, refresh, enabled]
9823
- );
9824
- return {
9825
- commands: state.data?.commands ?? [],
9826
- loading: state.loading,
9827
- error: state.error,
9828
- refresh,
9829
- cancel
9830
- };
9831
- }
9832
-
9833
- // src/components/session-commands.tsx
9834
- import { jsx as jsx22 } from "react/jsx-runtime";
9835
- function SessionCommands({
9836
- sessionId,
9837
- readOnly = false,
9838
- ...options
9839
- }) {
9840
- const commands = useSessionBackgroundCommands(sessionId, {
9841
- pollIntervalMs: 3e3,
9842
- ...options
9843
- });
9844
- return /* @__PURE__ */ jsx22(SessionCommandsPanel, { commands, readOnly });
9845
- }
9846
-
9847
- // src/timeline/startup-timings.tsx
9848
- import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
9849
- var LABELS = (t) => ({
9850
- queue: t("timeline.startupTimings.workerQueue"),
9851
- sandbox: t("timeline.startupTimings.sandbox"),
9852
- rig: t("timeline.startupTimings.sandboxEnvironment"),
9853
- repository: t("timeline.startupTimings.repository"),
9854
- files: t("timeline.startupTimings.files"),
9855
- tools: t("timeline.startupTimings.tools"),
9856
- model_preparation: t("timeline.startupTimings.runtimeModelRequest"),
9857
- provider_first_byte: t("timeline.startupTimings.firstModelResponse")
9858
- });
9859
- function StartupTimings({ phases }) {
9860
- const t = useOpenGeniText();
9861
- if (!phases.length)
9862
- return /* @__PURE__ */ jsx23("p", { className: "text-og-sm text-og-fg-subtle", children: t("timeline.startupTimings.noStartupTimingsRecordedYet") });
9863
- const byTurn = /* @__PURE__ */ new Map();
9864
- for (const phase of phases) {
9865
- const group = byTurn.get(phase.turnId) ?? [];
9866
- group.push(phase);
9867
- byTurn.set(phase.turnId, group);
9868
- }
9869
- const turns = [...byTurn.entries()].map(([turnId, turnPhases]) => ({
9870
- turnId,
9871
- phases: turnPhases,
9872
- startedAt: turnPhases.reduce(
9873
- (earliest, phase) => phase.startedAt < earliest ? phase.startedAt : earliest,
9874
- turnPhases[0].startedAt
9875
- )
9876
- })).sort((a, b) => b.startedAt.localeCompare(a.startedAt));
9877
- return /* @__PURE__ */ jsxs17("div", { className: "space-y-3", children: [
9878
- /* @__PURE__ */ jsx23("p", { className: "text-og-xs text-og-fg-subtle", children: t("timeline.startupTimings.eachTurnHasItsOwn") }),
9879
- turns.map((turn, index) => /* @__PURE__ */ jsx23(
9880
- StartupTurn,
9881
- {
9882
- ...turn,
9883
- latest: index === 0 && turn.turnId !== null
9884
- },
9885
- turn.turnId ?? "unassigned"
9886
- ))
9887
- ] });
9888
- }
9889
- function StartupTurn({
9890
- turnId,
9891
- phases,
9892
- startedAt,
9893
- latest
9894
- }) {
9895
- const t = useOpenGeniText();
9896
- const failed = phases.some((phase) => phase.status === "failed");
9897
- const status = failed ? t("timeline.startupTimings.failed") : phases.some((phase) => phase.status === "running") ? t("timeline.startupTimings.inProgress") : phases.some((phase) => phase.status === "cancelled") ? t("timeline.startupTimings.interrupted") : t("timeline.startupTimings.ready");
9898
- return /* @__PURE__ */ jsxs17("details", { open: latest, className: "group border-b border-og-border pb-3", children: [
9899
- /* @__PURE__ */ jsxs17("summary", { className: "cursor-pointer rounded py-3 text-og-sm text-og-fg-muted focus-visible:outline-2 focus-visible:outline-og-accent", children: [
9900
- /* @__PURE__ */ jsx23("span", { className: "font-medium", children: turnId === null ? t("timeline.startupTimings.unassignedEvents") : latest ? t("timeline.startupTimings.latestTurn") : t("timeline.startupTimings.earlierTurn") }),
9901
- /* @__PURE__ */ jsx23("span", { className: "ml-2 text-og-xs text-og-fg-subtle", children: new Date(startedAt).toLocaleTimeString(t.locale, {
9902
- hour: "2-digit",
9903
- minute: "2-digit",
9904
- second: "2-digit"
9905
- }) }),
9906
- /* @__PURE__ */ jsx23(
9907
- "span",
9908
- {
9909
- className: failed ? "ml-2 text-og-xs text-og-status-failed" : "ml-2 text-og-xs text-og-fg-subtle",
9910
- children: status
9911
- }
9912
- ),
9913
- /* @__PURE__ */ jsx23("span", { className: "mt-1 block break-all pl-4 font-og-mono text-og-xs text-og-fg-subtle", children: turnId ?? t("timeline.startupTimings.noTurnIdRecorded") })
9914
- ] }),
9915
- /* @__PURE__ */ jsxs17("div", { className: "pb-2", children: [
9916
- /* @__PURE__ */ jsxs17("p", { className: "text-og-xs text-og-fg-subtle", children: [
9917
- t("timeline.startupTimings.started"),
9918
- " ",
9919
- /* @__PURE__ */ jsx23("time", { dateTime: startedAt, children: new Date(startedAt).toLocaleString(t.locale) })
9920
- ] }),
9921
- /* @__PURE__ */ jsx23("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs17("table", { className: "w-full text-left text-og-xs", children: [
9922
- /* @__PURE__ */ jsxs17("caption", { className: "sr-only", children: [
9923
- t("timeline.startupTimings.startupPhasesFor"),
9924
- " ",
9925
- turnId ?? t("timeline.startupTimings.unassignedEvents2")
9926
- ] }),
9927
- /* @__PURE__ */ jsx23("thead", { children: /* @__PURE__ */ jsxs17("tr", { className: "border-b border-og-border text-og-fg-subtle", children: [
9928
- /* @__PURE__ */ jsx23("th", { scope: "col", className: "py-2 font-medium", children: t("timeline.startupTimings.phase") }),
9929
- /* @__PURE__ */ jsx23("th", { scope: "col", className: "px-3 py-2 font-medium", children: t("timeline.startupTimings.status") }),
9930
- /* @__PURE__ */ jsx23("th", { scope: "col", className: "py-2 text-right font-medium", children: t("timeline.startupTimings.duration") })
9931
- ] }) }),
9932
- /* @__PURE__ */ jsx23("tbody", { children: phases.map((phase) => /* @__PURE__ */ jsxs17(
9933
- "tr",
9934
- {
9935
- className: "border-b border-og-border/40",
9936
- title: t("timeline.startupTimings.turnTurnidStartedStartedat", {
9937
- turnId: phase.turnId ?? t("timeline.startupTimings.unknownTurn"),
9938
- startedAt: phase.startedAt
9939
- }),
9940
- children: [
9941
- /* @__PURE__ */ jsx23("th", { scope: "row", className: "py-2.5 font-normal text-og-fg-muted", children: LABELS(t)[phase.phase] }),
9942
- /* @__PURE__ */ jsx23(
9943
- "td",
9944
- {
9945
- className: `px-3 py-2.5 ${phase.status === "failed" ? "text-og-status-failed" : "text-og-fg-subtle"}`,
9946
- children: phase.status === "running" ? t("timeline.startupTimings.inProgress") : phase.status
9947
- }
9948
- ),
9949
- /* @__PURE__ */ jsx23("td", { className: "py-2.5 text-right font-og-mono tabular-nums text-og-fg-muted", children: phase.durationMs === null ? "\u2014" : phase.durationMs < 1e3 ? t("timeline.startupTimings.roundMs", {
9950
- round: Math.round(phase.durationMs)
9951
- }) : `${(phase.durationMs / 1e3).toFixed(1)} s` })
9952
- ]
9953
- },
9954
- phase.id
9955
- )) })
9956
- ] }) })
9957
- ] })
9958
- ] });
9959
- }
9960
-
9961
9211
  export {
9962
9212
  HumanInputForm,
9963
9213
  HumanInputSurface,
@@ -9966,20 +9216,15 @@ export {
9966
9216
  GeneratedVideoPlayer,
9967
9217
  MessageTimeline,
9968
9218
  TimelineRow,
9969
- QueueSurface,
9970
9219
  sessionChromeGoalPillLabel,
9971
9220
  sessionChromeGoalPillExplanation,
9972
9221
  sessionChromeGoalPillState,
9973
9222
  SessionChrome,
9223
+ SessionProxyScope,
9224
+ useHostTheme,
9974
9225
  SessionConversation,
9975
9226
  SessionConversationView,
9976
9227
  NewConversation,
9977
- NewConversationView,
9978
- SessionList,
9979
- OpenGeniChat,
9980
- SessionCommandsPanel,
9981
- useSessionBackgroundCommands,
9982
- SessionCommands,
9983
- StartupTimings
9228
+ NewConversationView
9984
9229
  };
9985
- //# sourceMappingURL=chunk-O77Q4NG2.js.map
9230
+ //# sourceMappingURL=chunk-7XO7YKPC.js.map