@opengeni/react 4.4.1 → 4.5.1-canary.39832248373001

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 (654) hide show
  1. package/dist/app/app-state.js +15 -15
  2. package/dist/app/components/Composer.js +19 -19
  3. package/dist/app/components/artifacts/artifact-browse-controls.js +3 -3
  4. package/dist/app/components/artifacts/artifact-library.js +9 -9
  5. package/dist/app/components/artifacts/artifact-page-chrome.js +2 -2
  6. package/dist/app/components/artifacts/chat-interactive-block.js +14 -14
  7. package/dist/app/components/artifacts/inline-chat-image.js +22 -21
  8. package/dist/app/components/artifacts/retained-file-preview.js +24 -23
  9. package/dist/app/components/artifacts/retained-text-preview.js +2 -2
  10. package/dist/app/components/artifacts/site-audience.js +2 -2
  11. package/dist/app/components/artifacts/site-conversations.js +14 -13
  12. package/dist/app/components/artifacts/site-data.js +4 -4
  13. package/dist/app/components/artifacts/site-publishing.js +20 -20
  14. package/dist/app/components/artifacts/site-settings.js +25 -25
  15. package/dist/app/components/billing-class-mark.js +3 -3
  16. package/dist/app/components/capabilities/capability-detail-sheet.js +6 -6
  17. package/dist/app/components/capabilities/capability-logo-source.js +8 -8
  18. package/dist/app/components/capabilities/connector-tool-permissions.js +3 -3
  19. package/dist/app/components/capabilities/native-connect-setup.js +8 -8
  20. package/dist/app/components/capabilities/prepared-mcp-setup-card.js +10 -10
  21. package/dist/app/components/capabilities/session-capability-card.js +43 -41
  22. package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
  23. package/dist/app/components/capabilities/session-chrome-card.js +20 -18
  24. package/dist/app/components/capabilities/session-custom-mcp-card.js +11 -11
  25. package/dist/app/components/capabilities/session-github-card.js +13 -13
  26. package/dist/app/components/capabilities/session-machine-card.js +19 -17
  27. package/dist/app/components/command-menu/chat-status.js +16 -15
  28. package/dist/app/components/command-menu/chat-switcher.js +19 -18
  29. package/dist/app/components/command-menu/chat-switcher.js.map +1 -1
  30. package/dist/app/components/command-menu/command-menu.js +29 -107
  31. package/dist/app/components/command-menu/command-menu.js.map +1 -1
  32. package/dist/app/components/command-menu/shortcut-sheet.js +9 -9
  33. package/dist/app/components/composer-mobile-plus-panel.js +9 -9
  34. package/dist/app/components/composer-mobile-plus.js +1 -1
  35. package/dist/app/components/credit-required-gate.js +1 -1
  36. package/dist/app/components/credit-required-prompt.js +5 -5
  37. package/dist/app/components/credits/coupon-redeem.js +2 -2
  38. package/dist/app/components/credits/credit-refusal-notice.js +2 -2
  39. package/dist/app/components/desktop/app-shots.js +7 -7
  40. package/dist/app/components/desktop/this-computer.js +4 -4
  41. package/dist/app/components/feedback.js +3 -3
  42. package/dist/app/components/follow-up-repository-menu-body.js +2 -2
  43. package/dist/app/components/follow-up-repository-picker.js +1 -1
  44. package/dist/app/components/github-app-connect-launcher.js +2 -2
  45. package/dist/app/components/in-app-help-link.js +2 -2
  46. package/dist/app/components/machines/connect-machine-dialog.js +3 -3
  47. package/dist/app/components/markdown.js +5 -5
  48. package/dist/app/components/models/models-ui.js +3 -3
  49. package/dist/app/components/new-session-starters.js +2 -2
  50. package/dist/app/components/pickers.js +6 -6
  51. package/dist/app/components/rail/rail-context.js +3 -3
  52. package/dist/app/components/rail/rail-sections.js +51 -48
  53. package/dist/app/components/rail/session-header.js +29 -28
  54. package/dist/app/components/rail/session-list.js +50 -47
  55. package/dist/app/components/rail/session-row-content.d.ts +6 -2
  56. package/dist/app/components/rail/session-row-content.js +1 -1
  57. package/dist/app/components/rail/session-row-hover-details.js +17 -16
  58. package/dist/app/components/rail/session-shell.js +78 -75
  59. package/dist/app/components/rail/site-session-group-heading.d.ts +7 -1
  60. package/dist/app/components/rail/site-session-group-heading.js +20 -3
  61. package/dist/app/components/repository-picker.js +2 -2
  62. package/dist/app/components/session/agent-configuration-panel.js +18 -18
  63. package/dist/app/components/session/artifact-link-boundary.js +2 -2
  64. package/dist/app/components/session/artifact-session-page.js +5 -5
  65. package/dist/app/components/session/banners.js +7 -7
  66. package/dist/app/components/session/codex-account-indicator.js +10 -10
  67. package/dist/app/components/session/editable-artifacts-workspace.js +24 -24
  68. package/dist/app/components/session/failed-session-banner.js +6 -6
  69. package/dist/app/components/session/human-input.js +41 -37
  70. package/dist/app/components/session/inspector.js +61 -57
  71. package/dist/app/components/session/inspector.js.map +1 -1
  72. package/dist/app/components/session/message-actions.js +3 -3
  73. package/dist/app/components/session/message-resource-attachments.js +12 -11
  74. package/dist/app/components/session/message-resource-attachments.js.map +1 -1
  75. package/dist/app/components/session/model-account-indicator.js +9 -9
  76. package/dist/app/components/session/model-recovery-notice.js +3 -3
  77. package/dist/app/components/session/new-session-settings-menu.js +8 -8
  78. package/dist/app/components/session/sandbox-switcher.js +12 -12
  79. package/dist/app/components/session/sandbox-workspace.js +58 -54
  80. package/dist/app/components/session/search-markdown-highlight.js +6 -6
  81. package/dist/app/components/session/search-results-view.js +7 -7
  82. package/dist/app/components/session/session-admin-access.js +3 -3
  83. package/dist/app/components/session/session-admission-notice.js +5 -5
  84. package/dist/app/components/session/session-machine-access-notice.js +5 -5
  85. package/dist/app/components/session/session-search-dialog.js +8 -8
  86. package/dist/app/components/session/session-tenancy-control.d.ts +2 -0
  87. package/dist/app/components/session/session-tenancy-control.js +26 -11
  88. package/dist/app/components/session/session-tenancy-control.js.map +1 -1
  89. package/dist/app/components/session/session-usage-limit-section.js +4 -4
  90. package/dist/app/components/session/session-wait-status.js +8 -7
  91. package/dist/app/components/session/session-wait-status.js.map +1 -1
  92. package/dist/app/components/session/site-origin-link.d.ts +1 -0
  93. package/dist/app/components/session/site-origin-link.js +2 -2
  94. package/dist/app/components/session/subagents.js +13 -12
  95. package/dist/app/components/settings/row-select.js +3 -3
  96. package/dist/app/components/transcription-settings.js +4 -4
  97. package/dist/app/components/usage/usage-entry.js +5 -5
  98. package/dist/app/components/workspace-composer-plus.js +12 -12
  99. package/dist/app/embed/memory-navigation.js +2 -2
  100. package/dist/app/embed/session-app.js +196 -190
  101. package/dist/app/lib/actions/actions-provider.js +9 -9
  102. package/dist/app/lib/actions/held-modifier.d.ts +11 -0
  103. package/dist/app/lib/app-surfaces.js +2 -2
  104. package/dist/app/lib/codex-usage-query.js +6 -6
  105. package/dist/app/lib/composer-connectors.js +9 -9
  106. package/dist/app/lib/console-site.d.ts +6 -0
  107. package/dist/app/lib/console-site.js +14 -0
  108. package/dist/app/lib/console-text.js +2 -2
  109. package/dist/app/lib/events.js +13 -12
  110. package/dist/app/lib/failed-session-copy.js +3 -3
  111. package/dist/app/lib/model-access-onboarding.js +3 -3
  112. package/dist/app/lib/move-chat-to-machine.js +3 -3
  113. package/dist/app/lib/navigation.d.ts +5 -0
  114. package/dist/app/lib/navigation.js +1 -1
  115. package/dist/app/lib/routes.d.ts +17 -0
  116. package/dist/app/lib/routes.js +9 -3
  117. package/dist/app/lib/session-branch-cache.js +12 -11
  118. package/dist/app/lib/session-create.js +2 -2
  119. package/dist/app/lib/session-deep-link.js +2 -2
  120. package/dist/app/lib/session-failure-toasts.d.ts +8 -0
  121. package/dist/app/lib/session-group-pagination.js +12 -11
  122. package/dist/app/lib/session-hover-facts.js +12 -11
  123. package/dist/app/lib/session-model.js +2 -2
  124. package/dist/app/lib/session-rail.js +8 -7
  125. package/dist/app/lib/session-rename.js +2 -2
  126. package/dist/app/lib/session-ui-features.d.ts +6 -1
  127. package/dist/app/lib/session-ui-features.js +1 -1
  128. package/dist/app/lib/sessions-group.d.ts +43 -3
  129. package/dist/app/lib/sessions-group.js +19 -12
  130. package/dist/app/lib/shared-query.js +3 -3
  131. package/dist/app/lib/site-opened.d.ts +6 -0
  132. package/dist/app/lib/site-opened.js +10 -0
  133. package/dist/app/lib/turn-failure-analytics.js +5 -5
  134. package/dist/app/lib/use-duplicate-site.js +2 -2
  135. package/dist/app/lib/use-follow-up-repositories.js +2 -2
  136. package/dist/app/lib/use-session-list-hint-refresh.d.ts +20 -2
  137. package/dist/app/lib/use-session-list-hint-refresh.js +5 -1
  138. package/dist/app/lib/use-workspace-machines.js +5 -5
  139. package/dist/app/lib/use-workspace-model-catalog.js +7 -7
  140. package/dist/app/lib/use-workspace-rigs.js +7 -7
  141. package/dist/app/lib/workspace-navigation-preference.js +4 -4
  142. package/dist/app/lib/workspace-scope-context.js +3 -3
  143. package/dist/app/routes/artifacts.js +70 -87
  144. package/dist/app/routes/artifacts.js.map +1 -1
  145. package/dist/app/routes/retained-artifact.js +36 -35
  146. package/dist/app/routes/retained-artifact.js.map +1 -1
  147. package/dist/app/routes/session-unavailable.js +6 -4
  148. package/dist/app/routes/session.js +127 -123
  149. package/dist/app/routes/sessions-index-hydration.js +3 -3
  150. package/dist/app/routes/sessions-index.js +96 -94
  151. package/dist/app/routes/site-view.d.ts +11 -0
  152. package/dist/app/routes/site-view.js +597 -0
  153. package/dist/app/routes/site-view.js.map +1 -0
  154. package/dist/artifacts-document.js +4 -4
  155. package/dist/artifacts-presentation.js +4 -4
  156. package/dist/artifacts-spreadsheet.js +4 -4
  157. package/dist/artifacts.js +13 -13
  158. package/dist/{browser-viewer-RYYQSRTC.js → browser-viewer-VPK3CV2H.js} +7 -5
  159. package/dist/{chat-interactive-block-ABCRKXJ4.js → chat-interactive-block-AMDSW656.js} +5 -5
  160. package/dist/chunk-22GTC4MZ.js +15 -0
  161. package/dist/chunk-22GTC4MZ.js.map +1 -0
  162. package/dist/{chunk-RQDFYQHA.js → chunk-25LWDG5D.js} +6 -6
  163. package/dist/{chunk-U3HSFCON.js → chunk-2CKVVAGP.js} +15 -15
  164. package/dist/{chunk-F6LBGYS6.js → chunk-2DL6NJP5.js} +15 -15
  165. package/dist/{chunk-UHFWF6ZU.js → chunk-2FPS5H2D.js} +2 -2
  166. package/dist/{chunk-NAWXARTY.js → chunk-2KO2G3RI.js} +72 -6
  167. package/dist/chunk-2KO2G3RI.js.map +1 -0
  168. package/dist/{chunk-TWXIFWBD.js → chunk-34EU25RL.js} +2 -2
  169. package/dist/{chunk-PTGRFAMH.js → chunk-3ABPIUCK.js} +2 -2
  170. package/dist/{chunk-722UO6YQ.js → chunk-3PEXVG4D.js} +2 -2
  171. package/dist/{chunk-N3ZP4IDU.js → chunk-45WYYFP6.js} +2 -2
  172. package/dist/{chunk-HOJGAJAB.js → chunk-4MQLGMV2.js} +5 -5
  173. package/dist/{chunk-L7YURQI2.js → chunk-4U4GXWXS.js} +3 -3
  174. package/dist/{chunk-63VGE4OH.js → chunk-5HIOVXOX.js} +3 -3
  175. package/dist/{chunk-GFUUFM2O.js → chunk-5M23GZA2.js} +3 -3
  176. package/dist/{chunk-PM3OSANE.js → chunk-5MJHH72T.js} +14 -3
  177. package/dist/chunk-5MJHH72T.js.map +1 -0
  178. package/dist/{chunk-RKB2Z457.js → chunk-5VGJXWQ2.js} +2 -2
  179. package/dist/{chunk-6W3LF3DB.js → chunk-5YFY4SFC.js} +2 -12
  180. package/dist/chunk-5YFY4SFC.js.map +1 -0
  181. package/dist/{chunk-I6VUUEXH.js → chunk-6AFSZKZA.js} +3 -3
  182. package/dist/{chunk-FBMU3VK5.js → chunk-6DCEDIF6.js} +2 -2
  183. package/dist/{chunk-5MZTJMZ3.js → chunk-6MRY2RUZ.js} +13 -7
  184. package/dist/chunk-6MRY2RUZ.js.map +1 -0
  185. package/dist/{chunk-4EONHNJU.js → chunk-6O4VWKSO.js} +2 -2
  186. package/dist/chunk-756MKA2J.js +45 -0
  187. package/dist/chunk-756MKA2J.js.map +1 -0
  188. package/dist/{chunk-BSX2R4CW.js → chunk-767WCGAX.js} +6 -6
  189. package/dist/{chunk-7KGKDWWR.js → chunk-7HFLYNWN.js} +2 -2
  190. package/dist/{chunk-OSVHU2WU.js → chunk-7IYAHFPE.js} +2 -2
  191. package/dist/{chunk-4EAF3HSD.js → chunk-7J7PZB4S.js} +2 -2
  192. package/dist/{chunk-ADJJQSYC.js → chunk-7PUFAH4I.js} +34 -32
  193. package/dist/chunk-7PUFAH4I.js.map +1 -0
  194. package/dist/{chunk-OR37STQZ.js → chunk-7R2JQHBX.js} +3 -3
  195. package/dist/{chunk-QM5H4FPT.js → chunk-7VN6VC3D.js} +3 -3
  196. package/dist/{chunk-HWDGJFM4.js → chunk-A2E3ZF6N.js} +4 -4
  197. package/dist/{chunk-RGW24ZZM.js → chunk-A6CK4ENG.js} +19 -17
  198. package/dist/chunk-A6CK4ENG.js.map +1 -0
  199. package/dist/{chunk-4432A3HQ.js → chunk-A6T4FGE7.js} +4 -4
  200. package/dist/{chunk-73SOCVLS.js → chunk-AIEXYO2X.js} +3 -3
  201. package/dist/{chunk-U7TC2XJQ.js → chunk-AJPW3SV4.js} +3 -3
  202. package/dist/{chunk-46VBQG2D.js → chunk-AOUCHCSB.js} +5 -5
  203. package/dist/{chunk-HDHK3SXK.js → chunk-AT4K4F6S.js} +2 -2
  204. package/dist/{chunk-TQGJN5UZ.js → chunk-AW3QEFOF.js} +140 -522
  205. package/dist/chunk-AW3QEFOF.js.map +1 -0
  206. package/dist/{chunk-HRJQAFKR.js → chunk-AX6YJA5U.js} +2 -2
  207. package/dist/{chunk-HO5Y2OOX.js → chunk-BLPXOHG6.js} +6 -6
  208. package/dist/{chunk-DT7BORXG.js → chunk-BMJTNPWK.js} +2 -2
  209. package/dist/{chunk-HIHO2QE7.js → chunk-BT2MVGHT.js} +2 -2
  210. package/dist/{chunk-AOLE4IRZ.js → chunk-C535KSTY.js} +2 -2
  211. package/dist/{chunk-IVOA3DXA.js → chunk-CB574ERL.js} +4 -4
  212. package/dist/{chunk-IBTXYLBW.js → chunk-CCFWY4GF.js} +2 -2
  213. package/dist/{chunk-ZOC3OP6F.js → chunk-CCR33J7L.js} +2 -2
  214. package/dist/{chunk-NYZQ7LO7.js → chunk-CDUDKETD.js} +2 -2
  215. package/dist/{chunk-JTN3T4QN.js → chunk-D3RK3NGM.js} +4 -4
  216. package/dist/{chunk-IOKSNX74.js → chunk-D5OWJZQR.js} +2 -2
  217. package/dist/{chunk-BJIZ7PL7.js → chunk-D64Z4V26.js} +145 -29
  218. package/dist/chunk-D64Z4V26.js.map +1 -0
  219. package/dist/{chunk-XWWXIZFP.js → chunk-DFXZYNTX.js} +7 -7
  220. package/dist/{chunk-SQGXMHJO.js → chunk-DGLRZMXL.js} +3 -3
  221. package/dist/{chunk-GNEHAPKV.js → chunk-DJFTH2DI.js} +3 -3
  222. package/dist/{chunk-KWKGBGAF.js → chunk-DKCX643S.js} +11 -11
  223. package/dist/{chunk-HQG4SLTE.js → chunk-DYJGYGPB.js} +2 -2
  224. package/dist/{chunk-GTQ3SNEI.js → chunk-E36IC3LU.js} +2 -2
  225. package/dist/{chunk-CVG4FILQ.js → chunk-ECHYJP63.js} +253 -1008
  226. package/dist/chunk-ECHYJP63.js.map +1 -0
  227. package/dist/{chunk-Q35DT6I6.js → chunk-EH7TTYE6.js} +179 -170
  228. package/dist/chunk-EH7TTYE6.js.map +1 -0
  229. package/dist/{chunk-72J6C2AJ.js → chunk-EMCB6XKU.js} +2 -2
  230. package/dist/{chunk-3AA6RNGE.js → chunk-ENS6E4RZ.js} +2 -2
  231. package/dist/{chunk-AG7VGUIW.js → chunk-ERG355NM.js} +3 -3
  232. package/dist/{chunk-TSBE4KOQ.js → chunk-EWL6NDOO.js} +3 -3
  233. package/dist/{chunk-Z5WMLJKI.js → chunk-F2RMKGDQ.js} +89 -1
  234. package/dist/chunk-F2RMKGDQ.js.map +1 -0
  235. package/dist/{chunk-X7L4H4VG.js → chunk-F33EDYS7.js} +524 -426
  236. package/dist/chunk-F33EDYS7.js.map +1 -0
  237. package/dist/{chunk-HTT3FB7T.js → chunk-F3FN6DO6.js} +2 -2
  238. package/dist/{chunk-ST22GONV.js → chunk-FB3B45FP.js} +11 -11
  239. package/dist/{chunk-P5T36BA3.js → chunk-FRP64DEK.js} +2 -2
  240. package/dist/{chunk-KBF3SE7G.js → chunk-FSP334UU.js} +2 -2
  241. package/dist/{chunk-4VKA5O7T.js → chunk-FVL4B552.js} +9 -9
  242. package/dist/{chunk-VP62LPLW.js → chunk-G2BX56CN.js} +5 -5
  243. package/dist/{chunk-CSHBR2IZ.js → chunk-GDLDBR6B.js} +2 -2
  244. package/dist/{chunk-PN66T6JA.js → chunk-GFSOXB2K.js} +2 -2
  245. package/dist/{chunk-S4EZ3JUB.js → chunk-GZGQHQI7.js} +29 -29
  246. package/dist/chunk-H4IE2PYF.js +792 -0
  247. package/dist/chunk-H4IE2PYF.js.map +1 -0
  248. package/dist/{chunk-XFNLU7EW.js → chunk-H5M33DAL.js} +15 -6
  249. package/dist/chunk-H5M33DAL.js.map +1 -0
  250. package/dist/{chunk-BXRIQZAH.js → chunk-HNNM2GDN.js} +3 -3
  251. package/dist/{chunk-EU6XSQFM.js → chunk-HPB4KSV3.js} +2 -2
  252. package/dist/{chunk-QCD5Y7K5.js → chunk-HSQRYJ4P.js} +5 -5
  253. package/dist/{chunk-YXOKAG66.js → chunk-HUXDGWAN.js} +2 -2
  254. package/dist/{chunk-VUHPA3XQ.js → chunk-I66ZB6KD.js} +3 -3
  255. package/dist/{chunk-7CZTKBTI.js → chunk-IC7KNOBB.js} +5 -5
  256. package/dist/{chunk-KF3MF6FP.js → chunk-IECRGM6K.js} +3 -2
  257. package/dist/chunk-IECRGM6K.js.map +1 -0
  258. package/dist/{chunk-HGMWMK5K.js → chunk-IIO2MR3B.js} +2 -2
  259. package/dist/chunk-IJYL5BZM.js +38 -0
  260. package/dist/chunk-IJYL5BZM.js.map +1 -0
  261. package/dist/{chunk-L6RXRRN3.js → chunk-ILDOW2IQ.js} +3 -3
  262. package/dist/{chunk-O756O2I7.js → chunk-IPPVX5GF.js} +1 -1
  263. package/dist/{chunk-X7ASQHR6.js → chunk-IUK5QGP5.js} +2 -2
  264. package/dist/{chunk-5JZYPZ72.js → chunk-JFK7NTEA.js} +4 -4
  265. package/dist/chunk-JFK7NTEA.js.map +1 -0
  266. package/dist/{chunk-PIVGX42P.js → chunk-JNY5MT3I.js} +2 -2
  267. package/dist/chunk-JRSNCSZN.js +37 -0
  268. package/dist/chunk-JRSNCSZN.js.map +1 -0
  269. package/dist/{chunk-DDK4WFJ3.js → chunk-JWN7SLTO.js} +9 -9
  270. package/dist/{chunk-Q35YZVDZ.js → chunk-KFWVBTUH.js} +3 -3
  271. package/dist/{chunk-JXT5QDJC.js → chunk-KNFDWNCH.js} +5 -5
  272. package/dist/{chunk-AZVANYMB.js → chunk-KUNFUSZ7.js} +2 -2
  273. package/dist/{chunk-DXZNDKQD.js → chunk-LEEJBZ5B.js} +2 -2
  274. package/dist/{chunk-STUCI6QA.js → chunk-LEKBNKLD.js} +1 -1
  275. package/dist/{chunk-STUCI6QA.js.map → chunk-LEKBNKLD.js.map} +1 -1
  276. package/dist/{chunk-RSNYGEVZ.js → chunk-LKJ2C7PH.js} +8 -8
  277. package/dist/{chunk-RIMKJBCD.js → chunk-LMPTC4CX.js} +2 -2
  278. package/dist/{chunk-3KVWXKD6.js → chunk-LQ47YL6E.js} +2 -2
  279. package/dist/{chunk-GAIM5RNE.js → chunk-MJQBC7C5.js} +3 -3
  280. package/dist/{chunk-NWZW2WHN.js → chunk-MM7OKOTE.js} +6 -6
  281. package/dist/{chunk-FM4OUCC2.js → chunk-MOKYT3X3.js} +3 -3
  282. package/dist/{chunk-GZ64CASI.js → chunk-MVZYNZXE.js} +5 -4
  283. package/dist/chunk-MVZYNZXE.js.map +1 -0
  284. package/dist/{chunk-XRRSFQEV.js → chunk-NAZZLAWX.js} +2 -2
  285. package/dist/{chunk-XOFUXMPP.js → chunk-ND2WCWXI.js} +4 -4
  286. package/dist/{chunk-6L7U46Y2.js → chunk-NKNVIO66.js} +2 -2
  287. package/dist/{chunk-JKUICTLM.js → chunk-NLAFNMPK.js} +2 -2
  288. package/dist/{chunk-OO2T63BY.js → chunk-NML44AW2.js} +2 -2
  289. package/dist/chunk-NQQKOJDI.js +89 -0
  290. package/dist/chunk-NQQKOJDI.js.map +1 -0
  291. package/dist/{chunk-4LKNIGHB.js → chunk-O2SBHS2N.js} +2 -2
  292. package/dist/{chunk-RA3FNMWF.js → chunk-O4DYOSOL.js} +5 -5
  293. package/dist/{chunk-ZKYYZH6L.js → chunk-OFB6TUDC.js} +4 -4
  294. package/dist/{chunk-DWPOQ3S5.js → chunk-OTMWHZBY.js} +2 -2
  295. package/dist/{chunk-VVCDB2T7.js → chunk-PCJLH45G.js} +3 -3
  296. package/dist/{chunk-WSMYOLHG.js → chunk-PEKPWK5M.js} +2 -2
  297. package/dist/{chunk-PZ24CYDO.js → chunk-PFAUGEV5.js} +2 -2
  298. package/dist/{chunk-KTRKZRID.js → chunk-PKEKZ2VA.js} +5 -5
  299. package/dist/{chunk-6JKZILLF.js → chunk-PMD7V4N7.js} +3 -3
  300. package/dist/{chunk-B74GSYR6.js → chunk-PUTS4DYW.js} +2 -2
  301. package/dist/{chunk-ZRJCGBVV.js → chunk-PVR5EELP.js} +2 -2
  302. package/dist/{chunk-JSIDLTTG.js → chunk-PZ2V2XIK.js} +2 -2
  303. package/dist/{chunk-TMEQPODK.js → chunk-PZ37VDB5.js} +2 -2
  304. package/dist/{chunk-FLGUVRR7.js → chunk-QBADR2FO.js} +6 -6
  305. package/dist/{chunk-TGVVEGZG.js → chunk-QLIDZGPV.js} +6 -6
  306. package/dist/{chunk-LVONK3YQ.js → chunk-QRKTESVE.js} +2 -2
  307. package/dist/{chunk-HT5WSUC7.js → chunk-QXEDIDBZ.js} +3 -3
  308. package/dist/{chunk-WURSS6MP.js → chunk-R66YMYJU.js} +2 -2
  309. package/dist/{chunk-6PQNLL4E.js → chunk-R7XCJWCD.js} +11 -11
  310. package/dist/{chunk-4R3JCVID.js → chunk-RAMZTZOB.js} +360 -103
  311. package/dist/chunk-RAMZTZOB.js.map +1 -0
  312. package/dist/{chunk-QRVNI5V6.js → chunk-SCNEQFIW.js} +3 -3
  313. package/dist/{chunk-BNUPYHHZ.js → chunk-SD4PPZFB.js} +4 -4
  314. package/dist/{chunk-ROQOVH4N.js → chunk-SFAU5R5S.js} +3 -3
  315. package/dist/{chunk-R63QEVPK.js → chunk-SJORXXLV.js} +6 -6
  316. package/dist/{chunk-FBE6AIIW.js → chunk-SOKNCW5U.js} +2 -2
  317. package/dist/{chunk-JRXHSVD5.js → chunk-SOXZ4LGS.js} +68 -11
  318. package/dist/chunk-SOXZ4LGS.js.map +1 -0
  319. package/dist/{chunk-EF5SYXAY.js → chunk-SQDPHCK2.js} +22 -14
  320. package/dist/chunk-SQDPHCK2.js.map +1 -0
  321. package/dist/{chunk-NDF3SH3X.js → chunk-TDIOBPLA.js} +5 -5
  322. package/dist/{chunk-EHCUFCXM.js → chunk-TEPPPAJI.js} +17 -7
  323. package/dist/chunk-TEPPPAJI.js.map +1 -0
  324. package/dist/{chunk-33TPANCR.js → chunk-TFK4KFKA.js} +4 -4
  325. package/dist/{chunk-6NIB2KGJ.js → chunk-THVIT3PW.js} +22 -22
  326. package/dist/{chunk-HPPKLBTJ.js → chunk-TJQDL3JH.js} +2 -2
  327. package/dist/{chunk-FD4Q5KFL.js → chunk-TLL22FFO.js} +2 -2
  328. package/dist/{chunk-7DU35P5J.js → chunk-TN5T5HRZ.js} +7 -7
  329. package/dist/{chunk-JK7C5A4I.js → chunk-TR4HIKJ2.js} +8 -8
  330. package/dist/{chunk-HNYJEAES.js → chunk-UGEWCWVV.js} +3 -3
  331. package/dist/chunk-ULYQEFNH.js +529 -0
  332. package/dist/chunk-ULYQEFNH.js.map +1 -0
  333. package/dist/{chunk-H5EVWF6L.js → chunk-UNNJUJVD.js} +2 -2
  334. package/dist/{chunk-AD22P5X3.js → chunk-UUSAOIJR.js} +3 -3
  335. package/dist/{chunk-Z6DKXQG7.js → chunk-UXXFMF4X.js} +2 -2
  336. package/dist/{chunk-RGPYMHKI.js → chunk-V3K4RQO7.js} +9 -3
  337. package/dist/chunk-V3K4RQO7.js.map +1 -0
  338. package/dist/{chunk-UP4BE32Y.js → chunk-VO6RVVP7.js} +5 -5
  339. package/dist/{chunk-S4SC5SSV.js → chunk-VPNXQUUS.js} +11 -11
  340. package/dist/{chunk-7BST7BA6.js → chunk-VW3BBTMA.js} +1 -1
  341. package/dist/{chunk-CBY5CXBD.js → chunk-VWSFA4LJ.js} +2 -2
  342. package/dist/{chunk-MYNUBDU7.js → chunk-VYKW6TB2.js} +1 -1
  343. package/dist/chunk-VYKW6TB2.js.map +1 -0
  344. package/dist/{chunk-QEJTQTF5.js → chunk-W6T5HR3Z.js} +3 -3
  345. package/dist/{chunk-5JEIDFPD.js → chunk-WBPQ7OPC.js} +1 -1
  346. package/dist/{chunk-GZLLDA6P.js → chunk-WEFN327U.js} +2 -2
  347. package/dist/{chunk-ANHUMDJX.js → chunk-WNDTLK44.js} +2 -2
  348. package/dist/{chunk-DLOYMWUQ.js → chunk-WSLPZ43N.js} +7 -7
  349. package/dist/{chunk-2DS4UOYQ.js → chunk-WSZQNTVN.js} +2 -2
  350. package/dist/{chunk-LE2EDBXU.js → chunk-WUHB422G.js} +5 -5
  351. package/dist/{chunk-BJW7G6EF.js → chunk-WVX5AQXS.js} +3 -3
  352. package/dist/{chunk-5POTDNQT.js → chunk-WWOHORRO.js} +3 -3
  353. package/dist/{chunk-4W7VISE7.js → chunk-WYDZP5F2.js} +93 -94
  354. package/dist/chunk-WYDZP5F2.js.map +1 -0
  355. package/dist/{chunk-KZHW27BV.js → chunk-WYEPUXGL.js} +2 -2
  356. package/dist/{chunk-GALB2G3W.js → chunk-X2AH4DRF.js} +2 -2
  357. package/dist/{chunk-NCX5SAQY.js → chunk-XN6CALYY.js} +9 -9
  358. package/dist/{chunk-SUVEDKE2.js → chunk-XNACICAB.js} +3 -3
  359. package/dist/{chunk-FDNJVZRE.js → chunk-XU4I47IP.js} +4 -4
  360. package/dist/chunk-XV6ZYRHK.js +59 -0
  361. package/dist/chunk-XV6ZYRHK.js.map +1 -0
  362. package/dist/{chunk-WRLWLGEF.js → chunk-Y5E3XQ2S.js} +25 -2
  363. package/dist/{chunk-WRLWLGEF.js.map → chunk-Y5E3XQ2S.js.map} +1 -1
  364. package/dist/{chunk-U36PO27Q.js → chunk-YG3IJCM2.js} +3 -3
  365. package/dist/{chunk-UWJ5P5CU.js → chunk-YGSJWWT3.js} +3 -3
  366. package/dist/{chunk-APU42QDI.js → chunk-YO64YVYL.js} +105 -101
  367. package/dist/chunk-YO64YVYL.js.map +1 -0
  368. package/dist/{chunk-P5WABK2H.js → chunk-Z4GJB24B.js} +2 -2
  369. package/dist/{chunk-NLMTNEWW.js → chunk-Z6E6TUAE.js} +2 -2
  370. package/dist/{chunk-OBQVTCTW.js → chunk-ZX5H7LWD.js} +2 -2
  371. package/dist/components/browser-viewer.d.ts +1 -1
  372. package/dist/composer.js +8 -8
  373. package/dist/{computer-viewer-KEDVLD42.js → computer-viewer-VA5JONUH.js} +6 -6
  374. package/dist/connect.js +7 -7
  375. package/dist/desktop.js +2 -2
  376. package/dist/editor.js +2 -2
  377. package/dist/{embedded-new-voice-LFHWWYD2.js → embedded-new-voice-6BILAOUG.js} +6 -6
  378. package/dist/{embedded-voice-6QS4ANNX.js → embedded-voice-UDE4JRKB.js} +6 -6
  379. package/dist/{fleet-decision-row-QNSTP3VX.js → fleet-decision-row-NN2HXDX3.js} +2 -2
  380. package/dist/hooks/internal.d.ts +38 -0
  381. package/dist/hooks/use-client-config-flags.d.ts +12 -0
  382. package/dist/hooks/use-workspace-sessions.d.ts +10 -1
  383. package/dist/index.js +86 -80
  384. package/dist/interaction.js +8 -6
  385. package/dist/interaction.js.map +1 -1
  386. package/dist/{latest-question-AW3PPDUM.js → latest-question-4WDBECXB.js} +4 -3
  387. package/dist/{latest-question-AW3PPDUM.js.map → latest-question-4WDBECXB.js.map} +1 -1
  388. package/dist/machines.js +4 -4
  389. package/dist/messages/en.d.ts +3 -3
  390. package/dist/messages.js +1 -1
  391. package/dist/{model-policy-picker-menu-CURJ247L.js → model-policy-picker-menu-NRTO6FRP.js} +4 -4
  392. package/dist/{platform-activity-row-BMXXNZKX.js → platform-activity-row-ENQVIFTL.js} +2 -2
  393. package/dist/{queue-surface-implementation-2X5AXB6I.js → queue-surface-implementation-H4XSNHZE.js} +8 -6
  394. package/dist/{queue-surface-implementation-2X5AXB6I.js.map → queue-surface-implementation-H4XSNHZE.js.map} +1 -1
  395. package/dist/realtime.js +5 -5
  396. package/dist/{sandbox-files-4FBG3GS2.js → sandbox-files-IEHODU35.js} +9 -9
  397. package/dist/sandbox-files-IEHODU35.js.map +1 -0
  398. package/dist/session-app.js +198 -192
  399. package/dist/session-list-model.d.ts +1 -0
  400. package/dist/session-list-model.js +7 -1
  401. package/dist/{session-realtime-2XIB254N.js → session-realtime-JNKDSGH7.js} +3 -3
  402. package/dist/session-realtime-JNKDSGH7.js.map +1 -0
  403. package/dist/session-realtime.js +2 -2
  404. package/dist/session-ui.js +48 -43
  405. package/dist/session.js +20 -18
  406. package/dist/sites.js +2 -2
  407. package/dist/terminal.js +2 -2
  408. package/dist/this-computer.js +3 -3
  409. package/dist/timeline/invoked-tool.d.ts +5 -0
  410. package/dist/timeline/tool-display-name.d.ts +2 -2
  411. package/dist/timeline/tool-icon.d.ts +14 -0
  412. package/dist/timeline/tool-presentation.d.ts +8 -3
  413. package/dist/{timeline-annotation-markers-X4K2IEOO.js → timeline-annotation-markers-ZSOFW7PG.js} +2 -2
  414. package/dist/{timeline-annotation-selection-MEHBW676.js → timeline-annotation-selection-YWV2UC34.js} +2 -2
  415. package/dist/{timeline-annotations-dialog-U2FPQ3UY.js → timeline-annotations-dialog-ZWQVX2HI.js} +3 -3
  416. package/dist/timeline-model.js +16 -14
  417. package/dist/ui/access-list.js +7 -7
  418. package/dist/ui/cadence-picker.js +2 -2
  419. package/dist/ui/list-row.js +3 -3
  420. package/dist/ui/revision-history.js +2 -2
  421. package/dist/ui/role-select.js +3 -3
  422. package/dist/ui/select-menu.js +2 -2
  423. package/dist/usage.js +3 -3
  424. package/dist/workbench.js +4 -4
  425. package/package.json +4 -4
  426. package/src/app/app-state.tsx +3 -1
  427. package/src/app/components/capabilities/session-machine-card.tsx +9 -2
  428. package/src/app/components/rail/session-list.tsx +254 -44
  429. package/src/app/components/rail/session-row-content.tsx +24 -2
  430. package/src/app/components/rail/session-shell.tsx +14 -9
  431. package/src/app/components/rail/site-session-group-heading.tsx +59 -20
  432. package/src/app/components/session/session-tenancy-control.tsx +18 -0
  433. package/src/app/components/session/site-origin-link.test.tsx +73 -0
  434. package/src/app/components/session/site-origin-link.tsx +4 -2
  435. package/src/app/embed/memory-navigation.tsx +1 -0
  436. package/src/app/lib/actions/held-modifier.test.ts +101 -0
  437. package/src/app/lib/actions/held-modifier.ts +108 -0
  438. package/src/app/lib/console-site.tsx +38 -0
  439. package/src/app/lib/navigation.tsx +4 -0
  440. package/src/app/lib/routes.tsx +42 -0
  441. package/src/app/lib/session-failure-toasts.ts +26 -0
  442. package/src/app/lib/session-ui-features.tsx +18 -4
  443. package/src/app/lib/sessions-group.tsx +219 -30
  444. package/src/app/lib/site-opened.tsx +48 -0
  445. package/src/app/lib/site-session-groups.test.ts +173 -6
  446. package/src/app/lib/site-view-routes.test.ts +55 -0
  447. package/src/app/lib/use-session-list-hint-refresh.tsx +44 -4
  448. package/src/app/routes/artifacts.tsx +2 -29
  449. package/src/app/routes/session-transient-failures.test.tsx +343 -0
  450. package/src/app/routes/session-unavailable.tsx +74 -3
  451. package/src/app/routes/session.tsx +4 -13
  452. package/src/app/routes/sessions-index.tsx +13 -9
  453. package/src/app/routes/site-view.test.tsx +476 -0
  454. package/src/app/routes/site-view.tsx +583 -0
  455. package/src/components/browser-viewer.tsx +16 -2
  456. package/src/hooks/internal.ts +129 -6
  457. package/src/hooks/use-client-config-flags.ts +8 -0
  458. package/src/hooks/use-session-events.ts +83 -9
  459. package/src/hooks/use-workspace-sessions.ts +21 -1
  460. package/src/messages/en.ts +3 -3
  461. package/src/session-list-model.ts +4 -0
  462. package/src/timeline/activity-rail.tsx +3 -2
  463. package/src/timeline/invoked-tool.ts +14 -4
  464. package/src/timeline/projection.ts +11 -6
  465. package/src/timeline/rolling-activity.tsx +6 -2
  466. package/src/timeline/tool-display-name.ts +2 -2
  467. package/src/timeline/tool-icon.tsx +165 -0
  468. package/src/timeline/tool-presentation.ts +207 -48
  469. package/src/timeline/tool-renderers.tsx +1 -70
  470. package/styles/compiled.css +38 -0
  471. package/dist/chunk-22ZBT6CN.js +0 -50
  472. package/dist/chunk-22ZBT6CN.js.map +0 -1
  473. package/dist/chunk-4R3JCVID.js.map +0 -1
  474. package/dist/chunk-4W7VISE7.js.map +0 -1
  475. package/dist/chunk-5JZYPZ72.js.map +0 -1
  476. package/dist/chunk-5MZTJMZ3.js.map +0 -1
  477. package/dist/chunk-6W3LF3DB.js.map +0 -1
  478. package/dist/chunk-ADJJQSYC.js.map +0 -1
  479. package/dist/chunk-APU42QDI.js.map +0 -1
  480. package/dist/chunk-BJIZ7PL7.js.map +0 -1
  481. package/dist/chunk-CVG4FILQ.js.map +0 -1
  482. package/dist/chunk-EF5SYXAY.js.map +0 -1
  483. package/dist/chunk-EHCUFCXM.js.map +0 -1
  484. package/dist/chunk-GZ64CASI.js.map +0 -1
  485. package/dist/chunk-JRXHSVD5.js.map +0 -1
  486. package/dist/chunk-KF3MF6FP.js.map +0 -1
  487. package/dist/chunk-MYNUBDU7.js.map +0 -1
  488. package/dist/chunk-NAWXARTY.js.map +0 -1
  489. package/dist/chunk-PM3OSANE.js.map +0 -1
  490. package/dist/chunk-Q35DT6I6.js.map +0 -1
  491. package/dist/chunk-R25ZKOZR.js +0 -24
  492. package/dist/chunk-R25ZKOZR.js.map +0 -1
  493. package/dist/chunk-RGPYMHKI.js.map +0 -1
  494. package/dist/chunk-RGW24ZZM.js.map +0 -1
  495. package/dist/chunk-TQGJN5UZ.js.map +0 -1
  496. package/dist/chunk-X7L4H4VG.js.map +0 -1
  497. package/dist/chunk-XFNLU7EW.js.map +0 -1
  498. package/dist/chunk-Z5WMLJKI.js.map +0 -1
  499. /package/dist/{browser-viewer-RYYQSRTC.js.map → app/lib/console-site.js.map} +0 -0
  500. /package/dist/{chat-interactive-block-ABCRKXJ4.js.map → app/lib/site-opened.js.map} +0 -0
  501. /package/dist/{computer-viewer-KEDVLD42.js.map → browser-viewer-VPK3CV2H.js.map} +0 -0
  502. /package/dist/{embedded-new-voice-LFHWWYD2.js.map → chat-interactive-block-AMDSW656.js.map} +0 -0
  503. /package/dist/{chunk-RQDFYQHA.js.map → chunk-25LWDG5D.js.map} +0 -0
  504. /package/dist/{chunk-U3HSFCON.js.map → chunk-2CKVVAGP.js.map} +0 -0
  505. /package/dist/{chunk-F6LBGYS6.js.map → chunk-2DL6NJP5.js.map} +0 -0
  506. /package/dist/{chunk-UHFWF6ZU.js.map → chunk-2FPS5H2D.js.map} +0 -0
  507. /package/dist/{chunk-TWXIFWBD.js.map → chunk-34EU25RL.js.map} +0 -0
  508. /package/dist/{chunk-PTGRFAMH.js.map → chunk-3ABPIUCK.js.map} +0 -0
  509. /package/dist/{chunk-722UO6YQ.js.map → chunk-3PEXVG4D.js.map} +0 -0
  510. /package/dist/{chunk-N3ZP4IDU.js.map → chunk-45WYYFP6.js.map} +0 -0
  511. /package/dist/{chunk-HOJGAJAB.js.map → chunk-4MQLGMV2.js.map} +0 -0
  512. /package/dist/{chunk-L7YURQI2.js.map → chunk-4U4GXWXS.js.map} +0 -0
  513. /package/dist/{chunk-63VGE4OH.js.map → chunk-5HIOVXOX.js.map} +0 -0
  514. /package/dist/{chunk-GFUUFM2O.js.map → chunk-5M23GZA2.js.map} +0 -0
  515. /package/dist/{chunk-RKB2Z457.js.map → chunk-5VGJXWQ2.js.map} +0 -0
  516. /package/dist/{chunk-I6VUUEXH.js.map → chunk-6AFSZKZA.js.map} +0 -0
  517. /package/dist/{chunk-FBMU3VK5.js.map → chunk-6DCEDIF6.js.map} +0 -0
  518. /package/dist/{chunk-4EONHNJU.js.map → chunk-6O4VWKSO.js.map} +0 -0
  519. /package/dist/{chunk-BSX2R4CW.js.map → chunk-767WCGAX.js.map} +0 -0
  520. /package/dist/{chunk-7KGKDWWR.js.map → chunk-7HFLYNWN.js.map} +0 -0
  521. /package/dist/{chunk-OSVHU2WU.js.map → chunk-7IYAHFPE.js.map} +0 -0
  522. /package/dist/{chunk-4EAF3HSD.js.map → chunk-7J7PZB4S.js.map} +0 -0
  523. /package/dist/{chunk-OR37STQZ.js.map → chunk-7R2JQHBX.js.map} +0 -0
  524. /package/dist/{chunk-QM5H4FPT.js.map → chunk-7VN6VC3D.js.map} +0 -0
  525. /package/dist/{chunk-HWDGJFM4.js.map → chunk-A2E3ZF6N.js.map} +0 -0
  526. /package/dist/{chunk-4432A3HQ.js.map → chunk-A6T4FGE7.js.map} +0 -0
  527. /package/dist/{chunk-73SOCVLS.js.map → chunk-AIEXYO2X.js.map} +0 -0
  528. /package/dist/{chunk-U7TC2XJQ.js.map → chunk-AJPW3SV4.js.map} +0 -0
  529. /package/dist/{chunk-46VBQG2D.js.map → chunk-AOUCHCSB.js.map} +0 -0
  530. /package/dist/{chunk-HDHK3SXK.js.map → chunk-AT4K4F6S.js.map} +0 -0
  531. /package/dist/{chunk-HRJQAFKR.js.map → chunk-AX6YJA5U.js.map} +0 -0
  532. /package/dist/{chunk-HO5Y2OOX.js.map → chunk-BLPXOHG6.js.map} +0 -0
  533. /package/dist/{chunk-DT7BORXG.js.map → chunk-BMJTNPWK.js.map} +0 -0
  534. /package/dist/{chunk-HIHO2QE7.js.map → chunk-BT2MVGHT.js.map} +0 -0
  535. /package/dist/{chunk-AOLE4IRZ.js.map → chunk-C535KSTY.js.map} +0 -0
  536. /package/dist/{chunk-IVOA3DXA.js.map → chunk-CB574ERL.js.map} +0 -0
  537. /package/dist/{chunk-IBTXYLBW.js.map → chunk-CCFWY4GF.js.map} +0 -0
  538. /package/dist/{chunk-ZOC3OP6F.js.map → chunk-CCR33J7L.js.map} +0 -0
  539. /package/dist/{chunk-NYZQ7LO7.js.map → chunk-CDUDKETD.js.map} +0 -0
  540. /package/dist/{chunk-JTN3T4QN.js.map → chunk-D3RK3NGM.js.map} +0 -0
  541. /package/dist/{chunk-IOKSNX74.js.map → chunk-D5OWJZQR.js.map} +0 -0
  542. /package/dist/{chunk-XWWXIZFP.js.map → chunk-DFXZYNTX.js.map} +0 -0
  543. /package/dist/{chunk-SQGXMHJO.js.map → chunk-DGLRZMXL.js.map} +0 -0
  544. /package/dist/{chunk-GNEHAPKV.js.map → chunk-DJFTH2DI.js.map} +0 -0
  545. /package/dist/{chunk-KWKGBGAF.js.map → chunk-DKCX643S.js.map} +0 -0
  546. /package/dist/{chunk-HQG4SLTE.js.map → chunk-DYJGYGPB.js.map} +0 -0
  547. /package/dist/{chunk-GTQ3SNEI.js.map → chunk-E36IC3LU.js.map} +0 -0
  548. /package/dist/{chunk-72J6C2AJ.js.map → chunk-EMCB6XKU.js.map} +0 -0
  549. /package/dist/{chunk-3AA6RNGE.js.map → chunk-ENS6E4RZ.js.map} +0 -0
  550. /package/dist/{chunk-AG7VGUIW.js.map → chunk-ERG355NM.js.map} +0 -0
  551. /package/dist/{chunk-TSBE4KOQ.js.map → chunk-EWL6NDOO.js.map} +0 -0
  552. /package/dist/{chunk-HTT3FB7T.js.map → chunk-F3FN6DO6.js.map} +0 -0
  553. /package/dist/{chunk-ST22GONV.js.map → chunk-FB3B45FP.js.map} +0 -0
  554. /package/dist/{chunk-P5T36BA3.js.map → chunk-FRP64DEK.js.map} +0 -0
  555. /package/dist/{chunk-KBF3SE7G.js.map → chunk-FSP334UU.js.map} +0 -0
  556. /package/dist/{chunk-4VKA5O7T.js.map → chunk-FVL4B552.js.map} +0 -0
  557. /package/dist/{chunk-VP62LPLW.js.map → chunk-G2BX56CN.js.map} +0 -0
  558. /package/dist/{chunk-CSHBR2IZ.js.map → chunk-GDLDBR6B.js.map} +0 -0
  559. /package/dist/{chunk-PN66T6JA.js.map → chunk-GFSOXB2K.js.map} +0 -0
  560. /package/dist/{chunk-S4EZ3JUB.js.map → chunk-GZGQHQI7.js.map} +0 -0
  561. /package/dist/{chunk-BXRIQZAH.js.map → chunk-HNNM2GDN.js.map} +0 -0
  562. /package/dist/{chunk-EU6XSQFM.js.map → chunk-HPB4KSV3.js.map} +0 -0
  563. /package/dist/{chunk-QCD5Y7K5.js.map → chunk-HSQRYJ4P.js.map} +0 -0
  564. /package/dist/{chunk-YXOKAG66.js.map → chunk-HUXDGWAN.js.map} +0 -0
  565. /package/dist/{chunk-VUHPA3XQ.js.map → chunk-I66ZB6KD.js.map} +0 -0
  566. /package/dist/{chunk-7CZTKBTI.js.map → chunk-IC7KNOBB.js.map} +0 -0
  567. /package/dist/{chunk-HGMWMK5K.js.map → chunk-IIO2MR3B.js.map} +0 -0
  568. /package/dist/{chunk-L6RXRRN3.js.map → chunk-ILDOW2IQ.js.map} +0 -0
  569. /package/dist/{chunk-O756O2I7.js.map → chunk-IPPVX5GF.js.map} +0 -0
  570. /package/dist/{chunk-X7ASQHR6.js.map → chunk-IUK5QGP5.js.map} +0 -0
  571. /package/dist/{chunk-PIVGX42P.js.map → chunk-JNY5MT3I.js.map} +0 -0
  572. /package/dist/{chunk-DDK4WFJ3.js.map → chunk-JWN7SLTO.js.map} +0 -0
  573. /package/dist/{chunk-Q35YZVDZ.js.map → chunk-KFWVBTUH.js.map} +0 -0
  574. /package/dist/{chunk-JXT5QDJC.js.map → chunk-KNFDWNCH.js.map} +0 -0
  575. /package/dist/{chunk-AZVANYMB.js.map → chunk-KUNFUSZ7.js.map} +0 -0
  576. /package/dist/{chunk-DXZNDKQD.js.map → chunk-LEEJBZ5B.js.map} +0 -0
  577. /package/dist/{chunk-RSNYGEVZ.js.map → chunk-LKJ2C7PH.js.map} +0 -0
  578. /package/dist/{chunk-RIMKJBCD.js.map → chunk-LMPTC4CX.js.map} +0 -0
  579. /package/dist/{chunk-3KVWXKD6.js.map → chunk-LQ47YL6E.js.map} +0 -0
  580. /package/dist/{chunk-GAIM5RNE.js.map → chunk-MJQBC7C5.js.map} +0 -0
  581. /package/dist/{chunk-NWZW2WHN.js.map → chunk-MM7OKOTE.js.map} +0 -0
  582. /package/dist/{chunk-FM4OUCC2.js.map → chunk-MOKYT3X3.js.map} +0 -0
  583. /package/dist/{chunk-XRRSFQEV.js.map → chunk-NAZZLAWX.js.map} +0 -0
  584. /package/dist/{chunk-XOFUXMPP.js.map → chunk-ND2WCWXI.js.map} +0 -0
  585. /package/dist/{chunk-6L7U46Y2.js.map → chunk-NKNVIO66.js.map} +0 -0
  586. /package/dist/{chunk-JKUICTLM.js.map → chunk-NLAFNMPK.js.map} +0 -0
  587. /package/dist/{chunk-OO2T63BY.js.map → chunk-NML44AW2.js.map} +0 -0
  588. /package/dist/{chunk-4LKNIGHB.js.map → chunk-O2SBHS2N.js.map} +0 -0
  589. /package/dist/{chunk-RA3FNMWF.js.map → chunk-O4DYOSOL.js.map} +0 -0
  590. /package/dist/{chunk-ZKYYZH6L.js.map → chunk-OFB6TUDC.js.map} +0 -0
  591. /package/dist/{chunk-DWPOQ3S5.js.map → chunk-OTMWHZBY.js.map} +0 -0
  592. /package/dist/{chunk-VVCDB2T7.js.map → chunk-PCJLH45G.js.map} +0 -0
  593. /package/dist/{chunk-WSMYOLHG.js.map → chunk-PEKPWK5M.js.map} +0 -0
  594. /package/dist/{chunk-PZ24CYDO.js.map → chunk-PFAUGEV5.js.map} +0 -0
  595. /package/dist/{chunk-KTRKZRID.js.map → chunk-PKEKZ2VA.js.map} +0 -0
  596. /package/dist/{chunk-6JKZILLF.js.map → chunk-PMD7V4N7.js.map} +0 -0
  597. /package/dist/{chunk-B74GSYR6.js.map → chunk-PUTS4DYW.js.map} +0 -0
  598. /package/dist/{chunk-ZRJCGBVV.js.map → chunk-PVR5EELP.js.map} +0 -0
  599. /package/dist/{chunk-JSIDLTTG.js.map → chunk-PZ2V2XIK.js.map} +0 -0
  600. /package/dist/{chunk-TMEQPODK.js.map → chunk-PZ37VDB5.js.map} +0 -0
  601. /package/dist/{chunk-FLGUVRR7.js.map → chunk-QBADR2FO.js.map} +0 -0
  602. /package/dist/{chunk-TGVVEGZG.js.map → chunk-QLIDZGPV.js.map} +0 -0
  603. /package/dist/{chunk-LVONK3YQ.js.map → chunk-QRKTESVE.js.map} +0 -0
  604. /package/dist/{chunk-HT5WSUC7.js.map → chunk-QXEDIDBZ.js.map} +0 -0
  605. /package/dist/{chunk-WURSS6MP.js.map → chunk-R66YMYJU.js.map} +0 -0
  606. /package/dist/{chunk-6PQNLL4E.js.map → chunk-R7XCJWCD.js.map} +0 -0
  607. /package/dist/{chunk-QRVNI5V6.js.map → chunk-SCNEQFIW.js.map} +0 -0
  608. /package/dist/{chunk-BNUPYHHZ.js.map → chunk-SD4PPZFB.js.map} +0 -0
  609. /package/dist/{chunk-ROQOVH4N.js.map → chunk-SFAU5R5S.js.map} +0 -0
  610. /package/dist/{chunk-R63QEVPK.js.map → chunk-SJORXXLV.js.map} +0 -0
  611. /package/dist/{chunk-FBE6AIIW.js.map → chunk-SOKNCW5U.js.map} +0 -0
  612. /package/dist/{chunk-NDF3SH3X.js.map → chunk-TDIOBPLA.js.map} +0 -0
  613. /package/dist/{chunk-33TPANCR.js.map → chunk-TFK4KFKA.js.map} +0 -0
  614. /package/dist/{chunk-6NIB2KGJ.js.map → chunk-THVIT3PW.js.map} +0 -0
  615. /package/dist/{chunk-HPPKLBTJ.js.map → chunk-TJQDL3JH.js.map} +0 -0
  616. /package/dist/{chunk-FD4Q5KFL.js.map → chunk-TLL22FFO.js.map} +0 -0
  617. /package/dist/{chunk-7DU35P5J.js.map → chunk-TN5T5HRZ.js.map} +0 -0
  618. /package/dist/{chunk-JK7C5A4I.js.map → chunk-TR4HIKJ2.js.map} +0 -0
  619. /package/dist/{chunk-HNYJEAES.js.map → chunk-UGEWCWVV.js.map} +0 -0
  620. /package/dist/{chunk-H5EVWF6L.js.map → chunk-UNNJUJVD.js.map} +0 -0
  621. /package/dist/{chunk-AD22P5X3.js.map → chunk-UUSAOIJR.js.map} +0 -0
  622. /package/dist/{chunk-Z6DKXQG7.js.map → chunk-UXXFMF4X.js.map} +0 -0
  623. /package/dist/{chunk-UP4BE32Y.js.map → chunk-VO6RVVP7.js.map} +0 -0
  624. /package/dist/{chunk-S4SC5SSV.js.map → chunk-VPNXQUUS.js.map} +0 -0
  625. /package/dist/{chunk-7BST7BA6.js.map → chunk-VW3BBTMA.js.map} +0 -0
  626. /package/dist/{chunk-CBY5CXBD.js.map → chunk-VWSFA4LJ.js.map} +0 -0
  627. /package/dist/{chunk-QEJTQTF5.js.map → chunk-W6T5HR3Z.js.map} +0 -0
  628. /package/dist/{chunk-5JEIDFPD.js.map → chunk-WBPQ7OPC.js.map} +0 -0
  629. /package/dist/{chunk-GZLLDA6P.js.map → chunk-WEFN327U.js.map} +0 -0
  630. /package/dist/{chunk-ANHUMDJX.js.map → chunk-WNDTLK44.js.map} +0 -0
  631. /package/dist/{chunk-DLOYMWUQ.js.map → chunk-WSLPZ43N.js.map} +0 -0
  632. /package/dist/{chunk-2DS4UOYQ.js.map → chunk-WSZQNTVN.js.map} +0 -0
  633. /package/dist/{chunk-LE2EDBXU.js.map → chunk-WUHB422G.js.map} +0 -0
  634. /package/dist/{chunk-BJW7G6EF.js.map → chunk-WVX5AQXS.js.map} +0 -0
  635. /package/dist/{chunk-5POTDNQT.js.map → chunk-WWOHORRO.js.map} +0 -0
  636. /package/dist/{chunk-KZHW27BV.js.map → chunk-WYEPUXGL.js.map} +0 -0
  637. /package/dist/{chunk-GALB2G3W.js.map → chunk-X2AH4DRF.js.map} +0 -0
  638. /package/dist/{chunk-NCX5SAQY.js.map → chunk-XN6CALYY.js.map} +0 -0
  639. /package/dist/{chunk-SUVEDKE2.js.map → chunk-XNACICAB.js.map} +0 -0
  640. /package/dist/{chunk-FDNJVZRE.js.map → chunk-XU4I47IP.js.map} +0 -0
  641. /package/dist/{chunk-U36PO27Q.js.map → chunk-YG3IJCM2.js.map} +0 -0
  642. /package/dist/{chunk-UWJ5P5CU.js.map → chunk-YGSJWWT3.js.map} +0 -0
  643. /package/dist/{chunk-P5WABK2H.js.map → chunk-Z4GJB24B.js.map} +0 -0
  644. /package/dist/{chunk-NLMTNEWW.js.map → chunk-Z6E6TUAE.js.map} +0 -0
  645. /package/dist/{chunk-OBQVTCTW.js.map → chunk-ZX5H7LWD.js.map} +0 -0
  646. /package/dist/{embedded-voice-6QS4ANNX.js.map → computer-viewer-VA5JONUH.js.map} +0 -0
  647. /package/dist/{model-policy-picker-menu-CURJ247L.js.map → embedded-new-voice-6BILAOUG.js.map} +0 -0
  648. /package/dist/{sandbox-files-4FBG3GS2.js.map → embedded-voice-UDE4JRKB.js.map} +0 -0
  649. /package/dist/{fleet-decision-row-QNSTP3VX.js.map → fleet-decision-row-NN2HXDX3.js.map} +0 -0
  650. /package/dist/{session-realtime-2XIB254N.js.map → model-policy-picker-menu-NRTO6FRP.js.map} +0 -0
  651. /package/dist/{platform-activity-row-BMXXNZKX.js.map → platform-activity-row-ENQVIFTL.js.map} +0 -0
  652. /package/dist/{timeline-annotation-markers-X4K2IEOO.js.map → timeline-annotation-markers-ZSOFW7PG.js.map} +0 -0
  653. /package/dist/{timeline-annotation-selection-MEHBW676.js.map → timeline-annotation-selection-YWV2UC34.js.map} +0 -0
  654. /package/dist/{timeline-annotations-dialog-U2FPQ3UY.js.map → timeline-annotations-dialog-ZWQVX2HI.js.map} +0 -0
