@opengeni/react 0.57.0 → 1.0.2-canary.37191796234001

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 (629) hide show
  1. package/README.md +654 -22
  2. package/dist/accounts.d.ts +64 -0
  3. package/dist/accounts.js +822 -0
  4. package/dist/accounts.js.map +1 -0
  5. package/dist/approvals.d.ts +2 -1
  6. package/dist/artifacts-document.js +3 -2
  7. package/dist/artifacts-presentation.js +3 -2
  8. package/dist/artifacts-spreadsheet.js +2 -2
  9. package/dist/artifacts.d.ts +4 -1
  10. package/dist/artifacts.js +518 -42
  11. package/dist/artifacts.js.map +1 -1
  12. package/dist/browser-viewer-GTR5XQ7X.js +16 -0
  13. package/dist/capability-catalog-row.d.ts +20 -0
  14. package/dist/capability-logo-fallback.d.ts +3 -0
  15. package/dist/chat-interactive-block-UGBTNB3L.js +11 -0
  16. package/dist/chat-interactive-block-UGBTNB3L.js.map +1 -0
  17. package/dist/{chunk-5UQPNLIO.js → chunk-23J2ZNXT.js} +4117 -3896
  18. package/dist/chunk-23J2ZNXT.js.map +1 -0
  19. package/dist/chunk-447JLCBU.js +209 -0
  20. package/dist/chunk-447JLCBU.js.map +1 -0
  21. package/dist/chunk-4RVYOY4O.js +379 -0
  22. package/dist/chunk-4RVYOY4O.js.map +1 -0
  23. package/dist/chunk-5CVXZA3Y.js +292 -0
  24. package/dist/chunk-5CVXZA3Y.js.map +1 -0
  25. package/dist/chunk-5J4FOW6Q.js +108 -0
  26. package/dist/chunk-5J4FOW6Q.js.map +1 -0
  27. package/dist/chunk-A2PI6UMY.js +41 -0
  28. package/dist/chunk-A2PI6UMY.js.map +1 -0
  29. package/dist/{chunk-7WCLAEFV.js → chunk-A4UJB2MM.js} +37 -27
  30. package/dist/chunk-A4UJB2MM.js.map +1 -0
  31. package/dist/chunk-B3V6TG77.js +41 -0
  32. package/dist/chunk-B3V6TG77.js.map +1 -0
  33. package/dist/chunk-BRM6FVZA.js +302 -0
  34. package/dist/chunk-BRM6FVZA.js.map +1 -0
  35. package/dist/chunk-C5X5AJXK.js +182 -0
  36. package/dist/chunk-C5X5AJXK.js.map +1 -0
  37. package/dist/chunk-CR7U7HAR.js +453 -0
  38. package/dist/chunk-CR7U7HAR.js.map +1 -0
  39. package/dist/{chunk-R3AZOAB5.js → chunk-DYWBUX5Q.js} +29 -123
  40. package/dist/chunk-DYWBUX5Q.js.map +1 -0
  41. package/dist/chunk-E3G7SAYZ.js +3124 -0
  42. package/dist/chunk-E3G7SAYZ.js.map +1 -0
  43. package/dist/chunk-ELCE5SXV.js +359 -0
  44. package/dist/chunk-ELCE5SXV.js.map +1 -0
  45. package/dist/chunk-ERGYJIBB.js +21 -0
  46. package/dist/chunk-ERGYJIBB.js.map +1 -0
  47. package/dist/chunk-FFA2OVOV.js +319 -0
  48. package/dist/chunk-FFA2OVOV.js.map +1 -0
  49. package/dist/chunk-FZCP527Y.js +116 -0
  50. package/dist/chunk-FZCP527Y.js.map +1 -0
  51. package/dist/chunk-GIMRELBW.js +14 -0
  52. package/dist/chunk-GIMRELBW.js.map +1 -0
  53. package/dist/{chunk-6KLX2RH5.js → chunk-H2NJQORO.js} +1069 -79
  54. package/dist/chunk-H2NJQORO.js.map +1 -0
  55. package/dist/chunk-I7IWRQLN.js +1608 -0
  56. package/dist/chunk-I7IWRQLN.js.map +1 -0
  57. package/dist/{chunk-HA46CYQK.js → chunk-IQUCRAT7.js} +792 -537
  58. package/dist/chunk-IQUCRAT7.js.map +1 -0
  59. package/dist/chunk-IWIDV7SB.js +1 -0
  60. package/dist/chunk-IWIDV7SB.js.map +1 -0
  61. package/dist/chunk-J2QWVSQY.js +312 -0
  62. package/dist/chunk-J2QWVSQY.js.map +1 -0
  63. package/dist/chunk-JFNEV4LU.js +2733 -0
  64. package/dist/chunk-JFNEV4LU.js.map +1 -0
  65. package/dist/chunk-JT4JW7BC.js +54 -0
  66. package/dist/chunk-JT4JW7BC.js.map +1 -0
  67. package/dist/chunk-K3HQAKQX.js +24 -0
  68. package/dist/chunk-K3HQAKQX.js.map +1 -0
  69. package/dist/{chunk-C5ZPSSS5.js → chunk-NEXLLTP4.js} +2 -1
  70. package/dist/{chunk-C5ZPSSS5.js.map → chunk-NEXLLTP4.js.map} +1 -1
  71. package/dist/chunk-NZUI76EM.js +371 -0
  72. package/dist/chunk-NZUI76EM.js.map +1 -0
  73. package/dist/{chunk-PEI6RANI.js → chunk-PNY3JKBJ.js} +309 -74
  74. package/dist/chunk-PNY3JKBJ.js.map +1 -0
  75. package/dist/{chunk-IGC6A2ZI.js → chunk-Q5QBEZIQ.js} +777 -246
  76. package/dist/chunk-Q5QBEZIQ.js.map +1 -0
  77. package/dist/chunk-RHREZ7BO.js +11 -0
  78. package/dist/chunk-RHREZ7BO.js.map +1 -0
  79. package/dist/chunk-SCOTPE2I.js +589 -0
  80. package/dist/chunk-SCOTPE2I.js.map +1 -0
  81. package/dist/{chunk-B6WPZSTT.js → chunk-SJZDKVW2.js} +1331 -1163
  82. package/dist/chunk-SJZDKVW2.js.map +1 -0
  83. package/dist/chunk-TMJRG4YC.js +12803 -0
  84. package/dist/chunk-TMJRG4YC.js.map +1 -0
  85. package/dist/chunk-TMYGL6X5.js +742 -0
  86. package/dist/chunk-TMYGL6X5.js.map +1 -0
  87. package/dist/chunk-UGLEYEMP.js +33 -0
  88. package/dist/chunk-UGLEYEMP.js.map +1 -0
  89. package/dist/chunk-UK4TINKT.js +27 -0
  90. package/dist/chunk-UK4TINKT.js.map +1 -0
  91. package/dist/chunk-UTRTG6LH.js +220 -0
  92. package/dist/chunk-UTRTG6LH.js.map +1 -0
  93. package/dist/chunk-WEHMPOXK.js +39 -0
  94. package/dist/chunk-WEHMPOXK.js.map +1 -0
  95. package/dist/chunk-WRHIZYZF.js +988 -0
  96. package/dist/chunk-WRHIZYZF.js.map +1 -0
  97. package/dist/{chunk-HUIKIDM5.js → chunk-WUISZ3WU.js} +223 -115
  98. package/dist/chunk-WUISZ3WU.js.map +1 -0
  99. package/dist/chunk-XCHWDJ22.js +107 -0
  100. package/dist/chunk-XCHWDJ22.js.map +1 -0
  101. package/dist/chunk-XOAMRDDK.js +481 -0
  102. package/dist/chunk-XOAMRDDK.js.map +1 -0
  103. package/dist/chunk-XUW2UWQM.js +299 -0
  104. package/dist/chunk-XUW2UWQM.js.map +1 -0
  105. package/dist/{chunk-KCGXPP5V.js → chunk-Y2PRMYLC.js} +11 -6
  106. package/dist/chunk-Y2PRMYLC.js.map +1 -0
  107. package/dist/chunk-YBXQDQFX.js +1772 -0
  108. package/dist/chunk-YBXQDQFX.js.map +1 -0
  109. package/dist/{chunk-KZ73RL76.js → chunk-YQEAA6LT.js} +7 -3
  110. package/dist/chunk-YQEAA6LT.js.map +1 -0
  111. package/dist/chunk-YV4L3ILF.js +9 -0
  112. package/dist/chunk-YV4L3ILF.js.map +1 -0
  113. package/dist/{chunk-LLOLUHVG.js → chunk-YWFG7ZX7.js} +1358 -2746
  114. package/dist/chunk-YWFG7ZX7.js.map +1 -0
  115. package/dist/chunk-ZYRGEKWS.js +216 -0
  116. package/dist/chunk-ZYRGEKWS.js.map +1 -0
  117. package/dist/client.d.ts +7 -4
  118. package/dist/clipboard.js +1 -0
  119. package/dist/commands/types.d.ts +2 -0
  120. package/dist/components/anthropic-mark.d.ts +3 -0
  121. package/dist/components/approval-surface.d.ts +15 -0
  122. package/dist/components/artifacts/artifact-chrome.d.ts +120 -0
  123. package/dist/components/artifacts/artifact-sandbox.d.ts +27 -0
  124. package/dist/components/artifacts/artifact-surface.d.ts +3 -1
  125. package/dist/components/artifacts/chat-interactive-block.d.ts +29 -0
  126. package/dist/components/artifacts/deferred-chat-media.d.ts +15 -0
  127. package/dist/components/artifacts/document-editor.d.ts +4 -2
  128. package/dist/components/artifacts/editable-artifact-ui.d.ts +2 -1
  129. package/dist/components/artifacts/editable-artifact-view.d.ts +46 -0
  130. package/dist/components/artifacts/editable-document.d.ts +1 -1
  131. package/dist/components/artifacts/editable-presentation.d.ts +2 -2
  132. package/dist/components/artifacts/editable-spreadsheet.d.ts +2 -1
  133. package/dist/components/artifacts/index.d.ts +8 -1
  134. package/dist/components/artifacts/inline-html-document.d.ts +2 -0
  135. package/dist/components/artifacts/latest-task-runner.d.ts +15 -0
  136. package/dist/components/artifacts/presentation-editor.d.ts +6 -2
  137. package/dist/components/artifacts/published-html-artifact-frame.d.ts +48 -3
  138. package/dist/components/artifacts/session-artifact-viewer.d.ts +39 -0
  139. package/dist/components/artifacts/site-view.d.ts +23 -0
  140. package/dist/components/artifacts/spreadsheet-general-display.d.ts +24 -0
  141. package/dist/components/artifacts/visualization-assets.gen.d.ts +2 -0
  142. package/dist/components/browser-select-control.d.ts +16 -0
  143. package/dist/components/browser-viewer.d.ts +10 -1
  144. package/dist/components/chat-composer.d.ts +21 -3
  145. package/dist/components/child-session-link.d.ts +5 -0
  146. package/dist/components/claude-mark.d.ts +3 -0
  147. package/dist/components/code-editor.d.ts +1 -4
  148. package/dist/components/composer.d.ts +45 -4
  149. package/dist/components/computer-viewer.d.ts +4 -1
  150. package/dist/components/copy-button.d.ts +3 -1
  151. package/dist/components/desktop-viewer.d.ts +1 -1
  152. package/dist/components/enrollment-consent.d.ts +6 -3
  153. package/dist/components/file-browser.d.ts +10 -1
  154. package/dist/components/fleet-tile.d.ts +2 -2
  155. package/dist/components/grok-mark.d.ts +26 -0
  156. package/dist/components/human-input-form.d.ts +21 -2
  157. package/dist/components/human-input-surface.d.ts +6 -3
  158. package/dist/components/machine-card.d.ts +4 -1
  159. package/dist/components/machines/machine-detail.d.ts +4 -1
  160. package/dist/components/machines/machine-operation-policy.d.ts +11 -0
  161. package/dist/components/machines-dashboard.d.ts +3 -1
  162. package/dist/components/markdown-table-layout.d.ts +12 -0
  163. package/dist/components/markdown.d.ts +47 -3
  164. package/dist/components/message-timeline.d.ts +72 -9
  165. package/dist/components/model-mark.d.ts +29 -0
  166. package/dist/components/model-policy-picker-menu.d.ts +9 -0
  167. package/dist/components/model-policy-picker.d.ts +62 -13
  168. package/dist/components/open-geni-chat.d.ts +55 -0
  169. package/dist/components/open-geni-links.d.ts +68 -0
  170. package/dist/components/openrouter-mark.d.ts +6 -0
  171. package/dist/components/pierre-file.d.ts +1 -1
  172. package/dist/components/preview-loading.d.ts +2 -0
  173. package/dist/components/queue-item-content.d.ts +9 -0
  174. package/dist/components/sandbox-files.d.ts +13 -2
  175. package/dist/components/sandbox-workspace.d.ts +43 -3
  176. package/dist/components/session-capability-frame.d.ts +35 -0
  177. package/dist/components/session-chrome.d.ts +66 -8
  178. package/dist/components/session-commands-panel.d.ts +6 -0
  179. package/dist/components/session-commands.d.ts +6 -0
  180. package/dist/components/session-connection-request.d.ts +8 -0
  181. package/dist/components/session-conversation.d.ts +86 -0
  182. package/dist/components/session-list.d.ts +36 -0
  183. package/dist/components/session-mcp-capability-card.d.ts +41 -0
  184. package/dist/components/timeline-anchor.d.ts +24 -0
  185. package/dist/components/timeline-annotation-chrome.d.ts +25 -0
  186. package/dist/components/timeline-annotation-layout.d.ts +42 -0
  187. package/dist/components/timeline-annotation-markers.d.ts +8 -0
  188. package/dist/components/timeline-annotation-reveal-context.d.ts +4 -0
  189. package/dist/components/timeline-annotation-shared.d.ts +31 -0
  190. package/dist/components/timeline-annotations-dialog.d.ts +3 -2
  191. package/dist/components/timeline-annotations.d.ts +13 -3
  192. package/dist/components/timeline-reading-progress.d.ts +11 -0
  193. package/dist/components/timeline-search.d.ts +34 -0
  194. package/dist/components/timeline-settlement.d.ts +16 -0
  195. package/dist/components/tip-follow.d.ts +16 -0
  196. package/dist/components/usage-limit-notice.d.ts +49 -0
  197. package/dist/components/usage-member-list.d.ts +91 -0
  198. package/dist/components/usage-meter.d.ts +73 -0
  199. package/dist/components/use-viewer-menu-dismiss.d.ts +2 -0
  200. package/dist/components/user-message-body.d.ts +10 -1
  201. package/dist/components/workspace-dock.d.ts +6 -2
  202. package/dist/composer.d.ts +5 -4
  203. package/dist/composer.js +15 -9
  204. package/dist/computer-viewer-ENHVAZ2Q.js +19 -0
  205. package/dist/computer-viewer-ENHVAZ2Q.js.map +1 -0
  206. package/dist/connect-account-identity.d.ts +8 -0
  207. package/dist/connect-accounts.d.ts +15 -0
  208. package/dist/connect-chooser.d.ts +18 -0
  209. package/dist/connect-panel.d.ts +18 -0
  210. package/dist/connect-setup.d.ts +16 -0
  211. package/dist/connect.d.ts +21 -0
  212. package/dist/connect.js +2129 -0
  213. package/dist/connect.js.map +1 -0
  214. package/dist/connection-catalog.d.ts +38 -0
  215. package/dist/connection-discovery.d.ts +12 -0
  216. package/dist/connection-installed.d.ts +17 -0
  217. package/dist/connection-logo.d.ts +9 -0
  218. package/dist/connection-service-logo.d.ts +8 -0
  219. package/dist/connection-service-presentation.d.ts +13 -0
  220. package/dist/connection-skeleton.d.ts +5 -0
  221. package/dist/connection-type-picker.d.ts +6 -0
  222. package/dist/conversation-timeline.d.ts +5 -0
  223. package/dist/desktop.d.ts +7 -0
  224. package/dist/desktop.js +26 -0
  225. package/dist/desktop.js.map +1 -0
  226. package/dist/device-authorization.d.ts +23 -0
  227. package/dist/diffs.d.ts +8 -0
  228. package/dist/diffs.js +14 -0
  229. package/dist/diffs.js.map +1 -0
  230. package/dist/discovery-cache.d.ts +5 -0
  231. package/dist/editor.d.ts +7 -0
  232. package/dist/editor.js +21 -0
  233. package/dist/editor.js.map +1 -0
  234. package/dist/embedded-session-client.d.ts +23 -0
  235. package/dist/file-node-visibility.d.ts +15 -0
  236. package/dist/{fleet-decision-row-GGCAT4E4.js → fleet-decision-row-YZ3ZKWMM.js} +2 -1
  237. package/dist/fleet-decision-row-YZ3ZKWMM.js.map +1 -0
  238. package/dist/hooks/channel-cache.d.ts +23 -0
  239. package/dist/hooks/latest-question.d.ts +25 -0
  240. package/dist/hooks/shared-machines-list.d.ts +14 -0
  241. package/dist/hooks/use-attached-browsers.d.ts +2 -1
  242. package/dist/hooks/use-browser-frame-stream.d.ts +1 -1
  243. package/dist/hooks/use-browser-session.d.ts +12 -1
  244. package/dist/hooks/use-channels.d.ts +1 -0
  245. package/dist/hooks/use-codex-accounts.d.ts +25 -7
  246. package/dist/hooks/use-composer.d.ts +45 -9
  247. package/dist/hooks/use-computer-frame-stream.d.ts +1 -1
  248. package/dist/hooks/use-computer-input-posture.d.ts +13 -0
  249. package/dist/hooks/use-computer-session.d.ts +2 -0
  250. package/dist/hooks/use-connect.d.ts +22 -0
  251. package/dist/hooks/use-desktop-stream.d.ts +1 -1
  252. package/dist/hooks/use-file-attachments.d.ts +21 -2
  253. package/dist/hooks/use-machine-chip.d.ts +3 -3
  254. package/dist/hooks/use-machines.d.ts +19 -1
  255. package/dist/hooks/use-sandbox-files.d.ts +5 -1
  256. package/dist/hooks/use-session-background-commands.d.ts +14 -0
  257. package/dist/hooks/use-session-events.d.ts +30 -8
  258. package/dist/hooks/use-session-lineage.d.ts +4 -0
  259. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  260. package/dist/hooks/use-session.d.ts +6 -0
  261. package/dist/hooks/use-turn-queue.d.ts +12 -0
  262. package/dist/hooks/use-usage.d.ts +40 -0
  263. package/dist/hooks/use-workspace-edit.d.ts +4 -0
  264. package/dist/hooks/use-workspace-sessions.d.ts +27 -5
  265. package/dist/human-input.d.ts +3 -1
  266. package/dist/identity-link-accounts.d.ts +11 -0
  267. package/dist/identity-link-consent.d.ts +18 -0
  268. package/dist/index.d.ts +60 -17
  269. package/dist/index.js +2237 -6200
  270. package/dist/index.js.map +1 -1
  271. package/dist/interaction.d.ts +1 -1
  272. package/dist/interaction.js +35 -184
  273. package/dist/interaction.js.map +1 -1
  274. package/dist/latest-question-755OW5DS.js +117 -0
  275. package/dist/latest-question-755OW5DS.js.map +1 -0
  276. package/dist/lib/error-message.d.ts +7 -0
  277. package/dist/lib/format.d.ts +36 -2
  278. package/dist/lib/host-theme.d.ts +70 -0
  279. package/dist/lib/interaction-errors.d.ts +6 -0
  280. package/dist/lib/menu-styles.d.ts +22 -0
  281. package/dist/lib/pierre-diffs-loader.d.ts +20 -0
  282. package/dist/lib/workbench-peers.d.ts +36 -0
  283. package/dist/lib/xterm-theme.d.ts +7 -5
  284. package/dist/machines.d.ts +4 -2
  285. package/dist/machines.js +14 -4
  286. package/dist/markdown-table-layout-QXSLK4BY.js +106 -0
  287. package/dist/markdown-table-layout-QXSLK4BY.js.map +1 -0
  288. package/dist/mcp-connection-status.d.ts +14 -0
  289. package/dist/model-policy-picker-menu-PWRI7R2X.js +14 -0
  290. package/dist/model-policy-picker-menu-PWRI7R2X.js.map +1 -0
  291. package/dist/model-policy.d.ts +19 -3
  292. package/dist/model-policy.js +9 -1
  293. package/dist/older-history.d.ts +30 -0
  294. package/dist/platform-activity-row-627BFZ46.js +182 -0
  295. package/dist/platform-activity-row-627BFZ46.js.map +1 -0
  296. package/dist/plugin-details.d.ts +14 -0
  297. package/dist/plugin-discovery.d.ts +25 -0
  298. package/dist/provider.d.ts +13 -1
  299. package/dist/{queue-surface-implementation-2KVJTYXH.js → queue-surface-implementation-ZHFI5JBP.js} +131 -44
  300. package/dist/queue-surface-implementation-ZHFI5JBP.js.map +1 -0
  301. package/dist/realtime/realtime-control.d.ts +10 -3
  302. package/dist/realtime.js +229 -83
  303. package/dist/realtime.js.map +1 -1
  304. package/dist/sandbox-files-BBC47SLD.js +20 -0
  305. package/dist/sandbox-files-BBC47SLD.js.map +1 -0
  306. package/dist/session-auth-recommendation.d.ts +5 -0
  307. package/dist/session-capability-policy.d.ts +12 -0
  308. package/dist/session-ui.d.ts +30 -2
  309. package/dist/session-ui.js +85 -7
  310. package/dist/session-ui.js.map +1 -1
  311. package/dist/session.d.ts +8 -2
  312. package/dist/session.js +30 -19
  313. package/dist/sites-ui.d.ts +34 -0
  314. package/dist/sites.d.ts +3 -0
  315. package/dist/sites.js +11 -0
  316. package/dist/sites.js.map +1 -0
  317. package/dist/skill-discovery.d.ts +47 -0
  318. package/dist/terminal.d.ts +8 -0
  319. package/dist/terminal.js +31 -0
  320. package/dist/terminal.js.map +1 -0
  321. package/dist/timeline/activity-rail.d.ts +11 -2
  322. package/dist/timeline/allowance-exhausted-row.d.ts +24 -0
  323. package/dist/timeline/compaction-copy.d.ts +10 -0
  324. package/dist/timeline/entrance.d.ts +13 -1
  325. package/dist/timeline/genie-loading.d.ts +34 -0
  326. package/dist/timeline/index.d.ts +6 -2
  327. package/dist/timeline/knowledge-receipt.d.ts +17 -0
  328. package/dist/timeline/platform-activity-row.d.ts +14 -0
  329. package/dist/timeline/presented-image.d.ts +6 -0
  330. package/dist/timeline/projection.d.ts +31 -2
  331. package/dist/timeline/registry.d.ts +2 -0
  332. package/dist/timeline/retained-image.d.ts +18 -0
  333. package/dist/timeline/rolling-activity.d.ts +11 -0
  334. package/dist/timeline/screenshot-lightbox.d.ts +16 -1
  335. package/dist/timeline/shared.d.ts +8 -3
  336. package/dist/timeline/startup-preference.d.ts +3 -0
  337. package/dist/timeline/startup-timings.d.ts +4 -0
  338. package/dist/timeline/tool-display-name.d.ts +2 -1
  339. package/dist/timeline/turn-summary.d.ts +32 -3
  340. package/dist/timeline/types.d.ts +141 -7
  341. package/dist/timeline-annotation-markers-GNDHTGBD.js +165 -0
  342. package/dist/timeline-annotation-markers-GNDHTGBD.js.map +1 -0
  343. package/dist/timeline-annotation-selection-DMLMM2TX.js +241 -0
  344. package/dist/timeline-annotation-selection-DMLMM2TX.js.map +1 -0
  345. package/dist/timeline-annotations-dialog-ELRDBHTS.js +273 -0
  346. package/dist/timeline-annotations-dialog-ELRDBHTS.js.map +1 -0
  347. package/dist/types/machines.d.ts +2 -2
  348. package/dist/usage/allowance-copy.d.ts +25 -0
  349. package/dist/usage/summary.d.ts +35 -0
  350. package/dist/usage.d.ts +13 -0
  351. package/dist/usage.js +1074 -0
  352. package/dist/usage.js.map +1 -0
  353. package/package.json +44 -4
  354. package/src/accounts.tsx +1072 -0
  355. package/src/approvals.ts +8 -1
  356. package/src/artifacts.ts +42 -0
  357. package/src/assets/README.md +8 -0
  358. package/src/assets/gmail.ico +0 -0
  359. package/src/assets/outlook.ico +0 -0
  360. package/src/capability-catalog-row.tsx +94 -0
  361. package/src/capability-logo-fallback.ts +22 -0
  362. package/src/client.ts +22 -13
  363. package/src/commands/registry.ts +18 -15
  364. package/src/commands/types.ts +2 -0
  365. package/src/components/anthropic-mark.tsx +10 -0
  366. package/src/components/approval-surface.tsx +171 -37
  367. package/src/components/artifacts/artifact-chrome.tsx +413 -0
  368. package/src/components/artifacts/artifact-sandbox.tsx +185 -0
  369. package/src/components/artifacts/artifact-surface.tsx +39 -19
  370. package/src/components/artifacts/chat-interactive-block.tsx +260 -0
  371. package/src/components/artifacts/deferred-chat-media.tsx +67 -0
  372. package/src/components/artifacts/document-editor.tsx +141 -16
  373. package/src/components/artifacts/editable-artifact-ui.tsx +4 -2
  374. package/src/components/artifacts/editable-artifact-view.tsx +187 -0
  375. package/src/components/artifacts/editable-artifact-workbench.tsx +5 -2
  376. package/src/components/artifacts/editable-document.tsx +37 -36
  377. package/src/components/artifacts/editable-presentation.tsx +36 -18
  378. package/src/components/artifacts/editable-spreadsheet.tsx +5 -2
  379. package/src/components/artifacts/index.ts +44 -0
  380. package/src/components/artifacts/inline-html-document.ts +24 -0
  381. package/src/components/artifacts/latest-task-runner.ts +49 -0
  382. package/src/components/artifacts/presentation-editor.tsx +323 -67
  383. package/src/components/artifacts/published-html-artifact-frame.tsx +338 -5
  384. package/src/components/artifacts/session-artifact-viewer.tsx +376 -0
  385. package/src/components/artifacts/site-view.tsx +116 -0
  386. package/src/components/artifacts/spreadsheet-canvas.ts +5 -10
  387. package/src/components/artifacts/spreadsheet-general-display.ts +43 -0
  388. package/src/components/artifacts/spreadsheet-grid.tsx +12 -13
  389. package/src/components/artifacts/visualization-assets/base.css +1015 -0
  390. package/src/components/artifacts/visualization-assets/helpers.html +349 -0
  391. package/src/components/artifacts/visualization-assets.gen.ts +3 -0
  392. package/src/components/browser-select-control.tsx +312 -0
  393. package/src/components/browser-viewer.tsx +1054 -314
  394. package/src/components/chat-composer.tsx +131 -85
  395. package/src/components/child-session-link.tsx +27 -0
  396. package/src/components/claude-mark.tsx +10 -0
  397. package/src/components/code-editor.tsx +13 -16
  398. package/src/components/composer-transcription-control.tsx +7 -5
  399. package/src/components/composer.tsx +376 -49
  400. package/src/components/computer-viewer.tsx +1041 -329
  401. package/src/components/copy-button.tsx +13 -5
  402. package/src/components/desktop-viewer.tsx +1 -1
  403. package/src/components/enrollment-consent.tsx +65 -7
  404. package/src/components/enrollment-device-flow.tsx +1 -1
  405. package/src/components/file-browser.tsx +158 -34
  406. package/src/components/fleet-tile.tsx +8 -16
  407. package/src/components/generated-video-player.tsx +4 -2
  408. package/src/components/grok-mark.tsx +33 -0
  409. package/src/components/human-input-form.tsx +455 -114
  410. package/src/components/human-input-surface.tsx +18 -7
  411. package/src/components/interaction-intervention-banner.tsx +2 -2
  412. package/src/components/machine-card.tsx +119 -4
  413. package/src/components/machine-dock-bar.tsx +1 -1
  414. package/src/components/machine-input-display.ts +23 -2
  415. package/src/components/machines/machine-detail.tsx +52 -2
  416. package/src/components/machines/machine-operation-policy.tsx +179 -0
  417. package/src/components/machines-dashboard.tsx +8 -17
  418. package/src/components/markdown-table-layout.ts +132 -0
  419. package/src/components/markdown.tsx +473 -44
  420. package/src/components/message-timeline.tsx +2498 -663
  421. package/src/components/model-mark.tsx +90 -0
  422. package/src/components/model-picker.tsx +15 -4
  423. package/src/components/model-policy-picker-menu.tsx +424 -0
  424. package/src/components/model-policy-picker.tsx +337 -381
  425. package/src/components/open-geni-chat.tsx +319 -0
  426. package/src/components/open-geni-links.tsx +179 -0
  427. package/src/components/openrouter-mark.tsx +13 -0
  428. package/src/components/pierre-diff.tsx +41 -16
  429. package/src/components/pierre-file.tsx +36 -11
  430. package/src/components/preview-loading.tsx +154 -0
  431. package/src/components/queue-item-content.ts +14 -0
  432. package/src/components/queue-surface-implementation.tsx +132 -42
  433. package/src/components/queue-surface-state.tsx +3 -1
  434. package/src/components/sandbox-files.tsx +267 -35
  435. package/src/components/sandbox-terminal.tsx +48 -11
  436. package/src/components/sandbox-workspace.tsx +337 -135
  437. package/src/components/session-capability-frame.tsx +192 -0
  438. package/src/components/session-chrome.tsx +1027 -328
  439. package/src/components/session-commands-panel.tsx +126 -0
  440. package/src/components/session-commands.tsx +18 -0
  441. package/src/components/session-connection-request.tsx +97 -0
  442. package/src/components/session-conversation.tsx +512 -0
  443. package/src/components/session-list.tsx +250 -0
  444. package/src/components/session-mcp-capability-card.tsx +680 -0
  445. package/src/components/session-status.tsx +1 -1
  446. package/src/components/timeline-anchor.tsx +119 -0
  447. package/src/components/timeline-annotation-chrome.tsx +196 -0
  448. package/src/components/timeline-annotation-layout.ts +268 -0
  449. package/src/components/timeline-annotation-markers.tsx +185 -0
  450. package/src/components/timeline-annotation-reveal-context.ts +9 -0
  451. package/src/components/timeline-annotation-selection.tsx +106 -54
  452. package/src/components/timeline-annotation-shared.ts +245 -0
  453. package/src/components/timeline-annotations-dialog.tsx +185 -128
  454. package/src/components/timeline-annotations.tsx +189 -45
  455. package/src/components/timeline-reading-progress.ts +80 -0
  456. package/src/components/timeline-search.tsx +168 -0
  457. package/src/components/timeline-settlement.ts +60 -0
  458. package/src/components/tip-follow.ts +70 -7
  459. package/src/components/tooltip.tsx +38 -5
  460. package/src/components/usage-limit-notice.tsx +179 -0
  461. package/src/components/usage-member-list.tsx +792 -0
  462. package/src/components/usage-meter.tsx +382 -0
  463. package/src/components/use-viewer-menu-dismiss.ts +33 -0
  464. package/src/components/user-message-body.tsx +194 -49
  465. package/src/components/workspace-dock.tsx +141 -175
  466. package/src/composer.ts +6 -1
  467. package/src/connect-account-identity.tsx +34 -0
  468. package/src/connect-accounts.tsx +233 -0
  469. package/src/connect-chooser.tsx +336 -0
  470. package/src/connect-panel.tsx +99 -0
  471. package/src/connect-setup.tsx +307 -0
  472. package/src/connect.ts +60 -0
  473. package/src/connection-assets.d.ts +4 -0
  474. package/src/connection-catalog.tsx +162 -0
  475. package/src/connection-discovery.tsx +235 -0
  476. package/src/connection-installed.tsx +51 -0
  477. package/src/connection-logo.tsx +37 -0
  478. package/src/connection-service-logo.tsx +55 -0
  479. package/src/connection-service-presentation.ts +46 -0
  480. package/src/connection-skeleton.tsx +16 -0
  481. package/src/connection-type-picker.tsx +36 -0
  482. package/src/conversation-timeline.ts +92 -0
  483. package/src/desktop.ts +24 -0
  484. package/src/device-authorization.tsx +98 -0
  485. package/src/diffs.ts +16 -0
  486. package/src/discovery-cache.ts +42 -0
  487. package/src/editor.ts +13 -0
  488. package/src/embedded-session-client.ts +104 -0
  489. package/src/file-node-visibility.ts +66 -0
  490. package/src/hooks/channel-cache.ts +104 -0
  491. package/src/hooks/internal.ts +3 -2
  492. package/src/hooks/latest-question.ts +164 -0
  493. package/src/hooks/shared-machines-list.ts +239 -0
  494. package/src/hooks/use-attached-browsers.ts +5 -1
  495. package/src/hooks/use-available-models.ts +20 -14
  496. package/src/hooks/use-browser-frame-stream.ts +25 -3
  497. package/src/hooks/use-browser-session.ts +271 -71
  498. package/src/hooks/use-browser-sessions.ts +7 -1
  499. package/src/hooks/use-channels.ts +32 -10
  500. package/src/hooks/use-codex-accounts.ts +78 -21
  501. package/src/hooks/use-composer.ts +1034 -320
  502. package/src/hooks/use-computer-frame-stream.ts +39 -16
  503. package/src/hooks/use-computer-input-posture.ts +94 -0
  504. package/src/hooks/use-computer-session.ts +110 -32
  505. package/src/hooks/use-computer-sessions.ts +8 -1
  506. package/src/hooks/use-connect.ts +23 -0
  507. package/src/hooks/use-desktop-stream.ts +19 -28
  508. package/src/hooks/use-file-attachments.ts +118 -10
  509. package/src/hooks/use-goal.ts +36 -9
  510. package/src/hooks/use-human-input.ts +31 -4
  511. package/src/hooks/use-last-started-turn-policy.ts +15 -13
  512. package/src/hooks/use-machine-chip.ts +23 -6
  513. package/src/hooks/use-machines.ts +104 -6
  514. package/src/hooks/use-sandbox-files.ts +253 -150
  515. package/src/hooks/use-sandbox-git.ts +58 -29
  516. package/src/hooks/use-session-background-commands.ts +67 -0
  517. package/src/hooks/use-session-capabilities.ts +21 -2
  518. package/src/hooks/use-session-events.ts +759 -433
  519. package/src/hooks/use-session-lineage.ts +28 -6
  520. package/src/hooks/use-session-mcp-approval-policy.ts +13 -5
  521. package/src/hooks/use-session.ts +75 -16
  522. package/src/hooks/use-slash-commands.ts +6 -11
  523. package/src/hooks/use-turn-queue.ts +113 -13
  524. package/src/hooks/use-usage.ts +100 -0
  525. package/src/hooks/use-voice-input.ts +12 -1
  526. package/src/hooks/use-workspace-capture.ts +3 -2
  527. package/src/hooks/use-workspace-edit.ts +23 -5
  528. package/src/hooks/use-workspace-sessions.ts +99 -11
  529. package/src/human-input.ts +12 -1
  530. package/src/identity-link-accounts.tsx +148 -0
  531. package/src/identity-link-consent.tsx +192 -0
  532. package/src/index.ts +157 -12
  533. package/src/interaction.ts +1 -0
  534. package/src/lib/error-message.ts +37 -0
  535. package/src/lib/format.ts +150 -14
  536. package/src/lib/host-theme.ts +511 -0
  537. package/src/lib/interaction-errors.ts +33 -0
  538. package/src/lib/menu-styles.ts +44 -0
  539. package/src/lib/pierre-diffs-loader.ts +53 -0
  540. package/src/lib/workbench-peers.ts +62 -0
  541. package/src/lib/xterm-theme.ts +23 -21
  542. package/src/machines.ts +9 -1
  543. package/src/mcp-connection-status.ts +35 -0
  544. package/src/model-policy.ts +223 -69
  545. package/src/older-history.ts +87 -0
  546. package/src/plugin-details.tsx +185 -0
  547. package/src/plugin-discovery.tsx +196 -0
  548. package/src/provider.tsx +55 -14
  549. package/src/realtime/dropdown-menu.tsx +19 -12
  550. package/src/realtime/realtime-control.tsx +274 -60
  551. package/src/session-auth-recommendation.ts +48 -0
  552. package/src/session-capability-policy.ts +83 -0
  553. package/src/session-context.ts +1 -0
  554. package/src/session-ui.ts +66 -2
  555. package/src/session.ts +18 -1
  556. package/src/sites-ui.tsx +402 -0
  557. package/src/sites.ts +3 -0
  558. package/src/skill-discovery.tsx +208 -0
  559. package/src/terminal.ts +26 -0
  560. package/src/timeline/activity-rail.tsx +171 -80
  561. package/src/timeline/allowance-exhausted-row.tsx +86 -0
  562. package/src/timeline/compaction-copy.ts +42 -0
  563. package/src/timeline/entrance.tsx +28 -3
  564. package/src/timeline/fleet-decision-projection.ts +2 -1
  565. package/src/timeline/fleet-decision-row.tsx +1 -0
  566. package/src/timeline/genie-loading.tsx +136 -0
  567. package/src/timeline/index.ts +11 -0
  568. package/src/timeline/knowledge-receipt.tsx +100 -0
  569. package/src/timeline/parsers.ts +2 -2
  570. package/src/timeline/platform-activity-row.tsx +216 -0
  571. package/src/timeline/presented-image.ts +49 -0
  572. package/src/timeline/projection.ts +1600 -84
  573. package/src/timeline/registry.ts +15 -3
  574. package/src/timeline/retained-image.ts +97 -0
  575. package/src/timeline/rolling-activity.tsx +92 -0
  576. package/src/timeline/screenshot-lightbox.tsx +115 -17
  577. package/src/timeline/shared.tsx +47 -15
  578. package/src/timeline/startup-preference.ts +33 -0
  579. package/src/timeline/startup-timings.tsx +145 -0
  580. package/src/timeline/tool-display-name.ts +8 -6
  581. package/src/timeline/tool-renderers.tsx +497 -128
  582. package/src/timeline/turn-summary.tsx +208 -44
  583. package/src/timeline/types.ts +186 -7
  584. package/src/types/machines.ts +10 -0
  585. package/src/usage/allowance-copy.ts +64 -0
  586. package/src/usage/summary.ts +93 -0
  587. package/src/usage.ts +50 -0
  588. package/styles/compiled.css +2098 -757
  589. package/styles/connect.css +284 -0
  590. package/styles/connect.d.ts +1 -0
  591. package/styles/effective-tokens.css +1 -0
  592. package/styles/index.css +201 -9
  593. package/styles/responsive.css +27 -1
  594. package/styles/session-capability.css +44 -0
  595. package/styles/tokens.css +135 -65
  596. package/dist/chunk-5UQPNLIO.js.map +0 -1
  597. package/dist/chunk-6KLX2RH5.js.map +0 -1
  598. package/dist/chunk-7WCLAEFV.js.map +0 -1
  599. package/dist/chunk-B6WPZSTT.js.map +0 -1
  600. package/dist/chunk-FK6VG4LL.js +0 -90
  601. package/dist/chunk-FK6VG4LL.js.map +0 -1
  602. package/dist/chunk-HA46CYQK.js.map +0 -1
  603. package/dist/chunk-HUIKIDM5.js.map +0 -1
  604. package/dist/chunk-IGC6A2ZI.js.map +0 -1
  605. package/dist/chunk-KCGXPP5V.js.map +0 -1
  606. package/dist/chunk-KZ73RL76.js.map +0 -1
  607. package/dist/chunk-LAKLF4PA.js +0 -141
  608. package/dist/chunk-LAKLF4PA.js.map +0 -1
  609. package/dist/chunk-LLOLUHVG.js.map +0 -1
  610. package/dist/chunk-MKPIAGVL.js +0 -465
  611. package/dist/chunk-MKPIAGVL.js.map +0 -1
  612. package/dist/chunk-PEI6RANI.js.map +0 -1
  613. package/dist/chunk-R3AZOAB5.js.map +0 -1
  614. package/dist/chunk-WSK7G5LE.js +0 -170
  615. package/dist/chunk-WSK7G5LE.js.map +0 -1
  616. package/dist/chunk-XBZWOM2K.js +0 -218
  617. package/dist/chunk-XBZWOM2K.js.map +0 -1
  618. package/dist/chunk-Y7OEDUJ5.js +0 -8810
  619. package/dist/chunk-Y7OEDUJ5.js.map +0 -1
  620. package/dist/fleet-decision-row-GGCAT4E4.js.map +0 -1
  621. package/dist/hooks/use-packs.d.ts +0 -32
  622. package/dist/interactive-workbench-viewers-TOHBXJEE.js +0 -15
  623. package/dist/queue-surface-implementation-2KVJTYXH.js.map +0 -1
  624. package/dist/timeline-annotation-selection-3L7LHGG2.js +0 -187
  625. package/dist/timeline-annotation-selection-3L7LHGG2.js.map +0 -1
  626. package/dist/timeline-annotations-dialog-U7EVLR75.js +0 -196
  627. package/dist/timeline-annotations-dialog-U7EVLR75.js.map +0 -1
  628. package/src/hooks/use-packs.ts +0 -157
  629. /package/dist/{interactive-workbench-viewers-TOHBXJEE.js.map → browser-viewer-GTR5XQ7X.js.map} +0 -0
