@opengeni/react 4.3.3-canary.39786771332001 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (710) hide show
  1. package/dist/app/app-state.js +29 -29
  2. package/dist/app/components/Composer.js +27 -27
  3. package/dist/app/components/agent/agent-capability-picker.js +4 -4
  4. package/dist/app/components/artifacts/artifact-browse-controls.js +2 -2
  5. package/dist/app/components/artifacts/artifact-library.js +19 -19
  6. package/dist/app/components/artifacts/artifact-page-chrome.js +2 -2
  7. package/dist/app/components/artifacts/chat-interactive-block.js +16 -16
  8. package/dist/app/components/artifacts/inline-chat-image.js +31 -30
  9. package/dist/app/components/artifacts/retained-file-preview.js +35 -34
  10. package/dist/app/components/artifacts/retained-text-preview.js +5 -5
  11. package/dist/app/components/artifacts/site-audience.js +4 -4
  12. package/dist/app/components/artifacts/site-conversations.js +22 -21
  13. package/dist/app/components/artifacts/site-data.js +19 -19
  14. package/dist/app/components/artifacts/site-publishing.js +41 -41
  15. package/dist/app/components/artifacts/site-settings.js +50 -50
  16. package/dist/app/components/billing-class-mark.js +5 -5
  17. package/dist/app/components/capabilities/capability-detail-sheet.js +9 -9
  18. package/dist/app/components/capabilities/capability-logo-source.js +12 -12
  19. package/dist/app/components/capabilities/connector-tool-permissions.js +3 -3
  20. package/dist/app/components/capabilities/native-connect-setup.js +14 -14
  21. package/dist/app/components/capabilities/perform-capability-action.js +1 -1
  22. package/dist/app/components/capabilities/prepared-mcp-setup-card.js +16 -16
  23. package/dist/app/components/capabilities/session-capability-card.js +94 -76
  24. package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
  25. package/dist/app/components/capabilities/session-chrome-card.css +1023 -0
  26. package/dist/app/components/capabilities/session-chrome-card.css.map +1 -0
  27. package/dist/app/components/capabilities/session-chrome-card.d.ts +18 -0
  28. package/dist/app/components/capabilities/session-chrome-card.js +72 -0
  29. package/dist/app/components/capabilities/session-custom-mcp-card.js +20 -20
  30. package/dist/app/components/capabilities/session-github-card.js +24 -24
  31. package/dist/app/components/capabilities/session-machine-card.d.ts +27 -1
  32. package/dist/app/components/capabilities/session-machine-card.js +40 -36
  33. package/dist/app/components/capabilities/use-capabilities-catalog.js +3 -3
  34. package/dist/app/components/capabilities/use-connection-accounts.js +1 -1
  35. package/dist/app/components/command-menu/chat-status.js +18 -17
  36. package/dist/app/components/command-menu/chat-switcher.js +19 -18
  37. package/dist/app/components/command-menu/chat-switcher.js.map +1 -1
  38. package/dist/app/components/command-menu/command-menu.js +36 -114
  39. package/dist/app/components/command-menu/command-menu.js.map +1 -1
  40. package/dist/app/components/command-menu/shortcut-sheet.js +17 -17
  41. package/dist/app/components/composer-capabilities-menu-body.js +3 -3
  42. package/dist/app/components/composer-mobile-plus-panel.js +20 -20
  43. package/dist/app/components/composer-mobile-plus.js +1 -1
  44. package/dist/app/components/credit-required-gate.js +1 -1
  45. package/dist/app/components/credit-required-prompt.js +12 -12
  46. package/dist/app/components/credits/coupon-redeem.js +2 -2
  47. package/dist/app/components/credits/credit-refusal-notice.js +2 -2
  48. package/dist/app/components/desktop/app-shots.js +7 -7
  49. package/dist/app/components/desktop/this-computer.js +4 -4
  50. package/dist/app/components/feedback.js +4 -4
  51. package/dist/app/components/follow-up-repository-menu-body.js +5 -5
  52. package/dist/app/components/follow-up-repository-picker.js +1 -1
  53. package/dist/app/components/github-app-connect-launcher.js +2 -2
  54. package/dist/app/components/in-app-help-link.js +2 -2
  55. package/dist/app/components/knowledge/agent-learning-settings.js +3 -3
  56. package/dist/app/components/machines/connect-machine-dialog.js +18 -18
  57. package/dist/app/components/markdown.js +9 -9
  58. package/dist/app/components/message-context-pills.js +2 -2
  59. package/dist/app/components/models/models-ui.js +8 -8
  60. package/dist/app/components/new-session-starters.js +2 -2
  61. package/dist/app/components/pickers.js +9 -9
  62. package/dist/app/components/rail/rail-context.js +2 -2
  63. package/dist/app/components/rail/rail-sections.js +69 -66
  64. package/dist/app/components/rail/session-header.js +49 -48
  65. package/dist/app/components/rail/session-list.js +68 -65
  66. package/dist/app/components/rail/session-row-content.d.ts +6 -2
  67. package/dist/app/components/rail/session-row-content.js +1 -1
  68. package/dist/app/components/rail/session-row-hover-details.js +24 -23
  69. package/dist/app/components/rail/session-shell.js +107 -104
  70. package/dist/app/components/rail/site-session-group-heading.d.ts +7 -1
  71. package/dist/app/components/rail/site-session-group-heading.js +20 -3
  72. package/dist/app/components/repository-picker.js +5 -5
  73. package/dist/app/components/secrets/session-secrets-panel.js +3 -3
  74. package/dist/app/components/session/agent-configuration-panel.js +38 -38
  75. package/dist/app/components/session/artifact-link-boundary.js +2 -2
  76. package/dist/app/components/session/artifact-session-page.js +4 -4
  77. package/dist/app/components/session/banners.js +11 -11
  78. package/dist/app/components/session/codex-account-indicator.js +12 -12
  79. package/dist/app/components/session/editable-artifacts-workspace.js +45 -45
  80. package/dist/app/components/session/failed-session-banner.js +11 -11
  81. package/dist/app/components/session/human-input.js +59 -55
  82. package/dist/app/components/session/inspector.js +91 -87
  83. package/dist/app/components/session/inspector.js.map +1 -1
  84. package/dist/app/components/session/message-actions.js +4 -4
  85. package/dist/app/components/session/message-resource-attachments.js +21 -20
  86. package/dist/app/components/session/message-resource-attachments.js.map +1 -1
  87. package/dist/app/components/session/model-account-indicator.js +11 -11
  88. package/dist/app/components/session/model-context-inspector.js +2 -2
  89. package/dist/app/components/session/model-recovery-notice.js +3 -3
  90. package/dist/app/components/session/new-session-settings-menu.js +12 -12
  91. package/dist/app/components/session/sandbox-switcher.js +16 -16
  92. package/dist/app/components/session/sandbox-workspace.js +83 -79
  93. package/dist/app/components/session/search-markdown-highlight.js +10 -10
  94. package/dist/app/components/session/search-results-view.js +11 -11
  95. package/dist/app/components/session/session-admin-access.js +9 -9
  96. package/dist/app/components/session/session-admission-notice.js +6 -6
  97. package/dist/app/components/session/session-machine-access-notice.js +6 -6
  98. package/dist/app/components/session/session-retention.js +4 -4
  99. package/dist/app/components/session/session-search-dialog.js +12 -12
  100. package/dist/app/components/session/session-skill-reviews.js +1 -1
  101. package/dist/app/components/session/session-tenancy-control.d.ts +2 -0
  102. package/dist/app/components/session/session-tenancy-control.js +41 -26
  103. package/dist/app/components/session/session-tenancy-control.js.map +1 -1
  104. package/dist/app/components/session/session-usage-limit-section.js +11 -11
  105. package/dist/app/components/session/session-wait-status.js +10 -9
  106. package/dist/app/components/session/session-wait-status.js.map +1 -1
  107. package/dist/app/components/session/site-origin-link.d.ts +1 -0
  108. package/dist/app/components/session/site-origin-link.js +2 -2
  109. package/dist/app/components/session/subagents.js +17 -16
  110. package/dist/app/components/session-connectors-menu-body.js +5 -5
  111. package/dist/app/components/settings/row-select.js +1 -1
  112. package/dist/app/components/transcription-settings.js +2 -2
  113. package/dist/app/components/ui/destructive-confirm.js +6 -6
  114. package/dist/app/components/usage/usage-entry.js +8 -8
  115. package/dist/app/components/workspace-composer-plus.js +22 -22
  116. package/dist/app/embed/memory-navigation.js +2 -2
  117. package/dist/app/embed/session-app.js +275 -269
  118. package/dist/app/lib/actions/actions-provider.js +14 -14
  119. package/dist/app/lib/actions/held-modifier.d.ts +11 -0
  120. package/dist/app/lib/app-surfaces.js +2 -2
  121. package/dist/app/lib/codex-usage-query.js +6 -6
  122. package/dist/app/lib/composer-connectors.js +13 -13
  123. package/dist/app/lib/console-site.d.ts +6 -0
  124. package/dist/app/lib/console-site.js +14 -0
  125. package/dist/app/lib/console-text.js +2 -2
  126. package/dist/app/lib/events.js +18 -17
  127. package/dist/app/lib/failed-session-copy.js +3 -3
  128. package/dist/app/lib/model-access-onboarding.js +3 -3
  129. package/dist/app/lib/move-chat-to-machine.js +3 -3
  130. package/dist/app/lib/navigation.d.ts +5 -0
  131. package/dist/app/lib/navigation.js +1 -1
  132. package/dist/app/lib/routes.d.ts +17 -0
  133. package/dist/app/lib/routes.js +9 -3
  134. package/dist/app/lib/session-branch-cache.js +14 -13
  135. package/dist/app/lib/session-create.js +2 -2
  136. package/dist/app/lib/session-deep-link.js +2 -2
  137. package/dist/app/lib/session-failure-toasts.d.ts +8 -0
  138. package/dist/app/lib/session-group-pagination.js +14 -13
  139. package/dist/app/lib/session-hover-facts.js +15 -14
  140. package/dist/app/lib/session-model.js +3 -3
  141. package/dist/app/lib/session-rail.js +10 -9
  142. package/dist/app/lib/session-rename.js +3 -3
  143. package/dist/app/lib/session-ui-features.d.ts +6 -1
  144. package/dist/app/lib/session-ui-features.js +1 -1
  145. package/dist/app/lib/sessions-group.d.ts +43 -3
  146. package/dist/app/lib/sessions-group.js +22 -15
  147. package/dist/app/lib/shared-query.js +3 -3
  148. package/dist/app/lib/site-opened.d.ts +6 -0
  149. package/dist/app/lib/site-opened.js +10 -0
  150. package/dist/app/lib/turn-failure-analytics.js +5 -5
  151. package/dist/app/lib/use-duplicate-site.js +3 -3
  152. package/dist/app/lib/use-follow-up-repositories.js +4 -4
  153. package/dist/app/lib/use-session-list-hint-refresh.d.ts +20 -2
  154. package/dist/app/lib/use-session-list-hint-refresh.js +5 -1
  155. package/dist/app/lib/use-workspace-machines.js +6 -6
  156. package/dist/app/lib/use-workspace-model-catalog.js +8 -8
  157. package/dist/app/lib/use-workspace-rigs.js +8 -8
  158. package/dist/app/lib/workspace-navigation-preference.js +5 -5
  159. package/dist/app/lib/workspace-scope-context.js +4 -4
  160. package/dist/app/routes/artifacts.js +136 -153
  161. package/dist/app/routes/artifacts.js.map +1 -1
  162. package/dist/app/routes/retained-artifact.js +63 -62
  163. package/dist/app/routes/retained-artifact.js.map +1 -1
  164. package/dist/app/routes/session-unavailable.js +7 -5
  165. package/dist/app/routes/session.js +177 -173
  166. package/dist/app/routes/sessions-index-hydration.js +3 -3
  167. package/dist/app/routes/sessions-index.js +123 -121
  168. package/dist/app/routes/site-view.d.ts +11 -0
  169. package/dist/app/routes/site-view.js +597 -0
  170. package/dist/app/routes/site-view.js.map +1 -0
  171. package/dist/artifacts-document.js +4 -4
  172. package/dist/artifacts-presentation.js +4 -4
  173. package/dist/artifacts-spreadsheet.js +4 -4
  174. package/dist/artifacts.js +39 -39
  175. package/dist/{browser-viewer-RYYQSRTC.js → browser-viewer-QMCNV4RI.js} +9 -7
  176. package/dist/{chat-interactive-block-ABCRKXJ4.js → chat-interactive-block-PMIAUXSO.js} +6 -6
  177. package/dist/{chunk-GIZGNFIX.js → chunk-22FFOHPT.js} +11 -11
  178. package/dist/chunk-22GTC4MZ.js +15 -0
  179. package/dist/chunk-22GTC4MZ.js.map +1 -0
  180. package/dist/{chunk-Z5WMLJKI.js → chunk-22JFMNMF.js} +92 -4
  181. package/dist/chunk-22JFMNMF.js.map +1 -0
  182. package/dist/{chunk-UHFWF6ZU.js → chunk-2FPS5H2D.js} +2 -2
  183. package/dist/{chunk-NAWXARTY.js → chunk-2KO2G3RI.js} +72 -6
  184. package/dist/chunk-2KO2G3RI.js.map +1 -0
  185. package/dist/{chunk-5POTDNQT.js → chunk-2NC7NZCE.js} +6 -6
  186. package/dist/{chunk-ZKYYZH6L.js → chunk-2QBYDGWO.js} +9 -9
  187. package/dist/{chunk-TWXIFWBD.js → chunk-34EU25RL.js} +2 -2
  188. package/dist/{chunk-LQKKSUCR.js → chunk-35BC2FU2.js} +19 -19
  189. package/dist/{chunk-PTGRFAMH.js → chunk-3ABPIUCK.js} +2 -2
  190. package/dist/{chunk-S4SC5SSV.js → chunk-3GU7AWG7.js} +18 -18
  191. package/dist/{chunk-722UO6YQ.js → chunk-3PEXVG4D.js} +2 -2
  192. package/dist/{chunk-OQAAI33Y.js → chunk-3RMKPHBL.js} +3 -3
  193. package/dist/{chunk-6JKZILLF.js → chunk-3RQUWFZT.js} +67 -67
  194. package/dist/{chunk-6JKZILLF.js.map → chunk-3RQUWFZT.js.map} +1 -1
  195. package/dist/{chunk-GCGTYXJJ.js → chunk-3STBLX4O.js} +9 -9
  196. package/dist/{chunk-YXIW7H4N.js → chunk-3X5FKDYQ.js} +28 -28
  197. package/dist/{chunk-KTRKZRID.js → chunk-4GLLWX33.js} +11 -11
  198. package/dist/{chunk-ROQOVH4N.js → chunk-4HEXNAFI.js} +20 -20
  199. package/dist/chunk-4HEXNAFI.js.map +1 -0
  200. package/dist/{chunk-SD2K5ZN5.js → chunk-4LPA25NQ.js} +4 -4
  201. package/dist/{chunk-DKCX643S.js → chunk-4RMN4E2Y.js} +13 -13
  202. package/dist/{chunk-E5FCEDMU.js → chunk-4SAGYEVB.js} +2 -2
  203. package/dist/{chunk-HTT3FB7T.js → chunk-4VK2R5QC.js} +3 -3
  204. package/dist/{chunk-CKG2EG62.js → chunk-4XQC7VLT.js} +14 -14
  205. package/dist/{chunk-IVOA3DXA.js → chunk-4YXAQMTD.js} +12 -12
  206. package/dist/{chunk-HOJGAJAB.js → chunk-52WK2GGK.js} +8 -8
  207. package/dist/{chunk-NYZQ7LO7.js → chunk-552UYIQ7.js} +20 -20
  208. package/dist/{chunk-LEXPBQ56.js → chunk-5DSKMG2I.js} +4 -4
  209. package/dist/{chunk-WNG757ID.js → chunk-5FA455GR.js} +4 -4
  210. package/dist/{chunk-MNWQAYY3.js → chunk-5FEN3KYH.js} +11 -11
  211. package/dist/{chunk-OSVHU2WU.js → chunk-5JHRMUAZ.js} +12 -12
  212. package/dist/{chunk-PM3OSANE.js → chunk-5MJHH72T.js} +14 -3
  213. package/dist/chunk-5MJHH72T.js.map +1 -0
  214. package/dist/{chunk-RKB2Z457.js → chunk-5VGJXWQ2.js} +2 -2
  215. package/dist/{chunk-GFUUFM2O.js → chunk-5W6ZDKRR.js} +6 -6
  216. package/dist/{chunk-NDETTZQA.js → chunk-5W7KJ5NQ.js} +37 -37
  217. package/dist/{chunk-Q35YZVDZ.js → chunk-5Y2FPLZE.js} +9 -9
  218. package/dist/{chunk-6W3LF3DB.js → chunk-5YFY4SFC.js} +2 -12
  219. package/dist/chunk-5YFY4SFC.js.map +1 -0
  220. package/dist/{chunk-F3NERYBQ.js → chunk-62VER7O4.js} +6 -6
  221. package/dist/{chunk-FBMU3VK5.js → chunk-6DCEDIF6.js} +2 -2
  222. package/dist/{chunk-WUHB422G.js → chunk-73WI7FL2.js} +18 -18
  223. package/dist/chunk-756MKA2J.js +45 -0
  224. package/dist/chunk-756MKA2J.js.map +1 -0
  225. package/dist/{chunk-QECZVL7S.js → chunk-7FJMRJDG.js} +2 -2
  226. package/dist/{chunk-7KGKDWWR.js → chunk-7HFLYNWN.js} +2 -2
  227. package/dist/{chunk-XVM566II.js → chunk-7KIENXRE.js} +2 -2
  228. package/dist/{chunk-CBY5CXBD.js → chunk-7NPCEBZE.js} +5 -5
  229. package/dist/{chunk-46VBQG2D.js → chunk-7P4AQMGA.js} +13 -13
  230. package/dist/{chunk-CKZW7A5S.js → chunk-7TCT7KPQ.js} +742 -644
  231. package/dist/chunk-7TCT7KPQ.js.map +1 -0
  232. package/dist/{chunk-O77Q4NG2.js → chunk-7XO7YKPC.js} +283 -1038
  233. package/dist/chunk-7XO7YKPC.js.map +1 -0
  234. package/dist/{chunk-S7PVL7XH.js → chunk-A4BD4ZVB.js} +4 -4
  235. package/dist/{chunk-VSQHDBHU.js → chunk-ACL2V2KE.js} +68 -35
  236. package/dist/chunk-ACL2V2KE.js.map +1 -0
  237. package/dist/{chunk-73SOCVLS.js → chunk-AIEXYO2X.js} +3 -3
  238. package/dist/{chunk-U7TC2XJQ.js → chunk-AJPW3SV4.js} +3 -3
  239. package/dist/{chunk-HRJQAFKR.js → chunk-AX6YJA5U.js} +2 -2
  240. package/dist/{chunk-P5WABK2H.js → chunk-BCM7C3MJ.js} +9 -9
  241. package/dist/{chunk-DT7BORXG.js → chunk-BMJTNPWK.js} +2 -2
  242. package/dist/{chunk-HIHO2QE7.js → chunk-BT2MVGHT.js} +2 -2
  243. package/dist/{chunk-3XOISKZC.js → chunk-BXQYAAVE.js} +4 -4
  244. package/dist/{chunk-IBTXYLBW.js → chunk-CCFWY4GF.js} +2 -2
  245. package/dist/{chunk-ZOC3OP6F.js → chunk-CCR33J7L.js} +2 -2
  246. package/dist/{chunk-GTQ3SNEI.js → chunk-CD3MO3IC.js} +2 -2
  247. package/dist/{chunk-WSMYOLHG.js → chunk-CDEXRJB6.js} +5 -5
  248. package/dist/{chunk-3GLAPCVI.js → chunk-CFFNT2OY.js} +8 -8
  249. package/dist/{chunk-FUSFVUIJ.js → chunk-CMLJSF2F.js} +12 -12
  250. package/dist/{chunk-O4DYOSOL.js → chunk-CP7ZQHBW.js} +13 -13
  251. package/dist/{chunk-IOKSNX74.js → chunk-D5OWJZQR.js} +2 -2
  252. package/dist/{chunk-SQGXMHJO.js → chunk-DGLRZMXL.js} +3 -3
  253. package/dist/{chunk-GNEHAPKV.js → chunk-DJFTH2DI.js} +3 -3
  254. package/dist/{chunk-HQG4SLTE.js → chunk-DYJGYGPB.js} +2 -2
  255. package/dist/{chunk-4EAF3HSD.js → chunk-EJ7WARW7.js} +2 -2
  256. package/dist/{chunk-3AA6RNGE.js → chunk-ENS6E4RZ.js} +2 -2
  257. package/dist/{chunk-OOEO4MKY.js → chunk-EPWD4KRA.js} +2 -2
  258. package/dist/{chunk-V5RJAWRP.js → chunk-EQE3MNQN.js} +5 -5
  259. package/dist/{chunk-TSBE4KOQ.js → chunk-EWL6NDOO.js} +3 -3
  260. package/dist/{chunk-OO2T63BY.js → chunk-EYS4ZOF5.js} +2 -2
  261. package/dist/{chunk-IC7KNOBB.js → chunk-FDAV72IX.js} +7 -7
  262. package/dist/{chunk-AG7VGUIW.js → chunk-FFNPUSVO.js} +7 -7
  263. package/dist/{chunk-P5T36BA3.js → chunk-FRP64DEK.js} +2 -2
  264. package/dist/{chunk-KBF3SE7G.js → chunk-FSP334UU.js} +2 -2
  265. package/dist/{chunk-ZHFKMMOT.js → chunk-FTX5CNHA.js} +6 -6
  266. package/dist/{chunk-KYBALSWW.js → chunk-FWOBNL2A.js} +1 -1
  267. package/dist/{chunk-HJ5XWW62.js → chunk-FWYEZ3LE.js} +34 -34
  268. package/dist/{chunk-WSLPZ43N.js → chunk-G4HQUBO4.js} +12 -12
  269. package/dist/{chunk-CSHBR2IZ.js → chunk-GDLDBR6B.js} +2 -2
  270. package/dist/chunk-GGV4NSG3.js +792 -0
  271. package/dist/chunk-GGV4NSG3.js.map +1 -0
  272. package/dist/{chunk-G3S2F35T.js → chunk-GHHM6WN4.js} +3 -3
  273. package/dist/{chunk-OANSIX34.js → chunk-GRSODLVO.js} +4 -4
  274. package/dist/{chunk-DDIBZA4X.js → chunk-GT7JFQ4E.js} +405 -148
  275. package/dist/chunk-GT7JFQ4E.js.map +1 -0
  276. package/dist/{chunk-EU6XSQFM.js → chunk-GXW2I2M2.js} +2 -2
  277. package/dist/{chunk-4246UYVG.js → chunk-GZS37O3G.js} +1 -1
  278. package/dist/{chunk-XFNLU7EW.js → chunk-H5M33DAL.js} +15 -6
  279. package/dist/chunk-H5M33DAL.js.map +1 -0
  280. package/dist/{chunk-Y7WMW74G.js → chunk-HQWVDQXW.js} +7 -7
  281. package/dist/{chunk-YTZQV2DD.js → chunk-HU6JTNWF.js} +2 -2
  282. package/dist/{chunk-QRVNI5V6.js → chunk-I6KIQKU6.js} +3 -3
  283. package/dist/{chunk-Q262Y2YX.js → chunk-IBA5FMRE.js} +141 -137
  284. package/dist/chunk-IBA5FMRE.js.map +1 -0
  285. package/dist/{chunk-BNUPYHHZ.js → chunk-IDXTASGN.js} +4 -4
  286. package/dist/{chunk-KF3MF6FP.js → chunk-IECRGM6K.js} +3 -2
  287. package/dist/chunk-IECRGM6K.js.map +1 -0
  288. package/dist/chunk-IJYL5BZM.js +38 -0
  289. package/dist/chunk-IJYL5BZM.js.map +1 -0
  290. package/dist/{chunk-L6RXRRN3.js → chunk-ILDOW2IQ.js} +3 -3
  291. package/dist/{chunk-VUHPA3XQ.js → chunk-ITX2TB4K.js} +6 -6
  292. package/dist/{chunk-ETCB6SUJ.js → chunk-J22HD2PB.js} +6 -6
  293. package/dist/{chunk-U47YDYLQ.js → chunk-J5MEDX7C.js} +8 -8
  294. package/dist/{chunk-6VQTHC4W.js → chunk-J7FBBLHF.js} +36 -36
  295. package/dist/{chunk-5JZYPZ72.js → chunk-JFK7NTEA.js} +4 -4
  296. package/dist/chunk-JFK7NTEA.js.map +1 -0
  297. package/dist/{chunk-QZRDCFHI.js → chunk-JM4HQPAI.js} +5 -5
  298. package/dist/{chunk-PIVGX42P.js → chunk-JNY5MT3I.js} +2 -2
  299. package/dist/{chunk-XWWXIZFP.js → chunk-JO6R5EXF.js} +7 -7
  300. package/dist/{chunk-MM7OKOTE.js → chunk-JQCGPTZ6.js} +9 -9
  301. package/dist/chunk-JRSNCSZN.js +37 -0
  302. package/dist/chunk-JRSNCSZN.js.map +1 -0
  303. package/dist/{chunk-KNFDWNCH.js → chunk-JXT5QDJC.js} +5 -5
  304. package/dist/{chunk-OR37STQZ.js → chunk-KEXYBG7Q.js} +3 -3
  305. package/dist/{chunk-AZVANYMB.js → chunk-KUNFUSZ7.js} +2 -2
  306. package/dist/{chunk-DXZNDKQD.js → chunk-LEEJBZ5B.js} +2 -2
  307. package/dist/{chunk-STUCI6QA.js → chunk-LEKBNKLD.js} +1 -1
  308. package/dist/{chunk-STUCI6QA.js.map → chunk-LEKBNKLD.js.map} +1 -1
  309. package/dist/{chunk-C535KSTY.js → chunk-LF5CBAOS.js} +4 -4
  310. package/dist/{chunk-BJIZ7PL7.js → chunk-LHLK7FUA.js} +145 -29
  311. package/dist/chunk-LHLK7FUA.js.map +1 -0
  312. package/dist/{chunk-RIMKJBCD.js → chunk-LMPTC4CX.js} +2 -2
  313. package/dist/{chunk-3KVWXKD6.js → chunk-LQ47YL6E.js} +2 -2
  314. package/dist/{chunk-H5WGWAYX.js → chunk-LT4J7RHI.js} +13 -13
  315. package/dist/{chunk-DSGMYES6.js → chunk-MCTTONOW.js} +28 -28
  316. package/dist/{chunk-IGHELZI7.js → chunk-MIECLOQC.js} +9 -9
  317. package/dist/{chunk-FM4OUCC2.js → chunk-MOKYT3X3.js} +3 -3
  318. package/dist/{chunk-GZ64CASI.js → chunk-MVZYNZXE.js} +5 -4
  319. package/dist/chunk-MVZYNZXE.js.map +1 -0
  320. package/dist/{chunk-RKILMLA7.js → chunk-MXLKI7BI.js} +3 -3
  321. package/dist/{chunk-45WYYFP6.js → chunk-N3ZP4IDU.js} +2 -2
  322. package/dist/{chunk-XRRSFQEV.js → chunk-NAZZLAWX.js} +2 -2
  323. package/dist/{chunk-UWJ5P5CU.js → chunk-NEK4WB5P.js} +3 -3
  324. package/dist/{chunk-6L7U46Y2.js → chunk-NKNVIO66.js} +2 -2
  325. package/dist/{chunk-JKUICTLM.js → chunk-NLAFNMPK.js} +2 -2
  326. package/dist/{chunk-4LKNIGHB.js → chunk-O2SBHS2N.js} +2 -2
  327. package/dist/{chunk-D3RK3NGM.js → chunk-PCFK7HKD.js} +17 -17
  328. package/dist/{chunk-VVCDB2T7.js → chunk-PCJLH45G.js} +3 -3
  329. package/dist/{chunk-PZ24CYDO.js → chunk-PFAUGEV5.js} +2 -2
  330. package/dist/{chunk-HGMWMK5K.js → chunk-PO3BH3KQ.js} +2 -2
  331. package/dist/{chunk-B74GSYR6.js → chunk-PUTS4DYW.js} +2 -2
  332. package/dist/{chunk-JSIDLTTG.js → chunk-PZ2V2XIK.js} +2 -2
  333. package/dist/{chunk-TMEQPODK.js → chunk-PZ37VDB5.js} +2 -2
  334. package/dist/{chunk-QIYBOFUV.js → chunk-QFMLAT7L.js} +246 -237
  335. package/dist/chunk-QFMLAT7L.js.map +1 -0
  336. package/dist/{chunk-LVONK3YQ.js → chunk-QRKTESVE.js} +2 -2
  337. package/dist/{chunk-HT5WSUC7.js → chunk-QXEDIDBZ.js} +3 -3
  338. package/dist/{chunk-WURSS6MP.js → chunk-R66YMYJU.js} +2 -2
  339. package/dist/{chunk-HDHK3SXK.js → chunk-RFLYID6H.js} +5 -5
  340. package/dist/{chunk-V77JK73U.js → chunk-RIYZFKIM.js} +37 -35
  341. package/dist/chunk-RIYZFKIM.js.map +1 -0
  342. package/dist/{chunk-VMFID36H.js → chunk-RQNZDTKT.js} +19 -19
  343. package/dist/{chunk-EHCUFCXM.js → chunk-RYSRFAHN.js} +32 -22
  344. package/dist/chunk-RYSRFAHN.js.map +1 -0
  345. package/dist/{chunk-I6VUUEXH.js → chunk-S2U4CDAC.js} +150 -150
  346. package/dist/chunk-S2U4CDAC.js.map +1 -0
  347. package/dist/chunk-S37GP7LX.js +204 -0
  348. package/dist/chunk-S37GP7LX.js.map +1 -0
  349. package/dist/{chunk-A2EWJQXX.js → chunk-SM5QX6UK.js} +4 -4
  350. package/dist/{chunk-FBE6AIIW.js → chunk-SOKNCW5U.js} +2 -2
  351. package/dist/{chunk-Q4NM77K7.js → chunk-SSOO4GWN.js} +193 -194
  352. package/dist/chunk-SSOO4GWN.js.map +1 -0
  353. package/dist/{chunk-PFKTGZKE.js → chunk-SY2AAZNB.js} +2 -2
  354. package/dist/{chunk-DFZMKCVP.js → chunk-TIQPKOFW.js} +4 -4
  355. package/dist/{chunk-HPPKLBTJ.js → chunk-TJQDL3JH.js} +2 -2
  356. package/dist/chunk-TL7BOFFL.js +89 -0
  357. package/dist/chunk-TL7BOFFL.js.map +1 -0
  358. package/dist/{chunk-FD4Q5KFL.js → chunk-TLL22FFO.js} +2 -2
  359. package/dist/{chunk-QM5H4FPT.js → chunk-TV6BWONY.js} +3 -3
  360. package/dist/{chunk-EDFJBX3V.js → chunk-U6MPB3K6.js} +9 -9
  361. package/dist/{chunk-TZD3U2S5.js → chunk-ULJAOMJA.js} +4 -4
  362. package/dist/chunk-ULYQEFNH.js +529 -0
  363. package/dist/chunk-ULYQEFNH.js.map +1 -0
  364. package/dist/{chunk-H5EVWF6L.js → chunk-UNNJUJVD.js} +2 -2
  365. package/dist/{chunk-324X6T6G.js → chunk-UP7I3W6O.js} +57 -55
  366. package/dist/chunk-UP7I3W6O.js.map +1 -0
  367. package/dist/{chunk-VU2EWALC.js → chunk-UUGR3X5I.js} +19 -12
  368. package/dist/chunk-UUGR3X5I.js.map +1 -0
  369. package/dist/{chunk-Z6DKXQG7.js → chunk-UXXFMF4X.js} +2 -2
  370. package/dist/{chunk-OBQVTCTW.js → chunk-UYNCMZX5.js} +4 -4
  371. package/dist/{chunk-RGPYMHKI.js → chunk-V3K4RQO7.js} +9 -3
  372. package/dist/chunk-V3K4RQO7.js.map +1 -0
  373. package/dist/{chunk-KZHW27BV.js → chunk-V4QZ7UBK.js} +2 -2
  374. package/dist/{chunk-NEVRLD77.js → chunk-VH5EGTH2.js} +3 -3
  375. package/dist/{chunk-MYNUBDU7.js → chunk-VYKW6TB2.js} +1 -1
  376. package/dist/chunk-VYKW6TB2.js.map +1 -0
  377. package/dist/{chunk-QEJTQTF5.js → chunk-W6T5HR3Z.js} +3 -3
  378. package/dist/{chunk-H6WWEKEV.js → chunk-WCMG4HYI.js} +10 -10
  379. package/dist/{chunk-GZLLDA6P.js → chunk-WEFN327U.js} +2 -2
  380. package/dist/{chunk-VW3BBTMA.js → chunk-WKHUZIOW.js} +1 -1
  381. package/dist/{chunk-ANHUMDJX.js → chunk-WNDTLK44.js} +2 -2
  382. package/dist/{chunk-2DS4UOYQ.js → chunk-WSZQNTVN.js} +2 -2
  383. package/dist/{chunk-Z2DAWUO3.js → chunk-XMNUZUUA.js} +6 -6
  384. package/dist/{chunk-GAIM5RNE.js → chunk-XN7NSPE6.js} +3 -3
  385. package/dist/chunk-XV6ZYRHK.js +59 -0
  386. package/dist/chunk-XV6ZYRHK.js.map +1 -0
  387. package/dist/{chunk-FLGUVRR7.js → chunk-Y5BSA3I7.js} +5 -5
  388. package/dist/{chunk-WRLWLGEF.js → chunk-Y5E3XQ2S.js} +25 -2
  389. package/dist/{chunk-WRLWLGEF.js.map → chunk-Y5E3XQ2S.js.map} +1 -1
  390. package/dist/{chunk-QILLL4JE.js → chunk-YEROLKOA.js} +16 -16
  391. package/dist/{chunk-NDF3SH3X.js → chunk-YJPKDRI2.js} +15 -15
  392. package/dist/{chunk-TQGJN5UZ.js → chunk-YV56F4UP.js} +318 -700
  393. package/dist/chunk-YV56F4UP.js.map +1 -0
  394. package/dist/{chunk-VAIESMPY.js → chunk-YVBHGMKC.js} +4 -4
  395. package/dist/{chunk-AD22P5X3.js → chunk-YXA2EKV3.js} +3 -3
  396. package/dist/{chunk-FDNJVZRE.js → chunk-YYCOSTUU.js} +17 -17
  397. package/dist/{chunk-NLMTNEWW.js → chunk-Z6E6TUAE.js} +2 -2
  398. package/dist/{chunk-BJW7G6EF.js → chunk-Z7IGO5EA.js} +3 -3
  399. package/dist/{chunk-N7JKT4ZU.js → chunk-ZEIFJ6PX.js} +7 -7
  400. package/dist/{chunk-Q4OHNGGB.js → chunk-ZS2UQ3DV.js} +68 -11
  401. package/dist/chunk-ZS2UQ3DV.js.map +1 -0
  402. package/dist/{chunk-VRGOOVDB.js → chunk-ZVVT72MT.js} +2 -2
  403. package/dist/components/browser-viewer.d.ts +1 -1
  404. package/dist/composer.js +14 -14
  405. package/dist/{computer-viewer-KEDVLD42.js → computer-viewer-25AJIDYA.js} +9 -9
  406. package/dist/connect.js +11 -11
  407. package/dist/desktop.js +2 -2
  408. package/dist/editor.js +2 -2
  409. package/dist/{embedded-new-voice-5PYRDZ6T.js → embedded-new-voice-RZZEJT6M.js} +8 -8
  410. package/dist/{embedded-voice-PABC5NBD.js → embedded-voice-6OKSSPLW.js} +8 -8
  411. package/dist/{fleet-decision-row-QNSTP3VX.js → fleet-decision-row-NN2HXDX3.js} +2 -2
  412. package/dist/hooks/internal.d.ts +38 -0
  413. package/dist/hooks/use-client-config-flags.d.ts +12 -0
  414. package/dist/hooks/use-workspace-sessions.d.ts +10 -1
  415. package/dist/index.js +233 -227
  416. package/dist/interaction.js +11 -9
  417. package/dist/interaction.js.map +1 -1
  418. package/dist/{latest-question-5LIRVG4G.js → latest-question-2PFWQSSG.js} +4 -3
  419. package/dist/{latest-question-5LIRVG4G.js.map → latest-question-2PFWQSSG.js.map} +1 -1
  420. package/dist/machines.js +5 -5
  421. package/dist/messages/en.d.ts +3 -3
  422. package/dist/messages.js +1 -1
  423. package/dist/{model-policy-picker-menu-CURJ247L.js → model-policy-picker-menu-VVFGGAI6.js} +6 -6
  424. package/dist/model-policy-picker-menu-VVFGGAI6.js.map +1 -0
  425. package/dist/native-previews.js +3 -3
  426. package/dist/{platform-activity-row-BMXXNZKX.js → platform-activity-row-ENQVIFTL.js} +2 -2
  427. package/dist/{queue-surface-implementation-2X5AXB6I.js → queue-surface-implementation-4SHOQPQQ.js} +10 -8
  428. package/dist/{queue-surface-implementation-2X5AXB6I.js.map → queue-surface-implementation-4SHOQPQQ.js.map} +1 -1
  429. package/dist/realtime.js +7 -7
  430. package/dist/{sandbox-files-4FBG3GS2.js → sandbox-files-CCOTGXXA.js} +11 -11
  431. package/dist/sandbox-files-CCOTGXXA.js.map +1 -0
  432. package/dist/session-app.js +277 -271
  433. package/dist/session-list-model.d.ts +1 -0
  434. package/dist/session-list-model.js +8 -2
  435. package/dist/{session-realtime-2XIB254N.js → session-realtime-JNKDSGH7.js} +3 -3
  436. package/dist/session-realtime-JNKDSGH7.js.map +1 -0
  437. package/dist/session-realtime.js +2 -2
  438. package/dist/session-ui.js +77 -72
  439. package/dist/session.js +27 -25
  440. package/dist/sites.js +2 -2
  441. package/dist/terminal.js +2 -2
  442. package/dist/this-computer.js +3 -3
  443. package/dist/timeline/invoked-tool.d.ts +5 -0
  444. package/dist/timeline/tool-display-name.d.ts +2 -2
  445. package/dist/timeline/tool-icon.d.ts +14 -0
  446. package/dist/timeline/tool-presentation.d.ts +8 -3
  447. package/dist/timeline/types.d.ts +2 -0
  448. package/dist/{timeline-annotation-markers-X4K2IEOO.js → timeline-annotation-markers-KHNYNY2J.js} +5 -5
  449. package/dist/{timeline-annotation-selection-MEHBW676.js → timeline-annotation-selection-AXEDJHBP.js} +7 -7
  450. package/dist/{timeline-annotations-dialog-U2FPQ3UY.js → timeline-annotations-dialog-AV4ZBXRC.js} +9 -9
  451. package/dist/timeline-model.js +28 -26
  452. package/dist/ui/access-list.js +20 -20
  453. package/dist/ui/choice-cards.js +2 -2
  454. package/dist/ui/detail-page.js +2 -2
  455. package/dist/ui/detail-sheet.js +2 -2
  456. package/dist/ui/diff-view.js +2 -2
  457. package/dist/ui/disclosure.js +4 -4
  458. package/dist/ui/flush-form-page.js +3 -3
  459. package/dist/ui/form-dialog.js +2 -2
  460. package/dist/ui/list-row.js +5 -5
  461. package/dist/ui/revision-history.js +11 -11
  462. package/dist/ui/role-select.js +6 -6
  463. package/dist/ui/settings-nav.js +3 -3
  464. package/dist/usage.js +3 -3
  465. package/dist/workbench.js +11 -11
  466. package/package.json +4 -4
  467. package/src/app/app-state.tsx +3 -1
  468. package/src/app/components/capabilities/session-capability-card.tsx +14 -1
  469. package/src/app/components/capabilities/session-chrome-card.dom-fixture.tsx +377 -0
  470. package/src/app/components/capabilities/session-chrome-card.test.tsx +18 -0
  471. package/src/app/components/capabilities/session-chrome-card.tsx +243 -0
  472. package/src/app/components/capabilities/session-machine-card.dom-fixture.tsx +2 -0
  473. package/src/app/components/capabilities/session-machine-card.tsx +74 -16
  474. package/src/app/components/rail/session-list.tsx +254 -44
  475. package/src/app/components/rail/session-row-content.tsx +24 -2
  476. package/src/app/components/rail/session-shell.tsx +14 -9
  477. package/src/app/components/rail/site-session-group-heading.tsx +59 -20
  478. package/src/app/components/session/session-tenancy-control.tsx +18 -0
  479. package/src/app/components/session/site-origin-link.test.tsx +73 -0
  480. package/src/app/components/session/site-origin-link.tsx +4 -2
  481. package/src/app/embed/memory-navigation.tsx +1 -0
  482. package/src/app/lib/actions/held-modifier.test.ts +101 -0
  483. package/src/app/lib/actions/held-modifier.ts +108 -0
  484. package/src/app/lib/console-site.tsx +38 -0
  485. package/src/app/lib/navigation.tsx +4 -0
  486. package/src/app/lib/routes.tsx +42 -0
  487. package/src/app/lib/session-failure-toasts.ts +26 -0
  488. package/src/app/lib/session-ui-features.tsx +18 -4
  489. package/src/app/lib/sessions-group.tsx +219 -30
  490. package/src/app/lib/site-opened.tsx +48 -0
  491. package/src/app/lib/site-session-groups.test.ts +173 -6
  492. package/src/app/lib/site-view-routes.test.ts +55 -0
  493. package/src/app/lib/use-session-list-hint-refresh.tsx +44 -4
  494. package/src/app/routes/artifacts.tsx +2 -29
  495. package/src/app/routes/session-transient-failures.test.tsx +343 -0
  496. package/src/app/routes/session-unavailable.tsx +74 -3
  497. package/src/app/routes/session.tsx +4 -13
  498. package/src/app/routes/sessions-index.tsx +13 -9
  499. package/src/app/routes/site-view.test.tsx +476 -0
  500. package/src/app/routes/site-view.tsx +583 -0
  501. package/src/components/browser-viewer.tsx +16 -2
  502. package/src/hooks/internal.ts +129 -6
  503. package/src/hooks/use-client-config-flags.ts +8 -0
  504. package/src/hooks/use-session-events.ts +83 -9
  505. package/src/hooks/use-workspace-sessions.ts +21 -1
  506. package/src/messages/en.ts +3 -3
  507. package/src/session-list-model.ts +4 -0
  508. package/src/timeline/activity-rail.tsx +3 -2
  509. package/src/timeline/invoked-tool.ts +14 -4
  510. package/src/timeline/projection.ts +15 -8
  511. package/src/timeline/rolling-activity.tsx +6 -2
  512. package/src/timeline/tool-display-name.ts +2 -2
  513. package/src/timeline/tool-icon.tsx +165 -0
  514. package/src/timeline/tool-presentation.ts +207 -48
  515. package/src/timeline/tool-renderers.tsx +1 -70
  516. package/src/timeline/types.ts +2 -0
  517. package/styles/compiled.css +38 -0
  518. package/dist/chunk-22ZBT6CN.js +0 -50
  519. package/dist/chunk-22ZBT6CN.js.map +0 -1
  520. package/dist/chunk-324X6T6G.js.map +0 -1
  521. package/dist/chunk-5JZYPZ72.js.map +0 -1
  522. package/dist/chunk-6W3LF3DB.js.map +0 -1
  523. package/dist/chunk-BJIZ7PL7.js.map +0 -1
  524. package/dist/chunk-CKZW7A5S.js.map +0 -1
  525. package/dist/chunk-DDIBZA4X.js.map +0 -1
  526. package/dist/chunk-EHCUFCXM.js.map +0 -1
  527. package/dist/chunk-GZ64CASI.js.map +0 -1
  528. package/dist/chunk-I6VUUEXH.js.map +0 -1
  529. package/dist/chunk-KF3MF6FP.js.map +0 -1
  530. package/dist/chunk-MYNUBDU7.js.map +0 -1
  531. package/dist/chunk-NAWXARTY.js.map +0 -1
  532. package/dist/chunk-O77Q4NG2.js.map +0 -1
  533. package/dist/chunk-PM3OSANE.js.map +0 -1
  534. package/dist/chunk-Q262Y2YX.js.map +0 -1
  535. package/dist/chunk-Q4NM77K7.js.map +0 -1
  536. package/dist/chunk-Q4OHNGGB.js.map +0 -1
  537. package/dist/chunk-QIYBOFUV.js.map +0 -1
  538. package/dist/chunk-R25ZKOZR.js +0 -24
  539. package/dist/chunk-R25ZKOZR.js.map +0 -1
  540. package/dist/chunk-RGPYMHKI.js.map +0 -1
  541. package/dist/chunk-ROQOVH4N.js.map +0 -1
  542. package/dist/chunk-TQGJN5UZ.js.map +0 -1
  543. package/dist/chunk-V77JK73U.js.map +0 -1
  544. package/dist/chunk-VSQHDBHU.js.map +0 -1
  545. package/dist/chunk-VU2EWALC.js.map +0 -1
  546. package/dist/chunk-XFNLU7EW.js.map +0 -1
  547. package/dist/chunk-Z5WMLJKI.js.map +0 -1
  548. /package/dist/{browser-viewer-RYYQSRTC.js.map → app/components/capabilities/session-chrome-card.js.map} +0 -0
  549. /package/dist/{chat-interactive-block-ABCRKXJ4.js.map → app/lib/console-site.js.map} +0 -0
  550. /package/dist/{computer-viewer-KEDVLD42.js.map → app/lib/site-opened.js.map} +0 -0
  551. /package/dist/{embedded-new-voice-5PYRDZ6T.js.map → browser-viewer-QMCNV4RI.js.map} +0 -0
  552. /package/dist/{embedded-voice-PABC5NBD.js.map → chat-interactive-block-PMIAUXSO.js.map} +0 -0
  553. /package/dist/{chunk-GIZGNFIX.js.map → chunk-22FFOHPT.js.map} +0 -0
  554. /package/dist/{chunk-UHFWF6ZU.js.map → chunk-2FPS5H2D.js.map} +0 -0
  555. /package/dist/{chunk-5POTDNQT.js.map → chunk-2NC7NZCE.js.map} +0 -0
  556. /package/dist/{chunk-ZKYYZH6L.js.map → chunk-2QBYDGWO.js.map} +0 -0
  557. /package/dist/{chunk-TWXIFWBD.js.map → chunk-34EU25RL.js.map} +0 -0
  558. /package/dist/{chunk-LQKKSUCR.js.map → chunk-35BC2FU2.js.map} +0 -0
  559. /package/dist/{chunk-PTGRFAMH.js.map → chunk-3ABPIUCK.js.map} +0 -0
  560. /package/dist/{chunk-S4SC5SSV.js.map → chunk-3GU7AWG7.js.map} +0 -0
  561. /package/dist/{chunk-722UO6YQ.js.map → chunk-3PEXVG4D.js.map} +0 -0
  562. /package/dist/{chunk-OQAAI33Y.js.map → chunk-3RMKPHBL.js.map} +0 -0
  563. /package/dist/{chunk-GCGTYXJJ.js.map → chunk-3STBLX4O.js.map} +0 -0
  564. /package/dist/{chunk-YXIW7H4N.js.map → chunk-3X5FKDYQ.js.map} +0 -0
  565. /package/dist/{chunk-KTRKZRID.js.map → chunk-4GLLWX33.js.map} +0 -0
  566. /package/dist/{chunk-SD2K5ZN5.js.map → chunk-4LPA25NQ.js.map} +0 -0
  567. /package/dist/{chunk-DKCX643S.js.map → chunk-4RMN4E2Y.js.map} +0 -0
  568. /package/dist/{chunk-E5FCEDMU.js.map → chunk-4SAGYEVB.js.map} +0 -0
  569. /package/dist/{chunk-HTT3FB7T.js.map → chunk-4VK2R5QC.js.map} +0 -0
  570. /package/dist/{chunk-CKG2EG62.js.map → chunk-4XQC7VLT.js.map} +0 -0
  571. /package/dist/{chunk-IVOA3DXA.js.map → chunk-4YXAQMTD.js.map} +0 -0
  572. /package/dist/{chunk-HOJGAJAB.js.map → chunk-52WK2GGK.js.map} +0 -0
  573. /package/dist/{chunk-NYZQ7LO7.js.map → chunk-552UYIQ7.js.map} +0 -0
  574. /package/dist/{chunk-LEXPBQ56.js.map → chunk-5DSKMG2I.js.map} +0 -0
  575. /package/dist/{chunk-WNG757ID.js.map → chunk-5FA455GR.js.map} +0 -0
  576. /package/dist/{chunk-MNWQAYY3.js.map → chunk-5FEN3KYH.js.map} +0 -0
  577. /package/dist/{chunk-OSVHU2WU.js.map → chunk-5JHRMUAZ.js.map} +0 -0
  578. /package/dist/{chunk-RKB2Z457.js.map → chunk-5VGJXWQ2.js.map} +0 -0
  579. /package/dist/{chunk-GFUUFM2O.js.map → chunk-5W6ZDKRR.js.map} +0 -0
  580. /package/dist/{chunk-NDETTZQA.js.map → chunk-5W7KJ5NQ.js.map} +0 -0
  581. /package/dist/{chunk-Q35YZVDZ.js.map → chunk-5Y2FPLZE.js.map} +0 -0
  582. /package/dist/{chunk-F3NERYBQ.js.map → chunk-62VER7O4.js.map} +0 -0
  583. /package/dist/{chunk-FBMU3VK5.js.map → chunk-6DCEDIF6.js.map} +0 -0
  584. /package/dist/{chunk-WUHB422G.js.map → chunk-73WI7FL2.js.map} +0 -0
  585. /package/dist/{chunk-QECZVL7S.js.map → chunk-7FJMRJDG.js.map} +0 -0
  586. /package/dist/{chunk-7KGKDWWR.js.map → chunk-7HFLYNWN.js.map} +0 -0
  587. /package/dist/{chunk-XVM566II.js.map → chunk-7KIENXRE.js.map} +0 -0
  588. /package/dist/{chunk-CBY5CXBD.js.map → chunk-7NPCEBZE.js.map} +0 -0
  589. /package/dist/{chunk-46VBQG2D.js.map → chunk-7P4AQMGA.js.map} +0 -0
  590. /package/dist/{chunk-S7PVL7XH.js.map → chunk-A4BD4ZVB.js.map} +0 -0
  591. /package/dist/{chunk-73SOCVLS.js.map → chunk-AIEXYO2X.js.map} +0 -0
  592. /package/dist/{chunk-U7TC2XJQ.js.map → chunk-AJPW3SV4.js.map} +0 -0
  593. /package/dist/{chunk-HRJQAFKR.js.map → chunk-AX6YJA5U.js.map} +0 -0
  594. /package/dist/{chunk-P5WABK2H.js.map → chunk-BCM7C3MJ.js.map} +0 -0
  595. /package/dist/{chunk-DT7BORXG.js.map → chunk-BMJTNPWK.js.map} +0 -0
  596. /package/dist/{chunk-HIHO2QE7.js.map → chunk-BT2MVGHT.js.map} +0 -0
  597. /package/dist/{chunk-3XOISKZC.js.map → chunk-BXQYAAVE.js.map} +0 -0
  598. /package/dist/{chunk-IBTXYLBW.js.map → chunk-CCFWY4GF.js.map} +0 -0
  599. /package/dist/{chunk-ZOC3OP6F.js.map → chunk-CCR33J7L.js.map} +0 -0
  600. /package/dist/{chunk-GTQ3SNEI.js.map → chunk-CD3MO3IC.js.map} +0 -0
  601. /package/dist/{chunk-WSMYOLHG.js.map → chunk-CDEXRJB6.js.map} +0 -0
  602. /package/dist/{chunk-3GLAPCVI.js.map → chunk-CFFNT2OY.js.map} +0 -0
  603. /package/dist/{chunk-FUSFVUIJ.js.map → chunk-CMLJSF2F.js.map} +0 -0
  604. /package/dist/{chunk-O4DYOSOL.js.map → chunk-CP7ZQHBW.js.map} +0 -0
  605. /package/dist/{chunk-IOKSNX74.js.map → chunk-D5OWJZQR.js.map} +0 -0
  606. /package/dist/{chunk-SQGXMHJO.js.map → chunk-DGLRZMXL.js.map} +0 -0
  607. /package/dist/{chunk-GNEHAPKV.js.map → chunk-DJFTH2DI.js.map} +0 -0
  608. /package/dist/{chunk-HQG4SLTE.js.map → chunk-DYJGYGPB.js.map} +0 -0
  609. /package/dist/{chunk-4EAF3HSD.js.map → chunk-EJ7WARW7.js.map} +0 -0
  610. /package/dist/{chunk-3AA6RNGE.js.map → chunk-ENS6E4RZ.js.map} +0 -0
  611. /package/dist/{chunk-OOEO4MKY.js.map → chunk-EPWD4KRA.js.map} +0 -0
  612. /package/dist/{chunk-V5RJAWRP.js.map → chunk-EQE3MNQN.js.map} +0 -0
  613. /package/dist/{chunk-TSBE4KOQ.js.map → chunk-EWL6NDOO.js.map} +0 -0
  614. /package/dist/{chunk-OO2T63BY.js.map → chunk-EYS4ZOF5.js.map} +0 -0
  615. /package/dist/{chunk-IC7KNOBB.js.map → chunk-FDAV72IX.js.map} +0 -0
  616. /package/dist/{chunk-AG7VGUIW.js.map → chunk-FFNPUSVO.js.map} +0 -0
  617. /package/dist/{chunk-P5T36BA3.js.map → chunk-FRP64DEK.js.map} +0 -0
  618. /package/dist/{chunk-KBF3SE7G.js.map → chunk-FSP334UU.js.map} +0 -0
  619. /package/dist/{chunk-ZHFKMMOT.js.map → chunk-FTX5CNHA.js.map} +0 -0
  620. /package/dist/{chunk-KYBALSWW.js.map → chunk-FWOBNL2A.js.map} +0 -0
  621. /package/dist/{chunk-HJ5XWW62.js.map → chunk-FWYEZ3LE.js.map} +0 -0
  622. /package/dist/{chunk-WSLPZ43N.js.map → chunk-G4HQUBO4.js.map} +0 -0
  623. /package/dist/{chunk-CSHBR2IZ.js.map → chunk-GDLDBR6B.js.map} +0 -0
  624. /package/dist/{chunk-G3S2F35T.js.map → chunk-GHHM6WN4.js.map} +0 -0
  625. /package/dist/{chunk-OANSIX34.js.map → chunk-GRSODLVO.js.map} +0 -0
  626. /package/dist/{chunk-EU6XSQFM.js.map → chunk-GXW2I2M2.js.map} +0 -0
  627. /package/dist/{chunk-4246UYVG.js.map → chunk-GZS37O3G.js.map} +0 -0
  628. /package/dist/{chunk-Y7WMW74G.js.map → chunk-HQWVDQXW.js.map} +0 -0
  629. /package/dist/{chunk-YTZQV2DD.js.map → chunk-HU6JTNWF.js.map} +0 -0
  630. /package/dist/{chunk-QRVNI5V6.js.map → chunk-I6KIQKU6.js.map} +0 -0
  631. /package/dist/{chunk-BNUPYHHZ.js.map → chunk-IDXTASGN.js.map} +0 -0
  632. /package/dist/{chunk-L6RXRRN3.js.map → chunk-ILDOW2IQ.js.map} +0 -0
  633. /package/dist/{chunk-VUHPA3XQ.js.map → chunk-ITX2TB4K.js.map} +0 -0
  634. /package/dist/{chunk-ETCB6SUJ.js.map → chunk-J22HD2PB.js.map} +0 -0
  635. /package/dist/{chunk-U47YDYLQ.js.map → chunk-J5MEDX7C.js.map} +0 -0
  636. /package/dist/{chunk-6VQTHC4W.js.map → chunk-J7FBBLHF.js.map} +0 -0
  637. /package/dist/{chunk-QZRDCFHI.js.map → chunk-JM4HQPAI.js.map} +0 -0
  638. /package/dist/{chunk-PIVGX42P.js.map → chunk-JNY5MT3I.js.map} +0 -0
  639. /package/dist/{chunk-XWWXIZFP.js.map → chunk-JO6R5EXF.js.map} +0 -0
  640. /package/dist/{chunk-MM7OKOTE.js.map → chunk-JQCGPTZ6.js.map} +0 -0
  641. /package/dist/{chunk-KNFDWNCH.js.map → chunk-JXT5QDJC.js.map} +0 -0
  642. /package/dist/{chunk-OR37STQZ.js.map → chunk-KEXYBG7Q.js.map} +0 -0
  643. /package/dist/{chunk-AZVANYMB.js.map → chunk-KUNFUSZ7.js.map} +0 -0
  644. /package/dist/{chunk-DXZNDKQD.js.map → chunk-LEEJBZ5B.js.map} +0 -0
  645. /package/dist/{chunk-C535KSTY.js.map → chunk-LF5CBAOS.js.map} +0 -0
  646. /package/dist/{chunk-RIMKJBCD.js.map → chunk-LMPTC4CX.js.map} +0 -0
  647. /package/dist/{chunk-3KVWXKD6.js.map → chunk-LQ47YL6E.js.map} +0 -0
  648. /package/dist/{chunk-H5WGWAYX.js.map → chunk-LT4J7RHI.js.map} +0 -0
  649. /package/dist/{chunk-DSGMYES6.js.map → chunk-MCTTONOW.js.map} +0 -0
  650. /package/dist/{chunk-IGHELZI7.js.map → chunk-MIECLOQC.js.map} +0 -0
  651. /package/dist/{chunk-FM4OUCC2.js.map → chunk-MOKYT3X3.js.map} +0 -0
  652. /package/dist/{chunk-RKILMLA7.js.map → chunk-MXLKI7BI.js.map} +0 -0
  653. /package/dist/{chunk-45WYYFP6.js.map → chunk-N3ZP4IDU.js.map} +0 -0
  654. /package/dist/{chunk-XRRSFQEV.js.map → chunk-NAZZLAWX.js.map} +0 -0
  655. /package/dist/{chunk-UWJ5P5CU.js.map → chunk-NEK4WB5P.js.map} +0 -0
  656. /package/dist/{chunk-6L7U46Y2.js.map → chunk-NKNVIO66.js.map} +0 -0
  657. /package/dist/{chunk-JKUICTLM.js.map → chunk-NLAFNMPK.js.map} +0 -0
  658. /package/dist/{chunk-4LKNIGHB.js.map → chunk-O2SBHS2N.js.map} +0 -0
  659. /package/dist/{chunk-D3RK3NGM.js.map → chunk-PCFK7HKD.js.map} +0 -0
  660. /package/dist/{chunk-VVCDB2T7.js.map → chunk-PCJLH45G.js.map} +0 -0
  661. /package/dist/{chunk-PZ24CYDO.js.map → chunk-PFAUGEV5.js.map} +0 -0
  662. /package/dist/{chunk-HGMWMK5K.js.map → chunk-PO3BH3KQ.js.map} +0 -0
  663. /package/dist/{chunk-B74GSYR6.js.map → chunk-PUTS4DYW.js.map} +0 -0
  664. /package/dist/{chunk-JSIDLTTG.js.map → chunk-PZ2V2XIK.js.map} +0 -0
  665. /package/dist/{chunk-TMEQPODK.js.map → chunk-PZ37VDB5.js.map} +0 -0
  666. /package/dist/{chunk-LVONK3YQ.js.map → chunk-QRKTESVE.js.map} +0 -0
  667. /package/dist/{chunk-HT5WSUC7.js.map → chunk-QXEDIDBZ.js.map} +0 -0
  668. /package/dist/{chunk-WURSS6MP.js.map → chunk-R66YMYJU.js.map} +0 -0
  669. /package/dist/{chunk-HDHK3SXK.js.map → chunk-RFLYID6H.js.map} +0 -0
  670. /package/dist/{chunk-VMFID36H.js.map → chunk-RQNZDTKT.js.map} +0 -0
  671. /package/dist/{chunk-A2EWJQXX.js.map → chunk-SM5QX6UK.js.map} +0 -0
  672. /package/dist/{chunk-FBE6AIIW.js.map → chunk-SOKNCW5U.js.map} +0 -0
  673. /package/dist/{chunk-PFKTGZKE.js.map → chunk-SY2AAZNB.js.map} +0 -0
  674. /package/dist/{chunk-DFZMKCVP.js.map → chunk-TIQPKOFW.js.map} +0 -0
  675. /package/dist/{chunk-HPPKLBTJ.js.map → chunk-TJQDL3JH.js.map} +0 -0
  676. /package/dist/{chunk-FD4Q5KFL.js.map → chunk-TLL22FFO.js.map} +0 -0
  677. /package/dist/{chunk-QM5H4FPT.js.map → chunk-TV6BWONY.js.map} +0 -0
  678. /package/dist/{chunk-EDFJBX3V.js.map → chunk-U6MPB3K6.js.map} +0 -0
  679. /package/dist/{chunk-TZD3U2S5.js.map → chunk-ULJAOMJA.js.map} +0 -0
  680. /package/dist/{chunk-H5EVWF6L.js.map → chunk-UNNJUJVD.js.map} +0 -0
  681. /package/dist/{chunk-Z6DKXQG7.js.map → chunk-UXXFMF4X.js.map} +0 -0
  682. /package/dist/{chunk-OBQVTCTW.js.map → chunk-UYNCMZX5.js.map} +0 -0
  683. /package/dist/{chunk-KZHW27BV.js.map → chunk-V4QZ7UBK.js.map} +0 -0
  684. /package/dist/{chunk-NEVRLD77.js.map → chunk-VH5EGTH2.js.map} +0 -0
  685. /package/dist/{chunk-QEJTQTF5.js.map → chunk-W6T5HR3Z.js.map} +0 -0
  686. /package/dist/{chunk-H6WWEKEV.js.map → chunk-WCMG4HYI.js.map} +0 -0
  687. /package/dist/{chunk-GZLLDA6P.js.map → chunk-WEFN327U.js.map} +0 -0
  688. /package/dist/{chunk-VW3BBTMA.js.map → chunk-WKHUZIOW.js.map} +0 -0
  689. /package/dist/{chunk-ANHUMDJX.js.map → chunk-WNDTLK44.js.map} +0 -0
  690. /package/dist/{chunk-2DS4UOYQ.js.map → chunk-WSZQNTVN.js.map} +0 -0
  691. /package/dist/{chunk-Z2DAWUO3.js.map → chunk-XMNUZUUA.js.map} +0 -0
  692. /package/dist/{chunk-GAIM5RNE.js.map → chunk-XN7NSPE6.js.map} +0 -0
  693. /package/dist/{chunk-FLGUVRR7.js.map → chunk-Y5BSA3I7.js.map} +0 -0
  694. /package/dist/{chunk-QILLL4JE.js.map → chunk-YEROLKOA.js.map} +0 -0
  695. /package/dist/{chunk-NDF3SH3X.js.map → chunk-YJPKDRI2.js.map} +0 -0
  696. /package/dist/{chunk-VAIESMPY.js.map → chunk-YVBHGMKC.js.map} +0 -0
  697. /package/dist/{chunk-AD22P5X3.js.map → chunk-YXA2EKV3.js.map} +0 -0
  698. /package/dist/{chunk-FDNJVZRE.js.map → chunk-YYCOSTUU.js.map} +0 -0
  699. /package/dist/{chunk-NLMTNEWW.js.map → chunk-Z6E6TUAE.js.map} +0 -0
  700. /package/dist/{chunk-BJW7G6EF.js.map → chunk-Z7IGO5EA.js.map} +0 -0
  701. /package/dist/{chunk-N7JKT4ZU.js.map → chunk-ZEIFJ6PX.js.map} +0 -0
  702. /package/dist/{chunk-VRGOOVDB.js.map → chunk-ZVVT72MT.js.map} +0 -0
  703. /package/dist/{model-policy-picker-menu-CURJ247L.js.map → computer-viewer-25AJIDYA.js.map} +0 -0
  704. /package/dist/{sandbox-files-4FBG3GS2.js.map → embedded-new-voice-RZZEJT6M.js.map} +0 -0
  705. /package/dist/{session-realtime-2XIB254N.js.map → embedded-voice-6OKSSPLW.js.map} +0 -0
  706. /package/dist/{fleet-decision-row-QNSTP3VX.js.map → fleet-decision-row-NN2HXDX3.js.map} +0 -0
  707. /package/dist/{platform-activity-row-BMXXNZKX.js.map → platform-activity-row-ENQVIFTL.js.map} +0 -0
  708. /package/dist/{timeline-annotation-markers-X4K2IEOO.js.map → timeline-annotation-markers-KHNYNY2J.js.map} +0 -0
  709. /package/dist/{timeline-annotation-selection-MEHBW676.js.map → timeline-annotation-selection-AXEDJHBP.js.map} +0 -0
  710. /package/dist/{timeline-annotations-dialog-U2FPQ3UY.js.map → timeline-annotations-dialog-AV4ZBXRC.js.map} +0 -0
