@opengeni/react 4.2.1-canary.39642758903001 → 4.3.1

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 (693) hide show
  1. package/dist/app/app-state.js +27 -27
  2. package/dist/app/components/Composer.js +27 -26
  3. package/dist/app/components/agent/agent-capability-picker.js +5 -5
  4. package/dist/app/components/artifacts/artifact-library.js +19 -19
  5. package/dist/app/components/artifacts/chat-interactive-block.js +16 -16
  6. package/dist/app/components/artifacts/inline-chat-image.js +31 -30
  7. package/dist/app/components/artifacts/retained-file-preview.js +35 -34
  8. package/dist/app/components/artifacts/retained-text-preview.js +5 -5
  9. package/dist/app/components/artifacts/site-audience.js +5 -5
  10. package/dist/app/components/artifacts/site-conversations.js +24 -22
  11. package/dist/app/components/artifacts/site-data.js +20 -20
  12. package/dist/app/components/artifacts/site-publishing.js +39 -39
  13. package/dist/app/components/artifacts/site-settings.js +48 -48
  14. package/dist/app/components/billing-class-mark.js +5 -5
  15. package/dist/app/components/capabilities/capability-detail-sheet.js +9 -9
  16. package/dist/app/components/capabilities/capability-logo-source.js +13 -12
  17. package/dist/app/components/capabilities/connection-account-picker.js +2 -2
  18. package/dist/app/components/capabilities/connector-tool-permissions.js +5 -5
  19. package/dist/app/components/capabilities/native-connect-setup.js +14 -13
  20. package/dist/app/components/capabilities/native-connect-setup.js.map +1 -1
  21. package/dist/app/components/capabilities/perform-capability-action.js +3 -3
  22. package/dist/app/components/capabilities/prepared-mcp-setup-card.js +15 -14
  23. package/dist/app/components/capabilities/session-capability-card.js +78 -77
  24. package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
  25. package/dist/app/components/capabilities/session-custom-mcp-card.js +20 -19
  26. package/dist/app/components/capabilities/session-github-card.js +25 -24
  27. package/dist/app/components/capabilities/session-machine-card.js +38 -38
  28. package/dist/app/components/capabilities/use-capabilities-catalog.js +3 -3
  29. package/dist/app/components/capabilities/use-connection-accounts.js +1 -1
  30. package/dist/app/components/command-menu/chat-switcher.d.ts +12 -0
  31. package/dist/app/components/command-menu/chat-switcher.js +142 -0
  32. package/dist/app/components/command-menu/chat-switcher.js.map +1 -0
  33. package/dist/app/components/command-menu/command-menu.d.ts +15 -0
  34. package/dist/app/components/command-menu/command-menu.js +812 -0
  35. package/dist/app/components/command-menu/command-menu.js.map +1 -0
  36. package/dist/app/components/command-menu/keycaps.d.ts +21 -0
  37. package/dist/app/components/command-menu/keycaps.js +12 -0
  38. package/dist/app/components/command-menu/shortcut-sheet.d.ts +12 -0
  39. package/dist/app/components/command-menu/shortcut-sheet.js +150 -0
  40. package/dist/app/components/command-menu/shortcut-sheet.js.map +1 -0
  41. package/dist/app/components/composer-capabilities-menu-body.js +3 -3
  42. package/dist/app/components/composer-mobile-plus-panel.js +21 -21
  43. package/dist/app/components/composer-mobile-plus.js +3 -3
  44. package/dist/app/components/credit-required-gate.js +1 -1
  45. package/dist/app/components/credit-required-prompt.js +16 -16
  46. package/dist/app/components/credits/coupon-redeem.js +2 -2
  47. package/dist/app/components/credits/credit-refusal-notice.d.ts +18 -0
  48. package/dist/app/components/credits/credit-refusal-notice.js +17 -0
  49. package/dist/app/components/cross-slot-deep-link-recovery.js +1 -1
  50. package/dist/app/components/desktop/app-shots.js +6 -6
  51. package/dist/app/components/desktop/this-computer.js +4 -4
  52. package/dist/app/components/feedback.js +5 -5
  53. package/dist/app/components/follow-up-repository-menu-body.js +7 -7
  54. package/dist/app/components/follow-up-repository-picker.js +3 -3
  55. package/dist/app/components/github-app-connect-launcher.js +1 -1
  56. package/dist/app/components/knowledge/agent-learning-settings.js +6 -6
  57. package/dist/app/components/machines/connect-machine-dialog.js +18 -18
  58. package/dist/app/components/manual-repository-editor.js +2 -2
  59. package/dist/app/components/markdown.js +10 -9
  60. package/dist/app/components/message-context-pills.js +2 -2
  61. package/dist/app/components/models/models-ui.js +10 -10
  62. package/dist/app/components/pickers.js +10 -10
  63. package/dist/app/components/rail/rail-context.d.ts +6 -0
  64. package/dist/app/components/rail/rail-context.js +3 -3
  65. package/dist/app/components/rail/rail-sections.js +61 -55
  66. package/dist/app/components/rail/session-browse-order-controls.js +2 -2
  67. package/dist/app/components/rail/session-header.js +50 -36
  68. package/dist/app/components/rail/session-list.js +59 -52
  69. package/dist/app/components/rail/session-row-hover-details.js +25 -23
  70. package/dist/app/components/rail/session-shell.js +96 -91
  71. package/dist/app/components/repository-picker.js +7 -7
  72. package/dist/app/components/secrets/session-secrets-panel.js +4 -4
  73. package/dist/app/components/session/agent-configuration-panel.js +34 -34
  74. package/dist/app/components/session/banners.js +12 -11
  75. package/dist/app/components/session/codex-account-indicator.js +12 -12
  76. package/dist/app/components/session/composer-menu-radio.js +2 -2
  77. package/dist/app/components/session/conversation-find.js +1 -1
  78. package/dist/app/components/session/editable-artifacts-workspace.js +45 -45
  79. package/dist/app/components/session/failed-session-banner.js +12 -12
  80. package/dist/app/components/session/human-input.js +48 -47
  81. package/dist/app/components/session/inspector.js +80 -79
  82. package/dist/app/components/session/inspector.js.map +1 -1
  83. package/dist/app/components/session/message-actions.js +5 -5
  84. package/dist/app/components/session/message-resource-attachments.js +21 -20
  85. package/dist/app/components/session/message-resource-attachments.js.map +1 -1
  86. package/dist/app/components/session/model-account-indicator.js +11 -11
  87. package/dist/app/components/session/model-context-inspector.js +2 -2
  88. package/dist/app/components/session/model-recovery-notice.js +3 -3
  89. package/dist/app/components/session/new-session-settings-menu.js +13 -13
  90. package/dist/app/components/session/sandbox-switcher.js +16 -16
  91. package/dist/app/components/session/sandbox-workspace.js +68 -67
  92. package/dist/app/components/session/search-markdown-highlight.js +11 -10
  93. package/dist/app/components/session/search-results-view.js +12 -11
  94. package/dist/app/components/session/session-admin-access.js +11 -11
  95. package/dist/app/components/session/session-retention.js +4 -4
  96. package/dist/app/components/session/session-search-dialog.d.ts +5 -0
  97. package/dist/app/components/session/session-search-dialog.js +22 -12
  98. package/dist/app/components/session/session-search-dialog.js.map +1 -1
  99. package/dist/app/components/session/session-skill-reviews.js +3 -3
  100. package/dist/app/components/session/session-tenancy-control.js +25 -25
  101. package/dist/app/components/session/session-usage-limit-section.js +9 -9
  102. package/dist/app/components/session/session-wait-status.js +11 -9
  103. package/dist/app/components/session/session-wait-status.js.map +1 -1
  104. package/dist/app/components/session/subagents.js +17 -15
  105. package/dist/app/components/session/subscription-account-menu.js +2 -2
  106. package/dist/app/components/session-connectors-menu-body.js +6 -6
  107. package/dist/app/components/settings/row-select.js +1 -1
  108. package/dist/app/components/transcription-settings.js +2 -2
  109. package/dist/app/components/ui/destructive-confirm.js +8 -8
  110. package/dist/app/components/usage/usage-entry.js +6 -6
  111. package/dist/app/components/workspace-composer-plus.js +22 -21
  112. package/dist/app/embed/session-app.js +264 -258
  113. package/dist/app/lib/actions/actions-provider.d.ts +30 -0
  114. package/dist/app/lib/actions/actions-provider.js +32 -0
  115. package/dist/app/lib/actions/chat-directory.d.ts +30 -0
  116. package/dist/app/lib/actions/chat-operations.d.ts +11 -0
  117. package/dist/app/lib/actions/chat-switcher.d.ts +31 -0
  118. package/dist/app/lib/actions/chords.d.ts +40 -0
  119. package/dist/app/lib/actions/events.d.ts +6 -0
  120. package/dist/app/lib/actions/rank.d.ts +17 -0
  121. package/dist/app/lib/actions/registry.d.ts +71 -0
  122. package/dist/app/lib/codex-usage-query.js +3 -3
  123. package/dist/app/lib/composer-connectors.js +14 -13
  124. package/dist/app/lib/console-text.js +2 -2
  125. package/dist/app/lib/credit-coverage.d.ts +21 -0
  126. package/dist/app/lib/credit-coverage.js +15 -0
  127. package/dist/app/lib/deployment-free-model.js +2 -2
  128. package/dist/app/lib/events.js +19 -18
  129. package/dist/app/lib/failed-session-copy.js +5 -5
  130. package/dist/app/lib/free-credit-gap.d.ts +9 -0
  131. package/dist/app/lib/free-credit-gap.js +4 -2
  132. package/dist/app/lib/integration-connect-analytics.d.ts +1 -1
  133. package/dist/app/lib/integration-connect-analytics.js +1 -1
  134. package/dist/app/lib/integration-connect-redirect.js +1 -1
  135. package/dist/app/lib/model-access-onboarding.js +4 -4
  136. package/dist/app/lib/model-policy.js +1 -1
  137. package/dist/app/lib/models-route.d.ts +6 -2
  138. package/dist/app/lib/models-route.js +6 -3
  139. package/dist/app/lib/models-route.js.map +1 -1
  140. package/dist/app/lib/move-chat-to-machine.js +3 -3
  141. package/dist/app/lib/session-branch-cache.js +15 -13
  142. package/dist/app/lib/session-create.js +2 -2
  143. package/dist/app/lib/session-group-pagination.js +15 -13
  144. package/dist/app/lib/session-hover-facts.js +16 -14
  145. package/dist/app/lib/session-model.js +3 -3
  146. package/dist/app/lib/session-rail.js +11 -9
  147. package/dist/app/lib/session-rename.js +3 -3
  148. package/dist/app/lib/session-search-route.d.ts +1 -1
  149. package/dist/app/lib/session-search-route.js +1 -1
  150. package/dist/app/lib/session-ui-features.d.ts +11 -3
  151. package/dist/app/lib/session-ui-features.js +1 -1
  152. package/dist/app/lib/sessions-group.js +15 -13
  153. package/dist/app/lib/turn-failure-analytics.js +7 -7
  154. package/dist/app/lib/unavailable-session-model.js +2 -2
  155. package/dist/app/lib/use-duplicate-site.js +2 -2
  156. package/dist/app/lib/use-follow-up-repositories.js +3 -3
  157. package/dist/app/lib/use-workspace-machines.js +8 -8
  158. package/dist/app/lib/use-workspace-model-catalog.js +6 -6
  159. package/dist/app/lib/use-workspace-rigs.js +4 -4
  160. package/dist/app/lib/workspace-navigation-preference.js +5 -5
  161. package/dist/app/lib/workspace-scope-context.js +4 -4
  162. package/dist/app/routes/artifacts.js +124 -122
  163. package/dist/app/routes/artifacts.js.map +1 -1
  164. package/dist/app/routes/retained-artifact.js +69 -68
  165. package/dist/app/routes/retained-artifact.js.map +1 -1
  166. package/dist/app/routes/session-unavailable.js +3 -3
  167. package/dist/app/routes/session.js +168 -166
  168. package/dist/app/routes/sessions-index-hydration.js +3 -3
  169. package/dist/app/routes/sessions-index.js +122 -116
  170. package/dist/artifacts-document.js +4 -4
  171. package/dist/artifacts-presentation.js +4 -4
  172. package/dist/artifacts-spreadsheet.js +4 -4
  173. package/dist/artifacts.js +39 -39
  174. package/dist/{browser-viewer-ZRFZX3VN.js → browser-viewer-HPUMK7UP.js} +7 -7
  175. package/dist/{chat-interactive-block-HUMYWVCK.js → chat-interactive-block-22PPECCT.js} +6 -6
  176. package/dist/{chunk-GVIQ7H62.js → chunk-2LUBBDZV.js} +5 -5
  177. package/dist/{chunk-SWWYYGQO.js → chunk-325C2TCI.js} +5 -2
  178. package/dist/chunk-325C2TCI.js.map +1 -0
  179. package/dist/{chunk-XMMVIY7B.js → chunk-3CCJWHQY.js} +2 -2
  180. package/dist/{chunk-XS2FZ6DX.js → chunk-3F5ZPIWI.js} +2 -2
  181. package/dist/{chunk-72US6QNB.js → chunk-3J2YZRY5.js} +2 -2
  182. package/dist/{chunk-D4YQF4E3.js → chunk-3SMJ2BIQ.js} +2 -2
  183. package/dist/{chunk-TBJINQXA.js → chunk-3WCYK36X.js} +17 -17
  184. package/dist/{chunk-WPCF34V6.js → chunk-3WG3CRL7.js} +14 -14
  185. package/dist/{chunk-JI5BYQKO.js → chunk-3X46PNBX.js} +14 -14
  186. package/dist/{chunk-UO36FC3S.js → chunk-46I7MMAL.js} +6 -2
  187. package/dist/chunk-46I7MMAL.js.map +1 -0
  188. package/dist/{chunk-PBK44WJC.js → chunk-4GJ37O6G.js} +2 -2
  189. package/dist/chunk-4IWBQUQU.js +152 -0
  190. package/dist/chunk-4IWBQUQU.js.map +1 -0
  191. package/dist/{chunk-LEXPBQ56.js → chunk-4SKJX3C4.js} +6 -6
  192. package/dist/{chunk-ZA6YD2LW.js → chunk-57SYK776.js} +2 -2
  193. package/dist/{chunk-22LBKJDE.js → chunk-5DIAN5GQ.js} +12 -12
  194. package/dist/{chunk-LJ3TDK2L.js → chunk-5FA455GR.js} +4 -4
  195. package/dist/{chunk-N2BEUKXT.js → chunk-5FBZDEHE.js} +228 -228
  196. package/dist/chunk-5FBZDEHE.js.map +1 -0
  197. package/dist/{chunk-YPR5INHV.js → chunk-5X3E2Z3D.js} +4 -4
  198. package/dist/{chunk-OXNWZTEU.js → chunk-5ZJCL6X4.js} +5 -5
  199. package/dist/{chunk-62OAZ4LO.js → chunk-6C5GQQMC.js} +12 -12
  200. package/dist/{chunk-VGITH57T.js → chunk-6ERTXDZM.js} +4 -4
  201. package/dist/{chunk-ZQ7XQZCF.js → chunk-6FX73Y4I.js} +8 -8
  202. package/dist/{chunk-QZO2KK2F.js → chunk-6P44NG6Y.js} +2 -2
  203. package/dist/{chunk-N2DDJLTM.js → chunk-6T7Y33JA.js} +3 -3
  204. package/dist/{chunk-RBAGC2MJ.js → chunk-75VE5QUS.js} +22 -22
  205. package/dist/{chunk-MRXOGI3O.js → chunk-77CUDSHG.js} +9 -9
  206. package/dist/{chunk-F2GXK2Z6.js → chunk-7G446JFO.js} +431 -348
  207. package/dist/chunk-7G446JFO.js.map +1 -0
  208. package/dist/{chunk-GZ65XQR5.js → chunk-7T7FHSGS.js} +3 -3
  209. package/dist/{chunk-YGAH34CD.js → chunk-A3S26JSP.js} +8 -8
  210. package/dist/{chunk-GYPAO6RS.js → chunk-A664GSDM.js} +8 -8
  211. package/dist/{chunk-JSZSNMDR.js → chunk-ASUYLXKO.js} +2 -2
  212. package/dist/{chunk-RTK7SUPL.js → chunk-AUUJLVA3.js} +7 -7
  213. package/dist/{chunk-OOTBYSCA.js → chunk-BBWKPNJB.js} +5 -5
  214. package/dist/{chunk-BGZIMIUU.js → chunk-BCUYWOQU.js} +2 -2
  215. package/dist/{chunk-EKN4N4LS.js → chunk-BDFMNJZJ.js} +2 -2
  216. package/dist/{chunk-YZKGOWCC.js → chunk-BIDXQAGO.js} +2 -2
  217. package/dist/{chunk-Q2UUANHF.js → chunk-BIKAJ4DY.js} +5 -5
  218. package/dist/{chunk-5IQBF2X3.js → chunk-BJPJ2OUX.js} +3 -3
  219. package/dist/{chunk-EY2EMHZW.js → chunk-BPM2OTYK.js} +8 -8
  220. package/dist/{chunk-MT4TBRQB.js → chunk-BSWS2RUZ.js} +2 -2
  221. package/dist/{chunk-T7YD3VGK.js → chunk-C52MNKXU.js} +12 -12
  222. package/dist/{chunk-THNW33K7.js → chunk-CEUDV4OA.js} +18 -18
  223. package/dist/{chunk-GRLPRM56.js → chunk-CFEFYPNR.js} +8 -2
  224. package/dist/chunk-CFEFYPNR.js.map +1 -0
  225. package/dist/{chunk-LHGIS6SZ.js → chunk-CVK74BH7.js} +2 -2
  226. package/dist/{chunk-DFO2UCYG.js → chunk-CW5I65ZX.js} +11 -11
  227. package/dist/chunk-DKNTQDVL.js +86 -0
  228. package/dist/chunk-DKNTQDVL.js.map +1 -0
  229. package/dist/{chunk-SKRLKQEG.js → chunk-DOSC2HRQ.js} +79 -79
  230. package/dist/{chunk-KVB6XDLP.js → chunk-DPJ2CWVN.js} +2 -2
  231. package/dist/{chunk-4J6V4DH7.js → chunk-DXMRO2MU.js} +3 -3
  232. package/dist/{chunk-42I4O4WQ.js → chunk-EE55IDDR.js} +26 -26
  233. package/dist/{chunk-2RA6XABP.js → chunk-EEERTLFF.js} +12 -12
  234. package/dist/{chunk-PTOTKUKO.js → chunk-EEO744XR.js} +8 -8
  235. package/dist/{chunk-LD3HVI2J.js → chunk-EMFGBAQL.js} +6 -6
  236. package/dist/{chunk-FQGUK4ST.js → chunk-ENPJKVMN.js} +38 -38
  237. package/dist/{chunk-HDHK3SXK.js → chunk-EU6RLHMP.js} +4 -4
  238. package/dist/{chunk-G7VLL3PG.js → chunk-F2YABPRJ.js} +13 -4
  239. package/dist/chunk-F2YABPRJ.js.map +1 -0
  240. package/dist/{chunk-MRUWRQBX.js → chunk-FET6XHGS.js} +2 -2
  241. package/dist/{chunk-M6KUY3YH.js → chunk-FIICQA55.js} +2 -2
  242. package/dist/{chunk-NLWLCYCT.js → chunk-FTZXCPE3.js} +19 -19
  243. package/dist/{chunk-FN2KA3MJ.js → chunk-FUS76DO4.js} +3 -3
  244. package/dist/{chunk-AM4IIPWI.js → chunk-G7N5NPRJ.js} +2 -2
  245. package/dist/{chunk-CCQ7YKOD.js → chunk-GBYZ6653.js} +2 -2
  246. package/dist/{chunk-SOOWLNC5.js → chunk-GJUPLSC5.js} +330 -109
  247. package/dist/chunk-GJUPLSC5.js.map +1 -0
  248. package/dist/{chunk-YKKVIJVX.js → chunk-GQDSC6QZ.js} +5 -5
  249. package/dist/chunk-GQGNRL2L.js +53 -0
  250. package/dist/chunk-GQGNRL2L.js.map +1 -0
  251. package/dist/{chunk-5X6JP75Q.js → chunk-GRSODLVO.js} +4 -4
  252. package/dist/{chunk-73YP3R5X.js → chunk-GSESCQFY.js} +4 -4
  253. package/dist/{chunk-KWB5U3ZT.js → chunk-GWRW4N3T.js} +199 -137
  254. package/dist/chunk-GWRW4N3T.js.map +1 -0
  255. package/dist/{chunk-RTR7RNG4.js → chunk-GYRU4PNM.js} +9 -7
  256. package/dist/{chunk-RTR7RNG4.js.map → chunk-GYRU4PNM.js.map} +1 -1
  257. package/dist/{chunk-MZLEBFUZ.js → chunk-GZD6VBIK.js} +3 -3
  258. package/dist/{chunk-IZR2QRFF.js → chunk-H3HH5AHS.js} +4 -4
  259. package/dist/{chunk-DN3TKURW.js → chunk-H3LIIAGE.js} +4 -54
  260. package/dist/chunk-H3LIIAGE.js.map +1 -0
  261. package/dist/{chunk-NPLEQMNM.js → chunk-H5GWAG4I.js} +7 -5
  262. package/dist/{chunk-NPLEQMNM.js.map → chunk-H5GWAG4I.js.map} +1 -1
  263. package/dist/{chunk-OJPUVUB6.js → chunk-HAOZCLLA.js} +3 -3
  264. package/dist/{chunk-ZBHDGAYL.js → chunk-HEFE4OZJ.js} +2 -2
  265. package/dist/{chunk-WTG34JVA.js → chunk-HI75UTI6.js} +2 -2
  266. package/dist/{chunk-OMBIG3NC.js → chunk-HM633ROV.js} +14 -14
  267. package/dist/{chunk-WDFZWSKD.js → chunk-HRIP4M6H.js} +3 -3
  268. package/dist/{chunk-A2BCW6CQ.js → chunk-HU2DRFFI.js} +3 -3
  269. package/dist/{chunk-PO35PBAB.js → chunk-HVH7FFJH.js} +2 -2
  270. package/dist/{chunk-EG7KNUF7.js → chunk-HYTXTKST.js} +18 -18
  271. package/dist/{chunk-TFHG75A4.js → chunk-I4XMDFUJ.js} +7 -7
  272. package/dist/{chunk-IZHVZZQA.js → chunk-ICAUYWSL.js} +9 -9
  273. package/dist/{chunk-ZSERYHHT.js → chunk-IDMXEPHL.js} +150 -150
  274. package/dist/chunk-IDMXEPHL.js.map +1 -0
  275. package/dist/{chunk-DCLPWYP3.js → chunk-IEVPJ3G6.js} +2 -2
  276. package/dist/{chunk-EVWZHDSF.js → chunk-IKH3VTA4.js} +2 -2
  277. package/dist/{chunk-L5UCO2UV.js → chunk-ILBSBZGC.js} +13 -4
  278. package/dist/chunk-ILBSBZGC.js.map +1 -0
  279. package/dist/{chunk-IO6K6UYJ.js → chunk-IQ64BNAG.js} +4 -2
  280. package/dist/chunk-IQ64BNAG.js.map +1 -0
  281. package/dist/{chunk-TYHLEFD2.js → chunk-IZJNMRIR.js} +9 -9
  282. package/dist/{chunk-D2SR3TEB.js → chunk-J243WGUA.js} +2 -2
  283. package/dist/{chunk-QGSGIYE3.js → chunk-J2C6LB6W.js} +4 -4
  284. package/dist/{chunk-MT6TRTXF.js → chunk-J5MEDX7C.js} +9 -9
  285. package/dist/{chunk-6QHUKBJP.js → chunk-J7SKOO44.js} +2 -2
  286. package/dist/{chunk-W2QK7PYS.js → chunk-JAAST75A.js} +11 -11
  287. package/dist/{chunk-NQCMS4AJ.js → chunk-JQCGPTZ6.js} +9 -9
  288. package/dist/chunk-JRJUSKDY.js +832 -0
  289. package/dist/chunk-JRJUSKDY.js.map +1 -0
  290. package/dist/{chunk-CMUXJHGH.js → chunk-JRSCWQMC.js} +9 -9
  291. package/dist/{chunk-Q4OHNGGB.js → chunk-JRXHSVD5.js} +4 -4
  292. package/dist/{chunk-SD2K5ZN5.js → chunk-JXYLDT6X.js} +4 -4
  293. package/dist/{chunk-S3M5WCZW.js → chunk-KA4LV7G6.js} +35 -50
  294. package/dist/chunk-KA4LV7G6.js.map +1 -0
  295. package/dist/{chunk-IXX6ZOL2.js → chunk-KGTMHEAP.js} +7 -7
  296. package/dist/{chunk-22OBGVEJ.js → chunk-KOXVGPW4.js} +3 -3
  297. package/dist/{chunk-NOZ5CGZE.js → chunk-L5GPPMUB.js} +2 -2
  298. package/dist/{chunk-KIHYJM5F.js → chunk-LXJT4WAW.js} +58 -58
  299. package/dist/{chunk-KIHYJM5F.js.map → chunk-LXJT4WAW.js.map} +1 -1
  300. package/dist/{chunk-4FOOHMTU.js → chunk-LY6727IF.js} +1 -1
  301. package/dist/{chunk-PT7MTXRE.js → chunk-MAOCN7J6.js} +2 -2
  302. package/dist/{chunk-4K2JSJNX.js → chunk-MB5LZVDO.js} +2 -2
  303. package/dist/chunk-MF464AKA.js +139 -0
  304. package/dist/chunk-MF464AKA.js.map +1 -0
  305. package/dist/{chunk-UYSZKDQY.js → chunk-MK54JLE4.js} +1 -1
  306. package/dist/chunk-MK54JLE4.js.map +1 -0
  307. package/dist/{chunk-5LES64PP.js → chunk-MKOQAVOE.js} +21 -21
  308. package/dist/{chunk-BMV2SNYX.js → chunk-MUPWNSEJ.js} +18 -18
  309. package/dist/{chunk-Y5TRG22C.js → chunk-NRXIECWC.js} +2 -2
  310. package/dist/{chunk-GOE7G5JX.js → chunk-NWSAF6P5.js} +2 -2
  311. package/dist/chunk-OB3YGXHQ.js +158 -0
  312. package/dist/chunk-OB3YGXHQ.js.map +1 -0
  313. package/dist/{chunk-DUM363VS.js → chunk-OFZQJNF6.js} +5 -5
  314. package/dist/{chunk-CKN5QPEL.js → chunk-OMF7POEY.js} +2 -2
  315. package/dist/{chunk-MVXKO2BD.js → chunk-OXD6ET34.js} +1 -1
  316. package/dist/{chunk-47JUEVME.js → chunk-PALX6HWV.js} +21 -21
  317. package/dist/{chunk-B6OGSG7I.js → chunk-PE3BLBDT.js} +3 -3
  318. package/dist/{chunk-RVISSNVE.js → chunk-PMZKJOG6.js} +15 -15
  319. package/dist/{chunk-CESAMXWX.js → chunk-PQUTMG3S.js} +2 -2
  320. package/dist/{chunk-7VFCOKPG.js → chunk-PWBGODZU.js} +3 -3
  321. package/dist/{chunk-MOPAXD2H.js → chunk-QCADUTYX.js} +2 -2
  322. package/dist/{chunk-CT5FBO7E.js → chunk-RPOUJI25.js} +1 -1
  323. package/dist/{chunk-VE3FKXJ7.js → chunk-RUSXEE7X.js} +35 -32
  324. package/dist/chunk-RUSXEE7X.js.map +1 -0
  325. package/dist/{chunk-WKHYOS72.js → chunk-RW4GFE56.js} +3 -3
  326. package/dist/{chunk-FH4GO7HO.js → chunk-RYLVVDR7.js} +1 -1
  327. package/dist/{chunk-QZRDCFHI.js → chunk-S66SBBFQ.js} +5 -5
  328. package/dist/{chunk-CQJFIPAH.js → chunk-S7TNV2I7.js} +14 -14
  329. package/dist/{chunk-ZBQSIGGR.js → chunk-SC773IMJ.js} +13 -13
  330. package/dist/{chunk-RZV7SXED.js → chunk-SF3M27AN.js} +37 -12
  331. package/dist/chunk-SF3M27AN.js.map +1 -0
  332. package/dist/{chunk-FBJ2HK7A.js → chunk-SGPJ3YS2.js} +20 -20
  333. package/dist/{chunk-A2EWJQXX.js → chunk-SM5QX6UK.js} +4 -4
  334. package/dist/chunk-SWCLN6JE.js +40 -0
  335. package/dist/chunk-SWCLN6JE.js.map +1 -0
  336. package/dist/{chunk-OS3EQOIS.js → chunk-T4F5TW2X.js} +29 -24
  337. package/dist/chunk-T4F5TW2X.js.map +1 -0
  338. package/dist/{chunk-RKZWCTXV.js → chunk-TAEKDMEF.js} +2 -2
  339. package/dist/{chunk-6AVCAUGL.js → chunk-TASEV25T.js} +3 -3
  340. package/dist/{chunk-3XOISKZC.js → chunk-TLGDPMUX.js} +6 -6
  341. package/dist/{chunk-MOF3XSUM.js → chunk-TREHTIBD.js} +3 -2
  342. package/dist/chunk-TREHTIBD.js.map +1 -0
  343. package/dist/{chunk-HUQHJSPV.js → chunk-TTPXGD5S.js} +68 -33
  344. package/dist/chunk-TTPXGD5S.js.map +1 -0
  345. package/dist/{chunk-NFCYIZHX.js → chunk-TXIIBNCA.js} +7 -3
  346. package/dist/{chunk-NFCYIZHX.js.map → chunk-TXIIBNCA.js.map} +1 -1
  347. package/dist/{chunk-5IUW34PG.js → chunk-TY3QYPJ6.js} +7 -7
  348. package/dist/{chunk-VQFR4EU4.js → chunk-U3JK5VJV.js} +2 -2
  349. package/dist/{chunk-2AWMJO54.js → chunk-U42P3RMZ.js} +5 -5
  350. package/dist/{chunk-2RIUMV7S.js → chunk-UBIJBLUK.js} +234 -234
  351. package/dist/chunk-UBIJBLUK.js.map +1 -0
  352. package/dist/{chunk-GUU75DES.js → chunk-UEJTOPLW.js} +8 -8
  353. package/dist/{chunk-QWCTYLMD.js → chunk-URDONAEJ.js} +240 -204
  354. package/dist/chunk-URDONAEJ.js.map +1 -0
  355. package/dist/{chunk-OZOEWLGR.js → chunk-UT6JAORE.js} +4 -4
  356. package/dist/{chunk-5TELOQA6.js → chunk-UTHPUINA.js} +3 -3
  357. package/dist/{chunk-SOV7DTTU.js → chunk-V6HZ2HJZ.js} +67 -67
  358. package/dist/{chunk-SOV7DTTU.js.map → chunk-V6HZ2HJZ.js.map} +1 -1
  359. package/dist/{chunk-26RQ6JBR.js → chunk-VBVCNH6D.js} +5 -5
  360. package/dist/{chunk-P646DND6.js → chunk-VCMQPCME.js} +2 -2
  361. package/dist/{chunk-LV7FMIMM.js → chunk-VGUHAHHV.js} +2 -2
  362. package/dist/{chunk-GYVXARCY.js → chunk-VIBPFVU4.js} +41 -41
  363. package/dist/{chunk-KHPOKZ6Z.js → chunk-VMAC66JX.js} +6 -6
  364. package/dist/{chunk-SHKRS6I5.js → chunk-VRPNETPK.js} +3 -3
  365. package/dist/{chunk-6U4J6RVS.js → chunk-WCHW4XN7.js} +14 -14
  366. package/dist/{chunk-CJH6QUQJ.js → chunk-WD3UXNJV.js} +3 -3
  367. package/dist/{chunk-H5EVWF6L.js → chunk-WR67FJMX.js} +4 -4
  368. package/dist/{chunk-XLIJ36RG.js → chunk-WRMQ7EX4.js} +5 -5
  369. package/dist/{chunk-VVFWOBAM.js → chunk-WTJUKYB2.js} +15 -16
  370. package/dist/chunk-WTJUKYB2.js.map +1 -0
  371. package/dist/{chunk-7KLCFJ5G.js → chunk-X4PPGXQG.js} +2 -2
  372. package/dist/{chunk-ZE2JTVCQ.js → chunk-X5BMQXFD.js} +11 -11
  373. package/dist/{chunk-OYJY4Y4A.js → chunk-XFNLU7EW.js} +14 -7
  374. package/dist/chunk-XFNLU7EW.js.map +1 -0
  375. package/dist/{chunk-UECU6LZI.js → chunk-XXRBOSWV.js} +3 -3
  376. package/dist/{chunk-SPKAIDWX.js → chunk-XZEFCPBL.js} +2 -2
  377. package/dist/{chunk-EZ5NYRHK.js → chunk-YL6N7QLA.js} +5 -5
  378. package/dist/{chunk-Q2ZJOECN.js → chunk-YMVTIV5L.js} +19 -19
  379. package/dist/chunk-YMVTIV5L.js.map +1 -0
  380. package/dist/{chunk-VAIESMPY.js → chunk-YVBHGMKC.js} +4 -4
  381. package/dist/{chunk-AR62NQXE.js → chunk-Z2S5VQG7.js} +2 -2
  382. package/dist/{chunk-2MXUB3ZO.js → chunk-Z5OGTWMZ.js} +15 -2
  383. package/dist/chunk-Z5OGTWMZ.js.map +1 -0
  384. package/dist/{chunk-7UQJEADK.js → chunk-ZL2O4BYP.js} +2 -2
  385. package/dist/{chunk-FOOITLHR.js → chunk-ZZHBT5WQ.js} +2 -2
  386. package/dist/{chunk-X6VJQJYY.js → chunk-ZZWHKC6A.js} +3 -3
  387. package/dist/components/timeline-annotation-shared.d.ts +1 -9
  388. package/dist/composer-messages.js +2 -2
  389. package/dist/composer.js +15 -15
  390. package/dist/{computer-viewer-D4NHQB5D.js → computer-viewer-S6TE6TN7.js} +8 -8
  391. package/dist/connect.js +12 -11
  392. package/dist/desktop.js +2 -2
  393. package/dist/editor.js +2 -2
  394. package/dist/{embedded-new-voice-X4ZW6SY4.js → embedded-new-voice-ZDZPGX25.js} +8 -8
  395. package/dist/{embedded-voice-4OD6Z3HU.js → embedded-voice-FKCUXSJO.js} +8 -8
  396. package/dist/{fleet-decision-row-5UCJXTDP.js → fleet-decision-row-VCGWYJAV.js} +2 -2
  397. package/dist/hooks/page-wake.d.ts +21 -0
  398. package/dist/hooks/use-session-events.d.ts +1 -0
  399. package/dist/index.js +206 -205
  400. package/dist/interaction.js +9 -9
  401. package/dist/{latest-question-VGVNUGAU.js → latest-question-SINEV4U6.js} +3 -3
  402. package/dist/lib/format.d.ts +3 -2
  403. package/dist/machines.js +6 -6
  404. package/dist/messages/en.d.ts +12 -3
  405. package/dist/messages.js +1 -1
  406. package/dist/model-picker-model.js +2 -2
  407. package/dist/{model-policy-picker-menu-XOPYY6YA.js → model-policy-picker-menu-66JPM3G5.js} +6 -6
  408. package/dist/model-policy-picker-menu-66JPM3G5.js.map +1 -0
  409. package/dist/model-policy.js +1 -1
  410. package/dist/native-previews.js +3 -3
  411. package/dist/{platform-activity-row-56XOVTRA.js → platform-activity-row-LU5WABI2.js} +2 -2
  412. package/dist/{queue-surface-implementation-OZDOBJ6W.js → queue-surface-implementation-Y4OUVS7N.js} +8 -7
  413. package/dist/{queue-surface-implementation-OZDOBJ6W.js.map → queue-surface-implementation-Y4OUVS7N.js.map} +1 -1
  414. package/dist/realtime.js +7 -7
  415. package/dist/{sandbox-files-LJCR437H.js → sandbox-files-NBIVKVCZ.js} +11 -11
  416. package/dist/sandbox-files-NBIVKVCZ.js.map +1 -0
  417. package/dist/session-app.js +266 -260
  418. package/dist/session-list-model.js +3 -3
  419. package/dist/{session-realtime-UISLBZ4A.js → session-realtime-3PALSNMJ.js} +3 -3
  420. package/dist/session-realtime-3PALSNMJ.js.map +1 -0
  421. package/dist/session-realtime.js +2 -2
  422. package/dist/session-ui.js +62 -61
  423. package/dist/session.d.ts +1 -1
  424. package/dist/session.js +17 -17
  425. package/dist/sites.js +2 -2
  426. package/dist/terminal.js +2 -2
  427. package/dist/this-computer.js +3 -3
  428. package/dist/timeline/annotation-model.d.ts +48 -0
  429. package/dist/{timeline-annotation-markers-ACT7XRMW.js → timeline-annotation-markers-6526H2NM.js} +11 -9
  430. package/dist/{timeline-annotation-markers-ACT7XRMW.js.map → timeline-annotation-markers-6526H2NM.js.map} +1 -1
  431. package/dist/{timeline-annotation-selection-2IA7T5VR.js → timeline-annotation-selection-KV5SM6TA.js} +16 -62
  432. package/dist/timeline-annotation-selection-KV5SM6TA.js.map +1 -0
  433. package/dist/{timeline-annotations-dialog-W5B2HMYY.js → timeline-annotations-dialog-7CDHWC7Y.js} +12 -10
  434. package/dist/{timeline-annotations-dialog-W5B2HMYY.js.map → timeline-annotations-dialog-7CDHWC7Y.js.map} +1 -1
  435. package/dist/timeline-model.d.ts +3 -0
  436. package/dist/timeline-model.js +40 -14
  437. package/dist/ui/access-list.js +24 -24
  438. package/dist/ui/choice-cards.js +2 -2
  439. package/dist/ui/composer-menu-action.js +2 -2
  440. package/dist/ui/context-menu.d.ts +3 -1
  441. package/dist/ui/context-menu.js +3 -1
  442. package/dist/ui/detail-page.js +3 -3
  443. package/dist/ui/detail-sheet.js +3 -3
  444. package/dist/ui/diff-view.js +3 -3
  445. package/dist/ui/disclosure.js +5 -5
  446. package/dist/ui/dropdown-menu.js +1 -1
  447. package/dist/ui/flush-form-page.js +5 -5
  448. package/dist/ui/form-dialog.js +4 -4
  449. package/dist/ui/list-row.js +5 -5
  450. package/dist/ui/load-failure.js +3 -3
  451. package/dist/ui/page-actions.js +3 -3
  452. package/dist/ui/revision-history.js +11 -11
  453. package/dist/ui/role-select.js +8 -8
  454. package/dist/ui/segmented-control.js +1 -1
  455. package/dist/ui/settings-nav.js +3 -3
  456. package/dist/ui/toolbar.js +3 -3
  457. package/dist/usage.js +2 -2
  458. package/dist/workbench.js +11 -11
  459. package/package.json +4 -4
  460. package/src/app/app-state.tsx +2 -1
  461. package/src/app/components/command-menu/chat-switcher.tsx +135 -0
  462. package/src/app/components/command-menu/command-menu.tsx +840 -0
  463. package/src/app/components/command-menu/keycaps.tsx +56 -0
  464. package/src/app/components/command-menu/shortcut-sheet.tsx +155 -0
  465. package/src/app/components/credits/credit-refusal-notice.test.tsx +132 -0
  466. package/src/app/components/credits/credit-refusal-notice.tsx +92 -0
  467. package/src/app/components/rail/rail-context.tsx +28 -5
  468. package/src/app/components/rail/rail-sections.tsx +3 -5
  469. package/src/app/components/rail/session-header-mute.test.tsx +23 -1
  470. package/src/app/components/rail/session-header.test.tsx +21 -2
  471. package/src/app/components/rail/session-header.tsx +31 -1
  472. package/src/app/components/rail/session-list.tsx +89 -16
  473. package/src/app/components/rail/session-shell.tsx +0 -14
  474. package/src/app/components/session/session-search-dialog.tsx +12 -1
  475. package/src/app/embed/session-app.tsx +6 -3
  476. package/src/app/lib/actions/actions-provider.tsx +486 -0
  477. package/src/app/lib/actions/actions.test.ts +249 -0
  478. package/src/app/lib/actions/chat-directory.ts +231 -0
  479. package/src/app/lib/actions/chat-operations.ts +145 -0
  480. package/src/app/lib/actions/chat-switcher.ts +62 -0
  481. package/src/app/lib/actions/chords.ts +185 -0
  482. package/src/app/lib/actions/events.ts +10 -0
  483. package/src/app/lib/actions/rank.ts +119 -0
  484. package/src/app/lib/actions/registry.ts +333 -0
  485. package/src/app/lib/credit-coverage.test.ts +83 -0
  486. package/src/app/lib/credit-coverage.tsx +48 -0
  487. package/src/app/lib/free-credit-gap.test.ts +32 -1
  488. package/src/app/lib/free-credit-gap.tsx +32 -2
  489. package/src/app/lib/integration-connect-analytics.test.ts +1 -0
  490. package/src/app/lib/integration-connect-analytics.tsx +4 -0
  491. package/src/app/lib/models-route.test.ts +18 -0
  492. package/src/app/lib/models-route.tsx +26 -4
  493. package/src/app/lib/session-search-route.tsx +6 -1
  494. package/src/app/lib/session-ui-features.tsx +28 -9
  495. package/src/app/routes/session.tsx +74 -16
  496. package/src/app/routes/sessions-index.tsx +83 -4
  497. package/src/components/timeline-annotation-selection.tsx +9 -64
  498. package/src/components/timeline-annotation-shared.ts +9 -57
  499. package/src/hooks/page-wake.ts +80 -0
  500. package/src/hooks/use-session-events.ts +309 -81
  501. package/src/lib/format.ts +3 -2
  502. package/src/messages/en.ts +13 -3
  503. package/src/model-picker-model.ts +3 -0
  504. package/src/model-policy.ts +9 -1
  505. package/src/session.ts +1 -0
  506. package/src/timeline/annotation-model.ts +217 -0
  507. package/src/timeline/projection.ts +27 -21
  508. package/src/timeline-model.ts +14 -0
  509. package/src/ui/context-menu.tsx +16 -0
  510. package/src/ui/dropdown-menu.tsx +4 -1
  511. package/src/ui/segmented-control.tsx +3 -0
  512. package/styles/compiled.css +92 -0
  513. package/dist/app/lib/keyboard-shortcuts.d.ts +0 -51
  514. package/dist/app/lib/keyboard-shortcuts.js +0 -16
  515. package/dist/chunk-2MXUB3ZO.js.map +0 -1
  516. package/dist/chunk-2RIUMV7S.js.map +0 -1
  517. package/dist/chunk-53IXIUYP.js +0 -39
  518. package/dist/chunk-53IXIUYP.js.map +0 -1
  519. package/dist/chunk-DN3TKURW.js.map +0 -1
  520. package/dist/chunk-F2GXK2Z6.js.map +0 -1
  521. package/dist/chunk-G7VLL3PG.js.map +0 -1
  522. package/dist/chunk-GRLPRM56.js.map +0 -1
  523. package/dist/chunk-HUQHJSPV.js.map +0 -1
  524. package/dist/chunk-IO6K6UYJ.js.map +0 -1
  525. package/dist/chunk-KWB5U3ZT.js.map +0 -1
  526. package/dist/chunk-L5UCO2UV.js.map +0 -1
  527. package/dist/chunk-MOF3XSUM.js.map +0 -1
  528. package/dist/chunk-N2BEUKXT.js.map +0 -1
  529. package/dist/chunk-OS3EQOIS.js.map +0 -1
  530. package/dist/chunk-OYJY4Y4A.js.map +0 -1
  531. package/dist/chunk-Q2ZJOECN.js.map +0 -1
  532. package/dist/chunk-QWCTYLMD.js.map +0 -1
  533. package/dist/chunk-RZV7SXED.js.map +0 -1
  534. package/dist/chunk-S3M5WCZW.js.map +0 -1
  535. package/dist/chunk-SOOWLNC5.js.map +0 -1
  536. package/dist/chunk-SWWYYGQO.js.map +0 -1
  537. package/dist/chunk-UO36FC3S.js.map +0 -1
  538. package/dist/chunk-UYSZKDQY.js.map +0 -1
  539. package/dist/chunk-VE3FKXJ7.js.map +0 -1
  540. package/dist/chunk-VVFWOBAM.js.map +0 -1
  541. package/dist/chunk-ZSERYHHT.js.map +0 -1
  542. package/dist/timeline-annotation-selection-2IA7T5VR.js.map +0 -1
  543. package/src/app/lib/keyboard-shortcuts.test.ts +0 -47
  544. package/src/app/lib/keyboard-shortcuts.tsx +0 -58
  545. /package/dist/app/{lib/keyboard-shortcuts.js.map → components/command-menu/keycaps.js.map} +0 -0
  546. /package/dist/{browser-viewer-ZRFZX3VN.js.map → app/components/credits/credit-refusal-notice.js.map} +0 -0
  547. /package/dist/{chat-interactive-block-HUMYWVCK.js.map → app/lib/actions/actions-provider.js.map} +0 -0
  548. /package/dist/{computer-viewer-D4NHQB5D.js.map → app/lib/credit-coverage.js.map} +0 -0
  549. /package/dist/{embedded-new-voice-X4ZW6SY4.js.map → browser-viewer-HPUMK7UP.js.map} +0 -0
  550. /package/dist/{embedded-voice-4OD6Z3HU.js.map → chat-interactive-block-22PPECCT.js.map} +0 -0
  551. /package/dist/{chunk-GVIQ7H62.js.map → chunk-2LUBBDZV.js.map} +0 -0
  552. /package/dist/{chunk-XMMVIY7B.js.map → chunk-3CCJWHQY.js.map} +0 -0
  553. /package/dist/{chunk-XS2FZ6DX.js.map → chunk-3F5ZPIWI.js.map} +0 -0
  554. /package/dist/{chunk-72US6QNB.js.map → chunk-3J2YZRY5.js.map} +0 -0
  555. /package/dist/{chunk-D4YQF4E3.js.map → chunk-3SMJ2BIQ.js.map} +0 -0
  556. /package/dist/{chunk-TBJINQXA.js.map → chunk-3WCYK36X.js.map} +0 -0
  557. /package/dist/{chunk-WPCF34V6.js.map → chunk-3WG3CRL7.js.map} +0 -0
  558. /package/dist/{chunk-JI5BYQKO.js.map → chunk-3X46PNBX.js.map} +0 -0
  559. /package/dist/{chunk-PBK44WJC.js.map → chunk-4GJ37O6G.js.map} +0 -0
  560. /package/dist/{chunk-LEXPBQ56.js.map → chunk-4SKJX3C4.js.map} +0 -0
  561. /package/dist/{chunk-ZA6YD2LW.js.map → chunk-57SYK776.js.map} +0 -0
  562. /package/dist/{chunk-22LBKJDE.js.map → chunk-5DIAN5GQ.js.map} +0 -0
  563. /package/dist/{chunk-LJ3TDK2L.js.map → chunk-5FA455GR.js.map} +0 -0
  564. /package/dist/{chunk-YPR5INHV.js.map → chunk-5X3E2Z3D.js.map} +0 -0
  565. /package/dist/{chunk-OXNWZTEU.js.map → chunk-5ZJCL6X4.js.map} +0 -0
  566. /package/dist/{chunk-62OAZ4LO.js.map → chunk-6C5GQQMC.js.map} +0 -0
  567. /package/dist/{chunk-VGITH57T.js.map → chunk-6ERTXDZM.js.map} +0 -0
  568. /package/dist/{chunk-ZQ7XQZCF.js.map → chunk-6FX73Y4I.js.map} +0 -0
  569. /package/dist/{chunk-QZO2KK2F.js.map → chunk-6P44NG6Y.js.map} +0 -0
  570. /package/dist/{chunk-N2DDJLTM.js.map → chunk-6T7Y33JA.js.map} +0 -0
  571. /package/dist/{chunk-RBAGC2MJ.js.map → chunk-75VE5QUS.js.map} +0 -0
  572. /package/dist/{chunk-MRXOGI3O.js.map → chunk-77CUDSHG.js.map} +0 -0
  573. /package/dist/{chunk-GZ65XQR5.js.map → chunk-7T7FHSGS.js.map} +0 -0
  574. /package/dist/{chunk-YGAH34CD.js.map → chunk-A3S26JSP.js.map} +0 -0
  575. /package/dist/{chunk-GYPAO6RS.js.map → chunk-A664GSDM.js.map} +0 -0
  576. /package/dist/{chunk-JSZSNMDR.js.map → chunk-ASUYLXKO.js.map} +0 -0
  577. /package/dist/{chunk-RTK7SUPL.js.map → chunk-AUUJLVA3.js.map} +0 -0
  578. /package/dist/{chunk-OOTBYSCA.js.map → chunk-BBWKPNJB.js.map} +0 -0
  579. /package/dist/{chunk-BGZIMIUU.js.map → chunk-BCUYWOQU.js.map} +0 -0
  580. /package/dist/{chunk-EKN4N4LS.js.map → chunk-BDFMNJZJ.js.map} +0 -0
  581. /package/dist/{chunk-YZKGOWCC.js.map → chunk-BIDXQAGO.js.map} +0 -0
  582. /package/dist/{chunk-Q2UUANHF.js.map → chunk-BIKAJ4DY.js.map} +0 -0
  583. /package/dist/{chunk-5IQBF2X3.js.map → chunk-BJPJ2OUX.js.map} +0 -0
  584. /package/dist/{chunk-EY2EMHZW.js.map → chunk-BPM2OTYK.js.map} +0 -0
  585. /package/dist/{chunk-MT4TBRQB.js.map → chunk-BSWS2RUZ.js.map} +0 -0
  586. /package/dist/{chunk-T7YD3VGK.js.map → chunk-C52MNKXU.js.map} +0 -0
  587. /package/dist/{chunk-THNW33K7.js.map → chunk-CEUDV4OA.js.map} +0 -0
  588. /package/dist/{chunk-LHGIS6SZ.js.map → chunk-CVK74BH7.js.map} +0 -0
  589. /package/dist/{chunk-DFO2UCYG.js.map → chunk-CW5I65ZX.js.map} +0 -0
  590. /package/dist/{chunk-SKRLKQEG.js.map → chunk-DOSC2HRQ.js.map} +0 -0
  591. /package/dist/{chunk-KVB6XDLP.js.map → chunk-DPJ2CWVN.js.map} +0 -0
  592. /package/dist/{chunk-4J6V4DH7.js.map → chunk-DXMRO2MU.js.map} +0 -0
  593. /package/dist/{chunk-42I4O4WQ.js.map → chunk-EE55IDDR.js.map} +0 -0
  594. /package/dist/{chunk-2RA6XABP.js.map → chunk-EEERTLFF.js.map} +0 -0
  595. /package/dist/{chunk-PTOTKUKO.js.map → chunk-EEO744XR.js.map} +0 -0
  596. /package/dist/{chunk-LD3HVI2J.js.map → chunk-EMFGBAQL.js.map} +0 -0
  597. /package/dist/{chunk-FQGUK4ST.js.map → chunk-ENPJKVMN.js.map} +0 -0
  598. /package/dist/{chunk-HDHK3SXK.js.map → chunk-EU6RLHMP.js.map} +0 -0
  599. /package/dist/{chunk-MRUWRQBX.js.map → chunk-FET6XHGS.js.map} +0 -0
  600. /package/dist/{chunk-M6KUY3YH.js.map → chunk-FIICQA55.js.map} +0 -0
  601. /package/dist/{chunk-NLWLCYCT.js.map → chunk-FTZXCPE3.js.map} +0 -0
  602. /package/dist/{chunk-FN2KA3MJ.js.map → chunk-FUS76DO4.js.map} +0 -0
  603. /package/dist/{chunk-AM4IIPWI.js.map → chunk-G7N5NPRJ.js.map} +0 -0
  604. /package/dist/{chunk-CCQ7YKOD.js.map → chunk-GBYZ6653.js.map} +0 -0
  605. /package/dist/{chunk-YKKVIJVX.js.map → chunk-GQDSC6QZ.js.map} +0 -0
  606. /package/dist/{chunk-5X6JP75Q.js.map → chunk-GRSODLVO.js.map} +0 -0
  607. /package/dist/{chunk-73YP3R5X.js.map → chunk-GSESCQFY.js.map} +0 -0
  608. /package/dist/{chunk-MZLEBFUZ.js.map → chunk-GZD6VBIK.js.map} +0 -0
  609. /package/dist/{chunk-IZR2QRFF.js.map → chunk-H3HH5AHS.js.map} +0 -0
  610. /package/dist/{chunk-OJPUVUB6.js.map → chunk-HAOZCLLA.js.map} +0 -0
  611. /package/dist/{chunk-ZBHDGAYL.js.map → chunk-HEFE4OZJ.js.map} +0 -0
  612. /package/dist/{chunk-WTG34JVA.js.map → chunk-HI75UTI6.js.map} +0 -0
  613. /package/dist/{chunk-OMBIG3NC.js.map → chunk-HM633ROV.js.map} +0 -0
  614. /package/dist/{chunk-WDFZWSKD.js.map → chunk-HRIP4M6H.js.map} +0 -0
  615. /package/dist/{chunk-A2BCW6CQ.js.map → chunk-HU2DRFFI.js.map} +0 -0
  616. /package/dist/{chunk-PO35PBAB.js.map → chunk-HVH7FFJH.js.map} +0 -0
  617. /package/dist/{chunk-EG7KNUF7.js.map → chunk-HYTXTKST.js.map} +0 -0
  618. /package/dist/{chunk-TFHG75A4.js.map → chunk-I4XMDFUJ.js.map} +0 -0
  619. /package/dist/{chunk-IZHVZZQA.js.map → chunk-ICAUYWSL.js.map} +0 -0
  620. /package/dist/{chunk-DCLPWYP3.js.map → chunk-IEVPJ3G6.js.map} +0 -0
  621. /package/dist/{chunk-EVWZHDSF.js.map → chunk-IKH3VTA4.js.map} +0 -0
  622. /package/dist/{chunk-TYHLEFD2.js.map → chunk-IZJNMRIR.js.map} +0 -0
  623. /package/dist/{chunk-D2SR3TEB.js.map → chunk-J243WGUA.js.map} +0 -0
  624. /package/dist/{chunk-QGSGIYE3.js.map → chunk-J2C6LB6W.js.map} +0 -0
  625. /package/dist/{chunk-MT6TRTXF.js.map → chunk-J5MEDX7C.js.map} +0 -0
  626. /package/dist/{chunk-6QHUKBJP.js.map → chunk-J7SKOO44.js.map} +0 -0
  627. /package/dist/{chunk-W2QK7PYS.js.map → chunk-JAAST75A.js.map} +0 -0
  628. /package/dist/{chunk-NQCMS4AJ.js.map → chunk-JQCGPTZ6.js.map} +0 -0
  629. /package/dist/{chunk-CMUXJHGH.js.map → chunk-JRSCWQMC.js.map} +0 -0
  630. /package/dist/{chunk-Q4OHNGGB.js.map → chunk-JRXHSVD5.js.map} +0 -0
  631. /package/dist/{chunk-SD2K5ZN5.js.map → chunk-JXYLDT6X.js.map} +0 -0
  632. /package/dist/{chunk-IXX6ZOL2.js.map → chunk-KGTMHEAP.js.map} +0 -0
  633. /package/dist/{chunk-22OBGVEJ.js.map → chunk-KOXVGPW4.js.map} +0 -0
  634. /package/dist/{chunk-NOZ5CGZE.js.map → chunk-L5GPPMUB.js.map} +0 -0
  635. /package/dist/{chunk-4FOOHMTU.js.map → chunk-LY6727IF.js.map} +0 -0
  636. /package/dist/{chunk-PT7MTXRE.js.map → chunk-MAOCN7J6.js.map} +0 -0
  637. /package/dist/{chunk-4K2JSJNX.js.map → chunk-MB5LZVDO.js.map} +0 -0
  638. /package/dist/{chunk-5LES64PP.js.map → chunk-MKOQAVOE.js.map} +0 -0
  639. /package/dist/{chunk-BMV2SNYX.js.map → chunk-MUPWNSEJ.js.map} +0 -0
  640. /package/dist/{chunk-Y5TRG22C.js.map → chunk-NRXIECWC.js.map} +0 -0
  641. /package/dist/{chunk-GOE7G5JX.js.map → chunk-NWSAF6P5.js.map} +0 -0
  642. /package/dist/{chunk-DUM363VS.js.map → chunk-OFZQJNF6.js.map} +0 -0
  643. /package/dist/{chunk-CKN5QPEL.js.map → chunk-OMF7POEY.js.map} +0 -0
  644. /package/dist/{chunk-MVXKO2BD.js.map → chunk-OXD6ET34.js.map} +0 -0
  645. /package/dist/{chunk-47JUEVME.js.map → chunk-PALX6HWV.js.map} +0 -0
  646. /package/dist/{chunk-B6OGSG7I.js.map → chunk-PE3BLBDT.js.map} +0 -0
  647. /package/dist/{chunk-RVISSNVE.js.map → chunk-PMZKJOG6.js.map} +0 -0
  648. /package/dist/{chunk-CESAMXWX.js.map → chunk-PQUTMG3S.js.map} +0 -0
  649. /package/dist/{chunk-7VFCOKPG.js.map → chunk-PWBGODZU.js.map} +0 -0
  650. /package/dist/{chunk-MOPAXD2H.js.map → chunk-QCADUTYX.js.map} +0 -0
  651. /package/dist/{chunk-CT5FBO7E.js.map → chunk-RPOUJI25.js.map} +0 -0
  652. /package/dist/{chunk-WKHYOS72.js.map → chunk-RW4GFE56.js.map} +0 -0
  653. /package/dist/{chunk-FH4GO7HO.js.map → chunk-RYLVVDR7.js.map} +0 -0
  654. /package/dist/{chunk-QZRDCFHI.js.map → chunk-S66SBBFQ.js.map} +0 -0
  655. /package/dist/{chunk-CQJFIPAH.js.map → chunk-S7TNV2I7.js.map} +0 -0
  656. /package/dist/{chunk-ZBQSIGGR.js.map → chunk-SC773IMJ.js.map} +0 -0
  657. /package/dist/{chunk-FBJ2HK7A.js.map → chunk-SGPJ3YS2.js.map} +0 -0
  658. /package/dist/{chunk-A2EWJQXX.js.map → chunk-SM5QX6UK.js.map} +0 -0
  659. /package/dist/{chunk-RKZWCTXV.js.map → chunk-TAEKDMEF.js.map} +0 -0
  660. /package/dist/{chunk-6AVCAUGL.js.map → chunk-TASEV25T.js.map} +0 -0
  661. /package/dist/{chunk-3XOISKZC.js.map → chunk-TLGDPMUX.js.map} +0 -0
  662. /package/dist/{chunk-5IUW34PG.js.map → chunk-TY3QYPJ6.js.map} +0 -0
  663. /package/dist/{chunk-VQFR4EU4.js.map → chunk-U3JK5VJV.js.map} +0 -0
  664. /package/dist/{chunk-2AWMJO54.js.map → chunk-U42P3RMZ.js.map} +0 -0
  665. /package/dist/{chunk-GUU75DES.js.map → chunk-UEJTOPLW.js.map} +0 -0
  666. /package/dist/{chunk-OZOEWLGR.js.map → chunk-UT6JAORE.js.map} +0 -0
  667. /package/dist/{chunk-5TELOQA6.js.map → chunk-UTHPUINA.js.map} +0 -0
  668. /package/dist/{chunk-26RQ6JBR.js.map → chunk-VBVCNH6D.js.map} +0 -0
  669. /package/dist/{chunk-P646DND6.js.map → chunk-VCMQPCME.js.map} +0 -0
  670. /package/dist/{chunk-LV7FMIMM.js.map → chunk-VGUHAHHV.js.map} +0 -0
  671. /package/dist/{chunk-GYVXARCY.js.map → chunk-VIBPFVU4.js.map} +0 -0
  672. /package/dist/{chunk-KHPOKZ6Z.js.map → chunk-VMAC66JX.js.map} +0 -0
  673. /package/dist/{chunk-SHKRS6I5.js.map → chunk-VRPNETPK.js.map} +0 -0
  674. /package/dist/{chunk-6U4J6RVS.js.map → chunk-WCHW4XN7.js.map} +0 -0
  675. /package/dist/{chunk-CJH6QUQJ.js.map → chunk-WD3UXNJV.js.map} +0 -0
  676. /package/dist/{chunk-H5EVWF6L.js.map → chunk-WR67FJMX.js.map} +0 -0
  677. /package/dist/{chunk-XLIJ36RG.js.map → chunk-WRMQ7EX4.js.map} +0 -0
  678. /package/dist/{chunk-7KLCFJ5G.js.map → chunk-X4PPGXQG.js.map} +0 -0
  679. /package/dist/{chunk-ZE2JTVCQ.js.map → chunk-X5BMQXFD.js.map} +0 -0
  680. /package/dist/{chunk-UECU6LZI.js.map → chunk-XXRBOSWV.js.map} +0 -0
  681. /package/dist/{chunk-SPKAIDWX.js.map → chunk-XZEFCPBL.js.map} +0 -0
  682. /package/dist/{chunk-EZ5NYRHK.js.map → chunk-YL6N7QLA.js.map} +0 -0
  683. /package/dist/{chunk-VAIESMPY.js.map → chunk-YVBHGMKC.js.map} +0 -0
  684. /package/dist/{chunk-AR62NQXE.js.map → chunk-Z2S5VQG7.js.map} +0 -0
  685. /package/dist/{chunk-7UQJEADK.js.map → chunk-ZL2O4BYP.js.map} +0 -0
  686. /package/dist/{chunk-FOOITLHR.js.map → chunk-ZZHBT5WQ.js.map} +0 -0
  687. /package/dist/{chunk-X6VJQJYY.js.map → chunk-ZZWHKC6A.js.map} +0 -0
  688. /package/dist/{model-policy-picker-menu-XOPYY6YA.js.map → computer-viewer-S6TE6TN7.js.map} +0 -0
  689. /package/dist/{sandbox-files-LJCR437H.js.map → embedded-new-voice-ZDZPGX25.js.map} +0 -0
  690. /package/dist/{session-realtime-UISLBZ4A.js.map → embedded-voice-FKCUXSJO.js.map} +0 -0
  691. /package/dist/{fleet-decision-row-5UCJXTDP.js.map → fleet-decision-row-VCGWYJAV.js.map} +0 -0
  692. /package/dist/{latest-question-VGVNUGAU.js.map → latest-question-SINEV4U6.js.map} +0 -0
  693. /package/dist/{platform-activity-row-56XOVTRA.js.map → platform-activity-row-LU5WABI2.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/timeline-annotation-shared.ts"],"sourcesContent":["import type { TimelineAnnotationSource } from \"@opengeni/sdk\";\nimport { type OpenGeniText } from \"../messages/runtime\";\nimport { occurrenceOffsets } from \"../timeline/annotation-model\";\n\nexport {\n annotationDisplayOrdinal,\n annotationHasNote,\n matchingQuoteInSource,\n occurrenceOffsets,\n truncateAnnotationQuote,\n} from \"../timeline/annotation-model\";\n\nexport const ANNOTATION_CHROME_SELECTOR =\n \"[data-og-annotation-chrome], [data-og-annotation-badge], [data-og-annotation-popover]\";\n\nexport function sourceKindLabel(t: OpenGeniText, kind: TimelineAnnotationSource[\"kind\"]): string {\n switch (kind) {\n case \"user_message\":\n return t(\"timelineAnnotationShared.yourMessage\");\n case \"assistant_message\":\n return t(\"timelineAnnotationShared.assistant\");\n case \"tool_output\":\n return t(\"timelineAnnotationShared.toolOutput\");\n }\n}\n\nexport function annotationSourceLabel(t: OpenGeniText, source: TimelineAnnotationSource): string {\n return source.label?.trim() || sourceKindLabel(t, source.kind);\n}\n\nexport function cssEscapeAttribute(value: string): string {\n if (typeof CSS !== \"undefined\" && typeof CSS.escape === \"function\") return CSS.escape(value);\n return value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n}\n\nexport function isAnnotationChromeNode(node: Node | null): boolean {\n const element = node instanceof Element ? node : node?.parentElement;\n return Boolean(element?.closest(ANNOTATION_CHROME_SELECTOR));\n}\n\ntype AnnotatableSpan = {\n node: Text;\n start: number;\n length: number;\n};\n\nexport function annotatableText(root: HTMLElement): { text: string; spans: AnnotatableSpan[] } {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {\n acceptNode(node) {\n if (!(node instanceof Text) || node.data.length === 0) return NodeFilter.FILTER_REJECT;\n if (isAnnotationChromeNode(node)) return NodeFilter.FILTER_REJECT;\n return NodeFilter.FILTER_ACCEPT;\n },\n });\n const spans: AnnotatableSpan[] = [];\n let text = \"\";\n let current: Node | null;\n while ((current = walker.nextNode())) {\n if (!(current instanceof Text)) continue;\n spans.push({ node: current, start: text.length, length: current.data.length });\n text += current.data;\n }\n return { text, spans };\n}\n\nfunction pointAt(\n spans: AnnotatableSpan[],\n offset: number,\n stickEnd: boolean,\n): { node: Text; offset: number } | null {\n if (spans.length === 0) return null;\n for (let index = 0; index < spans.length; index++) {\n const span = spans[index]!;\n const local = offset - span.start;\n if (local < 0) continue;\n if (\n local < span.length ||\n (local === span.length && (stickEnd || index === spans.length - 1))\n ) {\n return { node: span.node, offset: local };\n }\n }\n const last = spans[spans.length - 1]!;\n return { node: last.node, offset: last.length };\n}\n\nexport function rangeFromOffsets(\n spans: AnnotatableSpan[],\n startOffset: number,\n endOffset: number,\n): Range | null {\n const start = pointAt(spans, startOffset, false);\n const end = pointAt(spans, endOffset, true);\n if (!start || !end) return null;\n const range = document.createRange();\n range.setStart(start.node, start.offset);\n range.setEnd(end.node, end.offset);\n return range.collapsed ? null : range;\n}\n\nexport function buildQuoteRange(\n sourceEl: HTMLElement,\n quote: string,\n occurrenceIndex = 0,\n): Range | null {\n if (!quote) return null;\n const { text, spans } = annotatableText(sourceEl);\n const offsets = occurrenceOffsets(text, quote);\n if (offsets.length === 0) return null;\n const start = offsets[Math.min(Math.max(0, occurrenceIndex), offsets.length - 1)]!;\n return rangeFromOffsets(spans, start, start + quote.length);\n}\n\nexport function quoteOccurrenceIndex(sourceEl: HTMLElement, range: Range, quote: string): number {\n try {\n const prefix = range.cloneRange();\n prefix.selectNodeContents(sourceEl);\n prefix.setEnd(range.startContainer, range.startOffset);\n return occurrenceOffsets(prefix.toString(), quote).length;\n } catch {\n return 0;\n }\n}\n\nexport function clipRangeToSource(range: Range, sourceEl: HTMLElement): Range | null {\n const startOk =\n sourceEl.contains(range.startContainer) && !isAnnotationChromeNode(range.startContainer);\n const endOk =\n sourceEl.contains(range.endContainer) && !isAnnotationChromeNode(range.endContainer);\n if (!startOk && !endOk) return null;\n const { spans } = annotatableText(sourceEl);\n if (spans.length === 0) return null;\n const next = range.cloneRange();\n const first = spans[0]!;\n const last = spans[spans.length - 1]!;\n if (!startOk) next.setStart(first.node, 0);\n if (!endOk) next.setEnd(last.node, last.node.data.length);\n return next.collapsed ? null : next;\n}\n\nexport function visibleClientRect(range: Range): DOMRect | null {\n try {\n const bounding = range.getBoundingClientRect();\n if (bounding.width > 0 || bounding.height > 0) return bounding;\n } catch {\n // jsdom ranges may omit layout geometry.\n }\n try {\n const rects = range.getClientRects();\n for (let index = 0; index < rects.length; index++) {\n const rect = rects.item(index);\n if (rect && (rect.width > 0 || rect.height > 0)) return rect;\n }\n } catch {\n // jsdom ranges may omit client rects.\n }\n return null;\n}\n\nexport function resolveAnnotationRevealRoot(from: Element | null | undefined): HTMLElement | null {\n const conversation = from?.closest(\"[data-og-conversation]\");\n if (conversation instanceof HTMLElement) {\n const nested = conversation.querySelector(\"[data-og-timeline-scroller]\");\n return nested instanceof HTMLElement ? nested : conversation;\n }\n const scroller = from?.closest(\"[data-og-timeline-scroller]\");\n return scroller instanceof HTMLElement ? scroller : null;\n}\n\nexport function revealLoadedAnnotationSource(\n source: TimelineAnnotationSource,\n root?: ParentNode | null,\n): boolean {\n if (typeof document === \"undefined\") return false;\n // An explicit null root means the caller already scoped the search and found\n // no owning timeline. Do not fall back to `document`, or a second mounted\n // timeline with the same event id would steal the reveal.\n if (root === null) return false;\n const element = (root ?? document).querySelector(\n `[data-og-annotation-source-key=\"${cssEscapeAttribute(source.eventId)}\"]`,\n );\n if (!(element instanceof HTMLElement)) return false;\n element.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\n element.animate?.(\n [\n {\n boxShadow: \"inset 0 0 0 2px color-mix(in oklch, var(--og-color-accent) 70%, transparent)\",\n backgroundColor: \"color-mix(in oklch, var(--og-color-accent) 14%, transparent)\",\n },\n {\n boxShadow: \"inset 0 0 0 2px transparent\",\n backgroundColor: \"transparent\",\n },\n ],\n { duration: 1400, easing: \"ease-out\" },\n );\n return true;\n}\n"],"mappings":"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","names":[]}
