@opengeni/react 0.48.0 → 0.57.0

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 (325) hide show
  1. package/README.md +138 -2
  2. package/dist/artifacts-document.d.ts +3 -0
  3. package/dist/artifacts-document.js +17 -0
  4. package/dist/artifacts-document.js.map +1 -0
  5. package/dist/artifacts-presentation.d.ts +3 -0
  6. package/dist/artifacts-presentation.js +17 -0
  7. package/dist/artifacts-presentation.js.map +1 -0
  8. package/dist/artifacts-spreadsheet.d.ts +3 -0
  9. package/dist/artifacts-spreadsheet.js +17 -0
  10. package/dist/artifacts-spreadsheet.js.map +1 -0
  11. package/dist/artifacts.d.ts +2 -0
  12. package/dist/artifacts.js +199 -0
  13. package/dist/artifacts.js.map +1 -0
  14. package/dist/{chunk-NJ7M2B6Z.js → chunk-5UQPNLIO.js} +16 -8
  15. package/dist/{chunk-NJ7M2B6Z.js.map → chunk-5UQPNLIO.js.map} +1 -1
  16. package/dist/{chunk-LHLYWG5R.js → chunk-6KLX2RH5.js} +461 -38
  17. package/dist/chunk-6KLX2RH5.js.map +1 -0
  18. package/dist/chunk-7WCLAEFV.js +2828 -0
  19. package/dist/chunk-7WCLAEFV.js.map +1 -0
  20. package/dist/{chunk-I4MPFDRP.js → chunk-B6WPZSTT.js} +104 -104
  21. package/dist/{chunk-I4MPFDRP.js.map → chunk-B6WPZSTT.js.map} +1 -1
  22. package/dist/{chunk-EKZH6IDG.js → chunk-C5ZPSSS5.js} +111 -1
  23. package/dist/chunk-C5ZPSSS5.js.map +1 -0
  24. package/dist/{chunk-OL6QVXGF.js → chunk-HA46CYQK.js} +152 -8
  25. package/dist/chunk-HA46CYQK.js.map +1 -0
  26. package/dist/chunk-HUIKIDM5.js +2148 -0
  27. package/dist/chunk-HUIKIDM5.js.map +1 -0
  28. package/dist/{chunk-FWXGSNXT.js → chunk-IGC6A2ZI.js} +585 -34
  29. package/dist/chunk-IGC6A2ZI.js.map +1 -0
  30. package/dist/chunk-JVYQRRC4.js +53 -0
  31. package/dist/chunk-JVYQRRC4.js.map +1 -0
  32. package/dist/chunk-KCGXPP5V.js +157 -0
  33. package/dist/chunk-KCGXPP5V.js.map +1 -0
  34. package/dist/chunk-LLOLUHVG.js +5937 -0
  35. package/dist/chunk-LLOLUHVG.js.map +1 -0
  36. package/dist/{chunk-WYA65Y3F.js → chunk-MKPIAGVL.js} +13 -3
  37. package/dist/chunk-MKPIAGVL.js.map +1 -0
  38. package/dist/chunk-PEI6RANI.js +3234 -0
  39. package/dist/chunk-PEI6RANI.js.map +1 -0
  40. package/dist/chunk-R3AZOAB5.js +933 -0
  41. package/dist/chunk-R3AZOAB5.js.map +1 -0
  42. package/dist/{chunk-O4VXOBGF.js → chunk-WSK7G5LE.js} +70 -2
  43. package/dist/chunk-WSK7G5LE.js.map +1 -0
  44. package/dist/{chunk-23EJ676W.js → chunk-XBZWOM2K.js} +9 -4
  45. package/dist/chunk-XBZWOM2K.js.map +1 -0
  46. package/dist/{chunk-XCNTXWBB.js → chunk-Y7OEDUJ5.js} +856 -338
  47. package/dist/chunk-Y7OEDUJ5.js.map +1 -0
  48. package/dist/client.d.ts +10 -2
  49. package/dist/clipboard.d.ts +1 -0
  50. package/dist/clipboard.js +7 -0
  51. package/dist/clipboard.js.map +1 -0
  52. package/dist/commands/index.d.ts +3 -3
  53. package/dist/commands/registry.d.ts +1 -1
  54. package/dist/commands/types.d.ts +1 -1
  55. package/dist/components/approval-surface.d.ts +2 -2
  56. package/dist/components/artifacts/artifact-surface.d.ts +18 -0
  57. package/dist/components/artifacts/document-editor.d.ts +172 -0
  58. package/dist/components/artifacts/editable-artifact-ui.d.ts +13 -0
  59. package/dist/components/artifacts/editable-artifact-workbench.d.ts +49 -0
  60. package/dist/components/artifacts/editable-document.d.ts +24 -0
  61. package/dist/components/artifacts/editable-presentation.d.ts +24 -0
  62. package/dist/components/artifacts/editable-spreadsheet.d.ts +32 -0
  63. package/dist/components/artifacts/index.d.ts +9 -0
  64. package/dist/components/artifacts/presentation-editor.d.ts +297 -0
  65. package/dist/components/artifacts/published-html-artifact-frame.d.ts +14 -0
  66. package/dist/components/artifacts/spreadsheet-canvas.d.ts +120 -0
  67. package/dist/components/artifacts/spreadsheet-grid.d.ts +113 -0
  68. package/dist/components/browser-input.d.ts +7 -0
  69. package/dist/components/browser-viewer.d.ts +30 -0
  70. package/dist/components/chat-composer.d.ts +8 -8
  71. package/dist/components/code-editor.d.ts +25 -3
  72. package/dist/components/command-palette.d.ts +2 -2
  73. package/dist/components/composer-transcription-control.d.ts +2 -2
  74. package/dist/components/composer.d.ts +17 -17
  75. package/dist/components/computer-viewer.d.ts +24 -0
  76. package/dist/components/copy-button.d.ts +2 -2
  77. package/dist/components/desktop-viewer.d.ts +50 -22
  78. package/dist/components/diff-view.d.ts +1 -1
  79. package/dist/components/enrollment-consent.d.ts +1 -1
  80. package/dist/components/enrollment-device-flow.d.ts +1 -1
  81. package/dist/components/file-browser.d.ts +2 -2
  82. package/dist/components/fleet-tile.d.ts +1 -1
  83. package/dist/components/generated-video-player.d.ts +10 -0
  84. package/dist/components/human-input-form.d.ts +1 -1
  85. package/dist/components/human-input-surface.d.ts +2 -2
  86. package/dist/components/interaction-intervention-banner.d.ts +11 -0
  87. package/dist/components/interactive-workbench-viewers.d.ts +2 -0
  88. package/dist/components/machine-card.d.ts +2 -2
  89. package/dist/components/machine-dock-bar.d.ts +3 -3
  90. package/dist/components/machine-health-pill.d.ts +2 -2
  91. package/dist/components/machine-input-display.d.ts +1 -1
  92. package/dist/components/machine-metrics.d.ts +2 -2
  93. package/dist/components/machine-status-pill.d.ts +4 -4
  94. package/dist/components/machines/health.d.ts +1 -1
  95. package/dist/components/machines/machine-detail.d.ts +3 -3
  96. package/dist/components/machines/metric-history-chart.d.ts +1 -1
  97. package/dist/components/machines/metric-sparkline.d.ts +2 -2
  98. package/dist/components/machines/series.d.ts +2 -2
  99. package/dist/components/machines-dashboard.d.ts +2 -2
  100. package/dist/components/markdown.d.ts +1 -1
  101. package/dist/components/message-timeline.d.ts +12 -5
  102. package/dist/components/model-picker.d.ts +2 -2
  103. package/dist/components/model-policy-picker.d.ts +7 -7
  104. package/dist/components/pierre-diff.d.ts +1 -1
  105. package/dist/components/pierre-file.d.ts +1 -1
  106. package/dist/components/queue-draft-policy.d.ts +1 -1
  107. package/dist/components/queue-surface-implementation.d.ts +3 -3
  108. package/dist/components/queue-surface-state.d.ts +4 -4
  109. package/dist/components/queue-surface.d.ts +5 -5
  110. package/dist/components/sandbox-files.d.ts +3 -3
  111. package/dist/components/sandbox-terminal.d.ts +24 -4
  112. package/dist/components/sandbox-workspace.d.ts +28 -9
  113. package/dist/components/session-chrome.d.ts +4 -4
  114. package/dist/components/session-status.d.ts +2 -2
  115. package/dist/components/timeline-annotation-selection.d.ts +9 -0
  116. package/dist/components/timeline-annotations-dialog.d.ts +16 -0
  117. package/dist/components/timeline-annotations.d.ts +13 -0
  118. package/dist/components/tooltip.d.ts +4 -4
  119. package/dist/components/user-message-body.d.ts +2 -2
  120. package/dist/components/workbench-changes.d.ts +2 -2
  121. package/dist/components/workspace-dock.d.ts +1 -1
  122. package/dist/composer.d.ts +11 -11
  123. package/dist/composer.js +7 -7
  124. package/dist/hooks/internal.d.ts +1 -1
  125. package/dist/hooks/use-attached-browsers.d.ts +21 -0
  126. package/dist/hooks/use-auth-runs.d.ts +32 -0
  127. package/dist/hooks/use-available-models.d.ts +2 -2
  128. package/dist/hooks/use-billing-usage.d.ts +1 -1
  129. package/dist/hooks/use-browser-downloads.d.ts +25 -0
  130. package/dist/hooks/use-browser-frame-stream.d.ts +28 -0
  131. package/dist/hooks/use-browser-identities.d.ts +30 -0
  132. package/dist/hooks/use-browser-session.d.ts +29 -0
  133. package/dist/hooks/use-browser-sessions.d.ts +32 -0
  134. package/dist/hooks/use-channels.d.ts +26 -0
  135. package/dist/hooks/use-codex-accounts.d.ts +2 -2
  136. package/dist/hooks/use-composer.d.ts +36 -9
  137. package/dist/hooks/use-computer-frame-stream.d.ts +24 -0
  138. package/dist/hooks/use-computer-session.d.ts +29 -0
  139. package/dist/hooks/use-computer-sessions.d.ts +28 -0
  140. package/dist/hooks/use-desktop-stream.d.ts +5 -1
  141. package/dist/hooks/use-environments.d.ts +1 -1
  142. package/dist/hooks/use-file-attachments.d.ts +1 -1
  143. package/dist/hooks/use-goal.d.ts +2 -2
  144. package/dist/hooks/use-human-input.d.ts +2 -2
  145. package/dist/hooks/use-interaction-interventions.d.ts +27 -0
  146. package/dist/hooks/use-interaction-invalidation.d.ts +19 -0
  147. package/dist/hooks/use-last-started-turn-policy.d.ts +2 -2
  148. package/dist/hooks/use-machine-chip.d.ts +2 -2
  149. package/dist/hooks/use-machines.d.ts +4 -4
  150. package/dist/hooks/use-network-routes.d.ts +25 -0
  151. package/dist/hooks/use-packs.d.ts +7 -2
  152. package/dist/hooks/use-rigs.d.ts +1 -1
  153. package/dist/hooks/use-sandbox-files.d.ts +6 -4
  154. package/dist/hooks/use-sandbox-git.d.ts +6 -5
  155. package/dist/hooks/use-sandbox-terminal.d.ts +1 -1
  156. package/dist/hooks/use-scheduled-tasks.d.ts +1 -1
  157. package/dist/hooks/use-session-capabilities.d.ts +5 -4
  158. package/dist/hooks/use-session-control.d.ts +1 -1
  159. package/dist/hooks/use-session-events.d.ts +2 -2
  160. package/dist/hooks/use-session-lineage.d.ts +1 -1
  161. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  162. package/dist/hooks/use-session.d.ts +2 -2
  163. package/dist/hooks/use-site-auth-connections.d.ts +25 -0
  164. package/dist/hooks/use-slash-commands.d.ts +1 -1
  165. package/dist/hooks/use-supergrok-accounts.d.ts +26 -0
  166. package/dist/hooks/use-terminal-stream.d.ts +11 -2
  167. package/dist/hooks/use-turn-queue.d.ts +2 -2
  168. package/dist/hooks/use-video-artifact-playback.d.ts +9 -0
  169. package/dist/hooks/use-voice-input.d.ts +1 -1
  170. package/dist/hooks/use-workspace-capture.d.ts +1 -1
  171. package/dist/hooks/use-workspace-edit.d.ts +1 -1
  172. package/dist/hooks/use-workspace-sessions.d.ts +1 -1
  173. package/dist/hooks/use-workspaces.d.ts +1 -1
  174. package/dist/index.d.ts +162 -155
  175. package/dist/index.js +1822 -1703
  176. package/dist/index.js.map +1 -1
  177. package/dist/interaction.d.ts +33 -0
  178. package/dist/interaction.js +550 -0
  179. package/dist/interaction.js.map +1 -0
  180. package/dist/interactive-workbench-viewers-TOHBXJEE.js +15 -0
  181. package/dist/interactive-workbench-viewers-TOHBXJEE.js.map +1 -0
  182. package/dist/lib/host-platform.d.ts +5 -0
  183. package/dist/lib/relay-wire.d.ts +24 -1
  184. package/dist/lib/sandbox-liveness.d.ts +9 -0
  185. package/dist/lib/terminal-capability.d.ts +5 -0
  186. package/dist/lib/xterm-theme.d.ts +1 -1
  187. package/dist/machines.d.ts +30 -30
  188. package/dist/machines.js +2 -2
  189. package/dist/model-policy.d.ts +1 -1
  190. package/dist/model-policy.js +1 -1
  191. package/dist/provider.d.ts +6 -5
  192. package/dist/{queue-surface-implementation-U5JFG7HT.js → queue-surface-implementation-2KVJTYXH.js} +100 -48
  193. package/dist/queue-surface-implementation-2KVJTYXH.js.map +1 -0
  194. package/dist/realtime/dropdown-menu.d.ts +8 -8
  195. package/dist/realtime/realtime-control.d.ts +8 -8
  196. package/dist/realtime.d.ts +4 -4
  197. package/dist/realtime.js +38 -11
  198. package/dist/realtime.js.map +1 -1
  199. package/dist/session-context.d.ts +28 -2
  200. package/dist/session-ui.d.ts +14 -14
  201. package/dist/session-ui.js +5 -4
  202. package/dist/session.d.ts +28 -28
  203. package/dist/session.js +10 -10
  204. package/dist/timeline/activity-rail.d.ts +5 -3
  205. package/dist/timeline/disclosure-context.d.ts +1 -1
  206. package/dist/timeline/fleet-decision-projection.d.ts +1 -1
  207. package/dist/timeline/fleet-decision-row.d.ts +3 -3
  208. package/dist/timeline/index.d.ts +19 -19
  209. package/dist/timeline/parsers.d.ts +4 -1
  210. package/dist/timeline/projection.d.ts +3 -3
  211. package/dist/timeline/registry.d.ts +8 -2
  212. package/dist/timeline/screenshot-lightbox.d.ts +2 -2
  213. package/dist/timeline/shared.d.ts +21 -10
  214. package/dist/timeline/tool-diff.d.ts +2 -2
  215. package/dist/timeline/tool-renderers.d.ts +1 -1
  216. package/dist/timeline/turn-summary.d.ts +3 -3
  217. package/dist/timeline/types.d.ts +44 -3
  218. package/dist/timeline-annotation-selection-3L7LHGG2.js +187 -0
  219. package/dist/timeline-annotation-selection-3L7LHGG2.js.map +1 -0
  220. package/dist/timeline-annotations-dialog-U7EVLR75.js +196 -0
  221. package/dist/timeline-annotations-dialog-U7EVLR75.js.map +1 -0
  222. package/package.json +36 -7
  223. package/src/artifacts-document.ts +31 -0
  224. package/src/artifacts-presentation.ts +36 -0
  225. package/src/artifacts-spreadsheet.ts +21 -0
  226. package/src/artifacts.ts +89 -0
  227. package/src/client.ts +157 -1
  228. package/src/clipboard.ts +2 -0
  229. package/src/components/artifacts/artifact-surface.tsx +93 -0
  230. package/src/components/artifacts/document-editor.tsx +2255 -0
  231. package/src/components/artifacts/editable-artifact-ui.tsx +89 -0
  232. package/src/components/artifacts/editable-artifact-workbench.tsx +203 -0
  233. package/src/components/artifacts/editable-document.tsx +657 -0
  234. package/src/components/artifacts/editable-presentation.tsx +1020 -0
  235. package/src/components/artifacts/editable-spreadsheet.tsx +733 -0
  236. package/src/components/artifacts/index.ts +104 -0
  237. package/src/components/artifacts/presentation-editor.tsx +3148 -0
  238. package/src/components/artifacts/published-html-artifact-frame.tsx +38 -0
  239. package/src/components/artifacts/spreadsheet-canvas.ts +799 -0
  240. package/src/components/artifacts/spreadsheet-grid.tsx +2129 -0
  241. package/src/components/browser-input.ts +65 -0
  242. package/src/components/browser-viewer.tsx +2702 -0
  243. package/src/components/chat-composer.tsx +13 -0
  244. package/src/components/code-editor.tsx +89 -30
  245. package/src/components/composer-transcription-control.tsx +10 -6
  246. package/src/components/computer-viewer.tsx +1636 -0
  247. package/src/components/desktop-viewer.tsx +215 -74
  248. package/src/components/generated-video-player.tsx +89 -0
  249. package/src/components/interaction-intervention-banner.tsx +99 -0
  250. package/src/components/interactive-workbench-viewers.ts +2 -0
  251. package/src/components/machine-input-display.ts +3 -0
  252. package/src/components/machines/machine-detail.tsx +1 -1
  253. package/src/components/message-timeline.tsx +289 -32
  254. package/src/components/model-policy-picker.tsx +15 -0
  255. package/src/components/queue-surface-implementation.tsx +116 -60
  256. package/src/components/sandbox-files.tsx +2 -2
  257. package/src/components/sandbox-terminal.tsx +128 -46
  258. package/src/components/sandbox-workspace.tsx +256 -90
  259. package/src/components/session-chrome.tsx +53 -13
  260. package/src/components/timeline-annotation-selection.tsx +221 -0
  261. package/src/components/timeline-annotations-dialog.tsx +213 -0
  262. package/src/components/timeline-annotations.tsx +84 -0
  263. package/src/components/workbench-changes.tsx +188 -31
  264. package/src/components/workspace-dock.tsx +59 -5
  265. package/src/hooks/use-attached-browsers.ts +154 -0
  266. package/src/hooks/use-auth-runs.ts +278 -0
  267. package/src/hooks/use-browser-downloads.ts +218 -0
  268. package/src/hooks/use-browser-frame-stream.ts +425 -0
  269. package/src/hooks/use-browser-identities.ts +266 -0
  270. package/src/hooks/use-browser-session.ts +543 -0
  271. package/src/hooks/use-browser-sessions.ts +286 -0
  272. package/src/hooks/use-channels.ts +99 -0
  273. package/src/hooks/use-composer.ts +769 -24
  274. package/src/hooks/use-computer-frame-stream.ts +434 -0
  275. package/src/hooks/use-computer-session.ts +462 -0
  276. package/src/hooks/use-computer-sessions.ts +251 -0
  277. package/src/hooks/use-desktop-stream.ts +39 -7
  278. package/src/hooks/use-interaction-interventions.ts +242 -0
  279. package/src/hooks/use-interaction-invalidation.ts +66 -0
  280. package/src/hooks/use-machine-chip.ts +15 -3
  281. package/src/hooks/use-machines.ts +33 -3
  282. package/src/hooks/use-network-routes.ts +214 -0
  283. package/src/hooks/use-packs.ts +51 -0
  284. package/src/hooks/use-sandbox-files.ts +98 -55
  285. package/src/hooks/use-sandbox-git.ts +93 -38
  286. package/src/hooks/use-sandbox-terminal.ts +3 -2
  287. package/src/hooks/use-session-capabilities.ts +59 -46
  288. package/src/hooks/use-site-auth-connections.ts +226 -0
  289. package/src/hooks/use-supergrok-accounts.ts +81 -0
  290. package/src/hooks/use-terminal-stream.ts +359 -47
  291. package/src/hooks/use-video-artifact-playback.ts +28 -0
  292. package/src/hooks/use-workspace-edit.ts +2 -1
  293. package/src/index.ts +18 -0
  294. package/src/interaction.ts +101 -0
  295. package/src/lib/host-platform.ts +10 -0
  296. package/src/lib/relay-wire.ts +47 -4
  297. package/src/lib/sandbox-liveness.ts +11 -0
  298. package/src/lib/terminal-capability.ts +10 -0
  299. package/src/model-policy.ts +19 -4
  300. package/src/provider.tsx +133 -1
  301. package/src/realtime/realtime-control.tsx +34 -6
  302. package/src/session-context.ts +156 -1
  303. package/src/timeline/activity-rail.tsx +25 -3
  304. package/src/timeline/index.ts +3 -0
  305. package/src/timeline/parsers.ts +14 -1
  306. package/src/timeline/projection.ts +269 -14
  307. package/src/timeline/registry.ts +13 -1
  308. package/src/timeline/screenshot-lightbox.tsx +19 -9
  309. package/src/timeline/shared.tsx +56 -8
  310. package/src/timeline/tool-renderers.tsx +303 -50
  311. package/src/timeline/types.ts +57 -3
  312. package/styles/compiled.css +312 -21
  313. package/styles/index.css +15 -0
  314. package/styles/responsive.css +13 -1
  315. package/dist/chunk-23EJ676W.js.map +0 -1
  316. package/dist/chunk-EKZH6IDG.js.map +0 -1
  317. package/dist/chunk-FWXGSNXT.js.map +0 -1
  318. package/dist/chunk-LHLYWG5R.js.map +0 -1
  319. package/dist/chunk-O4VXOBGF.js.map +0 -1
  320. package/dist/chunk-OL6QVXGF.js.map +0 -1
  321. package/dist/chunk-WYA65Y3F.js.map +0 -1
  322. package/dist/chunk-XCNTXWBB.js.map +0 -1
  323. package/dist/fleet-decision-projection-SLNZMS42.js +0 -241
  324. package/dist/fleet-decision-projection-SLNZMS42.js.map +0 -1
  325. package/dist/queue-surface-implementation-U5JFG7HT.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import type { ClientModel, LatencyMode, ReasoningEffort } from "@opengeni/sdk";
