@opengeni/react 4.3.3-canary.39780140124001 → 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/dist/app/app-state.js +29 -29
  2. package/dist/app/components/Composer.js +22 -22
  3. package/dist/app/components/agent/agent-capability-picker.js +4 -4
  4. package/dist/app/components/artifacts/artifact-browse-controls.js +1 -1
  5. package/dist/app/components/artifacts/artifact-library.js +19 -19
  6. package/dist/app/components/artifacts/chat-interactive-block.js +14 -14
  7. package/dist/app/components/artifacts/inline-chat-image.js +25 -25
  8. package/dist/app/components/artifacts/retained-file-preview.js +28 -28
  9. package/dist/app/components/artifacts/retained-text-preview.js +3 -3
  10. package/dist/app/components/artifacts/site-audience.js +4 -4
  11. package/dist/app/components/artifacts/site-conversations.js +18 -18
  12. package/dist/app/components/artifacts/site-data.js +19 -19
  13. package/dist/app/components/artifacts/site-publishing.js +38 -38
  14. package/dist/app/components/artifacts/site-settings.js +47 -47
  15. package/dist/app/components/billing-class-mark.js +4 -4
  16. package/dist/app/components/capabilities/capability-detail-sheet.js +8 -8
  17. package/dist/app/components/capabilities/capability-logo-source.js +8 -8
  18. package/dist/app/components/capabilities/connector-tool-permissions.js +4 -4
  19. package/dist/app/components/capabilities/native-connect-setup.js +12 -12
  20. package/dist/app/components/capabilities/perform-capability-action.js +1 -1
  21. package/dist/app/components/capabilities/prepared-mcp-setup-card.js +11 -11
  22. package/dist/app/components/capabilities/session-capability-card.js +90 -74
  23. package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
  24. package/dist/app/components/capabilities/session-chrome-card.css +1023 -0
  25. package/dist/app/components/capabilities/session-chrome-card.css.map +1 -0
  26. package/dist/app/components/capabilities/session-chrome-card.d.ts +18 -0
  27. package/dist/app/components/capabilities/session-chrome-card.js +70 -0
  28. package/dist/app/components/capabilities/session-custom-mcp-card.js +16 -16
  29. package/dist/app/components/capabilities/session-github-card.js +20 -20
  30. package/dist/app/components/capabilities/session-machine-card.d.ts +27 -1
  31. package/dist/app/components/capabilities/session-machine-card.js +31 -29
  32. package/dist/app/components/capabilities/use-capabilities-catalog.js +3 -3
  33. package/dist/app/components/capabilities/use-connection-accounts.js +1 -1
  34. package/dist/app/components/command-menu/chat-status.js +12 -12
  35. package/dist/app/components/command-menu/chat-switcher.js +17 -17
  36. package/dist/app/components/command-menu/command-menu.js +35 -35
  37. package/dist/app/components/command-menu/shortcut-sheet.js +16 -16
  38. package/dist/app/components/composer-capabilities-menu-body.js +3 -3
  39. package/dist/app/components/composer-mobile-plus-panel.js +16 -16
  40. package/dist/app/components/composer-mobile-plus.js +1 -1
  41. package/dist/app/components/credit-required-gate.js +1 -1
  42. package/dist/app/components/credit-required-prompt.js +10 -10
  43. package/dist/app/components/desktop/app-shots.js +2 -2
  44. package/dist/app/components/feedback.js +2 -2
  45. package/dist/app/components/follow-up-repository-menu-body.js +7 -7
  46. package/dist/app/components/follow-up-repository-picker.js +2 -2
  47. package/dist/app/components/github-app-connect-launcher.js +2 -2
  48. package/dist/app/components/knowledge/agent-learning-settings.js +3 -3
  49. package/dist/app/components/machines/connect-machine-dialog.js +16 -16
  50. package/dist/app/components/markdown.js +7 -7
  51. package/dist/app/components/message-context-pills.js +2 -2
  52. package/dist/app/components/models/models-ui.js +8 -8
  53. package/dist/app/components/pickers.js +7 -7
  54. package/dist/app/components/rail/rail-context.js +2 -2
  55. package/dist/app/components/rail/rail-sections.js +63 -63
  56. package/dist/app/components/rail/session-header.js +48 -48
  57. package/dist/app/components/rail/session-list.js +62 -62
  58. package/dist/app/components/rail/session-row-content.js +2 -2
  59. package/dist/app/components/rail/session-row-hover-details.js +17 -17
  60. package/dist/app/components/rail/session-shell.js +102 -102
  61. package/dist/app/components/rail/site-session-group-heading.js +3 -3
  62. package/dist/app/components/repository-picker.js +7 -7
  63. package/dist/app/components/secrets/session-secrets-panel.js +3 -3
  64. package/dist/app/components/session/agent-configuration-panel.js +33 -33
  65. package/dist/app/components/session/artifact-session-page.js +1 -1
  66. package/dist/app/components/session/banners.js +10 -10
  67. package/dist/app/components/session/codex-account-indicator.js +8 -8
  68. package/dist/app/components/session/editable-artifacts-workspace.js +38 -38
  69. package/dist/app/components/session/failed-session-banner.js +7 -7
  70. package/dist/app/components/session/human-input.js +44 -44
  71. package/dist/app/components/session/inspector.js +87 -87
  72. package/dist/app/components/session/message-actions.js +2 -2
  73. package/dist/app/components/session/message-resource-attachments.js +20 -20
  74. package/dist/app/components/session/model-account-indicator.js +8 -8
  75. package/dist/app/components/session/model-context-inspector.js +2 -2
  76. package/dist/app/components/session/new-session-settings-menu.js +10 -10
  77. package/dist/app/components/session/sandbox-switcher.js +12 -12
  78. package/dist/app/components/session/sandbox-workspace.js +62 -62
  79. package/dist/app/components/session/search-markdown-highlight.js +8 -8
  80. package/dist/app/components/session/search-results-view.js +9 -9
  81. package/dist/app/components/session/session-admin-access.js +8 -8
  82. package/dist/app/components/session/session-admission-notice.js +2 -2
  83. package/dist/app/components/session/session-machine-access-notice.js +2 -2
  84. package/dist/app/components/session/session-retention.js +4 -4
  85. package/dist/app/components/session/session-search-dialog.js +9 -9
  86. package/dist/app/components/session/session-skill-reviews.js +1 -1
  87. package/dist/app/components/session/session-tenancy-control.js +24 -24
  88. package/dist/app/components/session/session-usage-limit-section.js +10 -10
  89. package/dist/app/components/session/session-wait-status.js +7 -7
  90. package/dist/app/components/session/subagents.js +13 -13
  91. package/dist/app/components/session-connectors-menu-body.js +5 -5
  92. package/dist/app/components/settings/row-select.js +3 -3
  93. package/dist/app/components/transcription-settings.js +4 -4
  94. package/dist/app/components/ui/destructive-confirm.js +6 -6
  95. package/dist/app/components/usage/usage-entry.js +4 -4
  96. package/dist/app/components/workspace-composer-plus.js +18 -18
  97. package/dist/app/embed/session-app.js +268 -268
  98. package/dist/app/lib/actions/actions-provider.js +16 -16
  99. package/dist/app/lib/app-surfaces.js +1 -1
  100. package/dist/app/lib/codex-usage-query.js +2 -2
  101. package/dist/app/lib/composer-connectors.js +9 -9
  102. package/dist/app/lib/events.js +12 -12
  103. package/dist/app/lib/session-branch-cache.js +9 -9
  104. package/dist/app/lib/session-create.js +2 -2
  105. package/dist/app/lib/session-group-pagination.js +9 -9
  106. package/dist/app/lib/session-hover-facts.js +10 -10
  107. package/dist/app/lib/session-model.js +3 -3
  108. package/dist/app/lib/session-rail.js +7 -7
  109. package/dist/app/lib/session-rename.js +3 -3
  110. package/dist/app/lib/sessions-group.js +9 -9
  111. package/dist/app/lib/turn-failure-analytics.js +1 -1
  112. package/dist/app/lib/use-duplicate-site.js +3 -3
  113. package/dist/app/lib/use-follow-up-repositories.js +5 -5
  114. package/dist/app/lib/use-workspace-integrations.js +2 -2
  115. package/dist/app/lib/use-workspace-machines.js +2 -2
  116. package/dist/app/lib/use-workspace-model-catalog.js +2 -2
  117. package/dist/app/lib/use-workspace-rigs.js +3 -3
  118. package/dist/app/lib/workspace-navigation-preference.js +1 -1
  119. package/dist/app/lib/workspace-scope-context.js +1 -1
  120. package/dist/app/routes/artifacts.js +132 -132
  121. package/dist/app/routes/retained-artifact.js +62 -62
  122. package/dist/app/routes/session-unavailable.js +2 -2
  123. package/dist/app/routes/session.js +163 -163
  124. package/dist/app/routes/sessions-index-hydration.js +3 -3
  125. package/dist/app/routes/sessions-index.js +109 -109
  126. package/dist/artifacts-document.js +2 -2
  127. package/dist/artifacts-presentation.js +2 -2
  128. package/dist/artifacts-spreadsheet.js +2 -2
  129. package/dist/artifacts.js +36 -36
  130. package/dist/{browser-viewer-VYZLJH3P.js → browser-viewer-RYYQSRTC.js} +5 -5
  131. package/dist/{chat-interactive-block-MECBXZ7V.js → chat-interactive-block-ABCRKXJ4.js} +5 -5
  132. package/dist/{chunk-Y4D4N2EF.js → chunk-22ZBT6CN.js} +2 -2
  133. package/dist/{chunk-TFK4KFKA.js → chunk-33TPANCR.js} +4 -4
  134. package/dist/{chunk-CFFNT2OY.js → chunk-3GLAPCVI.js} +8 -8
  135. package/dist/{chunk-BXQYAAVE.js → chunk-3XOISKZC.js} +4 -4
  136. package/dist/{chunk-FYGMIMEG.js → chunk-4432A3HQ.js} +2 -2
  137. package/dist/{chunk-3MOD23RS.js → chunk-46VBQG2D.js} +13 -13
  138. package/dist/{chunk-Q2PVSCJV.js → chunk-4EAF3HSD.js} +2 -2
  139. package/dist/{chunk-YTK6MYZH.js → chunk-4EONHNJU.js} +2 -2
  140. package/dist/{chunk-7YLXFFF5.js → chunk-4R3JCVID.js} +141 -141
  141. package/dist/{chunk-73DMIW44.js → chunk-4VKA5O7T.js} +2 -2
  142. package/dist/{chunk-SLTOYHG6.js → chunk-4W7VISE7.js} +108 -108
  143. package/dist/{chunk-SLTOYHG6.js.map → chunk-4W7VISE7.js.map} +1 -1
  144. package/dist/{chunk-TIBPTOLQ.js → chunk-5JEIDFPD.js} +1 -1
  145. package/dist/{chunk-L7UDYTU3.js → chunk-5MZTJMZ3.js} +7 -6
  146. package/dist/chunk-5MZTJMZ3.js.map +1 -0
  147. package/dist/{chunk-3E4SJHVW.js → chunk-5POTDNQT.js} +5 -5
  148. package/dist/{chunk-JW6CYU5F.js → chunk-63VGE4OH.js} +2 -2
  149. package/dist/{chunk-2VDCH2DF.js → chunk-6JKZILLF.js} +65 -65
  150. package/dist/{chunk-2VDCH2DF.js.map → chunk-6JKZILLF.js.map} +1 -1
  151. package/dist/{chunk-7HVOIRGN.js → chunk-6NIB2KGJ.js} +41 -41
  152. package/dist/{chunk-KLVK7BN5.js → chunk-6PQNLL4E.js} +35 -35
  153. package/dist/{chunk-FGPSTD37.js → chunk-72J6C2AJ.js} +4 -4
  154. package/dist/{chunk-N34NUHUO.js → chunk-73SOCVLS.js} +4 -4
  155. package/dist/{chunk-43OV5QK7.js → chunk-7BST7BA6.js} +4 -4
  156. package/dist/{chunk-FDAV72IX.js → chunk-7CZTKBTI.js} +5 -5
  157. package/dist/{chunk-G4ONAC4P.js → chunk-7DU35P5J.js} +6 -6
  158. package/dist/{chunk-SM5QX6UK.js → chunk-A2EWJQXX.js} +4 -4
  159. package/dist/{chunk-3WDWLSYX.js → chunk-AD22P5X3.js} +3 -3
  160. package/dist/{chunk-ZQSRAMSH.js → chunk-ADJJQSYC.js} +42 -42
  161. package/dist/{chunk-5C6KUGFG.js → chunk-AG7VGUIW.js} +6 -6
  162. package/dist/{chunk-LF5CBAOS.js → chunk-AOLE4IRZ.js} +5 -5
  163. package/dist/{chunk-CF7ZCKZC.js → chunk-APU42QDI.js} +133 -133
  164. package/dist/{chunk-P56F4SFD.js → chunk-BJIZ7PL7.js} +2 -2
  165. package/dist/{chunk-XEL2ZJ3Z.js → chunk-BJW7G6EF.js} +2 -2
  166. package/dist/{chunk-NNNXKGJH.js → chunk-BNUPYHHZ.js} +2 -2
  167. package/dist/{chunk-FYSOHZSM.js → chunk-BXRIQZAH.js} +8 -8
  168. package/dist/{chunk-N4ZDRONX.js → chunk-CBY5CXBD.js} +4 -4
  169. package/dist/{chunk-7PTHBHEW.js → chunk-CVG4FILQ.js} +69 -69
  170. package/dist/{chunk-LMN7SO4T.js → chunk-DDK4WFJ3.js} +12 -12
  171. package/dist/{chunk-G4HQUBO4.js → chunk-DLOYMWUQ.js} +7 -7
  172. package/dist/{chunk-OTMWHZBY.js → chunk-DWPOQ3S5.js} +2 -2
  173. package/dist/{chunk-C32ZOZTE.js → chunk-EF5SYXAY.js} +59 -34
  174. package/dist/chunk-EF5SYXAY.js.map +1 -0
  175. package/dist/{chunk-JIJGQPW2.js → chunk-EHCUFCXM.js} +18 -18
  176. package/dist/{chunk-SFTKDFOQ.js → chunk-EU6XSQFM.js} +2 -2
  177. package/dist/{chunk-62VER7O4.js → chunk-F3NERYBQ.js} +6 -6
  178. package/dist/{chunk-XZTOGYSM.js → chunk-F6LBGYS6.js} +39 -39
  179. package/dist/{chunk-EX5YO2KX.js → chunk-FDNJVZRE.js} +16 -16
  180. package/dist/{chunk-E5GLL7GL.js → chunk-FLGUVRR7.js} +5 -5
  181. package/dist/{chunk-YGD4MVPD.js → chunk-FSN6APRD.js} +4 -4
  182. package/dist/{chunk-J2YMBA2R.js → chunk-GAIM5RNE.js} +2 -2
  183. package/dist/{chunk-X2AH4DRF.js → chunk-GALB2G3W.js} +2 -2
  184. package/dist/{chunk-E2NTKB4G.js → chunk-GFUUFM2O.js} +4 -4
  185. package/dist/{chunk-7FTEIGVP.js → chunk-GTQ3SNEI.js} +2 -2
  186. package/dist/{chunk-SPH2HDSW.js → chunk-HDHK3SXK.js} +6 -6
  187. package/dist/{chunk-IJ6WELGP.js → chunk-HGMWMK5K.js} +2 -2
  188. package/dist/{chunk-HRMDE6MI.js → chunk-HNYJEAES.js} +7 -7
  189. package/dist/{chunk-BYASTRHQ.js → chunk-HO5Y2OOX.js} +11 -11
  190. package/dist/{chunk-WW7VY5LC.js → chunk-HOJGAJAB.js} +9 -9
  191. package/dist/{chunk-DYGAOHXK.js → chunk-HTT3FB7T.js} +2 -2
  192. package/dist/{chunk-O2WCMUQG.js → chunk-HWDGJFM4.js} +13 -13
  193. package/dist/{chunk-2JASYO6P.js → chunk-I6VUUEXH.js} +149 -149
  194. package/dist/chunk-I6VUUEXH.js.map +1 -0
  195. package/dist/{chunk-3AOXZHF6.js → chunk-IVOA3DXA.js} +10 -10
  196. package/dist/{chunk-5O5NCXJP.js → chunk-JK7C5A4I.js} +27 -27
  197. package/dist/{chunk-R7S6NSUB.js → chunk-JTN3T4QN.js} +20 -20
  198. package/dist/{chunk-7DUTMHRQ.js → chunk-JXT5QDJC.js} +4 -4
  199. package/dist/{chunk-BWTNB77U.js → chunk-KTRKZRID.js} +13 -13
  200. package/dist/{chunk-MWAFZVC4.js → chunk-KWKGBGAF.js} +10 -10
  201. package/dist/{chunk-5HXZC3OM.js → chunk-KZHW27BV.js} +2 -2
  202. package/dist/{chunk-RWUIKGLS.js → chunk-L7YURQI2.js} +2 -2
  203. package/dist/{chunk-73WI7FL2.js → chunk-LE2EDBXU.js} +18 -18
  204. package/dist/{chunk-5DSKMG2I.js → chunk-LEXPBQ56.js} +4 -4
  205. package/dist/{chunk-DWOP7YQX.js → chunk-N3ZP4IDU.js} +2 -2
  206. package/dist/{chunk-2KKFUNVW.js → chunk-NCX5SAQY.js} +7 -7
  207. package/dist/{chunk-ITGR4HN7.js → chunk-NDF3SH3X.js} +13 -13
  208. package/dist/{chunk-JQCGPTZ6.js → chunk-NWZW2WHN.js} +9 -9
  209. package/dist/{chunk-NQA5WCKG.js → chunk-NYZQ7LO7.js} +19 -19
  210. package/dist/{chunk-ZDL4ZALP.js → chunk-O756O2I7.js} +1 -1
  211. package/dist/{chunk-GRSODLVO.js → chunk-OANSIX34.js} +4 -4
  212. package/dist/{chunk-JLMDWUME.js → chunk-OBQVTCTW.js} +3 -3
  213. package/dist/{chunk-TUERKBGA.js → chunk-OO2T63BY.js} +2 -2
  214. package/dist/{chunk-EPWD4KRA.js → chunk-OOEO4MKY.js} +2 -2
  215. package/dist/{chunk-IKN3XCJU.js → chunk-OR37STQZ.js} +2 -2
  216. package/dist/{chunk-62LZQOAH.js → chunk-OSVHU2WU.js} +14 -14
  217. package/dist/{chunk-73YPB5IB.js → chunk-P5WABK2H.js} +8 -8
  218. package/dist/{chunk-JNFRC3AW.js → chunk-PM3OSANE.js} +4 -4
  219. package/dist/{chunk-W57X2TSV.js → chunk-PN66T6JA.js} +5 -5
  220. package/dist/{chunk-4NDE4JTJ.js → chunk-Q35DT6I6.js} +200 -200
  221. package/dist/{chunk-WFS5EUCL.js → chunk-Q35YZVDZ.js} +7 -7
  222. package/dist/{chunk-P5GMHOZB.js → chunk-QCD5Y7K5.js} +17 -17
  223. package/dist/{chunk-YTX274IC.js → chunk-QM5H4FPT.js} +2 -2
  224. package/dist/{chunk-VCUGPND2.js → chunk-QRVNI5V6.js} +3 -3
  225. package/dist/{chunk-JM4HQPAI.js → chunk-QZRDCFHI.js} +5 -5
  226. package/dist/{chunk-ELABMEDP.js → chunk-R63QEVPK.js} +15 -15
  227. package/dist/{chunk-CP7ZQHBW.js → chunk-RA3FNMWF.js} +10 -10
  228. package/dist/{chunk-D6II4KOG.js → chunk-RGW24ZZM.js} +74 -74
  229. package/dist/{chunk-2FUVCKGA.js → chunk-ROQOVH4N.js} +18 -18
  230. package/dist/chunk-ROQOVH4N.js.map +1 -0
  231. package/dist/{chunk-WSYR6CUF.js → chunk-RQDFYQHA.js} +7 -7
  232. package/dist/{chunk-CSLCTVND.js → chunk-RSNYGEVZ.js} +7 -7
  233. package/dist/{chunk-B2ES3U36.js → chunk-S4EZ3JUB.js} +39 -39
  234. package/dist/{chunk-OOUEPFGL.js → chunk-S4SC5SSV.js} +16 -16
  235. package/dist/{chunk-A4BD4ZVB.js → chunk-S7PVL7XH.js} +4 -4
  236. package/dist/{chunk-4LPA25NQ.js → chunk-SD2K5ZN5.js} +4 -4
  237. package/dist/chunk-ST22GONV.js +204 -0
  238. package/dist/chunk-ST22GONV.js.map +1 -0
  239. package/dist/{chunk-XAXTE2NA.js → chunk-SUVEDKE2.js} +3 -3
  240. package/dist/{chunk-LCFU5YUA.js → chunk-TGVVEGZG.js} +9 -9
  241. package/dist/{chunk-E74ISUXA.js → chunk-TQGJN5UZ.js} +233 -233
  242. package/dist/chunk-TQGJN5UZ.js.map +1 -0
  243. package/dist/{chunk-OEL73V62.js → chunk-U36PO27Q.js} +3 -3
  244. package/dist/{chunk-HZT5H5ZP.js → chunk-U3HSFCON.js} +22 -22
  245. package/dist/{chunk-J5MEDX7C.js → chunk-U47YDYLQ.js} +8 -8
  246. package/dist/{chunk-BLT4KQTS.js → chunk-UP4BE32Y.js} +4 -4
  247. package/dist/{chunk-ZSKUBXA6.js → chunk-UWJ5P5CU.js} +2 -2
  248. package/dist/{chunk-YVBHGMKC.js → chunk-VAIESMPY.js} +4 -4
  249. package/dist/{chunk-5P6EKYTC.js → chunk-VP62LPLW.js} +14 -14
  250. package/dist/{chunk-GOEN2FSD.js → chunk-VUHPA3XQ.js} +4 -4
  251. package/dist/{chunk-5FA455GR.js → chunk-WNG757ID.js} +4 -4
  252. package/dist/{chunk-4LMNYFES.js → chunk-WSMYOLHG.js} +9 -9
  253. package/dist/{chunk-JXEMUZTV.js → chunk-X7ASQHR6.js} +2 -2
  254. package/dist/{chunk-YSSTNTJD.js → chunk-X7L4H4VG.js} +223 -223
  255. package/dist/chunk-X7L4H4VG.js.map +1 -0
  256. package/dist/{chunk-CZSYF7UF.js → chunk-XOFUXMPP.js} +2 -2
  257. package/dist/{chunk-VNMM6DQP.js → chunk-XWWXIZFP.js} +4 -4
  258. package/dist/{chunk-XC4DZXZZ.js → chunk-YXOKAG66.js} +2 -2
  259. package/dist/{chunk-XMNUZUUA.js → chunk-Z2DAWUO3.js} +6 -6
  260. package/dist/{chunk-TJ2MBYK4.js → chunk-Z5WMLJKI.js} +4 -4
  261. package/dist/{chunk-WCK2NF54.js → chunk-ZKYYZH6L.js} +7 -7
  262. package/dist/{chunk-AS6ZXN5K.js → chunk-ZRJCGBVV.js} +2 -2
  263. package/dist/composer.js +11 -11
  264. package/dist/{computer-viewer-MUOPCKPS.js → computer-viewer-KEDVLD42.js} +6 -6
  265. package/dist/connect.js +7 -7
  266. package/dist/{embedded-new-voice-IIZPNXHC.js → embedded-new-voice-LFHWWYD2.js} +5 -5
  267. package/dist/{embedded-voice-5PXDBGOI.js → embedded-voice-6QS4ANNX.js} +5 -5
  268. package/dist/index.js +206 -206
  269. package/dist/interaction.js +6 -6
  270. package/dist/{latest-question-ZCZYQZMD.js → latest-question-AW3PPDUM.js} +2 -2
  271. package/dist/machines.js +1 -1
  272. package/dist/{model-policy-picker-menu-4GWYXUP3.js → model-policy-picker-menu-CURJ247L.js} +5 -5
  273. package/dist/native-previews.js +3 -3
  274. package/dist/{queue-surface-implementation-VPPIEPJL.js → queue-surface-implementation-2X5AXB6I.js} +4 -4
  275. package/dist/realtime.js +4 -4
  276. package/dist/{sandbox-files-QXIZJJMW.js → sandbox-files-4FBG3GS2.js} +8 -8
  277. package/dist/sandbox-files-4FBG3GS2.js.map +1 -0
  278. package/dist/session-app.js +268 -268
  279. package/dist/session-list-model.js +2 -2
  280. package/dist/session-ui.js +57 -57
  281. package/dist/session.js +11 -11
  282. package/dist/terminal.js +1 -1
  283. package/dist/timeline/types.d.ts +2 -0
  284. package/dist/{timeline-annotation-markers-BSTWUL4V.js → timeline-annotation-markers-X4K2IEOO.js} +4 -4
  285. package/dist/{timeline-annotation-selection-3SMCLIJE.js → timeline-annotation-selection-MEHBW676.js} +6 -6
  286. package/dist/{timeline-annotations-dialog-GFF3RFYZ.js → timeline-annotations-dialog-U2FPQ3UY.js} +7 -7
  287. package/dist/timeline-model.js +15 -15
  288. package/dist/ui/access-list.js +18 -18
  289. package/dist/ui/cadence-picker.js +2 -2
  290. package/dist/ui/choice-cards.js +2 -2
  291. package/dist/ui/detail-page.js +2 -2
  292. package/dist/ui/detail-sheet.js +2 -2
  293. package/dist/ui/diff-view.js +2 -2
  294. package/dist/ui/disclosure.js +4 -4
  295. package/dist/ui/flush-form-page.js +3 -3
  296. package/dist/ui/form-dialog.js +2 -2
  297. package/dist/ui/list-row.js +4 -4
  298. package/dist/ui/revision-history.js +11 -11
  299. package/dist/ui/role-select.js +7 -7
  300. package/dist/ui/select-menu.js +2 -2
  301. package/dist/ui/settings-nav.js +3 -3
  302. package/dist/workbench.js +9 -9
  303. package/package.json +4 -4
  304. package/src/app/components/capabilities/session-capability-card.tsx +14 -1
  305. package/src/app/components/capabilities/session-chrome-card.dom-fixture.tsx +377 -0
  306. package/src/app/components/capabilities/session-chrome-card.test.tsx +18 -0
  307. package/src/app/components/capabilities/session-chrome-card.tsx +243 -0
  308. package/src/app/components/capabilities/session-machine-card.dom-fixture.tsx +2 -0
  309. package/src/app/components/capabilities/session-machine-card.tsx +65 -14
  310. package/src/timeline/projection.ts +4 -2
  311. package/src/timeline/types.ts +2 -0
  312. package/dist/chunk-2FUVCKGA.js.map +0 -1
  313. package/dist/chunk-2JASYO6P.js.map +0 -1
  314. package/dist/chunk-C32ZOZTE.js.map +0 -1
  315. package/dist/chunk-E74ISUXA.js.map +0 -1
  316. package/dist/chunk-L7UDYTU3.js.map +0 -1
  317. package/dist/chunk-YSSTNTJD.js.map +0 -1
  318. /package/dist/{browser-viewer-VYZLJH3P.js.map → app/components/capabilities/session-chrome-card.js.map} +0 -0
  319. /package/dist/{chat-interactive-block-MECBXZ7V.js.map → browser-viewer-RYYQSRTC.js.map} +0 -0
  320. /package/dist/{computer-viewer-MUOPCKPS.js.map → chat-interactive-block-ABCRKXJ4.js.map} +0 -0
  321. /package/dist/{chunk-Y4D4N2EF.js.map → chunk-22ZBT6CN.js.map} +0 -0
  322. /package/dist/{chunk-TFK4KFKA.js.map → chunk-33TPANCR.js.map} +0 -0
  323. /package/dist/{chunk-CFFNT2OY.js.map → chunk-3GLAPCVI.js.map} +0 -0
  324. /package/dist/{chunk-BXQYAAVE.js.map → chunk-3XOISKZC.js.map} +0 -0
  325. /package/dist/{chunk-FYGMIMEG.js.map → chunk-4432A3HQ.js.map} +0 -0
  326. /package/dist/{chunk-3MOD23RS.js.map → chunk-46VBQG2D.js.map} +0 -0
  327. /package/dist/{chunk-Q2PVSCJV.js.map → chunk-4EAF3HSD.js.map} +0 -0
  328. /package/dist/{chunk-YTK6MYZH.js.map → chunk-4EONHNJU.js.map} +0 -0
  329. /package/dist/{chunk-7YLXFFF5.js.map → chunk-4R3JCVID.js.map} +0 -0
  330. /package/dist/{chunk-73DMIW44.js.map → chunk-4VKA5O7T.js.map} +0 -0
  331. /package/dist/{chunk-TIBPTOLQ.js.map → chunk-5JEIDFPD.js.map} +0 -0
  332. /package/dist/{chunk-3E4SJHVW.js.map → chunk-5POTDNQT.js.map} +0 -0
  333. /package/dist/{chunk-JW6CYU5F.js.map → chunk-63VGE4OH.js.map} +0 -0
  334. /package/dist/{chunk-7HVOIRGN.js.map → chunk-6NIB2KGJ.js.map} +0 -0
  335. /package/dist/{chunk-KLVK7BN5.js.map → chunk-6PQNLL4E.js.map} +0 -0
  336. /package/dist/{chunk-FGPSTD37.js.map → chunk-72J6C2AJ.js.map} +0 -0
  337. /package/dist/{chunk-N34NUHUO.js.map → chunk-73SOCVLS.js.map} +0 -0
  338. /package/dist/{chunk-43OV5QK7.js.map → chunk-7BST7BA6.js.map} +0 -0
  339. /package/dist/{chunk-FDAV72IX.js.map → chunk-7CZTKBTI.js.map} +0 -0
  340. /package/dist/{chunk-G4ONAC4P.js.map → chunk-7DU35P5J.js.map} +0 -0
  341. /package/dist/{chunk-SM5QX6UK.js.map → chunk-A2EWJQXX.js.map} +0 -0
  342. /package/dist/{chunk-3WDWLSYX.js.map → chunk-AD22P5X3.js.map} +0 -0
  343. /package/dist/{chunk-ZQSRAMSH.js.map → chunk-ADJJQSYC.js.map} +0 -0
  344. /package/dist/{chunk-5C6KUGFG.js.map → chunk-AG7VGUIW.js.map} +0 -0
  345. /package/dist/{chunk-LF5CBAOS.js.map → chunk-AOLE4IRZ.js.map} +0 -0
  346. /package/dist/{chunk-CF7ZCKZC.js.map → chunk-APU42QDI.js.map} +0 -0
  347. /package/dist/{chunk-P56F4SFD.js.map → chunk-BJIZ7PL7.js.map} +0 -0
  348. /package/dist/{chunk-XEL2ZJ3Z.js.map → chunk-BJW7G6EF.js.map} +0 -0
  349. /package/dist/{chunk-NNNXKGJH.js.map → chunk-BNUPYHHZ.js.map} +0 -0
  350. /package/dist/{chunk-FYSOHZSM.js.map → chunk-BXRIQZAH.js.map} +0 -0
  351. /package/dist/{chunk-N4ZDRONX.js.map → chunk-CBY5CXBD.js.map} +0 -0
  352. /package/dist/{chunk-7PTHBHEW.js.map → chunk-CVG4FILQ.js.map} +0 -0
  353. /package/dist/{chunk-LMN7SO4T.js.map → chunk-DDK4WFJ3.js.map} +0 -0
  354. /package/dist/{chunk-G4HQUBO4.js.map → chunk-DLOYMWUQ.js.map} +0 -0
  355. /package/dist/{chunk-OTMWHZBY.js.map → chunk-DWPOQ3S5.js.map} +0 -0
  356. /package/dist/{chunk-JIJGQPW2.js.map → chunk-EHCUFCXM.js.map} +0 -0
  357. /package/dist/{chunk-SFTKDFOQ.js.map → chunk-EU6XSQFM.js.map} +0 -0
  358. /package/dist/{chunk-62VER7O4.js.map → chunk-F3NERYBQ.js.map} +0 -0
  359. /package/dist/{chunk-XZTOGYSM.js.map → chunk-F6LBGYS6.js.map} +0 -0
  360. /package/dist/{chunk-EX5YO2KX.js.map → chunk-FDNJVZRE.js.map} +0 -0
  361. /package/dist/{chunk-E5GLL7GL.js.map → chunk-FLGUVRR7.js.map} +0 -0
  362. /package/dist/{chunk-YGD4MVPD.js.map → chunk-FSN6APRD.js.map} +0 -0
  363. /package/dist/{chunk-J2YMBA2R.js.map → chunk-GAIM5RNE.js.map} +0 -0
  364. /package/dist/{chunk-X2AH4DRF.js.map → chunk-GALB2G3W.js.map} +0 -0
  365. /package/dist/{chunk-E2NTKB4G.js.map → chunk-GFUUFM2O.js.map} +0 -0
  366. /package/dist/{chunk-7FTEIGVP.js.map → chunk-GTQ3SNEI.js.map} +0 -0
  367. /package/dist/{chunk-SPH2HDSW.js.map → chunk-HDHK3SXK.js.map} +0 -0
  368. /package/dist/{chunk-IJ6WELGP.js.map → chunk-HGMWMK5K.js.map} +0 -0
  369. /package/dist/{chunk-HRMDE6MI.js.map → chunk-HNYJEAES.js.map} +0 -0
  370. /package/dist/{chunk-BYASTRHQ.js.map → chunk-HO5Y2OOX.js.map} +0 -0
  371. /package/dist/{chunk-WW7VY5LC.js.map → chunk-HOJGAJAB.js.map} +0 -0
  372. /package/dist/{chunk-DYGAOHXK.js.map → chunk-HTT3FB7T.js.map} +0 -0
  373. /package/dist/{chunk-O2WCMUQG.js.map → chunk-HWDGJFM4.js.map} +0 -0
  374. /package/dist/{chunk-3AOXZHF6.js.map → chunk-IVOA3DXA.js.map} +0 -0
  375. /package/dist/{chunk-5O5NCXJP.js.map → chunk-JK7C5A4I.js.map} +0 -0
  376. /package/dist/{chunk-R7S6NSUB.js.map → chunk-JTN3T4QN.js.map} +0 -0
  377. /package/dist/{chunk-7DUTMHRQ.js.map → chunk-JXT5QDJC.js.map} +0 -0
  378. /package/dist/{chunk-BWTNB77U.js.map → chunk-KTRKZRID.js.map} +0 -0
  379. /package/dist/{chunk-MWAFZVC4.js.map → chunk-KWKGBGAF.js.map} +0 -0
  380. /package/dist/{chunk-5HXZC3OM.js.map → chunk-KZHW27BV.js.map} +0 -0
  381. /package/dist/{chunk-RWUIKGLS.js.map → chunk-L7YURQI2.js.map} +0 -0
  382. /package/dist/{chunk-73WI7FL2.js.map → chunk-LE2EDBXU.js.map} +0 -0
  383. /package/dist/{chunk-5DSKMG2I.js.map → chunk-LEXPBQ56.js.map} +0 -0
  384. /package/dist/{chunk-DWOP7YQX.js.map → chunk-N3ZP4IDU.js.map} +0 -0
  385. /package/dist/{chunk-2KKFUNVW.js.map → chunk-NCX5SAQY.js.map} +0 -0
  386. /package/dist/{chunk-ITGR4HN7.js.map → chunk-NDF3SH3X.js.map} +0 -0
  387. /package/dist/{chunk-JQCGPTZ6.js.map → chunk-NWZW2WHN.js.map} +0 -0
  388. /package/dist/{chunk-NQA5WCKG.js.map → chunk-NYZQ7LO7.js.map} +0 -0
  389. /package/dist/{chunk-ZDL4ZALP.js.map → chunk-O756O2I7.js.map} +0 -0
  390. /package/dist/{chunk-GRSODLVO.js.map → chunk-OANSIX34.js.map} +0 -0
  391. /package/dist/{chunk-JLMDWUME.js.map → chunk-OBQVTCTW.js.map} +0 -0
  392. /package/dist/{chunk-TUERKBGA.js.map → chunk-OO2T63BY.js.map} +0 -0
  393. /package/dist/{chunk-EPWD4KRA.js.map → chunk-OOEO4MKY.js.map} +0 -0
  394. /package/dist/{chunk-IKN3XCJU.js.map → chunk-OR37STQZ.js.map} +0 -0
  395. /package/dist/{chunk-62LZQOAH.js.map → chunk-OSVHU2WU.js.map} +0 -0
  396. /package/dist/{chunk-73YPB5IB.js.map → chunk-P5WABK2H.js.map} +0 -0
  397. /package/dist/{chunk-JNFRC3AW.js.map → chunk-PM3OSANE.js.map} +0 -0
  398. /package/dist/{chunk-W57X2TSV.js.map → chunk-PN66T6JA.js.map} +0 -0
  399. /package/dist/{chunk-4NDE4JTJ.js.map → chunk-Q35DT6I6.js.map} +0 -0
  400. /package/dist/{chunk-WFS5EUCL.js.map → chunk-Q35YZVDZ.js.map} +0 -0
  401. /package/dist/{chunk-P5GMHOZB.js.map → chunk-QCD5Y7K5.js.map} +0 -0
  402. /package/dist/{chunk-YTX274IC.js.map → chunk-QM5H4FPT.js.map} +0 -0
  403. /package/dist/{chunk-VCUGPND2.js.map → chunk-QRVNI5V6.js.map} +0 -0
  404. /package/dist/{chunk-JM4HQPAI.js.map → chunk-QZRDCFHI.js.map} +0 -0
  405. /package/dist/{chunk-ELABMEDP.js.map → chunk-R63QEVPK.js.map} +0 -0
  406. /package/dist/{chunk-CP7ZQHBW.js.map → chunk-RA3FNMWF.js.map} +0 -0
  407. /package/dist/{chunk-D6II4KOG.js.map → chunk-RGW24ZZM.js.map} +0 -0
  408. /package/dist/{chunk-WSYR6CUF.js.map → chunk-RQDFYQHA.js.map} +0 -0
  409. /package/dist/{chunk-CSLCTVND.js.map → chunk-RSNYGEVZ.js.map} +0 -0
  410. /package/dist/{chunk-B2ES3U36.js.map → chunk-S4EZ3JUB.js.map} +0 -0
  411. /package/dist/{chunk-OOUEPFGL.js.map → chunk-S4SC5SSV.js.map} +0 -0
  412. /package/dist/{chunk-A4BD4ZVB.js.map → chunk-S7PVL7XH.js.map} +0 -0
  413. /package/dist/{chunk-4LPA25NQ.js.map → chunk-SD2K5ZN5.js.map} +0 -0
  414. /package/dist/{chunk-XAXTE2NA.js.map → chunk-SUVEDKE2.js.map} +0 -0
  415. /package/dist/{chunk-LCFU5YUA.js.map → chunk-TGVVEGZG.js.map} +0 -0
  416. /package/dist/{chunk-OEL73V62.js.map → chunk-U36PO27Q.js.map} +0 -0
  417. /package/dist/{chunk-HZT5H5ZP.js.map → chunk-U3HSFCON.js.map} +0 -0
  418. /package/dist/{chunk-J5MEDX7C.js.map → chunk-U47YDYLQ.js.map} +0 -0
  419. /package/dist/{chunk-BLT4KQTS.js.map → chunk-UP4BE32Y.js.map} +0 -0
  420. /package/dist/{chunk-ZSKUBXA6.js.map → chunk-UWJ5P5CU.js.map} +0 -0
  421. /package/dist/{chunk-YVBHGMKC.js.map → chunk-VAIESMPY.js.map} +0 -0
  422. /package/dist/{chunk-5P6EKYTC.js.map → chunk-VP62LPLW.js.map} +0 -0
  423. /package/dist/{chunk-GOEN2FSD.js.map → chunk-VUHPA3XQ.js.map} +0 -0
  424. /package/dist/{chunk-5FA455GR.js.map → chunk-WNG757ID.js.map} +0 -0
  425. /package/dist/{chunk-4LMNYFES.js.map → chunk-WSMYOLHG.js.map} +0 -0
  426. /package/dist/{chunk-JXEMUZTV.js.map → chunk-X7ASQHR6.js.map} +0 -0
  427. /package/dist/{chunk-CZSYF7UF.js.map → chunk-XOFUXMPP.js.map} +0 -0
  428. /package/dist/{chunk-VNMM6DQP.js.map → chunk-XWWXIZFP.js.map} +0 -0
  429. /package/dist/{chunk-XC4DZXZZ.js.map → chunk-YXOKAG66.js.map} +0 -0
  430. /package/dist/{chunk-XMNUZUUA.js.map → chunk-Z2DAWUO3.js.map} +0 -0
  431. /package/dist/{chunk-TJ2MBYK4.js.map → chunk-Z5WMLJKI.js.map} +0 -0
  432. /package/dist/{chunk-WCK2NF54.js.map → chunk-ZKYYZH6L.js.map} +0 -0
  433. /package/dist/{chunk-AS6ZXN5K.js.map → chunk-ZRJCGBVV.js.map} +0 -0
  434. /package/dist/{embedded-new-voice-IIZPNXHC.js.map → computer-viewer-KEDVLD42.js.map} +0 -0
  435. /package/dist/{embedded-voice-5PXDBGOI.js.map → embedded-new-voice-LFHWWYD2.js.map} +0 -0
  436. /package/dist/{model-policy-picker-menu-4GWYXUP3.js.map → embedded-voice-6QS4ANNX.js.map} +0 -0
  437. /package/dist/{latest-question-ZCZYQZMD.js.map → latest-question-AW3PPDUM.js.map} +0 -0
  438. /package/dist/{sandbox-files-QXIZJJMW.js.map → model-policy-picker-menu-CURJ247L.js.map} +0 -0
  439. /package/dist/{queue-surface-implementation-VPPIEPJL.js.map → queue-surface-implementation-2X5AXB6I.js.map} +0 -0
  440. /package/dist/{timeline-annotation-markers-BSTWUL4V.js.map → timeline-annotation-markers-X4K2IEOO.js.map} +0 -0
  441. /package/dist/{timeline-annotation-selection-3SMCLIJE.js.map → timeline-annotation-selection-MEHBW676.js.map} +0 -0
  442. /package/dist/{timeline-annotations-dialog-GFF3RFYZ.js.map → timeline-annotations-dialog-U2FPQ3UY.js.map} +0 -0