@@ -1,18 +1,20 @@
1
1
  "use client";
2
+ import {
3
+ annotationSourceLabel,
4
+ revealLoadedAnnotationSource
5
+ } from "./chunk-H3LIIAGE.js";
2
6
  import {
3
7
  annotationNoteNeedsDisclosure
4
8
  } from "./chunk-LJUMYUBO.js";
5
9
  import {
6
- annotationSourceLabel,
7
- revealLoadedAnnotationSource,
8
10
  truncateAnnotationQuote
9
- } from "./chunk-DN3TKURW.js";
11
+ } from "./chunk-OB3YGXHQ.js";
10
12
  import {
11
13
  cn
12
14
  } from "./chunk-TXS65BB2.js";
13
15
  import {
14
16
  useOpenGeniText
15
- } from "./chunk-G7VLL3PG.js";
17
+ } from "./chunk-F2YABPRJ.js";
16
18
 
17
19
  // src/components/timeline-annotation-chrome.tsx
18
20
  import { useLayoutEffect, useRef, useState } from "react";
@@ -192,4 +194,4 @@ export {
192
194
  AnnotationNotePreview,
193
195
  AnnotationNoteField
194
196
  };
195
- //# sourceMappingURL=chunk-NPLEQMNM.js.map
197
+ //# sourceMappingURL=chunk-H5GWAG4I.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/timeline-annotation-chrome.tsx","../src/components/timeline-annotation-reveal-context.ts"],"sourcesContent":["import type {\n DraftTimelineAnnotation,\n TimelineAnnotation,\n TimelineAnnotationSource,\n} from \"@opengeni/sdk\";\nimport { useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { annotationNoteNeedsDisclosure } from \"./timeline-annotation-layout\";\nimport { useTimelineAnnotationSourceRoot } from \"./timeline-annotation-reveal-context\";\nimport {\n annotationSourceLabel,\n revealLoadedAnnotationSource,\n truncateAnnotationQuote,\n} from \"./timeline-annotation-shared\";\nimport { useOpenGeniText } from \"../messages/runtime\";\n\nexport type TimelineAnnotationLike = DraftTimelineAnnotation | TimelineAnnotation;\n\nconst NOTE_MAX_HEIGHT_PX = 160;\n\nfunction autosizeNote(textarea: HTMLTextAreaElement | null): void {\n if (!textarea) return;\n textarea.style.height = \"auto\";\n textarea.style.height = `${Math.min(Math.max(textarea.scrollHeight, 32), NOTE_MAX_HEIGHT_PX)}px`;\n}\n\nfunction quotePreview(quote: string): { text: string; multiline: boolean } {\n const trimmed = quote.trim();\n const multiline = trimmed.includes(\"\\n\");\n return {\n text: multiline ? trimmed : trimmed.replace(/\\s+/g, \" \"),\n multiline,\n };\n}\n\nexport function AnnotationQuoteSourceButton({\n annotation,\n lines = 2,\n onRevealSource,\n onUnavailable,\n}: {\n annotation: TimelineAnnotationLike;\n lines?: 2 | 3;\n onRevealSource?: ((source: TimelineAnnotationSource) => boolean) | undefined;\n onUnavailable: (id: string | null) => void;\n}) {\n const t = useOpenGeniText();\n const preview = quotePreview(annotation.quote);\n const sourceLabel = annotationSourceLabel(t, annotation.source);\n const sourceRoot = useTimelineAnnotationSourceRoot();\n return (\n <button\n type=\"button\"\n title={annotation.quote}\n aria-label={t(\"timelineAnnotationChrome.viewSourcelabelSourceTruncateannotationquote\", {\n sourceLabel,\n truncateAnnotationQuote: truncateAnnotationQuote(annotation.quote, 88),\n })}\n className=\"block w-full min-w-0 rounded-sm border-0 bg-transparent text-left text-og-sm leading-5 text-og-fg-muted outline-hidden transition-colors hover:text-og-fg focus-visible:ring-2 focus-visible:ring-og-accent pointer-coarse:min-h-[44px]\"\n onClick={() => {\n const revealed =\n onRevealSource?.(annotation.source) ??\n (sourceRoot\n ? revealLoadedAnnotationSource(annotation.source, sourceRoot.current)\n : revealLoadedAnnotationSource(annotation.source));\n onUnavailable(revealed ? null : annotation.id);\n }}\n >\n <span\n className={cn(\n \"block min-w-0 max-w-full break-words\",\n preview.multiline ? \"whitespace-pre-wrap\" : \"whitespace-normal\",\n lines === 3 ? \"line-clamp-3\" : \"line-clamp-2\",\n )}\n >\n {preview.text}\n </span>\n <span className=\"sr-only\"> {t(\"timelineAnnotationChrome.viewSource\")}</span>\n </button>\n );\n}\n\nexport function AnnotationAccentRow({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string | undefined;\n}) {\n return (\n <div className={cn(\"flex gap-2.5\", className)}>\n <div aria-hidden=\"true\" className=\"w-0.5 shrink-0 rounded-full bg-og-accent/55\" />\n <div className=\"min-w-0 flex-1\">{children}</div>\n </div>\n );\n}\n\nexport function AnnotationNotePreview({\n note,\n annotationId,\n ordinal,\n className,\n}: {\n note: string;\n annotationId: string;\n ordinal: number;\n className?: string | undefined;\n}) {\n const t = useOpenGeniText();\n const [expanded, setExpanded] = useState(false);\n if (!note) return null;\n const collapsible = annotationNoteNeedsDisclosure(note);\n const contentId = `og-annotation-note-${annotationId}`;\n return (\n <div className={className}>\n <p\n id={contentId}\n data-og-annotation-note=\"\"\n data-og-annotation-note-expanded={expanded ? \"true\" : \"false\"}\n className={cn(\n \"mt-0.5 break-words whitespace-pre-wrap text-og-sm leading-5 text-og-fg\",\n !expanded && \"line-clamp-4\",\n )}\n >\n {note}\n </p>\n {collapsible ? (\n <button\n type=\"button\"\n className=\"mt-0.5 inline-flex min-h-7 items-center rounded-og-sm px-1 text-og-xs font-medium text-og-fg-muted outline-hidden hover:text-og-fg focus-visible:ring-2 focus-visible:ring-og-accent pointer-coarse:min-h-11\"\n aria-expanded={expanded}\n aria-controls={contentId}\n aria-label={\n expanded\n ? t(\"timelineAnnotationChrome.showLessAnnotationOrdinal\", { ordinal })\n : t(\"timelineAnnotationChrome.showMoreAnnotationOrdinal\", { ordinal })\n }\n onClick={() => setExpanded((current) => !current)}\n >\n {expanded\n ? t(\"timelineAnnotationChrome.showLess\")\n : t(\"timelineAnnotationChrome.showMore\")}\n </button>\n ) : null}\n </div>\n );\n}\n\nexport function AnnotationNoteField({\n annotation,\n inputRef,\n onUpdate,\n onCommit,\n}: {\n annotation: TimelineAnnotationLike;\n inputRef?: ((node: HTMLTextAreaElement | null) => void) | undefined;\n onUpdate: (id: string, note: string) => void;\n onCommit?: (() => void) | undefined;\n}) {\n const t = useOpenGeniText();\n const localRef = useRef<HTMLTextAreaElement | null>(null);\n const setRef = (node: HTMLTextAreaElement | null) => {\n localRef.current = node;\n inputRef?.(node);\n };\n\n useLayoutEffect(() => {\n const textarea = localRef.current;\n if (!textarea) return;\n // Ref callbacks can reattach on every scroll-driven parent render. Reflowing\n // unchanged notes there interrupts native scrolling, particularly in WebKit.\n autosizeNote(textarea);\n if (typeof ResizeObserver === \"undefined\") return;\n let width = textarea.getBoundingClientRect().width;\n const observer = new ResizeObserver(() => {\n const nextWidth = textarea.getBoundingClientRect().width;\n if (nextWidth === width) return;\n width = nextWidth;\n autosizeNote(textarea);\n });\n observer.observe(textarea);\n return () => observer.disconnect();\n }, [annotation.note]);\n\n return (\n <textarea\n ref={setRef}\n value={annotation.note}\n rows={1}\n maxLength={2048}\n placeholder={t(\"timelineAnnotationChrome.addANote\")}\n aria-label={t(\"timelineAnnotationChrome.note\")}\n className=\"mt-0.5 max-h-40 min-h-8 w-full resize-none overflow-y-auto break-words border-0 bg-transparent px-0 py-1 text-og-sm leading-5 text-og-fg outline-hidden placeholder:text-og-fg-subtle focus-visible:ring-0\"\n onInput={(event) => {\n autosizeNote(event.currentTarget);\n onUpdate(annotation.id, event.currentTarget.value);\n }}\n onKeyDown={(event) => {\n if (event.key !== \"Enter\" || event.shiftKey || event.nativeEvent.isComposing) return;\n event.preventDefault();\n event.stopPropagation();\n if (event.currentTarget.value.trim().length === 0) return;\n onCommit?.();\n }}\n />\n );\n}\n","import { createContext, useContext, type RefObject } from \"react\";\n\n/** Owning timeline scroller for quote-source navigation. */\nexport const TimelineAnnotationSourceRootContext =\n createContext<RefObject<HTMLElement | null> | null>(null);\n\nexport function useTimelineAnnotationSourceRoot(): RefObject<HTMLElement | null> | null {\n return useContext(TimelineAnnotationSourceRootContext);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/components/timeline-annotation-chrome.tsx","../src/components/timeline-annotation-reveal-context.ts"],"sourcesContent":["import type {\n DraftTimelineAnnotation,\n TimelineAnnotation,\n TimelineAnnotationSource,\n} from \"@opengeni/sdk\";\nimport { useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { annotationNoteNeedsDisclosure } from \"./timeline-annotation-layout\";\nimport { useTimelineAnnotationSourceRoot } from \"./timeline-annotation-reveal-context\";\nimport {\n annotationSourceLabel,\n revealLoadedAnnotationSource,\n truncateAnnotationQuote,\n} from \"./timeline-annotation-shared\";\nimport { useOpenGeniText } from \"../messages/runtime\";\n\nexport type TimelineAnnotationLike = DraftTimelineAnnotation | TimelineAnnotation;\n\nconst NOTE_MAX_HEIGHT_PX = 160;\n\nfunction autosizeNote(textarea: HTMLTextAreaElement | null): void {\n if (!textarea) return;\n textarea.style.height = \"auto\";\n textarea.style.height = `${Math.min(Math.max(textarea.scrollHeight, 32), NOTE_MAX_HEIGHT_PX)}px`;\n}\n\nfunction quotePreview(quote: string): { text: string; multiline: boolean } {\n const trimmed = quote.trim();\n const multiline = trimmed.includes(\"\\n\");\n return {\n text: multiline ? trimmed : trimmed.replace(/\\s+/g, \" \"),\n multiline,\n };\n}\n\nexport function AnnotationQuoteSourceButton({\n annotation,\n lines = 2,\n onRevealSource,\n onUnavailable,\n}: {\n annotation: TimelineAnnotationLike;\n lines?: 2 | 3;\n onRevealSource?: ((source: TimelineAnnotationSource) => boolean) | undefined;\n onUnavailable: (id: string | null) => void;\n}) {\n const t = useOpenGeniText();\n const preview = quotePreview(annotation.quote);\n const sourceLabel = annotationSourceLabel(t, annotation.source);\n const sourceRoot = useTimelineAnnotationSourceRoot();\n return (\n <button\n type=\"button\"\n title={annotation.quote}\n aria-label={t(\"timelineAnnotationChrome.viewSourcelabelSourceTruncateannotationquote\", {\n sourceLabel,\n truncateAnnotationQuote: truncateAnnotationQuote(annotation.quote, 88),\n })}\n className=\"block w-full min-w-0 rounded-sm border-0 bg-transparent text-left text-og-sm leading-5 text-og-fg-muted outline-hidden transition-colors hover:text-og-fg focus-visible:ring-2 focus-visible:ring-og-accent pointer-coarse:min-h-[44px]\"\n onClick={() => {\n const revealed =\n onRevealSource?.(annotation.source) ??\n (sourceRoot\n ? revealLoadedAnnotationSource(annotation.source, sourceRoot.current)\n : revealLoadedAnnotationSource(annotation.source));\n onUnavailable(revealed ? null : annotation.id);\n }}\n >\n <span\n className={cn(\n \"block min-w-0 max-w-full break-words\",\n preview.multiline ? \"whitespace-pre-wrap\" : \"whitespace-normal\",\n lines === 3 ? \"line-clamp-3\" : \"line-clamp-2\",\n )}\n >\n {preview.text}\n </span>\n <span className=\"sr-only\"> {t(\"timelineAnnotationChrome.viewSource\")}</span>\n </button>\n );\n}\n\nexport function AnnotationAccentRow({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string | undefined;\n}) {\n return (\n <div className={cn(\"flex gap-2.5\", className)}>\n <div aria-hidden=\"true\" className=\"w-0.5 shrink-0 rounded-full bg-og-accent/55\" />\n <div className=\"min-w-0 flex-1\">{children}</div>\n </div>\n );\n}\n\nexport function AnnotationNotePreview({\n note,\n annotationId,\n ordinal,\n className,\n}: {\n note: string;\n annotationId: string;\n ordinal: number;\n className?: string | undefined;\n}) {\n const t = useOpenGeniText();\n const [expanded, setExpanded] = useState(false);\n if (!note) return null;\n const collapsible = annotationNoteNeedsDisclosure(note);\n const contentId = `og-annotation-note-${annotationId}`;\n return (\n <div className={className}>\n <p\n id={contentId}\n data-og-annotation-note=\"\"\n data-og-annotation-note-expanded={expanded ? \"true\" : \"false\"}\n className={cn(\n \"mt-0.5 break-words whitespace-pre-wrap text-og-sm leading-5 text-og-fg\",\n !expanded && \"line-clamp-4\",\n )}\n >\n {note}\n </p>\n {collapsible ? (\n <button\n type=\"button\"\n className=\"mt-0.5 inline-flex min-h-7 items-center rounded-og-sm px-1 text-og-xs font-medium text-og-fg-muted outline-hidden hover:text-og-fg focus-visible:ring-2 focus-visible:ring-og-accent pointer-coarse:min-h-11\"\n aria-expanded={expanded}\n aria-controls={contentId}\n aria-label={\n expanded\n ? t(\"timelineAnnotationChrome.showLessAnnotationOrdinal\", { ordinal })\n : t(\"timelineAnnotationChrome.showMoreAnnotationOrdinal\", { ordinal })\n }\n onClick={() => setExpanded((current) => !current)}\n >\n {expanded\n ? t(\"timelineAnnotationChrome.showLess\")\n : t(\"timelineAnnotationChrome.showMore\")}\n </button>\n ) : null}\n </div>\n );\n}\n\nexport function AnnotationNoteField({\n annotation,\n inputRef,\n onUpdate,\n onCommit,\n}: {\n annotation: TimelineAnnotationLike;\n inputRef?: ((node: HTMLTextAreaElement | null) => void) | undefined;\n onUpdate: (id: string, note: string) => void;\n onCommit?: (() => void) | undefined;\n}) {\n const t = useOpenGeniText();\n const localRef = useRef<HTMLTextAreaElement | null>(null);\n const setRef = (node: HTMLTextAreaElement | null) => {\n localRef.current = node;\n inputRef?.(node);\n };\n\n useLayoutEffect(() => {\n const textarea = localRef.current;\n if (!textarea) return;\n // Ref callbacks can reattach on every scroll-driven parent render. Reflowing\n // unchanged notes there interrupts native scrolling, particularly in WebKit.\n autosizeNote(textarea);\n if (typeof ResizeObserver === \"undefined\") return;\n let width = textarea.getBoundingClientRect().width;\n const observer = new ResizeObserver(() => {\n const nextWidth = textarea.getBoundingClientRect().width;\n if (nextWidth === width) return;\n width = nextWidth;\n autosizeNote(textarea);\n });\n observer.observe(textarea);\n return () => observer.disconnect();\n }, [annotation.note]);\n\n return (\n <textarea\n ref={setRef}\n value={annotation.note}\n rows={1}\n maxLength={2048}\n placeholder={t(\"timelineAnnotationChrome.addANote\")}\n aria-label={t(\"timelineAnnotationChrome.note\")}\n className=\"mt-0.5 max-h-40 min-h-8 w-full resize-none overflow-y-auto break-words border-0 bg-transparent px-0 py-1 text-og-sm leading-5 text-og-fg outline-hidden placeholder:text-og-fg-subtle focus-visible:ring-0\"\n onInput={(event) => {\n autosizeNote(event.currentTarget);\n onUpdate(annotation.id, event.currentTarget.value);\n }}\n onKeyDown={(event) => {\n if (event.key !== \"Enter\" || event.shiftKey || event.nativeEvent.isComposing) return;\n event.preventDefault();\n event.stopPropagation();\n if (event.currentTarget.value.trim().length === 0) return;\n onCommit?.();\n }}\n />\n );\n}\n","import { createContext, useContext, type RefObject } from \"react\";\n\n/** Owning timeline scroller for quote-source navigation. */\nexport const TimelineAnnotationSourceRootContext =\n createContext<RefObject<HTMLElement | null> | null>(null);\n\nexport function useTimelineAnnotationSourceRoot(): RefObject<HTMLElement | null> | null {\n return useContext(TimelineAnnotationSourceRootContext);\n}\n"],"mappings":"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","names":[]}
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-CUUJROYT.js";
6
6
  import {
7
7
  SessionCapabilityFrame
8
- } from "./chunk-ZA6YD2LW.js";
8
+ } from "./chunk-57SYK776.js";
9
9
  import {
10
10
  useOpenGeniText
11
- } from "./chunk-G7VLL3PG.js";
11
+ } from "./chunk-F2YABPRJ.js";
12
12
 