2
2
  import { type CSSProperties, type ReactNode } from "react";
3
- import { type PickerBillingClass, type PickerModelRow } from "../model-policy";
3
+ import { type PickerBillingClass, type PickerModelRow } from "../model-policy.js";
4
4
  type NavLevel = "providers" | "models" | "thinking";
5
5
  type PickerNavState = {
6
6
  level: NavLevel;
@@ -55,7 +55,7 @@ export declare function BillingClassMark(props: {
55
55
  billingClass: PickerBillingClass;
56
56
  className?: string | undefined;
57
57
  "aria-label"?: string | undefined;
58
- }): import("react/jsx-runtime").JSX.Element;
58
+ }): import("react").JSX.Element;
59
59
  export declare function PickerNavRow(props: {
60
60
  label: string;
61
61
  hint?: string | undefined;
@@ -67,21 +67,21 @@ export declare function PickerNavRow(props: {
67
67
  active?: boolean | undefined;
68
68
  testId?: string | undefined;
69
69
  onClick: () => void;
70
- }): import("react/jsx-runtime").JSX.Element;
70
+ }): import("react").JSX.Element;
71
71
  export declare function PickerBackHeader(props: {
72
72
  label: string;
73
73
  icon?: ReactNode;
74
74
  onBack: () => void;
75
75
  trailing?: ReactNode;
76
- }): import("react/jsx-runtime").JSX.Element;
76
+ }): import("react").JSX.Element;
77
77
  export declare function PickerAnimatedPage(props: {
78
78
  pageKey: string;
79
79
  direction: 1 | -1;
80
80
  children: ReactNode;
81
- }): import("react/jsx-runtime").JSX.Element;
81
+ }): import("react").JSX.Element;
82
82
  export declare function ModelPolicyPickerMenu(props: ModelPolicyPickerProps & {
83
83
  nav?: PickerNavState | undefined;
84
84
  onNavChange?: ((next: NavUpdater) => void) | undefined;
85
- }): import("react/jsx-runtime").JSX.Element;
86
- export declare function ModelPolicyPicker(props: ModelPolicyPickerProps): import("react/jsx-runtime").JSX.Element;
85
+ }): import("react").JSX.Element;
86
+ export declare function ModelPolicyPicker(props: ModelPolicyPickerProps): import("react").JSX.Element;
87
87
  export {};