@@ -1,36 +1,37 @@
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
+ SiteSessionGroupHeading
7
+ } from "./chunk-TL7BOFFL.js";
8
+ import {
9
+ ActiveWorkMark,
10
+ RailTrailingMetadata,
11
+ SessionRowContent,
12
+ sessionRowAccessibleName
13
+ } from "./chunk-5MJHH72T.js";
8
14
  import {
9
15
  SessionRowHoverDetails
10
- } from "./chunk-TZD3U2S5.js";
16
+ } from "./chunk-ULJAOMJA.js";
11
17
  import {
12
- SiteSessionGroupHeading
13
- } from "./chunk-22ZBT6CN.js";
18
+ SiteOriginLink
19
+ } from "./chunk-MVZYNZXE.js";
14
20
  import {
15
21
  useActionShortcut,
16
22
  useChatOperations
17
- } from "./chunk-VMFID36H.js";
23
+ } from "./chunk-RQNZDTKT.js";
18
24
  import {
19
- TooltipWithKeys
20
- } from "./chunk-OHGG2G3A.js";
21
- import {
22
- ActiveWorkMark,
23
- RailTrailingMetadata,
24
- SessionRowContent,
25
- sessionRowAccessibleName
26
- } from "./chunk-PM3OSANE.js";
25
+ chordLabel,
26
+ currentPlatform
27
+ } from "./chunk-BTF7WNUT.js";
27
28
  import {
28
29
  rememberChats,
29
30
  setSidebarOrder
30
- } from "./chunk-OO2T63BY.js";
31
+ } from "./chunk-EYS4ZOF5.js";
31
32
  import {
32
- pinLiveAnnouncement
33
- } from "./chunk-GLYJV66C.js";
33
+ SessionBrowseOrderControls
34
+ } from "./chunk-HI75UTI6.js";
34
35
  import {
35
36
  DEFAULT_SESSION_BROWSE_PREFERENCES,
36
37
  readSessionBrowsePreferences,
@@ -38,25 +39,6 @@ import {
38
39
  sessionBrowsePreferencesCustomized,
39
40
  writeSessionBrowsePreferences
40
41
  } from "./chunk-VV5SNSIW.js";
41
- import {
42
- notifySessionListChanged,
43
- subscribeToWorkspaceSessionListChanges
44
- } from "./chunk-O5S57N6H.js";
45
- import {
46
- readSessionGroupWindows,
47
- sessionGroupWindowMemoryId,
48
- writeSessionGroupWindows
49
- } from "./chunk-JSCZXTEG.js";
50
- import {
51
- applySessionChannelMove,
52
- beginSessionChannelMove,
53
- commitSessionChannelMove,
54
- discardRejectedSessionChannelMove,
55
- readSessionChannelMovePoint,
56
- reconcileSessionChannelMovePointRead,
57
- reconcileSessionChannelMoves,
58
- rollbackSessionChannelMove
59
- } from "./chunk-6BVT27Y2.js";
60
42
  import {
61
43
  activeSessionContinuation,
62
44
  advanceSessionPageIdentity,
@@ -71,30 +53,48 @@ import {
71
53
  sessionPageKey
72
54
  } from "./chunk-OSI2QWSL.js";
73
55
  import {
74
- SESSION_GROUP_VISIBLE_STEP,
75
- planSessionGroupFill,
76
- sameSessionGroupFill,
77
- sessionGroupDisclosurePlan,
78
- sessionGroupWindowNodes
79
- } from "./chunk-QTDAWO6O.js";
56
+ pinLiveAnnouncement
57
+ } from "./chunk-GLYJV66C.js";
58
+ import {
59
+ railRowCreator
60
+ } from "./chunk-KJJBQ3KV.js";
61
+ import {
62
+ emptySessionListDirtyScopes,
63
+ invalidateSessionListScopes,
64
+ sessionListGroupRevision
65
+ } from "./chunk-5VEK5RA4.js";
80
66
  import {
81
67
  sessionMatchesPaginationGroup,
82
68
  sessionPaginationGroupQuery,
83
69
  sessionPaginationProjectGroup
84
- } from "./chunk-QRVNI5V6.js";
70
+ } from "./chunk-I6KIQKU6.js";
71
+ import {
72
+ notifySessionListChanged,
73
+ subscribeToWorkspaceSessionListChanges
74
+ } from "./chunk-O5S57N6H.js";
75
+ import {
76
+ applySessionChannelMove,
77
+ beginSessionChannelMove,
78
+ commitSessionChannelMove,
79
+ discardRejectedSessionChannelMove,
80
+ readSessionChannelMovePoint,
81
+ reconcileSessionChannelMovePointRead,
82
+ reconcileSessionChannelMoves,
83
+ rollbackSessionChannelMove
84
+ } from "./chunk-6BVT27Y2.js";
85
+ import {
86
+ readSessionGroupWindows,
87
+ sessionGroupWindowMemoryId,
88
+ writeSessionGroupWindows
89
+ } from "./chunk-JSCZXTEG.js";
85
90
  import {
86
91
  sessionHoverDescription,
87
92
  sessionHoverFacts
88
- } from "./chunk-HOJGAJAB.js";
93
+ } from "./chunk-52WK2GGK.js";
89
94
  import {
90
95
  sessionDescendantCountAria,
91
96
  sessionDescendantCountText
92
97
  } from "./chunk-XVVJBNUQ.js";