13
13
  // src/hooks/use-connect.ts
14
14
  import { useMemo, useSyncExternalStore } from "react";
@@ -549,4 +549,4 @@ export {
549
549
  SessionMcpCapabilityCard,
550
550
  McpConnectionCard
551
551
  };
552
- //# sourceMappingURL=chunk-OJPUVUB6.js.map
552
+ //# sourceMappingURL=chunk-HAOZCLLA.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-Z63GB7JI.js";
5
5
  import {
6
6
  BillingClassMark
7
- } from "./chunk-CMUXJHGH.js";
7
+ } from "./chunk-JRSCWQMC.js";
8
8
 
9
9
  // src/app/components/billing-class-mark.tsx
10
10
  import { jsx } from "react/jsx-runtime";
@@ -30,4 +30,4 @@ export {
30
30
  openGeniGroupPresentation,
31
31
  BillingClassMark2 as BillingClassMark
32
32
  };
33
- //# sourceMappingURL=chunk-ZBHDGAYL.js.map
33
+ //# sourceMappingURL=chunk-HEFE4OZJ.js.map
@@ -8,7 +8,7 @@ import {
8
8
  DropdownMenuSub,
9
9
  DropdownMenuSubContent,
10
10
  DropdownMenuSubTrigger
11
- } from "./chunk-MOF3XSUM.js";
11
+ } from "./chunk-TREHTIBD.js";
12
12
 