@@ -1,53 +1,40 @@
1
1
  "use client";
2
2
  import {
3
- SessionBrowseOrderControls
4
- } from "./chunk-HI75UTI6.js";
3
+ TooltipWithKeys
4
+ } from "./chunk-OHGG2G3A.js";
5
5
  import {
6
- SiteOriginLink
7
- } from "./chunk-GZ64CASI.js";
6
+ useActionShortcut,
7
+ useChatOperations
8
+ } from "./chunk-TR4HIKJ2.js";
9
+ import {
10
+ chordLabel,
11
+ currentPlatform
12
+ } from "./chunk-BTF7WNUT.js";
13
+ import {
14
+ rememberChats,
15
+ setSidebarOrder
16
+ } from "./chunk-NML44AW2.js";
8
17
  import {
9
18
  SessionRowHoverDetails
10
- } from "./chunk-XOFUXMPP.js";
19
+ } from "./chunk-ND2WCWXI.js";
11
20
  import {
12
21
  SiteSessionGroupHeading
13
- } from "./chunk-22ZBT6CN.js";
22
+ } from "./chunk-NQQKOJDI.js";
14
23
  import {
15
- TooltipWithKeys
16
- } from "./chunk-OHGG2G3A.js";
24
+ SessionBrowseOrderControls
25
+ } from "./chunk-HI75UTI6.js";
17
26
  import {
18
27
  ActiveWorkMark,
19
28
  RailTrailingMetadata,
20
29
  SessionRowContent,
21
30
  sessionRowAccessibleName
22
- } from "./chunk-PM3OSANE.js";
31
+ } from "./chunk-5MJHH72T.js";
23
32
  import {
24
- useActionShortcut,
25
- useChatOperations
26
- } from "./chunk-JK7C5A4I.js";
27
- import {
28
- rememberChats,
29
- setSidebarOrder
30
- } from "./chunk-OO2T63BY.js";
33
+ SiteOriginLink
34
+ } from "./chunk-MVZYNZXE.js";
31
35
  import {
32
36
  pinLiveAnnouncement
33
37
  } from "./chunk-GLYJV66C.js";