93
- import {
94
- emptySessionListDirtyScopes,
95
- invalidateSessionListScopes,
96
- sessionListGroupRevision
97
- } from "./chunk-5VEK5RA4.js";
98
98
  import {
99
99
  authoritativeSessionBranchChannels,
100
100
  beginSessionBranchRequest,
@@ -105,45 +105,71 @@ import {
105
105
  sessionBranchSummaryDecision,
106
106
  sessionBranchSummaryKey,
107
107
  upsertSessionBranchChild
108
- } from "./chunk-EU6XSQFM.js";
108
+ } from "./chunk-GXW2I2M2.js";
109
+ import {
110
+ SESSION_GROUP_VISIBLE_STEP,
111
+ planSessionGroupFill,
112
+ sameSessionGroupFill,
113
+ sessionGroupDisclosurePlan,
114
+ sessionGroupWindowNodes
115
+ } from "./chunk-QTDAWO6O.js";
116
+ import {
117
+ ChannelCreateDialog
118
+ } from "./chunk-6WVASCYA.js";
119
+ import {
120
+ railRouteSelection
121
+ } from "./chunk-Y5E3XQ2S.js";
109
122
  import {
110
123
  buildPinnedRailSections,
111
124
  channelRailSections,
112
125
  compareSessionBrowse,
113
126
  groupSessionForestForBrowse,
114
127
  mergeSessionForRail,
128
+ parseSiteRowKey,
115
129
  projectRailSessions,
116
130
  selectedDescendantNode,
117
131
  sessionBrowseResultCount,
118
132
  sessionCreatorLabelMap,
119
133
  sessionProjectTotals,
134
+ siteRowConversationCount,
120
135
  sortSessionForest,
121
136
  summarizeRailNodes,
122
137
  summarizeRailStatusCounts,
123
138
  visibleForestRows,
124
139
  visibleTreeRows
125
- } from "./chunk-BJIZ7PL7.js";
140
+ } from "./chunk-LHLK7FUA.js";
126
141
  import {
127
142
  countNeedsYou,
128
143
  filterNeedsYou
129
144
  } from "./chunk-UBJWSGD4.js";