@@ -31,4 +31,4 @@ export type PierreDiffProps = {
31
31
  * `GitFileDiff` hunks). The ONE workbench diff renderer; a host without
32
32
  * `@pierre/diffs` gets the built-in plain-text degrade (`PlainPatch`).
33
33
  */
34
- export declare function PierreDiff({ diff, layout, themeType, theme, disableWorkerPool, loading, fallback, plain, overflow, className, }: PierreDiffProps): import("react/jsx-runtime").JSX.Element;
34
+ export declare function PierreDiff({ diff, layout, themeType, theme, disableWorkerPool, loading, fallback, plain, overflow, className, }: PierreDiffProps): import("react").JSX.Element;
@@ -24,4 +24,4 @@ export type PierreFileProps = {
24
24
  * clicking any file in the tree shows its contents (NOT a diff; no repo needed).
25
25
  * Falls back to a plain `<pre>` when `@pierre/diffs` is absent / fails to import.
26
26
  */
27
- export declare function PierreFile({ path, contents, themeType, theme, disableWorkerPool, loading, fallback, className, }: PierreFileProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare function PierreFile({ path, contents, themeType, theme, disableWorkerPool, loading, fallback, className, }: PierreFileProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { ComposerState } from "../hooks/use-composer";
1
+ import type { ComposerState } from "../hooks/use-composer.js";
2
2
  /**
3
3
  * Decide whether checking out a queued prompt would replace current composer
4
4
  * content. `hasDraftContent` reads the synchronous draft refs, so this stays
@@ -1,5 +1,5 @@
1
- import type { ComposerState } from "../hooks/use-composer";
2
- import type { UseTurnQueueResult } from "../hooks/use-turn-queue";
1
+ import type { ComposerState } from "../hooks/use-composer.js";
2
+ import type { UseTurnQueueResult } from "../hooks/use-turn-queue.js";
3
3
  /** The sole pending-input surface: compact above Goal, Agents, and composer. */
4
4
  type QueueSurfaceCommonProps = {
5
5
  /** Focus the composer owned by this queue after checkout/removal. */
@@ -16,5 +16,5 @@ export type QueueSurfaceProps = (QueueSurfaceCommonProps & {
16
16
  });
17
17
  /** @internal Pure policy seam for queue/composer embedding tests. */
18
18
  export declare function queueComposerCheckoutEnabled(composer: ComposerState | undefined, readOnly: boolean): boolean;
19
- export declare function QueueSurface({ queue, composer, readOnly, onRequestComposerFocus, }: QueueSurfaceProps): import("react/jsx-runtime").JSX.Element | null;
19
+ export declare function QueueSurface({ queue, composer, readOnly, onRequestComposerFocus, }: QueueSurfaceProps): import("react").JSX.Element | null;
20
20
  export {};
@@ -1,12 +1,12 @@
1
- import type { UseTurnQueueResult } from "../hooks/use-turn-queue";
1
+ import type { UseTurnQueueResult } from "../hooks/use-turn-queue.js";
2
2
  type QueueStateProps = {
3
3
  queue: UseTurnQueueResult;
4
4
  };
5
- export declare function EmptyQueueStateSurface({ queue }: QueueStateProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function EmptyQueueStateSurface({ queue }: QueueStateProps): import("react").JSX.Element;
6
6
  export declare function QueueStoppingStatus({ queue, dividerAfter, }: QueueStateProps & {
7
7
  dividerAfter?: boolean;
8
- }): import("react/jsx-runtime").JSX.Element;
8
+ }): import("react").JSX.Element;
9
9
  export declare function QueueErrorAlert({ queue, dividerBefore, }: QueueStateProps & {
10
10
  dividerBefore?: boolean;
11
- }): import("react/jsx-runtime").JSX.Element;
11
+ }): import("react").JSX.Element;
12
12
  export {};
@@ -1,12 +1,12 @@
1
1
  import { type ComponentType } from "react";
2
- import type { QueueSurfaceProps } from "./queue-surface-implementation";
3
- export { requestQueueDraftEdit } from "./queue-draft-policy";
4
- export type { QueueSurfaceProps } from "./queue-surface-implementation";
2
+ import type { QueueSurfaceProps } from "./queue-surface-implementation.js";
3
+ export { requestQueueDraftEdit } from "./queue-draft-policy.js";
4
+ export type { QueueSurfaceProps } from "./queue-surface-implementation.js";
5
5
  type QueueSurfaceModule = {
6
6
  QueueSurface: ComponentType<QueueSurfaceProps>;
7
7
  };
8
8
  type QueueSurfaceLoader = () => Promise<QueueSurfaceModule>;
9
9
  /** The sole pending-input surface: compact above Goal, Agents, and composer. */
10
- export declare const QueueSurface: (props: QueueSurfaceProps) => import("react/jsx-runtime").JSX.Element | null;
10
+ export declare const QueueSurface: (props: QueueSurfaceProps) => import("react").JSX.Element | null;
11
11
  /** @internal Deterministic Suspense seam for the QueueSurface regression suite. */
12
- export declare function createQueueSurfaceForTest(loadImplementation: QueueSurfaceLoader): (props: QueueSurfaceProps) => import("react/jsx-runtime").JSX.Element | null;
12
+ export declare function createQueueSurfaceForTest(loadImplementation: QueueSurfaceLoader): (props: QueueSurfaceProps) => import("react").JSX.Element | null;
@@ -1,5 +1,5 @@
1
- import { type UseSandboxFilesResult } from "../hooks/use-sandbox-files";
2
- import type { UseSandboxGitResult } from "../hooks/use-sandbox-git";
1
+ import { type UseSandboxFilesResult } from "../hooks/use-sandbox-files.js";
2
+ import type { UseSandboxGitResult } from "../hooks/use-sandbox-git.js";
3
3
  export type SandboxFilesProps = {
4
4
  /** From `useSandboxFiles(...)`. */
5
5
  files: UseSandboxFilesResult;
@@ -46,4 +46,4 @@ export type SandboxFilesProps = {
46
46
  * surface deliberately does NOT replicate the changed-files list, and does not
47
47
  * diff here — one job per tab). The agent commits; the human reviews.
48
48
  */
49
- export declare function SandboxFiles({ files, git, fileSystemAvailable, usePierre, editable, onEditIntent, requestedPath, requestedPathRequestId, requestedPathReady, workspaceResting, workspaceWaking, liveWorkspaceReady, onWakeWorkspace, themeType, className, }: SandboxFilesProps): import("react/jsx-runtime").JSX.Element;
49
+ export declare function SandboxFiles({ files, git, fileSystemAvailable, usePierre, editable, onEditIntent, requestedPath, requestedPathRequestId, requestedPathReady, workspaceResting, workspaceWaking, liveWorkspaceReady, onWakeWorkspace, themeType, className, }: SandboxFilesProps): import("react").JSX.Element;
@@ -1,7 +1,8 @@
1
1
  import type { TerminalCapability } from "@opengeni/sdk";
2
2
  import { type ReactNode } from "react";
3
- import type { UseSandboxTerminalResult } from "../hooks/use-sandbox-terminal";
4
- import { type RendererTier } from "../lib/xterm-renderer";
3
+ import { type TerminalStreamStatus } from "../hooks/use-terminal-stream.js";
4
+ import type { UseSandboxTerminalResult } from "../hooks/use-sandbox-terminal.js";
5
+ import { type RendererTier } from "../lib/xterm-renderer.js";
5
6
  /**
6
7
  * A COMPLETE xterm `ITheme` (subset by intent, but every field xterm colors a
7
8
  * cell with is present so it never falls back to its stock VGA palette). Built
@@ -55,7 +56,7 @@ export type SandboxTerminalProps = {
55
56
  fontSize?: number | undefined;
56
57
  /**
57
58
  * Lease liveness (`cold` | `warming` | `warm` | `draining`). Drives the
58
- * boot-in-terminal status lines: once the user has focused the terminal and
59
+ * boot-in-terminal status lines: once the user has engaged the terminal and
59
60
  * the box is not yet warm, a styled "● waking machine — Ns…" line is rendered
60
61
  * INSIDE xterm (no overlay/spinner) until the live PTY connects.
61
62
  */
@@ -80,10 +81,13 @@ export type SandboxTerminalProps = {
80
81
  * the firehose-only default).
81
82
  */
82
83
  onActivate?: (() => void) | undefined;
84
+ /** Re-negotiate the terminal capability after an unexpected socket failure. */
85
+ onReconnectNeeded?: (() => void) | undefined;
83
86
  className?: string | undefined;
84
87
  };
85
88
  type XtermLike = {
86
89
  open: (el: HTMLElement) => void;
90
+ focus: () => void;
87
91
  write: (data: string) => void;
88
92
  clear: () => void;
89
93
  onData: (cb: (data: string) => void) => {
@@ -107,6 +111,22 @@ type XtermLike = {
107
111
  fontSize?: number;
108
112
  };
109
113
  };
114
+ export type TerminalSurfaceState = "loading" | "connecting" | "error" | "waking" | "output-only" | "interactive";
115
+ /**
116
+ * Stable semantic state for hosts and browser acceptance. The xterm helper
117
+ * textarea exists before the live PTY socket is ready, so its presence alone
118
+ * must never be treated as proof that keystrokes can reach the sandbox.
119
+ */
120
+ export declare function terminalSurfaceState(input: {
121
+ ready: boolean;
122
+ acceptsInput: boolean;
123
+ inputPending: boolean;
124
+ ptyStatus: TerminalStreamStatus;
125
+ booting: boolean;
126
+ }): TerminalSurfaceState;
127
+ export declare function subscribeTerminalInput(term: Pick<XtermLike, "onData"> | null, sink: ((data: string) => void) | null, enabled: boolean): {
128
+ dispose: () => void;
129
+ } | null;
110
130
  /** Clear the transient wake line and put the first live prompt at cell 1,1.
111
131
  * `Terminal.clear()` removes scrollback but deliberately preserves the cursor,
112
132
  * which lets the first PTY frame append to the old wake message. */
@@ -148,5 +168,5 @@ declare global {
148
168
  * Resizes are tracked with a `ResizeObserver` on the container (not just
149
169
  * `window.resize`) so dragging the dock handle refits the grid.
150
170
  */
151
- export declare function SandboxTerminal({ result, terminalCapability, theme, fontFamily, fontSize, liveness, readOnly, placeholder, showHeader, shell, onActivate, className, }: SandboxTerminalProps): import("react/jsx-runtime").JSX.Element;
171
+ export declare function SandboxTerminal({ result, terminalCapability, theme, fontFamily, fontSize, liveness, readOnly, placeholder, showHeader, shell, onActivate, onReconnectNeeded, className, }: SandboxTerminalProps): import("react").JSX.Element;
152
172
  export {};
@@ -1,9 +1,11 @@
1
1
  import { type ReactNode } from "react";
2
2
  import type { SessionEvent } from "@opengeni/sdk";
3
- import { type ClientOverride } from "../provider";
4
- import { type MachineChip } from "../hooks/use-machine-chip";
5
- import type { MachineView } from "../types/machines";
6
- import { type WorkspaceDockProps, type WorkspaceTab } from "./workspace-dock";
3
+ import { type ClientOverride } from "../provider.js";
4
+ import type { BrowserFrameWebSocketFactory } from "../hooks/use-browser-frame-stream.js";
5
+ import type { ComputerFrameWebSocketFactory } from "../hooks/use-computer-frame-stream.js";
6
+ import { type MachineChip } from "../hooks/use-machine-chip.js";
7
+ import type { MachineView } from "../types/machines.js";
8
+ import { type WorkspaceDockProps, type WorkspaceTab } from "./workspace-dock.js";
7
9
  /** A host-routed notification (replaces the app-only `sonner` toast coupling). */
8
10
  export type WorkspaceNotification = {
9
11
  kind: "error" | "info";
@@ -13,13 +15,14 @@ export type WorkspaceNotification = {
13
15
  export declare const WORKBENCH_TAB_CHANGES = "changes";
14
16
  export declare const WORKBENCH_TAB_FILES = "files";
15
17
  export declare const WORKBENCH_TAB_TERMINAL = "terminal";
18
+ export declare const WORKBENCH_TAB_BROWSER = "browser";
16
19
  export declare const WORKBENCH_TAB_DESKTOP = "desktop";
17
20
  /**
18
21
  * The built-in workbench surfaces in their canonical display order. Hosts can
19
22
  * pass a subset through `surfaces`; omission preserves the complete standalone
20
23
  * workbench.
21
24
  */
22
- export declare const WORKBENCH_SURFACES: readonly ["changes", "files", "terminal", "desktop"];
25
+ export declare const WORKBENCH_SURFACES: readonly ["changes", "files", "terminal", "browser", "desktop"];
23
26
  export type SandboxWorkspaceSurface = (typeof WORKBENCH_SURFACES)[number];
24
27
  /**
25
28
  * Decide a workspace tab from an already-local event log: the newest
@@ -49,7 +52,7 @@ export type UseSandboxWorkspaceTabsOptions = ClientOverride & {
49
52
  /** Live event log (usually `useSessionEvents().events`). */
50
53
  events: SessionEvent[];
51
54
  /**
52
- * Built-in surfaces this host wants to expose. Omit for all four. A disabled
55
+ * Built-in surfaces this host wants to expose. Omit for all five. A disabled
53
56
  * surface is behaviorally dormant: its data hooks, warm intents, stream
54
57
  * attachment, and navigation callbacks are not activated.
55
58
  */
@@ -59,9 +62,16 @@ export type UseSandboxWorkspaceTabsOptions = ClientOverride & {
59
62
  initialTab?: string | null | undefined;
60
63
  /** Actually selected dock tab. Inactive data surfaces retain cache but issue no live reads. */
61
64
  activeTab?: string | null | undefined;
65
+ /** Whether the dock is visible. Hidden docks retain UI state but must not keep
66
+ * expensive browser/computer media streams alive. */
67
+ workspaceVisible?: boolean | undefined;
62
68
  /** Host-routed notifications (mutation errors, desktop-consent failures). The
63
69
  * package never imports a toast library — the host decides how to surface. */
64
70
  onNotify?: ((notification: WorkspaceNotification) => void) | undefined;
71
+ /** Alternate frame transport for non-browser runtimes and deterministic tests. */
72
+ browserWebSocketFactory?: BrowserFrameWebSocketFactory | undefined;
73
+ /** Alternate Computer frame transport for non-browser runtimes and deterministic tests. */
74
+ computerWebSocketFactory?: ComputerFrameWebSocketFactory | undefined;
65
75
  /** File requested by a Changes guard. The Files surface defers the read until
66
76
  * the sandbox is live, then reveals this path. */
67
77
  requestedFilePath?: string | null | undefined;
@@ -70,9 +80,13 @@ export type UseSandboxWorkspaceTabsOptions = ClientOverride & {
70
80
  requestedFileRequestId?: string | number | null | undefined;
71
81
  /** Route a guarded diff into the host's Files tab. */
72
82
  onOpenFile?: ((path: string) => void) | undefined;
83
+ /** Navigate the host dock to one exact linked ComputerSession. */
84
+ onOpenComputerSession?: ((computerSessionId: string) => void) | undefined;
85
+ requestedComputerSessionId?: string | null | undefined;
86
+ requestedComputerRequestId?: string | number | null | undefined;
73
87
  };
74
88
  export type UseSandboxWorkspaceTabsResult = {
75
- /** Changes | Files | Terminal | Desktop (capability-gated where noted). */
89
+ /** Changes | Files | Terminal | Browser | Desktop (capability-gated where noted). */
76
90
  tabs: WorkspaceTab[];
77
91
  /** The source-driven default tab: Changes when the first authoritative capture
78
92
  * or live Git result has changes, else Files (a host `initialTab` overrides).
@@ -85,7 +99,8 @@ export type UseSandboxWorkspaceTabsResult = {
85
99
  /**
86
100
  * Build the workbench tabs + the machine-chip model for one session. This is the
87
101
  * dock "brain": capability negotiation, capture-backed cold reads, prewarm
88
- * flags, desktop consent, and the xterm theme observer — all package-local.
102
+ * flags, automatic desktop acknowledgment, and the xterm theme observer — all
103
+ * package-local.
89
104
  */
90
105
  export declare function useSandboxWorkspaceTabs(options: UseSandboxWorkspaceTabsOptions): UseSandboxWorkspaceTabsResult;
91
106
  export type SandboxWorkspaceProps = ClientOverride & {
@@ -96,7 +111,7 @@ export type SandboxWorkspaceProps = ClientOverride & {
96
111
  primary: ReactNode;
97
112
  /**
98
113
  * Built-in surfaces this host wants to expose. Omit for Changes, Files,
99
- * Terminal, and Desktop. Disabled surfaces remain behaviorally dormant.
114
+ * Terminal, Browser, and Desktop. Disabled surfaces remain behaviorally dormant.
100
115
  */
101
116
  surfaces?: readonly SandboxWorkspaceSurface[] | undefined;
102
117
  /** Host tabs injected BEFORE the workbench tabs (e.g. a "Run" landing tab). */
@@ -108,6 +123,10 @@ export type SandboxWorkspaceProps = ClientOverride & {
108
123
  initialTab?: string | undefined;
109
124
  /** Host-routed notifications (no toast dependency in the package). */
110
125
  onNotify?: ((notification: WorkspaceNotification) => void) | undefined;
126
+ /** Alternate Browser frame transport for non-browser runtimes and deterministic tests. */
127
+ browserWebSocketFactory?: BrowserFrameWebSocketFactory | undefined;
128
+ /** Alternate Computer frame transport for non-browser runtimes and deterministic tests. */
129
+ computerWebSocketFactory?: ComputerFrameWebSocketFactory | undefined;
111
130
  /** Controlled collapsed state for hosts with their own dock toggle. */
112
131
  collapsed?: boolean | undefined;
113
132
  onCollapsedChange?: ((collapsed: boolean) => void) | undefined;
@@ -33,9 +33,9 @@
33
33
  */
34
34
  import type { SessionGoal } from "@opengeni/sdk";
35
35
  import { type ReactNode } from "react";
36
- import type { ComposerState } from "../hooks/use-composer";
37
- import type { UseGoalResult } from "../hooks/use-goal";
38
- import type { UseTurnQueueResult } from "../hooks/use-turn-queue";
36
+ import type { ComposerState } from "../hooks/use-composer.js";
37
+ import type { UseGoalResult } from "../hooks/use-goal.js";
38
+ import type { UseTurnQueueResult } from "../hooks/use-turn-queue.js";
39
39
  export type SessionChromeSignalId = "incoming" | "steering" | "queue" | "goal" | "agents";
40
40
  export type SessionChromeSignalTone = "neutral" | "accent" | "waiting" | "running";
41
41
  export type SessionChromeAgentsSignal = {
@@ -67,5 +67,5 @@ export type SessionChromeProps = {
67
67
  type GoalPillState = "pursuing" | "scheduled" | "blocked" | "held" | "paused" | "invariant_broken" | "completed";
68
68
  /** Select pill state from the goal's authoritative continuation projection. */
69
69
  export declare function sessionChromeGoalPillState(goalStatus: "active" | "paused" | "completed", continuation: SessionGoal["continuation"] | null | undefined): GoalPillState;
70
- export declare function SessionChrome({ queue, composer, goal, agentsPanel, agentsSignal, onDismissIncoming, readOnly, className, active: activeControlled, defaultActive, onActiveChange, }: SessionChromeProps): import("react/jsx-runtime").JSX.Element | null;
70
+ export declare function SessionChrome({ queue, composer, goal, agentsPanel, agentsSignal, onDismissIncoming, readOnly, className, active: activeControlled, defaultActive, onActiveChange, }: SessionChromeProps): import("react").JSX.Element | null;
71
71
  export {};
@@ -16,10 +16,10 @@ export type SessionStatusProps = {
16
16
  className?: string | undefined;
17
17
  };
18
18
  /** Status badge with a breathing dot for live states. */
19
- export declare function SessionStatus({ status, label, size, className }: SessionStatusProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function SessionStatus({ status, label, size, className }: SessionStatusProps): import("react").JSX.Element;
20
20
  export type StatusDotProps = {
21
21
  status: SessionStatusValue;
22
22
  className?: string | undefined;
23
23
  };
24
24
  /** Just the dot — for dense rows and tiles. */
25
- export declare function StatusDot({ status, className }: StatusDotProps): import("react/jsx-runtime").JSX.Element;
25
+ export declare function StatusDot({ status, className }: StatusDotProps): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import type { DraftTimelineAnnotation } from "@opengeni/sdk";
2
+ import { type RefObject } from "react";
3
+ import type { TimelineAnnotationSourceDescriptor } from "../timeline/index.js";
4
+ export declare function TimelineAnnotationSelection({ rootRef, sources, onAnnotate, }: {
5
+ rootRef: RefObject<HTMLElement | null>;
6
+ sources: ReadonlyMap<string, TimelineAnnotationSourceDescriptor>;
7
+ onAnnotate?: ((annotation: DraftTimelineAnnotation) => void) | undefined;
8
+ }): import("react").ReactPortal | null;
9
+ export default TimelineAnnotationSelection;
@@ -0,0 +1,16 @@
1
+ import type { TimelineAnnotationSource } from "@opengeni/sdk";
2
+ import { type RefObject } from "react";
3
+ import type { TimelineAnnotationLike } from "./timeline-annotations.js";
4
+ export declare function TimelineAnnotationsDialog({ annotations, editable, focusAnnotationId, onFocusConsumed, onUpdate, onRemove, onRevealSource, triggerRef, countLabel, onDismiss, }: {
5
+ annotations: readonly TimelineAnnotationLike[];
6
+ editable: boolean;
7
+ focusAnnotationId?: string | null | undefined;
8
+ onFocusConsumed?: (() => void) | undefined;
9
+ onUpdate?: ((id: string, note: string) => void) | undefined;
10
+ onRemove?: ((id: string) => void) | undefined;
11
+ onRevealSource?: ((source: TimelineAnnotationSource) => boolean) | undefined;
12
+ triggerRef: RefObject<HTMLButtonElement | null>;
13
+ countLabel: string;
14
+ onDismiss: (restoreFocus: boolean) => void;
15
+ }): import("react").ReactPortal | null;
16
+ export default TimelineAnnotationsDialog;
@@ -0,0 +1,13 @@
1
+ import type { DraftTimelineAnnotation, TimelineAnnotation, TimelineAnnotationSource } from "@opengeni/sdk";
2
+ export type TimelineAnnotationLike = DraftTimelineAnnotation | TimelineAnnotation;
3
+ export declare function TimelineAnnotationsChip({ annotations, editable, focusAnnotationId, onFocusConsumed, onUpdate, onRemove, onRevealSource, className, }: {
4
+ annotations: readonly TimelineAnnotationLike[];
5
+ editable?: boolean | undefined;
6
+ focusAnnotationId?: string | null | undefined;
7
+ onFocusConsumed?: (() => void) | undefined;
8
+ onUpdate?: ((id: string, note: string) => void) | undefined;
9
+ onRemove?: ((id: string) => void) | undefined;
10
+ onRevealSource?: ((source: TimelineAnnotationSource) => boolean) | undefined;
11
+ className?: string | undefined;
12
+ }): import("react").JSX.Element | null;
13
+ export default TimelineAnnotationsChip;
@@ -9,8 +9,8 @@
9
9
  */
10
10
  import { Tooltip as TooltipPrimitive } from "radix-ui";
11
11
  import { type ComponentProps } from "react";
12
- declare function TooltipProvider({ delayDuration, ...props }: ComponentProps<typeof TooltipPrimitive.Provider>): import("react/jsx-runtime").JSX.Element;
13
- declare function Tooltip({ children, ...props }: ComponentProps<typeof TooltipPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
14
- declare function TooltipTrigger({ asChild, ...props }: ComponentProps<typeof TooltipPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
15
- declare function TooltipContent({ className, sideOffset, children, style, ...props }: ComponentProps<typeof TooltipPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
12
+ declare function TooltipProvider({ delayDuration, ...props }: ComponentProps<typeof TooltipPrimitive.Provider>): import("react").JSX.Element;
13
+ declare function Tooltip({ children, ...props }: ComponentProps<typeof TooltipPrimitive.Root>): import("react").JSX.Element;
14
+ declare function TooltipTrigger({ asChild, ...props }: ComponentProps<typeof TooltipPrimitive.Trigger>): import("react").JSX.Element;
15
+ declare function TooltipContent({ className, sideOffset, children, style, ...props }: ComponentProps<typeof TooltipPrimitive.Content>): import("react").JSX.Element;
16
16
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
@@ -7,7 +7,7 @@ export type UserMessageDisclosureContextValue = {
7
7
  export declare function UserMessageDisclosureProvider({ value, children, }: {
8
8
  value: UserMessageDisclosureContextValue;
9
9
  children: ReactNode;
10
- }): import("react/jsx-runtime").JSX.Element;
10
+ }): import("react").JSX.Element;
11
11
  /**
12
12
  * Deterministic first-paint fallback for runtimes without layout measurement.
13
13
  * Real browsers replace this estimate with the rendered-height decision in the
@@ -32,5 +32,5 @@ export type UserMessageBodyProps = {
32
32
  * remembers expansion per durable message id and preserves the reader's scroll
33
33
  * anchor when height changes.
34
34
  */
35
- export declare function UserMessageBody({ messageId, text, children, className }: UserMessageBodyProps): import("react/jsx-runtime").JSX.Element;
35
+ export declare function UserMessageBody({ messageId, text, children, className }: UserMessageBodyProps): import("react").JSX.Element;
36
36
  export {};
@@ -1,4 +1,4 @@
1
- import type { SandboxGitFileDiff } from "../hooks/use-sandbox-git";
1
+ import type { SandboxGitFileDiff } from "../hooks/use-sandbox-git.js";
2
2
  export type WorkbenchChangesProps = {
3
3
  /** The changed files (`useSandboxGit().diff`). Assumed non-empty by the caller. */
4
4
  diff: SandboxGitFileDiff[];
@@ -30,5 +30,5 @@ export declare function buildRail(files: SandboxGitFileDiff[]): {
30
30
  rows: RailRow[];
31
31
  grouped: boolean;
32
32
  };
33
- export declare function WorkbenchChanges({ diff, source, capturedAt, captureRevision, themeType, onOpenFile, className, }: WorkbenchChangesProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function WorkbenchChanges({ diff, source, capturedAt, captureRevision, themeType, onOpenFile, className, }: WorkbenchChangesProps): import("react").JSX.Element;
34
34
  export {};
@@ -34,4 +34,4 @@ export type WorkspaceDockProps = {
34
34
  maxSize?: number | undefined;
35
35
  className?: string | undefined;
36
36
  };
37
- export declare function WorkspaceDock({ primary, tabs, activeTab, onActiveTabChange, collapsed: collapsedProp, onCollapsedChange, showCollapseControl, headerAccessory, mobileLeadingControl, autoSaveId, defaultSize, minSize, maxSize, className, }: WorkspaceDockProps): import("react/jsx-runtime").JSX.Element;
37
+ export declare function WorkspaceDock({ primary, tabs, activeTab, onActiveTabChange, collapsed: collapsedProp, onCollapsedChange, showCollapseControl, headerAccessory, mobileLeadingControl, autoSaveId, defaultSize, minSize, maxSize, className, }: WorkspaceDockProps): import("react").JSX.Element;
@@ -3,14 +3,14 @@
3
3
  *
4
4
  * `import * as Composer from "@opengeni/react/composer"`.
5
5
  */
6
- export { OPEN_WORKSTREAM_CONTROL_EVENT } from "./workstream-control-event";
7
- export { BillingClassMark, ModelPolicyPicker, ModelPolicyPickerMenu, PickerAnimatedPage, PickerBackHeader, PickerNavRow, defaultModelPolicyPickerMessages, } from "./components/model-policy-picker";
8
- export type { ModelPolicyPickerMessages, ModelPolicyPickerProps, } from "./components/model-policy-picker";
9
- export { Actions, AttachButton, Attachments, CommandPalette, Confirmation, Controls, Footer, Frame, Help, Hint, Input, ModelPicker, PauseButton, PausedState, RestoredResources, Root, SendButton, Status, Surface, defaultChatComposerMessages, useChatComposer, useChatComposerController, } from "./components/composer";
10
- export type { ChatComposerController, ChatComposerContextValue, ChatComposerMessages, ComposerActionsProps, ComposerAttachButtonProps, ComposerCommandPaletteProps, ComposerControlLinks, ComposerControlState, ComposerControlsProps, ComposerDelivery, ComposerDraftState, ComposerFooterProps, ComposerFrameProps, ComposerHintProps, ComposerInputProps, ComposerModelPickerProps, ComposerPauseButtonProps, ComposerRootProps, ComposerSendButtonProps, ComposerSubmitBlocker, ComposerSubmitMode, ComposerSurfaceProps, ResponsiveBasis, UseChatComposerControllerOptions, } from "./components/composer";
11
- export { ComposerTranscriptionControl } from "./components/composer-transcription-control";
12
- export type { ComposerTranscriptionControlProps, ComposerTranscriptionMessages, } from "./components/composer-transcription-control";
13
- export { VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS, VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS, VOICE_RECORDING_OWNER_STALE_MILLISECONDS, VOICE_RECORDING_TIMESLICE_MILLISECONDS, useVoiceInput, } from "./hooks/use-voice-input";
14
- export type { UseVoiceInputOptions, UseVoiceInputResult, VoiceInputStatus, } from "./hooks/use-voice-input";
15
- export { IndexedDbVoiceRecordingStore, VoiceRecordingChunkConflictError, VoiceRecordingChunkSequenceError, VoiceRecordingNotFoundError, VoiceRecordingOwnedError, VoiceRecordingStorageUnavailableError, createVoiceRecordingManifest, planVoiceRecordingChunkCommit, prepareVoiceRecordingChunk, } from "./voice-recording-store";
16
- export type { PersistVoiceRecordingChunkInput, PersistVoiceRecordingChunkResult, VoiceRecordingCaptureState, VoiceRecordingChunk, VoiceRecordingChunkUploadState, VoiceRecordingFinalizationState, VoiceRecordingHandoffMode, VoiceRecordingManifest, VoiceRecordingRecoveryMode, VoiceRecordingStore, VoiceRecordingTranscriptionState, VoiceRecordingUploadState, } from "./voice-recording-store";
6
+ export { OPEN_WORKSTREAM_CONTROL_EVENT } from "./workstream-control-event.js";
7
+ export { BillingClassMark, ModelPolicyPicker, ModelPolicyPickerMenu, PickerAnimatedPage, PickerBackHeader, PickerNavRow, defaultModelPolicyPickerMessages, } from "./components/model-policy-picker.js";
8
+ export type { ModelPolicyPickerMessages, ModelPolicyPickerProps, } from "./components/model-policy-picker.js";
9
+ export { Actions, AttachButton, Attachments, CommandPalette, Confirmation, Controls, Footer, Frame, Help, Hint, Input, ModelPicker, PauseButton, PausedState, RestoredResources, Root, SendButton, Status, Surface, defaultChatComposerMessages, useChatComposer, useChatComposerController, } from "./components/composer.js";
10
+ export type { ChatComposerController, ChatComposerContextValue, ChatComposerMessages, ComposerActionsProps, ComposerAttachButtonProps, ComposerCommandPaletteProps, ComposerControlLinks, ComposerControlState, ComposerControlsProps, ComposerDelivery, ComposerDraftState, ComposerFooterProps, ComposerFrameProps, ComposerHintProps, ComposerInputProps, ComposerModelPickerProps, ComposerPauseButtonProps, ComposerRootProps, ComposerSendButtonProps, ComposerSubmitBlocker, ComposerSubmitMode, ComposerSurfaceProps, ResponsiveBasis, UseChatComposerControllerOptions, } from "./components/composer.js";
11
+ export { ComposerTranscriptionControl } from "./components/composer-transcription-control.js";
12
+ export type { ComposerTranscriptionControlProps, ComposerTranscriptionMessages, } from "./components/composer-transcription-control.js";
13
+ export { VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS, VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS, VOICE_RECORDING_OWNER_STALE_MILLISECONDS, VOICE_RECORDING_TIMESLICE_MILLISECONDS, useVoiceInput, } from "./hooks/use-voice-input.js";
14
+ export type { UseVoiceInputOptions, UseVoiceInputResult, VoiceInputStatus, } from "./hooks/use-voice-input.js";
15
+ export { IndexedDbVoiceRecordingStore, VoiceRecordingChunkConflictError, VoiceRecordingChunkSequenceError, VoiceRecordingNotFoundError, VoiceRecordingOwnedError, VoiceRecordingStorageUnavailableError, createVoiceRecordingManifest, planVoiceRecordingChunkCommit, prepareVoiceRecordingChunk, } from "./voice-recording-store.js";
16
+ export type { PersistVoiceRecordingChunkInput, PersistVoiceRecordingChunkResult, VoiceRecordingCaptureState, VoiceRecordingChunk, VoiceRecordingChunkUploadState, VoiceRecordingFinalizationState, VoiceRecordingHandoffMode, VoiceRecordingManifest, VoiceRecordingRecoveryMode, VoiceRecordingStore, VoiceRecordingTranscriptionState, VoiceRecordingUploadState, } from "./voice-recording-store.js";
package/dist/composer.js CHANGED
@@ -37,9 +37,8 @@ import {
37
37
  useChatComposer,
38
38
  useChatComposerController,
39
39
  useVoiceInput
40
- } from "./chunk-NJ7M2B6Z.js";
41
- import "./chunk-FWXGSNXT.js";
42
- import "./chunk-KZ73RL76.js";
40
+ } from "./chunk-5UQPNLIO.js";
41
+ import "./chunk-IGC6A2ZI.js";
43
42
  import {
44
43
  BillingClassMark,
45
44
  ModelPolicyPicker,
@@ -48,12 +47,13 @@ import {
48
47
  PickerBackHeader,
49
48
  PickerNavRow,
50
49
  defaultModelPolicyPickerMessages
51
- } from "./chunk-WYA65Y3F.js";
52
- import "./chunk-EKZH6IDG.js";
53
- import "./chunk-23EJ676W.js";
50
+ } from "./chunk-MKPIAGVL.js";
51
+ import "./chunk-XBZWOM2K.js";
54
52
  import "./chunk-FK6VG4LL.js";
55
- import "./chunk-LAKLF4PA.js";
56
53
  import "./chunk-VZTQ73XT.js";
54
+ import "./chunk-KZ73RL76.js";
55
+ import "./chunk-C5ZPSSS5.js";
56
+ import "./chunk-LAKLF4PA.js";
57
57
  import "./chunk-22KP6LR5.js";
58
58
  export {
59
59
  Actions,
@@ -1,5 +1,5 @@
1
1
  import type { SessionEvent } from "@opengeni/sdk";
2
- import type { EmbeddedSessionEventClientLike } from "../client";
2
+ import type { EmbeddedSessionEventClientLike } from "../client.js";
3
3
  /**
4
4
  * Keep live browser work active while the page is visible, then suspend it
5
5
  * after a short hidden-tab grace period. Returning to the page re-enables the
@@ -0,0 +1,21 @@
1
+ import type { AttachedBrowserDevice } from "@opengeni/sdk/interaction";
2
+ import type { EmbeddedBrowserInteractionClientLike } from "../client.js";
3
+ import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
4
+ export type UseAttachedBrowsersOptions = EmbeddedBrowserInteractionClientOverride & {
5
+ enabled?: boolean | undefined;
6
+ includeDisconnected?: boolean | undefined;
7
+ pollIntervalMs?: number | undefined;
8
+ };
9
+ export type UseAttachedBrowsersResult = {
10
+ revision: number;
11
+ devices: AttachedBrowserDevice[];
12
+ loading: boolean;
13
+ refreshing: boolean;
14
+ error: Error | null;
15
+ refresh: () => Promise<void>;
16
+ };
17
+ /** Workspace-wide inventory of Chrome profiles currently connected through an
18
+ * enrolled OpenGeni machine. BrowserSessions remain the execution authority. */
19
+ export declare function useAttachedBrowsers(options?: UseAttachedBrowsersOptions): UseAttachedBrowsersResult;
20
+ /** Exported for narrow proxy implementations and tests. */
21
+ export type AttachedBrowsersClient = EmbeddedBrowserInteractionClientLike;
@@ -0,0 +1,32 @@
1
+ import type { AuthRun, AuthRunMutationResponse, ProtectedAuthFillRequest, ProtectedAuthFillResponse, ReportAuthRunRequest, StartAuthRunRequest, VerifyAuthRunRequest } from "@opengeni/sdk/interaction";
2
+ import type { EmbeddedBrowserInteractionClientLike } from "../client.js";
3
+ import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
4
+ export type UseAuthRunsOptions = EmbeddedBrowserInteractionClientOverride & {
5
+ enabled?: boolean | undefined;
6
+ browserSessionId?: string | null | undefined;
7
+ siteAuthConnectionId?: string | null | undefined;
8
+ includeSettled?: boolean | undefined;
9
+ };
10
+ export type UseAuthRunsResult = {
11
+ runs: AuthRun[];
12
+ loading: boolean;
13
+ refreshing: boolean;
14
+ mutating: boolean;
15
+ error: Error | null;
16
+ refresh: () => Promise<void>;
17
+ start: (browserSessionId: string, request: Omit<StartAuthRunRequest, "operationId"> & {
18
+ operationId?: string;
19
+ }) => Promise<AuthRunMutationResponse>;
20
+ report: (browserSessionId: string, authRunId: string, request: Omit<ReportAuthRunRequest, "operationId"> & {
21
+ operationId?: string;
22
+ }) => Promise<AuthRunMutationResponse>;
23
+ protectedFill: (browserSessionId: string, authRunId: string, request: Omit<ProtectedAuthFillRequest, "operationId"> & {
24
+ operationId?: string;
25
+ }) => Promise<ProtectedAuthFillResponse>;
26
+ verify: (browserSessionId: string, authRunId: string, request: Omit<VerifyAuthRunRequest, "operationId"> & {
27
+ operationId?: string;
28
+ }) => Promise<AuthRunMutationResponse>;
29
+ };
30
+ /** Live authentication state machines tied to exact browser document generations. */
31
+ export declare function useAuthRuns(options?: UseAuthRunsOptions): UseAuthRunsResult;
32
+ export type AuthRunsClient = EmbeddedBrowserInteractionClientLike;
@@ -1,6 +1,6 @@
1
1
  import type { WorkspaceModelCatalogModel } from "@opengeni/sdk";
2
- import { type PickerModelRow } from "../model-policy";
3
- import { type ClientOverride } from "../provider";
2
+ import { type PickerModelRow } from "../model-policy.js";
3
+ import { type ClientOverride } from "../provider.js";
4
4
  export type UseAvailableModelsOptions = Pick<ClientOverride, "client"> & {
5
5
  /** Refresh interval (ms). Off by default — the host model list rarely moves. */
6
6
  pollIntervalMs?: number | undefined;
@@ -1,5 +1,5 @@
1
1
  import type { BillingBalance, UsageEvent } from "@opengeni/sdk";
2
- import { type ClientOverride } from "../provider";
2
+ import { type ClientOverride } from "../provider.js";
3
3
  export type UseBillingUsageOptions = Pick<ClientOverride, "client"> & {
4
4
  /** Account to read. Defaults to the caller's default account server-side. */
5
5
  accountId?: string | undefined;
@@ -0,0 +1,25 @@
1
+ import type { BrowserDownload, BrowserDownloadSaveResponse } from "@opengeni/sdk/interaction";
2
+ import type { EmbeddedBrowserInteractionClientLike } from "../client.js";
3
+ import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
4
+ export type UseBrowserDownloadsOptions = EmbeddedBrowserInteractionClientOverride & {
5
+ browserSessionId: string | null;
6
+ enabled?: boolean | undefined;
7
+ pollIntervalMs?: number | undefined;
8
+ };
9
+ export type BrowserDownloadSaveOptions = {
10
+ operationId?: string | undefined;
11
+ overwrite?: boolean | undefined;
12
+ };
13
+ export type UseBrowserDownloadsResult = {
14
+ downloads: BrowserDownload[];
15
+ loading: boolean;
16
+ refreshing: boolean;
17
+ savingDownloadIds: string[];
18
+ error: Error | null;
19
+ refresh: () => Promise<void>;
20
+ saveToWorkspace: (downloadId: string, destinationPath: string, options?: BrowserDownloadSaveOptions) => Promise<BrowserDownloadSaveResponse>;
21
+ };
22
+ /** Exact browser-produced files for one BrowserSession. Bytes remain private
23
+ * until `saveToWorkspace` performs the canonical workspace mutation. */
24
+ export declare function useBrowserDownloads(options: UseBrowserDownloadsOptions): UseBrowserDownloadsResult;
25
+ export type BrowserDownloadsClient = EmbeddedBrowserInteractionClientLike;