34
- import {
35
- notifySessionListChanged,
36
- subscribeToWorkspaceSessionListChanges
37
- } from "./chunk-O5S57N6H.js";
38
- import {
39
- railRowCreator
40
- } from "./chunk-KJJBQ3KV.js";
41
- import {
42
- applySessionChannelMove,
43
- beginSessionChannelMove,
44
- commitSessionChannelMove,
45
- discardRejectedSessionChannelMove,
46
- readSessionChannelMovePoint,
47
- reconcileSessionChannelMovePointRead,
48
- reconcileSessionChannelMoves,
49
- rollbackSessionChannelMove
50
- } from "./chunk-6BVT27Y2.js";
51
38
  import {
52
39
  DEFAULT_SESSION_BROWSE_PREFERENCES,
53
40
  readSessionBrowsePreferences,
@@ -55,6 +42,10 @@ import {
55
42
  sessionBrowsePreferencesCustomized,
56
43
  writeSessionBrowsePreferences
57
44
  } from "./chunk-VV5SNSIW.js";
45
+ import {
46
+ notifySessionListChanged,
47
+ subscribeToWorkspaceSessionListChanges
48
+ } from "./chunk-O5S57N6H.js";
58
49
  import {
59
50
  readSessionGroupWindows,
60
51
  sessionGroupWindowMemoryId,
@@ -68,10 +59,15 @@ import {
68
59
  sessionGroupWindowNodes
69
60
  } from "./chunk-QTDAWO6O.js";
70
61
  import {
71
- sessionMatchesPaginationGroup,
72
- sessionPaginationGroupQuery,
73
- sessionPaginationProjectGroup
74
- } from "./chunk-QRVNI5V6.js";
62
+ applySessionChannelMove,
63
+ beginSessionChannelMove,
64
+ commitSessionChannelMove,
65
+ discardRejectedSessionChannelMove,
66
+ readSessionChannelMovePoint,
67
+ reconcileSessionChannelMovePointRead,
68
+ reconcileSessionChannelMoves,
69
+ rollbackSessionChannelMove
70
+ } from "./chunk-6BVT27Y2.js";
75
71
  import {
76
72
  activeSessionContinuation,
77
73
  advanceSessionPageIdentity,
@@ -85,6 +81,19 @@ import {
85
81
  reconcileRetainedSessionContinuationChannel,
86
82
  sessionPageKey
87
83
  } from "./chunk-OSI2QWSL.js";
84
+ import {
85
+ sessionMatchesPaginationGroup,
86
+ sessionPaginationGroupQuery,
87
+ sessionPaginationProjectGroup
88
+ } from "./chunk-SCNEQFIW.js";
89
+ import {
90
+ sessionHoverDescription,
91
+ sessionHoverFacts
92
+ } from "./chunk-4MQLGMV2.js";
93
+ import {
94
+ sessionDescendantCountAria,
95
+ sessionDescendantCountText
96
+ } from "./chunk-XVVJBNUQ.js";
88
97
  import {
89
98
  emptySessionListDirtyScopes,
90
99
  invalidateSessionListScopes,
@@ -100,53 +109,53 @@ import {
100
109
  sessionBranchSummaryDecision,
101
110
  sessionBranchSummaryKey,
102
111
  upsertSessionBranchChild
103
- } from "./chunk-EU6XSQFM.js";
112
+ } from "./chunk-HPB4KSV3.js";
104
113
  import {
105
- sessionHoverDescription,
106
- sessionHoverFacts
107
- } from "./chunk-HOJGAJAB.js";
114
+ ChannelCreateDialog
115
+ } from "./chunk-6WVASCYA.js";
108
116
  import {
109
- sessionDescendantCountAria,
110
- sessionDescendantCountText
111
- } from "./chunk-XVVJBNUQ.js";
117
+ useSiteOpenedListener
118
+ } from "./chunk-JRSNCSZN.js";
112
119
  import {
113
120
  buildPinnedRailSections,
114
121
  channelRailSections,
115
122
  compareSessionBrowse,
116
123
  groupSessionForestForBrowse,
117
124
  mergeSessionForRail,
125
+ parseSiteRowKey,
118
126
  projectRailSessions,
119
127
  selectedDescendantNode,
120
128
  sessionBrowseResultCount,
121
129
  sessionCreatorLabelMap,
122
130
  sessionProjectTotals,
131
+ siteRowConversationCount,
123
132
  sortSessionForest,
124
133
  summarizeRailNodes,
125
134
  summarizeRailStatusCounts,
126
135
  visibleForestRows,
127
136
  visibleTreeRows
128
- } from "./chunk-BJIZ7PL7.js";
137
+ } from "./chunk-D64Z4V26.js";
129
138
  import {
130
139
  countNeedsYou,
131
140
  filterNeedsYou
132
141
  } from "./chunk-UBJWSGD4.js";