145
+ import {
146
+ sessionSiteOrigin
147
+ } from "./chunk-K3TJNJSU.js";
148
+ import {
149
+ useSiteOpenedListener
150
+ } from "./chunk-JRSNCSZN.js";
151
+ import {
152
+ useSessionListHintRefresh
153
+ } from "./chunk-IJYL5BZM.js";
130
154
  import {
131
155
  MAX_VISUAL_TREE_DEPTH,
132
156
  defaultExpandedAncestors,
133
157
  sessionAncestorPath,
134
158
  sessionStateLabel,
135
159
  visualTreeDepth
136
- } from "./chunk-GTQ3SNEI.js";
137
- import {
138
- ChannelCreateDialog
139
- } from "./chunk-6WVASCYA.js";
140
- import {
141
- useSessionListHintRefresh
142
- } from "./chunk-R25ZKOZR.js";
160
+ } from "./chunk-CD3MO3IC.js";
143
161
  import {
144
162
  requestCommandMenu,
145
163
  useRail
146
- } from "./chunk-PFKTGZKE.js";
164
+ } from "./chunk-SY2AAZNB.js";
165
+ import {
166
+ applySessionAttentionProjections,
167
+ latestSessionAttentionProjection,
168
+ localSessionDeliveryAttentionCounts,
169
+ notifySessionAttentionChanged,
170
+ subscribeToLocalSessionDeliveryAttention,
171
+ subscribeToSessionAttentionChanges
172
+ } from "./chunk-SDHGQUS4.js";
147
173
  import {
148
174
  cancelSessionRowRevealIntent,
149
175
  consumeSessionRowRevealIntent,
@@ -154,14 +180,6 @@ import {
154
180
  shouldRecordSessionRowFocusIntent,
155
181
  shouldRestoreSessionFocus
156
182
  } from "./chunk-MMY23KS7.js";
157
- import {
158
- applySessionAttentionProjections,
159
- latestSessionAttentionProjection,
160
- localSessionDeliveryAttentionCounts,
161
- notifySessionAttentionChanged,
162
- subscribeToLocalSessionDeliveryAttention,
163
- subscribeToSessionAttentionChanges
164
- } from "./chunk-SDHGQUS4.js";
165
183
  import {
166
184
  requestCreateComposerFocus
167
185
  } from "./chunk-HQA6FUM5.js";
@@ -170,10 +188,7 @@ import {
170
188
  } from "./chunk-WGPLDFEC.js";
171
189
  import {
172
190
  useInlineRename
173
- } from "./chunk-4EAF3HSD.js";
174
- import {
175
- railRowCreator
176
- } from "./chunk-KJJBQ3KV.js";
191
+ } from "./chunk-EJ7WARW7.js";
177
192
  import {
178
193
  formatWaitingSince
179
194
  } from "./chunk-5TLEWXAB.js";
