@opengeni/react 1.0.1 → 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 +651 -21
  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 +6 -3
  302. package/dist/realtime.js +133 -74
  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 +133 -46
  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
@@ -8,6 +8,8 @@ export type UseFileAttachmentsOptions = EmbeddedFileAttachmentClientOverride & {
8
8
  * UseFileAttachmentsResult.addFiles} (the explicit picker / drop path)
9
9
  * bypasses it.
10
10
  */
11
+ /** Retain original uploads in the chat owner’s personal scope when private. */
12
+ scope?: "workspace" | "personal";
11
13
  pasteFilter?: ((file: File) => boolean) | undefined;
12
14
  };
13
15
  export type FileAttachment = {
@@ -20,7 +22,11 @@ export type FileAttachment = {
20
22
  file?: FileAsset | undefined;
21
23
  /** Object-URL for an inline preview; minted for `image/*` files only. */
22
24
  previewUrl?: string | undefined;
25
+ /** Stable SDK failure code for UI behavior that must not parse error copy. */
26
+ errorCode?: "secure_context_required" | undefined;
23
27
  error?: string | undefined;
28
+ /** Original diagnostic failure; presentation copy is kept separately in `error`. */
29
+ errorCause?: unknown;
24
30
  };
25
31
  export type UseFileAttachmentsResult = {
26
32
  attachments: FileAttachment[];
@@ -45,12 +51,25 @@ export type UseFileAttachmentsResult = {
45
51
  }) => void;
46
52
  /** Restore already-ready server assets without recreating browser-local bytes. */
47
53
  restoreReadyFiles: (files: Iterable<FileAsset>) => void;
54
+ /**
55
+ * Resolve a ready image's short-lived server preview URL on demand. Optional
56
+ * for upload-only embedded clients; local object-URL previews remain usable
57
+ * without it.
58
+ */
59
+ loadPreview?: ((id: string, signal?: AbortSignal) => Promise<string | undefined>) | undefined;
48
60
  /**
49
61
  * Re-run the upload for a `failed` attachment, in place (same id, same
50
62
  * source file). No-op for an id that isn't a known failed upload.
51
63
  */
52
64
  retry: (id: string) => void;
53
- /** Remove one attachment; revokes its object-URL. */
65
+ /**
66
+ * Keep an attachment's object-URL alive for a consumer that outlives its
67
+ * queue entry (for example, an open route-level lightbox). The returned
68
+ * release is idempotent; pending revocation finishes after the last holder
69
+ * releases. Returns `undefined` when the attachment has no local preview.
70
+ */
71
+ retainPreview: (id: string) => (() => void) | undefined;
72
+ /** Remove one attachment; revokes its object-URL after retained users finish. */
54
73
  remove: (id: string) => void;
55
74
  /**
56
75
  * Remove only finalized files whose durable ids were accepted by a send.
@@ -58,7 +77,7 @@ export type UseFileAttachmentsResult = {
58
77
  * next message.
59
78
  */
60
79
  removeReadyFiles: (fileIds: Iterable<string>) => void;
61
- /** Remove all attachments and revoke every object-URL. */
80
+ /** Remove all attachments and revoke every unretained object-URL. */
62
81
  clear: () => void;
63
82
  };
64
83
  /**
@@ -1,11 +1,11 @@
1
1
  import type { MachineState } from "@opengeni/sdk";
2
2
  import type { SessionCapabilitiesState } from "./use-session-capabilities.js";
3
- /** The one truthful machine indicator. Honest staleness beats
4
- * fake liveness: a cold/asleep box reads "offline — as of <time>", never "live". */
3
+ /** The one truthful machine indicator. Managed cold compute is sleeping; a
4
+ * Connected Machine that is genuinely unreachable remains offline. */
5
5
  export type MachineChipState = "live" | "waking" | "offline";