142
+ import {
143
+ sessionSiteOrigin
144
+ } from "./chunk-K3TJNJSU.js";
133
145
  import {
134
146
  MAX_VISUAL_TREE_DEPTH,
135
147
  defaultExpandedAncestors,
136
148
  sessionAncestorPath,
137
149
  sessionStateLabel,
138
150
  visualTreeDepth
139
- } from "./chunk-GTQ3SNEI.js";
140
- import {
141
- ChannelCreateDialog
142
- } from "./chunk-6WVASCYA.js";
151
+ } from "./chunk-E36IC3LU.js";
143
152
  import {
144
153
  useSessionListHintRefresh
145
- } from "./chunk-R25ZKOZR.js";
154
+ } from "./chunk-IJYL5BZM.js";
146
155
  import {
147
156
  requestCommandMenu,
148
157
  useRail
149
- } from "./chunk-UP4BE32Y.js";
158
+ } from "./chunk-VO6RVVP7.js";
150
159
  import {
151
160
  cancelSessionRowRevealIntent,
152
161
  consumeSessionRowRevealIntent,
@@ -165,15 +174,21 @@ import {
165
174
  subscribeToLocalSessionDeliveryAttention,
166
175
  subscribeToSessionAttentionChanges
167
176
  } from "./chunk-SDHGQUS4.js";
168
- import {
169
- useUiEventTarget
170
- } from "./chunk-WGPLDFEC.js";
171
177
  import {
172
178
  requestCreateComposerFocus
173
179
  } from "./chunk-HQA6FUM5.js";
180
+ import {
181
+ useUiEventTarget
182
+ } from "./chunk-WGPLDFEC.js";
174
183
  import {
175
184
  useInlineRename
176
- } from "./chunk-4EAF3HSD.js";
185
+ } from "./chunk-7J7PZB4S.js";
186
+ import {
187
+ railRouteSelection
188
+ } from "./chunk-Y5E3XQ2S.js";
189
+ import {
190
+ railRowCreator
191
+ } from "./chunk-KJJBQ3KV.js";
177
192
  import {
178
193
  formatWaitingSince
179
194
  } from "./chunk-5TLEWXAB.js";