@@ -181,13 +196,26 @@ import {
181
196
  cn
182
197
  } from "./chunk-A3MTTRCX.js";
183
198
  import {
184
- HoverCard,
185
- HoverCardContent,
186
- HoverCardTrigger
187
- } from "./chunk-SZ5MYMF2.js";
199
+ ConfirmDialog
200
+ } from "./chunk-Q27G7PF6.js";
188
201
  import {
189
202
  analyticsAction
190
203
  } from "./chunk-PYC2ZWBJ.js";
204
+ import {
205
+ DropdownMenu,
206
+ DropdownMenuCheck,
207
+ DropdownMenuContent,
208
+ DropdownMenuItem,
209
+ DropdownMenuLabel,
210
+ DropdownMenuSeparator,
211
+ DropdownMenuShortcut,
212
+ DropdownMenuTrigger
213
+ } from "./chunk-TREHTIBD.js";
214
+ import {
215
+ Tooltip,
216
+ TooltipContent,
217
+ TooltipTrigger
218
+ } from "./chunk-OLTGED2Q.js";
191
219
  import {
192
220
  ContextMenu,
193
221
  ContextMenuContent,
@@ -197,9 +225,6 @@ import {
197
225
  ContextMenuShortcut,
198
226
  ContextMenuTrigger
199
227
  } from "./chunk-Z5OGTWMZ.js";
200
- import {
201
- ConfirmDialog
202
- } from "./chunk-Q27G7PF6.js";
203
228
  import {
204
229
  applySessionChannelProjection,
205
230
  applySessionPinProjection,
@@ -208,10 +233,7 @@ import {
208
233
  } from "./chunk-JHZRAYI4.js";
209
234
  import {
210
235
  t
211
- } from "./chunk-HPPKLBTJ.js";
212
- import {
213
- isPersonalWorkspace
214
- } from "./chunk-74JEZLLQ.js";
236
+ } from "./chunk-TJQDL3JH.js";
215
237
  import {
216
238
  toast
217
239
  } from "./chunk-YG6NARQY.js";
@@ -219,47 +241,40 @@ import {
219
241
  Link,
220
242
  useNavigate,
221
243
  useRouterState
222
- } from "./chunk-MYNUBDU7.js";
244
+ } from "./chunk-VYKW6TB2.js";
245
+ import {
246
+ isPersonalWorkspace
247
+ } from "./chunk-74JEZLLQ.js";
223
248
  import {
224
249
  useAppContext
225
250
  } from "./chunk-W6KAUGXO.js";