13
13
  // src/app/components/rail/session-browse-order-controls.tsx
14
14
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -107,4 +107,4 @@ function SessionBrowseOrderControls({
107
107
  export {
108
108
  SessionBrowseOrderControls
109
109
  };
110
- //# sourceMappingURL=chunk-WTG34JVA.js.map
110
+ //# sourceMappingURL=chunk-HI75UTI6.js.map
@@ -4,10 +4,18 @@ import {
4
4
  } from "./chunk-TSQCKC34.js";
5
5
  import {
6
6
  SegmentedControl
7
- } from "./chunk-SWWYYGQO.js";
7
+ } from "./chunk-325C2TCI.js";
8
8
  import {
9
- FormDialog
10
- } from "./chunk-MRXOGI3O.js";
9
+ DropdownMenu,
10
+ DropdownMenuContent,
11
+ DropdownMenuItem,
12
+ DropdownMenuSeparator,
13
+ DropdownMenuTrigger
14
+ } from "./chunk-TREHTIBD.js";
15
+ import {
16
+ Field,
17
+ FieldStack
18
+ } from "./chunk-XNTW77T6.js";
11
19
  import {
12
20
  toast
13
21
  } from "./chunk-YG6NARQY.js";
@@ -15,16 +23,8 @@ import {
15
23
  useAppContext
16
24
  } from "./chunk-W6KAUGXO.js";