@@ -1,15 +1,36 @@
1
+ import { type TimelineSearchTarget } from "./timeline-search.js";
2
+ import { type GenieLoadingOptions } from "../timeline/genie-loading.js";
1
3
  import type { DraftTimelineAnnotation, SessionEvent, SessionStatus } from "@opengeni/sdk";
2
4
  import { type ReactNode } from "react";
5
+ import { type OlderHistoryLoader } from "../older-history.js";
6
+ import { type MarkdownProps } from "./markdown.js";
7
+ import { type OpenGeniLinkResolver } from "./open-geni-links.js";
8
+ import { type UserMessageDisclosureLabels } from "./user-message-body.js";
3
9
  import { type AgentMessageItem, type AuthNeededItem, type TimelineGroup, type TimelineItem, type RetainedArtifactLoader, type RetainedScreenshotLoader, type VideoArtifactPlaybackLoader, type ToolRegistry, type TurnSummaryOptions, type UserMessageItem } from "../timeline/index.js";
10
+ import { type RenderAllowanceExhausted } from "../timeline/allowance-exhausted-row.js";
11
+ import type { AllowanceLabels } from "../usage/allowance-copy.js";
4
12
  export type MessageTimelineProps = {
13
+ /** Exact durable search hit; clearing it removes highlighting without moving the reader. */
14
+ searchTarget?: TimelineSearchTarget | null | undefined;
15
+ /** Localized user-message disclosure actions, including custom UserMessageBody renderers. */
16
+ userMessageDisclosureLabels?: UserMessageDisclosureLabels | undefined;
5
17
  /** Raw session events (projected internally) … */
6
18
  events?: SessionEvent[] | undefined;
7
19
  /** … or pre-projected items (e.g. from `useSessionEvents().timeline`). */
8
20
  items?: TimelineItem[] | undefined;
9
21
  /** Current session status (reserved; tip "Working…" chrome removed for now). */
10
22
  status?: SessionStatus | null | undefined;
23
+ /** Host-owned controls beside Copy and the timestamp on settled message rows. */
24
+ renderMessageActions?: ((item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
11
25
  /** Plug a markdown renderer for message bodies (e.g. streamdown). */
12
- renderMessageText?: ((text: string, item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
26
+ renderMessageText?: ((text: string, item: AgentMessageItem | UserMessageItem, context: {
27
+ searchTarget: TimelineSearchTarget | null;
28
+ }) => ReactNode) | undefined;
29
+ /**
30
+ * Render assistant `opengeni-html` / `opengeni-site` fences in the default
31
+ * message renderer (`SessionConversation` supplies the inline Site preview).
32
+ */
33
+ renderInteractiveBlock?: MarkdownProps["renderInteractiveBlock"];
13
34
  /** Drill into a spawned worker session. */
14
35
  onOpenSession?: ((sessionId: string) => void) | undefined;
15
36
  /**
@@ -29,6 +50,17 @@ export type MessageTimelineProps = {
29
50
  * a Reconnect button without a handler to run it.
30
51
  */
31
52
  onReconnect?: ((item: AuthNeededItem) => void | Promise<void>) | undefined;
53
+ /** Host-owned inline connection setup. Return undefined to use the default recovery card. */
54
+ renderAuthNeeded?: ((item: AuthNeededItem) => ReactNode | undefined) | undefined;
55
+ /**
56
+ * Replace the "usage limit reached" row shown when a workspace or member
57
+ * usage allowance stops work (an `allowance_exhausted` refusal). Receives the
58
+ * typed refusal (scope, reset time) and the default row; return undefined to
59
+ * keep the default. Use it to point people at your own plan or admin page.
60
+ */
61
+ renderAllowanceExhausted?: RenderAllowanceExhausted | undefined;
62
+ /** Replace the words of the default "usage limit reached" row. */
63
+ allowanceExhaustedLabels?: Partial<AllowanceLabels> | undefined;
32
64
  /**
33
65
  * Decide which durable authentication notices this timeline presents.
34
66
  * Defaults to showing every notice. Embedded hosts can suppress notices for
@@ -49,9 +81,19 @@ export type MessageTimelineProps = {
49
81
  * `createDefaultToolRegistry({ entries })` to add custom tool renderers.
50
82
  */
51
83
  toolRegistry?: ToolRegistry | undefined;
84
+ /**
85
+ * Open OpenGeni object links the agent writes in replies and progress notes:
86
+ * `artifact:<file>`, `sandbox:<path>`, editable artifacts, and Sites. Return
87
+ * a host URL (`{ href }`) or action (`{ open }`); unhandled targets render as
88
+ * unavailable text instead of a console link that 404s inside the host.
89
+ * Applies to the default message renderer and to any `Markdown` a custom
90
+ * `renderMessageText` renders. `SessionConversation` supplies file and
91
+ * sandbox downloads by default.
92
+ */
93
+ resolveLink?: OpenGeniLinkResolver | undefined;
52
94
  /** Resolve opaque retained screenshot receipts through the authenticated host SDK. */
53
95
  loadRetainedScreenshot?: RetainedScreenshotLoader | undefined;
54
- /** Resolve permanent generated-image receipts through the authenticated host SDK. */
96
+ /** Resolve permanent workspace image/file receipts through the authenticated host SDK. */
55
97
  loadRetainedArtifact?: RetainedArtifactLoader | undefined;
56
98
  /** Mint short-lived native playback sources for retained generated videos. */
57
99
  loadVideoArtifactPlayback?: VideoArtifactPlaybackLoader | undefined;
@@ -61,17 +103,32 @@ export type MessageTimelineProps = {
61
103
  */
62
104
  computeLabel?: string | null | undefined;
63
105
  /** Customize collapsed turn facets for this timeline instance. */
106
+ genieLoading?: GenieLoadingOptions | undefined;
64
107
  turnSummary?: TurnSummaryOptions | undefined;
65
108
  /** Follow new events when pinned to the bottom. Defaults to true. */
66
109
  autoFollow?: boolean | undefined;
67
110
  /** Capture a same-row text selection into the host's canonical composer draft. */
68
111
  onAnnotate?: ((annotation: DraftTimelineAnnotation) => void) | undefined;
112
+ /**
113
+ * Hide the floating "Back to your message" pill while the timeline viewport
114
+ * is shorter than this (px), e.g. a narrow embed above a decision card.
115
+ * Defaults to 0 (always available).
116
+ */
117
+ questionNavMinViewportHeight?: number | undefined;
118
+ /** Composer draft quotes currently attached to the next send. */
119
+ draftAnnotations?: readonly DraftTimelineAnnotation[] | undefined;
120
+ /** Open the composer review list for one numbered draft badge. */
121
+ onDraftAnnotationSelect?: ((id: string) => void) | undefined;
69
122
  /** Older durable history exists above the current window (see useSessionEvents). */
70
123
  hasOlder?: boolean | undefined;
71
124
  /** An older window is being fetched; shows the quiet top shimmer. */
72
125
  loadingOlder?: boolean | undefined;
73
- /** Called when the reader nears the top and older history should backfill. */
74
- onLoadOlder?: (() => void) | undefined;
126
+ /**
127
+ * Called when older history should backfill. Existing void, synchronous-value,
128
+ * and arbitrary-promise callbacks remain supported. Receipt-aware loaders
129
+ * preserve committed-page direction through wrappers and bounded windows.
130
+ */
131
+ onLoadOlder?: OlderHistoryLoader | undefined;
75
132
  /** Jump to the durable session start (bounded oldest window, no middle). */
76
133
  onJumpToStart?: (() => void | Promise<void>) | undefined;
77
134
  /** True while the oldest window is loading. */
@@ -80,13 +137,16 @@ export type MessageTimelineProps = {
80
137
  hasNewer?: boolean | undefined;
81
138
  /** A newer history page is being fetched. */
82
139
  loadingNewer?: boolean | undefined;
83
- /** Page forward through history without loading the whole gap to the tip. */
84
- onLoadNewer?: (() => void) | undefined;
140
+ /** Page forward through history. Return the request promise to enable inline error/retry. */
141
+ onLoadNewer?: (() => unknown) | undefined;
85
142
  /**
86
143
  * Reload the live tip window. When omitted, Jump to latest only re-pins and
87
144
  * scrolls the in-memory window.
88
145
  */
89
146
  onJumpToLatest?: (() => void | Promise<void>) | undefined;
147
+ /** @deprecated Retained for source compatibility; contextual prompt navigation
148
+ * uses only mounted prompts and never invokes this global resolver. */
149
+ onJumpToLatestQuestion?: (() => Promise<number | null>) | undefined;
90
150
  /** Host-owned content appended after timeline groups, such as startup progress. */
91
151
  trailingState?: ReactNode | undefined;
92
152
  emptyState?: ReactNode | undefined;
@@ -98,7 +158,7 @@ export type MessageTimelineProps = {
98
158
  * cards, goal markers, and status transitions. Owns stick-to-bottom scrolling
99
159
  * with a "jump to latest" affordance when the reader scrolls back.
100
160
  */
101
- export declare function MessageTimeline({ events, items, status: _status, renderMessageText, onOpenSession, onMemoryClick, onReconnect, shouldRenderAuthNeeded, resolveProviderLogo, toolRegistry, loadRetainedScreenshot, loadRetainedArtifact, loadVideoArtifactPlayback, computeLabel, turnSummary, autoFollow, onAnnotate, hasOlder, loadingOlder, onLoadOlder, onJumpToStart, loadingOldest, hasNewer, loadingNewer, onLoadNewer, onJumpToLatest, trailingState, emptyState, className, }: MessageTimelineProps): import("react").JSX.Element;
161
+ export declare function MessageTimeline({ resolveLink, renderInteractiveBlock, userMessageDisclosureLabels, searchTarget, events, items, status: _status, renderMessageActions, renderMessageText, onOpenSession, onMemoryClick, onReconnect, renderAuthNeeded, renderAllowanceExhausted, allowanceExhaustedLabels, shouldRenderAuthNeeded, resolveProviderLogo, toolRegistry, loadRetainedScreenshot, loadRetainedArtifact, loadVideoArtifactPlayback, computeLabel, genieLoading, turnSummary, autoFollow, onAnnotate, questionNavMinViewportHeight, draftAnnotations, onDraftAnnotationSelect, hasOlder, loadingOlder, onLoadOlder, onJumpToStart, loadingOldest, hasNewer, loadingNewer, onLoadNewer, onJumpToLatest, trailingState, emptyState, className, }: MessageTimelineProps): import("react").JSX.Element;
102
162
  /**
103
163
  * Settled turns lift the final agent answer out as a sibling group. Include it
104
164
  * in "Copy turn" when present so the chip copies the full assistant reply.
@@ -110,11 +170,14 @@ export declare function trailingAgentTextAfterTurn(group: TimelineGroup, next: T
110
170
  * landmark, notice). Exported so the component demo draws the EXACT same rows as
111
171
  * the live app — no forked bubble/goal markup.
112
172
  */
113
- export declare function TimelineRow({ item, renderMessageText, onReconnect, resolveProviderLogo, onOpenSession, loadVideoArtifactPlayback, }: {
173
+ export declare function TimelineRow({ item, renderMessageActions, renderMessageText, onReconnect, renderAuthNeeded, resolveProviderLogo, onOpenSession, loadVideoArtifactPlayback, }: {
114
174
  item: TimelineItem;
175
+ renderMessageActions?: ((item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
115
176
  renderMessageText?: ((text: string, item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
116
177
  onReconnect?: ((item: AuthNeededItem) => void | Promise<void>) | undefined;
178
+ /** Host-owned inline connection setup. Return undefined to use the default recovery card. */
179
+ renderAuthNeeded?: ((item: AuthNeededItem) => ReactNode | undefined) | undefined;
117
180
  resolveProviderLogo?: ((providerDomain: string) => string | null | undefined) | undefined;
118
181
  onOpenSession?: ((sessionId: string) => void) | undefined;
119
182
  loadVideoArtifactPlayback?: VideoArtifactPlaybackLoader | undefined;
120
- }): import("react").JSX.Element | null;
183
+ }): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null;
@@ -0,0 +1,29 @@
1
+ import { type ModelDisplayInput } from "@opengeni/sdk/model-display";
2
+ import type { ReactNode, SVGProps } from "react";
3
+ /** ChatGPT / OpenAI mark (Simple Icons path), currentColor like the other marks. */
4
+ export declare function ChatGptMark(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
5
+ /** True when `ModelMark` has a real maker logo for this model (not the neutral fallback). */
6
+ export declare function modelHasMark(model: ModelDisplayInput): boolean;
7
+ /**
8
+ * The model maker's logo (OpenAI, Claude, Grok), never the connection that
9
+ * serves it. Makers without a bundled logo get a neutral mark, so an org- and
10
+ * a workspace-connected copy of one model always look the same.
11
+ */
12
+ export declare function ModelMark(props: {
13
+ model: ModelDisplayInput;
14
+ className?: string | undefined;
15
+ /** Shown when the maker has no bundled logo. Defaults to a neutral sparkle. */
16
+ fallback?: ReactNode;
17
+ "aria-label"?: string | undefined;
18
+ }): import("react").JSX.Element | null;
19
+ /**
20
+ * A model as people should see it outside model settings: the maker's mark and
21
+ * the clean display name. Never a routing prefix, connection id or scope.
22
+ */
23
+ export declare function ModelName(props: {
24
+ model: ModelDisplayInput;
25
+ /** Hide the maker mark for dense text-only contexts. */
26
+ mark?: boolean | undefined;
27
+ className?: string | undefined;
28
+ markClassName?: string | undefined;
29
+ }): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { type RefObject, type CSSProperties } from "react";
2
+ import { type ModelPolicyPickerProps } from "./model-policy-picker.js";
3
+ /** Model selection stays flat; reasoning never becomes a navigation destination. */
4
+ export declare function ModelPolicyPickerMenu(props: ModelPolicyPickerProps): import("react").JSX.Element;
5
+ export declare function ModelPolicyPickerPopover(props: ModelPolicyPickerProps & {
6
+ anchor: RefObject<HTMLButtonElement | null>;
7
+ contentId: string;
8
+ portalStyle: CSSProperties;
9
+ }): import("react").JSX.Element;
@@ -1,27 +1,44 @@
1
1
  import type { ClientModel, LatencyMode, ReasoningEffort } from "@opengeni/sdk";
2
2
  import { type CSSProperties, type ReactNode } from "react";
3
3
  import { type PickerBillingClass, type PickerModelRow } from "../model-policy.js";
4
- type NavLevel = "providers" | "models" | "thinking";
5
- type PickerNavState = {
6
- level: NavLevel;
7
- rail: PickerBillingClass | null;
8
- modelId: string | null;
9
- };
10
- type NavUpdater = PickerNavState | ((previous: PickerNavState) => PickerNavState);
4
+ type ClientPickerModelRow = PickerModelRow<ClientModel>;
5
+ /** Presentation only; never changes model identity, billing or availability. */
6
+ export type ModelPolicyPickerGroupPresentation = Partial<Record<PickerBillingClass, {
7
+ label?: string | undefined;
8
+ /** Omit to preserve the default; null hides the supporting text. */
9
+ description?: string | null | undefined;
10
+ /** Decorative, non-interactive content. Omit for the default; null hides it. */
11
+ icon?: ReactNode | undefined;
12
+ }>>;
11
13
  export type ModelPolicyPickerMessages = {
12
14
  label: string;
13
15
  loading: string;
14
16
  noModels: string;
17
+ connectTitle: string;
18
+ connectBody: string;
19
+ connectAction: string;
15
20
  thinking: string;
16
21
  fast: string;
17
22
  fastRateHint: string;
18
23
  codexOnly: string;
24
+ searchLabel?: string;
25
+ searchPlaceholder?: string;
26
+ currentModel?: string;
27
+ noMatches?: string;
28
+ unsupportedAttachments?: string;
29
+ thinkingEffort?: string;
30
+ selected?: string;
31
+ free?: string;
19
32
  billingHints: Record<PickerBillingClass, string>;
20
33
  };
21
34
  export declare const defaultModelPolicyPickerMessages: ModelPolicyPickerMessages;
22
35
  export type ModelPolicyPickerProps = {
36
+ /** Host branding for payment-source groups, shared by menu and trigger. */
37
+ groupPresentation?: ModelPolicyPickerGroupPresentation | undefined;
23
38
  /** Lightweight deployment models. Catalog rows take precedence when supplied. */
24
39
  models?: ClientModel[] | undefined;
40
+ /** Warn only when the draft actually contains images this model cannot view. */
41
+ hasImageAttachments?: boolean | undefined;
25
42
  /** Catalog-backed rows with availability and billing-class truth. */
26
43
  rows?: PickerModelRow[] | undefined;
27
44
  model: string;
@@ -37,15 +54,35 @@ export type ModelPolicyPickerProps = {
37
54
  onOpenChange?: ((open: boolean) => void) | undefined;
38
55
  /** Non-Codex models stay visible but cannot be selected. */
39
56
  codexOnly?: boolean | undefined;
40
- /** Resets drill-down navigation when the session scope changes. */
57
+ /** Identity of the current session scope. */
41
58
  sessionKey?: string | undefined;
42
59
  /** Prefer bottom on new-chat surfaces and top for bottom-docked composers. */
43
60
  menuSide?: "top" | "bottom" | undefined;
61
+ /**
62
+ * Default true: show models the way people choose them, with clean names,
63
+ * maker marks, one "API keys" group for organization- and workspace-connected
64
+ * keys, and one row for identical copies. Models settings passes false to
65
+ * keep its scope-aware presentation (raw catalog labels, scoped groups).
66
+ */
67
+ collapseScopes?: boolean | undefined;
68
+ /** Hide latency controls on surfaces whose saved policy does not include latency. */
69
+ allowLatencyMode?: boolean | undefined;
70
+ /** Settings → Models. Shown when the catalog has no model that can run. */
71
+ connectModelsHref?: string | undefined;
44
72
  /** Classes for the portalled menu surface. Prefer --og-* tokens for theming. */
45
73
  contentClassName?: string | undefined;
46
74
  /** Inline styles for the portalled menu, applied after inherited --og-* tokens. */
47
75
  contentStyle?: CSSProperties | undefined;
48
76
  className?: string | undefined;
77
+ /**
78
+ * "pill" (default) is the composer's quiet rounded trigger with the effort.
79
+ * "field" is a settings control: a bordered rectangle with the model name
80
+ * and `triggerMeta` (for example the payer) in muted text. The effort stays
81
+ * in the menu.
82
+ */
83
+ triggerStyle?: "pill" | "field" | undefined;
84
+ /** Muted text after the model name in the "field" trigger. */
85
+ triggerMeta?: ReactNode;
49
86
  messages?: Partial<ModelPolicyPickerMessages> | undefined;
50
87
  onModelChange: (modelId: string) => void;
51
88
  onEffortChange: (effort: ReasoningEffort) => void;
@@ -53,9 +90,18 @@ export type ModelPolicyPickerProps = {
53
90
  };
54
91
  export declare function BillingClassMark(props: {
55
92
  billingClass: PickerBillingClass;
93
+ presentation?: ModelPolicyPickerGroupPresentation[PickerBillingClass] | undefined;
56
94
  className?: string | undefined;
57
95
  "aria-label"?: string | undefined;
58
- }): import("react").JSX.Element;
96
+ }): import("react").JSX.Element | null;
97
+ /** Models settings keeps naming who is billed for a key. */
98
+ export declare const SCOPED_BILLING_HINTS: Partial<Record<PickerBillingClass, string>>;
99
+ /**
100
+ * Host branding for a payment group. While scopes are collapsed, API keys are
101
+ * one group, so either API-key presentation serves both.
102
+ */
103
+ export declare function groupPresentationFor(props: Pick<ModelPolicyPickerProps, "groupPresentation" | "collapseScopes">, billingClass: PickerBillingClass): ModelPolicyPickerGroupPresentation[PickerBillingClass];
104
+ export declare function effectiveRows(props: ModelPolicyPickerProps): ClientPickerModelRow[];
59
105
  export declare function PickerNavRow(props: {
60
106
  label: string;
61
107
  hint?: string | undefined;
@@ -64,6 +110,7 @@ export declare function PickerNavRow(props: {
64
110
  showChevron?: boolean | undefined;
65
111
  disabled?: boolean | undefined;
66
112
  title?: string | undefined;
113
+ description?: string | undefined;
67
114
  active?: boolean | undefined;
68
115
  testId?: string | undefined;
69
116
  onClick: () => void;
@@ -79,9 +126,11 @@ export declare function PickerAnimatedPage(props: {
79
126
  direction: 1 | -1;
80
127
  children: ReactNode;
81
128
  }): import("react").JSX.Element;
82
- export declare function ModelPolicyPickerMenu(props: ModelPolicyPickerProps & {
83
- nav?: PickerNavState | undefined;
84
- onNavChange?: ((next: NavUpdater) => void) | undefined;
85
- }): import("react").JSX.Element;
129
+ /** @internal Shared controlled/uncontrolled state seam. */
130
+ export declare function useModelPolicyPickerState(props: ModelPolicyPickerProps): {
131
+ open: boolean;
132
+ setOpen: (next: boolean) => void;
133
+ rows: ClientPickerModelRow[];
134
+ };
86
135
  export declare function ModelPolicyPicker(props: ModelPolicyPickerProps): import("react").JSX.Element;
87
136
  export {};
@@ -0,0 +1,55 @@
1
+ import { type CSSProperties } from "react";
2
+ import { type HostSurfacePreference, type HostThemePreference } from "../lib/host-theme.js";
3
+ import { type ClientOverride } from "../session-context.js";
4
+ import { type SessionConversationProps } from "./session-conversation.js";
5
+ import { type SessionListLabels, type SessionListProps } from "./session-list.js";
6
+ export type OpenGeniChatLabels = SessionListLabels & {
7
+ openChats: string;
8
+ closeChats: string;
9
+ newChatPlaceholder: string;
10
+ /** Heading above the new-chat composer; empty hides it. */
11
+ newChatTitle: string;
12
+ send: string;
13
+ newChatUnavailable: string;
14
+ };
15
+ export type OpenGeniChatProps = ClientOverride & {
16
+ /** Controlled selection. `null` shows the new-chat composer. */
17
+ sessionId?: string | null | undefined;
18
+ /** Initial selection when uncontrolled. Defaults to a new chat. */
19
+ defaultSessionId?: string | null | undefined;
20
+ onSessionChange?: ((sessionId: string | null) => void) | undefined;
21
+ /**
22
+ * Create a chat from its first message. Defaults to `client.createSession`
23
+ * with `{ initialMessage, idempotencyKey }`, which `createSessionProxyHandler`
24
+ * accepts when the server supplies a `createSession` hook. Return the new id.
25
+ */
26
+ createSession?: ((initialMessage: string, idempotencyKey: string) => Promise<string>) | undefined;
27
+ /** Hide the "New chat" entry point. */
28
+ newChat?: boolean | undefined;
29
+ /** Forwarded to the conversation (message rendering, tool renderers, composer...). */
30
+ conversationProps?: Omit<SessionConversationProps, "sessionId" | "client" | "workspaceId">;
31
+ /** Forwarded to the list (rename/archive toggles, page size). */
32
+ listProps?: Pick<SessionListProps, "rename" | "archive" | "pageSize"> | undefined;
33
+ labels?: Partial<OpenGeniChatLabels> | undefined;
34
+ className?: string | undefined;
35
+ /** Defaults to filling the host. */
36
+ height?: CSSProperties["height"];
37
+ /**
38
+ * Light or dark. Defaults to `auto`: follow the host page (an enclosing
39
+ * `data-og-theme`, `class="dark"`/`data-theme` on <html> or <body>, the
40
+ * host's `color-scheme`, then its background), not the OS setting alone.
41
+ */
42
+ theme?: HostThemePreference | undefined;
43
+ /**
44
+ * `host` (default) derives backgrounds and cards from the host background so
45
+ * the chat blends in; `theme` uses the `--og-color-*` surface tokens as they
46
+ * are. Customized surface tokens are always kept.
47
+ */
48
+ surface?: HostSurfacePreference | undefined;
49
+ };
50
+ /**
51
+ * A complete chat experience: the user's chat list plus the conversation.
52
+ * The list is a sidebar when the component is wide and a drawer when narrow
53
+ * (container-based, so it adapts inside panels as well as full pages).
54
+ */
55
+ export declare function OpenGeniChat({ client, workspaceId, sessionId: controlledSessionId, defaultSessionId, onSessionChange, createSession, newChat, conversationProps, listProps, labels: labelOverrides, className, height, theme, surface, }: OpenGeniChatProps): import("react").JSX.Element;
@@ -0,0 +1,68 @@
1
+ import type { OpenGeniClient, OpenGeniLinkTarget } from "@opengeni/sdk";
2
+ import { type ReactNode } from "react";
3
+ export type { OpenGeniLinkTarget };
4
+ /**
5
+ * How the host opens one OpenGeni object an agent linked in chat Markdown.
6
+ *
7
+ * - `{ href }` renders a real link (new tab) — use it for a host page URL.
8
+ * - `{ open }` renders a button that runs the action (download, open a panel,
9
+ * client-side navigation) with loading and retry states.
10
+ * - `null` / `undefined` means "not handled here": the next resolver is asked,
11
+ * and when none handles it the text renders as an unavailable reference —
12
+ * never as a navigation that would 404 inside the host.
13
+ */
14
+ export type OpenGeniLinkResolution = {
15
+ href: string;
16
+ open?: undefined;
17
+ } | {
18
+ open: () => void | Promise<void>;
19
+ href?: undefined;
20
+ };
21
+ export type OpenGeniLinkResolver = (target: OpenGeniLinkTarget) => OpenGeniLinkResolution | null | undefined;
22
+ /** First resolver that handles a target wins. */
23
+ export declare function chainLinkResolvers(...resolvers: ReadonlyArray<OpenGeniLinkResolver | null | undefined>): OpenGeniLinkResolver | null;
24
+ /**
25
+ * Resolve OpenGeni object links (`artifact:`, `sandbox:`, editable artifacts,
26
+ * Sites) for every {@link Markdown} body below. An inner provider is asked
27
+ * before an outer one, so a host can override a single kind and keep defaults.
28
+ */
29
+ export declare function OpenGeniLinkProvider({ resolveLink, children, }: {
30
+ resolveLink: OpenGeniLinkResolver | null | undefined;
31
+ children: ReactNode;
32
+ }): import("react").JSX.Element;
33
+ /** The effective resolver from the nearest {@link OpenGeniLinkProvider}. */
34
+ export declare function useOpenGeniLinkResolver(): OpenGeniLinkResolver | null;
35
+ type SessionLinkClient = Partial<Pick<OpenGeniClient, "createFileDownloadUrl" | "fsRead">>;
36
+ /**
37
+ * Default resolver for a session conversation that talks to OpenGeni through
38
+ * the normal SDK client (for example behind `createSessionProxyHandler`):
39
+ *
40
+ * - `artifact:<file>` downloads the retained file through a short-lived URL.
41
+ * - `sandbox:<path>` downloads when enabled by the host proxy capability.
42
+ *
43
+ * Editable artifacts and Sites have no default: they need a host surface
44
+ * (see `@opengeni/react/artifacts/*` and `@opengeni/react/sites`), so they stay
45
+ * unavailable until the host resolves them.
46
+ */
47
+ export declare function sessionLinkResolver(input: {
48
+ client: SessionLinkClient;
49
+ workspaceId: string;
50
+ sessionId: string;
51
+ sandboxFiles?: boolean;
52
+ }): OpenGeniLinkResolver;
53
+ /** An editable artifact or Site to open in a host-mounted viewer. */
54
+ export type OpenGeniViewerTarget = Readonly<{
55
+ kind: "editable-artifact" | "site";
56
+ artifactId: string;
57
+ /** The link text the agent wrote, until the viewer loads the real title. */
58
+ title?: string | undefined;
59
+ }>;
60
+ /**
61
+ * "Open in host viewer": resolve agent links to editable artifacts and Sites
62
+ * in this workspace to `open(target)`, for example to mount
63
+ * `SessionArtifactViewer` beside the conversation. Other targets fall through.
64
+ */
65
+ export declare function viewerLinkResolver(input: {
66
+ workspaceId: string;
67
+ open: (target: OpenGeniViewerTarget) => void;
68
+ }): OpenGeniLinkResolver;
@@ -0,0 +1,6 @@
1
+ import type { SVGProps } from "react";
2
+ /**
3
+ * Simple Icons, CC0; https://github.com/simple-icons/simple-icons
4
+ * Source: https://raw.githubusercontent.com/simple-icons/simple-icons/develop/icons/openrouter.svg
5
+ */
6
+ export declare function OpenRouterMark(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { type ReactNode } from "react";
2
2
  export type PierreFileProps = {
3
- /** Workspace-relative path (used for the header + language inference). */
3
+ /** Target path (used for the header + language inference). */
4
4
  path: string;
5
5
  /** The decoded text contents. */
6
6
  contents: string;
@@ -0,0 +1,2 @@
1
+ /** Private loading surface: never receives or executes the unfinished fence. */
2
+ export declare function PreviewLoading(): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * One presentation rule for a queued item, shared by the full queue and the
3
+ * compact session-chrome dock so the two cannot drift. A turn with an empty
4
+ * prompt and timeline annotations is valid content; an item with neither is a
5
+ * malformed or legacy object that gets an explicit fallback, never a blank row.
6
+ */
7
+ export type QueueItemContent = "text" | "annotations" | "unavailable";
8
+ export declare const QUEUE_ITEM_CONTENT_UNAVAILABLE = "Content unavailable";
9
+ export declare function queueItemContent(text: string, annotationCount: number): QueueItemContent;
@@ -1,5 +1,6 @@
1
1
  import { type UseSandboxFilesResult } from "../hooks/use-sandbox-files.js";
2
2
  import type { UseSandboxGitResult } from "../hooks/use-sandbox-git.js";
3
+ import { type FileNodeVisibilityPredicate } from "../file-node-visibility.js";
3
4
  export type SandboxFilesProps = {
4
5
  /** From `useSandboxFiles(...)`. */
5
6
  files: UseSandboxFilesResult;
@@ -19,8 +20,16 @@ export type SandboxFilesProps = {
19
20
  * dock warms the box on this so the save lands fast; opening/reading never fires
20
21
  * it. Browsing the tree/diff must not warm a box. */
21
22
  onEditIntent?: (() => void) | undefined;
22
- /** A guarded diff path routed here by the parent workspace. */
23
+ /** Restore the file last viewed in this task. Invalid/missing paths still
24
+ * surface the ordinary file-view error instead of changing files silently. */
25
+ initialSelectedPath?: string | null | undefined;
26
+ onSelectedPathChange?: ((path: string | null) => void) | undefined;
27
+ /** Presentation-only node filter shared with the tree and selected-file view. */
28
+ isNodeVisible?: FileNodeVisibilityPredicate | undefined;
29
+ /** A deliberate file-open path routed here by the parent workspace. */
23
30
  requestedPath?: string | undefined;
31
+ /** 1-based line to reveal after `requestedPath` opens. */
32
+ requestedLine?: number | null | undefined;
24
33
  /** Identity for one guarded-file request. Increment this when the same path is
25
34
  * deliberately requested again; it also lets a pending request be consumed
26
35
  * without overriding later manual tree navigation. Defaults to the path. */
@@ -34,6 +43,8 @@ export type SandboxFilesProps = {
34
43
  workspaceWaking?: boolean | undefined;
35
44
  /** Whether live reads are currently authoritative. */
36
45
  liveWorkspaceReady?: boolean | undefined;
46
+ /** Failed live negotiation; never present a failure as an ongoing wake. */
47
+ workspaceError?: Error | null | undefined;
37
48
  /** Deliberately wake the machine to read content absent from the capture. */
38
49
  onWakeWorkspace?: (() => void) | undefined;
39
50
  themeType?: "dark" | "light" | undefined;
@@ -46,4 +57,4 @@ export type SandboxFilesProps = {
46
57
  * surface deliberately does NOT replicate the changed-files list, and does not
47
58
  * diff here — one job per tab). The agent commits; the human reviews.
48
59
  */
49
- export declare function SandboxFiles({ files, git, fileSystemAvailable, usePierre, editable, onEditIntent, requestedPath, requestedPathRequestId, requestedPathReady, workspaceResting, workspaceWaking, liveWorkspaceReady, onWakeWorkspace, themeType, className, }: SandboxFilesProps): import("react").JSX.Element;
60
+ export declare function SandboxFiles({ files, git, fileSystemAvailable, usePierre, editable, onEditIntent, initialSelectedPath, onSelectedPathChange, isNodeVisible, requestedPath, requestedLine, requestedPathRequestId, requestedPathReady, workspaceResting, workspaceWaking, liveWorkspaceReady, workspaceError, onWakeWorkspace, themeType, className, }: SandboxFilesProps): import("react").JSX.Element;
@@ -3,6 +3,7 @@ import type { SessionEvent } from "@opengeni/sdk";
3
3
  import { type ClientOverride } from "../provider.js";
4
4
  import type { BrowserFrameWebSocketFactory } from "../hooks/use-browser-frame-stream.js";
5
5
  import type { ComputerFrameWebSocketFactory } from "../hooks/use-computer-frame-stream.js";
6
+ import type { FileNodeVisibilityPredicate } from "../file-node-visibility.js";
6
7
  import { type MachineChip } from "../hooks/use-machine-chip.js";
7
8
  import type { MachineView } from "../types/machines.js";
8
9
  import { type WorkspaceDockProps, type WorkspaceTab } from "./workspace-dock.js";
@@ -38,7 +39,7 @@ export declare function initialWorkspaceTab(events: SessionEvent[] | undefined,
38
39
  export type WorkspaceMachine = {
39
40
  /** Whether at least one built-in workbench surface is enabled. */
40
41
  enabled: boolean;
41
- /** The derived live/waking/offline chip model. */
42
+ /** The derived live/waking/sleeping-or-offline chip model. */
42
43
  chip: MachineChip;
43
44
  /** The machine these surfaces are bound to (the Modal group box or a
44
45
  * self-hosted machine), or null while the fleet is still resolving. */
@@ -72,14 +73,27 @@ export type UseSandboxWorkspaceTabsOptions = ClientOverride & {
72
73
  browserWebSocketFactory?: BrowserFrameWebSocketFactory | undefined;
73
74
  /** Alternate Computer frame transport for non-browser runtimes and deterministic tests. */
74
75
  computerWebSocketFactory?: ComputerFrameWebSocketFactory | undefined;
76
+ /** Host-owned setup page or store listing for attaching an existing Chrome profile. */
77
+ browserExtensionSetupUrl?: string | undefined;
75
78
  /** File requested by a Changes guard. The Files surface defers the read until
76
79
  * the sandbox is live, then reveals this path. */
77
80
  requestedFilePath?: string | null | undefined;
78
81
  /** Unique identity for `requestedFilePath`, including repeated requests for the
79
82
  * same path. */
80
83
  requestedFileRequestId?: string | number | null | undefined;
84
+ /** 1-based line to reveal after `requestedFilePath` opens. */
85
+ requestedFileLine?: number | null | undefined;
81
86
  /** Route a guarded diff into the host's Files tab. */
82
87
  onOpenFile?: ((path: string) => void) | undefined;
88
+ /** Restore and report navigation inside the built-in workbench surfaces. */
89
+ initialFilePath?: string | null | undefined;
90
+ onFilePathChange?: ((path: string | null) => void) | undefined;
91
+ /** Presentation-only filter for Files tree nodes and selected-file viewing. */
92
+ isFileNodeVisible?: FileNodeVisibilityPredicate | undefined;
93
+ initialBrowserSessionId?: string | null | undefined;
94
+ onBrowserSessionIdChange?: ((browserSessionId: string | null) => void) | undefined;
95
+ initialComputerSessionId?: string | null | undefined;
96
+ onComputerSessionIdChange?: ((computerSessionId: string | null) => void) | undefined;
83
97
  /** Navigate the host dock to one exact linked ComputerSession. */
84
98
  onOpenComputerSession?: ((computerSessionId: string) => void) | undefined;
85
99
  requestedComputerSessionId?: string | null | undefined;
@@ -89,7 +103,8 @@ export type UseSandboxWorkspaceTabsResult = {
89
103
  /** Changes | Files | Terminal | Browser | Desktop (capability-gated where noted). */
90
104
  tabs: WorkspaceTab[];
91
105
  /** The source-driven default tab: Changes when the first authoritative capture
92
- * or live Git result has changes, else Files (a host `initialTab` overrides).
106
+ * has changes, else Files (a host `initialTab` overrides). Choosing a tab
107
+ * never performs hidden live workspace I/O.
93
108
  * null while that source resolves, or permanently when neither Changes nor
94
109
  * Files is enabled; the choice latches once. */
95
110
  defaultTab: string | null;
@@ -119,14 +134,39 @@ export type SandboxWorkspaceProps = ClientOverride & {
119
134
  /** Host tabs injected AFTER the workbench tabs (e.g. a "Debug" tab). */
120
135
  trailingTabs?: WorkspaceTab[] | undefined;
121
136
  /** Override the pre-paint default tab (e.g. a host landing tab id). When
122
- * omitted the workbench decides from capture, then live Git when no capture exists. */
137
+ * omitted the workbench decides from the durable workspace capture. */
123
138
  initialTab?: string | undefined;
139
+ onActiveTabChange?: ((activeTab: string) => void) | undefined;
140
+ /** Open a built-in or host-injected tab. A new requestId reopens the same tab. */
141
+ openTabRequest?: {
142
+ tab: string;
143
+ requestId: number;
144
+ } | null | undefined;
145
+ initialFilePath?: string | null | undefined;
146
+ onFilePathChange?: ((path: string | null) => void) | undefined;
147
+ /** Presentation-only filter for Files tree nodes and selected-file viewing. */
148
+ isFileNodeVisible?: FileNodeVisibilityPredicate | undefined;
149
+ /**
150
+ * Host request to open a workspace file (and optional line) in Files. A new
151
+ * `requestId` re-opens even the same path.
152
+ */
153
+ openFileRequest?: {
154
+ path: string;
155
+ line?: number | null;
156
+ requestId: number;
157
+ } | null | undefined;
158
+ initialBrowserSessionId?: string | null | undefined;
159
+ onBrowserSessionIdChange?: ((browserSessionId: string | null) => void) | undefined;
160
+ initialComputerSessionId?: string | null | undefined;
161
+ onComputerSessionIdChange?: ((computerSessionId: string | null) => void) | undefined;
124
162
  /** Host-routed notifications (no toast dependency in the package). */
125
163
  onNotify?: ((notification: WorkspaceNotification) => void) | undefined;
126
164
  /** Alternate Browser frame transport for non-browser runtimes and deterministic tests. */
127
165
  browserWebSocketFactory?: BrowserFrameWebSocketFactory | undefined;
128
166
  /** Alternate Computer frame transport for non-browser runtimes and deterministic tests. */
129
167
  computerWebSocketFactory?: ComputerFrameWebSocketFactory | undefined;
168
+ /** Host-owned setup page or store listing for attaching an existing Chrome profile. */
169
+ browserExtensionSetupUrl?: string | undefined;
130
170
  /** Controlled collapsed state for hosts with their own dock toggle. */
131
171
  collapsed?: boolean | undefined;
132
172
  onCollapsedChange?: ((collapsed: boolean) => void) | undefined;