@@ -10,27 +10,207 @@ import {
10
10
  tryParseJson
11
11
  } from "./chunk-SJGAHTY5.js";
12
12
 
13
- // src/timeline/genie-copy.ts
14
- var GENIE_PREPARING_PHRASES = (t) => [
15
- t("timeline.genieCopy.polishingTheLamp"),
16
- t("timeline.genieCopy.consultingTheCarpet"),
17
- t("timeline.genieCopy.untanglingWishes"),
18
- t("timeline.genieCopy.summoningALittleCleverness"),
19
- t("timeline.genieCopy.checkingTheFinePrintOn"),
20
- t("timeline.genieCopy.warmingUpTheAbracadabra"),
21
- t("timeline.genieCopy.rearrangingTheStars"),
22
- t("timeline.genieCopy.negotiatingWithTheLamp"),
23
- t("timeline.genieCopy.dustingOffAThousandYears"),
24
- t("timeline.genieCopy.wishfulThinking"),
25
- t("timeline.genieCopy.decantingALittleMagic"),
26
- t("timeline.genieCopy.findingTheGoodStardust"),
27
- t("timeline.genieCopy.fluffingTheMagicCarpet"),
28
- t("timeline.genieCopy.puttingAWishIntoMotion"),
29
- t("timeline.genieCopy.aLittleHocusALittle")
30
- ];
31
- var GENIE_WAITING_PHRASES = (t) => [
32
- t("timeline.genieCopy.waitingForAResponse")
13
+ // src/timeline/turn-summary-model.ts
14
+ var BUILT_IN_TURN_SUMMARY_FACET_IDS = [
15
+ "steps",
16
+ "files",
17
+ "commands",
18
+ "screenshots",
19
+ "memories",
20
+ "compacted",
21
+ "duration"
33
22
  ];
23
+ function turnSummaryFallbackLabel(t, items, unloadedSteps = false) {
24
+ const preparationOnly = !unloadedSteps && items.some((item) => item.kind === "startup-phase") && items.every((item) => item.kind === "startup-phase" || item.kind === "agent-message");
25
+ return preparationOnly ? t("timeline.turnSummary.preparation") : t("timeline.turnSummary.steps");
26
+ }
27
+ function formatElapsed(t, durationMs) {
28
+ const totalSeconds = Math.max(0, Math.floor(durationMs / 1e3));
29
+ if (totalSeconds < 60) {
30
+ return t("timeline.turnSummaryModel.seconds", { count: totalSeconds });
31
+ }
32
+ const totalMinutes = Math.floor(totalSeconds / 60);
33
+ if (totalMinutes < 60) {
34
+ const seconds = totalSeconds % 60;
35
+ return seconds ? t("timeline.turnSummaryModel.minutesSeconds", { minutes: totalMinutes, seconds }) : t("timeline.turnSummaryModel.minutes", { count: totalMinutes });
36
+ }
37
+ const hours = Math.floor(totalMinutes / 60);
38
+ return t("timeline.turnSummaryModel.hoursMinutes", {
39
+ hours,
40
+ minutes: String(totalMinutes % 60).padStart(2, "0")
41
+ });
42
+ }
43
+ function createTurnSummaryContext(t, items, outcome, failureText, durationMs, contextCompactionCount) {
44
+ const itemSnapshot = Object.freeze([...items]);
45
+ const toolCalls = Object.freeze(
46
+ itemSnapshot.filter((item) => item.kind === "tool-call")
47
+ );
48
+ const settled = itemSnapshot.every((item) => {
49
+ if (item.kind === "reasoning" || item.kind === "agent-message") {
50
+ return !item.streaming;
51
+ }
52
+ if (item.kind === "tool-call" || item.kind === "worker" || item.kind === "sandbox" || item.kind === "startup-phase") {
53
+ return item.status !== "running";
54
+ }
55
+ return true;
56
+ });
57
+ return Object.freeze({
58
+ t,
59
+ items: itemSnapshot,
60
+ toolCalls,
61
+ outcome,
62
+ failureText,
63
+ durationMs,
64
+ settled,
65
+ contextCompactionCount: Math.max(0, Math.floor(contextCompactionCount))
66
+ });
67
+ }
68
+ var BUILT_IN_TURN_SUMMARY_FACETS = Object.freeze([
69
+ {
70
+ id: "memories",
71
+ summarize: ({ items, t }) => {
72
+ let saved = 0;
73
+ let updated = 0;
74
+ for (const item of items) {
75
+ if (item.kind !== "memory") {
76
+ continue;
77
+ }
78
+ if (item.variant === "corrected") {
79
+ updated += 1;
80
+ } else {
81
+ saved += 1;
82
+ }
83
+ }
84
+ const parts = [];
85
+ if (saved) {
86
+ parts.push(t("timeline.turnSummaryModel.memoriesSaved", { count: saved }));
87
+ }
88
+ if (updated) {
89
+ parts.push(t("timeline.turnSummaryModel.memoriesUpdated", { count: updated }));
90
+ }
91
+ return parts.length > 0 ? { content: parts.join(" \xB7 ") } : null;
92
+ }
93
+ },
94
+ {
95
+ id: "compacted",
96
+ summarize: ({ contextCompactionCount, t }) => contextCompactionCount > 0 ? {
97
+ content: t("timeline.turnSummaryModel.compacts", { count: contextCompactionCount }),
98
+ ariaLabel: t("timeline.turnSummaryModel.compactions", {
99
+ count: contextCompactionCount
100
+ })
101
+ } : null
102
+ },
103
+ {
104
+ id: "duration",
105
+ summarize: ({ durationMs, t }) => {
106
+ const duration = formatDurationFacet(t, durationMs);
107
+ return duration ? { content: duration } : null;
108
+ }
109
+ }
110
+ ]);
111
+ function resolveTurnSummaryFacets(configuration) {
112
+ const requested = configuration?.replace ?? [
113
+ ...BUILT_IN_TURN_SUMMARY_FACETS.filter(
114
+ (facet) => !configuration?.remove?.includes(facet.id)
115
+ ),
116
+ ...configuration?.add ?? []
117
+ ];
118
+ const seen = /* @__PURE__ */ new Set();
119
+ return requested.filter((facet) => {
120
+ if (!facet.id || seen.has(facet.id)) {
121
+ return false;
122
+ }
123
+ seen.add(facet.id);
124
+ return true;
125
+ });
126
+ }
127
+ function formatDurationFacet(t, durationMs) {
128
+ if (durationMs === void 0 || !Number.isFinite(durationMs) || durationMs < 1e3) {
129
+ return null;
130
+ }
131
+ const totalSeconds = Math.floor(durationMs / 1e3);
132
+ if (totalSeconds < 60) {
133
+ return t("timeline.turnSummaryModel.seconds", { count: totalSeconds });
134
+ }
135
+ const totalMinutes = Math.floor(totalSeconds / 60);
136
+ if (totalMinutes < 60) {
137
+ return t("timeline.turnSummaryModel.minutes", { count: totalMinutes });
138
+ }
139
+ const hours = Math.floor(totalMinutes / 60);
140
+ const minutes = totalMinutes % 60;
141
+ return t("timeline.turnSummaryModel.hoursMinutes", {
142
+ hours,
143
+ minutes: String(minutes).padStart(2, "0")
144
+ });
145
+ }
146
+ function hasFacetContent(content) {
147
+ return content !== null && content !== void 0 && content !== false && content !== "";
148
+ }
149
+ function selectTurnSummaryFacets(definitions, context, statusKind) {
150
+ return definitions.flatMap((facet) => {
151
+ if (statusKind && (facet.id === "duration" || statusKind !== "worked" && BUILT_IN_TURN_SUMMARY_FACET_IDS.includes(facet.id))) {
152
+ return [];
153
+ }
154
+ try {
155
+ const result = facet.summarize(context);
156
+ return result && hasFacetContent(result.content) ? [{ facet, result }] : [];
157
+ } catch {
158
+ return [];
159
+ }
160
+ });
161
+ }
162
+
163
+ // src/timeline/registry.ts
164
+ function rawTypeOf(item) {
165
+ const raw = item.raw;
166
+ if (raw && typeof raw === "object" && typeof raw.type === "string") {
167
+ return raw.type;
168
+ }
169
+ return null;
170
+ }
171
+ function createToolRegistry(baseEntries, baseFallback, options = {}) {
172
+ const entries = [...options.entries ?? [], ...baseEntries];
173
+ const fallback = options.fallback ?? baseFallback;
174
+ const byRawType = /* @__PURE__ */ new Map();
175
+ const byName = /* @__PURE__ */ new Map();
176
+ const byPrefixedLeaf = /* @__PURE__ */ new Map();
177
+ for (const entry of entries) {
178
+ if (entry.match === "rawType") {
179
+ if (!byRawType.has(entry.type)) {
180
+ byRawType.set(entry.type, entry.render);
181
+ }
182
+ } else if (!byName.has(entry.name)) {
183
+ byName.set(entry.name, entry.render);
184
+ }
185
+ if (entry.match === "name" && entry.matchPrefixedLeaf !== false) {
186
+ if (!byPrefixedLeaf.has(entry.name)) {
187
+ byPrefixedLeaf.set(entry.name, entry.render);
188
+ }
189
+ }
190
+ }
191
+ const resolve = (item) => {
192
+ const rawType = rawTypeOf(item);
193
+ if (rawType) {
194
+ const byType = byRawType.get(rawType);
195
+ if (byType) {
196
+ return byType;
197
+ }
198
+ }
199
+ const exact = byName.get(item.name);
200
+ if (exact) {
201
+ return exact;
202
+ }
203
+ const leaf = mcpToolLeaf(item.name);
204
+ if (leaf !== item.name) {
205
+ const byLeaf = byPrefixedLeaf.get(leaf);
206
+ if (byLeaf) {
207
+ return byLeaf;
208
+ }
209
+ }
210
+ return fallback;
211
+ };
212
+ return { resolve, fallback };
213
+ }
34
214
 
35
215
  // src/timeline/parsers.ts
36
216
  import {
@@ -514,58 +694,6 @@ function bytesToBase64(data) {
514
694
  }
515
695
  }
516
696
 
517
- // src/timeline/registry.ts
518
- function rawTypeOf(item) {
519
- const raw = item.raw;
520
- if (raw && typeof raw === "object" && typeof raw.type === "string") {
521
- return raw.type;
522
- }
523
- return null;
524
- }
525
- function createToolRegistry(baseEntries, baseFallback, options = {}) {
526
- const entries = [...options.entries ?? [], ...baseEntries];
527
- const fallback = options.fallback ?? baseFallback;
528
- const byRawType = /* @__PURE__ */ new Map();
529
- const byName = /* @__PURE__ */ new Map();
530
- const byPrefixedLeaf = /* @__PURE__ */ new Map();
531
- for (const entry of entries) {
532
- if (entry.match === "rawType") {
533
- if (!byRawType.has(entry.type)) {
534
- byRawType.set(entry.type, entry.render);
535
- }
536
- } else if (!byName.has(entry.name)) {
537
- byName.set(entry.name, entry.render);
538
- }
539
- if (entry.match === "name" && entry.matchPrefixedLeaf !== false) {
540
- if (!byPrefixedLeaf.has(entry.name)) {
541
- byPrefixedLeaf.set(entry.name, entry.render);
542
- }
543
- }
544
- }
545
- const resolve = (item) => {
546
- const rawType = rawTypeOf(item);
547
- if (rawType) {
548
- const byType = byRawType.get(rawType);
549
- if (byType) {
550
- return byType;
551
- }
552
- }
553
- const exact = byName.get(item.name);
554
- if (exact) {
555
- return exact;
556
- }
557
- const leaf = mcpToolLeaf(item.name);
558
- if (leaf !== item.name) {
559
- const byLeaf = byPrefixedLeaf.get(leaf);
560
- if (byLeaf) {
561
- return byLeaf;
562
- }
563
- }
564
- return fallback;
565
- };
566
- return { resolve, fallback };
567
- }
568
-
569
697
  // src/timeline/tool-presentation.ts
570
698
  import { isConnectedMachineOutcomeUnknownOutput } from "@opengeni/sdk";
571
699
 
@@ -1659,159 +1787,39 @@ function presentedToolRow(t, item, context) {
1659
1787
  }
1660
1788
  }