17
25
  import {
18
- Field,
19
- FieldStack
20
- } from "./chunk-XNTW77T6.js";
21
- import {
22
- DropdownMenu,
23
- DropdownMenuContent,
24
- DropdownMenuItem,
25
- DropdownMenuSeparator,
26
- DropdownMenuTrigger
27
- } from "./chunk-MOF3XSUM.js";
26
+ FormDialog
27
+ } from "./chunk-77CUDSHG.js";
28
28
 
29
29
  // src/app/components/session/session-admin-access.tsx
30
30
  import { ShieldCheckIcon } from "lucide-react";
@@ -236,4 +236,4 @@ export {
236
236
  SessionAdminAccessIndicator,
237
237
  GrantSessionAdminAccessDialog
238
238
  };
239
- //# sourceMappingURL=chunk-OMBIG3NC.js.map
239
+ //# sourceMappingURL=chunk-HM633ROV.js.map
@@ -10,13 +10,13 @@ import {
10
10
  ThisComputerSetup,
11
11
  useThisComputer,
12
12
  useThisComputerSetupOpen
13
- } from "./chunk-5TELOQA6.js";
13
+ } from "./chunk-UTHPUINA.js";
14
14
  import {
15
15
  ThisComputerOffer,
16
16
  ThisComputerPanel,
17
17
  defaultThisComputerLabels,
18
18
  useThisComputerOfferDismissed
19
- } from "./chunk-D2SR3TEB.js";
19
+ } from "./chunk-J243WGUA.js";
20
20
 