@@ -208,7 +223,7 @@ import {
208
223
  } from "./chunk-JHZRAYI4.js";
209
224
  import {
210
225
  t
211
- } from "./chunk-HPPKLBTJ.js";
226
+ } from "./chunk-TJQDL3JH.js";
212
227
  import {
213
228
  isPersonalWorkspace
214
229
  } from "./chunk-74JEZLLQ.js";
@@ -219,10 +234,15 @@ import {
219
234
  Link,
220
235
  useNavigate,
221
236
  useRouterState
222
- } from "./chunk-MYNUBDU7.js";
237
+ } from "./chunk-VYKW6TB2.js";
223
238
  import {
224
239
  useAppContext
225
240
  } from "./chunk-W6KAUGXO.js";
241
+ import {
242
+ Tooltip,
243
+ TooltipContent,
244
+ TooltipTrigger
245
+ } from "./chunk-OLTGED2Q.js";
226
246
  import {
227
247
  DropdownMenu,
228
248
  DropdownMenuCheck,
@@ -233,23 +253,18 @@ import {
233
253
  DropdownMenuShortcut,
234
254
  DropdownMenuTrigger
235
255
  } from "./chunk-TREHTIBD.js";
236
- import {
237
- Tooltip,
238
- TooltipContent,
239
- TooltipTrigger
240
- } from "./chunk-OLTGED2Q.js";
241
256
  import {
242
257
  useChannels
243
- } from "./chunk-RKB2Z457.js";
258
+ } from "./chunk-5VGJXWQ2.js";
244
259
  import {
245
260
  useSessionLineage
246
- } from "./chunk-QEJTQTF5.js";
261
+ } from "./chunk-W6T5HR3Z.js";
247
262
  import {
248
263
  Button
249
264
  } from "./chunk-HMU5IELG.js";