1661
1789
 
1662
- // src/timeline/turn-summary-model.ts
1663
- var BUILT_IN_TURN_SUMMARY_FACET_IDS = [
1664
- "steps",
1665
- "files",
1666
- "commands",
1667
- "screenshots",
1668
- "memories",
1669
- "compacted",
1670
- "duration"
1790
+ // src/timeline/genie-copy.ts
1791
+ var GENIE_PREPARING_PHRASES = (t) => [
1792
+ t("timeline.genieCopy.polishingTheLamp"),
1793
+ t("timeline.genieCopy.consultingTheCarpet"),
1794
+ t("timeline.genieCopy.untanglingWishes"),
1795
+ t("timeline.genieCopy.summoningALittleCleverness"),
1796
+ t("timeline.genieCopy.checkingTheFinePrintOn"),
1797
+ t("timeline.genieCopy.warmingUpTheAbracadabra"),
1798
+ t("timeline.genieCopy.rearrangingTheStars"),
1799
+ t("timeline.genieCopy.negotiatingWithTheLamp"),
1800
+ t("timeline.genieCopy.dustingOffAThousandYears"),
1801
+ t("timeline.genieCopy.wishfulThinking"),
1802
+ t("timeline.genieCopy.decantingALittleMagic"),
1803
+ t("timeline.genieCopy.findingTheGoodStardust"),
1804
+ t("timeline.genieCopy.fluffingTheMagicCarpet"),
1805
+ t("timeline.genieCopy.puttingAWishIntoMotion"),
1806
+ t("timeline.genieCopy.aLittleHocusALittle")
1807
+ ];
1808
+ var GENIE_WAITING_PHRASES = (t) => [
1809
+ t("timeline.genieCopy.waitingForAResponse")
1671
1810
  ];
1672
- function turnSummaryFallbackLabel(t, items, unloadedSteps = false) {
1673
- const preparationOnly = !unloadedSteps && items.some((item) => item.kind === "startup-phase") && items.every((item) => item.kind === "startup-phase" || item.kind === "agent-message");
1674
- return preparationOnly ? t("timeline.turnSummary.preparation") : t("timeline.turnSummary.steps");
1675
- }
1676
- function formatElapsed(t, durationMs) {
1677
- const totalSeconds = Math.max(0, Math.floor(durationMs / 1e3));
1678
- if (totalSeconds < 60) {
1679
- return t("timeline.turnSummaryModel.seconds", { count: totalSeconds });
1680
- }
1681
- const totalMinutes = Math.floor(totalSeconds / 60);
1682
- if (totalMinutes < 60) {
1683
- const seconds = totalSeconds % 60;
1684
- return seconds ? t("timeline.turnSummaryModel.minutesSeconds", { minutes: totalMinutes, seconds }) : t("timeline.turnSummaryModel.minutes", { count: totalMinutes });
1685
- }
1686
- const hours = Math.floor(totalMinutes / 60);
1687
- return t("timeline.turnSummaryModel.hoursMinutes", {
1688
- hours,
1689
- minutes: String(totalMinutes % 60).padStart(2, "0")
1690
- });
1691
- }
1692
- function createTurnSummaryContext(t, items, outcome, failureText, durationMs, contextCompactionCount) {
1693
- const itemSnapshot = Object.freeze([...items]);
1694
- const toolCalls = Object.freeze(
1695
- itemSnapshot.filter((item) => item.kind === "tool-call")
1696
- );
1697
- const settled = itemSnapshot.every((item) => {
1698
- if (item.kind === "reasoning" || item.kind === "agent-message") {
1699
- return !item.streaming;
1700
- }
1701
- if (item.kind === "tool-call" || item.kind === "worker" || item.kind === "sandbox" || item.kind === "startup-phase") {
1702
- return item.status !== "running";
1703
- }
1704
- return true;
1705
- });
1706
- return Object.freeze({
1707
- t,
1708
- items: itemSnapshot,
1709
- toolCalls,
1710
- outcome,
1711
- failureText,
1712
- durationMs,
1713
- settled,
1714
- contextCompactionCount: Math.max(0, Math.floor(contextCompactionCount))
1715
- });
1716
- }
1717
- var BUILT_IN_TURN_SUMMARY_FACETS = Object.freeze([
1718
- {
1719
- id: "memories",
1720
- summarize: ({ items, t }) => {
1721
- let saved = 0;
1722
- let updated = 0;
1723
- for (const item of items) {
1724
- if (item.kind !== "memory") {
1725
- continue;
1726
- }
1727
- if (item.variant === "corrected") {
1728
- updated += 1;
1729
- } else {
1730
- saved += 1;
1731
- }
1732
- }
1733
- const parts = [];
1734
- if (saved) {
1735
- parts.push(t("timeline.turnSummaryModel.memoriesSaved", { count: saved }));
1736
- }
1737
- if (updated) {
1738
- parts.push(t("timeline.turnSummaryModel.memoriesUpdated", { count: updated }));
1739
- }
1740
- return parts.length > 0 ? { content: parts.join(" \xB7 ") } : null;
1741
- }
1742
- },
1743
- {
1744
- id: "compacted",
1745
- summarize: ({ contextCompactionCount, t }) => contextCompactionCount > 0 ? {
1746
- content: t("timeline.turnSummaryModel.compacts", { count: contextCompactionCount }),
1747
- ariaLabel: t("timeline.turnSummaryModel.compactions", {
1748
- count: contextCompactionCount
1749
- })
1750
- } : null
1751
- },
1752
- {
1753
- id: "duration",
1754
- summarize: ({ durationMs, t }) => {
1755
- const duration = formatDurationFacet(t, durationMs);
1756
- return duration ? { content: duration } : null;
1757
- }
1758
- }
1759
- ]);
1760
- function resolveTurnSummaryFacets(configuration) {
1761
- const requested = configuration?.replace ?? [
1762
- ...BUILT_IN_TURN_SUMMARY_FACETS.filter(
1763
- (facet) => !configuration?.remove?.includes(facet.id)
1764
- ),
1765
- ...configuration?.add ?? []
1766
- ];
1767
- const seen = /* @__PURE__ */ new Set();
1768
- return requested.filter((facet) => {
1769
- if (!facet.id || seen.has(facet.id)) {
1770
- return false;
1771
- }
1772
- seen.add(facet.id);
1773
- return true;
1774
- });
1775
- }
1776
- function formatDurationFacet(t, durationMs) {
1777
- if (durationMs === void 0 || !Number.isFinite(durationMs) || durationMs < 1e3) {
1778
- return null;
1779
- }
1780
- const totalSeconds = Math.floor(durationMs / 1e3);
1781
- if (totalSeconds < 60) {
1782
- return t("timeline.turnSummaryModel.seconds", { count: totalSeconds });
1783
- }
1784
- const totalMinutes = Math.floor(totalSeconds / 60);
1785
- if (totalMinutes < 60) {
1786
- return t("timeline.turnSummaryModel.minutes", { count: totalMinutes });
1787
- }
1788
- const hours = Math.floor(totalMinutes / 60);
1789
- const minutes = totalMinutes % 60;
1790
- return t("timeline.turnSummaryModel.hoursMinutes", {
1791
- hours,
1792
- minutes: String(minutes).padStart(2, "0")
1793
- });
1794
- }
1795
- function hasFacetContent(content) {
1796
- return content !== null && content !== void 0 && content !== false && content !== "";
1797
- }
1798
- function selectTurnSummaryFacets(definitions, context, statusKind) {
1799
- return definitions.flatMap((facet) => {
1800
- if (statusKind && (facet.id === "duration" || statusKind !== "worked" && BUILT_IN_TURN_SUMMARY_FACET_IDS.includes(facet.id))) {
1801
- return [];
1802
- }
1803
- try {
1804
- const result = facet.summarize(context);
1805
- return result && hasFacetContent(result.content) ? [{ facet, result }] : [];
1806
- } catch {
1807
- return [];
1808
- }
1809
- });
1810
- }
1811
1811
 
1812
1812
  export {
1813
- GENIE_PREPARING_PHRASES,
1814
- GENIE_WAITING_PHRASES,
1813
+ BUILT_IN_TURN_SUMMARY_FACET_IDS,
1814
+ turnSummaryFallbackLabel,
1815
+ formatElapsed,
1816
+ createTurnSummaryContext,
1817
+ BUILT_IN_TURN_SUMMARY_FACETS,
1818
+ resolveTurnSummaryFacets,
1819
+ formatDurationFacet,
1820
+ selectTurnSummaryFacets,
1821
+ rawTypeOf,
1822
+ createToolRegistry,
1815
1823
  sandboxCommandExitCode,
1816
1824
  parseExecBannerSessionId,
1817
1825
  stripExecBanner,
@@ -1832,8 +1840,6 @@ export {
1832
1840
  generatedImageReceipt,
1833
1841
  retainedToolResultImages,
1834
1842
  mediaPreviewFact,
1835
- rawTypeOf,
1836
- createToolRegistry,
1837
1843
  invokedToolCall,
1838
1844
  withComputePreview,
1839
1845
  truncatePreview,
@@ -1857,13 +1863,7 @@ export {
1857
1863
  presentedToolKind,
1858
1864
  presentsToolOutputPreview,
1859
1865
  toolRowPresentation,
1860
- BUILT_IN_TURN_SUMMARY_FACET_IDS,
1861
- turnSummaryFallbackLabel,
1862
- formatElapsed,
1863
- createTurnSummaryContext,
1864
- BUILT_IN_TURN_SUMMARY_FACETS,
1865
- resolveTurnSummaryFacets,
1866
- formatDurationFacet,
1867
- selectTurnSummaryFacets
1866
+ GENIE_PREPARING_PHRASES,
1867
+ GENIE_WAITING_PHRASES
1868
1868
  };
1869
- //# sourceMappingURL=chunk-E74ISUXA.js.map
1869
+ //# sourceMappingURL=chunk-TQGJN5UZ.js.map