21
21
  // src/app/components/desktop/this-computer.tsx
22
22
  import { createContext, useContext, useMemo } from "react";
@@ -123,4 +123,4 @@ export {
123
123
  DesktopThisComputerPanel,
124
124
  insideDesktopApp
125
125
  };
126
- //# sourceMappingURL=chunk-WDFZWSKD.js.map
126
+ //# sourceMappingURL=chunk-HRIP4M6H.js.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-LT2CPZRB.js";
6
6
  import {
7
7
  MarkdownText
8
- } from "./chunk-RKZWCTXV.js";
8
+ } from "./chunk-TAEKDMEF.js";
9
9
  import {
10
10
  formatTimestamp
11
11
  } from "./chunk-5TLEWXAB.js";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-HMU5IELG.js";
15
15
  import {
16
16
  UserMessageBody
17
- } from "./chunk-UECU6LZI.js";
17
+ } from "./chunk-XXRBOSWV.js";
18
18
 
19
19
  // src/app/components/session/banners.tsx
20
20
  import { AlertTriangleIcon, ArrowLeftIcon, AudioLinesIcon, TerminalIcon } from "lucide-react";
@@ -109,4 +109,4 @@ export {
109
109
  TerminalSessionArchive,
110
110
  UserMessageBody2 as UserMessageBody
111
111
  };
