@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
@@ -9,7 +9,7 @@ import type { PickerModelRow } from "../model-policy.js";
9
9
  import { OPEN_WORKSTREAM_CONTROL_EVENT } from "../workstream-control-event.js";
10
10
  export { OPEN_WORKSTREAM_CONTROL_EVENT };
11
11
  export type { ResponsiveBasis } from "../lib/composer-responsive-context.js";
12
- export type ComposerDelivery = Pick<ComposerState, "value" | "setValue" | "send" | "steer" | "sending" | "canSend" | "error" | "clearError">;
12
+ export type ComposerDelivery = Pick<ComposerState, "value" | "setValue" | "send" | "steer" | "sending" | "canSend" | "error" | "clearError" | "annotations" | "requestAnnotationReview">;
13
13
  export type ComposerDraftState = Pick<ComposerState, "draftConflict" | "draftSaving" | "resolveDraftConflict" | "restoredResources" | "removeRestoredResource">;
14
14
  export type ComposerControlState = Pick<ComposerState, "pause" | "pausing" | "resume" | "resumeScope" | "resuming">;
15
15
  export type ComposerControlLinks = {
@@ -28,10 +28,14 @@ export type ChatComposerMessages = {
28
28
  attachFiles: string;
29
29
  pauseAriaLabel: string;
30
30
  pauseTitle: string;
31
+ /** Stop control shown while a response runs (`runControl="stop"`). */
32
+ stopAriaLabel?: string | undefined;
33
+ stopTitle?: string | undefined;
31
34
  sendMessageAriaLabel: string;
32
35
  sendAndResumeAriaLabel: string;
33
36
  sendTitle: string;
34
37
  sendAndResumeTitle: string;
38
+ annotationNotesRequired: string;
35
39
  workspacePaused: string;
36
40
  pausedHere: string;
37
41
  parentBlocker: string;
@@ -56,6 +60,11 @@ export type ChatComposerMessages = {
56
60
  removeRestoredResource: (index: number) => string;
57
61
  uploading: string;
58
62
  uploadFailed: string;
63
+ previewAttachment: (name: string) => string;
64
+ previewUnavailable?: string | undefined;
65
+ attachmentPreviewLabel: string;
66
+ downloadAttachment: (name: string) => string;
67
+ closeAttachmentPreview: string;
59
68
  retryAttachment: (name: string) => string;
60
69
  retryUpload: string;
61
70
  removeAttachment: (name: string) => string;
@@ -77,7 +86,17 @@ export type ChatComposerMessages = {
77
86
  };
78
87
  export declare const defaultChatComposerMessages: ChatComposerMessages;
79
88
  export type ComposerSubmitMode = "queue" | "steer";
80
- export type ComposerSubmitBlocker = "disabled" | "attachment" | "sending" | "command" | "empty" | null;
89
+ export type ComposerSubmitBlocker = "disabled" | "attachment" | "sending" | "command" | "annotations" | "empty" | null;
90
+ /**
91
+ * How the composer offers run control.
92
+ * - `pause`: the workstream Pause control and paused-state strip (default; the
93
+ * OpenGeni console).
94
+ * - `stop`: a Stop control only while a response runs. Stopping pauses this
95
+ * conversation; the next message continues it, so people never see a paused
96
+ * state they have to resume. Pauses applied elsewhere still show.
97
+ * - `none`: no run control.
98
+ */
99
+ export type ComposerRunControl = "pause" | "stop" | "none";
81
100
  export type UseChatComposerControllerOptions = {
82
101
  delivery: ComposerDelivery;
83
102
  draft?: ComposerDraftState | undefined;
@@ -93,6 +112,10 @@ export type UseChatComposerControllerOptions = {
93
112
  onClearView?: (() => void) | undefined;
94
113
  onPaste?: ((event: ClipboardEvent<HTMLTextAreaElement>) => void) | undefined;
95
114
  messages?: Partial<ChatComposerMessages> | undefined;
115
+ /** Run control presentation. Defaults to `pause`. */
116
+ runControl?: ComposerRunControl | undefined;
117
+ /** A response is in progress; shows the Stop control under `runControl="stop"`. */
118
+ running?: boolean | undefined;
96
119
  };
97
120
  /**
98
121
  * Autosize a composer textarea up to `maxPx`. Never writes intermediate
@@ -107,7 +130,7 @@ export declare function applyComposerTextareaHeight(textarea: HTMLTextAreaElemen
107
130
  * delivery guards, keyboard routing, command interception, drag/drop, focus,
108
131
  * confirmation, and feedback state used by both the preset and primitives.
109
132
  */
110
- export declare function useChatComposerController({ delivery, draft, control, effectiveControl, queuedAheadCount, canControlWorkspace, controlLinks, disabled, attachments, commands, commandContext, onClearView, onPaste, messages: messageOverrides, }: UseChatComposerControllerOptions): {
133
+ export declare function useChatComposerController({ delivery, draft, control, effectiveControl, queuedAheadCount, canControlWorkspace, controlLinks, disabled, attachments, commands, commandContext, onClearView, onPaste, messages: messageOverrides, runControl, running, }: UseChatComposerControllerOptions): {
111
134
  id: string;
112
135
  rootRef: RefObject<HTMLDivElement | null>;
113
136
  textareaRef: RefObject<HTMLTextAreaElement | null>;
@@ -132,10 +155,13 @@ export declare function useChatComposerController({ delivery, draft, control, ef
132
155
  attachFiles: string;
133
156
  pauseAriaLabel: string;
134
157
  pauseTitle: string;
158
+ stopAriaLabel?: string | undefined;
159
+ stopTitle?: string | undefined;
135
160
  sendMessageAriaLabel: string;
136
161
  sendAndResumeAriaLabel: string;
137
162
  sendTitle: string;
138
163
  sendAndResumeTitle: string;
164
+ annotationNotesRequired: string;
139
165
  workspacePaused: string;
140
166
  pausedHere: string;
141
167
  parentBlocker: string;
@@ -160,6 +186,11 @@ export declare function useChatComposerController({ delivery, draft, control, ef
160
186
  removeRestoredResource: (index: number) => string;
161
187
  uploading: string;
162
188
  uploadFailed: string;
189
+ previewAttachment: (name: string) => string;
190
+ previewUnavailable?: string | undefined;
191
+ attachmentPreviewLabel: string;
192
+ downloadAttachment: (name: string) => string;
193
+ closeAttachmentPreview: string;
163
194
  retryAttachment: (name: string) => string;
164
195
  retryUpload: string;
165
196
  removeAttachment: (name: string) => string;
@@ -189,9 +220,12 @@ export declare function useChatComposerController({ delivery, draft, control, ef
189
220
  removeRestoredResource: ((index: number) => void) | undefined;
190
221
  resolveDraftConflict: ((choice: "keep_mine" | "use_remote") => Promise<void>) | undefined;
191
222
  hasControl: boolean;
223
+ runControl: ComposerRunControl;
224
+ running: boolean;
192
225
  pausing: boolean;
193
226
  resuming: boolean;
194
227
  pause: (reason?: string) => Promise<boolean>;
228
+ stop: () => Promise<boolean>;
195
229
  resume: (reason?: string) => Promise<boolean>;
196
230
  resumeScope: (option: EffectiveSessionControl["resumeOptions"][number]) => Promise<boolean>;
197
231
  paused: boolean;
@@ -219,7 +253,7 @@ export declare function useChatComposerController({ delivery, draft, control, ef
219
253
  handlePaste: (event: ClipboardEvent<HTMLTextAreaElement>) => void;
220
254
  handleFileChange: (event: ChangeEvent<HTMLInputElement>) => void;
221
255
  focusInput: () => void | undefined;
222
- setValue: (value: string) => void;
256
+ setValue: (next: string) => void;
223
257
  value: string;
224
258
  };
225
259
  export type ChatComposerController = ReturnType<typeof useChatComposerController>;
@@ -293,6 +327,13 @@ export type ComposerModelPickerProps = {
293
327
  export declare function ModelPicker({ models, rows, value, onChange, label, className, codexOnly, }: ComposerModelPickerProps): import("react").JSX.Element;
294
328
  export type ComposerPauseButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, OwnedButtonProps>;
295
329
  export declare const PauseButton: import("react").ForwardRefExoticComponent<ComposerPauseButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
330
+ export type ComposerStopButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, OwnedButtonProps>;
331
+ /**
332
+ * Stop the running response. Rendered only under `runControl="stop"` while a
333
+ * response runs; stopping pauses this conversation and the next message
334
+ * continues it.
335
+ */
336
+ export declare const StopButton: import("react").ForwardRefExoticComponent<ComposerStopButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
296
337
  export type ComposerSendButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, OwnedButtonProps>;
297
338
  export declare const SendButton: import("react").ForwardRefExoticComponent<ComposerSendButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
298
339
  export declare function Help(): import("react").JSX.Element;
@@ -17,8 +17,11 @@ export type ComputerViewerProps = EmbeddedComputerInteractionClientOverride & {
17
17
  /** Host navigation request for one exact ComputerSession. */
18
18
  requestedComputerSessionId?: string | null | undefined;
19
19
  requestedComputerRequestId?: string | number | null | undefined;
20
+ /** Restore and report the Desktop session selected in this task's dock. */
21
+ initialComputerSessionId?: string | null | undefined;
22
+ onComputerSessionIdChange?: ((computerSessionId: string | null) => void) | undefined;
20
23
  };
21
24
  /** Full ComputerSession surface: workspace discovery, peer switching, app/window/
22
25
  * screen navigation, semantic controls, exact-frame input, and live media. */
23
- export declare function ComputerViewer({ sessionId, enabled, className, onNotify, webSocketFactory, renderEmpty, requestedComputerSessionId, requestedComputerRequestId, ...override }: ComputerViewerProps): 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 | undefined;
26
+ export declare function ComputerViewer({ sessionId, enabled, className, onNotify, webSocketFactory, renderEmpty, requestedComputerSessionId, requestedComputerRequestId, initialComputerSessionId, onComputerSessionIdChange, ...override }: ComputerViewerProps): 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 | undefined;
24
27
  export declare function computerKey(event: Pick<KeyboardEvent<HTMLTextAreaElement>, "altKey" | "ctrlKey" | "key" | "metaKey" | "shiftKey">): string | null;
@@ -14,8 +14,10 @@ export type CopyButtonProps = {
14
14
  /**
15
15
  * Ghost icon copy control — no chrome box, no "Copy code" label.
16
16
  * Copy → check flash. Hover-reveal via `group/copy` on a parent.
17
+ * Keep unchanged controls out of parent message rerenders: mounting history
18
+ * already has to commit each new tooltip, without redoing the retained suffix.
17
19
  */
18
- export declare function CopyButton({ text, label, className, reveal, }: CopyButtonProps): import("react").JSX.Element;
20
+ export declare const CopyButton: import("react").MemoExoticComponent<({ text, label, className, reveal, }: CopyButtonProps) => import("react").JSX.Element>;
19
21
  /** Hover-reveal chrome around a message / turn so {@link CopyButton} can fade in. */
20
22
  export declare function CopyHoverFrame({ children, className, copyText, label, align, trailing, }: {
21
23
  children: ReactNode;
@@ -15,7 +15,7 @@ export type DesktopViewerProps = {
15
15
  /** Render the built-in Watching ⇄ Take control toggle (default true). */
16
16
  showControlToggle?: boolean | undefined;
17
17
  scaleViewport?: boolean | undefined;
18
- /** Custom RFB factory (tests / a WebRTC swap). Defaults to lazy @novnc/novnc. */
18
+ /** Custom RFB factory; otherwise enableDesktopViewer() supplies lazy noVNC. */
19
19
  rfbFactory?: DesktopRfbFactory | undefined;
20
20
  /** Authenticated controller protocols for proxied RFB transports. */
21
21
  webSocketProtocols?: string[] | undefined;
@@ -1,3 +1,4 @@
1
+ import type { ResourceAuthorityScope } from "@opengeni/sdk";
1
2
  /** The machine identity surfaced to the approver, from the device-flow start. */
2
3
  export type EnrollmentConsentMachine = {
3
4
  /** Human-friendly name (hostname by default). */
@@ -16,8 +17,10 @@ export type EnrollmentConsentProps = {
16
17
  userCode: string;
17
18
  machine: EnrollmentConsentMachine;
18
19
  phase?: EnrollmentConsentPhase | undefined;
19
- /** Approve with the chosen screen-control consent. */
20
- onApprove?: ((allowScreenControl: boolean) => void) | undefined;
20
+ /** Whether this caller may publish the machine to the whole organization. */
21
+ allowOrganizationScope?: boolean | undefined;
22
+ /** Approve with the chosen screen-control consent and explicit access scope. */
23
+ onApprove?: ((allowScreenControl: boolean, scope: ResourceAuthorityScope) => void) | undefined;
21
24
  onDeny?: (() => void) | undefined;
22
25
  /** Error message when phase === "error". */
23
26
  errorMessage?: string | undefined;
@@ -30,4 +33,4 @@ export type EnrollmentConsentProps = {
30
33
  * The danger framing is deliberate (§18 hardening: whole-machine = loud consent),
31
34
  * never buried. Renders review / approving / approved / denied / error phases.
32
35
  */
33
- export declare function EnrollmentConsent({ userCode, machine, phase, onApprove, onDeny, errorMessage, className, }: EnrollmentConsentProps): import("react").JSX.Element;
36
+ export declare function EnrollmentConsent({ userCode, machine, phase, allowOrganizationScope, onApprove, onDeny, errorMessage, className, }: EnrollmentConsentProps): import("react").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { type ReactNode } from "react";
2
2
  import type { FileTreeNode, UseSandboxFilesResult } from "../hooks/use-sandbox-files.js";
3
+ import { type FileNodeVisibilityPredicate } from "../file-node-visibility.js";
3
4
  export type FileBrowserProps = {
4
5
  /** From `useSandboxFiles(...)`. */
5
6
  result: UseSandboxFilesResult;
@@ -11,6 +12,14 @@ export type FileBrowserProps = {
11
12
  /** Selection callback for the preview pane. */
12
13
  onSelectFile?: ((path: string) => void) | undefined;
13
14
  selectedPath?: string | undefined;
15
+ /** Presentation-only node filter. Hidden parents never expose their children. */
16
+ isNodeVisible?: FileNodeVisibilityPredicate | undefined;
17
+ /** Deliberately reveal this selected path by lazily opening every loaded
18
+ * ancestor and scrolling its row into view. The path is opaque and is never
19
+ * normalized or re-rooted here. */
20
+ revealPath?: string | undefined;
21
+ /** Increment/change to reveal the same path again after a user collapses it. */
22
+ revealPathRequestId?: string | number | undefined;
14
23
  /** Render-prop to theme/replace a row entirely (the Pierre-swap escape hatch). */
15
24
  renderNode?: ((node: FileTreeNode, depth: number, expanded: boolean) => ReactNode) | undefined;
16
25
  /** Shown when the tree is empty (no files / not loaded yet). */
@@ -44,4 +53,4 @@ export type FileBrowserProps = {
44
53
  * `renderNode` is still honoured as the Pierre-swap escape hatch for the row
45
54
  * chrome; the manager scaffolding (toolbar, dnd, menu, inline inputs) wraps it.
46
55
  */
47
- export declare function FileBrowser({ result, fallback, onSelectFile, selectedPath, renderNode, emptyState, editable, confirmDelete, className, }: FileBrowserProps): import("react").JSX.Element;
56
+ export declare function FileBrowser({ result, fallback, onSelectFile, selectedPath, isNodeVisible, revealPath, revealPathRequestId, renderNode, emptyState, editable, confirmDelete, className, }: FileBrowserProps): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
- import type { Session } from "@opengeni/sdk";
1
+ import { type Session } from "@opengeni/sdk";
2
2
  export type FleetTileProps = {
3
3
  session: Session;
4
- /** Overrides the derived title (metadata.title/name, else the initial message). */
4
+ /** Overrides the derived title (durable title, metadata, prompt preview, or safe fallback). */
5
5
  title?: string | undefined;
6
6
  /** Extra line under the title — e.g. "drift check" or the worker's task. */
7
7
  subtitle?: string | undefined;
@@ -0,0 +1,26 @@
1
+ import type { SVGProps } from "react";
2
+ /**
3
+ * MIT License
4
+ *
5
+ * Copyright (c) 2023 LobeHub
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ * Source: https://raw.githubusercontent.com/lobehub/lobe-icons/master/src/Grok/components/Mono.tsx
25
+ */
26
+ export declare function GrokMark(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { HumanInputAnswer, HumanInputQuestion, SessionHumanInputRequest, SubmitHumanInputResponseRequest } from "@opengeni/sdk";
1
+ import type { HumanInputAnswer, HumanInputQuestion, SkillRecord, SessionHumanInputRequest, SubmitHumanInputResponseRequest } from "@opengeni/sdk";
2
2
  import { type ReactNode } from "react";
3
3
  export type HumanInputAnswerDraft = {
4
4
  values: string[];
@@ -28,6 +28,8 @@ export type HumanInputFormMessages = {
28
28
  };
29
29
  export declare const defaultHumanInputFormMessages: HumanInputFormMessages;
30
30
  export type HumanInputFormProps = {
31
+ /** Scoped immutable revision reader. Saving a Skill fails closed without its full preview. */
32
+ loadSkillReview?: ((reference: NonNullable<HumanInputQuestion["skillReview"]>) => Promise<SkillRecord>) | undefined;
31
33
  request: Pick<SessionHumanInputRequest, "id" | "questions" | "allowSkip" | "expiresAt">;
32
34
  onSubmit: (response: SubmitHumanInputResponseRequest) => void | Promise<void>;
33
35
  submitting?: boolean | undefined;
@@ -42,6 +44,12 @@ export type HumanInputFormProps = {
42
44
  autoFocus?: boolean | undefined;
43
45
  /** Start collapsed to a compact bar (drafts still retained). */
44
46
  defaultCollapsed?: boolean | undefined;
47
+ /**
48
+ * Answer a yes/no decision (one required choice between an accept and a
49
+ * decline option, without Other) with two buttons instead of a radio list.
50
+ * Off by default; embedded conversations turn it on.
51
+ */
52
+ decisionButtons?: boolean | undefined;
45
53
  className?: string | undefined;
46
54
  };
47
55
  /**
@@ -50,7 +58,18 @@ export type HumanInputFormProps = {
50
58
  * options, sticky ask/submit chrome. Hosts can replace title/description or
51
59
  * use `useHumanInputRequests` headlessly.
52
60
  */
53
- export declare function HumanInputForm({ request, onSubmit, submitting, error, title, description, progressLabel, submitLabel, skipLabel, messages: messageOverrides, autoFocus, defaultCollapsed, className, }: HumanInputFormProps): import("react").JSX.Element;
61
+ export declare function HumanInputForm(props: HumanInputFormProps): import("react").JSX.Element;
62
+ /**
63
+ * A yes/no decision (an approval asked as a question): one required
64
+ * single-choice question with exactly an accept and a decline option. It is
65
+ * answered with two buttons; an "Other" free-text answer has no meaning for it,
66
+ * and the composer still accepts a different instruction.
67
+ */
68
+ export declare function binaryDecision(questions: readonly HumanInputQuestion[]): {
69
+ question: HumanInputQuestion;
70
+ accept: HumanInputQuestion["options"][number];
71
+ decline: HumanInputQuestion["options"][number];
72
+ } | null;
54
73
  export declare function answersFromDrafts(questions: HumanInputQuestion[], drafts: Record<string, HumanInputAnswerDraft>, messageOverrides?: Partial<HumanInputFormMessages>): {
55
74
  answers: HumanInputAnswer[];
56
75
  errors: Record<string, string>;
@@ -1,6 +1,7 @@
1
1
  import type { SessionHumanInputRequest, SubmitHumanInputResponseRequest } from "@opengeni/sdk";
2
- import { type HumanInputFormMessages } from "./human-input-form.js";
2
+ import { type HumanInputFormMessages, type HumanInputFormProps } from "./human-input-form.js";
3
3
  export type HumanInputSurfaceProps = {
4
+ loadSkillReview?: HumanInputFormProps["loadSkillReview"];
4
5
  requests: SessionHumanInputRequest[];
5
6
  onSubmit: (requestId: string, response: SubmitHumanInputResponseRequest) => void | Promise<void>;
6
7
  respondingRequestId?: string | null | undefined;
@@ -9,11 +10,13 @@ export type HumanInputSurfaceProps = {
9
10
  className?: string | undefined;
10
11
  /** Forwarded to the active form. Defaults true. */
11
12
  autoFocus?: boolean | undefined;
13
+ /** Forwarded to the active form: yes/no decisions as two buttons. */
14
+ decisionButtons?: boolean | undefined;
12
15
  };
13
16
  /**
14
17
  * One decision shell for pending structured human-input requests. Parallel
15
- * freezes are shown one at a time (oldest first) as “N of M”; Continue/Skip
18
+ * freezes are shown one at a time (oldest first) as “N of M”; Send answers/Skip
16
19
  * settles the active request and the next remaining set advances automatically
17
20
  * when the authoritative pending list updates.
18
21
  */
19
- export declare function HumanInputSurface({ requests, onSubmit, respondingRequestId, error, messages, className, autoFocus, }: HumanInputSurfaceProps): import("react").JSX.Element | null;
22
+ export declare function HumanInputSurface({ requests, onSubmit, loadSkillReview, respondingRequestId, error, messages, className, autoFocus, decisionButtons, }: HumanInputSurfaceProps): import("react").JSX.Element | null;
@@ -5,6 +5,9 @@ export type MachineCardProps = {
5
5
  onAttach?: ((machine: MachineView) => void) | undefined;
6
6
  /** Whether an attach/swap is currently in flight (disables the affordance). */
7
7
  attaching?: boolean | undefined;
8
+ /** Start/retry the exact signed Connected Machine agent update. */
9
+ onUpdateAgent?: ((machine: MachineView) => void) | undefined;
10
+ updatingAgent?: boolean | undefined;
8
11
  /** Short recent history (e.g. 15m) — drives the card's CPU trend + preview. */
9
12
  series?: MetricSample[] | undefined;
10
13
  /** Open the full per-machine telemetry detail. Makes the whole card actionable. */
@@ -18,4 +21,4 @@ export type MachineCardProps = {
18
21
  * freshness, and attach/swap. The whole card opens the telemetry detail when
19
22
  * `onOpenDetail` is wired. The session's active sandbox carries an accent edge.
20
23
  */
21
- export declare function MachineCard({ machine, onAttach, attaching, series, onOpenDetail, now, className, }: MachineCardProps): import("react").JSX.Element;
24
+ export declare function MachineCard({ machine, onAttach, attaching, onUpdateAgent, updatingAgent, series, onOpenDetail, now, className, }: MachineCardProps): import("react").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import type { MachineView, MetricSample } from "../../types/machines.js";
2
2
  import { type MetricWindow } from "./series.js";
3
+ import type { UpdateMachineOperationPolicyRequest } from "@opengeni/sdk";
3
4
  export type MachineDetailProps = {
4
5
  machine: MachineView;
5
6
  /** Downsampled history for the active window (from `fetchSeries`). */
@@ -10,7 +11,9 @@ export type MachineDetailProps = {
10
11
  onBack?: (() => void) | undefined;
11
12
  /** Open the workspace-admin removal confirmation for a self-hosted machine. */
12
13
  onRemove?: ((machine: MachineView) => void) | undefined;
14
+ onUpdateOperationPolicy?: ((machine: MachineView, request: UpdateMachineOperationPolicyRequest) => Promise<unknown>) | undefined;
15
+ updatingOperationPolicy?: boolean | undefined;
13
16
  now?: number | undefined;
14
17
  className?: string | undefined;
15
18
  };
16
- export declare function MachineDetail({ machine, series, window, onWindowChange, loadingSeries, onBack, onRemove, now, className, }: MachineDetailProps): import("react").JSX.Element;
19
+ export declare function MachineDetail({ machine, series, window, onWindowChange, loadingSeries, onBack, onRemove, onUpdateOperationPolicy, updatingOperationPolicy, now, className, }: MachineDetailProps): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import type { MachineOperationPolicy, UpdateMachineOperationPolicyRequest } from "@opengeni/sdk";
2
+ export type MachineOperationPolicyEditorProps = {
3
+ policy: MachineOperationPolicy;
4
+ memorySupported: boolean;
5
+ cpuSupported: boolean;
6
+ saving?: boolean | undefined;
7
+ onSave: (request: UpdateMachineOperationPolicyRequest) => Promise<unknown> | unknown;
8
+ };
9
+ /** Exact editor for the optional per-enrollment command resource policy. Blank
10
+ * values remain genuinely unrestricted; CPU is a period-independent ratio. */
11
+ export declare function MachineOperationPolicyEditor({ policy, memorySupported, cpuSupported, saving, onSave, }: MachineOperationPolicyEditorProps): import("react").JSX.Element;
@@ -9,6 +9,8 @@ export type MachinesDashboardProps = {
9
9
  onAttach?: ((machine: MachineView) => void) | undefined;
10
10
  /** The sandbox id currently being attached/swapped to (disables that card). */
11
11
  attachingSandboxId?: string | null | undefined;
12
+ onUpdateAgent?: ((machine: MachineView) => void) | undefined;
13
+ updatingEnrollmentId?: string | null | undefined;
12
14
  /** Short recent history per machine (keyed by sandboxId) — drives card sparklines. */
13
15
  seriesByMachine?: Record<string, MetricSample[]> | undefined;
14
16
  /** Open the per-machine telemetry detail (makes each card actionable). */
@@ -27,4 +29,4 @@ export type MachinesDashboardProps = {
27
29
  * machines → connect CTA), a load error, and the populated grid. The component
28
30
  * is purely presentational — feed it `MachinesResponse` data via `useMachines`.
29
31
  */
30
- export declare function MachinesDashboard({ machines, activeSandboxId, loading, error, onAttach, attachingSandboxId, seriesByMachine, onOpenDetail, now, onEnroll, onRefresh, className, }: MachinesDashboardProps): import("react").JSX.Element;
32
+ export declare function MachinesDashboard({ machines, activeSandboxId, loading, error, onAttach, attachingSandboxId, onUpdateAgent, updatingEnrollmentId, seriesByMachine, onOpenDetail, now, onEnroll, onRefresh, className, }: MachinesDashboardProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export declare function markdownTableWidth({ columnLeft, columnWidth, contentLeft, contentRight, preferredWidth, }: {
2
+ columnLeft: number;
3
+ columnWidth: number;
4
+ contentLeft: number;
5
+ contentRight: number;
6
+ preferredWidth: number;
7
+ }): number;
8
+ /** Loaded only for assistant tables. Keep prose and nested scroll owners intact. */
9
+ export declare function observeMarkdownTableLayout(wrapper: HTMLDivElement, table: HTMLTableElement): {
10
+ measure: () => void;
11
+ disconnect: () => void;
12
+ } | undefined;
@@ -1,3 +1,6 @@
1
+ import { type ReactNode } from "react";
2
+ import { type TimelineSearchTarget } from "./timeline-search.js";
3
+ import { type OpenGeniLinkResolver } from "./open-geni-links.js";
1
4
  /**
2
5
  * The default renderer for chat message bodies in {@link MessageTimeline}.
3
6
  *
@@ -12,7 +15,23 @@
12
15
  * the tokens land. Consumers who want a different renderer can still pass
13
16
  * `renderMessageText` to `MessageTimeline` to override this entirely.
14
17
  */
18
+ export type MarkdownInteractiveBlock = {
19
+ kind: "html" | "site";
20
+ content: string;
21
+ };
15
22
  export type MarkdownProps = {
23
+ /** Resolve a retained-file reference to the host's authenticated artifact page. */
24
+ artifactHref?: ((artifactId: string) => string) | undefined;
25
+ /** Reveals a bounded source excerpt; closing Find retains it until explicit restore. */
26
+ searchTarget?: TimelineSearchTarget | null | undefined;
27
+ renderImage?: ((image: {
28
+ src: string;
29
+ alt: string;
30
+ }) => ReactNode) | undefined;
31
+ /** Show alt text without loading image URLs (e.g. in search previews). */
32
+ suppressImages?: boolean | undefined;
33
+ /** Host opt-in for assistant-authored interactive fences. */
34
+ renderInteractiveBlock?: ((block: MarkdownInteractiveBlock) => ReactNode) | undefined;
16
35
  children: string;
17
36
  className?: string | undefined;
18
37
  /**
@@ -24,8 +43,33 @@ export type MarkdownProps = {
24
43
  * transition — that blinked the whole document).
25
44
  */
26
45
  streaming?: boolean | undefined;
46
+ /**
47
+ * Open a session-local file link in the host's Files surface. The path is the
48
+ * exact decoded `sandbox:` payload; `line`, when present, is 1-based.
49
+ */
50
+ onSandboxFile?: ((path: string, line?: number) => void | Promise<void>) | undefined;
51
+ /**
52
+ * Resolve OpenGeni object links (`artifact:`, `sandbox:`, editable
53
+ * artifacts, Sites) to a host URL or action. Asked before any
54
+ * {@link OpenGeniLinkProvider} above this body; `artifactHref` and
55
+ * `onSandboxFile` still win for their own kinds.
56
+ */
57
+ resolveLink?: OpenGeniLinkResolver | undefined;
58
+ };
59
+ /** Exact target path plus optional 1-based line from a markdown href. */
60
+ export type SandboxFileLocation = {
61
+ path: string;
62
+ line: number | null;
27
63
  };
28
- declare function MarkdownImpl({ children, className, streaming }: MarkdownProps): import("react").JSX.Element;
64
+ /**
65
+ * Parse an OpenGeni `sandbox:` application href (plus the historical bare
66
+ * `/workspace/...` form). The decoded path is intentionally opaque here:
67
+ * target selection, path policy, and filesystem authority belong to the
68
+ * session-aware host and its FileSystem boundary.
69
+ */
70
+ export declare function sandboxFileLocationFromHref(href: string | undefined): SandboxFileLocation | null;
71
+ /** Return the exact decoded path for a supported sandbox-link href. */
72
+ export declare function sandboxFilePathFromHref(href: string | undefined): string | null;
73
+ export declare function retainedImageId(src: string): string | null;
29
74
  /** Memoized so streaming re-renders of the parent don't re-parse settled bodies. */
30
- export declare const Markdown: import("react").MemoExoticComponent<typeof MarkdownImpl>;
31
- export {};
75
+ export declare const Markdown: import("react").MemoExoticComponent<(props: MarkdownProps) => import("react").JSX.Element>;