250
265
  import {
251
266
  useWorkspaceSessions
252
- } from "./chunk-RGPYMHKI.js";
267
+ } from "./chunk-V3K4RQO7.js";
253
268
  import {
254
269
  SESSION_GROUP_LABELS,
255
270
  SESSION_GROUP_ORDER,
@@ -259,7 +274,7 @@ import {
259
274
  sessionDisplayTitle,
260
275
  sessionHasUpcomingSchedule,
261
276
  sessionInputWait
262
- } from "./chunk-Z5WMLJKI.js";
277
+ } from "./chunk-F2RMKGDQ.js";
263
278
  import {
264
279
  useOpenGeni
265
280
  } from "./chunk-TVQCDDSZ.js";
@@ -288,15 +303,97 @@ import {
288
303
  LinkIcon
289
304
  } from "lucide-react";
290
305
  import {
306
+ createContext,
291
307
  useCallback,
308
+ useContext,
292
309
  useEffect,
293
310
  useId,
294
311
  useLayoutEffect,
295
312
  useMemo,
296
313
  useRef,
297
314
  useState,
298
- useSyncExternalStore
315
+ useSyncExternalStore as useSyncExternalStore2
299
316
  } from "react";
317
+
318
+ // src/app/lib/actions/held-modifier.ts
319
+ import { useSyncExternalStore } from "react";
320
+ var HELD_MODIFIER_DELAY_MS = 350;
321
+ function createHeldModifierTracker(target, platform, timers = globalThis) {
322
+ const modifierKey = platform === "mac" ? "Meta" : "Control";
323
+ const listeners = /* @__PURE__ */ new Set();
324
+ let held = false;
325
+ let timer = null;
326
+ const set = (next) => {
327
+ if (held === next) return;
328
+ held = next;
329
+ for (const listener of listeners) listener();
330
+ };
331
+ const reset = () => {
332
+ if (timer !== null) timers.clearTimeout(timer);
333
+ timer = null;
334
+ set(false);
335
+ };
336
+ const onKeyDown = (event) => {
337
+ const keyEvent = event;
338
+ const alone = keyEvent.key === modifierKey && !keyEvent.shiftKey && !keyEvent.altKey && (platform === "mac" ? !keyEvent.ctrlKey : !keyEvent.metaKey);
339
+ if (!alone) {
340
+ reset();
341
+ return;
342
+ }
343
+ if (keyEvent.repeat || held || timer !== null) return;
344
+ timer = timers.setTimeout(() => {
345
+ timer = null;
346
+ set(true);
347
+ }, HELD_MODIFIER_DELAY_MS);
348
+ };
349
+ const onKeyUp = (event) => {
350
+ if (event.key === modifierKey) reset();
351
+ };
352
+ const onVisibility = () => reset();
353
+ return {
354
+ subscribe(listener) {
355
+ listeners.add(listener);
356
+ if (listeners.size === 1) {
357
+ target.addEventListener("keydown", onKeyDown, true);
358
+ target.addEventListener("keyup", onKeyUp, true);
359
+ target.addEventListener("blur", reset);
360
+ target.addEventListener("visibilitychange", onVisibility);
361
+ target.addEventListener("pointerdown", reset, true);
362
+ }
363
+ return () => {
364
+ listeners.delete(listener);
365
+ if (listeners.size > 0) return;
366
+ target.removeEventListener("keydown", onKeyDown, true);
367
+ target.removeEventListener("keyup", onKeyUp, true);
368
+ target.removeEventListener("blur", reset);
369
+ target.removeEventListener("visibilitychange", onVisibility);
370
+ target.removeEventListener("pointerdown", reset, true);
371
+ if (timer !== null) timers.clearTimeout(timer);
372
+ timer = null;
373
+ held = false;
374
+ };
375
+ },
376
+ held: () => held
377
+ };
378
+ }
379
+ var trackers = /* @__PURE__ */ new Map();
380
+ function windowTracker(platform) {
381
+ if (typeof window === "undefined") return null;
382
+ let tracker = trackers.get(platform);
383
+ if (!tracker) {
384
+ tracker = createHeldModifierTracker(window, platform);
385
+ trackers.set(platform, tracker);
386
+ }
387
+ return tracker;
388
+ }
389
+ var NEVER = { subscribe: () => () => {
390
+ }, held: () => false };
391
+ function useHeldModifier(platform, enabled) {
392
+ const tracker = (enabled ? windowTracker(platform) : null) ?? NEVER;
393
+ return useSyncExternalStore(tracker.subscribe, tracker.held, () => false);
394
+ }
395
+
396
+ // src/app/components/rail/session-list.tsx
300
397
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
301
398
  function isModifiedNavigationClick(event) {
302
399
  return event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.button !== 0;
@@ -356,10 +453,10 @@ function SessionList() {
356
453
  const setContextSession = context.setSession;
357
454
  const navigate = useNavigate();
358
455
  const activeSessionId = useRouterState({
359
- select: (state) => {
360
- const match = /\/sessions\/([^/]+)/.exec(state.location.pathname);
361
- return match?.[1] ?? null;
362
- }
456
+ select: (state) => railRouteSelection(state.location).sessionId
457
+ });
458
+ const activeSiteId = useRouterState({
459
+ select: (state) => railRouteSelection(state.location).siteId
363
460
  });
364
461
  const [documentForeground, setDocumentForeground] = useState(
365
462
  () => Boolean(document.visibilityState === "visible" && document.hasFocus())
@@ -438,6 +535,9 @@ function SessionList() {
438
535
  mineOnly,
439
536
  search,
440
537
  ...hierarchyMode ? { parentSessionId: null } : {},
538
+ // Sites are rows of their own: their conversations nest under them and
539
+ // arrive as complete Site rows. Search and Archived list them as rows.
540
+ siteConversations: hierarchyMode && browseStatus !== "archived" ? "group" : "include",
441
541
  archiveStatus: browseStatus,
442
542
  ...browseStatus === "archived" ? {} : { sortBy: browseSortBy },
443
543
  pollIntervalMs: listHintsAvailable ? void 0 : 15e3,
@@ -447,6 +547,7 @@ function SessionList() {
447
547
  projection: "summary",
448
548
  limit: 1,
449
549
  pinsOnly: true,
550
+ siteConversations: "include",
450
551
  includeTotals: !hierarchyMode || browseStatus === "archived",
451
552
  pollIntervalMs: listHintsAvailable ? void 0 : 15e3,
452
553
  beginRead: context.sessionChannelProjectionAuthority.beginRead
@@ -501,10 +602,19 @@ function SessionList() {
501
602
  },
502
603
  [refresh, refreshGlobalPins, refreshChannels]
503
604
  );
605
+ const refreshSiteRows = useCallback(() => void refresh(), [refresh]);
606
+ useSiteOpenedListener(
607
+ rail.workspaceId,
608
+ refreshSiteRows,
609
+ hierarchyMode && browseStatus !== "archived"
610
+ );
504
611
  useEffect(() => {
505
612
  if (workspaceSessionListEvent?.workspaceId !== rail.workspaceId) return;
506
- if (workspaceSessionListEvent.available)
507
- void refreshSessionPages(workspaceSessionListEvent.sessionIds);
613
+ if (!workspaceSessionListEvent.available) return;
614
+ const { sessionIds, siteSessionIds = [] } = workspaceSessionListEvent;
615
+ void refreshSessionPages(
616
+ sessionIds === null ? null : [...sessionIds, ...siteSessionIds.filter((id) => knownListSessions.current.has(id))]
617
+ );
508
618
  }, [workspaceSessionListEvent, rail.workspaceId, refreshSessionPages]);
509
619
  useEffect(() => {
510
620
  if (workspaceControlEvent) void refreshSessionPages();
@@ -658,14 +768,14 @@ function SessionList() {
658
768
  branchSummaryKeys.current.clear();
659
769
  activeBranchHydration.current = null;
660
770
  setChildPages(/* @__PURE__ */ new Map());
661
- }, [rail.workspaceId, hierarchyMode, browseSortBy, browseStatus]);
771
+ }, [rail.workspaceId, hierarchyMode, browseSortBy, browseStatus, needsYouOnly, mineOnly]);
662
772
  const [pinOverrides, setPinOverrides] = useState(
663
773
  () => /* @__PURE__ */ new Map()
664
774
  );
665
775
  const [channelMoveOverrides, setChannelMoveOverrides] = useState(
666
776
  () => /* @__PURE__ */ new Map()
667
777
  );
668
- const acceptedChannelReadRevision = useSyncExternalStore(
778
+ const acceptedChannelReadRevision = useSyncExternalStore2(
669
779
  context.sessionChannelProjectionAuthority.subscribe,
670
780
  context.sessionChannelProjectionAuthority.getRevision,
671
781
  context.sessionChannelProjectionAuthority.getRevision
@@ -1275,9 +1385,22 @@ function SessionList() {
1275
1385
  }, [browseSessions, browseStatus, hierarchyMode]);
1276
1386
  const railSections = useMemo(
1277
1387
  () => buildPinnedRailSections(projectedSessions, /* @__PURE__ */ new Date(), {
1278
- groupSites: hierarchyMode && browseGroupBy === "project"
1388
+ // Sites are stable rows whenever the rail is a hierarchy. Search is
1389
+ // flat: a matching conversation is listed as itself.
1390
+ groupSites: hierarchyMode,
1391
+ siteGroups: rootPage.siteGroups ?? void 0,
1392
+ siteRowsByProject: channelMode,
1393
+ workspaceId: rail.workspaceId,
1394
+ creator: { kind: "subject", subjectId: context.accessContext.subjectId }
1279
1395
  }),
1280
- [projectedSessions, hierarchyMode, browseGroupBy]
1396
+ [
1397
+ projectedSessions,
1398
+ hierarchyMode,
1399
+ rootPage.siteGroups,
1400
+ channelMode,
1401
+ rail.workspaceId,
1402
+ context.accessContext.subjectId
1403
+ ]
1281
1404
  );
1282
1405
  const forest = useMemo(
1283
1406
  () => sortSessionForest(
@@ -1674,8 +1797,14 @@ function SessionList() {
1674
1797
  for (const node of bucket.sessions) visit(node);
1675
1798
  }
1676
1799
  for (const node of archivedNodes) visit(node);
1800
+ for (const node of [
1801
+ ...railSections.ordinary.running,
1802
+ ...railSections.ordinary.grouped.flatMap((bucket) => bucket.sessions)
1803
+ ]) {
1804
+ if (node.siteGroup && !result.has(node.session.id)) result.set(node.session.id, node);
1805
+ }
1677
1806
  return result;
1678
- }, [archivedNodes, railSections.complete]);
1807
+ }, [archivedNodes, railSections.complete, railSections.ordinary]);
1679
1808
  const [manualExpanded, setManualExpanded] = useState(() => /* @__PURE__ */ new Set());
1680
1809
  const [manualCollapsed, setManualCollapsed] = useState(() => /* @__PURE__ */ new Set());
1681
1810
  const parentOf = useMemo(() => {
@@ -1729,10 +1858,22 @@ function SessionList() {
1729
1858
  );
1730
1859
  try {
1731
1860
  const readGeneration = context.sessionChannelProjectionAuthority.beginRead();
1861
+ const siteRow = parseSiteRowKey(parentSessionId);
1732
1862
  const page = await readLoadedSessionBranchWindow(
1733
1863
  (pageCursor) => context.client.listSessionSummaryPage(rail.workspaceId, {
1734
1864
  limit: 50,
1735
- parentSessionId,
1865
+ ...siteRow ? {
1866
+ parentSessionId: null,
1867
+ originSiteId: siteRow.siteId,
1868
+ ...siteRow.channelId !== void 0 ? { channelId: siteRow.channelId } : {},
1869
+ // Its conversations are roots: list exactly the set the
1870
+ // Site row's count was computed over.
1871
+ ...needsYouOnly ? { needsYouOnly: true } : {},
1872
+ ...mineOnly ? { mineOnly: true } : {}
1873
+ } : (
1874
+ // Work spawned by a Site conversation runs inside the Site too.
1875
+ { parentSessionId, siteConversations: "include" }
1876
+ ),
1736
1877
  ...pageCursor ? { cursor: pageCursor } : {},
1737
1878
  archiveStatus: browseStatus,
1738
1879
  sortBy: browseSortBy
@@ -1769,7 +1910,9 @@ function SessionList() {
1769
1910
  rail.workspaceId,
1770
1911
  branchReadRevision,
1771
1912
  browseSortBy,
1772
- browseStatus
1913
+ browseStatus,
1914
+ needsYouOnly,
1915
+ mineOnly
1773
1916
  ]
1774
1917
  );
1775
1918
  useEffect(() => {
@@ -1848,6 +1991,40 @@ function SessionList() {
1848
1991
  });
1849
1992
  }
1850
1993
  }, [allSessions, childPages, context.session, expanded, loadChildPage, branchReadRevision]);
1994
+ const siteRowSummaryKeys = useRef(/* @__PURE__ */ new Map());
1995
+ useEffect(() => {
1996
+ const newlyStale = /* @__PURE__ */ new Set();
1997
+ for (const [key, page] of childPages) {
1998
+ if (!parseSiteRowKey(key)) continue;
1999
+ const summary = nodesById.get(key)?.siteSummary;
2000
+ const next = summary ? [
2001
+ summary.conversations,
2002
+ summary.total,
2003
+ summary.attention,
2004
+ summary.failed,
2005
+ summary.active,
2006
+ summary.queued,
2007
+ summary.waiting,
2008
+ summary.unread,
2009
+ browseSortBy === "updatedAt" ? summary.updatedAt : ""
2010
+ ].join(":") : "";
2011
+ const previous = siteRowSummaryKeys.current.get(key);
2012
+ if (page.loading) continue;
2013
+ siteRowSummaryKeys.current.set(key, next);
2014
+ if (previous === void 0 || previous === next) continue;
2015
+ if (expanded.has(key)) void loadChildPage(key, void 0, { feedbackVisible: false });
2016
+ else if (!page.stale) newlyStale.add(key);
2017
+ }
2018
+ if (newlyStale.size === 0) return;
2019
+ setChildPages((current) => {
2020
+ const next = new Map(current);
2021
+ for (const key of newlyStale) {
2022
+ const page = next.get(key);
2023
+ if (page) next.set(key, { ...page, stale: true });
2024
+ }
2025
+ return next;
2026
+ });
2027
+ }, [childPages, expanded, loadChildPage, nodesById, browseSortBy]);
1851
2028
  const toggleExpand = useCallback(
1852
2029
  (sessionId) => {
1853
2030
  const opening = !expanded.has(sessionId);
@@ -1864,14 +2041,26 @@ function SessionList() {
1864
2041
  return next;
1865
2042
  });
1866
2043
  const node = nodesById.get(sessionId);
1867
- if (sessionId.startsWith("site:")) return;
1868
- const knownDirectChildren = node?.session.treeStats?.directChildren ?? node?.children.length ?? 0;
2044
+ const knownDirectChildren = node?.siteGroup ? siteRowConversationCount(node) : node?.session.treeStats?.directChildren ?? node?.children.length ?? 0;
1869
2045
  if (opening && hierarchyMode && knownDirectChildren > 0 && (!childPages.has(sessionId) || childPages.get(sessionId)?.failed === true || childPages.get(sessionId)?.stale === true)) {
1870
2046
  void loadChildPage(sessionId);
1871
2047
  }
1872
2048
  },
1873
2049
  [childPages, expanded, hierarchyMode, loadChildPage, nodesById]
1874
2050
  );
2051
+ const openSiteId = activeSiteId ?? (activeSessionId && context.session?.id === activeSessionId && context.session.parentSessionId === null ? sessionSiteOrigin(context.session)?.siteId ?? null : null);
2052
+ const siteRouteExpansion = useRef(null);
2053
+ useEffect(() => {
2054
+ if (!hierarchyMode || !openSiteId) {
2055
+ siteRouteExpansion.current = null;
2056
+ return;
2057
+ }
2058
+ if (!activeSessionId || siteRouteExpansion.current === openSiteId) return;
2059
+ const rows = [...nodesById.values()].filter((node) => node.siteGroup?.siteId === openSiteId);
2060
+ if (rows.length === 0) return;
2061
+ siteRouteExpansion.current = openSiteId;
2062
+ for (const row of rows) if (!expanded.has(row.session.id)) toggleExpand(row.session.id);
2063
+ }, [activeSessionId, expanded, hierarchyMode, nodesById, openSiteId, toggleExpand]);
1875
2064
  const visibleRows = useMemo(() => {
1876
2065
  const seen = /* @__PURE__ */ new Set();
1877
2066
  const ordinaryRows = channelMode ? channelSections.flatMap(
@@ -1927,9 +2116,13 @@ function SessionList() {
1927
2116
  directorySubject,
1928
2117
  rail.workspaceId,
1929
2118
  flat.map((session) => session.id),
1930
- pinned.map((session) => session.id)
2119
+ pinnedNodes.map((node) => node.session.id)
1931
2120
  );
1932
- }, [directorySubject, rail.workspaceId, flat, pinned]);
2121
+ }, [directorySubject, rail.workspaceId, flat, pinnedNodes]);
2122
+ const pinnedJumpNumbers = useMemo(
2123
+ () => new Map(pinnedNodes.slice(0, 9).map((node, index) => [node.session.id, index + 1])),
2124
+ [pinnedNodes]
2125
+ );
1933
2126
  useLayoutEffect(() => {
1934
2127
  const pending = pendingSessionFocus.current;
1935
2128
  const root = listRef.current;
@@ -2881,7 +3074,7 @@ function SessionList() {
2881
3074
  )
2882
3075
  ] }) : browseSessions.length === 0 && !hierarchyMode || !search && !browseControlsActive && allSessions.length === 0 && pinnedNodes.length === 0 ? /* @__PURE__ */ jsx(EmptySessions, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
2883
3076
  pinnedNodes.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
2884
- /* @__PURE__ */ jsx(
3077
+ /* @__PURE__ */ jsx(PinnedJumpNumbers.Provider, { value: pinnedJumpNumbers, children: /* @__PURE__ */ jsx(
2885
3078
  SessionGroup,
2886
3079
  {
2887
3080
  label: "Pinned",
@@ -2903,9 +3096,23 @@ function SessionList() {
2903
3096
  onArchive,
2904
3097
  onRequestDelete: setSessionPendingDelete
2905
3098
  }
2906
- ),
3099
+ ) }),
2907
3100
  pinnedTruncated ? /* @__PURE__ */ jsx("p", { className: "px-2 pb-2 text-[11px] text-fg-subtle", role: "status", children: "Showing the 100 most recently pinned sessions. Older pins are omitted." }) : null
2908
3101
  ] }) : null,
3102
+ hierarchyMode && browseStatus !== "archived" && rootPage.siteGroupsTruncated ? /* @__PURE__ */ jsxs("p", { className: "px-2 pb-2 text-[11px] text-fg-subtle", role: "status", children: [
3103
+ "Some older Sites aren't shown. Find them in",
3104
+ " ",
3105
+ /* @__PURE__ */ jsx(
3106
+ Link,
3107
+ {
3108
+ to: "/workspaces/$workspaceId/artifacts",
3109
+ params: { workspaceId: rail.workspaceId },
3110
+ className: "underline underline-offset-2 hover:text-fg",
3111
+ children: "Artifacts"
3112
+ }
3113
+ ),
3114
+ "."
3115
+ ] }) : null,
2909
3116
  browseStatus === "archived" ? null : channelMode ? renderedChannelSections.map((section) => /* @__PURE__ */ jsx(
2910
3117
  SessionGroup,
2911
3118
  {
@@ -3467,31 +3674,60 @@ function SessionGroup(props) {
3467
3674
  function SiteSessionGroupRow(props) {
3468
3675
  const { node } = props;
3469
3676
  const origin = node.siteGroup;
3470
- const key = `site:${origin.siteId}`;
3677
+ const key = node.session.id;
3471
3678
  const expanded = props.expanded.has(key);
3472
- const summary = summarizeRailNodes(node.children, props.localDeliveryAttention);
3679
+ const summary = summarizeRailNodes([node], props.localDeliveryAttention);
3473
3680
  const selected = selectedDescendantNode(node, props.activeSessionId);
3474
3681
  const children = expanded ? node.children : selected ? [selected] : [];
3682
+ const page = props.childPages.get(key);
3683
+ const count = siteRowConversationCount(node);
3684
+ const activeSiteId = useRouterState({
3685
+ select: (state) => railRouteSelection(state.location).siteId
3686
+ });
3475
3687
  return /* @__PURE__ */ jsxs("div", { role: "listitem", className: "min-w-0", children: [
3476
3688
  /* @__PURE__ */ jsx(
3477
3689
  SiteSessionGroupHeading,
3478
3690
  {
3479
3691
  origin,
3480
3692
  workspaceId: node.session.workspaceId,
3693
+ active: activeSiteId === origin.siteId && props.activeSessionId === null,
3481
3694
  expanded,
3482
3695
  onToggle: () => props.onToggleExpand(key),
3483
- summary
3696
+ summary,
3697
+ count,
3698
+ relativeTime: relativeTimeLabel(t, node.session.updatedAt),
3699
+ depth: props.depth
3484
3700
  }
3485
3701
  ),
3486
- children.length > 0 && /* @__PURE__ */ jsx("div", { role: "list", "aria-label": `Conversations from ${origin.title}`, children: children.map((child) => /* @__PURE__ */ jsx(
3487
- SessionTreeRow,
3488
- {
3489
- ...props,
3490
- node: child,
3491
- depth: props.depth + 1
3492
- },
3493
- child.session.id
3494
- )) })
3702
+ children.length > 0 || expanded && page ? /* @__PURE__ */ jsxs("div", { role: "list", "aria-label": `Conversations from ${origin.title}`, children: [
3703
+ children.map((child) => /* @__PURE__ */ jsx(
3704
+ SessionTreeRow,
3705
+ {
3706
+ ...props,
3707
+ node: child,
3708
+ depth: props.depth + 1,
3709
+ nestedInSiteId: origin.siteId
3710
+ },
3711
+ child.session.id
3712
+ )),
3713
+ expanded && page?.loading && page.feedbackVisible ? /* @__PURE__ */ jsx(TreeLoadRow, { depth: props.depth + 1, text: "Loading conversations\u2026" }) : null,
3714
+ expanded && page?.failed && page.feedbackVisible ? /* @__PURE__ */ jsx(
3715
+ TreeLoadRow,
3716
+ {
3717
+ depth: props.depth + 1,
3718
+ text: "Retry loading conversations",
3719
+ onClick: () => void props.onLoadMoreChildren(key, page.retryCursor ?? void 0)
3720
+ }
3721
+ ) : null,
3722
+ expanded && !page?.loading && !page?.failed && page?.nextCursor ? /* @__PURE__ */ jsx(
3723
+ TreeLoadRow,
3724
+ {
3725
+ depth: props.depth + 1,
3726
+ text: "Show more",
3727
+ onClick: () => void props.onLoadMoreChildren(key, page.nextCursor)
3728
+ }
3729
+ ) : null
3730
+ ] }) : null
3495
3731
  ] });
3496
3732
  }
3497
3733
  function SessionTreeRow(props) {
@@ -3530,7 +3766,8 @@ function SessionTreeRow(props) {
3530
3766
  onMoveToChannel: props.onMoveToChannel,
3531
3767
  onUpdateAttention: props.onUpdateAttention,
3532
3768
  onArchive: props.onArchive,
3533
- onRequestDelete: props.onRequestDelete
3769
+ onRequestDelete: props.onRequestDelete,
3770
+ nestedInSiteId: props.nestedInSiteId
3534
3771
  }
3535
3772
  ),
3536
3773
  hasVisibleChildRegion ? /* @__PURE__ */ jsxs("div", { role: "list", "aria-label": `Spawned sessions from ${title}`, children: [
@@ -3618,6 +3855,18 @@ function TreeLoadRow({
3618
3855
  }
3619
3856
  ) }) : /* @__PURE__ */ jsx("div", { role: "listitem", children: /* @__PURE__ */ jsx("div", { style, className: "flex h-8 items-center text-xs text-fg-subtle", role: "status", children: text }) });
3620
3857
  }
3858
+ var PinnedJumpNumbers = createContext(null);
3859
+ function usePinnedJumpKey(sessionId, depth, mobile) {
3860
+ const jumpNumber = useContext(PinnedJumpNumbers)?.get(sessionId);
3861
+ const pinnedKeys = useActionShortcut("go.pinnedChat");
3862
+ const platform = currentPlatform();
3863
+ const held = useHeldModifier(
3864
+ platform,
3865
+ Boolean(pinnedKeys && jumpNumber && depth === 0 && !mobile)
3866
+ );
3867
+ if (!held || !pinnedKeys || !jumpNumber) return void 0;
3868
+ return chordLabel({ ...pinnedKeys.chord, code: `Digit${jumpNumber}` }, platform);
3869
+ }
3621
3870
  function SessionRow(props) {
3622
3871
  const rail = useRail();
3623
3872
  const context = useAppContext();
@@ -3630,6 +3879,7 @@ function SessionRow(props) {
3630
3879
  const hasChildren = props.hasChildren;
3631
3880
  const focusEvents = useUiEventTarget("window");
3632
3881
  const creator = railRowCreator(props.session);
3882
+ const jumpKey = usePinnedJumpKey(props.session.id, props.depth, rail.isMobile);
3633
3883
  const [hoverOpen, setHoverOpen] = useState(false);
3634
3884
  useEffect(() => {
3635
3885
  if (!hoverOpen || typeof document === "undefined") return;
@@ -3741,7 +3991,7 @@ function SessionRow(props) {
3741
3991
  children: [
3742
3992
  /* @__PURE__ */ jsx(ContextMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs("div", { className: rowClassName, children: [
3743
3993
  lead,
3744
- /* @__PURE__ */ jsx(SiteOriginLink, { session: props.session, compact: true }),
3994
+ props.nestedInSiteId ? null : /* @__PURE__ */ jsx(SiteOriginLink, { session: props.session, compact: true }),
3745
3995
  /* @__PURE__ */ jsxs(
3746
3996
  HoverCard,
3747
3997
  {
@@ -3753,7 +4003,14 @@ function SessionRow(props) {
3753
4003
  /* @__PURE__ */ jsx(HoverCardTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
3754
4004
  Link,
3755
4005
  {
3756
- to: "/workspaces/$workspaceId/sessions/$sessionId",
4006
+ ...props.nestedInSiteId ? {
4007
+ to: "/workspaces/$workspaceId/sites/$siteId",
4008
+ params: { workspaceId: rail.workspaceId, siteId: props.nestedInSiteId },
4009
+ search: { conversation: props.session.id }
4010
+ } : {
4011
+ to: "/workspaces/$workspaceId/sessions/$sessionId",
4012
+ params: { workspaceId: rail.workspaceId, sessionId: props.session.id }
4013
+ },
3757
4014
  draggable: props.session.parentSessionId === null && !props.session.archived,
3758
4015
  onDragStart: (event) => {
3759
4016
  if (props.session.parentSessionId !== null || props.session.archived) {
@@ -3764,7 +4021,6 @@ function SessionRow(props) {
3764
4021
  event.dataTransfer.effectAllowed = "move";
3765
4022
  event.dataTransfer.setData(SESSION_DRAG_TYPE, props.session.id);
3766
4023
  },
3767
- params: { workspaceId: rail.workspaceId, sessionId: props.session.id },
3768
4024
  "data-session-index": props.index,
3769
4025
  "data-session-focus": true,
3770
4026
  "data-session-row": props.session.id,
@@ -3836,6 +4092,7 @@ function SessionRow(props) {
3836
4092
  summary: props.aggregateStatus,
3837
4093
  scheduled: sessionHasUpcomingSchedule(props.session),
3838
4094
  relativeTime: rail.isMobile ? void 0 : relativeTime,
4095
+ jumpKey,
3839
4096
  creator
3840
4097
  }
3841
4098
  )
@@ -4349,4 +4606,4 @@ export {
4349
4606
  CollapsedSessionsButton,
4350
4607
  isStillRunningDeleteRefusal
4351
4608
  };
4352
- //# sourceMappingURL=chunk-4R3JCVID.js.map
4609
+ //# sourceMappingURL=chunk-RAMZTZOB.js.map