112
- //# sourceMappingURL=chunk-A2BCW6CQ.js.map
112
+ //# sourceMappingURL=chunk-HU2DRFFI.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-O2LGEYG4.js";
5
5
  import {
6
6
  DropdownMenuItem
7
- } from "./chunk-MOF3XSUM.js";
7
+ } from "./chunk-TREHTIBD.js";
8
8
 
9
9
  // src/app/components/capabilities/connection-account-picker.tsx
10
10
  import { connectionAccountIdentityLabel } from "@opengeni/contracts/connection-account-label";
@@ -108,4 +108,4 @@ export {
108
108
  connectionAccountLabel,
109
109
  ConnectionAccountPicker
110
110
  };
111
- //# sourceMappingURL=chunk-PO35PBAB.js.map
111
+ //# sourceMappingURL=chunk-HVH7FFJH.js.map
@@ -6,7 +6,7 @@ import {
6
6
  annotatableText,
7
7
  rangeFromOffsets,
8
8
  visibleClientRect
9
- } from "./chunk-DN3TKURW.js";
9
+ } from "./chunk-H3LIIAGE.js";
10
10
  import {
11
11
  chainLinkRenderers,
12
12
  chainLinkResolvers,
@@ -16,32 +16,32 @@ import {
16
16
  import {
17
17
  useToolDetails
18
18
  } from "./chunk-RZLBICR5.js";
19
- import {
20
- secretReferenceLabel
21
- } from "./chunk-DNJ23AWQ.js";
22
- import {
23
- paintPreviewLoading
24
- } from "./chunk-UNJPZGNK.js";
25
- import {
26
- copyTextToClipboard,
27
- tableElementToTsv
28
- } from "./chunk-PEHTX3V7.js";
29
19
  import {
30
20
  Tooltip,
31
21
  TooltipContent,
32
22
  TooltipProvider,
33
23
  TooltipTrigger,
34
24
  useLightboxOptional
35
- } from "./chunk-Y5TRG22C.js";
25
+ } from "./chunk-NRXIECWC.js";
26
+ import {
27
+ copyTextToClipboard,
28
+ tableElementToTsv
29
+ } from "./chunk-PEHTX3V7.js";
30
+ import {
31
+ paintPreviewLoading
32
+ } from "./chunk-UNJPZGNK.js";
33
+ import {
34
+ secretReferenceLabel
35
+ } from "./chunk-DNJ23AWQ.js";
36
36
  import {
37
37
  stringifyPayload
38
- } from "./chunk-UYSZKDQY.js";
38
+ } from "./chunk-MK54JLE4.js";
39
39
  import {
40
40
  cn
41
41
  } from "./chunk-TXS65BB2.js";