226
251
  import {
227
- Tooltip,
228
- TooltipContent,
229
- TooltipTrigger
230
- } from "./chunk-OLTGED2Q.js";
252
+ HoverCard,
253
+ HoverCardContent,
254
+ HoverCardTrigger
255
+ } from "./chunk-SZ5MYMF2.js";
231
256
  import {
232
- DropdownMenu,
233
- DropdownMenuCheck,
234
- DropdownMenuContent,
235
- DropdownMenuItem,
236
- DropdownMenuLabel,
237
- DropdownMenuSeparator,
238
- DropdownMenuShortcut,
239
- DropdownMenuTrigger
240
- } from "./chunk-TREHTIBD.js";
257
+ SESSION_GROUP_LABELS,
258
+ SESSION_GROUP_ORDER,
259
+ SESSION_TITLE_MAX_LENGTH,
260
+ groupSessionsForRail,
261
+ relativeTimeLabel,
262
+ sessionDisplayTitle,
263
+ sessionHasUpcomingSchedule,
264
+ sessionInputWait
265
+ } from "./chunk-22JFMNMF.js";
241
266
  import {
242
267
  useChannels
243
- } from "./chunk-RKB2Z457.js";
268
+ } from "./chunk-5VGJXWQ2.js";
244
269
  import {
245
270
  useSessionLineage
246
- } from "./chunk-QEJTQTF5.js";
271
+ } from "./chunk-W6T5HR3Z.js";
247
272
  import {
248
273
  Button
249
274
  } from "./chunk-HMU5IELG.js";
250
275
  import {
251
276
  useWorkspaceSessions
252
- } from "./chunk-RGPYMHKI.js";
253
- import {
254
- SESSION_GROUP_LABELS,
255
- SESSION_GROUP_ORDER,
256
- SESSION_TITLE_MAX_LENGTH,
257
- groupSessionsForRail,
258
- relativeTimeLabel,
259
- sessionDisplayTitle,
260
- sessionHasUpcomingSchedule,
261
- sessionInputWait
262
- } from "./chunk-Z5WMLJKI.js";
277
+ } from "./chunk-V3K4RQO7.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-DDIBZA4X.js.map
4609
+ //# sourceMappingURL=chunk-GT7JFQ4E.js.map