6
6
  export type MachineChip = {
7
7
  state: MachineChipState;
8
- /** A ready-to-render label ("Live" / "Waking…" / "Offline — as of 3m ago"). */
8
+ /** A ready-to-render label ("Live" / "Waking…" / "Sleeping · saved 3m ago"). */
9
9
  label: string;
10
10
  /** The capture time backing an offline/stale label (ISO), or null. M4 may
11
11
  * reformat this; `label` already embeds a relative form. */
@@ -1,6 +1,12 @@
1
- import type { RemoveEnrollmentRequest, RemoveEnrollmentResponse, SwapActiveSandboxResponse } from "@opengeni/sdk";
1
+ import type { RemoveEnrollmentRequest, RemoveEnrollmentResponse, MachineOperationPolicy, SwapActiveSandboxResponse, UpdateMachineOperationPolicyRequest, UpdateMachineAgentResponse } from "@opengeni/sdk";
2
2
  import { type ClientOverride } from "../provider.js";
3
3
  import type { MachinesResponse, MachineView, MetricSample } from "../types/machines.js";
4
+ /** Dashboard list: cheap heartbeat read, keep the pill reasonably fresh. */
5
+ export declare const MACHINES_DASHBOARD_POLL_MS = 10000;
6
+ /** Session surfaces share one poll for the same workspace+session. */
7
+ export declare const MACHINES_SESSION_POLL_MS = 15000;
8
+ /** Composer polls after the first load shows a machine, or to retry a real error. */
9
+ export declare const MACHINES_COMPOSER_POLL_MS = 30000;
4
10
  /**
5
11
  * The slice of the SDK client the Machines surface needs. The method NAMES +
6
12
  * SIGNATURES match M10's `OpenGeniClient` (`listMachines`, `machineMetricsSeries`)
@@ -29,6 +35,10 @@ export type MachinesClientLike = {
29
35
  }) => Promise<MetricSample[]>;
30
36
  /** POST .../enrollments/:enrollmentId/revoke — workspace-admin removal. */
31
37
  removeEnrollment?: (workspaceId: string, enrollmentId: string, request?: RemoveEnrollmentRequest) => Promise<RemoveEnrollmentResponse>;
38
+ /** POST .../machines/:enrollmentId/update — signed, generation-fenced update. */
39
+ updateMachineAgent?: (workspaceId: string, enrollmentId: string) => Promise<UpdateMachineAgentResponse>;
40
+ /** PATCH .../machines/:enrollmentId/operation-policy — revision-fenced policy. */
41
+ updateMachineOperationPolicy?: (workspaceId: string, enrollmentId: string, request: UpdateMachineOperationPolicyRequest) => Promise<MachineOperationPolicy>;
32
42
  /**
33
43
  * POST .../sessions/:sessionId/active-sandbox — swap the session's active
34
44
  * sandbox to a machine. The default swap path; the real SDK client provides it.
@@ -67,6 +77,14 @@ export type UseMachinesResult = {
67
77
  remove: (enrollmentId: string, request?: RemoveEnrollmentRequest) => Promise<RemoveEnrollmentResponse | null>;
68
78
  canRemove: boolean;
69
79
  removingEnrollmentId: string | null;
80
+ /** Start/retry the signed self-update for one Connected Machine. */
81
+ updateAgent: (enrollmentId: string) => Promise<UpdateMachineAgentResponse | null>;
82
+ canUpdateAgent: boolean;
83
+ updatingEnrollmentId: string | null;
84
+ /** Update the optional per-enrollment command memory policy. */
85
+ updateOperationPolicy: (enrollmentId: string, request: UpdateMachineOperationPolicyRequest) => Promise<MachineOperationPolicy | null>;
86
+ canUpdateOperationPolicy: boolean;
87
+ updatingOperationPolicyEnrollmentId: string | null;
70
88
  /** Whether the host wired an attach/swap path (drives the card affordance). */
71
89
  canAttach: boolean;
72
90
  /** Fetch a downsampled metric series for one enrolled machine. */
@@ -1,4 +1,4 @@
1
- import type { FsReadResponse, FsWriteResponse, OpenGeniRequestOptions, SessionCapabilities, SessionEvent, WorkspaceCaptureManifest } from "@opengeni/sdk";
1
+ import type { FileSystemRouteIdentity, FsReadResponse, FsWriteResponse, OpenGeniRequestOptions, SessionCapabilities, SessionEvent, WorkspaceCaptureManifest } from "@opengeni/sdk";
2
2
  import { type ClientOverride } from "../provider.js";
3
3
  /** The git-status overlay a file row may carry (tints modified files in the tree). */
4
4
  export type FileTreeStatus = "added" | "modified" | "deleted" | "renamed" | "untracked";
@@ -29,6 +29,7 @@ export type SandboxWriteFileOptions = {
29
29
  /** A node in the Pierre file tree. `children === undefined` ⇒ an unexpanded dir
30
30
  * (lazy treeMode); `children: []` ⇒ an expanded-but-empty dir. */
31
31
  export type FileTreeNode = {
32
+ /** Opaque path returned by the selected target's FileSystem boundary. */
32
33
  path: string;
33
34
  name: string;
34
35
  kind: "file" | "dir";
@@ -46,6 +47,9 @@ export type UseSandboxFilesOptions = ClientOverride & {
46
47
  events?: SessionEvent[] | undefined;
47
48
  /** Initial path to list (workspace root by default). */
48
49
  rootPath?: string | undefined;
50
+ /** Exact capability identity for the selected filesystem route. A route/root
51
+ * change resets this hook and makes stale provider requests fail retryably. */
52
+ route?: FileSystemRouteIdentity | undefined;
49
53
  /** Hold off the initial list (e.g. panel collapsed). Default true. */
50
54
  enabled?: boolean | undefined;
51
55
  /** Pause live reads/invalidation while preserving the last rendered result. */
@@ -0,0 +1,14 @@
1
+ import type { SessionBackgroundCommand } from "@opengeni/sdk";
2
+ import { type ClientOverride } from "../provider.js";
3
+ export type UseSessionBackgroundCommandsOptions = ClientOverride & {
4
+ pollIntervalMs?: number | undefined;
5
+ enabled?: boolean | undefined;
6
+ };
7
+ export type UseSessionBackgroundCommandsResult = {
8
+ commands: SessionBackgroundCommand[];
9
+ loading: boolean;
10
+ error: Error | null;
11
+ refresh: () => Promise<void>;
12
+ cancel: (commandId: string) => Promise<void>;
13
+ };
14
+ export declare function useSessionBackgroundCommands(sessionId: string | null | undefined, options?: UseSessionBackgroundCommandsOptions): UseSessionBackgroundCommandsResult;
@@ -1,6 +1,8 @@
1
- import type { SessionEvent, SessionStatus, StreamConnectionState } from "@opengeni/sdk";
1
+ import { type SessionEvent, type SessionStatus, type StreamConnectionState } from "@opengeni/sdk";
2
2
  import { type EmbeddedSessionClientOverride } from "../session-context.js";
3
+ import { type OlderHistoryLoadReceipt } from "../older-history.js";
3
4
  import type { TimelineItem } from "../timeline/types.js";
5
+ import type { LatestQuestionOptions } from "./latest-question.js";
4
6
  export type SessionEventsConnectionState = StreamConnectionState | "idle" | "ended" | "error";
5
7
  export type UseSessionEventsOptions = EmbeddedSessionClientOverride & {
6
8
  /** Resume after this sequence (exclusive). Nonzero keeps full replay/resume semantics. */
@@ -13,10 +15,12 @@ export type UseSessionEventsOptions = EmbeddedSessionClientOverride & {
13
15
  export type UseSessionEventsResult = {
14
16
  /** Replayed + live events, ordered by sequence, no gaps, no duplicates. */
15
17
  events: SessionEvent[];
16
- /** Projected, renderable timeline (memoized over `events`). */
18
+ /** Renderable timeline, including the bounded navigation witness for a distant queued prompt. */
17
19
  timeline: TimelineItem[];
18
20
  /** Latest session status observed in the event log, if any. */
19
21
  sessionStatus: SessionStatus | null;
22
+ /** Sequence of the retained status projection, including events evicted from the window. */
23
+ sessionStatusSequence?: number;
20
24
  connectionState: SessionEventsConnectionState;
21
25
  /** Highest sequence seen so far (0 before the first event). */
22
26
  lastSequence: number;
@@ -26,12 +30,16 @@ export type UseSessionEventsResult = {
26
30
  windowTruncated: boolean;
27
31
  /** True until the initial tail window has been applied (windowed mode). */
28
32
  initialLoading: boolean;
33
+ /** A history window (including an empty tail) succeeded for this session/replay
34
+ * identity. Stays true through later stream errors and navigation/reloads.
35
+ * Full replay has no snapshot-completion watermark and does not set this by itself. */
36
+ initialHistoryReady: boolean;
29
37
  /** Whether older durable events are available before the current window. */
30
38
  hasOlder: boolean;
31
39
  /** True while an older window is being fetched. */
32
40
  loadingOlder: boolean;
33
41
  /** Prepend an older density-bounded window; resolves true when more remain. */
34
- loadOlder: () => Promise<boolean>;
42
+ loadOlder: () => OlderHistoryLoadReceipt;
35
43
  /**
36
44
  * Durable events exist after the current window (history view jumped away
37
45
  * from the live tip, or a forward page is incomplete).
@@ -58,11 +66,19 @@ export type UseSessionEventsResult = {
58
66
  * "Jump to latest" when the tip is not in memory (history view).
59
67
  */
60
68
  jumpToLatest: () => Promise<void>;
69
+ /** Resolve the newest eligible durable human question. Pending prompts use the
70
+ * optional queue destination and return null; started prompts load their actual
71
+ * turn context (pass `timeline` to MessageTimeline as `items`). */
72
+ jumpToLatestQuestion: (options?: LatestQuestionOptions) => Promise<number | null>;
73
+ /** Replace history with a bounded window containing this exact durable event. */
74
+ jumpToSequence: (sequence: number, options?: {
75
+ signal?: AbortSignal;
76
+ }) => Promise<boolean>;
77
+ loadingTarget: boolean;
61
78
  error: Error | null;
62
79
  };
63
80
  export declare const SESSION_EVENT_BROWSER_MAX_BYTES: number;
64
- export declare const SESSION_EVENT_BROWSER_MAX_COUNT = 10000;
65
- export declare const SESSION_EVENT_BROWSER_SINGLE_EVENT_MAX_BYTES: number;
81
+ export declare const SESSION_EVENT_BROWSER_MAX_COUNT = 20000;
66
82
  export declare const SESSION_EVENT_BROWSER_PENDING_MAX_BYTES: number;
67
83
  export declare const SESSION_EVENT_BROWSER_PENDING_MAX_COUNT = 256;
68
84
  export type BrowserSessionEventWindow = {
@@ -81,12 +97,18 @@ export declare function useSessionEvents(sessionId: string | null | undefined, o
81
97
  * accumulation retains the newest suffix; backward paging retains the oldest
82
98
  * prefix so newly fetched history cannot be immediately evicted. This is
83
99
  * deliberately separate from durable history and transport paging: when a
84
- * backward page evicts the live tail, the hook reconnects from the retained
85
- * high-water mark while preserving the highest-ever-observed sequence
86
- * separately. The source event remains durable in PostgreSQL throughout.
100
+ * backward page evicts the live tail, the hook enters bounded history mode and
101
+ * preserves the highest-ever-observed sequence separately for forward paging.
102
+ * The source event remains durable in PostgreSQL throughout. An event larger
103
+ * than the byte target is retained alone, never replaced by a lossy preview.
87
104
  */
88
105
  export declare function boundBrowserSessionEventWindow(events: readonly SessionEvent[], options?: {
89
106
  maxBytes?: number;
90
107
  maxCount?: number;
91
108
  direction?: "newest" | "oldest";
92
109
  }): BrowserSessionEventWindow;
110
+ /** @internal Append immutable events without serializing the retained history again. */
111
+ export declare function appendBrowserSessionEventWindow(current: BrowserSessionEventWindow, batch: readonly SessionEvent[], options?: {
112
+ maxBytes?: number;
113
+ maxCount?: number;
114
+ }): BrowserSessionEventWindow;
@@ -5,11 +5,15 @@ export type UseSessionLineageOptions = EmbeddedSessionLineageClientOverride & {
5
5
  /** Refresh interval (ms). Off by default. */
6
6
  pollIntervalMs?: number | undefined;
7
7
  enabled?: boolean | undefined;
8
+ /** Optional shared causal clock invoked when each network read starts. */
9
+ beginRead?: (() => number) | undefined;
8
10
  };
9
11
  export type UseSessionLineageResult = {
10
12
  lineage: SessionLineageResponse | null;
11
13
  loading: boolean;
12
14
  error: Error | null;
15
+ /** Causal generation captured when the accepted lineage read started. */
16
+ readGeneration: number;
13
17
  refresh: () => Promise<void>;
14
18
  };
15
19
  export declare function isLineageRefreshEvent(event: SessionEvent): boolean;
@@ -1,4 +1,4 @@
1
- import type { SessionEvent, SessionMcpApprovalPolicy, SessionMcpServerMetadata, UpdateSessionMcpApprovalPolicyResponse } from "@opengeni/sdk";
1
+ import type { SessionEvent, SessionMcpApprovalPolicy, SessionMcpApprovalPolicyTarget, UpdateSessionMcpApprovalPolicyResponse } from "@opengeni/sdk";
2
2
  import { type EmbeddedSessionMcpApprovalPolicyClientOverride } from "../session-context.js";
3
3
  import { type SessionEventFeedOptions } from "./internal.js";
4
4
  export declare function isSessionMcpApprovalPolicyEvent(event: Pick<SessionEvent, "type" | "payload">, serverId?: string): boolean;
@@ -7,7 +7,7 @@ export type UseSessionMcpApprovalPolicyOptions = EmbeddedSessionMcpApprovalPolic
7
7
  pollIntervalMs?: number | undefined;
8
8
  };
9
9
  export type UseSessionMcpApprovalPolicyResult = {
10
- server: SessionMcpServerMetadata | null;
10
+ server: SessionMcpApprovalPolicyTarget | null;
11
11
  policy: SessionMcpApprovalPolicy | null;
12
12
  loading: boolean;
13
13
  error: Error | null;
@@ -4,11 +4,17 @@ import { type SessionEventFeedOptions } from "./internal.js";
4
4
  export type UseSessionOptions = EmbeddedSessionReadClientOverride & SessionEventFeedOptions & {
5
5
  /** Re-fetch on an interval (ms). Off by default — pair with `useSessionEvents` for live status. */
6
6
  pollIntervalMs?: number | undefined;
7
+ /** Optional shared causal clock invoked when each network read starts. */
8
+ beginRead?: (() => number) | undefined;
7
9
  };
8
10
  export type UseSessionResult = {
9
11
  session: Session | null;
10
12
  loading: boolean;
11
13
  error: Error | null;
14
+ /** Monotonic revision of accepted authoritative detail reads. */
15
+ readRevision: number;
16
+ /** Causal generation captured when the accepted network read started. */
17
+ readGeneration: number;
12
18
  refresh: () => Promise<void>;
13
19
  /** Manually rename the session (PATCH, source='user'). Returns the updated session, or null on failure. */
14
20
  updateTitle: (title: string) => Promise<Session | null>;
@@ -4,6 +4,16 @@ import { type SessionEventFeedOptions } from "./internal.js";
4
4
  /** Events that can change the authoritative prompt queue or effective control. */
5
5
  export declare function isTurnQueueEvent(event: Pick<SessionEvent, "type">): boolean;
6
6
  export type QueueMutationKind = "move" | "edit" | "steer" | "delete";
7
+ export type AcceptedQueueSteer = {
8
+ turnId: string;
9
+ triggerEventId: string;
10
+ text: string;
11
+ annotations: SessionTurn["annotations"];
12
+ resources: SessionTurn["resources"];
13
+ tools: SessionTurn["tools"];
14
+ occurredAt: string;
15
+ state: "sending" | "queued";
16
+ };
7
17
  export type UseTurnQueueOptions = EmbeddedSessionClientOverride & SessionEventFeedOptions & {
8
18
  pollIntervalMs?: number | undefined;
9
19
  };
@@ -37,6 +47,8 @@ export type UseTurnQueueResult = {
37
47
  mutating: boolean;
38
48
  mutationError: Error | null;
39
49
  clearMutationError: () => void;
50
+ /** Immediate chat bridge while the durable Steer event catches up over SSE. */
51
+ acceptedSteers?: AcceptedQueueSteer[] | undefined;
40
52
  };
41
53
  /**
42
54
  * The one authoritative human prompt queue. Every mutation carries the exact
@@ -0,0 +1,40 @@
1
+ import type { OpenGeniClient } from "@opengeni/sdk";
2
+ import { type UsageAllowancePeriod, type WorkspaceUsageResponse } from "@opengeni/sdk/usage-allowances";
3
+ import { type UsageSummary } from "../usage/summary.js";
4
+ /**
5
+ * Anything that can read the signed-in member's own usage: the root SDK client
6
+ * pointed at your session proxy (`getMyUsage`), or any client exposing
7
+ * `requestJson` (for example the narrower browser client).
8
+ */
9
+ export type UsageClientLike = Pick<OpenGeniClient, "getMyUsage"> | Pick<OpenGeniClient, "requestJson">;
10
+ export type UseUsageOptions = {
11
+ /** Defaults to the `<OpenGeniProvider>` client. */
12
+ client?: UsageClientLike | undefined;
13
+ /** Defaults to the `<OpenGeniProvider>` workspace. */
14
+ workspaceId?: string | undefined;
15
+ /** `"current"` (default) or a `YYYY-MM` allowance period. */
16
+ period?: UsageAllowancePeriod | undefined;
17
+ /** Re-read on an interval. Off by default; usage changes only when work settles. */
18
+ pollIntervalMs?: number | undefined;
19
+ enabled?: boolean | undefined;
20
+ /**
21
+ * Re-read whenever this value changes, keeping the current reading while it
22
+ * loads. Pass something that changes when work settles (a turn count, the
23
+ * session status) so the meter follows real usage without polling.
24
+ */
25
+ refreshKey?: unknown;
26
+ };
27
+ export type UseUsageResult = {
28
+ /** The raw `/usage/me` response: the workspace pool and your own row. */
29
+ usage: WorkspaceUsageResponse | null;
30
+ /** What to tell this member; null until loaded. */
31
+ summary: UsageSummary | null;
32
+ loading: boolean;
33
+ error: Error | null;
34
+ refresh: () => Promise<void>;
35
+ };
36
+ /**
37
+ * The signed-in member's own usage in one workspace, read through `/usage/me`
38
+ * (the session proxy serves exactly this route). Never reads another member.
39
+ */
40
+ export declare function useUsage(options?: UseUsageOptions): UseUsageResult;
@@ -1,3 +1,4 @@
1
+ import type { FileSystemRouteIdentity } from "@opengeni/sdk";
1
2
  import { type ClientOverride } from "../provider.js";
2
3
  /**
3
4
  * The wake-on-edit state machine. This hook owns the logic and the UI renders
@@ -27,6 +28,9 @@ export type UseWorkspaceEditOptions = ClientOverride & {
27
28
  path?: string | null | undefined;
28
29
  /** The capture-served content loaded into the editor — the flush base (C2). */
29
30
  baseContent?: string | null | undefined;
31
+ /** Exact capability identity for the selected filesystem route. A route/root
32
+ * change discards the buffered edit and makes stale flushes fail retryably. */
33
+ route?: FileSystemRouteIdentity | undefined;
30
34
  /** `capabilities.liveness` — "warm" | "draining" | "cold". Drives the flush. */
31
35
  liveness?: string | undefined;
32
36
  /** True while the host is actively warming the box (attach in flight, not warm
@@ -1,30 +1,52 @@
1
- import type { Session } from "@opengeni/sdk";
1
+ import type { Session, SessionListEntry, SessionListTotals } from "@opengeni/sdk";
2
2
  import { type ClientOverride } from "../provider.js";
3
3
  export type UseWorkspaceSessionsOptions = ClientOverride & {
4
+ includeTotals?: boolean | undefined;
5
+ needsYouOnly?: boolean | undefined;
6
+ /** Compact list records; detail reads remain full sessions. */
7
+ projection?: "summary" | undefined;
4
8
  limit?: number | undefined;
5
9
  parentSessionId?: string | null | undefined;
6
10
  cursor?: string | undefined;
7
11
  search?: string | undefined;
8
12
  /** Return only the complete personal pinned projection. */
9
13
  pinsOnly?: boolean | undefined;
14
+ /** Skip pinned details when the pinned section is loaded separately. */
15
+ includePinned?: boolean | undefined;
16
+ archivedOnly?: boolean | undefined;
17
+ sortBy?: "updatedAt" | "createdAt" | "name" | undefined;
18
+ archiveStatus?: "active" | "archived" | "all" | undefined;
10
19
  /** Refresh interval (ms) for fleet/manager views. Off by default. */
11
20
  pollIntervalMs?: number | undefined;
12
21
  enabled?: boolean | undefined;
22
+ /** Optional shared causal clock invoked when each network read starts. */
23
+ beginRead?: (() => number) | undefined;
13
24
  };
14
- export type UseWorkspaceSessionsResult = {
25
+ export type UseWorkspaceSessionsResult<T extends Session | SessionListEntry = Session> = {
15
26
  /**
16
27
  * All visible rows, with pins first. This preserves the pre-pinning hook
17
28
  * contract for consumers that only read `sessions`.
18
29
  */
19
- sessions: Session[];
30
+ sessions: T[];
20
31
  /** The complete personal pinned section, also present in `sessions`. */
21
- pinned: Session[];
32
+ pinned: T[];
22
33
  /** True when the server omitted older pins from its bounded pinned section. */
23
34
  pinnedTruncated: boolean;
35
+ totals: SessionListTotals | null;
24
36
  nextCursor: string | null;
25
37
  loading: boolean;
26
38
  error: Error | null;
39
+ /** Monotonic revision of accepted authoritative list-page reads. */
40
+ readRevision: number;
41
+ /** Causal generation captured when the accepted network read started. */
42
+ readGeneration: number;
27
43
  refresh: () => Promise<void>;
28
44
  };
29
45
  /** List the workspace's sessions — the data behind fleet and manager views. */
30
- export declare function useWorkspaceSessions(options?: UseWorkspaceSessionsOptions): UseWorkspaceSessionsResult;
46
+ export declare function useWorkspaceSessions(options: UseWorkspaceSessionsOptions & {
47
+ projection: "summary";
48
+ }): UseWorkspaceSessionsResult<SessionListEntry>;
49
+ export declare function useWorkspaceSessions(options?: UseWorkspaceSessionsOptions & {
50
+ projection?: undefined;
51
+ }): UseWorkspaceSessionsResult;
52
+ export declare function useWorkspaceSessions(options: UseWorkspaceSessionsOptions): UseWorkspaceSessionsResult<Session | SessionListEntry>;
@@ -1,4 +1,4 @@
1
- import type { HumanInputQuestion, SessionEvent } from "@opengeni/sdk";
1
+ import type { HumanInputQuestion, SessionEvent, SessionHumanInputRequest } from "@opengeni/sdk";
2
2
  /** Minimal actionable request shape available from the durable event log. */
3
3
  export type PendingHumanInputRequest = {
4
4
  id: string;
@@ -7,6 +7,8 @@ export type PendingHumanInputRequest = {
7
7
  allowSkip: boolean;
8
8
  expiresAt: string | null;
9
9
  };
10
+ /** A pending row stops being actionable at its durable deadline, even before refresh. */
11
+ export declare function isActionableHumanInputRequest(request: Pick<SessionHumanInputRequest, "status" | "expiresAt">, nowMs?: number): boolean;
10
12
  /** Parse one generic `session.humanInput.requested` event defensively. */
11
13
  export declare function humanInputRequestFromEvent(event: Pick<SessionEvent, "type" | "payload" | "turnId">): PendingHumanInputRequest | null;
12
14
  /**
@@ -0,0 +1,11 @@
1
+ import type { ExternalIdentityLink, ExternalIdentityLinkPage } from "@opengeni/sdk";
2
+ export type IdentityLinkAccountsClient = {
3
+ listIdentityLinks(workspaceId: string, cursor?: string): Promise<ExternalIdentityLinkPage>;
4
+ revokeIdentityLink(workspaceId: string, linkId: string, expectedRevision: number): Promise<ExternalIdentityLink>;
5
+ };
6
+ /** Participant-scoped inventory. Revocation never deletes native work or merges
7
+ * identities. The caller remounts this component when the signed-in user changes. */
8
+ export declare function IdentityLinkAccounts({ client, workspaceId, }: {
9
+ client: IdentityLinkAccountsClient;
10
+ workspaceId: string;
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import type { ExternalIdentityLink, ConfirmExternalIdentityLinkRequest, ExternalIdentityLinkPreview } from "@opengeni/sdk";
2
+ export type IdentityLinkClient = {
3
+ previewIdentityLink(workspaceId: string, linkId: string, challenge: string): Promise<ExternalIdentityLinkPreview>;
4
+ confirmIdentityLink(workspaceId: string, linkId: string, input: ConfirmExternalIdentityLinkRequest): Promise<ExternalIdentityLink>;
5
+ revokeIdentityLink(workspaceId: string, linkId: string, expectedRevision: number): Promise<ExternalIdentityLink>;
6
+ };
7
+ export type IdentityLinkConsentProps = {
8
+ client: IdentityLinkClient;
9
+ workspaceId: string;
10
+ linkId: string;
11
+ challenge: string;
12
+ /** Host label is explanatory, never proof of the requesting application. */
13
+ className?: string;
14
+ onComplete?: (link: ExternalIdentityLink) => void;
15
+ };
16
+ /** Optional native-login consent. Ordinary Connect does not use this surface.
17
+ * Permission choices only narrow the server's request; no automatic approval. */
18
+ export declare function IdentityLinkConsent({ client, workspaceId, linkId, challenge, className, onComplete, }: IdentityLinkConsentProps): import("react").JSX.Element;