42
42
  import {
43
43
  useOpenGeniText
44
- } from "./chunk-G7VLL3PG.js";
44
+ } from "./chunk-F2YABPRJ.js";
45
45
 
46
46
  // src/secrets-ui.tsx
47
47
  import { createContext, useContext } from "react";
@@ -2014,13 +2014,13 @@ var Markdown = memo2(function SearchableMarkdown(props) {
2014
2014
  export {
2015
2015
  SecretsUiProvider,
2016
2016
  useSecretsUi,
2017
+ SecretRefChip,
2018
+ SecretRefText,
2019
+ SecretAnswerChip,
2017
2020
  TimelineSearchRevealContext,
2018
2021
  useTimelineSearchReveal,
2019
2022
  isTimelineSearchTarget,
2020
2023
  useTimelineSearchNavigation,
2021
- SecretRefChip,
2022
- SecretRefText,
2023
- SecretAnswerChip,
2024
2024
  DisclosureDefaultsProvider,
2025
2025
  useForcedDefaultOpen,
2026
2026
  ToolOutputPreviewProvider,
@@ -2042,4 +2042,4 @@ export {
2042
2042
  retainedImageId,
2043
2043
  Markdown
2044
2044
  };
2045
- //# sourceMappingURL=chunk-EG7KNUF7.js.map
2045
+ //# sourceMappingURL=chunk-HYTXTKST.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-6D35DJUK.js";
8
8
  import {
9
9
  DeferredChatMedia
10
- } from "./chunk-62OAZ4LO.js";
10
+ } from "./chunk-6C5GQQMC.js";
11
11
  import {
12
12
  Link
13
13
  } from "./chunk-MYNUBDU7.js";
@@ -19,16 +19,16 @@ import {
19
19
  } from "./chunk-HMU5IELG.js";
20
20
  import {
21
21
  createWorkspaceRetainedArtifactLoader
22
- } from "./chunk-N2BEUKXT.js";
22
+ } from "./chunk-5FBZDEHE.js";
23
23
  import {
24
24
  useRetainedImageObjectUrl
25
- } from "./chunk-BGZIMIUU.js";
25
+ } from "./chunk-BCUYWOQU.js";
26
+ import {
27
+ useLightboxOptional
28
+ } from "./chunk-NRXIECWC.js";
26
29
  import {
27
30
  isRetainedImageContentType
28
31
  } from "./chunk-ANHUMDJX.js";
29
- import {
30
- useLightboxOptional
31
- } from "./chunk-Y5TRG22C.js";
32
32
 
33
33
  // src/app/components/artifacts/inline-chat-image.tsx
34
34
  import { useEffect, useMemo, useState } from "react";
@@ -193,4 +193,4 @@ function LoadedImage({
193
193
  export {
194
194
  InlineChatImage
195
195
  };
196
- //# sourceMappingURL=chunk-TFHG75A4.js.map
196
+ //# sourceMappingURL=chunk-I4XMDFUJ.js.map
@@ -5,27 +5,27 @@ import {
5
5
  import {
6
6
  SettingRow
7
7
  } from "./chunk-XSOPQZGH.js";
8
- import {
9
- Notice
10
- } from "./chunk-WLEDGIVS.js";
11
- import {
12
- hasWorkspacePermission
13
- } from "./chunk-OWQBERKV.js";
14
8
  import {
15
9
  toast
16
10
  } from "./chunk-YG6NARQY.js";
17
11
  import {
18
- apiErrorFacts
19
- } from "./chunk-L4OF77LE.js";
12
+ hasWorkspacePermission
13
+ } from "./chunk-OWQBERKV.js";
20
14
  import {
21
15
  useAppContext
22
16
  } from "./chunk-W6KAUGXO.js";
23
17
  import {
24
18
  RelativeTime
25
19
  } from "./chunk-XG57V2BN.js";
20
+ import {
21
+ Notice
22
+ } from "./chunk-WLEDGIVS.js";
26
23
  import {
27
24
  Button
28
25
  } from "./chunk-HMU5IELG.js";
26
+ import {
27
+ apiErrorFacts
28
+ } from "./chunk-L4OF77LE.js";
29
29
 
30
30
  // src/app/components/session/session-retention.tsx
31
31
  import { ArchiveIcon, PlusIcon } from "lucide-react";
@@ -150,4 +150,4 @@ export {
150
150
  ReadOnlySessionNotice,
151
151
  KeepActiveSetting
152
152
  };
153
- //# sourceMappingURL=chunk-IZHVZZQA.js.map
153
+ //# sourceMappingURL=chunk-ICAUYWSL.js.map