@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,10 +1,27 @@
1
1
  "use client";
2
2
  import {
3
+ applyPatchOpsFromToolItem,
4
+ controlCaret,
5
+ execTruncated,
6
+ invokedToolCall,
7
+ isExecSessionLostBanner,
8
+ looksBinary,
9
+ parseExecBannerSessionId,
10
+ parseToolArgs,
11
+ retainedToolResultImages,
12
+ sandboxCommandExitCode,
13
+ stripExecBanner,
14
+ tailPeek,
15
+ unwrapMcpOutput,
16
+ v4aToGitFileDiff
17
+ } from "./chunk-ULYQEFNH.js";
18
+ import {
19
+ builtInToolStep,
3
20
  mcpToolLeaf,
4
21
  toolDisplayName,
5
22
  toolStepLabel,
6
23
  toolStepPhase
7
- } from "./chunk-STUCI6QA.js";
24
+ } from "./chunk-LEKBNKLD.js";
8
25
  import {
9
26
  stringifyPayload,
10
27
  tryParseJson
@@ -212,501 +229,8 @@ function createToolRegistry(baseEntries, baseFallback, options = {}) {
212
229
  return { resolve, fallback };
213
230
  }
214
231
 
215
- // src/timeline/parsers.ts
216
- import {
217
- normalizeMcpOutput,
218
- parseGeneratedImageReceipt
219
- } from "@opengeni/sdk";
220
- function sandboxCommandExitCode(out) {
221
- const match = String(out ?? "").match(/Process exited with code (-?\d+)/);
222
- return match ? Number(match[1]) : null;
223
- }
224
- function parseExecBannerSessionId(out) {
225
- const text = String(out ?? "");
226
- const outputIdx = text.indexOf("\nOutput:\n");
227
- const banner = outputIdx >= 0 ? text.slice(0, outputIdx) : text.startsWith("Output:\n") ? "" : text;
228
- const match = banner.match(/Process running with session ID (\d+)/);
229
- if (!match) {
230
- return null;
231
- }
232
- const n = Number.parseInt(match[1], 10);
233
- return Number.isFinite(n) ? n : null;
234
- }
235
- function stripExecBanner(out) {
236
- const text = String(out ?? "");
237
- const marker = text.indexOf("\nOutput:\n");
238
- if (marker >= 0) {
239
- return text.slice(marker + "\nOutput:\n".length);
240
- }
241
- if (text.startsWith("Output:\n")) {
242
- return text.slice("Output:\n".length);
243
- }
244
- return text;
245
- }
246
- function execTruncated(out) {
247
- return /Total output lines:|\.{3}\d+ tokens truncated\.{3}|\[\.{3}\d+ characters truncated/.test(
248
- String(out ?? "")
249
- );
250
- }
251
- function isExecSessionLostBanner(out) {
252
- return /write_stdin failed: session not found: \d+/.test(String(out ?? ""));
253
- }
254
- function looksBinary(text) {
255
- return text.includes("\0") || text.startsWith("\x7FELF");
256
- }
257
- function controlCaret(printable) {
258
- return String(printable).replace(
259
- /[\u0000-\u001f]/g,
260
- (c) => `^${String.fromCharCode(c.charCodeAt(0) + 64)}`
261
- );
262
- }
263
- function v4aToGitFileDiff(op) {
264
- const status = op.type === "create_file" ? "added" : op.type === "delete_file" ? "deleted" : op.moveTo ? "renamed" : "modified";
265
- const oldPath = op.moveTo ? op.path : null;
266
- const path = op.moveTo || op.path;
267
- const hunks = [];
268
- let additions = 0;
269
- let deletions = 0;
270
- let sawHunkAnchor = false;
271
- if (op.type !== "delete_file") {
272
- const lines = (op.diff ?? "").split("\n");
273
- let cur = null;
274
- let oldNo = 1;
275
- let newNo = 1;
276
- for (const raw of lines) {
277
- if (raw.startsWith("@@")) {
278
- sawHunkAnchor = true;
279
- const match = raw.match(/-(\d+)(?:,\d+)?\s+\+(\d+)/);
280
- oldNo = match ? Number(match[1]) : 1;
281
- newNo = match ? Number(match[2]) : 1;
282
- cur = {
283
- oldStart: oldNo,
284
- oldLines: 0,
285
- newStart: newNo,
286
- newLines: 0,
287
- header: raw,
288
- lines: [{ type: "meta", oldNo: null, newNo: null, text: raw }]
289
- };
290
- hunks.push(cur);
291
- } else if (cur || op.type === "create_file") {
292
- if (!cur) {
293
- cur = {
294
- oldStart: 0,
295
- oldLines: 0,
296
- newStart: 1,
297
- newLines: 0,
298
- header: "",
299
- lines: []
300
- };
301
- hunks.push(cur);
302
- oldNo = 0;
303
- newNo = 1;
304
- }
305
- if (raw.startsWith("+")) {
306
- cur.lines.push({
307
- type: "add",
308
- oldNo: null,
309
- newNo: newNo++,
310
- text: raw.slice(1)
311
- });
312
- cur.newLines += 1;
313
- additions += 1;
314
- } else if (raw.startsWith("-")) {
315
- cur.lines.push({
316
- type: "del",
317
- oldNo: oldNo++,
318
- newNo: null,
319
- text: raw.slice(1)
320
- });
321
- cur.oldLines += 1;
322
- deletions += 1;
323
- } else {
324
- cur.lines.push({
325
- type: "context",
326
- oldNo: oldNo++,
327
- newNo: newNo++,
328
- text: raw.replace(/^ /, "")
329
- });
330
- cur.oldLines += 1;
331
- cur.newLines += 1;
332
- }
333
- }
334
- }
335
- if (op.type === "update_file" && !sawHunkAnchor && lines.some((l) => l.trim().length > 0)) {
336
- throw new Error("malformed V4A: no @@ hunk anchor");
337
- }
338
- }
339
- return {
340
- path,
341
- oldPath,
342
- status,
343
- isBinary: false,
344
- isImage: false,
345
- additions,
346
- deletions,
347
- hunks,
348
- truncated: false
349
- };
350
- }
351
- var BEGIN_PATCH = "*** Begin Patch";
352
- var END_PATCH = "*** End Patch";
353
- var ADD_FILE = "*** Add File: ";
354
- var DELETE_FILE = "*** Delete File: ";
355
- var UPDATE_FILE = "*** Update File: ";
356
- var MOVE_TO = "*** Move to: ";
357
- var APPLY_PATCH_OP_TYPES = /* @__PURE__ */ new Set(["create_file", "update_file", "delete_file"]);
358
- function isRecord(value) {
359
- return value !== null && typeof value === "object" && !Array.isArray(value);
360
- }
361
- function freeformApplyPatchOps(rawPatch) {
362
- return parseFreeformApplyPatch(rawPatch.trimStart());
363
- }
364
- function asApplyPatchOperation(value) {
365
- if (!isRecord(value)) return null;
366
- if (typeof value.type !== "string" || !APPLY_PATCH_OP_TYPES.has(value.type)) {
367
- return null;
368
- }
369
- if (typeof value.path !== "string" || !value.path) {
370
- return null;
371
- }
372
- const op = {
373
- type: value.type,
374
- path: value.path
375
- };
376
- if (typeof value.diff === "string") op.diff = value.diff;
377
- if (typeof value.moveTo === "string" && value.moveTo.length > 0) op.moveTo = value.moveTo;
378
- return op;
379
- }
380
- function parseStructuredOperations(payloads) {
381
- if (payloads.length === 0) return [];
382
- const operations = [];
383
- for (const payload of payloads) {
384
- const op = asApplyPatchOperation(payload);
385
- if (!op) return [];
386
- operations.push(op);
387
- }
388
- return operations;
389
- }
390
- function parseFreeformApplyPatch(rawPatch) {
391
- const lines = rawPatch.split(/\r?\n/);
392
- if (lines.at(-1) === "") lines.pop();
393
- if (lines[0] !== BEGIN_PATCH) return [];
394
- if (lines.length < 2 || lines.at(-1) !== END_PATCH) return [];
395
- const operations = [];
396
- let index = 1;
397
- while (index < lines.length - 1) {
398
- const line = lines[index];
399
- let parsed = null;
400
- if (line.startsWith(ADD_FILE)) parsed = parseAddFilePatch(lines, index);
401
- else if (line.startsWith(DELETE_FILE)) parsed = parseDeleteFilePatch(lines, index);
402
- else if (line.startsWith(UPDATE_FILE)) parsed = parseUpdateFilePatch(lines, index);
403
- else return [];
404
- if (!parsed || "error" in parsed) return [];
405
- operations.push(parsed.operation);
406
- index = parsed.nextIndex;
407
- }
408
- return operations.length > 0 ? operations : [];
409
- }
410
- function parsePatchHeader(line, prefix) {
411
- const path = line.slice(prefix.length).trim();
412
- return path || null;
413
- }
414
- function isFileOperationHeader(line) {
415
- return line.startsWith(ADD_FILE) || line.startsWith(DELETE_FILE) || line.startsWith(UPDATE_FILE);
416
- }
417
- function joinDiff(lines) {
418
- return `${lines.join("\n")}
419
- `;
420
- }
421
- function parseAddFilePatch(lines, index) {
422
- const path = parsePatchHeader(lines[index], ADD_FILE);
423
- if (!path) return { error: true };
424
- index += 1;
425
- const diffLines = [];
426
- while (index < lines.length - 1 && !isFileOperationHeader(lines[index])) {
427
- const line = lines[index];
428
- if (!line.startsWith("+")) return { error: true };
429
- diffLines.push(line);
430
- index += 1;
431
- }
432
- if (diffLines.length === 0) return { error: true };
433
- return {
434
- operation: { type: "create_file", path, diff: joinDiff(diffLines) },
435
- nextIndex: index
436
- };
437
- }
438
- function parseDeleteFilePatch(lines, index) {
439
- const path = parsePatchHeader(lines[index], DELETE_FILE);
440
- if (!path) return { error: true };
441
- index += 1;
442
- if (index < lines.length - 1 && !isFileOperationHeader(lines[index])) {
443
- return { error: true };
444
- }
445
- return { operation: { type: "delete_file", path }, nextIndex: index };
446
- }
447
- function parseUpdateFilePatch(lines, index) {
448
- const path = parsePatchHeader(lines[index], UPDATE_FILE);
449
- if (!path) return { error: true };
450
- index += 1;
451
- let moveTo;
452
- if (index < lines.length - 1 && lines[index].startsWith(MOVE_TO)) {
453
- const parsedMoveTo = parsePatchHeader(lines[index], MOVE_TO);
454
- if (!parsedMoveTo) return { error: true };
455
- moveTo = parsedMoveTo;
456
- index += 1;
457
- }
458
- const diffLines = [];
459
- while (index < lines.length - 1 && !isFileOperationHeader(lines[index])) {
460
- diffLines.push(lines[index]);
461
- index += 1;
462
- }
463
- if (diffLines.length === 0 && !moveTo) return { error: true };
464
- return {
465
- operation: {
466
- type: "update_file",
467
- path,
468
- diff: diffLines.length > 0 ? joinDiff(diffLines) : "",
469
- ...moveTo ? { moveTo } : {}
470
- },
471
- nextIndex: index
472
- };
473
- }
474
- function applyPatchOps(raw) {
475
- if (raw == null) return [];
476
- if (typeof raw === "string") {
477
- const trimmed = raw.trimStart();
478
- if (trimmed.startsWith(BEGIN_PATCH)) return freeformApplyPatchOps(trimmed);
479
- const parsed = tryParseJson(trimmed);
480
- return parsed === void 0 ? [] : applyPatchOps(parsed);
481
- }
482
- if (Array.isArray(raw)) return parseStructuredOperations(raw);
483
- if (!isRecord(raw)) return [];
484
- if (typeof raw.patch === "string") return freeformApplyPatchOps(raw.patch);
485
- if (Array.isArray(raw.command)) {
486
- const [commandName, patch] = raw.command;
487
- if (commandName === "apply_patch" && typeof patch === "string") {
488
- return freeformApplyPatchOps(patch);
489
- }
490
- }
491
- if (Array.isArray(raw.operations) && raw.operations.length > 0) {
492
- return parseStructuredOperations(raw.operations);
493
- }
494
- if (raw.operation !== void 0) {
495
- const op = asApplyPatchOperation(raw.operation);
496
- return op ? [op] : [];
497
- }
498
- const flat = asApplyPatchOperation(raw);
499
- return flat ? [flat] : [];
500
- }
501
- function applyPatchOpsFromToolItem(item) {
502
- const fromRaw = applyPatchOps(item.raw);
503
- if (fromRaw.length > 0) return fromRaw;
504
- if (isRecord(item.raw)) {
505
- const nested = item.raw.arguments ?? item.raw.input;
506
- if (nested !== void 0 && nested !== item.arguments) {
507
- const fromNested = applyPatchOps(nested);
508
- if (fromNested.length > 0) return fromNested;
509
- }
510
- }
511
- if (item.arguments !== void 0 && item.arguments !== null) {
512
- return applyPatchOps(item.arguments);
513
- }
514
- return [];
515
- }
516
- function isApplyPatch(item) {
517
- const type = item.raw && typeof item.raw === "object" ? item.raw.type : void 0;
518
- if (type === "apply_patch_call") {
519
- return true;
520
- }
521
- const name = item.name;
522
- return name === "apply_patch_call" || name === "apply_patch" || name.endsWith("__apply_patch");
523
- }
524
- function parseToolArgs(args) {
525
- if (args == null) {
526
- return {};
527
- }
528
- if (typeof args === "string") {
529
- const parsed = tryParseJson(args);
530
- return parsed && typeof parsed === "object" ? parsed : {};
531
- }
532
- return typeof args === "object" ? args : {};
533
- }
534
- function tailPeek(text) {
535
- const trimmed = text.trim();
536
- if (!trimmed) {
537
- return "";
538
- }
539
- const lines = trimmed.split("\n");
540
- return lines[lines.length - 1] ?? "";
541
- }
542
- function unwrapMcpOutput(output) {
543
- const normalized = normalizeMcpOutput(output);
544
- return { text: normalized.text, isError: normalized.isError };
545
- }
546
- function screenshotDataUrl(out) {
547
- if (typeof out === "string") {
548
- if (out.startsWith("data:image")) {
549
- return out;
550
- }
551
- if (out.startsWith("{") || out.startsWith("[")) {
552
- const parsed = tryParseJson(out);
553
- if (parsed !== void 0 && parsed !== out) {
554
- return screenshotDataUrl(parsed);
555
- }
556
- }
557
- return null;
558
- }
559
- if (Array.isArray(out)) {
560
- for (const entry of out) {
561
- const url = screenshotDataUrl(entry);
562
- if (url) {
563
- return url;
564
- }
565
- }
566
- return null;
567
- }
568
- if (out === null || typeof out !== "object") {
569
- return null;
570
- }
571
- const record = out;
572
- const imageUrl = record.image_url ?? record.imageUrl;
573
- if (typeof imageUrl === "string" && imageUrl.startsWith("data:image")) {
574
- return imageUrl;
575
- }
576
- if (imageUrl && typeof imageUrl === "object") {
577
- const url = imageUrl.url;
578
- if (typeof url === "string" && url.startsWith("data:image")) {
579
- return url;
580
- }
581
- }
582
- const image = record.image;
583
- if (image && typeof image === "object") {
584
- const mediaType = typeof image.mediaType === "string" ? image.mediaType : "image/png";
585
- const base64 = bytesToBase64(image.data);
586
- if (base64) {
587
- return `data:${mediaType};base64,${base64}`;
588
- }
589
- if (typeof image.data === "string" && image.data.length > 0) {
590
- return `data:${mediaType};base64,${image.data}`;
591
- }
592
- }
593
- return null;
594
- }
595
- function retainedScreenshotMetadata(out) {
596
- if (typeof out === "string" && (out.startsWith("{") || out.startsWith("["))) {
597
- const parsed = tryParseJson(out);
598
- if (parsed !== void 0 && parsed !== out) return retainedScreenshotMetadata(parsed);
599
- }
600
- if (Array.isArray(out)) {
601
- for (const entry of out) {
602
- const metadata = retainedScreenshotMetadata(entry);
603
- if (metadata) return metadata;
604
- }
605
- return null;
606
- }
607
- if (!out || typeof out !== "object") return null;
608
- const value = out;
609
- if (typeof value.artifactId !== "string" || typeof value.available !== "boolean") return null;
610
- if (!value.available) {
611
- return typeof value.reason === "string" ? value : null;
612
- }
613
- return (value.kind === "computer_screenshot" || value.kind === "browser_screenshot") && ["image/png", "image/jpeg", "image/webp"].includes(String(value.contentType)) && typeof value.originalBytes === "number" && typeof value.sha256 === "string" && value.dimensions !== null && typeof value.dimensions === "object" && value.retention !== null && typeof value.retention === "object" && value.retention.policy === "session_screenshot" ? value : null;
614
- }
615
- function generatedImageReceipt(out) {
616
- return parseGeneratedImageReceipt(out);
617
- }
618
- function retainedToolResultImages(out) {
619
- const parsed = typeof out === "string" && (out.startsWith("{") || out.startsWith("[")) ? tryParseJson(out) : out;
620
- const split = (entries) => {
621
- const images = [];
622
- const rest = entries.filter((entry) => {
623
- if (!entry || typeof entry !== "object" || Array.isArray(entry)) return true;
624
- const receipt = retainedScreenshotMetadata(entry);
625
- if (!receipt?.available) return true;
626
- images.push(receipt);
627
- return false;
628
- });
629
- return { images, rest };
630
- };
631
- if (Array.isArray(parsed)) {
632
- const { images, rest } = split(parsed);
633
- return images.length ? { images, output: rest } : { images, output: out };
634
- }
635
- if (parsed && typeof parsed === "object") {
636
- const record = parsed;
637
- if (Array.isArray(record.content)) {
638
- const { images, rest } = split(record.content);
639
- return images.length ? { images, output: { ...record, content: rest } } : { images, output: out };
640
- }
641
- }
642
- return { images: [], output: out };
643
- }
644
- function mediaPreviewFact(out) {
645
- if (typeof out === "string" && (out.startsWith("{") || out.startsWith("["))) {
646
- const parsed = tryParseJson(out);
647
- if (parsed !== void 0 && parsed !== out) return mediaPreviewFact(parsed);
648
- }
649
- if (Array.isArray(out)) {
650
- for (const entry of out) {
651
- const preview = mediaPreviewFact(entry);
652
- if (preview) return preview;
653
- }
654
- return null;
655
- }
656
- if (!out || typeof out !== "object") return null;
657
- const record = out;
658
- if (record.type !== "media_preview" || typeof record.mediaType !== "string" || record.fullOutputAvailable !== false || typeof record.preview !== "string" || record.inlineBytes !== null && typeof record.inlineBytes !== "number") {
659
- return null;
660
- }
661
- return record;
662
- }
663
- function bytesToBase64(data) {
664
- const isByte = (n) => typeof n === "number" && Number.isInteger(n) && n >= 0 && n <= 255;
665
- let bytes = null;
666
- if (Array.isArray(data) && data.every(isByte)) {
667
- bytes = data;
668
- } else if (data && typeof data === "object") {
669
- const record = data;
670
- if (record.type === "Buffer" && Array.isArray(record.data) && record.data.every(isByte)) {
671
- bytes = record.data;
672
- } else {
673
- const keys = Object.keys(record);
674
- if (keys.length > 0 && keys.every((key) => /^\d+$/.test(key))) {
675
- const values = keys.sort((a, b) => Number(a) - Number(b)).map((key) => record[key]);
676
- if (values.every(isByte)) {
677
- bytes = values;
678
- }
679
- }
680
- }
681
- }
682
- if (!bytes || bytes.length === 0) {
683
- return null;
684
- }
685
- try {
686
- let binary = "";
687
- const CHUNK = 32768;
688
- for (let i = 0; i < bytes.length; i += CHUNK) {
689
- binary += String.fromCharCode(...bytes.slice(i, i + CHUNK));
690
- }
691
- return typeof btoa === "function" ? btoa(binary) : Buffer.from(binary, "binary").toString("base64");
692
- } catch {
693
- return null;
694
- }
695
- }
696
-
697
232
  // src/timeline/tool-presentation.ts
698
233
  import { isConnectedMachineOutcomeUnknownOutput } from "@opengeni/sdk";
699
-
700
- // src/timeline/invoked-tool.ts
701
- function invokedToolCall(item) {
702
- if (mcpToolLeaf(item.name) !== "tool_invoke") return item;
703
- const args = parseToolArgs(item.arguments);
704
- if (typeof args.name !== "string" || !args.name.trim()) return item;
705
- const { display: _display, ...rest } = item;
706
- return { ...rest, name: args.name, arguments: args.arguments ?? {} };
707
- }
708
-
709
- // src/timeline/tool-presentation.ts
710
234
  function withComputePreview(label, preview) {
711
235
  if (!label) {
712
236
  return preview;
@@ -1135,9 +659,127 @@ function goalToolPreview(name, args) {
1135
659
  const text = typeof record.text === "string" ? record.text : typeof record.evidence === "string" ? record.evidence : typeof record.rationale === "string" ? record.rationale : typeof record.reason === "string" ? record.reason : typeof record.progressNote === "string" ? record.progressNote : null;
1136
660
  return text ? truncatePreview(text, 90) : null;
1137
661
  }
662
+ var TOOL_STEP_ICONS = {
663
+ // Chats, goals and notifications
664
+ nameChat: "rename",
665
+ notify: "bell",
666
+ withdrawNotification: "bell",
667
+ tidyInbox: "inbox",
668
+ setGoal: "target",
669
+ noteProgress: "target",
670
+ completeGoal: "target",
671
+ pauseGoal: "target",
672
+ resumeGoal: "target",
673
+ wait: "wait",
674
+ askYou: "question",
675
+ askForHelp: "help",
676
+ // Notes, knowledge and instructions
677
+ checkNotes: "brain",
678
+ saveNote: "brain",
679
+ archiveNote: "brain",
680
+ proposeUpdate: "brain",
681
+ confirmUpdate: "brain",
682
+ updateInstructions: "brain",
683
+ coordinateWork: "sessions",
684
+ // Guides (Skills)
685
+ readGuide: "guide",
686
+ findGuides: "guide",
687
+ saveGuide: "guide",
688
+ removeGuide: "guide",
689
+ // Computers
690
+ findComputers: "server",
691
+ switchComputer: "server",
692
+ useComputer: "server",
693
+ setUpComputer: "server",
694
+ removeComputer: "server",
695
+ runCommand: "terminal",
696
+ runCode: "code",
697
+ editFile: "file-diff",
698
+ lookAtImage: "image",
699
+ searchCode: "search",
700
+ searchFiles: "file-search",
701
+ openFile: "file",
702
+ // Screens and the browser
703
+ checkScreens: "screen",
704
+ openScreen: "screen",
705
+ lookAtScreen: "screen",
706
+ useScreen: "screen",
707
+ enableScreenControl: "screen",
708
+ useClipboard: "clipboard",
709
+ openBrowser: "browser",
710
+ useBrowser: "browser",
711
+ readPage: "browser",
712
+ lookAtPage: "browser",
713
+ workInBrowser: "browser",
714
+ download: "download",
715
+ recordBrowser: "record",
716
+ signIn: "sign-in",
717
+ manageSignIns: "sign-in",
718
+ shareBrowser: "share",
719
+ workInExcel: "spreadsheet",
720
+ // Projects, other chats and helpers
721
+ checkProjects: "folder",
722
+ organizeProjects: "folder",
723
+ checkChats: "sessions",
724
+ chooseChat: "sessions",
725
+ checkProgress: "progress",
726
+ changeModel: "model",
727
+ startHelper: "helper",
728
+ messageAssistant: "sessions",
729
+ manageChat: "sessions",
730
+ // Workspace administration and setup
731
+ manageWorkspace: "settings",
732
+ manageSetup: "server-cog",
733
+ checkModels: "model",
734
+ // Passwords and settings
735
+ findPassword: "key",
736
+ savePassword: "key",
737
+ deletePassword: "key",
738
+ checkSettings: "settings",
739
+ updateSettings: "settings",
740
+ // Tools and connections
741
+ findTools: "package-search",
742
+ useTool: "plug",
743
+ requestAccess: "plug",
744
+ listRepositories: "git",
745
+ // Web, images and video
746
+ searchWeb: "search",
747
+ createImage: "image",
748
+ createVideo: "video",
749
+ // Social accounts
750
+ checkAccounts: "share",
751
+ readPosts: "share",
752
+ syncPosts: "share",
753
+ replyToPost: "share",
754
+ // Scheduled tasks
755
+ checkSchedules: "calendar",
756
+ createSchedule: "calendar",
757
+ updateSchedule: "calendar",
758
+ runSchedule: "calendar",
759
+ // Slack
760
+ readSlack: "message",
761
+ postSlack: "message",
762
+ deleteMessage: "message",
763
+ // Accounting
764
+ readAccounting: "accounting",
765
+ updateAccounting: "accounting",
766
+ // Documents, files and Sites
767
+ searchDocuments: "file-search",
768
+ checkDocuments: "document",
769
+ createDocument: "document",
770
+ editDocument: "document",
771
+ exportDocument: "document",
772
+ restoreDocument: "document",
773
+ archiveDocument: "archive",
774
+ shareFile: "attachment",
775
+ checkSite: "site",
776
+ updateSite: "site"
777
+ };
1138
778
  function genericToolIconKind(name) {
1139
779
  const leaf = mcpToolLeaf(name);
1140
- return leaf === "request_human_input" ? "question" : leaf.startsWith("goal_") ? "target" : leaf.startsWith("memory_") || leaf === "preference_registry_summary" || leaf === "preference_registry_get" ? "brain" : leaf.startsWith("session_") || leaf === "sessions_list" || leaf === "set_session_title" || leaf === "set_other_session_title" ? "sessions" : leaf.startsWith("sandbox") || leaf === "sandboxes_list" || leaf === "run_on" ? "server" : leaf.startsWith("rig_") ? "server-cog" : leaf.startsWith("scheduled_") ? "calendar" : leaf.startsWith("artifacts_") ? "panels" : leaf.startsWith("social_") ? "share" : leaf.startsWith("slack_") ? "message" : leaf.startsWith("github_") ? "git" : leaf.startsWith("variable_") ? "box" : leaf.startsWith("environment_") ? "key" : leaf.includes("document") || leaf.includes("knowledge") || leaf === "list_document_bases" ? "file-search" : leaf === "tool_search" ? "package-search" : leaf.startsWith("skill_") ? "plug" : "wrench";
780
+ const step = builtInToolStep(leaf);
781
+ if (step) return TOOL_STEP_ICONS[step];
782
+ return leaf.startsWith("goal_") ? "target" : leaf.startsWith("memory_") || leaf.startsWith("knowledge_") ? "brain" : leaf.startsWith("session_") || leaf.startsWith("sessions_") ? "sessions" : leaf.startsWith("sandbox") || leaf.startsWith("connected_machine_") ? "server" : leaf.startsWith("rig_") ? "server-cog" : leaf.startsWith("scheduled_") ? "calendar" : leaf.startsWith("artifacts_") || leaf.startsWith("editable_artifact_") ? "document" : leaf.startsWith("site_") ? "site" : leaf.startsWith("browser_") ? "browser" : leaf.startsWith("computer_") || leaf.startsWith("cua_") ? "screen" : leaf.startsWith("secret_") ? "key" : leaf.startsWith("social_") || leaf.startsWith("x_") || leaf.startsWith("reddit_") ? "share" : leaf.startsWith("slack_") ? "message" : leaf.startsWith("github_") ? "git" : leaf.startsWith("variable_") || leaf.startsWith("environment_") ? "settings" : leaf.includes("document") ? "file-search" : leaf.startsWith("skill_") ? "guide" : "wrench";
1141
783
  }
1142
784
  function mcpRowPresentation(t, item, options) {
1143
785
  const args = parseToolArgs(item.arguments);
@@ -1224,7 +866,7 @@ function machinePresentation(t, item) {
1224
866
  const failed = item.status !== "running" && item.status !== "cancelled" && (item.status === "failed" || unwrapMcpOutput(item.output).isError);
1225
867
  return mcpRowPresentation(t, item, {
1226
868
  tool: "machine",
1227
- icon: isScreenTool(leaf) ? "panels" : "server",
869
+ icon: genericToolIconKind(item.name),
1228
870
  title: failed ? machineFailureTitle(t, leaf) : machineTitle(t, leaf, args, action, item.output),
1229
871
  runningPreview: preview,
1230
872
  runningFallback: t("timeline.toolPresentation.running"),
@@ -1234,9 +876,6 @@ function machinePresentation(t, item) {
1234
876
  quietError: true
1235
877
  });
1236
878
  }
1237
- function isScreenTool(leaf) {
1238
- return leaf.startsWith("computer_") || leaf.startsWith("cua_") || leaf === "interaction_discover";
1239
- }
1240
879
  function machineFailureTitle(t, leaf) {
1241
880
  switch (leaf) {
1242
881
  case "sandboxes_list":
@@ -1586,7 +1225,7 @@ function sessionTitlePresentation(t, item) {
1586
1225
  const previewTitle = titleArg ? truncatePreview(titleArg, 72) : "";
1587
1226
  const base = {
1588
1227
  tool: "session_title",
1589
- icon: "sessions",
1228
+ icon: genericToolIconKind(item.name),
1590
1229
  title: toolDisplayName(t, item.name, item.display, callStepPhase(item))
1591
1230
  };
1592
1231
  if (item.status === "running") {
@@ -1820,27 +1459,6 @@ export {
1820
1459
  selectTurnSummaryFacets,
1821
1460
  rawTypeOf,
1822
1461
  createToolRegistry,
1823
- sandboxCommandExitCode,
1824
- parseExecBannerSessionId,
1825
- stripExecBanner,
1826
- execTruncated,
1827
- isExecSessionLostBanner,
1828
- looksBinary,
1829
- controlCaret,
1830
- v4aToGitFileDiff,
1831
- parseFreeformApplyPatch,
1832
- applyPatchOps,
1833
- applyPatchOpsFromToolItem,
1834
- isApplyPatch,
1835
- parseToolArgs,
1836
- tailPeek,
1837
- unwrapMcpOutput,
1838
- screenshotDataUrl,
1839
- retainedScreenshotMetadata,
1840
- generatedImageReceipt,
1841
- retainedToolResultImages,
1842
- mediaPreviewFact,
1843
- invokedToolCall,
1844
1462
  withComputePreview,
1845
1463
  truncatePreview,
1846
1464
  execPresentation,
@@ -1866,4 +1484,4 @@ export {
1866
1484
  GENIE_PREPARING_PHRASES,
1867
1485
  GENIE_WAITING_PHRASES
1868
1486
  };
1869
- //# sourceMappingURL=chunk-TQGJN5UZ.js.map
1487
+ //# sourceMappingURL=chunk-AW3QEFOF.js.map